From 8e92351a2b20a0ee3c7757dd09d50f6790422225 Mon Sep 17 00:00:00 2001 From: Richard Jenkins Date: Sat, 12 Aug 2017 13:00:43 +0100 Subject: [PATCH] Fix #6101: Rides remain in ride list briefly after demolition (#6165) --- src/openrct2/interface/window.h | 1 + src/openrct2/windows/DemolishRidePrompt.cpp | 9 +++++++++ src/openrct2/windows/RideList.cpp | 3 +-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/openrct2/interface/window.h b/src/openrct2/interface/window.h index 0ef1d57118..384d3d1d19 100644 --- a/src/openrct2/interface/window.h +++ b/src/openrct2/interface/window.h @@ -715,6 +715,7 @@ rct_window *window_ride_open_vehicle(rct_vehicle *vehicle); void window_ride_demolish_prompt_open(sint32 rideIndex); void window_ride_construct(rct_window *w); void window_ride_list_open(); +void window_ride_list_refresh_list(rct_window *w); rct_window *window_ride_construction_open(); rct_window *window_maze_construction_open(); void ride_construction_toolupdate_entrance_exit(sint32 screenX, sint32 screenY); diff --git a/src/openrct2/windows/DemolishRidePrompt.cpp b/src/openrct2/windows/DemolishRidePrompt.cpp index 6742854b6b..9755dcb9b9 100644 --- a/src/openrct2/windows/DemolishRidePrompt.cpp +++ b/src/openrct2/windows/DemolishRidePrompt.cpp @@ -99,10 +99,19 @@ static void _window_ride_demolish_prompt_open(sint32 rideIndex) */ static void window_ride_demolish_mouseup(rct_window *w, rct_widgetindex widgetIndex) { + rct_window* window; switch (widgetIndex) { case WIDX_DEMOLISH: gGameCommandErrorTitle = STR_CANT_DEMOLISH_RIDE; game_do_command(0, 1, 0, w->number, GAME_COMMAND_DEMOLISH_RIDE, 0, 1); // Set ebp to 1 to be used to log demolish from window prompt + + // Prevents demolished rides sticking around in the ride list window + window = window_find_by_class(WC_RIDE_LIST); + if (window != NULL) + { + window_ride_list_refresh_list(window); + } + break; case WIDX_CANCEL: case WIDX_CLOSE: diff --git a/src/openrct2/windows/RideList.cpp b/src/openrct2/windows/RideList.cpp index f172ce11b7..6738345dc8 100644 --- a/src/openrct2/windows/RideList.cpp +++ b/src/openrct2/windows/RideList.cpp @@ -188,7 +188,6 @@ static const rct_string_id page_names[] = { static sint32 _window_ride_list_information_type; static void window_ride_list_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w); -static void window_ride_list_refresh_list(rct_window *w); static void window_ride_list_close_all(rct_window *w); static void window_ride_list_open_all(rct_window *w); @@ -739,7 +738,7 @@ static void window_ride_list_draw_tab_images(rct_drawpixelinfo *dpi, rct_window * * rct2: 0x006B39A8 */ -static void window_ride_list_refresh_list(rct_window *w) +void window_ride_list_refresh_list(rct_window *w) { sint32 i; rct_ride *ride, *otherRide;