Fix #10052: Create a TrackDesignEntranceElement struct to replace rct_td6_entrance_element

This commit is contained in:
Denis Khabenkov 2019-10-07 21:59:07 +03:00
parent 7df9344d09
commit de53ac84b8
No known key found for this signature in database
GPG Key ID: CDBBC59653704243
3 changed files with 19 additions and 4 deletions

View File

@ -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<uint8_t>(); endFlag != 0xFF; endFlag = _stream.ReadValue<uint8_t>())
{
_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);
}
}

View File

@ -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;

View File

@ -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<rct_td46_maze_element> maze_elements;
std::vector<rct_td46_track_element> track_elements;
std::vector<rct_td6_entrance_element> entrance_elements;
std::vector<TrackDesignEntranceElement> entrance_elements;
std::vector<rct_td6_scenery_element> scenery_elements;
std::string name;