added variable to store if request dialog is active or opening/closing
authorHolger Schemel <info@artsoft.org>
Fri, 18 Dec 2020 01:09:37 +0000 (02:09 +0100)
committerHolger Schemel <info@artsoft.org>
Mon, 21 Dec 2020 22:53:06 +0000 (23:53 +0100)
src/game.c
src/game.h
src/init.c
src/tools.c

index edf7f6ab5066ef7af0900bcdcac720f386b7e4af..cb107f0e8e7aa0803b5240eab1acdfd89fe1597b 100644 (file)
@@ -4447,7 +4447,9 @@ void InitGame(void)
 
   game.restart_level = FALSE;
   game.restart_game_message = NULL;
+
   game.request_active = FALSE;
+  game.request_active_or_moving = FALSE;
 
   if (level.game_engine_type == GAME_ENGINE_TYPE_MM)
     InitGameActions_MM();
index 0851c5400d29e4e1bdf1a134c6c07d1deb398bbc..b34d43445620b13f77d4dd924cfb75a6054f3efd 100644 (file)
@@ -236,6 +236,7 @@ struct GameInfo
 
   // values for special request dialog control
   boolean request_active;
+  boolean request_active_or_moving;
 
   // values for special game control
   int centered_player_nr;
index c5427aca219af9b253c46dddb7d025a6d802bce8..210594fcded4aa7e712a7f48680c0fbeb248c822 100644 (file)
@@ -5205,7 +5205,9 @@ static void InitGameInfo(void)
 {
   game.restart_level = FALSE;
   game.restart_game_message = NULL;
+
   game.request_active = FALSE;
+  game.request_active_or_moving = FALSE;
 }
 
 static void InitPlayerInfo(void)
index 2157ef740c812d23b87ba6cb453781c2eec7b877..8a2d895a8d65d5778a2e0bc9310c141a070ef2af 100644 (file)
@@ -4804,6 +4804,8 @@ boolean Request(char *text, unsigned int req_state)
   boolean overlay_enabled = GetOverlayEnabled();
   boolean result;
 
+  game.request_active_or_moving = TRUE;
+
   SetOverlayEnabled(FALSE);
 
   if (global.use_envelope_request)
@@ -4813,6 +4815,8 @@ boolean Request(char *text, unsigned int req_state)
 
   SetOverlayEnabled(overlay_enabled);
 
+  game.request_active_or_moving = FALSE;
+
   return result;
 }