diff --git a/src/window.h b/src/window.h index dff987d918..3b80f58142 100644 --- a/src/window.h +++ b/src/window.h @@ -361,6 +361,7 @@ void window_water_open(); void window_guest_list_open(); void window_park_awards_open(); void window_park_entrance_open(); +void window_park_guests_open(); void window_park_objective_open(); void window_park_rating_open(); void window_ride_list_open(); diff --git a/src/window_game_bottom_toolbar.c b/src/window_game_bottom_toolbar.c index 4169876f68..a5914cf9ef 100644 --- a/src/window_game_bottom_toolbar.c +++ b/src/window_game_bottom_toolbar.c @@ -163,7 +163,7 @@ static void window_game_bottom_toolbar_mouseup() RCT2_CALLPROC_EBPSAFE(0x0069DDF1); break; case WIDX_GUESTS: - RCT2_CALLPROC_EBPSAFE(0x00667D35); + window_park_guests_open(); break; case WIDX_PARK_RATING: window_park_rating_open(); diff --git a/src/window_park.c b/src/window_park.c index 3ed83cd0e0..e01ca4550a 100644 --- a/src/window_park.c +++ b/src/window_park.c @@ -1226,6 +1226,35 @@ static void window_park_rating_paint() #pragma region Guests page +/** +* +* rct2: 0x00667D35 +*/ +void window_park_guests_open() +{ + rct_window* window; + + window = window_bring_to_front_by_id(WC_PARK_INFORMATION, 0); + if (window == NULL) { + window = window_park_open(); + window->var_482 = -1; + window->var_484 = -1; + } + + if (RCT2_GLOBAL(0x009DE518, uint32) & (1 << 3)) + if (window->classification == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWCLASS, rct_windowclass) && window->number == RCT2_GLOBAL(RCT2_ADDRESS_TOOL_WINDOWNUMBER, rct_windownumber)) + tool_cancel(); + + window->viewport = NULL; + window->page = WINDOW_PARK_PAGE_GUESTS; + window_invalidate(window); + window->widgets = window_park_guests_widgets; + window->enabled_widgets = window_park_page_enabled_widgets[WINDOW_PARK_PAGE_GUESTS]; + window->var_020 = 0; + window->event_handlers = window_park_guests_events; + window_init_scroll_widgets(window); +} + /** * * rct2: 0x00668DEB