X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame.c;h=15c379531fc488fc94a14f84cc5b0c02b7d6cc5e;hp=e170331debf8e5d7f306e301144b6e8e56910b94;hb=cf5b3a1e9077e88eb40ce2fb59e985a0ae037c84;hpb=b7d31643c9c84104fb3ebef778e545928610ff65;ds=sidebyside diff --git a/src/game.c b/src/game.c index e170331d..15c37953 100644 --- a/src/game.c +++ b/src/game.c @@ -2798,6 +2798,15 @@ BOOL MoveFigureOneStep(int dx, int dy, int real_dx, int real_dy) JX = newJX; JY = newJY; + + JX2 = oldJX; + JY2 = oldJY; + + PlayerMovPos = TILEX/4; + PlayerMovPos = (dx > 0 || dy > 0 ? -1 : 1) * 3*TILEX/4; + + ScrollFigure(-1); + if (Store[oldJX][oldJY]) { DrawGraphic(SCROLLX(oldJX),SCROLLY(oldJY),el2gfx(Store[oldJX][oldJY])); @@ -2896,6 +2905,24 @@ BOOL MoveFigure(int dx, int dy) return(moved); } +void ScrollFigure(int init) +{ + static long actual_frame_counter; + + if (init) + { + actual_frame_counter = FrameCounter; + return; + } + else if (!FrameReached(&actual_frame_counter,1)) + return; + + PlayerMovPos += (PlayerMovPos > 0 ? -1 : 1) * TILEX/4; + + DrawLevelElement(JX2,JY2, Feld[JX2][JY2]); + DrawPlayerField(); +} + void TestIfGoodThingHitsBadThing(int goodx, int goody) { int i, killx = goodx, killy = goody;