diff --git a/src/openrct2/rct2/T6Importer.cpp b/src/openrct2/rct2/T6Importer.cpp index 64bdba83cf..3fe982fc29 100644 --- a/src/openrct2/rct2/T6Importer.cpp +++ b/src/openrct2/rct2/T6Importer.cpp @@ -159,11 +159,16 @@ public: td->track_elements.push_back(trackElement); } - rct_td6_entrance_element entranceElement{}; + rct_td6_entrance_element t6EntranceElement{}; for (uint8_t endFlag = _stream.ReadValue(); endFlag != 0xFF; endFlag = _stream.ReadValue()) { _stream.SetPosition(_stream.GetPosition() - 1); - _stream.Read(&entranceElement, sizeof(rct_td6_entrance_element)); + _stream.Read(&t6EntranceElement, sizeof(rct_td6_entrance_element)); + TrackDesignEntranceElement entranceElement{}; + entranceElement.z = t6EntranceElement.z; + entranceElement.direction = t6EntranceElement.direction; + entranceElement.x = t6EntranceElement.x; + entranceElement.y = t6EntranceElement.y; td->entrance_elements.push_back(entranceElement); } } diff --git a/src/openrct2/ride/TrackDesign.cpp b/src/openrct2/ride/TrackDesign.cpp index c0f1685726..7156c8fabc 100644 --- a/src/openrct2/ride/TrackDesign.cpp +++ b/src/openrct2/ride/TrackDesign.cpp @@ -300,7 +300,7 @@ rct_string_id TrackDesign::CreateTrackDesignTrack(const Ride& ride) entranceDirection -= _saveDirection; entranceDirection &= TILE_ELEMENT_DIRECTION_MASK; - rct_td6_entrance_element entrance{}; + TrackDesignEntranceElement entrance{}; entrance.direction = entranceDirection; x -= gTrackPreviewOrigin.x; diff --git a/src/openrct2/ride/TrackDesign.h b/src/openrct2/ride/TrackDesign.h index 2f077de1a3..04c16f2795 100644 --- a/src/openrct2/ride/TrackDesign.h +++ b/src/openrct2/ride/TrackDesign.h @@ -21,6 +21,16 @@ struct Ride; #define TRACK_PREVIEW_IMAGE_SIZE (370 * 217) +/* Track Entrance entry size: 0x06 */ +struct TrackDesignEntranceElement +{ + int8_t z; // 0x00 + uint8_t direction; // 0x01 + int16_t x; // 0x02 + int16_t y; // 0x04 +}; +assert_struct_size(TrackDesignEntranceElement, 0x06); + /** * Track design structure. */ @@ -69,7 +79,7 @@ struct TrackDesign std::vector maze_elements; std::vector track_elements; - std::vector entrance_elements; + std::vector entrance_elements; std::vector scenery_elements; std::string name;