mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 11:03:00 +01:00
Rename local variables like ‘pressedWidgets’ in anticipation of field renames
This commit is contained in:
@@ -1358,54 +1358,54 @@ namespace OpenRCT2::Ui::Windows
|
||||
MapInvalidateMapSelectionTiles();
|
||||
}
|
||||
|
||||
uint64_t pressedWidgets = pressed_widgets
|
||||
uint64_t newPressedWidgets = pressed_widgets
|
||||
& ~((1LL << WIDX_DIRECTION_NW) | (1LL << WIDX_DIRECTION_NE) | (1LL << WIDX_DIRECTION_SW)
|
||||
| (1LL << WIDX_DIRECTION_SE) | (1LL << WIDX_SLOPEDOWN) | (1LL << WIDX_LEVEL) | (1LL << WIDX_SLOPEUP));
|
||||
uint64_t disabledWidgets = 0;
|
||||
uint64_t newDisabledWidgets = 0;
|
||||
int32_t currentRotation = GetCurrentRotation();
|
||||
if (_footpathConstructionMode == PathConstructionMode::bridgeOrTunnel)
|
||||
{
|
||||
// Set pressed directional widget
|
||||
int32_t direction = (_footpathConstructDirection + currentRotation) & 3;
|
||||
pressedWidgets |= (1LL << (WIDX_DIRECTION_NW + direction));
|
||||
newPressedWidgets |= (1LL << (WIDX_DIRECTION_NW + direction));
|
||||
|
||||
// Set pressed slope widget
|
||||
int32_t slope = _footpathConstructSlope;
|
||||
if (slope == kTileSlopeSESideUp)
|
||||
{
|
||||
pressedWidgets |= (1uLL << WIDX_SLOPEDOWN);
|
||||
newPressedWidgets |= (1uLL << WIDX_SLOPEDOWN);
|
||||
}
|
||||
else if (slope == kTileSlopeFlat)
|
||||
{
|
||||
pressedWidgets |= (1uLL << WIDX_LEVEL);
|
||||
newPressedWidgets |= (1uLL << WIDX_LEVEL);
|
||||
}
|
||||
else
|
||||
{
|
||||
pressedWidgets |= (1uLL << WIDX_SLOPEUP);
|
||||
newPressedWidgets |= (1uLL << WIDX_SLOPEUP);
|
||||
}
|
||||
|
||||
// Enable / disable directional widgets
|
||||
direction = _footpathConstructValidDirections;
|
||||
if (direction != kInvalidDirection)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_DIRECTION_NW) | (1uLL << WIDX_DIRECTION_NE) | (1uLL << WIDX_DIRECTION_SW)
|
||||
| (1uLL << WIDX_DIRECTION_SE);
|
||||
newDisabledWidgets |= (1uLL << WIDX_DIRECTION_NW) | (1uLL << WIDX_DIRECTION_NE)
|
||||
| (1uLL << WIDX_DIRECTION_SW) | (1uLL << WIDX_DIRECTION_SE);
|
||||
|
||||
direction = (direction + currentRotation) & 3;
|
||||
disabledWidgets &= ~(1 << (WIDX_DIRECTION_NW + direction));
|
||||
newDisabledWidgets &= ~(1 << (WIDX_DIRECTION_NW + direction));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Disable all bridge mode widgets
|
||||
disabledWidgets |= (1uLL << WIDX_DIRECTION_GROUP) | (1uLL << WIDX_DIRECTION_NW) | (1uLL << WIDX_DIRECTION_NE)
|
||||
newDisabledWidgets |= (1uLL << WIDX_DIRECTION_GROUP) | (1uLL << WIDX_DIRECTION_NW) | (1uLL << WIDX_DIRECTION_NE)
|
||||
| (1uLL << WIDX_DIRECTION_SW) | (1uLL << WIDX_DIRECTION_SE) | (1uLL << WIDX_SLOPE_GROUP)
|
||||
| (1uLL << WIDX_SLOPEDOWN) | (1uLL << WIDX_LEVEL) | (1uLL << WIDX_SLOPEUP) | (1uLL << WIDX_CONSTRUCT)
|
||||
| (1uLL << WIDX_REMOVE);
|
||||
}
|
||||
|
||||
pressed_widgets = pressedWidgets;
|
||||
disabled_widgets = disabledWidgets;
|
||||
pressed_widgets = newPressedWidgets;
|
||||
disabled_widgets = newDisabledWidgets;
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
|
||||
@@ -168,33 +168,33 @@ namespace OpenRCT2::Ui::Windows
|
||||
|
||||
void OnResize() override
|
||||
{
|
||||
uint64_t disabledWidgets = 0;
|
||||
uint64_t newDisabledWidgets = 0;
|
||||
if (_rideConstructionState == RideConstructionState::Place)
|
||||
{
|
||||
disabledWidgets
|
||||
newDisabledWidgets
|
||||
|= ((1uLL << WIDX_MAZE_BUILD_MODE) | (1uLL << WIDX_MAZE_MOVE_MODE) | (1uLL << WIDX_MAZE_FILL_MODE)
|
||||
| (1uLL << WIDX_MAZE_DIRECTION_NW) | (1uLL << WIDX_MAZE_DIRECTION_NE) | (1uLL << WIDX_MAZE_DIRECTION_SW)
|
||||
| (1uLL << WIDX_MAZE_DIRECTION_SE));
|
||||
}
|
||||
else if (_rideConstructionState == RideConstructionState::EntranceExit)
|
||||
{
|
||||
disabledWidgets = (1uLL << WIDX_MAZE_DIRECTION_NW) | (1uLL << WIDX_MAZE_DIRECTION_NE)
|
||||
newDisabledWidgets = (1uLL << WIDX_MAZE_DIRECTION_NW) | (1uLL << WIDX_MAZE_DIRECTION_NE)
|
||||
| (1uLL << WIDX_MAZE_DIRECTION_SW) | (1uLL << WIDX_MAZE_DIRECTION_SE);
|
||||
}
|
||||
|
||||
// Set and invalidate the changed widgets
|
||||
uint64_t currentDisabledWidgets = disabled_widgets;
|
||||
if (currentDisabledWidgets == disabledWidgets)
|
||||
if (currentDisabledWidgets == newDisabledWidgets)
|
||||
return;
|
||||
|
||||
for (WidgetIndex i = 0; i < 64; i++)
|
||||
{
|
||||
if ((disabledWidgets & (1uLL << i)) != (currentDisabledWidgets & (1uLL << i)))
|
||||
if ((newDisabledWidgets & (1uLL << i)) != (currentDisabledWidgets & (1uLL << i)))
|
||||
{
|
||||
InvalidateWidget(i);
|
||||
}
|
||||
}
|
||||
disabled_widgets = disabledWidgets;
|
||||
disabled_widgets = newDisabledWidgets;
|
||||
}
|
||||
|
||||
void OnMouseDown(WidgetIndex widgetIndex) override
|
||||
@@ -456,41 +456,41 @@ namespace OpenRCT2::Ui::Windows
|
||||
if (w == nullptr)
|
||||
return;
|
||||
|
||||
uint64_t pressedWidgets = w->pressed_widgets;
|
||||
uint64_t newPressedWidgets = w->pressed_widgets;
|
||||
|
||||
// Unpress all the mode buttons
|
||||
pressedWidgets &= ~EnumToFlag(WIDX_MAZE_BUILD_MODE);
|
||||
pressedWidgets &= ~EnumToFlag(WIDX_MAZE_MOVE_MODE);
|
||||
pressedWidgets &= ~EnumToFlag(WIDX_MAZE_FILL_MODE);
|
||||
pressedWidgets &= ~EnumToFlag(WIDX_MAZE_ENTRANCE);
|
||||
pressedWidgets &= ~EnumToFlag(WIDX_MAZE_EXIT);
|
||||
newPressedWidgets &= ~EnumToFlag(WIDX_MAZE_BUILD_MODE);
|
||||
newPressedWidgets &= ~EnumToFlag(WIDX_MAZE_MOVE_MODE);
|
||||
newPressedWidgets &= ~EnumToFlag(WIDX_MAZE_FILL_MODE);
|
||||
newPressedWidgets &= ~EnumToFlag(WIDX_MAZE_ENTRANCE);
|
||||
newPressedWidgets &= ~EnumToFlag(WIDX_MAZE_EXIT);
|
||||
|
||||
switch (_rideConstructionState)
|
||||
{
|
||||
case RideConstructionState::EntranceExit:
|
||||
if (isToolActive(WindowClass::RideConstruction, WIDX_MAZE_ENTRANCE))
|
||||
{
|
||||
pressedWidgets |= EnumToFlag(WIDX_MAZE_ENTRANCE);
|
||||
newPressedWidgets |= EnumToFlag(WIDX_MAZE_ENTRANCE);
|
||||
}
|
||||
else
|
||||
{
|
||||
pressedWidgets |= EnumToFlag(WIDX_MAZE_EXIT);
|
||||
newPressedWidgets |= EnumToFlag(WIDX_MAZE_EXIT);
|
||||
}
|
||||
break;
|
||||
case RideConstructionState::MazeBuild:
|
||||
pressedWidgets |= EnumToFlag(WIDX_MAZE_BUILD_MODE);
|
||||
newPressedWidgets |= EnumToFlag(WIDX_MAZE_BUILD_MODE);
|
||||
break;
|
||||
case RideConstructionState::MazeMove:
|
||||
pressedWidgets |= EnumToFlag(WIDX_MAZE_MOVE_MODE);
|
||||
newPressedWidgets |= EnumToFlag(WIDX_MAZE_MOVE_MODE);
|
||||
break;
|
||||
case RideConstructionState::MazeFill:
|
||||
pressedWidgets |= EnumToFlag(WIDX_MAZE_FILL_MODE);
|
||||
newPressedWidgets |= EnumToFlag(WIDX_MAZE_FILL_MODE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
w->pressed_widgets = pressedWidgets;
|
||||
w->pressed_widgets = newPressedWidgets;
|
||||
w->Invalidate();
|
||||
}
|
||||
} // namespace OpenRCT2::Ui::Windows
|
||||
|
||||
@@ -349,16 +349,16 @@ namespace OpenRCT2::Ui::Windows
|
||||
const auto& rtd = currentRide->getRideTypeDescriptor();
|
||||
const auto currentTrackDrawerDescriptor = getCurrentTrackDrawerDescriptor(rtd);
|
||||
|
||||
uint64_t disabledWidgets = 0;
|
||||
uint64_t newDisabledWidgets = 0;
|
||||
|
||||
if (_rideConstructionState == RideConstructionState::Place)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_CONSTRUCT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_CONSTRUCT);
|
||||
}
|
||||
|
||||
if (_currentlySelectedTrack.isTrackType)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_GROUPBOX) | (1uLL << WIDX_BANKING_GROUPBOX)
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_GROUPBOX) | (1uLL << WIDX_BANKING_GROUPBOX)
|
||||
| (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_LEVEL)
|
||||
| (1uLL << WIDX_SLOPE_UP) | (1uLL << WIDX_SLOPE_UP_STEEP) | (1uLL << WIDX_CHAIN_LIFT)
|
||||
| (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_STRAIGHT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
@@ -371,7 +371,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
|| !(_previousTrackPitchEnd == TrackPitch::Up25 || _previousTrackPitchEnd == TrackPitch::Down25)
|
||||
|| !(_currentTrackPitchEnd == TrackPitch::Up25 || _currentTrackPitchEnd == TrackPitch::Down25))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_LARGE) | (1uLL << WIDX_RIGHT_CURVE_LARGE);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_LARGE) | (1uLL << WIDX_RIGHT_CURVE_LARGE);
|
||||
}
|
||||
}
|
||||
if (IsTrackEnabled(TrackGroup::slopeCurve) && IsTrackEnabled(TrackGroup::curveVerySmall))
|
||||
@@ -379,7 +379,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
// Disable small curves if the start or end of the track is sloped.
|
||||
if (_previousTrackPitchEnd != TrackPitch::None || _currentTrackPitchEnd != TrackPitch::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_RIGHT_CURVE_VERY_SMALL);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_RIGHT_CURVE_VERY_SMALL);
|
||||
}
|
||||
}
|
||||
if (!IsTrackEnabled(TrackGroup::slopeCurve))
|
||||
@@ -391,7 +391,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
if (_previousTrackPitchEnd != TrackPitch::Down90 || _currentTrackPitchEnd != TrackPitch::Down90)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE_SMALL)
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE_SMALL)
|
||||
| (1uLL << WIDX_LEFT_CURVE) | (1uLL << WIDX_RIGHT_CURVE) | (1uLL << WIDX_RIGHT_CURVE_SMALL)
|
||||
| (1uLL << WIDX_RIGHT_CURVE_VERY_SMALL);
|
||||
}
|
||||
@@ -402,7 +402,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
// Disable all curves on sloped track
|
||||
if (_previousTrackPitchEnd != TrackPitch::None || _currentTrackPitchEnd != TrackPitch::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE_SMALL)
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE_SMALL)
|
||||
| (1uLL << WIDX_LEFT_CURVE) | (1uLL << WIDX_RIGHT_CURVE) | (1uLL << WIDX_RIGHT_CURVE_SMALL)
|
||||
| (1uLL << WIDX_RIGHT_CURVE_VERY_SMALL);
|
||||
}
|
||||
@@ -411,14 +411,14 @@ namespace OpenRCT2::Ui::Windows
|
||||
if (!IsTrackEnabled(TrackGroup::flatRollBanking))
|
||||
{
|
||||
// Disable banking
|
||||
disabledWidgets |= (1uLL << WIDX_BANKING_GROUPBOX) | (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_STRAIGHT)
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANKING_GROUPBOX) | (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_STRAIGHT)
|
||||
| (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
// Disable banking if the start track is steep and the end of the track becomes flat.
|
||||
if ((_previousTrackPitchEnd == TrackPitch::Down60 || _previousTrackPitchEnd == TrackPitch::Up60)
|
||||
&& _currentTrackPitchEnd == TrackPitch::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
if (!IsTrackEnabled(TrackGroup::slope) && !IsTrackEnabled(TrackGroup::slopeSteepDown)
|
||||
&& !IsTrackEnabled(TrackGroup::slopeSteepUp))
|
||||
@@ -426,7 +426,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
if (!currentRide->getRideTypeDescriptor().SupportsTrackGroup(TrackGroup::reverseFreefall))
|
||||
{
|
||||
// Disable all slopes
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_GROUPBOX) | (1uLL << WIDX_SLOPE_DOWN_STEEP)
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_GROUPBOX) | (1uLL << WIDX_SLOPE_DOWN_STEEP)
|
||||
| (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_LEVEL) | (1uLL << WIDX_SLOPE_UP)
|
||||
| (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
}
|
||||
@@ -437,11 +437,11 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
if (_currentTrackPitchEnd != TrackPitch::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
else if (_currentTrackRollEnd != TrackRoll::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_SLOPE_UP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_SLOPE_UP);
|
||||
}
|
||||
}
|
||||
if (currentRide->getRideTypeDescriptor().HasFlag(RtdFlag::upInclineRequiresLift)
|
||||
@@ -450,15 +450,15 @@ namespace OpenRCT2::Ui::Windows
|
||||
// Disable lift hill toggle and banking if current track piece is uphill
|
||||
if (_previousTrackPitchEnd == TrackPitch::Up25 || _previousTrackPitchEnd == TrackPitch::Up60
|
||||
|| _currentTrackPitchEnd == TrackPitch::Up25 || _currentTrackPitchEnd == TrackPitch::Up60)
|
||||
disabledWidgets |= 1uLL << WIDX_CHAIN_LIFT | (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets |= 1uLL << WIDX_CHAIN_LIFT | (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
// Disable upward slope if current track piece is not flat
|
||||
if ((_previousTrackPitchEnd != TrackPitch::None || _previousTrackRollEnd != TrackRoll::None)
|
||||
&& !(_currentTrackHasLiftHill))
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_UP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_UP);
|
||||
}
|
||||
if (_rideConstructionState == RideConstructionState::State0)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_CONSTRUCT) | (1uLL << WIDX_DEMOLISH) | (1uLL << WIDX_PREVIOUS_SECTION)
|
||||
newDisabledWidgets |= (1uLL << WIDX_CONSTRUCT) | (1uLL << WIDX_DEMOLISH) | (1uLL << WIDX_PREVIOUS_SECTION)
|
||||
| (1uLL << WIDX_NEXT_SECTION);
|
||||
}
|
||||
if (!_currentlySelectedTrack.isTrackType)
|
||||
@@ -469,28 +469,28 @@ namespace OpenRCT2::Ui::Windows
|
||||
case TrackCurve::LeftSmall:
|
||||
case TrackCurve::Left:
|
||||
case TrackCurve::LeftLarge:
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_RIGHT);
|
||||
if (_previousTrackRollEnd == TrackRoll::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_LEFT);
|
||||
}
|
||||
else
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_STRAIGHT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_STRAIGHT);
|
||||
}
|
||||
break;
|
||||
case TrackCurve::RightLarge:
|
||||
case TrackCurve::Right:
|
||||
case TrackCurve::RightSmall:
|
||||
case TrackCurve::RightVerySmall:
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_LEFT);
|
||||
if (_previousTrackRollEnd == TrackRoll::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
else
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_STRAIGHT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_STRAIGHT);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -501,7 +501,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
if (_currentTrackRollEnd != TrackRoll::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_SLOPE_UP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_SLOPE_UP);
|
||||
}
|
||||
}
|
||||
if (_previousTrackPitchEnd == _currentTrackPitchEnd)
|
||||
@@ -510,20 +510,20 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
case TrackPitch::Up60:
|
||||
case TrackPitch::Down60:
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE)
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE)
|
||||
| (1uLL << WIDX_RIGHT_CURVE) | (1uLL << WIDX_RIGHT_CURVE_VERY_SMALL);
|
||||
if (!IsTrackEnabled(TrackGroup::slopeCurveSteep))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_RIGHT_CURVE_SMALL);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_RIGHT_CURVE_SMALL);
|
||||
}
|
||||
break;
|
||||
case TrackPitch::Up90:
|
||||
case TrackPitch::Down90:
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE)
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE)
|
||||
| (1uLL << WIDX_RIGHT_CURVE) | (1uLL << WIDX_RIGHT_CURVE_VERY_SMALL);
|
||||
if (!IsTrackEnabled(TrackGroup::curveVertical))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_RIGHT_CURVE_SMALL);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_RIGHT_CURVE_SMALL);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -533,7 +533,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
else
|
||||
{
|
||||
// Disable all curves
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE_SMALL)
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE_SMALL)
|
||||
| (1uLL << WIDX_LEFT_CURVE) | (1uLL << WIDX_RIGHT_CURVE) | (1uLL << WIDX_RIGHT_CURVE_SMALL)
|
||||
| (1uLL << WIDX_RIGHT_CURVE_VERY_SMALL);
|
||||
}
|
||||
@@ -545,46 +545,46 @@ namespace OpenRCT2::Ui::Windows
|
||||
case TrackPitch::None:
|
||||
if (!IsTrackEnabled(TrackGroup::diagSlope))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_UP) | (1uLL << WIDX_SLOPE_DOWN);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_UP) | (1uLL << WIDX_SLOPE_DOWN);
|
||||
}
|
||||
if (_currentlySelectedTrack != TrackCurve::None
|
||||
|| (!IsTrackEnabled(TrackGroup::flatToSteepSlope)
|
||||
&& !IsTrackEnabled(TrackGroup::diagSlopeSteepLong)))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
}
|
||||
break;
|
||||
case TrackPitch::Down25:
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_UP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_UP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
if (!IsTrackEnabled(TrackGroup::diagSlopeSteepDown))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
}
|
||||
break;
|
||||
case TrackPitch::Down60:
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_UP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_UP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
if (!IsTrackEnabled(TrackGroup::flatToSteepSlope) && !IsTrackEnabled(TrackGroup::diagSlopeSteepLong))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
}
|
||||
break;
|
||||
case TrackPitch::Up25:
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_DOWN);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_DOWN);
|
||||
if (!IsTrackEnabled(TrackGroup::diagSlopeSteepUp))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
}
|
||||
break;
|
||||
case TrackPitch::Up60:
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_DOWN);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_DOWN);
|
||||
if (!IsTrackEnabled(TrackGroup::flatToSteepSlope) && !IsTrackEnabled(TrackGroup::diagSlopeSteepLong))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
}
|
||||
break;
|
||||
case TrackPitch::Down90:
|
||||
case TrackPitch::Up90:
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_LEVEL) | (1uLL << WIDX_SLOPE_UP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_LEVEL) | (1uLL << WIDX_SLOPE_UP);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -596,43 +596,43 @@ namespace OpenRCT2::Ui::Windows
|
||||
if (_currentlySelectedTrack != TrackCurve::None
|
||||
|| (!IsTrackEnabled(TrackGroup::flatToSteepSlope) && !IsTrackEnabled(TrackGroup::slopeSteepLong)))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
}
|
||||
break;
|
||||
case TrackPitch::Down25:
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_UP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_UP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
if (!IsTrackEnabled(TrackGroup::slopeSteepDown))
|
||||
{
|
||||
disabledWidgets |= 1uLL << WIDX_SLOPE_DOWN_STEEP;
|
||||
newDisabledWidgets |= 1uLL << WIDX_SLOPE_DOWN_STEEP;
|
||||
}
|
||||
break;
|
||||
case TrackPitch::Down60:
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_UP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_UP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
if (!IsTrackEnabled(TrackGroup::flatToSteepSlope) && !IsTrackEnabled(TrackGroup::slopeSteepLong))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
}
|
||||
break;
|
||||
case TrackPitch::Up25:
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_DOWN);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_DOWN);
|
||||
if (!IsTrackEnabled(TrackGroup::slopeSteepUp))
|
||||
{
|
||||
disabledWidgets |= 1uLL << WIDX_SLOPE_UP_STEEP;
|
||||
newDisabledWidgets |= 1uLL << WIDX_SLOPE_UP_STEEP;
|
||||
}
|
||||
break;
|
||||
case TrackPitch::Up60:
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_DOWN);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_DOWN);
|
||||
if (!IsTrackEnabled(TrackGroup::flatToSteepSlope) && !IsTrackEnabled(TrackGroup::slopeSteepLong))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
}
|
||||
break;
|
||||
case TrackPitch::Down90:
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_LEVEL) | (1uLL << WIDX_SLOPE_UP)
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_LEVEL) | (1uLL << WIDX_SLOPE_UP)
|
||||
| (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
break;
|
||||
case TrackPitch::Up90:
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_LEVEL)
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_LEVEL)
|
||||
| (1uLL << WIDX_SLOPE_UP);
|
||||
break;
|
||||
}
|
||||
@@ -640,15 +640,15 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
if (_previousTrackPitchEnd == TrackPitch::Up60 && _currentTrackPieceDirection < 4)
|
||||
{
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_UP_VERTICAL);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_UP_VERTICAL);
|
||||
}
|
||||
if (_previousTrackPitchEnd == TrackPitch::Up90)
|
||||
{
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_UP_VERTICAL);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_UP_VERTICAL);
|
||||
}
|
||||
if (_previousTrackPitchEnd == TrackPitch::Down60 && _currentTrackPieceDirection < 4)
|
||||
{
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN_VERTICAL);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN_VERTICAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -658,22 +658,22 @@ namespace OpenRCT2::Ui::Windows
|
||||
&& (_previousTrackPitchEnd == TrackPitch::Up25 || _previousTrackPitchEnd == TrackPitch::Down25)
|
||||
&& !IsTrackEnabled(TrackGroup::diagSlope))
|
||||
{
|
||||
disabledWidgets |= 1uLL << WIDX_STRAIGHT;
|
||||
newDisabledWidgets |= 1uLL << WIDX_STRAIGHT;
|
||||
}
|
||||
|
||||
if (_previousTrackRollEnd == TrackRoll::Left)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_RIGHT_CURVE_SMALL) | (1uLL << WIDX_RIGHT_CURVE)
|
||||
newDisabledWidgets |= (1uLL << WIDX_RIGHT_CURVE_SMALL) | (1uLL << WIDX_RIGHT_CURVE)
|
||||
| (1uLL << WIDX_RIGHT_CURVE_LARGE) | (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
if (_previousTrackRollEnd == TrackRoll::Right)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE) | (1uLL << WIDX_LEFT_CURVE_LARGE)
|
||||
| (1uLL << WIDX_BANK_LEFT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE)
|
||||
| (1uLL << WIDX_LEFT_CURVE_LARGE) | (1uLL << WIDX_BANK_LEFT);
|
||||
}
|
||||
if (_currentTrackRollEnd != _previousTrackRollEnd)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_RIGHT_CURVE_SMALL) | (1uLL << WIDX_RIGHT_CURVE)
|
||||
newDisabledWidgets |= (1uLL << WIDX_RIGHT_CURVE_SMALL) | (1uLL << WIDX_RIGHT_CURVE)
|
||||
| (1uLL << WIDX_RIGHT_CURVE_LARGE) | (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE)
|
||||
| (1uLL << WIDX_LEFT_CURVE_LARGE);
|
||||
}
|
||||
@@ -685,160 +685,161 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
if (_currentTrackPitchEnd != TrackPitch::Up25 && _currentTrackPitchEnd != TrackPitch::Down25)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_currentTrackPitchEnd != _previousTrackPitchEnd)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_currentTrackPitchEnd != TrackPitch::Up25 && _currentTrackPitchEnd != TrackPitch::Down25)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
}
|
||||
if (_currentTrackRollEnd != TrackRoll::None || _previousTrackRollEnd != TrackRoll::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_UP_STEEP) | (1uLL << WIDX_CHAIN_LIFT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_UP_STEEP)
|
||||
| (1uLL << WIDX_CHAIN_LIFT);
|
||||
}
|
||||
if (_currentlySelectedTrack != TrackCurve::None)
|
||||
{
|
||||
if (!IsTrackEnabled(TrackGroup::liftHillCurve))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
}
|
||||
if (_currentTrackPitchEnd == TrackPitch::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
}
|
||||
if (_currentTrackPitchEnd == TrackPitch::Up60)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
}
|
||||
if (_currentTrackPitchEnd == TrackPitch::Down60)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
}
|
||||
// Ensures that you can build an "unbanking turn", but not select a turn that start banked and
|
||||
// turns to level (as that does not exist).
|
||||
if (_currentTrackRollEnd != TrackRoll::None && _currentTrackPitchEnd != TrackPitch::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
}
|
||||
}
|
||||
if (_currentTrackPitchEnd == TrackPitch::Up90 || _previousTrackPitchEnd == TrackPitch::Up90)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
}
|
||||
if (!IsTrackEnabled(TrackGroup::liftHillSteep))
|
||||
{
|
||||
if (_previousTrackPitchEnd == TrackPitch::Up60 || _currentTrackPitchEnd == TrackPitch::Up60)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
}
|
||||
}
|
||||
if (_previousTrackRollEnd == TrackRoll::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)
|
||||
| (1uLL << WIDX_RIGHT_CURVE_LARGE);
|
||||
newDisabledWidgets |= (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) | (1uLL << WIDX_RIGHT_CURVE_LARGE);
|
||||
}
|
||||
if (_currentlySelectedTrack != TrackCurve::None)
|
||||
{
|
||||
if (_currentTrackPitchEnd == TrackPitch::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_SLOPE_UP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_SLOPE_UP);
|
||||
}
|
||||
if (_currentTrackPitchEnd == _previousTrackPitchEnd)
|
||||
{
|
||||
if (_currentTrackPitchEnd == TrackPitch::Up25)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
if (_currentlySelectedTrack == TrackCurve::Left || _currentlySelectedTrack == TrackCurve::Right
|
||||
|| _rideConstructionState != RideConstructionState::Back
|
||||
|| !IsTrackEnabled(TrackGroup::slopeCurveBanked))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
}
|
||||
}
|
||||
if (_currentTrackPitchEnd == TrackPitch::Down25)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
if (_currentlySelectedTrack == TrackCurve::Left || _currentlySelectedTrack == TrackCurve::Right
|
||||
|| _rideConstructionState != RideConstructionState::Front
|
||||
|| !IsTrackEnabled(TrackGroup::slopeCurveBanked))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEVEL);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (IsTrackEnabled(TrackGroup::slopeCurveBanked))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
if (_currentTrackRollEnd == TrackRoll::Left)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_STRAIGHT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
disabledWidgets &= ~(1uLL << WIDX_BANK_LEFT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_STRAIGHT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_BANK_LEFT);
|
||||
}
|
||||
if (_currentTrackRollEnd == TrackRoll::Right)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_STRAIGHT);
|
||||
disabledWidgets &= ~(1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_STRAIGHT);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
if (_currentTrackRollEnd == TrackRoll::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
disabledWidgets &= ~(1uLL << WIDX_BANK_STRAIGHT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_BANK_LEFT) | (1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_BANK_STRAIGHT);
|
||||
}
|
||||
if (_currentTrackPitchEnd == TrackPitch::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_SLOPE_UP);
|
||||
disabledWidgets &= ~(1uLL << WIDX_LEVEL);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_SLOPE_UP);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_LEVEL);
|
||||
}
|
||||
if (_currentTrackPitchEnd == TrackPitch::Up25)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_LEVEL);
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_UP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_LEVEL);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_UP);
|
||||
}
|
||||
if (_currentTrackPitchEnd == TrackPitch::Down25)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEVEL) | (1uLL << WIDX_SLOPE_UP);
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEVEL) | (1uLL << WIDX_SLOPE_UP);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN);
|
||||
}
|
||||
if (_currentlySelectedTrack == TrackCurve::LeftSmall)
|
||||
{
|
||||
disabledWidgets &= ~(1uLL << WIDX_LEFT_CURVE_SMALL);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_LEFT_CURVE_SMALL);
|
||||
}
|
||||
if (_currentlySelectedTrack == TrackCurve::RightSmall)
|
||||
{
|
||||
disabledWidgets &= ~(1uLL << WIDX_RIGHT_CURVE_SMALL);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_RIGHT_CURVE_SMALL);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (_currentlySelectedTrack != TrackCurve::None && _currentTrackPitchEnd == TrackPitch::Up60)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_UP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_UP);
|
||||
}
|
||||
if (_currentlySelectedTrack != TrackCurve::None && _currentTrackPitchEnd == TrackPitch::Down60)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN);
|
||||
}
|
||||
if ((_currentTrackHasLiftHill) && !getGameState().cheats.enableChainLiftOnAllTrack)
|
||||
{
|
||||
if (_currentTrackPitchEnd != TrackPitch::None && !IsTrackEnabled(TrackGroup::liftHillCurve))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE)
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE)
|
||||
| (1uLL << WIDX_LEFT_CURVE_LARGE) | (1uLL << WIDX_RIGHT_CURVE_SMALL) | (1uLL << WIDX_RIGHT_CURVE)
|
||||
| (1uLL << WIDX_RIGHT_CURVE_LARGE);
|
||||
}
|
||||
@@ -846,44 +847,44 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
if (widgets[WIDX_SLOPE_UP_STEEP].tooltip == STR_RIDE_CONSTRUCTION_STEEP_SLOPE_UP_TIP)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (_previousTrackPitchEnd == TrackPitch::Up60 && _currentlySelectedTrack != TrackCurve::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_LEVEL);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP) | (1uLL << WIDX_LEVEL);
|
||||
}
|
||||
if (_previousTrackPitchEnd == TrackPitch::Down60 && _currentlySelectedTrack != TrackCurve::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEVEL) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEVEL) | (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
}
|
||||
if (_currentTrackPitchEnd == TrackPitch::Up90 || _previousTrackPitchEnd == TrackPitch::Up90)
|
||||
{
|
||||
if (_currentlySelectedTrack != TrackCurve::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
}
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_LARGE) | (1uLL << WIDX_RIGHT_CURVE_LARGE)
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_LARGE) | (1uLL << WIDX_RIGHT_CURVE_LARGE)
|
||||
| (1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
if (currentRide->getRideTypeDescriptor().SupportsTrackGroup(TrackGroup::reverseFreefall))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_STRAIGHT) | (1uLL << WIDX_RIGHT_CURVE) | (1uLL << WIDX_RIGHT_CURVE_SMALL)
|
||||
| (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE);
|
||||
newDisabledWidgets |= (1uLL << WIDX_STRAIGHT) | (1uLL << WIDX_RIGHT_CURVE)
|
||||
| (1uLL << WIDX_RIGHT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE);
|
||||
}
|
||||
}
|
||||
else if (_currentTrackPitchEnd == TrackPitch::Down90 || _previousTrackPitchEnd == TrackPitch::Down90)
|
||||
{
|
||||
if (_currentlySelectedTrack != TrackCurve::None)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
newDisabledWidgets |= (1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
}
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_LARGE) | (1uLL << WIDX_RIGHT_CURVE_LARGE)
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_LARGE) | (1uLL << WIDX_RIGHT_CURVE_LARGE)
|
||||
| (1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
if (currentRide->getRideTypeDescriptor().SupportsTrackGroup(TrackGroup::reverseFreefall))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_STRAIGHT) | (1uLL << WIDX_RIGHT_CURVE) | (1uLL << WIDX_RIGHT_CURVE_SMALL)
|
||||
| (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE);
|
||||
newDisabledWidgets |= (1uLL << WIDX_STRAIGHT) | (1uLL << WIDX_RIGHT_CURVE)
|
||||
| (1uLL << WIDX_RIGHT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE_SMALL) | (1uLL << WIDX_LEFT_CURVE);
|
||||
}
|
||||
}
|
||||
// If the previous track is flat and the next track is flat, attempt to show buttons for helixes
|
||||
@@ -894,9 +895,9 @@ namespace OpenRCT2::Ui::Windows
|
||||
&& (_currentlySelectedTrack == TrackCurve::Left || _currentlySelectedTrack == TrackCurve::Right))
|
||||
{
|
||||
if (IsTrackEnabled(TrackGroup::helixDownUnbankedQuarter))
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
if (IsTrackEnabled(TrackGroup::helixUpUnbankedQuarter))
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
}
|
||||
// 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
|
||||
@@ -905,9 +906,9 @@ namespace OpenRCT2::Ui::Windows
|
||||
&& (_currentlySelectedTrack == TrackCurve::Left || _currentlySelectedTrack == TrackCurve::Right))
|
||||
{
|
||||
if (IsTrackEnabled(TrackGroup::helixDownBankedHalf) || IsTrackEnabled(TrackGroup::helixDownBankedQuarter))
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
if (IsTrackEnabled(TrackGroup::helixUpBankedHalf) || IsTrackEnabled(TrackGroup::helixUpBankedQuarter))
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
}
|
||||
// If the track is banked left or right and curvature is small size (1.5 tile radius), attempt to show buttons
|
||||
// for half helixes
|
||||
@@ -916,9 +917,9 @@ namespace OpenRCT2::Ui::Windows
|
||||
&& (_currentlySelectedTrack == TrackCurve::LeftSmall || _currentlySelectedTrack == TrackCurve::RightSmall))
|
||||
{
|
||||
if (IsTrackEnabled(TrackGroup::helixDownBankedHalf))
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN_STEEP);
|
||||
if (IsTrackEnabled(TrackGroup::helixUpBankedHalf))
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_UP_STEEP);
|
||||
}
|
||||
}
|
||||
if (IsTrackEnabled(TrackGroup::slopeCurveBanked))
|
||||
@@ -931,7 +932,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
&& (!currentRide->getRideTypeDescriptor().HasFlag(RtdFlag::upInclineRequiresLift)
|
||||
|| getGameState().cheats.enableAllDrawableTrackPieces))
|
||||
{
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_UP);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_UP);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -941,41 +942,41 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
if (_currentTrackPitchEnd == TrackPitch::None && _previousTrackRollEnd != TrackRoll::None)
|
||||
{
|
||||
disabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_SLOPE_DOWN);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (_currentTrackPieceDirection >= 4)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE_SMALL)
|
||||
newDisabledWidgets |= (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE_SMALL)
|
||||
| (1uLL << WIDX_LEFT_CURVE) | (1uLL << WIDX_RIGHT_CURVE) | (1uLL << WIDX_RIGHT_CURVE_SMALL)
|
||||
| (1uLL << WIDX_RIGHT_CURVE_VERY_SMALL);
|
||||
}
|
||||
if (_rideConstructionState == RideConstructionState::Front)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_NEXT_SECTION);
|
||||
newDisabledWidgets |= (1uLL << WIDX_NEXT_SECTION);
|
||||
if (WindowRideConstructionUpdateState(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_CONSTRUCT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_CONSTRUCT);
|
||||
}
|
||||
}
|
||||
else if (_rideConstructionState == RideConstructionState::Back)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_PREVIOUS_SECTION);
|
||||
newDisabledWidgets |= (1uLL << WIDX_PREVIOUS_SECTION);
|
||||
if (WindowRideConstructionUpdateState(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr))
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_CONSTRUCT);
|
||||
newDisabledWidgets |= (1uLL << WIDX_CONSTRUCT);
|
||||
}
|
||||
}
|
||||
if (currentTrackDrawerDescriptor.HasCoveredPieces())
|
||||
{
|
||||
disabledWidgets &= ~(1uLL << WIDX_BANKING_GROUPBOX);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_BANKING_GROUPBOX);
|
||||
}
|
||||
if (_rideConstructionState == RideConstructionState::EntranceExit
|
||||
|| _rideConstructionState == RideConstructionState::Selected)
|
||||
{
|
||||
disabledWidgets |= (1uLL << WIDX_DIRECTION_GROUPBOX) | (1uLL << WIDX_SLOPE_GROUPBOX)
|
||||
newDisabledWidgets |= (1uLL << WIDX_DIRECTION_GROUPBOX) | (1uLL << WIDX_SLOPE_GROUPBOX)
|
||||
| (1uLL << WIDX_BANKING_GROUPBOX) | (1uLL << WIDX_LEFT_CURVE_VERY_SMALL) | (1uLL << WIDX_LEFT_CURVE_SMALL)
|
||||
| (1uLL << WIDX_LEFT_CURVE) | (1uLL << WIDX_STRAIGHT) | (1uLL << WIDX_RIGHT_CURVE)
|
||||
| (1uLL << WIDX_RIGHT_CURVE_SMALL) | (1uLL << WIDX_RIGHT_CURVE_VERY_SMALL)
|
||||
@@ -986,31 +987,31 @@ namespace OpenRCT2::Ui::Windows
|
||||
}
|
||||
if (_currentlyShowingBrakeOrBoosterSpeed)
|
||||
{
|
||||
disabledWidgets &= ~(1uLL << WIDX_BANKING_GROUPBOX);
|
||||
disabledWidgets &= ~(1uLL << WIDX_BANK_LEFT);
|
||||
disabledWidgets &= ~(1uLL << WIDX_BANK_STRAIGHT);
|
||||
disabledWidgets &= ~(1uLL << WIDX_BANK_RIGHT);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_BANKING_GROUPBOX);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_BANK_LEFT);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_BANK_STRAIGHT);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_BANK_RIGHT);
|
||||
}
|
||||
|
||||
// If chain lift cheat is enabled then show the chain lift widget no matter what
|
||||
if (getGameState().cheats.enableChainLiftOnAllTrack)
|
||||
{
|
||||
disabledWidgets &= ~(1uLL << WIDX_CHAIN_LIFT);
|
||||
newDisabledWidgets &= ~(1uLL << WIDX_CHAIN_LIFT);
|
||||
}
|
||||
|
||||
// Set and invalidate the changed widgets
|
||||
uint64_t currentDisabledWidgets = disabled_widgets;
|
||||
if (currentDisabledWidgets == disabledWidgets)
|
||||
if (currentDisabledWidgets == newDisabledWidgets)
|
||||
return;
|
||||
|
||||
for (WidgetIndex i = 0; i < 64; i++)
|
||||
{
|
||||
if ((disabledWidgets & (1uLL << i)) != (currentDisabledWidgets & (1uLL << i)))
|
||||
if ((newDisabledWidgets & (1uLL << i)) != (currentDisabledWidgets & (1uLL << i)))
|
||||
{
|
||||
InvalidateWidget(i);
|
||||
}
|
||||
}
|
||||
disabled_widgets = disabledWidgets;
|
||||
disabled_widgets = newDisabledWidgets;
|
||||
}
|
||||
|
||||
void OnUpdate() override
|
||||
@@ -2076,7 +2077,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
}
|
||||
}
|
||||
|
||||
uint64_t pressedWidgets = pressed_widgets
|
||||
uint64_t newPressedWidgets = pressed_widgets
|
||||
& ((1uLL << WIDX_BACKGROUND) | (1uLL << WIDX_TITLE) | (1uLL << WIDX_CLOSE) | (1uLL << WIDX_DIRECTION_GROUPBOX)
|
||||
| (1uLL << WIDX_SLOPE_GROUPBOX) | (1uLL << WIDX_BANKING_GROUPBOX) | (1uLL << WIDX_CONSTRUCT)
|
||||
| (1uLL << WIDX_DEMOLISH) | (1uLL << WIDX_PREVIOUS_SECTION) | (1uLL << WIDX_NEXT_SECTION)
|
||||
@@ -2119,7 +2120,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
widgets[WIDX_PREVIOUS_SECTION].type = WidgetType::empty;
|
||||
break;
|
||||
default:
|
||||
pressed_widgets = pressedWidgets;
|
||||
pressed_widgets = newPressedWidgets;
|
||||
Invalidate();
|
||||
return;
|
||||
}
|
||||
@@ -2159,7 +2160,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
}
|
||||
}
|
||||
|
||||
pressedWidgets |= (1uLL << widgetIndex);
|
||||
newPressedWidgets |= (1uLL << widgetIndex);
|
||||
|
||||
switch (_currentTrackPitchEnd)
|
||||
{
|
||||
@@ -2185,7 +2186,7 @@ namespace OpenRCT2::Ui::Windows
|
||||
widgetIndex = WIDX_LEVEL;
|
||||
break;
|
||||
}
|
||||
pressedWidgets |= (1uLL << widgetIndex);
|
||||
newPressedWidgets |= (1uLL << widgetIndex);
|
||||
|
||||
if (!_currentlyShowingBrakeOrBoosterSpeed)
|
||||
{
|
||||
@@ -2193,11 +2194,11 @@ namespace OpenRCT2::Ui::Windows
|
||||
{
|
||||
if (_currentTrackAlternative.has(AlternativeTrackFlag::alternativePieces))
|
||||
{
|
||||
pressedWidgets |= (1uLL << WIDX_O_TRACK);
|
||||
newPressedWidgets |= (1uLL << WIDX_O_TRACK);
|
||||
}
|
||||
else
|
||||
{
|
||||
pressedWidgets |= (1uLL << WIDX_U_TRACK);
|
||||
newPressedWidgets |= (1uLL << WIDX_U_TRACK);
|
||||
}
|
||||
}
|
||||
switch (_currentTrackRollEnd)
|
||||
@@ -2212,13 +2213,13 @@ namespace OpenRCT2::Ui::Windows
|
||||
widgetIndex = WIDX_BANK_RIGHT;
|
||||
break;
|
||||
}
|
||||
pressedWidgets |= (1uLL << widgetIndex);
|
||||
newPressedWidgets |= (1uLL << widgetIndex);
|
||||
}
|
||||
|
||||
if (_currentTrackHasLiftHill)
|
||||
pressedWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
newPressedWidgets |= (1uLL << WIDX_CHAIN_LIFT);
|
||||
|
||||
pressed_widgets = pressedWidgets;
|
||||
pressed_widgets = newPressedWidgets;
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
|
||||
@@ -301,13 +301,13 @@ namespace OpenRCT2::Ui::Windows
|
||||
|
||||
void OnPrepareDraw() override
|
||||
{
|
||||
int32_t pressedWidgets = pressed_widgets
|
||||
int32_t newPressedWidgets = pressed_widgets
|
||||
& ~((1LL << WIDX_THEMES_SETTINGS_TAB) | (1LL << WIDX_THEMES_MAIN_UI_TAB) | (1LL << WIDX_THEMES_PARK_TAB)
|
||||
| (1LL << WIDX_THEMES_TOOLS_TAB) | (1LL << WIDX_THEMES_RIDE_PEEPS_TAB) | (1LL << WIDX_THEMES_EDITORS_TAB)
|
||||
| (1LL << WIDX_THEMES_MISC_TAB) | (1LL << WIDX_THEMES_PROMPTS_TAB) | (1LL << WIDX_THEMES_FEATURES_TAB));
|
||||
WidgetIndex widgetIndex = _selected_tab + WIDX_THEMES_SETTINGS_TAB;
|
||||
|
||||
pressed_widgets = pressedWidgets | (1 << widgetIndex);
|
||||
pressed_widgets = newPressedWidgets | (1 << widgetIndex);
|
||||
|
||||
auto* windowMgr = GetWindowManager();
|
||||
if (windowMgr->FindByClass(WindowClass::Dropdown) == nullptr)
|
||||
|
||||
Reference in New Issue
Block a user