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

Refactor maze_set_track to use const CoordsXYZD&

This commit is contained in:
Gal B
2021-12-22 00:17:14 +02:00
parent 24567290ad
commit 343f9bbca0
6 changed files with 11 additions and 15 deletions

View File

@@ -535,7 +535,8 @@ static void WindowMazeConstructionConstruct(int32_t direction)
break;
}
money32 cost = maze_set_track(x, y, z, flags, false, direction, _currentRideIndex, mode);
money32 cost = maze_set_track(
CoordsXYZD{ x, y, z, static_cast<uint8_t>(direction) }, flags, false, _currentRideIndex, mode);
if (cost == MONEY32_UNDEFINED)
{
return;

View File

@@ -3772,8 +3772,7 @@ void ride_construction_tooldown_construct(const ScreenCoordsXY& screenCoords)
gDisableErrorWindowSound = true;
_trackPlaceCost = maze_set_track(
_currentTrackBegin.x, _currentTrackBegin.y, _currentTrackBegin.z, GAME_COMMAND_FLAG_APPLY, true, 0,
_currentRideIndex, GC_SET_MAZE_TRACK_BUILD);
CoordsXYZD{ _currentTrackBegin, 0 }, GAME_COMMAND_FLAG_APPLY, true, _currentRideIndex, GC_SET_MAZE_TRACK_BUILD);
gDisableErrorWindowSound = false;

View File

@@ -118,11 +118,9 @@ void guest_set_name(uint16_t spriteIndex, const char* name)
#pragma endregion
#pragma region MazeSetTrack
money32 maze_set_track(
uint16_t x, uint16_t y, uint16_t z, uint8_t flags, bool initialPlacement, uint8_t direction, ride_id_t rideIndex,
uint8_t mode)
money32 maze_set_track(const CoordsXYZD& loc, uint8_t flags, bool initialPlacement, ride_id_t rideIndex, uint8_t mode)
{
auto gameAction = MazeSetTrackAction({ x, y, z, direction }, initialPlacement, rideIndex, mode);
auto gameAction = MazeSetTrackAction(loc, initialPlacement, rideIndex, mode);
gameAction.SetFlags(flags);
GameActions::Result res;

View File

@@ -492,10 +492,10 @@ void ride_remove_provisional_track_piece()
{
int32_t flags = GAME_COMMAND_FLAG_APPLY | GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED | GAME_COMMAND_FLAG_NO_SPEND
| GAME_COMMAND_FLAG_GHOST;
maze_set_track(x, y, z, flags, false, 0, rideIndex, GC_SET_MAZE_TRACK_FILL);
maze_set_track(x, y + 16, z, flags, false, 1, rideIndex, GC_SET_MAZE_TRACK_FILL);
maze_set_track(x + 16, y + 16, z, flags, false, 2, rideIndex, GC_SET_MAZE_TRACK_FILL);
maze_set_track(x + 16, y, z, flags, false, 3, rideIndex, GC_SET_MAZE_TRACK_FILL);
maze_set_track(CoordsXYZD{ x, y, z, 0 }, flags, false, rideIndex, GC_SET_MAZE_TRACK_FILL);
maze_set_track(CoordsXYZD{ x, y + 16, z, 1 }, flags, false, rideIndex, GC_SET_MAZE_TRACK_FILL);
maze_set_track(CoordsXYZD{ x + 16, y + 16, z, 2 }, flags, false, rideIndex, GC_SET_MAZE_TRACK_FILL);
maze_set_track(CoordsXYZD{ x + 16, y, z, 3 }, flags, false, rideIndex, GC_SET_MAZE_TRACK_FILL);
}
else
{

View File

@@ -577,8 +577,6 @@ roll_type_t track_get_actual_bank_3(bool useInvertedSprites, TileElement* tileEl
bool track_add_station_element(CoordsXYZD loc, ride_id_t rideIndex, int32_t flags, bool fromTrackDesign);
bool track_remove_station_element(const CoordsXYZD& loc, ride_id_t rideIndex, int32_t flags);
money32 maze_set_track(
uint16_t x, uint16_t y, uint16_t z, uint8_t flags, bool initialPlacement, uint8_t direction, ride_id_t rideIndex,
uint8_t mode);
money32 maze_set_track(const CoordsXYZD& coords, uint8_t flags, bool initialPlacement, ride_id_t rideIndex, uint8_t mode);
bool TrackTypeHasSpeedSetting(track_type_t trackType);

View File

@@ -57,7 +57,7 @@ money32 place_provisional_track_piece(
{
int32_t flags = GAME_COMMAND_FLAG_APPLY | GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED | GAME_COMMAND_FLAG_NO_SPEND
| GAME_COMMAND_FLAG_GHOST; // 105
auto result = maze_set_track(trackPos.x, trackPos.y, trackPos.z, flags, true, 0, rideIndex, GC_SET_MAZE_TRACK_BUILD);
auto result = maze_set_track(CoordsXYZD{ trackPos, 0 }, flags, true, rideIndex, GC_SET_MAZE_TRACK_BUILD);
if (result == MONEY32_UNDEFINED)
return result;