X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=f5b3ab7b883d783c088bd11a20379611c4fc3a75;hb=ddaae9de458b7f07b05461101655a1da4c63b380;hp=718b1fff062877878666bddd6e2109a08c845ffc;hpb=0ef9c7d4b387b42f40d2f226920e306d588544f7;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 718b1fff..f5b3ab7b 100644 --- a/src/game.c +++ b/src/game.c @@ -1032,6 +1032,7 @@ void InitGame() game.switchgate_pos = 0; game.balloon_dir = MV_NO_MOVING; game.explosions_delayed = TRUE; + game.current_gravity = level.initial_gravity; for (i=0; i<4; i++) { @@ -3846,9 +3847,10 @@ void StartMoving(int x, int y) return; } -#if 0 - GfxAction[x][y] = ACTION_MOVING; -#endif + /* special case of "moving" animation of waiting elements (FIX THIS !!!); + for all other elements GfxAction will be set by InitMovingField() */ + if (element == EL_BD_BUTTERFLY || element == EL_BD_FIREFLY) + GfxAction[x][y] = ACTION_MOVING; } /* now make next step */ @@ -6086,7 +6088,7 @@ void ScrollLevel(int dx, int dy) static void CheckGravityMovement(struct PlayerInfo *player) { - if (level.gravity && !player->programmed_action) + if (game.current_gravity && !player->programmed_action) { int move_dir_vertical = player->action & (MV_UP | MV_DOWN); int move_dir_horizontal = player->action & (MV_LEFT | MV_RIGHT); @@ -7084,7 +7086,7 @@ int DigField(struct PlayerInfo *player, element == EL_SP_GRAVITY_PORT_RIGHT || element == EL_SP_GRAVITY_PORT_UP || element == EL_SP_GRAVITY_PORT_DOWN) - level.gravity = !level.gravity; + game.current_gravity = !game.current_gravity; /* automatically move to the next field with double speed */ player->programmed_action = move_direction;