From fa83291a766d23bbffbf4f860e040ae669423f31 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Tue, 1 Jan 2008 22:34:00 +0000 Subject: [PATCH] (svn r11742) -Codechange [FS#1319]: Run window tick events when paused, so that news pop-ups and the about window still progress. For other windows the events are ignored when paused. --- src/graph_gui.cpp | 2 ++ src/group_gui.cpp | 3 ++- src/industry_gui.cpp | 1 + src/openttd.cpp | 5 ++++- src/station_gui.cpp | 1 + src/vehicle_gui.cpp | 1 + 6 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp index 96aa63b904..eb94a8325f 100644 --- a/src/graph_gui.cpp +++ b/src/graph_gui.cpp @@ -1102,6 +1102,8 @@ static void PerformanceRatingDetailWndProc(Window *w, WindowEvent *e) } case WE_TICK: + if (_pause_game != 0) break; + /* Update the player score every 5 days */ if (--w->custom[0] == 0) { w->custom[0] = DAY_TICKS; diff --git a/src/group_gui.cpp b/src/group_gui.cpp index 5bcb554a2e..e7368312c1 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -752,6 +752,7 @@ static void GroupWndProc(Window *w, WindowEvent *e) case WE_TICK: // resort the lists every 20 seconds orso (10 days) + if (_pause_game != 0) break; if (--gv->l.resort_timer == 0) { gv->l.resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS; gv->l.flags |= VL_RESORT; @@ -763,7 +764,7 @@ static void GroupWndProc(Window *w, WindowEvent *e) SetWindowDirty(w); } break; - } + } } diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index f90c8e6a15..a6eeb2e38f 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -297,6 +297,7 @@ static void BuildDynamicIndustryWndProc(Window *w, WindowEvent *e) } break; case WE_TICK: + if (_pause_game != 0) break; if (!WP(w, fnd_d).timer_enabled) break; if (--WP(w, fnd_d).callback_timer == 0) { /* We have just passed another day. diff --git a/src/openttd.cpp b/src/openttd.cpp index 8fbdd0b11b..b4f64e10c9 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -962,7 +962,10 @@ void StateGameLoop() ClearStorageChanges(false); /* dont execute the state loop during pause */ - if (_pause_game) return; + if (_pause_game) { + CallWindowTickEvent(); + return; + } if (IsGeneratingWorld()) return; if (_game_mode == GM_EDITOR) { diff --git a/src/station_gui.cpp b/src/station_gui.cpp index 0da9f32e71..cf19c19693 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -544,6 +544,7 @@ static void PlayerStationsWndProc(Window *w, WindowEvent *e) break; case WE_TICK: + if (_pause_game != 0) break; if (--sl->resort_timer == 0) { DEBUG(misc, 3, "Periodic rebuild station list player %d", owner); sl->resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS; diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index bfdcd8baf3..fb30a86181 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -1157,6 +1157,7 @@ void PlayerVehWndProc(Window *w, WindowEvent *e) break; case WE_TICK: /* resort the list every 20 seconds orso (10 days) */ + if (_pause_game != 0) break; if (--vl->l.resort_timer == 0) { StationID station = ((w->window_number & VLW_MASK) == VLW_STATION_LIST) ? GB(w->window_number, 16, 16) : INVALID_STATION; PlayerID owner = (PlayerID)w->caption_color;