diff --git a/src/openrct2/rct1/T4Importer.cpp b/src/openrct2/rct1/T4Importer.cpp index 7d7799662c..9e19b0dd71 100644 --- a/src/openrct2/rct1/T4Importer.cpp +++ b/src/openrct2/rct1/T4Importer.cpp @@ -266,11 +266,14 @@ private: } else { - rct_td46_track_element trackElement{}; + rct_td46_track_element t4TrackElement{}; for (uint8_t endFlag = _stream.ReadValue(); endFlag != 0xFF; endFlag = _stream.ReadValue()) { _stream.SetPosition(_stream.GetPosition() - 1); - _stream.Read(&trackElement, sizeof(rct_td46_track_element)); + _stream.Read(&t4TrackElement, sizeof(rct_td46_track_element)); + TrackDesignTrackElement trackElement{}; + trackElement.type = t4TrackElement.type; + trackElement.flags = trackElement.flags; td->track_elements.push_back(trackElement); } } diff --git a/src/openrct2/rct2/T6Importer.cpp b/src/openrct2/rct2/T6Importer.cpp index 3fe982fc29..770e25c2f2 100644 --- a/src/openrct2/rct2/T6Importer.cpp +++ b/src/openrct2/rct2/T6Importer.cpp @@ -151,11 +151,14 @@ public: } else { - rct_td46_track_element trackElement{}; + rct_td46_track_element t4TrackElement{}; for (uint8_t endFlag = _stream.ReadValue(); endFlag != 0xFF; endFlag = _stream.ReadValue()) { _stream.SetPosition(_stream.GetPosition() - 1); - _stream.Read(&trackElement, sizeof(rct_td46_track_element)); + _stream.Read(&t4TrackElement, sizeof(rct_td46_track_element)); + TrackDesignTrackElement trackElement{}; + trackElement.type = t4TrackElement.type; + trackElement.flags = trackElement.flags; td->track_elements.push_back(trackElement); } diff --git a/src/openrct2/ride/TrackDesign.cpp b/src/openrct2/ride/TrackDesign.cpp index 7156c8fabc..e853f0f115 100644 --- a/src/openrct2/ride/TrackDesign.cpp +++ b/src/openrct2/ride/TrackDesign.cpp @@ -201,7 +201,7 @@ rct_string_id TrackDesign::CreateTrackDesignTrack(const Ride& ride) do { - rct_td46_track_element track{}; + TrackDesignTrackElement track{}; track.type = trackElement.element->AsTrack()->GetTrackType(); // TODO move to RCT2 limit if (track.type == TRACK_ELEM_255) diff --git a/src/openrct2/ride/TrackDesign.h b/src/openrct2/ride/TrackDesign.h index 6736744cd7..715c0f1eff 100644 --- a/src/openrct2/ride/TrackDesign.h +++ b/src/openrct2/ride/TrackDesign.h @@ -33,6 +33,14 @@ struct TrackDesignEntranceElement /** * Track design structure. */ + +/* Track Element entry size: 0x02 */ +struct TrackDesignTrackElement +{ + uint8_t type; // 0x00 + uint8_t flags; // 0x01 +}; + struct TrackDesign { uint8_t type; @@ -77,7 +85,7 @@ struct TrackDesign uint8_t num_circuits; std::vector maze_elements; - std::vector track_elements; + std::vector track_elements; std::vector entrance_elements; std::vector scenery_elements;