mirror of https://github.com/OpenRCT2/OpenRCT2.git
Make TrackBank into an enum class
This commit is contained in:
parent
d2f5e739aa
commit
b832eb5f72
|
@ -42,7 +42,7 @@ void RideConstructNew(RideSelection listItem)
|
|||
}
|
||||
|
||||
SpecialElementsDropdownState BuildSpecialElementsList(
|
||||
const Ride& currentRide, uint8_t buildDirection, uint8_t buildSlope, uint8_t buildBank, RideConstructionState state)
|
||||
const Ride& currentRide, uint8_t buildDirection, uint8_t buildSlope, TrackBank buildBank, RideConstructionState state)
|
||||
{
|
||||
auto buildDirectionIsDiagonal = TrackPieceDirectionIsDiagonal(buildDirection);
|
||||
SpecialElementsDropdownState list;
|
||||
|
|
|
@ -159,6 +159,6 @@ struct SpecialElementsDropdownState
|
|||
};
|
||||
|
||||
SpecialElementsDropdownState BuildSpecialElementsList(
|
||||
const Ride& currentRide, uint8_t buildDirection, uint8_t buildSlope, uint8_t buildBank, RideConstructionState state);
|
||||
const Ride& currentRide, uint8_t buildDirection, uint8_t buildSlope, TrackBank buildBank, RideConstructionState state);
|
||||
|
||||
void RideConstructNew(RideSelection listItem);
|
||||
|
|
|
@ -227,14 +227,14 @@ public:
|
|||
|
||||
_currentTrackCurve = currentRide->GetRideTypeDescriptor().StartTrackPiece | RideConstructionSpecialPieceSelected;
|
||||
_currentTrackSlopeEnd = 0;
|
||||
_currentTrackBankEnd = 0;
|
||||
_currentTrackBankEnd = TrackBank::None;
|
||||
_currentTrackLiftHill = 0;
|
||||
_currentTrackAlternative = RIDE_TYPE_NO_ALTERNATIVES;
|
||||
|
||||
if (currentRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED))
|
||||
_currentTrackAlternative |= RIDE_TYPE_ALTERNATIVE_TRACK_TYPE;
|
||||
|
||||
_previousTrackBankEnd = 0;
|
||||
_previousTrackBankEnd = TrackBank::None;
|
||||
_previousTrackSlopeEnd = 0;
|
||||
|
||||
_currentTrackPieceDirection = 0;
|
||||
|
@ -396,7 +396,7 @@ public:
|
|||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
else if (_currentTrackBankEnd != TRACK_BANK_NONE)
|
||||
else if (_currentTrackBankEnd != TrackBank::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_SLOPE_UP);
|
||||
}
|
||||
|
@ -409,7 +409,7 @@ public:
|
|||
|| _currentTrackSlopeEnd == TRACK_SLOPE_UP_25 || _currentTrackSlopeEnd == TRACK_SLOPE_UP_60)
|
||||
disabledWidgets |= 1uLL << WIDX_CHAIN_LIFT | (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
// Disable upward slope if current track piece is not flat
|
||||
if ((_previousTrackSlopeEnd != TRACK_SLOPE_NONE || _previousTrackBankEnd != TRACK_BANK_NONE)
|
||||
if ((_previousTrackSlopeEnd != TRACK_SLOPE_NONE || _previousTrackBankEnd != TrackBank::None)
|
||||
&& !(_currentTrackLiftHill & CONSTRUCTION_LIFT_HILL_SELECTED))
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_UP);
|
||||
}
|
||||
|
@ -425,7 +425,7 @@ public:
|
|||
case EnumValue(TrackCurve::Left):
|
||||
case EnumValue(TrackCurve::LeftLarge):
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_RIGHT);
|
||||
if (_previousTrackBankEnd == TRACK_BANK_NONE)
|
||||
if (_previousTrackBankEnd == TrackBank::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT);
|
||||
}
|
||||
|
@ -439,7 +439,7 @@ public:
|
|||
case EnumValue(TrackCurve::RightSmall):
|
||||
case EnumValue(TrackCurve::RightVerySmall):
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT);
|
||||
if (_previousTrackBankEnd == TRACK_BANK_NONE)
|
||||
if (_previousTrackBankEnd == TrackBank::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
|
@ -451,7 +451,7 @@ public:
|
|||
}
|
||||
if (!IsTrackEnabled(TRACK_SLOPE_ROLL_BANKING))
|
||||
{
|
||||
if (_currentTrackBankEnd != TRACK_BANK_NONE)
|
||||
if (_currentTrackBankEnd != TrackBank::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_SLOPE_UP);
|
||||
}
|
||||
|
@ -546,12 +546,12 @@ public:
|
|||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
}
|
||||
}
|
||||
if (_previousTrackBankEnd == TRACK_BANK_LEFT)
|
||||
if (_previousTrackBankEnd == TrackBank::Left)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_RIGHT_CURVE_SMALL) | (1uLL << WIDX_RIGHT_CURVE) | (1uLL << WIDX_RIGHT_CURVE_LARGE)
|
||||
| (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
if (_previousTrackBankEnd == TRACK_BANK_RIGHT)
|
||||
if (_previousTrackBankEnd == TrackBank::Right)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE) | (1uLL << WIDX_LEFT_CURVE_LARGE)
|
||||
| (1uLL << WIDX_BANK_LEFT);
|
||||
|
@ -592,7 +592,7 @@ public:
|
|||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
}
|
||||
if (_currentTrackBankEnd != TRACK_BANK_NONE || _previousTrackBankEnd != TRACK_BANK_NONE)
|
||||
if (_currentTrackBankEnd != TrackBank::None || _previousTrackBankEnd != TrackBank::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_UP_STEEP) | (1uLL << WIDX_CHAIN_LIFT);
|
||||
}
|
||||
|
@ -626,7 +626,7 @@ public:
|
|||
disabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
}
|
||||
}
|
||||
if (_previousTrackBankEnd == TRACK_BANK_UPSIDE_DOWN)
|
||||
if (_previousTrackBankEnd == TrackBank::UpsideDown)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE) | (1uLL << WIDX_LEFT_CURVE_LARGE)
|
||||
| (1uLL << WIDX_STRAIGHT) | (1uLL << WIDX_RIGHT_CURVE_SMALL) | (1uLL << WIDX_RIGHT_CURVE)
|
||||
|
@ -662,17 +662,17 @@ public:
|
|||
else if (IsTrackEnabled(TRACK_SLOPE_CURVE_BANKED))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
if (_currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||
if (_currentTrackBankEnd == TrackBank::Left)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_STRAIGHT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
disabledWidgets &= ~(1uLL << WIDX_BANK_LEFT);
|
||||
}
|
||||
if (_currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||
if (_currentTrackBankEnd == TrackBank::Right)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_STRAIGHT);
|
||||
disabledWidgets &= ~(1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
if (_currentTrackBankEnd == TRACK_BANK_NONE)
|
||||
if (_currentTrackBankEnd == TrackBank::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
disabledWidgets &= ~(1uLL << WIDX_BANK_STRAIGHT);
|
||||
|
@ -763,7 +763,7 @@ public:
|
|||
if (_currentTrackSlopeEnd == TRACK_SLOPE_NONE && _currentTrackSlopeEnd == _previousTrackSlopeEnd)
|
||||
{
|
||||
// If the bank is none, attempt to show unbanked quarter helixes
|
||||
if (_currentTrackBankEnd == TRACK_BANK_NONE
|
||||
if (_currentTrackBankEnd == TrackBank::None
|
||||
&& (_currentTrackCurve == EnumValue(TrackCurve::Left) || _currentTrackCurve == EnumValue(TrackCurve::Right)))
|
||||
{
|
||||
if (IsTrackEnabled(TRACK_HELIX_DOWN_UNBANKED_QUARTER))
|
||||
|
@ -774,7 +774,7 @@ public:
|
|||
// If the track is banked left or right and curvature is standard size (2.5 tile radius), attempt to show buttons
|
||||
// for half or quarter helixes
|
||||
else if (
|
||||
(_currentTrackBankEnd == TRACK_BANK_LEFT || _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||
(_currentTrackBankEnd == TrackBank::Left || _currentTrackBankEnd == TrackBank::Right)
|
||||
&& (_currentTrackCurve == EnumValue(TrackCurve::Left) || _currentTrackCurve == EnumValue(TrackCurve::Right)))
|
||||
{
|
||||
if (IsTrackEnabled(TRACK_HELIX_DOWN_BANKED_HALF) || IsTrackEnabled(TRACK_HELIX_DOWN_BANKED_QUARTER))
|
||||
|
@ -785,7 +785,7 @@ public:
|
|||
// If the track is banked left or right and curvature is small size (1.5 tile radius), attempt to show buttons for
|
||||
// half helixes
|
||||
else if (
|
||||
(_currentTrackBankEnd == TRACK_BANK_LEFT || _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||
(_currentTrackBankEnd == TrackBank::Left || _currentTrackBankEnd == TrackBank::Right)
|
||||
&& (_currentTrackCurve == EnumValue(TrackCurve::LeftSmall)
|
||||
|| _currentTrackCurve == EnumValue(TrackCurve::RightSmall)))
|
||||
{
|
||||
|
@ -802,7 +802,7 @@ public:
|
|||
if (_currentTrackCurve == EnumValue(TrackCurve::LeftSmall)
|
||||
|| _currentTrackCurve == EnumValue(TrackCurve::RightSmall))
|
||||
{
|
||||
if (_currentTrackSlopeEnd == TRACK_SLOPE_NONE && _previousTrackBankEnd != TRACK_BANK_NONE
|
||||
if (_currentTrackSlopeEnd == TRACK_SLOPE_NONE && _previousTrackBankEnd != TrackBank::None
|
||||
&& (!currentRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_UP_INCLINE_REQUIRES_LIFT)
|
||||
|| gCheatsEnableAllDrawableTrackPieces))
|
||||
{
|
||||
|
@ -815,7 +815,7 @@ public:
|
|||
if (_currentTrackCurve == EnumValue(TrackCurve::LeftSmall)
|
||||
|| _currentTrackCurve == EnumValue(TrackCurve::RightSmall))
|
||||
{
|
||||
if (_currentTrackSlopeEnd == TRACK_SLOPE_NONE && _previousTrackBankEnd != TRACK_BANK_NONE)
|
||||
if (_currentTrackSlopeEnd == TRACK_SLOPE_NONE && _previousTrackBankEnd != TrackBank::None)
|
||||
{
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN);
|
||||
}
|
||||
|
@ -1058,7 +1058,7 @@ public:
|
|||
case WIDX_STRAIGHT:
|
||||
RideConstructionInvalidateCurrentTrack();
|
||||
if (_currentTrackCurve != EnumValue(TrackCurve::None))
|
||||
_currentTrackBankEnd = TRACK_BANK_NONE;
|
||||
_currentTrackBankEnd = TrackBank::None;
|
||||
_currentTrackCurve = EnumValue(TrackCurve::None);
|
||||
_currentTrackPrice = MONEY64_UNDEFINED;
|
||||
WindowRideConstructionUpdateActiveElements();
|
||||
|
@ -1067,14 +1067,14 @@ public:
|
|||
RideConstructionInvalidateCurrentTrack();
|
||||
if (IsTrackEnabled(TRACK_HELIX_DOWN_BANKED_HALF) || IsTrackEnabled(TRACK_HELIX_UP_BANKED_HALF))
|
||||
{
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Left) && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Left) && _currentTrackBankEnd == TrackBank::Left)
|
||||
{
|
||||
_currentTrackCurve = TrackElemType::LeftHalfBankedHelixDownLarge | RideConstructionSpecialPieceSelected;
|
||||
_currentTrackPrice = MONEY64_UNDEFINED;
|
||||
WindowRideConstructionUpdateActiveElements();
|
||||
break;
|
||||
}
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Right) && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Right) && _currentTrackBankEnd == TrackBank::Right)
|
||||
{
|
||||
_currentTrackCurve = TrackElemType::RightHalfBankedHelixDownLarge
|
||||
| RideConstructionSpecialPieceSelected;
|
||||
|
@ -1082,14 +1082,14 @@ public:
|
|||
WindowRideConstructionUpdateActiveElements();
|
||||
break;
|
||||
}
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::LeftSmall) && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::LeftSmall) && _currentTrackBankEnd == TrackBank::Left)
|
||||
{
|
||||
_currentTrackCurve = TrackElemType::LeftHalfBankedHelixDownSmall | RideConstructionSpecialPieceSelected;
|
||||
_currentTrackPrice = MONEY64_UNDEFINED;
|
||||
WindowRideConstructionUpdateActiveElements();
|
||||
break;
|
||||
}
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::RightSmall) && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::RightSmall) && _currentTrackBankEnd == TrackBank::Right)
|
||||
{
|
||||
_currentTrackCurve = TrackElemType::RightHalfBankedHelixDownSmall
|
||||
| RideConstructionSpecialPieceSelected;
|
||||
|
@ -1100,7 +1100,7 @@ public:
|
|||
}
|
||||
if (IsTrackEnabled(TRACK_HELIX_DOWN_BANKED_QUARTER) || IsTrackEnabled(TRACK_HELIX_UP_BANKED_QUARTER))
|
||||
{
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Left) && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Left) && _currentTrackBankEnd == TrackBank::Left)
|
||||
{
|
||||
_currentTrackCurve = TrackElemType::LeftQuarterBankedHelixLargeDown
|
||||
| RideConstructionSpecialPieceSelected;
|
||||
|
@ -1108,7 +1108,7 @@ public:
|
|||
WindowRideConstructionUpdateActiveElements();
|
||||
break;
|
||||
}
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Right) && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Right) && _currentTrackBankEnd == TrackBank::Right)
|
||||
{
|
||||
_currentTrackCurve = TrackElemType::RightQuarterBankedHelixLargeDown
|
||||
| RideConstructionSpecialPieceSelected;
|
||||
|
@ -1119,7 +1119,7 @@ public:
|
|||
}
|
||||
if (IsTrackEnabled(TRACK_HELIX_DOWN_UNBANKED_QUARTER) || IsTrackEnabled(TRACK_HELIX_UP_UNBANKED_QUARTER))
|
||||
{
|
||||
if (_currentTrackBankEnd == TRACK_BANK_NONE)
|
||||
if (_currentTrackBankEnd == TrackBank::None)
|
||||
{
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Left))
|
||||
{
|
||||
|
@ -1150,9 +1150,9 @@ public:
|
|||
break;
|
||||
case WIDX_SLOPE_DOWN:
|
||||
RideConstructionInvalidateCurrentTrack();
|
||||
if (_rideConstructionState == RideConstructionState::Back && _currentTrackBankEnd != TRACK_BANK_NONE)
|
||||
if (_rideConstructionState == RideConstructionState::Back && _currentTrackBankEnd != TrackBank::None)
|
||||
{
|
||||
_currentTrackBankEnd = TRACK_BANK_NONE;
|
||||
_currentTrackBankEnd = TrackBank::None;
|
||||
}
|
||||
UpdateLiftHillSelected(TRACK_SLOPE_DOWN_25);
|
||||
break;
|
||||
|
@ -1162,31 +1162,31 @@ public:
|
|||
{
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::LeftSmall))
|
||||
{
|
||||
_currentTrackBankEnd = TRACK_BANK_LEFT;
|
||||
_currentTrackBankEnd = TrackBank::Left;
|
||||
}
|
||||
else if (_currentTrackCurve == EnumValue(TrackCurve::RightSmall))
|
||||
{
|
||||
_currentTrackBankEnd = TRACK_BANK_RIGHT;
|
||||
_currentTrackBankEnd = TrackBank::Right;
|
||||
}
|
||||
}
|
||||
else if (_rideConstructionState == RideConstructionState::Back && _previousTrackSlopeEnd == 2)
|
||||
{
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::LeftSmall))
|
||||
{
|
||||
_currentTrackBankEnd = TRACK_BANK_LEFT;
|
||||
_currentTrackBankEnd = TrackBank::Left;
|
||||
}
|
||||
else if (_currentTrackCurve == EnumValue(TrackCurve::RightSmall))
|
||||
{
|
||||
_currentTrackBankEnd = TRACK_BANK_RIGHT;
|
||||
_currentTrackBankEnd = TrackBank::Right;
|
||||
}
|
||||
}
|
||||
UpdateLiftHillSelected(TRACK_SLOPE_NONE);
|
||||
break;
|
||||
case WIDX_SLOPE_UP:
|
||||
RideConstructionInvalidateCurrentTrack();
|
||||
if (_rideConstructionState == RideConstructionState::Front && _currentTrackBankEnd != TRACK_BANK_NONE)
|
||||
if (_rideConstructionState == RideConstructionState::Front && _currentTrackBankEnd != TrackBank::None)
|
||||
{
|
||||
_currentTrackBankEnd = TRACK_BANK_NONE;
|
||||
_currentTrackBankEnd = TrackBank::None;
|
||||
}
|
||||
if (currentRide->GetRideTypeDescriptor().SupportsTrackPiece(TRACK_REVERSE_FREEFALL))
|
||||
{
|
||||
|
@ -1206,28 +1206,28 @@ public:
|
|||
RideConstructionInvalidateCurrentTrack();
|
||||
if (IsTrackEnabled(TRACK_HELIX_DOWN_BANKED_HALF) || IsTrackEnabled(TRACK_HELIX_UP_BANKED_HALF))
|
||||
{
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Left) && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Left) && _currentTrackBankEnd == TrackBank::Left)
|
||||
{
|
||||
_currentTrackCurve = TrackElemType::LeftHalfBankedHelixUpLarge | RideConstructionSpecialPieceSelected;
|
||||
_currentTrackPrice = MONEY64_UNDEFINED;
|
||||
WindowRideConstructionUpdateActiveElements();
|
||||
break;
|
||||
}
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Right) && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Right) && _currentTrackBankEnd == TrackBank::Right)
|
||||
{
|
||||
_currentTrackCurve = TrackElemType::RightHalfBankedHelixUpLarge | RideConstructionSpecialPieceSelected;
|
||||
_currentTrackPrice = MONEY64_UNDEFINED;
|
||||
WindowRideConstructionUpdateActiveElements();
|
||||
break;
|
||||
}
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::LeftSmall) && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::LeftSmall) && _currentTrackBankEnd == TrackBank::Left)
|
||||
{
|
||||
_currentTrackCurve = TrackElemType::LeftHalfBankedHelixUpSmall | RideConstructionSpecialPieceSelected;
|
||||
_currentTrackPrice = MONEY64_UNDEFINED;
|
||||
WindowRideConstructionUpdateActiveElements();
|
||||
break;
|
||||
}
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::RightSmall) && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::RightSmall) && _currentTrackBankEnd == TrackBank::Right)
|
||||
{
|
||||
_currentTrackCurve = TrackElemType::RightHalfBankedHelixUpSmall | RideConstructionSpecialPieceSelected;
|
||||
_currentTrackPrice = MONEY64_UNDEFINED;
|
||||
|
@ -1237,7 +1237,7 @@ public:
|
|||
}
|
||||
if (IsTrackEnabled(TRACK_HELIX_DOWN_BANKED_QUARTER) || IsTrackEnabled(TRACK_HELIX_UP_BANKED_QUARTER))
|
||||
{
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Left) && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Left) && _currentTrackBankEnd == TrackBank::Left)
|
||||
{
|
||||
_currentTrackCurve = TrackElemType::LeftQuarterBankedHelixLargeUp
|
||||
| RideConstructionSpecialPieceSelected;
|
||||
|
@ -1245,7 +1245,7 @@ public:
|
|||
WindowRideConstructionUpdateActiveElements();
|
||||
break;
|
||||
}
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Right) && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Right) && _currentTrackBankEnd == TrackBank::Right)
|
||||
{
|
||||
_currentTrackCurve = TrackElemType::RightQuarterBankedHelixLargeUp
|
||||
| RideConstructionSpecialPieceSelected;
|
||||
|
@ -1256,7 +1256,7 @@ public:
|
|||
}
|
||||
if (IsTrackEnabled(TRACK_HELIX_DOWN_UNBANKED_QUARTER) || IsTrackEnabled(TRACK_HELIX_UP_UNBANKED_QUARTER))
|
||||
{
|
||||
if (_currentTrackBankEnd == TRACK_BANK_NONE)
|
||||
if (_currentTrackBankEnd == TrackBank::None)
|
||||
{
|
||||
if (_currentTrackCurve == EnumValue(TrackCurve::Left))
|
||||
{
|
||||
|
@ -1295,7 +1295,7 @@ public:
|
|||
RideConstructionInvalidateCurrentTrack();
|
||||
if (!_currentlyShowingBrakeOrBoosterSpeed)
|
||||
{
|
||||
_currentTrackBankEnd = TRACK_BANK_LEFT;
|
||||
_currentTrackBankEnd = TrackBank::Left;
|
||||
_currentTrackPrice = MONEY64_UNDEFINED;
|
||||
WindowRideConstructionUpdateActiveElements();
|
||||
}
|
||||
|
@ -1304,7 +1304,7 @@ public:
|
|||
RideConstructionInvalidateCurrentTrack();
|
||||
if (!_currentlyShowingBrakeOrBoosterSpeed)
|
||||
{
|
||||
_currentTrackBankEnd = TRACK_BANK_NONE;
|
||||
_currentTrackBankEnd = TrackBank::None;
|
||||
_currentTrackPrice = MONEY64_UNDEFINED;
|
||||
WindowRideConstructionUpdateActiveElements();
|
||||
}
|
||||
|
@ -1331,7 +1331,7 @@ public:
|
|||
RideConstructionInvalidateCurrentTrack();
|
||||
if (!_currentlyShowingBrakeOrBoosterSpeed)
|
||||
{
|
||||
_currentTrackBankEnd = TRACK_BANK_RIGHT;
|
||||
_currentTrackBankEnd = TrackBank::Right;
|
||||
_currentTrackPrice = MONEY64_UNDEFINED;
|
||||
WindowRideConstructionUpdateActiveElements();
|
||||
}
|
||||
|
@ -1420,7 +1420,7 @@ public:
|
|||
break;
|
||||
case TrackElemType::LeftVerticalLoop:
|
||||
case TrackElemType::RightVerticalLoop:
|
||||
_currentTrackBankEnd = TRACK_BANK_NONE;
|
||||
_currentTrackBankEnd = TrackBank::None;
|
||||
_currentTrackLiftHill &= ~CONSTRUCTION_LIFT_HILL_SELECTED;
|
||||
break;
|
||||
case TrackElemType::BlockBrakes:
|
||||
|
@ -1660,7 +1660,7 @@ public:
|
|||
widgets[WIDX_SLOPE_UP].type = WindowWidgetType::FlatBtn;
|
||||
}
|
||||
if ((IsTrackEnabled(TRACK_HELIX_DOWN_BANKED_HALF) || IsTrackEnabled(TRACK_HELIX_UP_BANKED_HALF))
|
||||
&& _currentTrackBankEnd != TRACK_BANK_NONE && _currentTrackSlopeEnd == TRACK_SLOPE_NONE)
|
||||
&& _currentTrackBankEnd != TrackBank::None && _currentTrackSlopeEnd == TRACK_SLOPE_NONE)
|
||||
{
|
||||
if (_currentTrackCurve >= EnumValue(TrackCurve::Left) && _currentTrackCurve <= EnumValue(TrackCurve::RightSmall))
|
||||
{
|
||||
|
@ -1742,7 +1742,7 @@ public:
|
|||
}
|
||||
|
||||
if ((IsTrackEnabled(TRACK_HELIX_DOWN_UNBANKED_QUARTER) || IsTrackEnabled(TRACK_HELIX_UP_UNBANKED_QUARTER))
|
||||
&& _currentTrackSlopeEnd == TRACK_SLOPE_NONE && _currentTrackBankEnd == TRACK_BANK_NONE
|
||||
&& _currentTrackSlopeEnd == TRACK_SLOPE_NONE && _currentTrackBankEnd == TrackBank::None
|
||||
&& (_currentTrackCurve == EnumValue(TrackCurve::Left) || _currentTrackCurve == EnumValue(TrackCurve::Right)))
|
||||
{
|
||||
widgets[WIDX_SLOPE_DOWN_STEEP].image = ImageId(SPR_RIDE_CONSTRUCTION_HELIX_DOWN);
|
||||
|
@ -1770,7 +1770,7 @@ public:
|
|||
if ((IsTrackEnabled(TRACK_HELIX_DOWN_BANKED_QUARTER) || IsTrackEnabled(TRACK_HELIX_UP_BANKED_QUARTER)
|
||||
|| IsTrackEnabled(TRACK_HELIX_DOWN_BANKED_HALF) || IsTrackEnabled(TRACK_HELIX_UP_BANKED_HALF))
|
||||
&& (_currentTrackCurve >= EnumValue(TrackCurve::Left) && _currentTrackCurve <= EnumValue(TrackCurve::RightSmall))
|
||||
&& _currentTrackSlopeEnd == TRACK_SLOPE_NONE && _currentTrackBankEnd != TRACK_BANK_NONE)
|
||||
&& _currentTrackSlopeEnd == TRACK_SLOPE_NONE && _currentTrackBankEnd != TrackBank::None)
|
||||
{
|
||||
widgets[WIDX_SLOPE_DOWN_STEEP].image = ImageId(SPR_RIDE_CONSTRUCTION_HELIX_DOWN);
|
||||
widgets[WIDX_SLOPE_DOWN_STEEP].tooltip = STR_RIDE_CONSTRUCTION_HELIX_DOWN_TIP;
|
||||
|
@ -1852,7 +1852,7 @@ public:
|
|||
if ((_currentTrackCurve < EnumValue(TrackCurve::LeftSmall)
|
||||
|| _currentTrackCurve == (RideConstructionSpecialPieceSelected | TrackElemType::SBendLeft)
|
||||
|| _currentTrackCurve == (RideConstructionSpecialPieceSelected | TrackElemType::SBendRight))
|
||||
&& _currentTrackSlopeEnd == TRACK_SLOPE_NONE && _currentTrackBankEnd == TRACK_BANK_NONE)
|
||||
&& _currentTrackSlopeEnd == TRACK_SLOPE_NONE && _currentTrackBankEnd == TrackBank::None)
|
||||
{
|
||||
widgets[WIDX_BANKING_GROUPBOX].text = STR_RIDE_CONSTRUCTION_TRACK_STYLE;
|
||||
widgets[WIDX_U_TRACK].type = WindowWidgetType::FlatBtn;
|
||||
|
@ -2063,10 +2063,10 @@ public:
|
|||
}
|
||||
switch (_currentTrackBankEnd)
|
||||
{
|
||||
case TRACK_BANK_LEFT:
|
||||
case TrackBank::Left:
|
||||
widgetIndex = WIDX_BANK_LEFT;
|
||||
break;
|
||||
case TRACK_BANK_NONE:
|
||||
case TrackBank::None:
|
||||
widgetIndex = WIDX_BANK_STRAIGHT;
|
||||
break;
|
||||
default:
|
||||
|
@ -3594,8 +3594,8 @@ void RideConstructionTooldownConstruct(const ScreenCoordsXY& screenCoords)
|
|||
auto saveCurrentTrackCurve = _currentTrackCurve;
|
||||
int32_t savePreviousTrackSlopeEnd = _previousTrackSlopeEnd;
|
||||
int32_t saveCurrentTrackSlopeEnd = _currentTrackSlopeEnd;
|
||||
int32_t savePreviousTrackBankEnd = _previousTrackBankEnd;
|
||||
int32_t saveCurrentTrackBankEnd = _currentTrackBankEnd;
|
||||
auto savePreviousTrackBankEnd = _previousTrackBankEnd;
|
||||
auto saveCurrentTrackBankEnd = _currentTrackBankEnd;
|
||||
int32_t saveCurrentTrackAlternative = _currentTrackAlternative;
|
||||
int32_t saveCurrentTrackLiftHill = _currentTrackLiftHill;
|
||||
|
||||
|
@ -4383,13 +4383,13 @@ void WindowRideConstructionKeyboardShortcutBankLeft()
|
|||
|
||||
switch (_currentTrackBankEnd)
|
||||
{
|
||||
case TRACK_BANK_NONE:
|
||||
case TrackBank::None:
|
||||
if (!WidgetIsDisabled(*w, WIDX_BANK_LEFT) && w->widgets[WIDX_BANK_LEFT].type != WindowWidgetType::Empty)
|
||||
{
|
||||
WindowEventMouseDownCall(w, WIDX_BANK_LEFT);
|
||||
}
|
||||
break;
|
||||
case TRACK_BANK_RIGHT:
|
||||
case TrackBank::Right:
|
||||
if (!WidgetIsDisabled(*w, WIDX_BANK_STRAIGHT) && w->widgets[WIDX_BANK_STRAIGHT].type != WindowWidgetType::Empty)
|
||||
{
|
||||
WindowEventMouseDownCall(w, WIDX_BANK_STRAIGHT);
|
||||
|
@ -4419,13 +4419,13 @@ void WindowRideConstructionKeyboardShortcutBankRight()
|
|||
|
||||
switch (_currentTrackBankEnd)
|
||||
{
|
||||
case TRACK_BANK_NONE:
|
||||
case TrackBank::None:
|
||||
if (!WidgetIsDisabled(*w, WIDX_BANK_RIGHT) && w->widgets[WIDX_BANK_RIGHT].type != WindowWidgetType::Empty)
|
||||
{
|
||||
WindowEventMouseDownCall(w, WIDX_BANK_RIGHT);
|
||||
}
|
||||
break;
|
||||
case TRACK_BANK_LEFT:
|
||||
case TrackBank::Left:
|
||||
if (!WidgetIsDisabled(*w, WIDX_BANK_STRAIGHT) && w->widgets[WIDX_BANK_STRAIGHT].type != WindowWidgetType::Empty)
|
||||
{
|
||||
WindowEventMouseDownCall(w, WIDX_BANK_STRAIGHT);
|
||||
|
@ -4501,8 +4501,8 @@ static void WindowRideConstructionMouseUpDemolishNextPiece(const CoordsXYZD& pie
|
|||
auto savedCurrentTrackCurve = _currentTrackCurve;
|
||||
int32_t savedPreviousTrackSlopeEnd = _previousTrackSlopeEnd;
|
||||
int32_t savedCurrentTrackSlopeEnd = _currentTrackSlopeEnd;
|
||||
int32_t savedPreviousTrackBankEnd = _previousTrackBankEnd;
|
||||
int32_t savedCurrentTrackBankEnd = _currentTrackBankEnd;
|
||||
auto savedPreviousTrackBankEnd = _previousTrackBankEnd;
|
||||
auto savedCurrentTrackBankEnd = _currentTrackBankEnd;
|
||||
int32_t savedCurrentTrackAlternative = _currentTrackAlternative;
|
||||
int32_t savedCurrentTrackLiftHill = _currentTrackLiftHill;
|
||||
RideConstructionSetDefaultNextPiece();
|
||||
|
|
|
@ -442,7 +442,7 @@ bool WallPlaceAction::WallCheckObstructionWithTrack(
|
|||
return false;
|
||||
}
|
||||
|
||||
if (ted.Definition.bank_start == 0)
|
||||
if (ted.Definition.bank_start == TrackBank::None)
|
||||
{
|
||||
if (!(ted.Coordinates.rotation_begin & 4))
|
||||
{
|
||||
|
@ -467,7 +467,7 @@ bool WallPlaceAction::WallCheckObstructionWithTrack(
|
|||
return false;
|
||||
}
|
||||
|
||||
if (ted.Definition.bank_end != 0)
|
||||
if (ted.Definition.bank_end != TrackBank::None)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -65,12 +65,12 @@ track_type_t _currentTrackPieceType;
|
|||
uint8_t _currentTrackSelectionFlags;
|
||||
uint32_t _rideConstructionNextArrowPulse = 0;
|
||||
uint8_t _currentTrackSlopeEnd;
|
||||
uint8_t _currentTrackBankEnd;
|
||||
TrackBank _currentTrackBankEnd;
|
||||
uint8_t _currentTrackLiftHill;
|
||||
uint8_t _currentTrackAlternative;
|
||||
track_type_t _selectedTrackType;
|
||||
|
||||
uint8_t _previousTrackBankEnd;
|
||||
TrackBank _previousTrackBankEnd;
|
||||
uint8_t _previousTrackSlopeEnd;
|
||||
|
||||
CoordsXYZ _previousTrackPiece;
|
||||
|
@ -607,7 +607,7 @@ static void ride_construction_reset_current_piece()
|
|||
{
|
||||
_currentTrackCurve = rtd.StartTrackPiece | RideConstructionSpecialPieceSelected;
|
||||
_currentTrackSlopeEnd = 0;
|
||||
_currentTrackBankEnd = 0;
|
||||
_currentTrackBankEnd = TrackBank::None;
|
||||
_currentTrackLiftHill = 0;
|
||||
_currentTrackAlternative = RIDE_TYPE_NO_ALTERNATIVES;
|
||||
if (rtd.HasFlag(RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED))
|
||||
|
@ -615,7 +615,7 @@ static void ride_construction_reset_current_piece()
|
|||
_currentTrackAlternative |= RIDE_TYPE_ALTERNATIVE_TRACK_TYPE;
|
||||
}
|
||||
_previousTrackSlopeEnd = 0;
|
||||
_previousTrackBankEnd = 0;
|
||||
_previousTrackBankEnd = TrackBank::None;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -637,7 +637,7 @@ void RideConstructionSetDefaultNextPiece()
|
|||
|
||||
const auto& rtd = ride->GetRideTypeDescriptor();
|
||||
|
||||
int32_t z, direction, trackType, curve, bank, slope;
|
||||
int32_t z, direction, trackType, curve, slope;
|
||||
TrackBeginEnd trackBeginEnd;
|
||||
CoordsXYE xyElement;
|
||||
TileElement* tileElement;
|
||||
|
@ -647,6 +647,7 @@ void RideConstructionSetDefaultNextPiece()
|
|||
switch (_rideConstructionState)
|
||||
{
|
||||
case RideConstructionState::Front:
|
||||
{
|
||||
direction = _currentTrackPieceDirection;
|
||||
if (!TrackBlockGetPreviousFromZero(_currentTrackBegin, *ride, direction, &trackBeginEnd))
|
||||
{
|
||||
|
@ -674,7 +675,7 @@ void RideConstructionSetDefaultNextPiece()
|
|||
|
||||
ted = &GetTrackElementDescriptor(trackType);
|
||||
curve = ted->CurveChain.next;
|
||||
bank = ted->Definition.bank_end;
|
||||
auto bank = ted->Definition.bank_end;
|
||||
slope = ted->Definition.vangle_end;
|
||||
|
||||
// Set track curve
|
||||
|
@ -683,9 +684,9 @@ void RideConstructionSetDefaultNextPiece()
|
|||
// Set track banking
|
||||
if (rtd.HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE))
|
||||
{
|
||||
if (bank == TRACK_BANK_UPSIDE_DOWN)
|
||||
if (bank == TrackBank::UpsideDown)
|
||||
{
|
||||
bank = TRACK_BANK_NONE;
|
||||
bank = TrackBank::None;
|
||||
_currentTrackAlternative ^= RIDE_TYPE_ALTERNATIVE_TRACK_TYPE;
|
||||
}
|
||||
}
|
||||
|
@ -698,7 +699,9 @@ void RideConstructionSetDefaultNextPiece()
|
|||
_currentTrackLiftHill = tileElement->AsTrack()->HasChain()
|
||||
&& ((slope != TRACK_SLOPE_DOWN_25 && slope != TRACK_SLOPE_DOWN_60) || gCheatsEnableChainLiftOnAllTrack);
|
||||
break;
|
||||
}
|
||||
case RideConstructionState::Back:
|
||||
{
|
||||
direction = DirectionReverse(_currentTrackPieceDirection);
|
||||
if (!TrackBlockGetNextFromZero(_currentTrackBegin, *ride, direction, &xyElement, &z, &direction, false))
|
||||
{
|
||||
|
@ -720,7 +723,7 @@ void RideConstructionSetDefaultNextPiece()
|
|||
|
||||
ted = &GetTrackElementDescriptor(trackType);
|
||||
curve = ted->CurveChain.previous;
|
||||
bank = ted->Definition.bank_start;
|
||||
auto bank = ted->Definition.bank_start;
|
||||
slope = ted->Definition.vangle_start;
|
||||
|
||||
// Set track curve
|
||||
|
@ -729,9 +732,9 @@ void RideConstructionSetDefaultNextPiece()
|
|||
// Set track banking
|
||||
if (rtd.HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE))
|
||||
{
|
||||
if (bank == TRACK_BANK_UPSIDE_DOWN)
|
||||
if (bank == TrackBank::UpsideDown)
|
||||
{
|
||||
bank = TRACK_BANK_NONE;
|
||||
bank = TrackBank::None;
|
||||
_currentTrackAlternative ^= RIDE_TYPE_ALTERNATIVE_TRACK_TYPE;
|
||||
}
|
||||
}
|
||||
|
@ -746,6 +749,7 @@ void RideConstructionSetDefaultNextPiece()
|
|||
_currentTrackLiftHill = tileElement->AsTrack()->HasChain();
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -1120,14 +1124,14 @@ int32_t RideInitialiseConstructionWindow(Ride& ride)
|
|||
|
||||
_currentTrackCurve = ride.GetRideTypeDescriptor().StartTrackPiece | RideConstructionSpecialPieceSelected;
|
||||
_currentTrackSlopeEnd = 0;
|
||||
_currentTrackBankEnd = 0;
|
||||
_currentTrackBankEnd = TrackBank::None;
|
||||
_currentTrackLiftHill = 0;
|
||||
_currentTrackAlternative = RIDE_TYPE_NO_ALTERNATIVES;
|
||||
|
||||
if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED))
|
||||
_currentTrackAlternative |= RIDE_TYPE_ALTERNATIVE_TRACK_TYPE;
|
||||
|
||||
_previousTrackBankEnd = 0;
|
||||
_previousTrackBankEnd = TrackBank::None;
|
||||
_previousTrackSlopeEnd = 0;
|
||||
|
||||
_currentTrackPieceDirection = 0;
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include "../common.h"
|
||||
#include "../world/Location.hpp"
|
||||
#include "Station.h"
|
||||
#include "Track.h"
|
||||
|
||||
#include <cstdint>
|
||||
#include <optional>
|
||||
|
@ -48,12 +49,12 @@ extern track_type_t _currentTrackPieceType;
|
|||
extern uint8_t _currentTrackSelectionFlags;
|
||||
extern uint32_t _rideConstructionNextArrowPulse;
|
||||
extern uint8_t _currentTrackSlopeEnd;
|
||||
extern uint8_t _currentTrackBankEnd;
|
||||
extern TrackBank _currentTrackBankEnd;
|
||||
extern uint8_t _currentTrackLiftHill;
|
||||
extern uint8_t _currentTrackAlternative;
|
||||
extern track_type_t _selectedTrackType;
|
||||
|
||||
extern uint8_t _previousTrackBankEnd;
|
||||
extern TrackBank _previousTrackBankEnd;
|
||||
extern uint8_t _previousTrackSlopeEnd;
|
||||
|
||||
extern CoordsXYZ _previousTrackPiece;
|
||||
|
|
|
@ -53,17 +53,17 @@ PitchAndRoll TrackPitchAndRollEnd(track_type_t trackType)
|
|||
*/
|
||||
int32_t TrackIsConnectedByShape(TileElement* a, TileElement* b)
|
||||
{
|
||||
int32_t trackType, aBank, aAngle, bBank, bAngle;
|
||||
int32_t trackType, aAngle, bAngle;
|
||||
|
||||
trackType = a->AsTrack()->GetTrackType();
|
||||
const auto* ted = &GetTrackElementDescriptor(trackType);
|
||||
aBank = ted->Definition.bank_end;
|
||||
auto aBank = ted->Definition.bank_end;
|
||||
aAngle = ted->Definition.vangle_end;
|
||||
aBank = TrackGetActualBank(a, aBank);
|
||||
|
||||
trackType = b->AsTrack()->GetTrackType();
|
||||
ted = &GetTrackElementDescriptor(trackType);
|
||||
bBank = ted->Definition.bank_start;
|
||||
auto bBank = ted->Definition.bank_start;
|
||||
bAngle = ted->Definition.vangle_start;
|
||||
bBank = TrackGetActualBank(b, bBank);
|
||||
|
||||
|
@ -564,7 +564,7 @@ bool TrackElement::IsBlockStart() const
|
|||
return false;
|
||||
}
|
||||
|
||||
roll_type_t TrackGetActualBank(TileElement* tileElement, roll_type_t bank)
|
||||
TrackBank TrackGetActualBank(TileElement* tileElement, TrackBank bank)
|
||||
{
|
||||
auto ride = GetRide(tileElement->AsTrack()->GetRideIndex());
|
||||
if (ride != nullptr)
|
||||
|
@ -575,26 +575,26 @@ roll_type_t TrackGetActualBank(TileElement* tileElement, roll_type_t bank)
|
|||
return bank;
|
||||
}
|
||||
|
||||
roll_type_t TrackGetActualBank2(int32_t rideType, bool isInverted, roll_type_t bank)
|
||||
TrackBank TrackGetActualBank2(int32_t rideType, bool isInverted, TrackBank bank)
|
||||
{
|
||||
if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE))
|
||||
{
|
||||
if (isInverted)
|
||||
{
|
||||
if (bank == TRACK_BANK_NONE)
|
||||
if (bank == TrackBank::None)
|
||||
{
|
||||
bank = TRACK_BANK_UPSIDE_DOWN;
|
||||
bank = TrackBank::UpsideDown;
|
||||
}
|
||||
else if (bank == TRACK_BANK_UPSIDE_DOWN)
|
||||
else if (bank == TrackBank::UpsideDown)
|
||||
{
|
||||
bank = TRACK_BANK_NONE;
|
||||
bank = TrackBank::None;
|
||||
}
|
||||
}
|
||||
}
|
||||
return bank;
|
||||
}
|
||||
|
||||
roll_type_t TrackGetActualBank3(bool useInvertedSprites, TileElement* tileElement)
|
||||
TrackBank TrackGetActualBank3(bool useInvertedSprites, TileElement* tileElement)
|
||||
{
|
||||
auto trackType = tileElement->AsTrack()->GetTrackType();
|
||||
const auto& ted = GetTrackElementDescriptor(trackType);
|
||||
|
|
|
@ -23,25 +23,32 @@ constexpr int32_t kBlockBrakeBaseSpeed = 0x20364;
|
|||
constexpr int32_t kBlockBrakeSpeedOffset = kBlockBrakeBaseSpeed - (kRCT2DefaultBlockBrakeSpeed << 16);
|
||||
|
||||
using track_type_t = uint16_t;
|
||||
using roll_type_t = uint8_t;
|
||||
using pitch_type_t = uint8_t;
|
||||
|
||||
struct ResultWithMessage;
|
||||
|
||||
enum class TrackBank : uint8_t
|
||||
{
|
||||
None = 0,
|
||||
Left = 2,
|
||||
Right = 4,
|
||||
UpsideDown = 15,
|
||||
};
|
||||
|
||||
struct TrackDefinition
|
||||
{
|
||||
track_type_t type;
|
||||
pitch_type_t vangle_end;
|
||||
pitch_type_t vangle_start;
|
||||
roll_type_t bank_end;
|
||||
roll_type_t bank_start;
|
||||
TrackBank bank_end;
|
||||
TrackBank bank_start;
|
||||
int8_t preview_z_offset;
|
||||
};
|
||||
|
||||
struct PitchAndRoll
|
||||
{
|
||||
pitch_type_t Pitch;
|
||||
roll_type_t Roll;
|
||||
TrackBank Roll;
|
||||
};
|
||||
constexpr bool operator==(const PitchAndRoll& vb1, const PitchAndRoll& vb2)
|
||||
{
|
||||
|
@ -233,14 +240,6 @@ enum
|
|||
TRACK_VANGLE_REVERSE_FREEFALL = 10
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
TRACK_BANK_NONE = 0,
|
||||
TRACK_BANK_LEFT = 2,
|
||||
TRACK_BANK_RIGHT = 4,
|
||||
TRACK_BANK_UPSIDE_DOWN = 15,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
TRACK_ELEM_FLAG_ONLY_UNDERWATER = (1 << 0),
|
||||
|
@ -688,9 +687,9 @@ bool TrackTypeIsBooster(track_type_t trackType);
|
|||
std::optional<CoordsXYZ> GetTrackElementOriginAndApplyChanges(
|
||||
const CoordsXYZD& location, track_type_t type, uint16_t extra_params, TileElement** output_element, uint16_t flags);
|
||||
|
||||
roll_type_t TrackGetActualBank(TileElement* tileElement, roll_type_t bank);
|
||||
roll_type_t TrackGetActualBank2(int32_t rideType, bool isInverted, roll_type_t bank);
|
||||
roll_type_t TrackGetActualBank3(bool useInvertedSprites, TileElement* tileElement);
|
||||
TrackBank TrackGetActualBank(TileElement* tileElement, TrackBank bank);
|
||||
TrackBank TrackGetActualBank2(int32_t rideType, bool isInverted, TrackBank bank);
|
||||
TrackBank TrackGetActualBank3(bool useInvertedSprites, TileElement* tileElement);
|
||||
|
||||
ResultWithMessage TrackAddStationElement(CoordsXYZD loc, RideId rideIndex, int32_t flags, bool fromTrackDesign);
|
||||
ResultWithMessage TrackRemoveStationElement(const CoordsXYZD& loc, RideId rideIndex, int32_t flags);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -27,10 +27,10 @@ struct TrackDescriptor
|
|||
{
|
||||
bool starts_diagonal;
|
||||
uint8_t slope_start;
|
||||
uint8_t bank_start;
|
||||
TrackBank bank_start;
|
||||
TrackCurve track_curve;
|
||||
uint8_t slope_end;
|
||||
uint8_t bank_end;
|
||||
TrackBank bank_end;
|
||||
track_type_t track_element;
|
||||
};
|
||||
|
||||
|
|
|
@ -526,10 +526,10 @@ void ScriptEngine::RegisterConstants()
|
|||
.Constant("Up90", TRACK_SLOPE_UP_90)
|
||||
.Constant("Down90", TRACK_SLOPE_DOWN_90);
|
||||
builder.Namespace("TrackBanking")
|
||||
.Constant("None", TRACK_BANK_NONE)
|
||||
.Constant("BankLeft", TRACK_BANK_LEFT)
|
||||
.Constant("BankRight", TRACK_BANK_RIGHT)
|
||||
.Constant("UpsideDown", TRACK_BANK_UPSIDE_DOWN);
|
||||
.Constant("None", EnumValue(TrackBank::None))
|
||||
.Constant("BankLeft", EnumValue(TrackBank::Left))
|
||||
.Constant("BankRight", EnumValue(TrackBank::Right))
|
||||
.Constant("UpsideDown", EnumValue(TrackBank::UpsideDown));
|
||||
}
|
||||
|
||||
void ScriptEngine::RefreshPlugins()
|
||||
|
|
|
@ -102,7 +102,7 @@ int32_t ScTrackSegment::beginSlope_get() const
|
|||
int32_t ScTrackSegment::beginBank_get() const
|
||||
{
|
||||
const auto& ted = GetTrackElementDescriptor(_type);
|
||||
return ted.Definition.bank_start;
|
||||
return EnumValue(ted.Definition.bank_start);
|
||||
}
|
||||
|
||||
int32_t ScTrackSegment::endX_get() const
|
||||
|
@ -138,7 +138,7 @@ int32_t ScTrackSegment::endSlope_get() const
|
|||
int32_t ScTrackSegment::endBank_get() const
|
||||
{
|
||||
const auto& ted = GetTrackElementDescriptor(_type);
|
||||
return ted.Definition.bank_end;
|
||||
return EnumValue(ted.Definition.bank_end);
|
||||
}
|
||||
|
||||
int32_t ScTrackSegment::length_get() const
|
||||
|
|
|
@ -127,8 +127,8 @@ static std::tuple<bool, track_type_t> window_ride_construction_update_state_get_
|
|||
|
||||
uint8_t startSlope = _previousTrackSlopeEnd;
|
||||
uint8_t endSlope = _currentTrackSlopeEnd;
|
||||
uint8_t startBank = _previousTrackBankEnd;
|
||||
uint8_t endBank = _currentTrackBankEnd;
|
||||
auto startBank = _previousTrackBankEnd;
|
||||
auto endBank = _currentTrackBankEnd;
|
||||
|
||||
if (_rideConstructionState == RideConstructionState::Back)
|
||||
{
|
||||
|
@ -188,7 +188,7 @@ static std::tuple<bool, track_type_t> window_ride_construction_update_state_get_
|
|||
return std::make_tuple(false, 0);
|
||||
}
|
||||
|
||||
if (startBank != TRACK_BANK_NONE || endBank != TRACK_BANK_NONE)
|
||||
if (startBank != TrackBank::None || endBank != TrackBank::None)
|
||||
{
|
||||
return std::make_tuple(false, 0);
|
||||
}
|
||||
|
@ -197,7 +197,7 @@ static std::tuple<bool, track_type_t> window_ride_construction_update_state_get_
|
|||
|
||||
case TrackElemType::LeftVerticalLoop:
|
||||
case TrackElemType::RightVerticalLoop:
|
||||
if (startBank != TRACK_BANK_NONE || endBank != TRACK_BANK_NONE)
|
||||
if (startBank != TrackBank::None || endBank != TrackBank::None)
|
||||
{
|
||||
return std::make_tuple(false, 0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue