X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_mm%2Fmm_game.c;h=d34eec08eed4c2c22c2813f252c48de01edafd10;hb=0ac301d6e3c5551a5ff66baaaa8ce867bb1aceb1;hp=aff897b1fb2e0cae9ce1b6c235b1ff9f88db3e9e;hpb=f07a84fefbf334496d5b2a06cf1afdfb1733d24b;p=rocksndiamonds.git diff --git a/src/game_mm/mm_game.c b/src/game_mm/mm_game.c index aff897b1..d34eec08 100644 --- a/src/game_mm/mm_game.c +++ b/src/game_mm/mm_game.c @@ -744,6 +744,9 @@ void InitGameActions_MM() if (game_mm.kettles_still_needed == 0) CheckExitMM(); + + SetTileCursorXY(laser.start_edge.x, laser.start_edge.y); + SetTileCursorActive(TRUE); } void AddLaserEdge(int lx, int ly) @@ -1965,8 +1968,12 @@ boolean HitLaserDestination(int element, int hit_mask) AddDamagedField(ELX, ELY); if (game_mm.lights_still_needed == 0) + { game_mm.level_solved = TRUE; + SetTileCursorActive(FALSE); + } + return TRUE; } @@ -2474,6 +2481,8 @@ static void Explode_MM(int x, int y, int phase, int mode) game_mm.game_over = TRUE; game_mm.game_over_cause = GAME_OVER_BOMB; + SetTileCursorActive(FALSE); + laser.overloaded = FALSE; } else if (IS_MCDUFFIN(Store[x][y])) @@ -3155,6 +3164,8 @@ static void GameActions_MM_Ext(struct MouseActionInfo action, boolean warp_mode) game_mm.game_over = TRUE; game_mm.game_over_cause = GAME_OVER_NO_ENERGY; + SetTileCursorActive(FALSE); + #if 0 if (Request("Out of magic energy ! Play it again ?", REQ_ASK | REQ_STAY_CLOSED)) @@ -3285,6 +3296,8 @@ static void GameActions_MM_Ext(struct MouseActionInfo action, boolean warp_mode) game_mm.game_over = TRUE; game_mm.game_over_cause = GAME_OVER_OVERLOADED; + SetTileCursorActive(FALSE); + #if 0 if (Request("Magic spell hit Mc Duffin ! Play it again ?", REQ_ASK | REQ_STAY_CLOSED)) @@ -3734,6 +3747,8 @@ void GameActions_MM(struct MouseActionInfo action, boolean warp_mode) ClickElement(action.lx, action.ly, action.button); GameActions_MM_Ext(action, warp_mode); + + CheckSingleStepMode_MM(action.button == MB_RELEASED); } void MovePacMen()