mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 19:13:07 +01:00
Merge Vehicle::UpdateLandscapeDoor functions
This commit is contained in:
@@ -6371,7 +6371,7 @@ static void AnimateLandscapeDoor(const CoordsXYZ& doorLocation, TrackElement& tr
|
||||
}
|
||||
}
|
||||
|
||||
void Vehicle::UpdateLandscapeDoorA(const int32_t previousTrackHeight) const
|
||||
void Vehicle::UpdateLandscapeDoors(const int32_t previousTrackHeight) const
|
||||
{
|
||||
const auto* currentRide = GetRide();
|
||||
if (currentRide == nullptr || !currentRide->getRideTypeDescriptor().HasFlag(RtdFlag::hasLandscapeDoors))
|
||||
@@ -6380,32 +6380,15 @@ void Vehicle::UpdateLandscapeDoorA(const int32_t previousTrackHeight) const
|
||||
}
|
||||
|
||||
const CoordsXYZ previousTrackLocation = CoordsXYZ(x, y, previousTrackHeight).ToTileStart();
|
||||
if (MapGetTrackElementAtBeforeSurfaceFromRide(previousTrackLocation, ride) != nullptr)
|
||||
return;
|
||||
|
||||
auto* const tileElement = MapGetTrackElementAtBeforeSurfaceFromRide(TrackLocation, ride);
|
||||
if (tileElement != nullptr)
|
||||
auto* const previousTrackElement = MapGetTrackElementAtBeforeSurfaceFromRide(previousTrackLocation, ride);
|
||||
auto* const currentTrackElement = MapGetTrackElementAtBeforeSurfaceFromRide(TrackLocation, ride);
|
||||
if (previousTrackElement != nullptr && currentTrackElement == nullptr)
|
||||
{
|
||||
AnimateLandscapeDoor<true>(TrackLocation, *tileElement->AsTrack(), next_vehicle_on_train.IsNull());
|
||||
AnimateLandscapeDoor<false>(previousTrackLocation, *previousTrackElement->AsTrack(), next_vehicle_on_train.IsNull());
|
||||
}
|
||||
}
|
||||
|
||||
void Vehicle::UpdateLandscapeDoorB(const int32_t previousTrackHeight) const
|
||||
{
|
||||
const auto* currentRide = GetRide();
|
||||
if (currentRide == nullptr || !currentRide->getRideTypeDescriptor().HasFlag(RtdFlag::hasLandscapeDoors))
|
||||
else if (previousTrackElement == nullptr && currentTrackElement != nullptr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (MapGetTrackElementAtBeforeSurfaceFromRide(TrackLocation, ride) != nullptr)
|
||||
return;
|
||||
|
||||
const CoordsXYZ previousTrackLocation = CoordsXYZ(x, y, previousTrackHeight).ToTileStart();
|
||||
auto* const tileElement = MapGetTrackElementAtBeforeSurfaceFromRide(previousTrackLocation, ride);
|
||||
if (tileElement != nullptr)
|
||||
{
|
||||
AnimateLandscapeDoor<false>(previousTrackLocation, *tileElement->AsTrack(), next_vehicle_on_train.IsNull());
|
||||
AnimateLandscapeDoor<true>(TrackLocation, *currentTrackElement->AsTrack(), next_vehicle_on_train.IsNull());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7116,8 +7099,7 @@ bool Vehicle::UpdateTrackMotionForwardsGetNewTrack(
|
||||
}
|
||||
// Change from original: this used to check if the vehicle allowed doors.
|
||||
UpdateSceneryDoorBackwards();
|
||||
UpdateLandscapeDoorA(previousTrackHeight);
|
||||
UpdateLandscapeDoorB(previousTrackHeight);
|
||||
UpdateLandscapeDoors(previousTrackHeight);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -377,8 +377,7 @@ private:
|
||||
void UpdateGoKartAttemptSwitchLanes();
|
||||
void UpdateSceneryDoor() const;
|
||||
void UpdateSceneryDoorBackwards() const;
|
||||
void UpdateLandscapeDoorA(const int32_t previousTrackHeight) const;
|
||||
void UpdateLandscapeDoorB(const int32_t previousTrackHeight) const;
|
||||
void UpdateLandscapeDoors(const int32_t previousTrackHeight) const;
|
||||
int32_t CalculateRiderBraking() const;
|
||||
uint8_t ChooseBrakeSpeed() const;
|
||||
void PopulateBrakeSpeed(const CoordsXYZ& vehicleTrackLocation, TrackElement& brake);
|
||||
|
||||
Reference in New Issue
Block a user