diff --git a/src/openrct2/actions/RideSetSettingAction.cpp b/src/openrct2/actions/RideSetSettingAction.cpp index 7afabd1b03..e250fa9c06 100644 --- a/src/openrct2/actions/RideSetSettingAction.cpp +++ b/src/openrct2/actions/RideSetSettingAction.cpp @@ -169,13 +169,6 @@ namespace OpenRCT2::GameActions RideClearForConstruction(*ride); ride->removePeeps(); - if (ride->status == RideStatus::simulating) - { - // Also close the ride - auto gameAction = GameActions::RideSetStatusAction(ride->id, RideStatus::closed); - ExecuteNested(&gameAction, gameState); - } - ride->mode = static_cast(_value); ride->updateMaxVehicles(); ride->updateNumberOfCircuits(); diff --git a/src/openrct2/ride/RideConstruction.cpp b/src/openrct2/ride/RideConstruction.cpp index 0e63a38d63..69453cbd08 100644 --- a/src/openrct2/ride/RideConstruction.cpp +++ b/src/openrct2/ride/RideConstruction.cpp @@ -236,6 +236,12 @@ void RideClearForConstruction(Ride& ride) ride.removeVehicles(); RideClearBlockedTiles(ride); + // Force close simulating rides, to reset flag widget in Construction UI + if (ride.status == RideStatus::simulating) + { + ride.status = RideStatus::closed; + } + auto* windowMgr = Ui::GetWindowManager(); auto w = windowMgr->FindByNumber(WindowClass::ride, ride.id.ToUnderlying()); if (w != nullptr)