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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user