added flags for "level solved" and "game over" to EM engine
[rocksndiamonds.git] / src / game_em / synchro_1.c
index 7b2e9c807a8387a9554692ed8a91f96d6be8a3b6..b390ad916e71dfeec0f108d8fa38d81edbdd9b7b 100644 (file)
@@ -10,8 +10,6 @@
 
 #define USE_CHANGED_ACID_STUFF         1
 
-extern boolean checkIfAllPlayersFitToScreen();
-
 static void check_player(struct PLAYER *);
 static void kill_player(struct PLAYER *);
 static boolean player_digfield(struct PLAYER *, int, int);
@@ -585,6 +583,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;
@@ -597,6 +596,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;
@@ -1069,6 +1069,9 @@ static boolean player_digfield(struct PLAYER *ply, int dx, int dy)
       case Xexit_3:
        lev.home--;
 
+       if (lev.home == 0)
+         game_em.level_solved = TRUE;
+
        ply->anim = SPR_walk + anim;
        ply->x = x;
        ply->y = y;
@@ -1108,6 +1111,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;
 
@@ -1118,6 +1122,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;