diff --git a/src/addresses.h b/src/addresses.h index 9b81d533a2..4fab850ac3 100644 --- a/src/addresses.h +++ b/src/addresses.h @@ -146,8 +146,6 @@ #define RCT2_ADDRESS_PLACE_OBJECT_MODIFIER 0x009DEA70 #define RCT2_ADDRESS_ON_TUTORIAL 0x009DEA71 -#define RCT2_ADDRESS_WINDOW_UPDATE_TICKS 0x009DEB7C - #define RCT2_ADDRESS_MOUSE_WRITE_INDEX 0x009E2DE4 #define RCT2_ADDRESS_MOUSE_READ_INDEX 0x009E2DE8 #define RCT2_ADDRESS_HFONT 0x009E2DEC @@ -516,6 +514,8 @@ #define RCT2_ADDRESS_GAME_PAUSED 0x009DEA6E #define RCT2_ADDRESS_WINDOW_DPI 0x009DEA74 +#define RCT2_ADDRESS_WINDOW_UPDATE_TICKS 0x009DEB7C + #define RCT2_ADDRESS_TEXTINPUT_WIDGETINDEX 0x009DEB88 #define RCT2_ADDRESS_TEXTINPUT_WINDOWNUMBER 0x009DEB8A #define RCT2_ADDRESS_TEXTINPUT_WINDOWCLASS 0x009DEB8C diff --git a/src/editor.c b/src/editor.c index 59d6b1a7a7..c2cc4d4250 100644 --- a/src/editor.c +++ b/src/editor.c @@ -538,7 +538,7 @@ static void editor_finalise_main_view() reset_all_sprite_quadrant_placements(); scenery_set_default_placement_configuration(); window_new_ride_init_vars(); - RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_UPDATE_TICKS, uint16) = 0; + gWindowUpdateTicks = 0; load_palette(); gfx_invalidate_screen(); } diff --git a/src/game.c b/src/game.c index e131ddca2f..35d4302f84 100644 --- a/src/game.c +++ b/src/game.c @@ -858,7 +858,7 @@ void game_load_init() reset_all_sprite_quadrant_placements(); scenery_set_default_placement_configuration(); window_new_ride_init_vars(); - RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_UPDATE_TICKS, uint16) = 0; + gWindowUpdateTicks = 0; if (RCT2_GLOBAL(RCT2_ADDRESS_LOAN_HASH, uint32) == 0) // this check is not in scenario play finance_update_loan_hash(); diff --git a/src/interface/console.c b/src/interface/console.c index 5395a8735f..8e74ccf188 100644 --- a/src/interface/console.c +++ b/src/interface/console.c @@ -921,7 +921,7 @@ static int cc_load_object(const utf8 **argv, int argc) { scenery_set_default_placement_configuration(); window_new_ride_init_vars(); - RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_UPDATE_TICKS, uint16) = 0; + gWindowUpdateTicks = 0; gfx_invalidate_screen(); console_writeline("Object file loaded."); } diff --git a/src/interface/window.c b/src/interface/window.c index d5a6b49adc..8caaf977b1 100644 --- a/src/interface/window.c +++ b/src/interface/window.c @@ -47,6 +47,7 @@ int gTextBoxFrameNo = 0; bool gUsingWidgetTextBox = 0; bool gLoadSaveTitleSequenceSave = 0; +uint16 gWindowUpdateTicks; uint8 gToolbarDirtyFlags; uint16 gWindowMapFlashingFlags; @@ -164,9 +165,9 @@ void window_update_all() // gfx_draw_all_dirty_blocks(); // 1000 tick update - RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_UPDATE_TICKS, sint16) += gTicksSinceLastUpdate; - if (RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_UPDATE_TICKS, sint16) >= 1000) { - RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_UPDATE_TICKS, sint16) = 0; + gWindowUpdateTicks += gTicksSinceLastUpdate; + if (gWindowUpdateTicks >= 1000) { + gWindowUpdateTicks = 0; for (rct_window* w = RCT2_LAST_WINDOW; w >= g_window_list; w--) window_event_unknown_07_call(w); } diff --git a/src/interface/window.h b/src/interface/window.h index 0a4a82569f..b3d9dbddca 100644 --- a/src/interface/window.h +++ b/src/interface/window.h @@ -533,6 +533,7 @@ extern rct_window * gWindowNextSlot; // rct2: 0x00F635EE extern ride_list_item _window_track_list_item; +extern uint16 gWindowUpdateTicks; extern uint8 gToolbarDirtyFlags; extern uint16 gWindowMapFlashingFlags; diff --git a/src/scenario.c b/src/scenario.c index 6d41af4005..fff081e5a2 100644 --- a/src/scenario.c +++ b/src/scenario.c @@ -182,7 +182,7 @@ void scenario_begin() gScenarioSrand0 ^= platform_get_ticks(); gScenarioSrand1 ^= platform_get_ticks(); - RCT2_GLOBAL(RCT2_ADDRESS_WINDOW_UPDATE_TICKS, sint16) = 0; + gWindowUpdateTicks = 0; gParkFlags &= ~PARK_FLAGS_NO_MONEY; if (gParkFlags & PARK_FLAGS_NO_MONEY_SCENARIO) gParkFlags |= PARK_FLAGS_NO_MONEY;