From 72e6f9a69481c913ffc19ea325674f93d405e288 Mon Sep 17 00:00:00 2001 From: frutiemax Date: Sun, 22 Aug 2021 10:01:30 -0400 Subject: [PATCH] Part of #13874: replace height markers positions tables --- src/openrct2/ride/TrackData.cpp | 2 +- src/openrct2/ride/TrackData.h | 2 -- src/openrct2/ride/TrackPaint.cpp | 5 ++++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/openrct2/ride/TrackData.cpp b/src/openrct2/ride/TrackData.cpp index 068f01035a..cce0d3f73b 100644 --- a/src/openrct2/ride/TrackData.cpp +++ b/src/openrct2/ride/TrackData.cpp @@ -4316,7 +4316,7 @@ const track_type_t TrackElementMirrorMap[TrackElemType::Count] = { }; /** rct2: 0x00999694 */ -const uint32_t TrackHeightMarkerPositions[TrackElemType::Count] = { +const static uint32_t TrackHeightMarkerPositions[TrackElemType::Count] = { (1 << 0), // TrackElemType::Flat (1 << 0), // TrackElemType::EndStation (1 << 0), // TrackElemType::BeginStation diff --git a/src/openrct2/ride/TrackData.h b/src/openrct2/ride/TrackData.h index d96d777677..60cb33e6e2 100644 --- a/src/openrct2/ride/TrackData.h +++ b/src/openrct2/ride/TrackData.h @@ -64,8 +64,6 @@ constexpr const dodgems_track_size DodgemsTrackSize(track_type_t type) } extern const track_type_t TrackElementMirrorMap[TrackElemType::Count]; -extern const uint32_t TrackHeightMarkerPositions[TrackElemType::Count]; - extern const uint8_t TrackSequenceElementAllowedWallEdges[TrackElemType::Count][16]; struct TrackElementDescriptor diff --git a/src/openrct2/ride/TrackPaint.cpp b/src/openrct2/ride/TrackPaint.cpp index bde96b1845..875506f6ed 100644 --- a/src/openrct2/ride/TrackPaint.cpp +++ b/src/openrct2/ride/TrackPaint.cpp @@ -27,6 +27,8 @@ #include "TrackData.h" #include "TrackDesign.h" +using namespace OpenRCT2::TrackMetaData; + // clang-format off /* rct2: 0x007667AC */ static constexpr TileCoordsXY EntranceOffsetEdgeNE[] = { @@ -2202,7 +2204,8 @@ void PaintTrack(paint_session* session, Direction direction, int32_t height, con if (PaintShouldShowHeightMarkers(session, VIEWPORT_FLAG_TRACK_HEIGHTS)) { session->InteractionType = ViewportInteractionItem::None; - if (TrackHeightMarkerPositions[trackType] & (1 << trackSequence)) + const auto& teDescriptor = GetTrackElementDescriptor(trackType); + if (teDescriptor.HeightMarkerPositions & (1 << trackSequence)) { uint16_t ax = ride->GetRideTypeDescriptor().Heights.VehicleZOffset; // 0x1689 represents 0 height there are -127 to 128 heights above and below it