1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-23 23:04:36 +01:00

Close #21728: Apply "Fix all rides" even if mechanic is already working

Added checks for mechanic fixing plus handles inspecting and calling.
This commit is contained in:
JDCustard
2024-04-07 20:39:04 +01:00
committed by Gymnasiast
parent 21001be23d
commit fe6da02718
2 changed files with 13 additions and 3 deletions

View File

@@ -512,13 +512,22 @@ void CheatSetAction::FixBrokenRides() const
{
for (auto& ride : GetRideManager())
{
if ((ride.mechanic_status != RIDE_MECHANIC_STATUS_FIXING)
&& (ride.lifecycle_flags & (RIDE_LIFECYCLE_BREAKDOWN_PENDING | RIDE_LIFECYCLE_BROKEN_DOWN)))
if (ride.lifecycle_flags & (RIDE_LIFECYCLE_BREAKDOWN_PENDING | RIDE_LIFECYCLE_BROKEN_DOWN))
{
auto mechanic = RideGetAssignedMechanic(ride);
if (mechanic != nullptr)
{
mechanic->RemoveFromRide();
if (ride.mechanic_status == RIDE_MECHANIC_STATUS_FIXING)
{
mechanic->RideSubState = PeepRideSubState::ApproachExit;
}
else if (
ride.mechanic_status == RIDE_MECHANIC_STATUS_CALLING
|| ride.mechanic_status == RIDE_MECHANIC_STATUS_HEADING)
{
mechanic->RemoveFromRide();
}
}
RideFixBreakdown(ride, 0);