From 20f959c833b83c72557a09175b433f197e2b3c18 Mon Sep 17 00:00:00 2001 From: Michael Steenbeek Date: Fri, 22 Jan 2021 11:33:55 +0100 Subject: [PATCH] Use track_type_t in more places --- src/openrct2-ui/windows/Ride.cpp | 2 +- src/openrct2-ui/windows/RideConstruction.cpp | 10 +- src/openrct2-ui/windows/TileInspector.cpp | 2 +- .../actions/RideSetColourSchemeAction.cpp | 3 +- .../actions/RideSetColourSchemeAction.h | 4 +- src/openrct2/actions/TrackRemoveAction.cpp | 2 +- src/openrct2/actions/TrackRemoveAction.h | 4 +- src/openrct2/actions/WallPlaceAction.cpp | 3 +- src/openrct2/actions/WallPlaceAction.h | 2 +- src/openrct2/network/NetworkBase.cpp | 2 +- src/openrct2/peep/Guest.cpp | 2 +- src/openrct2/peep/Staff.cpp | 2 +- src/openrct2/ride/CableLift.cpp | 4 +- src/openrct2/ride/Ride.cpp | 22 +- src/openrct2/ride/Ride.h | 2 +- src/openrct2/ride/RideRatings.cpp | 4 +- src/openrct2/ride/Track.cpp | 16 +- src/openrct2/ride/Track.h | 526 +++++++++--------- src/openrct2/ride/TrackData.h | 20 +- src/openrct2/ride/TrackDesign.cpp | 2 +- src/openrct2/ride/TrackPaint.cpp | 2 +- src/openrct2/ride/Vehicle.cpp | 34 +- src/openrct2/ride/Vehicle.h | 4 +- src/openrct2/ride/transport/Chairlift.cpp | 4 +- src/openrct2/windows/_legacy.cpp | 4 +- src/openrct2/world/Map.cpp | 10 +- src/openrct2/world/Map.h | 10 +- 27 files changed, 353 insertions(+), 349 deletions(-) diff --git a/src/openrct2-ui/windows/Ride.cpp b/src/openrct2-ui/windows/Ride.cpp index 7657e52a48..ee5aa50d4d 100644 --- a/src/openrct2-ui/windows/Ride.cpp +++ b/src/openrct2-ui/windows/Ride.cpp @@ -2514,7 +2514,7 @@ static rct_string_id window_ride_get_status_vehicle(rct_window* w, Formatter& ft if (vehicle->status != Vehicle::Status::Crashing && vehicle->status != Vehicle::Status::Crashed) { - int32_t trackType = vehicle->GetTrackType(); + auto trackType = vehicle->GetTrackType(); if (trackType == TrackElemType::BlockBrakes || trackType == TrackElemType::CableLiftHill || trackType == TrackElemType::Up25ToFlat || trackType == TrackElemType::Up60ToFlat || trackType == TrackElemType::DiagUp25ToFlat || trackType == TrackElemType::DiagUp60ToFlat) diff --git a/src/openrct2-ui/windows/RideConstruction.cpp b/src/openrct2-ui/windows/RideConstruction.cpp index a72eb3c523..720bc2a368 100644 --- a/src/openrct2-ui/windows/RideConstruction.cpp +++ b/src/openrct2-ui/windows/RideConstruction.cpp @@ -467,7 +467,7 @@ static void loc_6C7502(int32_t al); static void ride_construction_set_brakes_speed(int32_t brakesSpeed); static void ride_construction_tooldown_entrance_exit(const ScreenCoordsXY& screenCoords); -static uint8_t _currentPossibleRideConfigurations[32]; +static track_type_t _currentPossibleRideConfigurations[32]; static constexpr const rct_string_id RideConstructionSeatAngleRotationStrings[] = { STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_180, STR_RIDE_CONSTRUCTION_SEAT_ROTATION_ANGLE_NEG_135, @@ -1644,7 +1644,7 @@ static void window_ride_construction_dropdown(rct_window* w, rct_widgetindex wid ride_construction_invalidate_current_track(); _currentTrackPrice = MONEY32_UNDEFINED; - int32_t trackPiece = _currentPossibleRideConfigurations[dropdownIndex]; + track_type_t trackPiece = _currentPossibleRideConfigurations[dropdownIndex]; switch (trackPiece) { case TrackElemType::EndStation: @@ -1852,7 +1852,7 @@ static void window_ride_construction_construct(rct_window* w) */ static void window_ride_construction_mouseup_demolish(rct_window* w) { - int32_t direction, type; + int32_t direction; TileElement* tileElement; CoordsXYE inputElement, outputElement; track_begin_end trackBeginEnd; @@ -1884,7 +1884,7 @@ static void window_ride_construction_mouseup_demolish(rct_window* w) // Invalidate the selected track element or make sure it's at origin??? direction = _currentTrackPieceDirection; - type = _currentTrackPieceType; + track_type_t type = _currentTrackPieceType; auto newCoords = sub_6C683D({ _currentTrackBegin, static_cast(direction & 3) }, type, 0, &tileElement, 0); if (newCoords == std::nullopt) { @@ -3343,7 +3343,7 @@ static void window_ride_construction_show_special_track_dropdown(rct_window* w, int32_t defaultIndex = -1; for (int32_t i = 0; i < _numCurrentPossibleRideConfigurations; i++) { - uint8_t trackPiece = _currentPossibleRideConfigurations[i]; + track_type_t trackPiece = _currentPossibleRideConfigurations[i]; rct_string_id trackPieceStringId = RideConfigurationStringIds[trackPiece]; if (trackPieceStringId == STR_RAPIDS) { diff --git a/src/openrct2-ui/windows/TileInspector.cpp b/src/openrct2-ui/windows/TileInspector.cpp index 46842daa73..6ebe60b5b1 100644 --- a/src/openrct2-ui/windows/TileInspector.cpp +++ b/src/openrct2-ui/windows/TileInspector.cpp @@ -1908,7 +1908,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi) screenCoords + ScreenCoordsXY{ 0, 22 }); } // Track - int16_t trackType = trackElement->GetTrackType(); + auto trackType = trackElement->GetTrackType(); int16_t sequenceNumber = trackElement->GetSequenceIndex(); gfx_draw_string_left( dpi, STR_TILE_INSPECTOR_TRACK_PIECE_ID, &trackType, COLOUR_WHITE, screenCoords + ScreenCoordsXY{ 0, 33 }); diff --git a/src/openrct2/actions/RideSetColourSchemeAction.cpp b/src/openrct2/actions/RideSetColourSchemeAction.cpp index 3ffbf37710..6ba9d0c4ab 100644 --- a/src/openrct2/actions/RideSetColourSchemeAction.cpp +++ b/src/openrct2/actions/RideSetColourSchemeAction.cpp @@ -20,7 +20,8 @@ #include "../world/Park.h" #include "../world/Sprite.h" -RideSetColourSchemeAction::RideSetColourSchemeAction(const CoordsXYZD& location, int32_t trackType, uint16_t newColourScheme) +RideSetColourSchemeAction::RideSetColourSchemeAction( + const CoordsXYZD& location, track_type_t trackType, uint16_t newColourScheme) : _loc(location) , _trackType(trackType) , _newColourScheme(newColourScheme) diff --git a/src/openrct2/actions/RideSetColourSchemeAction.h b/src/openrct2/actions/RideSetColourSchemeAction.h index a0156a1639..0a36ab5f81 100644 --- a/src/openrct2/actions/RideSetColourSchemeAction.h +++ b/src/openrct2/actions/RideSetColourSchemeAction.h @@ -15,12 +15,12 @@ DEFINE_GAME_ACTION(RideSetColourSchemeAction, GameCommand::SetColourScheme, Game { private: CoordsXYZD _loc; - int32_t _trackType{}; + track_type_t _trackType{}; uint16_t _newColourScheme{}; public: RideSetColourSchemeAction() = default; - RideSetColourSchemeAction(const CoordsXYZD& location, int32_t trackType, uint16_t newColourScheme); + RideSetColourSchemeAction(const CoordsXYZD& location, track_type_t trackType, uint16_t newColourScheme); void AcceptParameters(GameActionParameterVisitor & visitor) override; diff --git a/src/openrct2/actions/TrackRemoveAction.cpp b/src/openrct2/actions/TrackRemoveAction.cpp index 91e7bbf181..2b225d4b7c 100644 --- a/src/openrct2/actions/TrackRemoveAction.cpp +++ b/src/openrct2/actions/TrackRemoveAction.cpp @@ -19,7 +19,7 @@ #include "../world/Surface.h" #include "RideSetSettingAction.h" -TrackRemoveAction::TrackRemoveAction(int32_t trackType, int32_t sequence, const CoordsXYZD& origin) +TrackRemoveAction::TrackRemoveAction(track_type_t trackType, int32_t sequence, const CoordsXYZD& origin) : _trackType(trackType) , _sequence(sequence) , _origin(origin) diff --git a/src/openrct2/actions/TrackRemoveAction.h b/src/openrct2/actions/TrackRemoveAction.h index e5ffa40af7..ff10333b74 100644 --- a/src/openrct2/actions/TrackRemoveAction.h +++ b/src/openrct2/actions/TrackRemoveAction.h @@ -14,13 +14,13 @@ DEFINE_GAME_ACTION(TrackRemoveAction, GameCommand::RemoveTrack, GameActions::Result) { private: - int32_t _trackType{}; + track_type_t _trackType{}; int32_t _sequence{}; CoordsXYZD _origin; public: TrackRemoveAction() = default; - TrackRemoveAction(int32_t trackType, int32_t sequence, const CoordsXYZD& origin); + TrackRemoveAction(track_type_t trackType, int32_t sequence, const CoordsXYZD& origin); void AcceptParameters(GameActionParameterVisitor & visitor) override; diff --git a/src/openrct2/actions/WallPlaceAction.cpp b/src/openrct2/actions/WallPlaceAction.cpp index 6f7bfdbbc7..0d87c4c4f6 100644 --- a/src/openrct2/actions/WallPlaceAction.cpp +++ b/src/openrct2/actions/WallPlaceAction.cpp @@ -624,7 +624,8 @@ GameActions::Result::Ptr WallPlaceAction::WallCheckObstruction( return MakeResult(); } -bool WallPlaceAction::TrackIsAllowedWallEdges(uint8_t rideType, uint8_t trackType, uint8_t trackSequence, uint8_t direction) +bool WallPlaceAction::TrackIsAllowedWallEdges( + uint8_t rideType, track_type_t trackType, uint8_t trackSequence, uint8_t direction) { if (!ride_type_has_flag(rideType, RIDE_TYPE_FLAG_TRACK_NO_WALLS)) { diff --git a/src/openrct2/actions/WallPlaceAction.h b/src/openrct2/actions/WallPlaceAction.h index 947d5ea3e8..28ee14f1ab 100644 --- a/src/openrct2/actions/WallPlaceAction.h +++ b/src/openrct2/actions/WallPlaceAction.h @@ -68,5 +68,5 @@ private: * Gets whether the given track type can have a wall placed on the edge of the given direction. * Some thin tracks for example are allowed to have walls either side of the track, but wider tracks can not. */ - static bool TrackIsAllowedWallEdges(uint8_t rideType, uint8_t trackType, uint8_t trackSequence, uint8_t direction); + static bool TrackIsAllowedWallEdges(uint8_t rideType, track_type_t trackType, uint8_t trackSequence, uint8_t direction); }; diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index a38a041eda..3813e127dc 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -34,7 +34,7 @@ // This string specifies which version of network stream current build uses. // It is used for making sure only compatible builds get connected, even within // single OpenRCT2 version. -#define NETWORK_STREAM_VERSION "13" +#define NETWORK_STREAM_VERSION "14" #define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION static Peep* _pickup_peep = nullptr; diff --git a/src/openrct2/peep/Guest.cpp b/src/openrct2/peep/Guest.cpp index 97f8e21d04..d43beefc40 100644 --- a/src/openrct2/peep/Guest.cpp +++ b/src/openrct2/peep/Guest.cpp @@ -3932,7 +3932,7 @@ void Guest::UpdateRideLeaveVehicle() { for (; vehicle != nullptr && !vehicle->IsHead(); vehicle = GetEntity(vehicle->prev_vehicle_on_ride)) { - uint16_t trackType = vehicle->GetTrackType(); + auto trackType = vehicle->GetTrackType(); if (trackType == TrackElemType::Flat || trackType > TrackElemType::MiddleStation) continue; diff --git a/src/openrct2/peep/Staff.cpp b/src/openrct2/peep/Staff.cpp index 2be4377529..59667ba90c 100644 --- a/src/openrct2/peep/Staff.cpp +++ b/src/openrct2/peep/Staff.cpp @@ -2164,7 +2164,7 @@ bool Staff::UpdateFixingMoveToBrokenDownVehicle(bool firstRun, const Ride* ride) break; } - uint8_t trackType = vehicle->GetTrackType(); + auto trackType = vehicle->GetTrackType(); if (track_type_is_station(trackType)) { break; diff --git a/src/openrct2/ride/CableLift.cpp b/src/openrct2/ride/CableLift.cpp index aefad80cf5..cfb5c249d5 100644 --- a/src/openrct2/ride/CableLift.cpp +++ b/src/openrct2/ride/CableLift.cpp @@ -233,7 +233,7 @@ bool Vehicle::CableLiftUpdateTrackMotionForwards() for (; remaining_distance >= 13962; _vehicleUnkF64E10++) { - uint8_t trackType = GetTrackType(); + auto trackType = GetTrackType(); if (trackType == TrackElemType::CableLiftHill && track_progress == 160) { _vehicleMotionTrackFlags |= VEHICLE_UPDATE_MOTION_TRACK_FLAG_1; @@ -306,7 +306,7 @@ bool Vehicle::CableLiftUpdateTrackMotionBackwards() if (static_cast(trackProgress) == -1) { - uint8_t trackType = GetTrackType(); + auto trackType = GetTrackType(); TileElement* trackElement = map_get_track_element_at_of_type_seq(TrackLocation, trackType, 0); auto input = CoordsXYE{ TrackLocation, trackElement }; diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index bb60dcc294..e545abf2bf 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -1227,7 +1227,7 @@ void ride_clear_blocked_tiles(Ride* ride) * bp : flags */ std::optional sub_6C683D( - const CoordsXYZD& location, int32_t type, uint16_t extra_params, TileElement** output_element, uint16_t flags) + const CoordsXYZD& location, track_type_t type, uint16_t extra_params, TileElement** output_element, uint16_t flags) { // Find the relevant track piece, prefer sequence 0 (this ensures correct behaviour for diagonal track pieces) auto trackElement = map_get_track_element_at_of_type_seq(location, type, 0); @@ -1905,7 +1905,7 @@ bool ride_modify(CoordsXYE* input) auto tileCoords = CoordsXYZ{ tileElement, tileElement.element->GetBaseZ() }; auto direction = tileElement.element->GetDirection(); - int32_t type = tileElement.element->AsTrack()->GetTrackType(); + auto type = tileElement.element->AsTrack()->GetTrackType(); auto newCoords = sub_6C683D({ tileCoords, direction }, type, 0, nullptr, 0); if (newCoords == std::nullopt) return false; @@ -2953,7 +2953,7 @@ static void ride_measurement_update(Ride& ride, RideMeasurement& measurement) return; } - uint8_t trackType = (vehicle->GetTrackType()) & 0xFF; + auto trackType = vehicle->GetTrackType(); if (trackType == TrackElemType::BlockBrakes || trackType == TrackElemType::CableLiftHill || trackType == TrackElemType::Up25ToFlat || trackType == TrackElemType::Up60ToFlat || trackType == TrackElemType::DiagUp25ToFlat || trackType == TrackElemType::DiagUp60ToFlat) @@ -3995,7 +3995,7 @@ static int32_t ride_check_block_brakes(CoordsXYE* input, CoordsXYE* output) { if (it.current.element->AsTrack()->GetTrackType() == TrackElemType::BlockBrakes) { - int32_t type = it.last.element->AsTrack()->GetTrackType(); + auto type = it.last.element->AsTrack()->GetTrackType(); if (type == TrackElemType::EndStation) { gGameCommandErrorText = STR_BLOCK_BRAKES_CANNOT_BE_USED_DIRECTLY_AFTER_STATION; @@ -4062,7 +4062,7 @@ static bool ride_check_track_contains_inversions(CoordsXYE* input, CoordsXYE* ou while (track_circuit_iterator_next(&it)) { - int32_t trackType = it.current.element->AsTrack()->GetTrackType(); + auto trackType = it.current.element->AsTrack()->GetTrackType(); if (TrackFlags[trackType] & TRACK_ELEM_FLAG_INVERSION_TO_NORMAL) { *output = it.current; @@ -4120,7 +4120,7 @@ static bool ride_check_track_contains_banked(CoordsXYE* input, CoordsXYE* output while (track_circuit_iterator_next(&it)) { - int32_t trackType = output->element->AsTrack()->GetTrackType(); + auto trackType = output->element->AsTrack()->GetTrackType(); if (TrackFlags[trackType] & TRACK_ELEM_FLAG_BANKED) { *output = it.current; @@ -4216,7 +4216,7 @@ static bool ride_check_start_and_end_is_station(CoordsXYE* input) // Check back of the track track_get_back(input, &trackBack); - int32_t trackType = trackBack.element->AsTrack()->GetTrackType(); + auto trackType = trackBack.element->AsTrack()->GetTrackType(); if (!(TrackSequenceProperties[trackType][0] & TRACK_SEQUENCE_FLAG_ORIGIN)) { return false; @@ -4328,7 +4328,7 @@ static void RideOpenBlockBrakes(CoordsXYE* startElement) CoordsXYE currentElement = *startElement; do { - int32_t trackType = currentElement.element->AsTrack()->GetTrackType(); + auto trackType = currentElement.element->AsTrack()->GetTrackType(); switch (trackType) { case TrackElemType::EndStation: @@ -4707,7 +4707,7 @@ static void ride_create_vehicles_find_first_block(Ride* ride, CoordsXYE* outXYEl break; } - int32_t trackType = trackElement->GetTrackType(); + auto trackType = trackElement->GetTrackType(); switch (trackType) { case TrackElemType::Up25ToFlat: @@ -4934,7 +4934,7 @@ static bool ride_initialise_cable_lift_track(Ride* ride, bool isApplying) while (track_circuit_iterator_previous(&it)) { tileElement = it.current.element; - int32_t trackType = tileElement->AsTrack()->GetTrackType(); + auto trackType = tileElement->AsTrack()->GetTrackType(); uint16_t flags = TRACK_ELEMENT_SET_HAS_CABLE_LIFT_FALSE; switch (state) @@ -6617,7 +6617,7 @@ static std::optional ride_get_smallest_station_length(Ride* ride) static int32_t ride_get_track_length(Ride* ride) { TileElement* tileElement = nullptr; - int32_t trackType; + track_type_t trackType; CoordsXYZ trackStart; bool foundTrack = false; diff --git a/src/openrct2/ride/Ride.h b/src/openrct2/ride/Ride.h index 946542449b..c0b5a1b458 100644 --- a/src/openrct2/ride/Ride.h +++ b/src/openrct2/ride/Ride.h @@ -1134,7 +1134,7 @@ Peep* ride_find_closest_mechanic(Ride* ride, int32_t forInspection); int32_t ride_initialise_construction_window(Ride* ride); void ride_construction_invalidate_current_track(); std::optional sub_6C683D( - const CoordsXYZD& location, int32_t type, uint16_t extra_params, TileElement** output_element, uint16_t flags); + const CoordsXYZD& location, track_type_t type, uint16_t extra_params, TileElement** output_element, uint16_t flags); void ride_set_map_tooltip(TileElement* tileElement); int32_t ride_music_params_update( const CoordsXYZ& rideCoords, Ride* ride, uint16_t sampleRate, uint32_t position, uint8_t* tuneId); diff --git a/src/openrct2/ride/RideRatings.cpp b/src/openrct2/ride/RideRatings.cpp index 06ef26f83e..ae05eb39ff 100644 --- a/src/openrct2/ride/RideRatings.cpp +++ b/src/openrct2/ride/RideRatings.cpp @@ -520,7 +520,7 @@ static void ride_ratings_score_close_proximity_loops_helper(const CoordsXYE& coo */ static void ride_ratings_score_close_proximity_loops(TileElement* inputTileElement) { - int32_t trackType = inputTileElement->AsTrack()->GetTrackType(); + auto trackType = inputTileElement->AsTrack()->GetTrackType(); if (trackType == TrackElemType::LeftVerticalLoop || trackType == TrackElemType::RightVerticalLoop) { ride_ratings_score_close_proximity_loops_helper({ gRideRatingsCalcData.Proximity, inputTileElement }); @@ -616,7 +616,7 @@ static void ride_ratings_score_close_proximity(TileElement* inputTileElement) break; case TILE_ELEMENT_TYPE_TRACK: { - int32_t trackType = tileElement->AsTrack()->GetTrackType(); + auto trackType = tileElement->AsTrack()->GetTrackType(); if (trackType == TrackElemType::LeftVerticalLoop || trackType == TrackElemType::RightVerticalLoop) { int32_t sequence = tileElement->AsTrack()->GetSequenceIndex(); diff --git a/src/openrct2/ride/Track.cpp b/src/openrct2/ride/Track.cpp index 3b34b156ad..7f2c9bd6a1 100644 --- a/src/openrct2/ride/Track.cpp +++ b/src/openrct2/ride/Track.cpp @@ -36,7 +36,7 @@ /** rct2: 0x00997C9D */ // clang-format off -const rct_trackdefinition TrackDefinitions[256] = +const rct_trackdefinition TrackDefinitions[TrackElemType::Count] = { // TYPE VANGLE END VANGLE START BANK END BANK START PREVIEW Z OFFSET { TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // ELEM_FLAT @@ -298,7 +298,7 @@ const rct_trackdefinition TrackDefinitions[256] = }; /** rct2: 0x0099849D */ -const rct_trackdefinition FlatRideTrackDefinitions[256] = +const rct_trackdefinition FlatRideTrackDefinitions[TrackElemType::Count] = { // TYPE VANGLE END VANGLE START BANK END BANK START PREVIEW Z OFFSET { TRACK_FLAT, TRACK_SLOPE_NONE, TRACK_SLOPE_NONE, TRACK_BANK_NONE, TRACK_BANK_NONE, 0 }, // 0 @@ -589,18 +589,18 @@ int32_t track_is_connected_by_shape(TileElement* a, TileElement* b) return aBank == bBank && aAngle == bAngle; } -const rct_preview_track* get_track_def_from_ride(Ride* ride, int32_t trackType) +const rct_preview_track* get_track_def_from_ride(Ride* ride, track_type_t trackType) { return ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_FLAT_RIDE) ? FlatRideTrackBlocks[trackType] : TrackBlocks[trackType]; } -const rct_track_coordinates* get_track_coord_from_ride(Ride* ride, int32_t trackType) +const rct_track_coordinates* get_track_coord_from_ride(Ride* ride, track_type_t trackType) { return ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_FLAT_RIDE) ? &FlatTrackCoordinates[trackType] : &TrackCoordinates[trackType]; } -const rct_preview_track* get_track_def_from_ride_index(ride_id_t rideIndex, int32_t trackType) +const rct_preview_track* get_track_def_from_ride_index(ride_id_t rideIndex, track_type_t trackType) { return get_track_def_from_ride(get_ride(rideIndex), trackType); } @@ -751,7 +751,7 @@ bool track_add_station_element(CoordsXYZD loc, ride_id_t rideIndex, int32_t flag stationElement = find_station_element(loc, rideIndex); if (stationElement != nullptr) { - int32_t targetTrackType; + track_type_t targetTrackType; if (stationFrontLoc == loc) { auto stationIndex = ride_get_first_empty_station_start(ride); @@ -887,7 +887,7 @@ bool track_remove_station_element(const CoordsXYZD& loc, ride_id_t rideIndex, in stationElement = find_station_element(currentLoc, rideIndex); if (stationElement != nullptr) { - int32_t targetTrackType; + track_type_t targetTrackType; if ((currentLoc == stationFrontLoc) || (currentLoc + CoordsDirectionDelta[currentLoc.direction] == removeLoc)) { auto stationIndex = ride_get_first_empty_station_start(ride); @@ -1269,7 +1269,7 @@ void TrackElement::MazeEntrySubtract(uint16_t subVal) MazeEntry &= ~subVal; } -uint16_t TrackElement::GetTrackType() const +track_type_t TrackElement::GetTrackType() const { return TrackType; } diff --git a/src/openrct2/ride/Track.h b/src/openrct2/ride/Track.h index 65c639cb98..439b75caa2 100644 --- a/src/openrct2/ride/Track.h +++ b/src/openrct2/ride/Track.h @@ -241,265 +241,265 @@ enum namespace TrackElemType { - constexpr uint16_t Flat = 0; - constexpr uint16_t EndStation = 1; - constexpr uint16_t BeginStation = 2; - constexpr uint16_t MiddleStation = 3; - constexpr uint16_t Up25 = 4; - constexpr uint16_t Up60 = 5; - constexpr uint16_t FlatToUp25 = 6; - constexpr uint16_t Up25ToUp60 = 7; - constexpr uint16_t Up60ToUp25 = 8; - constexpr uint16_t Up25ToFlat = 9; - constexpr uint16_t Down25 = 10; - constexpr uint16_t Down60 = 11; - constexpr uint16_t FlatToDown25 = 12; - constexpr uint16_t Down25ToDown60 = 13; - constexpr uint16_t Down60ToDown25 = 14; - constexpr uint16_t Down25ToFlat = 15; - constexpr uint16_t LeftQuarterTurn5Tiles = 16; - constexpr uint16_t RightQuarterTurn5Tiles = 17; - constexpr uint16_t FlatToLeftBank = 18; - constexpr uint16_t FlatToRightBank = 19; - constexpr uint16_t LeftBankToFlat = 20; - constexpr uint16_t RightBankToFlat = 21; - constexpr uint16_t BankedLeftQuarterTurn5Tiles = 22; - constexpr uint16_t BankedRightQuarterTurn5Tiles = 23; - constexpr uint16_t LeftBankToUp25 = 24; - constexpr uint16_t RightBankToUp25 = 25; - constexpr uint16_t Up25ToLeftBank = 26; - constexpr uint16_t Up25ToRightBank = 27; - constexpr uint16_t LeftBankToDown25 = 28; - constexpr uint16_t RightBankToDown25 = 29; - constexpr uint16_t Down25ToLeftBank = 30; - constexpr uint16_t Down25ToRightBank = 31; - constexpr uint16_t LeftBank = 32; - constexpr uint16_t RightBank = 33; - constexpr uint16_t LeftQuarterTurn5TilesUp25 = 34; - constexpr uint16_t RightQuarterTurn5TilesUp25 = 35; - constexpr uint16_t LeftQuarterTurn5TilesDown25 = 36; - constexpr uint16_t RightQuarterTurn5TilesDown25 = 37; - constexpr uint16_t SBendLeft = 38; - constexpr uint16_t SBendRight = 39; - constexpr uint16_t LeftVerticalLoop = 40; - constexpr uint16_t RightVerticalLoop = 41; - constexpr uint16_t LeftQuarterTurn3Tiles = 42; - constexpr uint16_t RightQuarterTurn3Tiles = 43; - constexpr uint16_t LeftBankedQuarterTurn3Tiles = 44; - constexpr uint16_t RightBankedQuarterTurn3Tiles = 45; - constexpr uint16_t LeftQuarterTurn3TilesUp25 = 46; - constexpr uint16_t RightQuarterTurn3TilesUp25 = 47; - constexpr uint16_t LeftQuarterTurn3TilesDown25 = 48; - constexpr uint16_t RightQuarterTurn3TilesDown25 = 49; - constexpr uint16_t LeftQuarterTurn1Tile = 50; - constexpr uint16_t RightQuarterTurn1Tile = 51; - constexpr uint16_t LeftTwistDownToUp = 52; - constexpr uint16_t RightTwistDownToUp = 53; - constexpr uint16_t LeftTwistUpToDown = 54; - constexpr uint16_t RightTwistUpToDown = 55; - constexpr uint16_t HalfLoopUp = 56; - constexpr uint16_t HalfLoopDown = 57; - constexpr uint16_t LeftCorkscrewUp = 58; - constexpr uint16_t RightCorkscrewUp = 59; - constexpr uint16_t LeftCorkscrewDown = 60; - constexpr uint16_t RightCorkscrewDown = 61; - constexpr uint16_t FlatToUp60 = 62; - constexpr uint16_t Up60ToFlat = 63; - constexpr uint16_t FlatToDown60 = 64; - constexpr uint16_t Down60ToFlat = 65; - constexpr uint16_t TowerBase = 66; - constexpr uint16_t TowerSection = 67; - constexpr uint16_t FlatCovered = 68; - constexpr uint16_t Up25Covered = 69; - constexpr uint16_t Up60Covered = 70; - constexpr uint16_t FlatToUp25Covered = 71; - constexpr uint16_t Up25ToUp60Covered = 72; - constexpr uint16_t Up60ToUp25Covered = 73; - constexpr uint16_t Up25ToFlatCovered = 74; - constexpr uint16_t Down25Covered = 75; - constexpr uint16_t Down60Covered = 76; - constexpr uint16_t FlatToDown25Covered = 77; - constexpr uint16_t Down25ToDown60Covered = 78; - constexpr uint16_t Down60ToDown25Covered = 79; - constexpr uint16_t Down25ToFlatCovered = 80; - constexpr uint16_t LeftQuarterTurn5TilesCovered = 81; - constexpr uint16_t RightQuarterTurn5TilesCovered = 82; - constexpr uint16_t SBendLeftCovered = 83; - constexpr uint16_t SBendRightCovered = 84; - constexpr uint16_t LeftQuarterTurn3TilesCovered = 85; - constexpr uint16_t RightQuarterTurn3TilesCovered = 86; - constexpr uint16_t LeftHalfBankedHelixUpSmall = 87; - constexpr uint16_t RightHalfBankedHelixUpSmall = 88; - constexpr uint16_t LeftHalfBankedHelixDownSmall = 89; - constexpr uint16_t RightHalfBankedHelixDownSmall = 90; - constexpr uint16_t LeftHalfBankedHelixUpLarge = 91; - constexpr uint16_t RightHalfBankedHelixUpLarge = 92; - constexpr uint16_t LeftHalfBankedHelixDownLarge = 93; - constexpr uint16_t RightHalfBankedHelixDownLarge = 94; - constexpr uint16_t LeftQuarterTurn1TileUp60 = 95; - constexpr uint16_t RightQuarterTurn1TileUp60 = 96; - constexpr uint16_t LeftQuarterTurn1TileDown60 = 97; - constexpr uint16_t RightQuarterTurn1TileDown60 = 98; - constexpr uint16_t Brakes = 99; - constexpr uint16_t RotationControlToggle = 100; - constexpr uint16_t Booster = 100; - constexpr uint16_t Maze = 101; + constexpr track_type_t Flat = 0; + constexpr track_type_t EndStation = 1; + constexpr track_type_t BeginStation = 2; + constexpr track_type_t MiddleStation = 3; + constexpr track_type_t Up25 = 4; + constexpr track_type_t Up60 = 5; + constexpr track_type_t FlatToUp25 = 6; + constexpr track_type_t Up25ToUp60 = 7; + constexpr track_type_t Up60ToUp25 = 8; + constexpr track_type_t Up25ToFlat = 9; + constexpr track_type_t Down25 = 10; + constexpr track_type_t Down60 = 11; + constexpr track_type_t FlatToDown25 = 12; + constexpr track_type_t Down25ToDown60 = 13; + constexpr track_type_t Down60ToDown25 = 14; + constexpr track_type_t Down25ToFlat = 15; + constexpr track_type_t LeftQuarterTurn5Tiles = 16; + constexpr track_type_t RightQuarterTurn5Tiles = 17; + constexpr track_type_t FlatToLeftBank = 18; + constexpr track_type_t FlatToRightBank = 19; + constexpr track_type_t LeftBankToFlat = 20; + constexpr track_type_t RightBankToFlat = 21; + constexpr track_type_t BankedLeftQuarterTurn5Tiles = 22; + constexpr track_type_t BankedRightQuarterTurn5Tiles = 23; + constexpr track_type_t LeftBankToUp25 = 24; + constexpr track_type_t RightBankToUp25 = 25; + constexpr track_type_t Up25ToLeftBank = 26; + constexpr track_type_t Up25ToRightBank = 27; + constexpr track_type_t LeftBankToDown25 = 28; + constexpr track_type_t RightBankToDown25 = 29; + constexpr track_type_t Down25ToLeftBank = 30; + constexpr track_type_t Down25ToRightBank = 31; + constexpr track_type_t LeftBank = 32; + constexpr track_type_t RightBank = 33; + constexpr track_type_t LeftQuarterTurn5TilesUp25 = 34; + constexpr track_type_t RightQuarterTurn5TilesUp25 = 35; + constexpr track_type_t LeftQuarterTurn5TilesDown25 = 36; + constexpr track_type_t RightQuarterTurn5TilesDown25 = 37; + constexpr track_type_t SBendLeft = 38; + constexpr track_type_t SBendRight = 39; + constexpr track_type_t LeftVerticalLoop = 40; + constexpr track_type_t RightVerticalLoop = 41; + constexpr track_type_t LeftQuarterTurn3Tiles = 42; + constexpr track_type_t RightQuarterTurn3Tiles = 43; + constexpr track_type_t LeftBankedQuarterTurn3Tiles = 44; + constexpr track_type_t RightBankedQuarterTurn3Tiles = 45; + constexpr track_type_t LeftQuarterTurn3TilesUp25 = 46; + constexpr track_type_t RightQuarterTurn3TilesUp25 = 47; + constexpr track_type_t LeftQuarterTurn3TilesDown25 = 48; + constexpr track_type_t RightQuarterTurn3TilesDown25 = 49; + constexpr track_type_t LeftQuarterTurn1Tile = 50; + constexpr track_type_t RightQuarterTurn1Tile = 51; + constexpr track_type_t LeftTwistDownToUp = 52; + constexpr track_type_t RightTwistDownToUp = 53; + constexpr track_type_t LeftTwistUpToDown = 54; + constexpr track_type_t RightTwistUpToDown = 55; + constexpr track_type_t HalfLoopUp = 56; + constexpr track_type_t HalfLoopDown = 57; + constexpr track_type_t LeftCorkscrewUp = 58; + constexpr track_type_t RightCorkscrewUp = 59; + constexpr track_type_t LeftCorkscrewDown = 60; + constexpr track_type_t RightCorkscrewDown = 61; + constexpr track_type_t FlatToUp60 = 62; + constexpr track_type_t Up60ToFlat = 63; + constexpr track_type_t FlatToDown60 = 64; + constexpr track_type_t Down60ToFlat = 65; + constexpr track_type_t TowerBase = 66; + constexpr track_type_t TowerSection = 67; + constexpr track_type_t FlatCovered = 68; + constexpr track_type_t Up25Covered = 69; + constexpr track_type_t Up60Covered = 70; + constexpr track_type_t FlatToUp25Covered = 71; + constexpr track_type_t Up25ToUp60Covered = 72; + constexpr track_type_t Up60ToUp25Covered = 73; + constexpr track_type_t Up25ToFlatCovered = 74; + constexpr track_type_t Down25Covered = 75; + constexpr track_type_t Down60Covered = 76; + constexpr track_type_t FlatToDown25Covered = 77; + constexpr track_type_t Down25ToDown60Covered = 78; + constexpr track_type_t Down60ToDown25Covered = 79; + constexpr track_type_t Down25ToFlatCovered = 80; + constexpr track_type_t LeftQuarterTurn5TilesCovered = 81; + constexpr track_type_t RightQuarterTurn5TilesCovered = 82; + constexpr track_type_t SBendLeftCovered = 83; + constexpr track_type_t SBendRightCovered = 84; + constexpr track_type_t LeftQuarterTurn3TilesCovered = 85; + constexpr track_type_t RightQuarterTurn3TilesCovered = 86; + constexpr track_type_t LeftHalfBankedHelixUpSmall = 87; + constexpr track_type_t RightHalfBankedHelixUpSmall = 88; + constexpr track_type_t LeftHalfBankedHelixDownSmall = 89; + constexpr track_type_t RightHalfBankedHelixDownSmall = 90; + constexpr track_type_t LeftHalfBankedHelixUpLarge = 91; + constexpr track_type_t RightHalfBankedHelixUpLarge = 92; + constexpr track_type_t LeftHalfBankedHelixDownLarge = 93; + constexpr track_type_t RightHalfBankedHelixDownLarge = 94; + constexpr track_type_t LeftQuarterTurn1TileUp60 = 95; + constexpr track_type_t RightQuarterTurn1TileUp60 = 96; + constexpr track_type_t LeftQuarterTurn1TileDown60 = 97; + constexpr track_type_t RightQuarterTurn1TileDown60 = 98; + constexpr track_type_t Brakes = 99; + constexpr track_type_t RotationControlToggle = 100; + constexpr track_type_t Booster = 100; + constexpr track_type_t Maze = 101; // Used by the multi-dimension coaster, as TD6 cannot handle index 255. - constexpr uint16_t InvertedUp90ToFlatQuarterLoopAlias = 101; - constexpr uint16_t LeftQuarterBankedHelixLargeUp = 102; - constexpr uint16_t RightQuarterBankedHelixLargeUp = 103; - constexpr uint16_t LeftQuarterBankedHelixLargeDown = 104; - constexpr uint16_t RightQuarterBankedHelixLargeDown = 105; - constexpr uint16_t LeftQuarterHelixLargeUp = 106; - constexpr uint16_t RightQuarterHelixLargeUp = 107; - constexpr uint16_t LeftQuarterHelixLargeDown = 108; - constexpr uint16_t RightQuarterHelixLargeDown = 109; - constexpr uint16_t Up25LeftBanked = 110; - constexpr uint16_t Up25RightBanked = 111; - constexpr uint16_t Waterfall = 112; - constexpr uint16_t Rapids = 113; - constexpr uint16_t OnRidePhoto = 114; - constexpr uint16_t Down25LeftBanked = 115; - constexpr uint16_t Down25RightBanked = 116; - constexpr uint16_t Watersplash = 117; - constexpr uint16_t FlatToUp60LongBase = 118; - constexpr uint16_t Up60ToFlatLongBase = 119; - constexpr uint16_t Whirlpool = 120; - constexpr uint16_t Down60ToFlatLongBase = 121; - constexpr uint16_t FlatToDown60LongBase = 122; - constexpr uint16_t CableLiftHill = 123; - constexpr uint16_t ReverseFreefallSlope = 124; - constexpr uint16_t ReverseFreefallVertical = 125; - constexpr uint16_t Up90 = 126; - constexpr uint16_t Down90 = 127; - constexpr uint16_t Up60ToUp90 = 128; - constexpr uint16_t Down90ToDown60 = 129; - constexpr uint16_t Up90ToUp60 = 130; - constexpr uint16_t Down60ToDown90 = 131; - constexpr uint16_t BrakeForDrop = 132; - constexpr uint16_t LeftEighthToDiag = 133; - constexpr uint16_t RightEighthToDiag = 134; - constexpr uint16_t LeftEighthToOrthogonal = 135; - constexpr uint16_t RightEighthToOrthogonal = 136; - constexpr uint16_t LeftEighthBankToDiag = 137; - constexpr uint16_t RightEighthBankToDiag = 138; - constexpr uint16_t LeftEighthBankToOrthogonal = 139; - constexpr uint16_t RightEighthBankToOrthogonal = 140; - constexpr uint16_t DiagFlat = 141; - constexpr uint16_t DiagUp25 = 142; - constexpr uint16_t DiagUp60 = 143; - constexpr uint16_t DiagFlatToUp25 = 144; - constexpr uint16_t DiagUp25ToUp60 = 145; - constexpr uint16_t DiagUp60ToUp25 = 146; - constexpr uint16_t DiagUp25ToFlat = 147; - constexpr uint16_t DiagDown25 = 148; - constexpr uint16_t DiagDown60 = 149; - constexpr uint16_t DiagFlatToDown25 = 150; - constexpr uint16_t DiagDown25ToDown60 = 151; - constexpr uint16_t DiagDown60ToDown25 = 152; - constexpr uint16_t DiagDown25ToFlat = 153; - constexpr uint16_t DiagFlatToUp60 = 154; - constexpr uint16_t DiagUp60ToFlat = 155; - constexpr uint16_t DiagFlatToDown60 = 156; - constexpr uint16_t DiagDown60ToFlat = 157; - constexpr uint16_t DiagFlatToLeftBank = 158; - constexpr uint16_t DiagFlatToRightBank = 159; - constexpr uint16_t DiagLeftBankToFlat = 160; - constexpr uint16_t DiagRightBankToFlat = 161; - constexpr uint16_t DiagLeftBankToUp25 = 162; - constexpr uint16_t DiagRightBankToUp25 = 163; - constexpr uint16_t DiagUp25ToLeftBank = 164; - constexpr uint16_t DiagUp25ToRightBank = 165; - constexpr uint16_t DiagLeftBankToDown25 = 166; - constexpr uint16_t DiagRightBankToDown25 = 167; - constexpr uint16_t DiagDown25ToLeftBank = 168; - constexpr uint16_t DiagDown25ToRightBank = 169; - constexpr uint16_t DiagLeftBank = 170; - constexpr uint16_t DiagRightBank = 171; - constexpr uint16_t LogFlumeReverser = 172; - constexpr uint16_t SpinningTunnel = 173; - constexpr uint16_t LeftBarrelRollUpToDown = 174; - constexpr uint16_t RightBarrelRollUpToDown = 175; - constexpr uint16_t LeftBarrelRollDownToUp = 176; - constexpr uint16_t RightBarrelRollDownToUp = 177; - constexpr uint16_t LeftBankToLeftQuarterTurn3TilesUp25 = 178; - constexpr uint16_t RightBankToRightQuarterTurn3TilesUp25 = 179; - constexpr uint16_t LeftQuarterTurn3TilesDown25ToLeftBank = 180; - constexpr uint16_t RightQuarterTurn3TilesDown25ToRightBank = 181; - constexpr uint16_t PoweredLift = 182; - constexpr uint16_t LeftLargeHalfLoopUp = 183; - constexpr uint16_t RightLargeHalfLoopUp = 184; - constexpr uint16_t RightLargeHalfLoopDown = 185; - constexpr uint16_t LeftLargeHalfLoopDown = 186; - constexpr uint16_t LeftFlyerTwistUp = 187; - constexpr uint16_t RightFlyerTwistUp = 188; - constexpr uint16_t LeftFlyerTwistDown = 189; - constexpr uint16_t RightFlyerTwistDown = 190; - constexpr uint16_t FlyerHalfLoopUp = 191; - constexpr uint16_t FlyerHalfLoopDown = 192; - constexpr uint16_t LeftFlyerCorkscrewUp = 193; - constexpr uint16_t RightFlyerCorkscrewUp = 194; - constexpr uint16_t LeftFlyerCorkscrewDown = 195; - constexpr uint16_t RightFlyerCorkscrewDown = 196; - constexpr uint16_t HeartLineTransferUp = 197; - constexpr uint16_t HeartLineTransferDown = 198; - constexpr uint16_t LeftHeartLineRoll = 199; - constexpr uint16_t RightHeartLineRoll = 200; - constexpr uint16_t MinigolfHoleA = 201; - constexpr uint16_t MinigolfHoleB = 202; - constexpr uint16_t MinigolfHoleC = 203; - constexpr uint16_t MinigolfHoleD = 204; - constexpr uint16_t MinigolfHoleE = 205; - constexpr uint16_t MultiDimInvertedFlatToDown90QuarterLoop = 206; - constexpr uint16_t Up90ToInvertedFlatQuarterLoop = 207; - constexpr uint16_t InvertedFlatToDown90QuarterLoop = 208; - constexpr uint16_t LeftCurvedLiftHill = 209; - constexpr uint16_t RightCurvedLiftHill = 210; - constexpr uint16_t LeftReverser = 211; - constexpr uint16_t RightReverser = 212; - constexpr uint16_t AirThrustTopCap = 213; - constexpr uint16_t AirThrustVerticalDown = 214; - constexpr uint16_t AirThrustVerticalDownToLevel = 215; - constexpr uint16_t BlockBrakes = 216; - constexpr uint16_t LeftBankedQuarterTurn3TileUp25 = 217; - constexpr uint16_t RightBankedQuarterTurn3TileUp25 = 218; - constexpr uint16_t LeftBankedQuarterTurn3TileDown25 = 219; - constexpr uint16_t RightBankedQuarterTurn3TileDown25 = 220; - constexpr uint16_t LeftBankedQuarterTurn5TileUp25 = 221; - constexpr uint16_t RightBankedQuarterTurn5TileUp25 = 222; - constexpr uint16_t LeftBankedQuarterTurn5TileDown25 = 223; - constexpr uint16_t RightBankedQuarterTurn5TileDown25 = 224; - constexpr uint16_t Up25ToLeftBankedUp25 = 225; - constexpr uint16_t Up25ToRightBankedUp25 = 226; - constexpr uint16_t LeftBankedUp25ToUp25 = 227; - constexpr uint16_t RightBankedUp25ToUp25 = 228; - constexpr uint16_t Down25ToLeftBankedDown25 = 229; - constexpr uint16_t Down25ToRightBankedDown25 = 230; - constexpr uint16_t LeftBankedDown25ToDown25 = 231; - constexpr uint16_t RightBankedDown25ToDown25 = 232; - constexpr uint16_t LeftBankedFlatToLeftBankedUp25 = 233; - constexpr uint16_t RightBankedFlatToRightBankedUp25 = 234; - constexpr uint16_t LeftBankedUp25ToLeftBankedFlat = 235; - constexpr uint16_t RightBankedUp25ToRightBankedFlat = 236; - constexpr uint16_t LeftBankedFlatToLeftBankedDown25 = 237; - constexpr uint16_t RightBankedFlatToRightBankedDown25 = 238; - constexpr uint16_t LeftBankedDown25ToLeftBankedFlat = 239; - constexpr uint16_t RightBankedDown25ToRightBankedFlat = 240; - constexpr uint16_t FlatToLeftBankedUp25 = 241; - constexpr uint16_t FlatToRightBankedUp25 = 242; - constexpr uint16_t LeftBankedUp25ToFlat = 243; - constexpr uint16_t RightBankedUp25ToFlat = 244; - constexpr uint16_t FlatToLeftBankedDown25 = 245; - constexpr uint16_t FlatToRightBankedDown25 = 246; - constexpr uint16_t LeftBankedDown25ToFlat = 247; - constexpr uint16_t RightBankedDown25ToFlat = 248; - constexpr uint16_t LeftQuarterTurn1TileUp90 = 249; - constexpr uint16_t RightQuarterTurn1TileUp90 = 250; - constexpr uint16_t LeftQuarterTurn1TileDown90 = 251; - constexpr uint16_t RightQuarterTurn1TileDown90 = 252; - constexpr uint16_t MultiDimUp90ToInvertedFlatQuarterLoop = 253; - constexpr uint16_t MultiDimFlatToDown90QuarterLoop = 254; - constexpr uint16_t MultiDimInvertedUp90ToFlatQuarterLoop = 255; + constexpr track_type_t InvertedUp90ToFlatQuarterLoopAlias = 101; + constexpr track_type_t LeftQuarterBankedHelixLargeUp = 102; + constexpr track_type_t RightQuarterBankedHelixLargeUp = 103; + constexpr track_type_t LeftQuarterBankedHelixLargeDown = 104; + constexpr track_type_t RightQuarterBankedHelixLargeDown = 105; + constexpr track_type_t LeftQuarterHelixLargeUp = 106; + constexpr track_type_t RightQuarterHelixLargeUp = 107; + constexpr track_type_t LeftQuarterHelixLargeDown = 108; + constexpr track_type_t RightQuarterHelixLargeDown = 109; + constexpr track_type_t Up25LeftBanked = 110; + constexpr track_type_t Up25RightBanked = 111; + constexpr track_type_t Waterfall = 112; + constexpr track_type_t Rapids = 113; + constexpr track_type_t OnRidePhoto = 114; + constexpr track_type_t Down25LeftBanked = 115; + constexpr track_type_t Down25RightBanked = 116; + constexpr track_type_t Watersplash = 117; + constexpr track_type_t FlatToUp60LongBase = 118; + constexpr track_type_t Up60ToFlatLongBase = 119; + constexpr track_type_t Whirlpool = 120; + constexpr track_type_t Down60ToFlatLongBase = 121; + constexpr track_type_t FlatToDown60LongBase = 122; + constexpr track_type_t CableLiftHill = 123; + constexpr track_type_t ReverseFreefallSlope = 124; + constexpr track_type_t ReverseFreefallVertical = 125; + constexpr track_type_t Up90 = 126; + constexpr track_type_t Down90 = 127; + constexpr track_type_t Up60ToUp90 = 128; + constexpr track_type_t Down90ToDown60 = 129; + constexpr track_type_t Up90ToUp60 = 130; + constexpr track_type_t Down60ToDown90 = 131; + constexpr track_type_t BrakeForDrop = 132; + constexpr track_type_t LeftEighthToDiag = 133; + constexpr track_type_t RightEighthToDiag = 134; + constexpr track_type_t LeftEighthToOrthogonal = 135; + constexpr track_type_t RightEighthToOrthogonal = 136; + constexpr track_type_t LeftEighthBankToDiag = 137; + constexpr track_type_t RightEighthBankToDiag = 138; + constexpr track_type_t LeftEighthBankToOrthogonal = 139; + constexpr track_type_t RightEighthBankToOrthogonal = 140; + constexpr track_type_t DiagFlat = 141; + constexpr track_type_t DiagUp25 = 142; + constexpr track_type_t DiagUp60 = 143; + constexpr track_type_t DiagFlatToUp25 = 144; + constexpr track_type_t DiagUp25ToUp60 = 145; + constexpr track_type_t DiagUp60ToUp25 = 146; + constexpr track_type_t DiagUp25ToFlat = 147; + constexpr track_type_t DiagDown25 = 148; + constexpr track_type_t DiagDown60 = 149; + constexpr track_type_t DiagFlatToDown25 = 150; + constexpr track_type_t DiagDown25ToDown60 = 151; + constexpr track_type_t DiagDown60ToDown25 = 152; + constexpr track_type_t DiagDown25ToFlat = 153; + constexpr track_type_t DiagFlatToUp60 = 154; + constexpr track_type_t DiagUp60ToFlat = 155; + constexpr track_type_t DiagFlatToDown60 = 156; + constexpr track_type_t DiagDown60ToFlat = 157; + constexpr track_type_t DiagFlatToLeftBank = 158; + constexpr track_type_t DiagFlatToRightBank = 159; + constexpr track_type_t DiagLeftBankToFlat = 160; + constexpr track_type_t DiagRightBankToFlat = 161; + constexpr track_type_t DiagLeftBankToUp25 = 162; + constexpr track_type_t DiagRightBankToUp25 = 163; + constexpr track_type_t DiagUp25ToLeftBank = 164; + constexpr track_type_t DiagUp25ToRightBank = 165; + constexpr track_type_t DiagLeftBankToDown25 = 166; + constexpr track_type_t DiagRightBankToDown25 = 167; + constexpr track_type_t DiagDown25ToLeftBank = 168; + constexpr track_type_t DiagDown25ToRightBank = 169; + constexpr track_type_t DiagLeftBank = 170; + constexpr track_type_t DiagRightBank = 171; + constexpr track_type_t LogFlumeReverser = 172; + constexpr track_type_t SpinningTunnel = 173; + constexpr track_type_t LeftBarrelRollUpToDown = 174; + constexpr track_type_t RightBarrelRollUpToDown = 175; + constexpr track_type_t LeftBarrelRollDownToUp = 176; + constexpr track_type_t RightBarrelRollDownToUp = 177; + constexpr track_type_t LeftBankToLeftQuarterTurn3TilesUp25 = 178; + constexpr track_type_t RightBankToRightQuarterTurn3TilesUp25 = 179; + constexpr track_type_t LeftQuarterTurn3TilesDown25ToLeftBank = 180; + constexpr track_type_t RightQuarterTurn3TilesDown25ToRightBank = 181; + constexpr track_type_t PoweredLift = 182; + constexpr track_type_t LeftLargeHalfLoopUp = 183; + constexpr track_type_t RightLargeHalfLoopUp = 184; + constexpr track_type_t RightLargeHalfLoopDown = 185; + constexpr track_type_t LeftLargeHalfLoopDown = 186; + constexpr track_type_t LeftFlyerTwistUp = 187; + constexpr track_type_t RightFlyerTwistUp = 188; + constexpr track_type_t LeftFlyerTwistDown = 189; + constexpr track_type_t RightFlyerTwistDown = 190; + constexpr track_type_t FlyerHalfLoopUp = 191; + constexpr track_type_t FlyerHalfLoopDown = 192; + constexpr track_type_t LeftFlyerCorkscrewUp = 193; + constexpr track_type_t RightFlyerCorkscrewUp = 194; + constexpr track_type_t LeftFlyerCorkscrewDown = 195; + constexpr track_type_t RightFlyerCorkscrewDown = 196; + constexpr track_type_t HeartLineTransferUp = 197; + constexpr track_type_t HeartLineTransferDown = 198; + constexpr track_type_t LeftHeartLineRoll = 199; + constexpr track_type_t RightHeartLineRoll = 200; + constexpr track_type_t MinigolfHoleA = 201; + constexpr track_type_t MinigolfHoleB = 202; + constexpr track_type_t MinigolfHoleC = 203; + constexpr track_type_t MinigolfHoleD = 204; + constexpr track_type_t MinigolfHoleE = 205; + constexpr track_type_t MultiDimInvertedFlatToDown90QuarterLoop = 206; + constexpr track_type_t Up90ToInvertedFlatQuarterLoop = 207; + constexpr track_type_t InvertedFlatToDown90QuarterLoop = 208; + constexpr track_type_t LeftCurvedLiftHill = 209; + constexpr track_type_t RightCurvedLiftHill = 210; + constexpr track_type_t LeftReverser = 211; + constexpr track_type_t RightReverser = 212; + constexpr track_type_t AirThrustTopCap = 213; + constexpr track_type_t AirThrustVerticalDown = 214; + constexpr track_type_t AirThrustVerticalDownToLevel = 215; + constexpr track_type_t BlockBrakes = 216; + constexpr track_type_t LeftBankedQuarterTurn3TileUp25 = 217; + constexpr track_type_t RightBankedQuarterTurn3TileUp25 = 218; + constexpr track_type_t LeftBankedQuarterTurn3TileDown25 = 219; + constexpr track_type_t RightBankedQuarterTurn3TileDown25 = 220; + constexpr track_type_t LeftBankedQuarterTurn5TileUp25 = 221; + constexpr track_type_t RightBankedQuarterTurn5TileUp25 = 222; + constexpr track_type_t LeftBankedQuarterTurn5TileDown25 = 223; + constexpr track_type_t RightBankedQuarterTurn5TileDown25 = 224; + constexpr track_type_t Up25ToLeftBankedUp25 = 225; + constexpr track_type_t Up25ToRightBankedUp25 = 226; + constexpr track_type_t LeftBankedUp25ToUp25 = 227; + constexpr track_type_t RightBankedUp25ToUp25 = 228; + constexpr track_type_t Down25ToLeftBankedDown25 = 229; + constexpr track_type_t Down25ToRightBankedDown25 = 230; + constexpr track_type_t LeftBankedDown25ToDown25 = 231; + constexpr track_type_t RightBankedDown25ToDown25 = 232; + constexpr track_type_t LeftBankedFlatToLeftBankedUp25 = 233; + constexpr track_type_t RightBankedFlatToRightBankedUp25 = 234; + constexpr track_type_t LeftBankedUp25ToLeftBankedFlat = 235; + constexpr track_type_t RightBankedUp25ToRightBankedFlat = 236; + constexpr track_type_t LeftBankedFlatToLeftBankedDown25 = 237; + constexpr track_type_t RightBankedFlatToRightBankedDown25 = 238; + constexpr track_type_t LeftBankedDown25ToLeftBankedFlat = 239; + constexpr track_type_t RightBankedDown25ToRightBankedFlat = 240; + constexpr track_type_t FlatToLeftBankedUp25 = 241; + constexpr track_type_t FlatToRightBankedUp25 = 242; + constexpr track_type_t LeftBankedUp25ToFlat = 243; + constexpr track_type_t RightBankedUp25ToFlat = 244; + constexpr track_type_t FlatToLeftBankedDown25 = 245; + constexpr track_type_t FlatToRightBankedDown25 = 246; + constexpr track_type_t LeftBankedDown25ToFlat = 247; + constexpr track_type_t RightBankedDown25ToFlat = 248; + constexpr track_type_t LeftQuarterTurn1TileUp90 = 249; + constexpr track_type_t RightQuarterTurn1TileUp90 = 250; + constexpr track_type_t LeftQuarterTurn1TileDown90 = 251; + constexpr track_type_t RightQuarterTurn1TileDown90 = 252; + constexpr track_type_t MultiDimUp90ToInvertedFlatQuarterLoop = 253; + constexpr track_type_t MultiDimFlatToDown90QuarterLoop = 254; + constexpr track_type_t MultiDimInvertedUp90ToFlatQuarterLoop = 255; constexpr uint16_t Count = 256; }; // namespace TrackElemType @@ -546,17 +546,17 @@ struct track_circuit_iterator bool looped; }; -extern const rct_trackdefinition FlatRideTrackDefinitions[256]; -extern const rct_trackdefinition TrackDefinitions[256]; +extern const rct_trackdefinition FlatRideTrackDefinitions[TrackElemType::Count]; +extern const rct_trackdefinition TrackDefinitions[TrackElemType::Count]; PitchAndRoll TrackPitchAndRollStart(track_type_t trackType); PitchAndRoll TrackPitchAndRollEnd(track_type_t trackType); int32_t track_is_connected_by_shape(TileElement* a, TileElement* b); -const rct_preview_track* get_track_def_from_ride(Ride* ride, int32_t trackType); -const rct_preview_track* get_track_def_from_ride_index(ride_id_t rideIndex, int32_t trackType); -const rct_track_coordinates* get_track_coord_from_ride(Ride* ride, int32_t trackType); +const rct_preview_track* get_track_def_from_ride(Ride* ride, track_type_t trackType); +const rct_preview_track* get_track_def_from_ride_index(ride_id_t rideIndex, track_type_t trackType); +const rct_track_coordinates* get_track_coord_from_ride(Ride* ride, track_type_t trackType); void track_circuit_iterator_begin(track_circuit_iterator* it, CoordsXYE first); bool track_circuit_iterator_previous(track_circuit_iterator* it); diff --git a/src/openrct2/ride/TrackData.h b/src/openrct2/ride/TrackData.h index e9f2998f15..4abee5becd 100644 --- a/src/openrct2/ride/TrackData.h +++ b/src/openrct2/ride/TrackData.h @@ -50,10 +50,10 @@ struct track_descriptor extern const track_descriptor gTrackDescriptors[142]; -extern const int16_t AlternativeTrackTypes[256]; +extern const int16_t AlternativeTrackTypes[TrackElemType::Count]; -extern const money32 TrackPricing[256]; -extern const money32 FlatRideTrackPricing[256]; +extern const money32 TrackPricing[TrackElemType::Count]; +extern const money32 FlatRideTrackPricing[TrackElemType::Count]; struct dodgems_track_size { @@ -63,14 +63,14 @@ struct dodgems_track_size uint8_t bottom; }; -extern const dodgems_track_size DodgemsTrackSize[256]; +extern const dodgems_track_size DodgemsTrackSize[TrackElemType::Count]; -extern const uint8_t TrackElementMirrorMap[256]; +extern const uint8_t TrackElementMirrorMap[TrackElemType::Count]; -extern const uint32_t TrackHeightMarkerPositions[256]; +extern const uint32_t TrackHeightMarkerPositions[TrackElemType::Count]; -extern const uint8_t TrackSequenceElementAllowedWallEdges[256][16]; -extern const uint8_t FlatRideTrackSequenceElementAllowedWallEdges[256][16]; +extern const uint8_t TrackSequenceElementAllowedWallEdges[TrackElemType::Count][16]; +extern const uint8_t FlatRideTrackSequenceElementAllowedWallEdges[TrackElemType::Count][16]; -extern const uint16_t FlatTrackFlags[256]; -extern const uint16_t TrackFlags[256]; +extern const uint16_t FlatTrackFlags[TrackElemType::Count]; +extern const uint16_t TrackFlags[TrackElemType::Count]; diff --git a/src/openrct2/ride/TrackDesign.cpp b/src/openrct2/ride/TrackDesign.cpp index 94ba6e4959..3d17a33c79 100644 --- a/src/openrct2/ride/TrackDesign.cpp +++ b/src/openrct2/ride/TrackDesign.cpp @@ -1530,7 +1530,7 @@ static bool track_design_place_ride(TrackDesign* td6, const CoordsXYZ& origin, R auto newCoords = origin; for (const auto& track : td6->track_elements) { - uint8_t trackType = track.type; + auto trackType = track.type; if (trackType == TrackElemType::InvertedUp90ToFlatQuarterLoopAlias) { trackType = TrackElemType::MultiDimInvertedUp90ToFlatQuarterLoop; diff --git a/src/openrct2/ride/TrackPaint.cpp b/src/openrct2/ride/TrackPaint.cpp index 6b51c788c1..ca6d293377 100644 --- a/src/openrct2/ride/TrackPaint.cpp +++ b/src/openrct2/ride/TrackPaint.cpp @@ -2148,7 +2148,7 @@ void track_paint(paint_session* session, Direction direction, int32_t height, co if ((!gTrackDesignSaveMode || rideIndex == gTrackDesignSaveRideIndex) && !(session->ViewFlags & VIEWPORT_FLAG_HIGHLIGHT_PATH_ISSUES)) { - int32_t trackType = tileElement->AsTrack()->GetTrackType(); + auto trackType = tileElement->AsTrack()->GetTrackType(); int32_t trackSequence = tileElement->AsTrack()->GetSequenceIndex(); int32_t trackColourScheme = tileElement->AsTrack()->GetColourScheme(); diff --git a/src/openrct2/ride/Vehicle.cpp b/src/openrct2/ride/Vehicle.cpp index c60fb03b26..b41c1054d7 100644 --- a/src/openrct2/ride/Vehicle.cpp +++ b/src/openrct2/ride/Vehicle.cpp @@ -1620,7 +1620,7 @@ void Vehicle::UpdateMeasurements() if (ride_get_entrance_location(curRide, curRide->current_test_station).isNull()) return; - uint16_t trackElemType = GetTrackType(); + auto trackElemType = GetTrackType(); if (trackElemType == TrackElemType::PoweredLift || HasUpdateFlag(VEHICLE_UPDATE_FLAG_ON_LIFT_HILL)) { if (!(curRide->testing_flags & RIDE_TESTING_POWERED_LIFT)) @@ -6486,7 +6486,7 @@ static bool wouldCollideWithDodgemsTrackEdge( bool Vehicle::DodgemsCarWouldCollideAt(const CoordsXY& coords, uint16_t* collidedWith) const { - uint32_t trackType = GetTrackType(); + auto trackType = GetTrackType(); if (wouldCollideWithDodgemsTrackEdge(coords, TrackLocation, trackType, (var_44 * 30) >> 9)) { @@ -6547,7 +6547,7 @@ void Vehicle::UpdateTrackMotionUpStopCheck() const // No up stops (coaster types) if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_NO_UPSTOP_WHEELS) { - int32_t trackType = GetTrackType(); + auto trackType = GetTrackType(); if (!track_element_is_covered(trackType)) { auto gForces = GetGForces(); @@ -6576,7 +6576,7 @@ void Vehicle::UpdateTrackMotionUpStopCheck() const else if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_NO_UPSTOP_BOBSLEIGH) { // No up stops bobsleigh type - int32_t trackType = GetTrackType(); + auto trackType = GetTrackType(); if (!track_element_is_covered(trackType)) { auto gForces = GetGForces(); @@ -6672,7 +6672,7 @@ void Vehicle::CheckAndApplyBlockSectionStopSite() acceleration = 0; } - int32_t trackType = GetTrackType(); + auto trackType = GetTrackType(); TileElement* trackElement = map_get_track_element_at_of_type(TrackLocation, trackType); @@ -6795,7 +6795,7 @@ static void block_brakes_open_previous_section(Ride& ride, const CoordsXYZ& vehi trackElement->SetBlockBrakeClosed(false); map_invalidate_element(location, reinterpret_cast(trackElement)); - int32_t trackType = trackElement->GetTrackType(); + auto trackType = trackElement->GetTrackType(); if (trackType == TrackElemType::BlockBrakes || trackType == TrackElemType::EndStation) { if (ride.IsBlockSectioned()) @@ -6807,7 +6807,7 @@ static void block_brakes_open_previous_section(Ride& ride, const CoordsXYZ& vehi int32_t Vehicle::GetSwingAmount() const { - int32_t trackType = GetTrackType(); + auto trackType = GetTrackType(); switch (trackType) { case TrackElemType::LeftQuarterTurn5Tiles: @@ -6964,7 +6964,7 @@ void Vehicle::UpdateSwingingCar() dx = 5370; cx = -5370; - int32_t trackType = GetTrackType(); + auto trackType = GetTrackType(); switch (trackType) { case TrackElemType::BankedLeftQuarterTurn5Tiles: @@ -7084,7 +7084,7 @@ enum R9_SPIN }; -static const uint8_t TrackTypeToSpinFunction[256] = { +static const uint8_t TrackTypeToSpinFunction[TrackElemType::Count] = { NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, L8_SPIN, R8_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, L8_SPIN, R8_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, NO_SPIN, L8_SPIN, R8_SPIN, L8_SPIN, R8_SPIN, LR_SPIN, @@ -7127,7 +7127,7 @@ void Vehicle::UpdateSpinningCar() return; } int32_t spinningInertia = vehicleEntry->spinning_inertia; - int32_t trackType = GetTrackType(); + auto trackType = GetTrackType(); int32_t dword_F64E08 = _vehicleVelocityF64E08; int32_t spinSpeed{}; // An L spin adds to the spin speed, R does the opposite @@ -7469,7 +7469,7 @@ static void AnimateSceneryDoor(const CoordsXYZD& doorLocation, const CoordsXYZ& */ void Vehicle::UpdateSceneryDoor() const { - int32_t trackType = GetTrackType(); + auto trackType = GetTrackType(); const rct_preview_track* trackBlock = TrackBlocks[trackType]; while ((trackBlock + 1)->index != 255) { @@ -7566,7 +7566,7 @@ static void trigger_on_ride_photo(const CoordsXYZ& loc, TileElement* tileElement */ void Vehicle::UpdateSceneryDoorBackwards() const { - int32_t trackType = GetTrackType(); + auto trackType = GetTrackType(); const rct_preview_track* trackBlock = TrackBlocks[trackType]; const rct_track_coordinates* trackCoordinates = &TrackCoordinates[trackType]; auto wallCoords = CoordsXYZ{ TrackLocation, TrackLocation.z - trackBlock->z + trackCoordinates->z_begin }; @@ -7610,7 +7610,7 @@ static void vehicle_update_play_water_splash_sound() void Vehicle::UpdateHandleWaterSplash() const { rct_ride_entry* rideEntry = GetRideEntry(); - int32_t trackType = GetTrackType(); + auto trackType = GetTrackType(); if (!(rideEntry->flags & RIDE_ENTRY_FLAG_PLAY_SPLASH_SOUND)) { @@ -7905,7 +7905,7 @@ void Vehicle::Sub6DBF3E() return; } - int32_t trackType = GetTrackType(); + auto trackType = GetTrackType(); if (!(TrackSequenceProperties[trackType][0] & TRACK_SEQUENCE_FLAG_ORIGIN)) { return; @@ -8181,7 +8181,7 @@ bool Vehicle::UpdateTrackMotionForwards(rct_ride_entry_vehicle* vehicleEntry, Ri { uint16_t otherVehicleIndex = SPRITE_INDEX_NULL; loc_6DAEB9: - int32_t trackType = GetTrackType(); + auto trackType = GetTrackType(); if (trackType == TrackElemType::HeartLineTransferUp || trackType == TrackElemType::HeartLineTransferDown) { if (track_progress == 80) @@ -8575,7 +8575,7 @@ bool Vehicle::UpdateTrackMotionBackwards(rct_ride_entry_vehicle* vehicleEntry, R uint16_t otherVehicleIndex = SPRITE_INDEX_NULL; loc_6DBA33:; - uint16_t trackType = GetTrackType(); + auto trackType = GetTrackType(); if (trackType == TrackElemType::Flat && curRide->type == RIDE_TYPE_REVERSE_FREEFALL_COASTER) { int32_t unkVelocity = _vehicleVelocityF64E08; @@ -9183,7 +9183,7 @@ loc_6DCE02: return; } { - uint16_t trackType = GetTrackType(); + auto trackType = GetTrackType(); if (!(TrackSequenceProperties[trackType][0] & TRACK_SEQUENCE_FLAG_ORIGIN)) { return; diff --git a/src/openrct2/ride/Vehicle.h b/src/openrct2/ride/Vehicle.h index 347b42e9c6..18b1e9484a 100644 --- a/src/openrct2/ride/Vehicle.h +++ b/src/openrct2/ride/Vehicle.h @@ -21,6 +21,8 @@ #include #include +using track_type_t = uint16_t; + struct rct_vehicle_colour { uint8_t body_colour; @@ -339,7 +341,7 @@ struct Vehicle : SpriteBase */ void MoveRelativeDistance(int32_t distance); - uint16_t GetTrackType() const + track_type_t GetTrackType() const { return track_type >> 2; } diff --git a/src/openrct2/ride/transport/Chairlift.cpp b/src/openrct2/ride/transport/Chairlift.cpp index 8c4a1f956c..ebcecc843a 100644 --- a/src/openrct2/ride/transport/Chairlift.cpp +++ b/src/openrct2/ride/transport/Chairlift.cpp @@ -132,7 +132,7 @@ static const TileElement* chairlift_paint_util_map_get_track_element_at_from_rid }; static bool chairlift_paint_util_is_first_track( - ride_id_t rideIndex, const TileElement* tileElement, const CoordsXY& pos, uint8_t trackType) + ride_id_t rideIndex, const TileElement* tileElement, const CoordsXY& pos, track_type_t trackType) { if (tileElement->AsTrack()->GetTrackType() != TrackElemType::BeginStation) { @@ -152,7 +152,7 @@ static bool chairlift_paint_util_is_first_track( } static bool chairlift_paint_util_is_last_track( - ride_id_t rideIndex, const TileElement* tileElement, const CoordsXY& pos, uint8_t trackType) + ride_id_t rideIndex, const TileElement* tileElement, const CoordsXY& pos, track_type_t trackType) { if (tileElement->AsTrack()->GetTrackType() != TrackElemType::EndStation) { diff --git a/src/openrct2/windows/_legacy.cpp b/src/openrct2/windows/_legacy.cpp index a40d3995b4..80464d45b6 100644 --- a/src/openrct2/windows/_legacy.cpp +++ b/src/openrct2/windows/_legacy.cpp @@ -246,7 +246,7 @@ bool window_ride_construction_update_state( CoordsXYZ* _trackPos, int32_t* _properties) { ride_id_t rideIndex; - uint8_t trackType, trackDirection; + uint8_t trackDirection; uint16_t x, y, liftHillAndInvertedState, properties; auto updated_element = window_ride_construction_update_state_get_track_element(); @@ -255,7 +255,7 @@ bool window_ride_construction_update_state( return true; } - trackType = std::get<1>(updated_element); + track_type_t trackType = std::get<1>(updated_element); liftHillAndInvertedState = 0; rideIndex = _currentRideIndex; if (_currentTrackLiftHill & CONSTRUCTION_LIFT_HILL_SELECTED) diff --git a/src/openrct2/world/Map.cpp b/src/openrct2/world/Map.cpp index 8d554ea56d..d576650eda 100644 --- a/src/openrct2/world/Map.cpp +++ b/src/openrct2/world/Map.cpp @@ -2211,7 +2211,7 @@ TrackElement* map_get_track_element_at(const CoordsXYZ& trackPos) * @param y y units, not tiles. * @param z Base height. */ -TileElement* map_get_track_element_at_of_type(const CoordsXYZ& trackPos, int32_t trackType) +TileElement* map_get_track_element_at_of_type(const CoordsXYZ& trackPos, track_type_t trackType) { TileElement* tileElement = map_get_first_element_at(trackPos); if (tileElement == nullptr) @@ -2238,7 +2238,7 @@ TileElement* map_get_track_element_at_of_type(const CoordsXYZ& trackPos, int32_t * @param y y units, not tiles. * @param z Base height. */ -TileElement* map_get_track_element_at_of_type_seq(const CoordsXYZ& trackPos, int32_t trackType, int32_t sequence) +TileElement* map_get_track_element_at_of_type_seq(const CoordsXYZ& trackPos, track_type_t trackType, int32_t sequence) { TileElement* tileElement = map_get_first_element_at(trackPos); auto trackTilePos = TileCoordsXYZ{ trackPos }; @@ -2261,7 +2261,7 @@ TileElement* map_get_track_element_at_of_type_seq(const CoordsXYZ& trackPos, int return nullptr; } -TrackElement* map_get_track_element_at_of_type(const CoordsXYZD& location, int32_t trackType) +TrackElement* map_get_track_element_at_of_type(const CoordsXYZD& location, track_type_t trackType) { auto tileElement = map_get_first_element_at(location); if (tileElement != nullptr) @@ -2284,7 +2284,7 @@ TrackElement* map_get_track_element_at_of_type(const CoordsXYZD& location, int32 return nullptr; } -TrackElement* map_get_track_element_at_of_type_seq(const CoordsXYZD& location, int32_t trackType, int32_t sequence) +TrackElement* map_get_track_element_at_of_type_seq(const CoordsXYZD& location, track_type_t trackType, int32_t sequence) { auto tileElement = map_get_first_element_at(location); if (tileElement != nullptr) @@ -2315,7 +2315,7 @@ TrackElement* map_get_track_element_at_of_type_seq(const CoordsXYZD& location, i * @param y y units, not tiles. * @param z Base height. */ -TileElement* map_get_track_element_at_of_type_from_ride(const CoordsXYZ& trackPos, int32_t trackType, ride_id_t rideIndex) +TileElement* map_get_track_element_at_of_type_from_ride(const CoordsXYZ& trackPos, track_type_t trackType, ride_id_t rideIndex) { TileElement* tileElement = map_get_first_element_at(trackPos); if (tileElement == nullptr) diff --git a/src/openrct2/world/Map.h b/src/openrct2/world/Map.h index d91db66222..038fceb1c8 100644 --- a/src/openrct2/world/Map.h +++ b/src/openrct2/world/Map.h @@ -281,11 +281,11 @@ std::optional map_large_scenery_get_origin( ScreenCoordsXY translate_3d_to_2d_with_z(int32_t rotation, const CoordsXYZ& pos); TrackElement* map_get_track_element_at(const CoordsXYZ& trackPos); -TileElement* map_get_track_element_at_of_type(const CoordsXYZ& trackPos, int32_t trackType); -TileElement* map_get_track_element_at_of_type_seq(const CoordsXYZ& trackPos, int32_t trackType, int32_t sequence); -TrackElement* map_get_track_element_at_of_type(const CoordsXYZD& location, int32_t trackType); -TrackElement* map_get_track_element_at_of_type_seq(const CoordsXYZD& location, int32_t trackType, int32_t sequence); -TileElement* map_get_track_element_at_of_type_from_ride(const CoordsXYZ& trackPos, int32_t trackType, ride_id_t rideIndex); +TileElement* map_get_track_element_at_of_type(const CoordsXYZ& trackPos, track_type_t trackType); +TileElement* map_get_track_element_at_of_type_seq(const CoordsXYZ& trackPos, track_type_t trackType, int32_t sequence); +TrackElement* map_get_track_element_at_of_type(const CoordsXYZD& location, track_type_t trackType); +TrackElement* map_get_track_element_at_of_type_seq(const CoordsXYZD& location, track_type_t trackType, int32_t sequence); +TileElement* map_get_track_element_at_of_type_from_ride(const CoordsXYZ& trackPos, track_type_t trackType, ride_id_t rideIndex); TileElement* map_get_track_element_at_from_ride(const CoordsXYZ& trackPos, ride_id_t rideIndex); TileElement* map_get_track_element_at_with_direction_from_ride(const CoordsXYZD& trackPos, ride_id_t rideIndex);