summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2008-01-01 22:34:00 +0000
committerpeter1138 <peter1138@openttd.org>2008-01-01 22:34:00 +0000
commitfa83291a766d23bbffbf4f860e040ae669423f31 (patch)
tree0457000dece8ef1a1e93d2d81127d4772fae6376
parent47082fec5c9be387803096d2c4a7d808d1ac4773 (diff)
downloadopenttd-fa83291a766d23bbffbf4f860e040ae669423f31.tar.xz
(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.
-rw-r--r--src/graph_gui.cpp2
-rw-r--r--src/group_gui.cpp3
-rw-r--r--src/industry_gui.cpp1
-rw-r--r--src/openttd.cpp5
-rw-r--r--src/station_gui.cpp1
-rw-r--r--src/vehicle_gui.cpp1
6 files changed, 11 insertions, 2 deletions
diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp
index 96aa63b90..eb94a8325 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 5bcb554a2..e7368312c 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 f90c8e6a1..a6eeb2e38 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 8fbdd0b11..b4f64e10c 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 0da9f32e7..cf19c1969 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 bfdcd8baf..fb30a8618 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;