summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/openttd.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp
index 2d37c8e3a..035e8e5ae 100644
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -1347,8 +1347,8 @@ void StateGameLoop()
StateGameLoop_LinkGraphPauseControl();
}
- /* don't execute the state loop during pause */
- if (_pause_mode != PM_UNPAUSED) {
+ /* Don't execute the state loop during pause or when modal windows are open. */
+ if (_pause_mode != PM_UNPAUSED || HasModalProgress()) {
PerformanceMeasurer::Paused(PFE_GAMELOOP);
PerformanceMeasurer::Paused(PFE_GL_ECONOMY);
PerformanceMeasurer::Paused(PFE_GL_TRAINS);
@@ -1357,7 +1357,7 @@ void StateGameLoop()
PerformanceMeasurer::Paused(PFE_GL_AIRCRAFT);
PerformanceMeasurer::Paused(PFE_GL_LANDSCAPE);
- UpdateLandscapingLimits();
+ if (!HasModalProgress()) UpdateLandscapingLimits();
#ifndef DEBUG_DUMP_COMMANDS
Game::GameLoop();
#endif
@@ -1366,7 +1366,6 @@ void StateGameLoop()
PerformanceMeasurer framerate(PFE_GAMELOOP);
PerformanceAccumulator::Reset(PFE_GL_LANDSCAPE);
- if (HasModalProgress()) return;
Layouter::ReduceLineCache();