From fe9d19bff6f18f4c5cc1e33d8928be3cbff61cf0 Mon Sep 17 00:00:00 2001 From: hdpoliveira Date: Fri, 10 Apr 2020 05:06:46 -0300 Subject: [PATCH] Part of #9473: vehicle_finish_departing to Vehicle::FinishDeparting --- src/openrct2/ride/Vehicle.cpp | 47 +++++++++++++++++------------------ src/openrct2/ride/Vehicle.h | 1 + 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/openrct2/ride/Vehicle.cpp b/src/openrct2/ride/Vehicle.cpp index 8740a5871b..279d0c971b 100644 --- a/src/openrct2/ride/Vehicle.cpp +++ b/src/openrct2/ride/Vehicle.cpp @@ -47,7 +47,6 @@ static void vehicle_claxon(const Vehicle* vehicle); -static void vehicle_finish_departing(Vehicle* vehicle); static void vehicle_update_boat_location(Vehicle* vehicle); static bool vehicle_boat_is_location_accessible(const CoordsXYZ& location); static void vehicle_update_crash_setup(Vehicle* vehicle); @@ -3272,7 +3271,7 @@ void Vehicle::UpdateDeparting() if (curRide->mode == RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE) { velocity = -velocity; - vehicle_finish_departing(this); + FinishDeparting(); return; } } @@ -3287,7 +3286,7 @@ void Vehicle::UpdateDeparting() else if (curRide->mode == RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE) { velocity = -velocity; - vehicle_finish_departing(this); + FinishDeparting(); return; } else if (curRide->mode == RIDE_MODE_SHUTTLE) @@ -3358,7 +3357,7 @@ void Vehicle::UpdateDeparting() { if (!(curFlags & VEHICLE_UPDATE_MOTION_TRACK_FLAG_3) || _vehicleStationIndex != current_station) { - vehicle_finish_departing(this); + FinishDeparting(); return; } @@ -3380,7 +3379,7 @@ void Vehicle::UpdateDeparting() return; } - vehicle_finish_departing(this); + FinishDeparting(); } /** @@ -3392,45 +3391,45 @@ void Vehicle::UpdateDeparting() * boosters do not affect the ride. * rct2: 0x006D8858 */ -static void vehicle_finish_departing(Vehicle* vehicle) +void Vehicle::FinishDeparting() { - auto ride = get_ride(vehicle->ride); - if (ride == nullptr) + auto curRide = get_ride(ride); + if (curRide == nullptr) return; - if (ride->mode == RIDE_MODE_DOWNWARD_LAUNCH) + if (curRide->mode == RIDE_MODE_DOWNWARD_LAUNCH) { - if (vehicle->var_CE >= 1 && (14 << 16) > vehicle->velocity) + if (var_CE >= 1 && (14 << 16) > velocity) return; - audio_play_sound_at_location(SoundId::RideLaunch1, { vehicle->x, vehicle->y, vehicle->z }); + audio_play_sound_at_location(SoundId::RideLaunch1, { x, y, z }); } - if (ride->mode == RIDE_MODE_UPWARD_LAUNCH) + if (curRide->mode == RIDE_MODE_UPWARD_LAUNCH) { - if ((ride->launch_speed << 16) > vehicle->velocity) + if ((curRide->launch_speed << 16) > velocity) return; - audio_play_sound_at_location(SoundId::RideLaunch1, { vehicle->x, vehicle->y, vehicle->z }); + audio_play_sound_at_location(SoundId::RideLaunch1, { x, y, z }); } - if (ride->mode != RIDE_MODE_RACE && ride->mode != RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED - && ride->mode != RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) + if (curRide->mode != RIDE_MODE_RACE && curRide->mode != RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED + && curRide->mode != RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) { - ride->stations[vehicle->current_station].Depart &= STATION_DEPART_FLAG; + curRide->stations[current_station].Depart &= STATION_DEPART_FLAG; uint8_t waitingTime = 3; - if (ride->depart_flags & RIDE_DEPART_WAIT_FOR_MINIMUM_LENGTH) + if (curRide->depart_flags & RIDE_DEPART_WAIT_FOR_MINIMUM_LENGTH) { - waitingTime = std::max(ride->min_waiting_time, static_cast(3)); + waitingTime = std::max(curRide->min_waiting_time, static_cast(3)); waitingTime = std::min(waitingTime, static_cast(127)); } - ride->stations[vehicle->current_station].Depart |= waitingTime; + curRide->stations[current_station].Depart |= waitingTime; } - vehicle->lost_time_out = 0; - vehicle->SetState(VEHICLE_STATUS_TRAVELLING, 1); - if (vehicle->velocity < 0) - vehicle->sub_state = 0; + lost_time_out = 0; + SetState(VEHICLE_STATUS_TRAVELLING, 1); + if (velocity < 0) + sub_state = 0; } /** diff --git a/src/openrct2/ride/Vehicle.h b/src/openrct2/ride/Vehicle.h index b49a8bdeb0..b9a2473205 100644 --- a/src/openrct2/ride/Vehicle.h +++ b/src/openrct2/ride/Vehicle.h @@ -322,6 +322,7 @@ private: void UpdateCrookedHouseOperating(); void UpdateRotating(); void UpdateDeparting(); + void FinishDeparting(); void UpdateTravelling(); void UpdateTravellingCableLift(); void UpdateTravellingBoat();