1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-17 20:13:07 +01:00

Part of #9473: Create Vehicle::UpdateGoKartAttemptSwitchLanes (#11995)

This commit is contained in:
Hudson Oliveira
2020-06-19 14:06:21 -03:00
committed by GitHub
parent 57b121d448
commit ea9dd60b91
2 changed files with 8 additions and 13 deletions

View File

@@ -7493,12 +7493,12 @@ static bool loc_6DB38B(Vehicle* vehicle, TileElement* tileElement)
return vangleStart == _vehicleVAngleEndF64E36 && bankStart == _vehicleBankEndF64E37;
}
static void VehicleUpdateGoKartAttemptSwitchLanes(Vehicle* vehicle)
void Vehicle::UpdateGoKartAttemptSwitchLanes()
{
uint16_t probability = 0x8000;
if (vehicle->HasUpdateFlag(VEHICLE_UPDATE_FLAG_6))
if (HasUpdateFlag(VEHICLE_UPDATE_FLAG_6))
{
vehicle->ClearUpdateFlag(VEHICLE_UPDATE_FLAG_6);
ClearUpdateFlag(VEHICLE_UPDATE_FLAG_6);
}
else
{
@@ -7507,7 +7507,7 @@ static void VehicleUpdateGoKartAttemptSwitchLanes(Vehicle* vehicle)
if ((scenario_rand() & 0xFFFF) <= probability)
{
// This changes "riding left" to "moving to right lane" and "riding right" to "moving to left lane".
vehicle->TrackSubposition += 2;
TrackSubposition += 2;
}
}
@@ -8065,16 +8065,10 @@ bool Vehicle::UpdateTrackMotionForwardsGetNewTrack(uint16_t trackType, Ride* cur
&& TrackSubposition < VEHICLE_TRACK_SUBPOSITION_GO_KARTS_MOVING_TO_RIGHT_LANE)
{
trackType = tileElement->AsTrack()->GetTrackType();
if (trackType == TRACK_ELEM_FLAT)
if (trackType == TRACK_ELEM_FLAT
|| ((curRide->lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING) && tileElement->AsTrack()->IsStation()))
{
VehicleUpdateGoKartAttemptSwitchLanes(this);
}
else if (curRide->lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING)
{
if (tileElement->AsTrack()->IsStation())
{
VehicleUpdateGoKartAttemptSwitchLanes(this);
}
UpdateGoKartAttemptSwitchLanes();
}
}

View File

@@ -425,6 +425,7 @@ private:
void UpdateTrackMotionMiniGolfVehicle(Ride* curRide, rct_ride_entry* rideEntry, rct_ride_entry_vehicle* vehicleEntry);
bool UpdateTrackMotionForwardsGetNewTrack(uint16_t trackType, Ride* curRide, rct_ride_entry* rideEntry);
bool UpdateTrackMotionBackwardsGetNewTrack(uint16_t trackType, Ride* curRide, uint16_t* progress);
void UpdateGoKartAttemptSwitchLanes();
};
struct train_ref