X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=a4940d9692de05210c2eb74ec6468f82e68477b9;hb=c67c3097b43d753268773d85261c02a9ded95129;hp=2a17a15f648d92cb31acaf01aef253a267d439c2;hpb=e40c7f18cc72945f56b8cfcf99f11f5e0986d056;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 2a17a15f..a4940d96 100644 --- a/src/game.c +++ b/src/game.c @@ -4250,6 +4250,8 @@ static void PlayerActions(struct PlayerInfo *player, byte player_action) SnapField(player, 0, 0); CheckGravityMovement(player); + player->last_move_dir = MV_NO_MOVING; + if (++player->frame_reset_delay > player->move_delay_value) player->Frame = 0; } @@ -5238,7 +5240,9 @@ void TestIfBadThingHitsGoodThing(int badx, int bady) { struct PlayerInfo *player = PLAYERINFO(killx, killy); - if (player->shield_active_time_left > 0) + if (Feld[badx][bady] == EL_ROBOT && player->last_move_dir) + ; /* robot does not kill player if he moves */ + else if (player->shield_active_time_left > 0) Bang(badx, bady); else if (!PLAYER_PROTECTED(killx, killy)) KillHero(player);