fixed bug in single button handling causing broken tapes (EM engine)
[rocksndiamonds.git] / src / game_em / synchro_1.c
index f09fc84819a0657ad872adc5bc533bbf926cc3f7..7852eb74a0b3224e5f20303475e0f5ea1067ba89 100644 (file)
@@ -23,6 +23,7 @@ void synchro_1(void)
   int i;
 
   game_em.any_player_moving = FALSE;
+  game_em.any_player_snapping = FALSE;
 
   /* must test for death and actually kill separately */
   for (i = 0; i < MAX_PLAYERS; i++)
@@ -460,7 +461,7 @@ static void check_player(struct PLAYER *ply)
   }
   else                                 /* player wants to snap */
   {
-    player_digfield(ply, dx, dy);
+    game_em.any_player_snapping = player_digfield(ply, dx, dy);
   }
 }
 
@@ -584,6 +585,7 @@ static boolean player_digfield(struct PLAYER *ply, int dx, int dy)
        play_element_sound(x, y, SAMPLE_collect, element);
        lev.score += lev.diamond_score;
        lev.required = lev.required < 3 ? 0 : lev.required - 3;
+       game.snapshot.collected_item = TRUE;
        ply->anim = SPR_walk + anim;
        ply->x = x;
        ply->y = y;
@@ -596,6 +598,7 @@ static boolean player_digfield(struct PLAYER *ply, int dx, int dy)
        play_element_sound(x, y, SAMPLE_collect, element);
        lev.score += lev.emerald_score;
        lev.required = lev.required < 1 ? 0 : lev.required - 1;
+       game.snapshot.collected_item = TRUE;
        ply->anim = SPR_walk + anim;
        ply->x = x;
        ply->y = y;
@@ -1107,6 +1110,7 @@ static boolean player_digfield(struct PLAYER *ply, int dx, int dy)
        play_element_sound(x, y, SAMPLE_collect, element);
        lev.score += lev.diamond_score;
        lev.required = lev.required < 3 ? 0 : lev.required - 3;
+       game.snapshot.collected_item = TRUE;
        ply->anim = SPR_walk + anim;
        break;
 
@@ -1117,6 +1121,7 @@ static boolean player_digfield(struct PLAYER *ply, int dx, int dy)
        play_element_sound(x, y, SAMPLE_collect, element);
        lev.score += lev.emerald_score;
        lev.required = lev.required < 1 ? 0 : lev.required - 1;
+       game.snapshot.collected_item = TRUE;
        ply->anim = SPR_walk + anim;
        break;