(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.

This commit is contained in:
peter1138 2008-01-01 22:34:00 +00:00
parent 47082fec5c
commit fa83291a76
6 changed files with 11 additions and 2 deletions

View File

@ -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;

View File

@ -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;
}
}
}

View File

@ -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.

View File

@ -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) {

View File

@ -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;

View File

@ -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;