diff --git a/src/openrct2/actions/RideDemolishAction.hpp b/src/openrct2/actions/RideDemolishAction.hpp index 2ffd1f4564..d3b4645453 100644 --- a/src/openrct2/actions/RideDemolishAction.hpp +++ b/src/openrct2/actions/RideDemolishAction.hpp @@ -196,7 +196,10 @@ public: res->Position = { x, y, z }; } - window_close_by_number(WC_RIDE_CONSTRUCTION, _rideIndex); + if (!(GetFlags() & GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED)) + { + window_close_by_number(WC_RIDE_CONSTRUCTION, _rideIndex); + } window_close_by_number(WC_RIDE, _rideIndex); window_close_by_number(WC_DEMOLISH_RIDE_PROMPT, _rideIndex); window_close_by_class(WC_NEW_CAMPAIGN); diff --git a/src/openrct2/windows/MazeConstruction.cpp b/src/openrct2/windows/MazeConstruction.cpp index 7a37552101..ffcfc212dd 100644 --- a/src/openrct2/windows/MazeConstruction.cpp +++ b/src/openrct2/windows/MazeConstruction.cpp @@ -181,7 +181,7 @@ static void window_maze_construction_close(rct_window *w) if (ride->overall_view.xy == RCT_XY8_UNDEFINED) { sint32 savedPausedState = gGamePaused; gGamePaused = 0; - game_do_command(0, GAME_COMMAND_FLAG_APPLY | GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED, 0, rideIndex, GAME_COMMAND_DEMOLISH_RIDE, 0, 0); + ride_demolish(rideIndex, GAME_COMMAND_FLAG_APPLY | GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED); gGamePaused = savedPausedState; } else { window_ride_main_open(rideIndex); diff --git a/src/openrct2/windows/RideConstruction.cpp b/src/openrct2/windows/RideConstruction.cpp index ac7a8d783a..862acc1957 100644 --- a/src/openrct2/windows/RideConstruction.cpp +++ b/src/openrct2/windows/RideConstruction.cpp @@ -664,8 +664,7 @@ static void window_ride_construction_close(rct_window *w) sint32 eax = gGamePaused; gGamePaused = 0; - game_do_command(0, 9, 0, rideIndex, GAME_COMMAND_DEMOLISH_RIDE, 0, 0); - + ride_demolish(rideIndex, GAME_COMMAND_FLAG_APPLY); gGamePaused = eax; } } diff --git a/src/openrct2/windows/RideList.cpp b/src/openrct2/windows/RideList.cpp index e2c023e505..ad97004023 100644 --- a/src/openrct2/windows/RideList.cpp +++ b/src/openrct2/windows/RideList.cpp @@ -436,7 +436,7 @@ static void window_ride_list_scrollmousedown(rct_window *w, sint32 scrollIndex, uint8 rideIndex = w->list_item_positions[index]; if (_quickDemolishMode && network_get_mode() != NETWORK_MODE_CLIENT) { gGameCommandErrorTitle = STR_CANT_DEMOLISH_RIDE; - game_do_command(0, GAME_COMMAND_FLAG_APPLY, 0, rideIndex, GAME_COMMAND_DEMOLISH_RIDE, 0, 0); + ride_demolish(rideIndex, GAME_COMMAND_FLAG_APPLY); window_ride_list_refresh_list(w); } else {