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++)
{
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 */
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);
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;