diff --git a/src/openrct2/actions/TrackPlaceAction.hpp b/src/openrct2/actions/TrackPlaceAction.hpp index ade152146d..dffe32ade2 100644 --- a/src/openrct2/actions/TrackPlaceAction.hpp +++ b/src/openrct2/actions/TrackPlaceAction.hpp @@ -18,6 +18,7 @@ #include "../world/MapAnimation.h" #include "../world/Surface.h" #include "GameAction.h" +#include "RideSetSetting.hpp" class TrackPlaceActionResult final : public GameActions::Result { @@ -561,14 +562,19 @@ public: ride->CableLiftLoc = mapLoc; break; case TrackElemType::BlockBrakes: + { ride->num_block_brakes++; ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_OPERATING; - ride->mode = RideMode::ContinuousCircuitBlockSectioned; + RideMode newMode = RideMode::ContinuousCircuitBlockSectioned; if (ride->type == RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER) - ride->mode = RideMode::PoweredLaunchBlockSectioned; + newMode = RideMode::PoweredLaunchBlockSectioned; + auto rideSetSetting = RideSetSettingAction( + ride->id, RideSetSetting::Mode, static_cast(newMode)); + GameActions::ExecuteNested(&rideSetSetting); break; + } } if (trackBlock->index == 0) diff --git a/src/openrct2/actions/TrackRemoveAction.hpp b/src/openrct2/actions/TrackRemoveAction.hpp index 0c5eddf949..b82ef2be66 100644 --- a/src/openrct2/actions/TrackRemoveAction.hpp +++ b/src/openrct2/actions/TrackRemoveAction.hpp @@ -18,6 +18,7 @@ #include "../world/MapAnimation.h" #include "../world/Surface.h" #include "GameAction.h" +#include "RideSetSetting.hpp" DEFINE_GAME_ACTION(TrackRemoveAction, GAME_COMMAND_REMOVE_TRACK, GameActions::Result) { @@ -472,12 +473,17 @@ public: if (ride->num_block_brakes == 0) { ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_OPERATING; - ride->mode = RideMode::ContinuousCircuit; + RideMode newMode = RideMode::ContinuousCircuit; if (ride->type == RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER) { - ride->mode = RideMode::PoweredLaunch; + newMode = RideMode::PoweredLaunch; } + + auto rideSetSetting = RideSetSettingAction( + ride->id, RideSetSetting::Mode, static_cast(newMode)); + GameActions::ExecuteNested(&rideSetSetting); } + break; }