From 258d9d4ffe4374628f4bf49f2f0a30c4c1701933 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Sun, 12 Mar 2023 21:18:03 +0100 Subject: [PATCH 1/1] added game over messages for Deflektor style levels in MM game engine --- src/game_mm/mm_game.c | 26 ++++++++++++++++---------- src/game_mm/mm_main.h | 1 - 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/game_mm/mm_game.c b/src/game_mm/mm_game.c index d57c5a3b..5cdc8ed3 100644 --- a/src/game_mm/mm_game.c +++ b/src/game_mm/mm_game.c @@ -808,13 +808,21 @@ static void GameOver_MM(int game_over_cause) { game_mm.game_over = TRUE; game_mm.game_over_cause = game_over_cause; - game_mm.game_over_message = (game_over_cause == GAME_OVER_BOMB ? - "Bomb killed Mc Duffin!" : - game_over_cause == GAME_OVER_NO_ENERGY ? - "Out of magic energy!" : - game_over_cause == GAME_OVER_OVERLOADED ? - "Magic spell hit Mc Duffin!" : - NULL); + game_mm.game_over_message = (game_mm.has_mcduffin ? + (game_over_cause == GAME_OVER_BOMB ? + "Bomb killed Mc Duffin!" : + game_over_cause == GAME_OVER_NO_ENERGY ? + "Out of magic energy!" : + game_over_cause == GAME_OVER_OVERLOADED ? + "Magic spell hit Mc Duffin!" : + NULL) : + (game_over_cause == GAME_OVER_BOMB ? + "Bomb destroyed laser cannon!" : + game_over_cause == GAME_OVER_NO_ENERGY ? + "Out of laser energy!" : + game_over_cause == GAME_OVER_OVERLOADED ? + "Laser beam hit laser cannon!" : + NULL)); SetTileCursorActive(FALSE); } @@ -2824,11 +2832,9 @@ static void Explode_MM(int x, int y, int phase, int mode) Bang_MM(laser.start_edge.x, laser.start_edge.y); - GameOver_MM(GAME_OVER_DELAYED); - laser.overloaded = FALSE; } - else if (IS_MCDUFFIN(center_element)) + else if (IS_MCDUFFIN(center_element) || IS_LASER(center_element)) { GameOver_MM(GAME_OVER_BOMB); } diff --git a/src/game_mm/mm_main.h b/src/game_mm/mm_main.h index 7350890b..1404fb03 100644 --- a/src/game_mm/mm_main.h +++ b/src/game_mm/mm_main.h @@ -735,7 +735,6 @@ extern int num_element_info; #define GAME_OVER_NO_ENERGY 1 #define GAME_OVER_OVERLOADED 2 #define GAME_OVER_BOMB 3 -#define GAME_OVER_DELAYED 4 #define PROGRAM_VERSION_MAJOR 2 #define PROGRAM_VERSION_MINOR 0 -- 2.34.1