cleanup of some common and specific game engine function calls
[rocksndiamonds.git] / src / game.c
index 49908daaae39c7970777a519d49da601eb039ae1..49acec5bed46a4c70b979dd4fc3f5d795284c645 100644 (file)
@@ -4392,13 +4392,16 @@ void GameEnd()
 
   local_player->LevelSolved_GameEnd = TRUE;
 
-  CloseDoor(DOOR_CLOSE_1);
+  if (!global.use_envelope_request)
+    CloseDoor(DOOR_CLOSE_1);
 
   if (local_player->LevelSolved_SaveTape)
   {
     SaveTapeChecked(tape.level_nr);    /* ask to save tape */
   }
 
+  CloseDoor(DOOR_CLOSE_ALL);
+
   if (level_editor_test_game)
   {
     game_status = GAME_MODE_MAIN;
@@ -11194,7 +11197,11 @@ void GameActions()
     GameActions_RND_Main();
   }
 
-  redraw_mask |= REDRAW_FIELD;
+  BlitScreenToBitmap(backbuffer);
+
+  CheckLevelTime();
+
+  AdvanceFrameAndPlayerCounters(-1);   /* advance counters for all players */
 }
 
 void GameActions_EM_Main()
@@ -11207,10 +11214,6 @@ void GameActions_EM_Main()
     effective_action[i] = stored_player[i].effective_action;
 
   GameActions_EM(effective_action, warp_mode);
-
-  CheckLevelTime();
-
-  AdvanceFrameAndPlayerCounters(-1);   /* advance counters for all players */
 }
 
 void GameActions_SP_Main()
@@ -11223,17 +11226,11 @@ void GameActions_SP_Main()
     effective_action[i] = stored_player[i].effective_action;
 
   GameActions_SP(effective_action, warp_mode);
-
-  CheckLevelTime();
-
-  AdvanceFrameAndPlayerCounters(-1);   /* advance counters for all players */
 }
 
 void GameActions_RND_Main()
 {
   GameActions_RND();
-
-  BlitScreenToBitmap_RND(backbuffer);
 }
 
 void GameActions_RND()
@@ -11735,8 +11732,6 @@ void GameActions_RND()
   }
 #endif
 
-  CheckLevelTime();
-
   DrawAllPlayers();
   PlayAllPlayersSound();
 
@@ -11759,8 +11754,6 @@ void GameActions_RND()
     redraw_mask |= REDRAW_FPS;
   }
 
-  AdvanceFrameAndPlayerCounters(-1);   /* advance counters for all players */
-
   if (local_player->show_envelope != 0 && local_player->MovPos == 0)
   {
     ShowEnvelope(local_player->show_envelope - EL_ENVELOPE_1);