mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-17 12:03:07 +01:00
Make window_ride_construction_update_state() use CoordsXYZ*
This commit is contained in:
@@ -1189,7 +1189,7 @@ static void window_ride_construction_resize(rct_window* w)
|
||||
if (_rideConstructionState == RIDE_CONSTRUCTION_STATE_FRONT)
|
||||
{
|
||||
disabledWidgets |= (1ULL << WIDX_NEXT_SECTION);
|
||||
if (window_ride_construction_update_state(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr))
|
||||
if (window_ride_construction_update_state(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr))
|
||||
{
|
||||
disabledWidgets |= (1ULL << WIDX_CONSTRUCT);
|
||||
}
|
||||
@@ -1197,7 +1197,7 @@ static void window_ride_construction_resize(rct_window* w)
|
||||
else if (_rideConstructionState == RIDE_CONSTRUCTION_STATE_BACK)
|
||||
{
|
||||
disabledWidgets |= (1ULL << WIDX_PREVIOUS_SECTION);
|
||||
if (window_ride_construction_update_state(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr))
|
||||
if (window_ride_construction_update_state(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr))
|
||||
{
|
||||
disabledWidgets |= (1ULL << WIDX_CONSTRUCT);
|
||||
}
|
||||
@@ -1799,8 +1799,7 @@ static void window_ride_construction_construct(rct_window* w)
|
||||
_trackPlaceCost = MONEY32_UNDEFINED;
|
||||
ride_construction_invalidate_current_track();
|
||||
if (window_ride_construction_update_state(
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndAlternativeState, &trackPos.x, &trackPos.y, &trackPos.z,
|
||||
&properties))
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndAlternativeState, &trackPos, &properties))
|
||||
{
|
||||
window_ride_construction_update_active_elements();
|
||||
return;
|
||||
@@ -2323,7 +2322,7 @@ static void window_ride_construction_paint(rct_window* w, rct_drawpixelinfo* dpi
|
||||
ride_id_t rideIndex;
|
||||
int32_t trackType, trackDirection, liftHillAndInvertedState;
|
||||
if (window_ride_construction_update_state(
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndInvertedState, nullptr, nullptr, nullptr, nullptr))
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndInvertedState, nullptr, nullptr))
|
||||
return;
|
||||
|
||||
// Draw track piece
|
||||
@@ -2579,8 +2578,7 @@ void sub_6C94D8()
|
||||
if (!(_currentTrackSelectionFlags & TRACK_SELECTION_FLAG_TRACK))
|
||||
{
|
||||
if (window_ride_construction_update_state(
|
||||
&type, &direction, &rideIndex, &liftHillAndAlternativeState, &trackPos.x, &trackPos.y, &trackPos.z,
|
||||
nullptr))
|
||||
&type, &direction, &rideIndex, &liftHillAndAlternativeState, &trackPos, nullptr))
|
||||
{
|
||||
ride_construction_remove_ghosts();
|
||||
}
|
||||
@@ -2668,7 +2666,7 @@ void sub_6C94D8()
|
||||
static void window_ride_construction_update_map_selection()
|
||||
{
|
||||
int32_t trackType, trackDirection;
|
||||
CoordsXY trackPos{};
|
||||
CoordsXYZ trackPos{};
|
||||
|
||||
map_invalidate_map_selection_tiles();
|
||||
gMapSelectFlags |= MAP_SELECT_FLAG_ENABLE_CONSTRUCT;
|
||||
@@ -2687,8 +2685,7 @@ static void window_ride_construction_update_map_selection()
|
||||
trackPos = _currentTrackBegin;
|
||||
break;
|
||||
default:
|
||||
if (window_ride_construction_update_state(
|
||||
&trackType, &trackDirection, nullptr, nullptr, &trackPos.x, &trackPos.y, nullptr, nullptr))
|
||||
if (window_ride_construction_update_state(&trackType, &trackDirection, nullptr, nullptr, &trackPos, nullptr))
|
||||
{
|
||||
trackDirection = _currentTrackPieceDirection;
|
||||
trackType = 0;
|
||||
@@ -3480,7 +3477,7 @@ void ride_construction_toolupdate_construct(const ScreenCoordsXY& screenCoords)
|
||||
ride_id_t rideIndex;
|
||||
int32_t trackType, trackDirection, liftHillAndAlternativeState;
|
||||
if (window_ride_construction_update_state(
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndAlternativeState, nullptr, nullptr, nullptr, nullptr))
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndAlternativeState, nullptr, nullptr))
|
||||
{
|
||||
ride_construction_invalidate_current_track();
|
||||
map_invalidate_map_selection_tiles();
|
||||
@@ -3544,11 +3541,11 @@ void ride_construction_toolupdate_construct(const ScreenCoordsXY& screenCoords)
|
||||
{
|
||||
for (int zAttempts = 0; zAttempts < numAttempts; ++zAttempts)
|
||||
{
|
||||
CoordsXYZ trackPos{};
|
||||
window_ride_construction_update_state(
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndAlternativeState, &mapCoords->x, &mapCoords->y, &z,
|
||||
nullptr);
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndAlternativeState, &trackPos, nullptr);
|
||||
_currentTrackPrice = place_provisional_track_piece(
|
||||
rideIndex, trackType, trackDirection, liftHillAndAlternativeState, { *mapCoords, z });
|
||||
rideIndex, trackType, trackDirection, liftHillAndAlternativeState, trackPos);
|
||||
if (_currentTrackPrice != MONEY32_UNDEFINED)
|
||||
break;
|
||||
|
||||
@@ -3567,10 +3564,13 @@ void ride_construction_toolupdate_construct(const ScreenCoordsXY& screenCoords)
|
||||
|
||||
for (int zAttempts = 0; zAttempts < numAttempts; ++zAttempts)
|
||||
{
|
||||
CoordsXYZ trackPos{};
|
||||
window_ride_construction_update_state(
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndAlternativeState, &mapCoords->x, &mapCoords->y, &z, nullptr);
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndAlternativeState, &trackPos, nullptr);
|
||||
_currentTrackPrice = place_provisional_track_piece(
|
||||
rideIndex, trackType, trackDirection, liftHillAndAlternativeState, { *mapCoords, z });
|
||||
rideIndex, trackType, trackDirection, liftHillAndAlternativeState, trackPos);
|
||||
mapCoords = trackPos;
|
||||
z = trackPos.z;
|
||||
if (_currentTrackPrice != MONEY32_UNDEFINED)
|
||||
break;
|
||||
|
||||
@@ -3629,11 +3629,10 @@ void ride_construction_toolupdate_construct(const ScreenCoordsXY& screenCoords)
|
||||
{
|
||||
_currentTrackPieceDirection = i;
|
||||
|
||||
CoordsXYZ trackPos{};
|
||||
window_ride_construction_update_state(
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndAlternativeState, &mapCoords->x, &mapCoords->y, &z,
|
||||
nullptr);
|
||||
place_provisional_track_piece(
|
||||
rideIndex, trackType, trackDirection, liftHillAndAlternativeState, { *mapCoords, z });
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndAlternativeState, &trackPos, nullptr);
|
||||
place_provisional_track_piece(rideIndex, trackType, trackDirection, liftHillAndAlternativeState, trackPos);
|
||||
gMapSelectArrowDirection = _currentTrackPieceDirection;
|
||||
break;
|
||||
}
|
||||
@@ -3700,11 +3699,12 @@ void ride_construction_tooldown_construct(const ScreenCoordsXY& screenCoords)
|
||||
map_invalidate_map_selection_tiles();
|
||||
ride_construction_invalidate_current_track();
|
||||
|
||||
CoordsXY mapCoords;
|
||||
CoordsXYZ mapCoords{};
|
||||
if (window_ride_construction_update_state(
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndAlternativeState, &mapCoords.x, &mapCoords.y, &z, &properties))
|
||||
&trackType, &trackDirection, &rideIndex, &liftHillAndAlternativeState, &mapCoords, &properties))
|
||||
return;
|
||||
|
||||
z = mapCoords.z;
|
||||
_currentTrackPieceType = trackType;
|
||||
|
||||
// Raise z above all slopes and water
|
||||
@@ -3729,7 +3729,7 @@ void ride_construction_tooldown_construct(const ScreenCoordsXY& screenCoords)
|
||||
if (!ridePlacePosition)
|
||||
return;
|
||||
|
||||
mapCoords = *ridePlacePosition;
|
||||
mapCoords = { *ridePlacePosition, z };
|
||||
|
||||
z = _trackPlaceZ;
|
||||
if (z == 0)
|
||||
|
||||
@@ -800,8 +800,8 @@ void window_follow_sprite(rct_window* w, size_t spriteIndex);
|
||||
void window_unfollow_sprite(rct_window* w);
|
||||
|
||||
bool window_ride_construction_update_state(
|
||||
int32_t* trackType, int32_t* trackDirection, ride_id_t* rideIndex, int32_t* _liftHillAndAlternativeState, int32_t* x,
|
||||
int32_t* y, int32_t* z, int32_t* properties);
|
||||
int32_t* trackType, int32_t* trackDirection, ride_id_t* rideIndex, int32_t* _liftHillAndAlternativeState,
|
||||
CoordsXYZ* trackPos, int32_t* properties);
|
||||
money32 place_provisional_track_piece(
|
||||
ride_id_t rideIndex, int32_t trackType, int32_t trackDirection, int32_t liftHillAndAlternativeState,
|
||||
const CoordsXYZ& trackPos);
|
||||
|
||||
@@ -1227,16 +1227,17 @@ void ride_restore_provisional_track_piece()
|
||||
if (_currentTrackSelectionFlags & TRACK_SELECTION_FLAG_TRACK)
|
||||
{
|
||||
ride_id_t rideIndex;
|
||||
int32_t x, y, z, direction, type, liftHillAndAlternativeState;
|
||||
int32_t direction, type, liftHillAndAlternativeState;
|
||||
CoordsXYZ trackPos;
|
||||
if (window_ride_construction_update_state(
|
||||
&type, &direction, &rideIndex, &liftHillAndAlternativeState, &x, &y, &z, nullptr))
|
||||
&type, &direction, &rideIndex, &liftHillAndAlternativeState, &trackPos, nullptr))
|
||||
{
|
||||
ride_construction_remove_ghosts();
|
||||
}
|
||||
else
|
||||
{
|
||||
_currentTrackPrice = place_provisional_track_piece(
|
||||
rideIndex, type, direction, liftHillAndAlternativeState, { x, y, z });
|
||||
rideIndex, type, direction, liftHillAndAlternativeState, trackPos);
|
||||
window_ride_construction_update_active_elements();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,8 +238,8 @@ static std::tuple<bool, uint8_t> window_ride_construction_update_state_get_track
|
||||
* @return (CF)
|
||||
*/
|
||||
bool window_ride_construction_update_state(
|
||||
int32_t* _trackType, int32_t* _trackDirection, ride_id_t* _rideIndex, int32_t* _liftHillAndInvertedState, int32_t* _x,
|
||||
int32_t* _y, int32_t* _z, int32_t* _properties)
|
||||
int32_t* _trackType, int32_t* _trackDirection, ride_id_t* _rideIndex, int32_t* _liftHillAndInvertedState,
|
||||
CoordsXYZ* _trackPos, int32_t* _properties)
|
||||
{
|
||||
ride_id_t rideIndex;
|
||||
uint8_t trackType, trackDirection;
|
||||
@@ -384,12 +384,8 @@ bool window_ride_construction_update_state(
|
||||
*_rideIndex = rideIndex;
|
||||
if (_liftHillAndInvertedState != nullptr)
|
||||
*_liftHillAndInvertedState = liftHillAndInvertedState;
|
||||
if (_x != nullptr)
|
||||
*_x = x;
|
||||
if (_y != nullptr)
|
||||
*_y = y;
|
||||
if (_z != nullptr)
|
||||
*_z = z;
|
||||
if (_trackPos != nullptr)
|
||||
*_trackPos = { x, y, z };
|
||||
if (_properties != nullptr)
|
||||
*_properties = properties;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user