mirror of https://github.com/OpenRCT2/OpenRCT2.git
Use ride_get_start_of_track in TrackDesignSave
This commit is contained in:
parent
ce0bf28cb5
commit
56fcd2ec94
|
@ -5476,6 +5476,10 @@ sint32 ride_is_valid_for_open(sint32 rideIndex, sint32 goingToBeOpen, sint32 isA
|
|||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a track element of the ride, find the start of the track.
|
||||
* It has to do this as a backwards loop in case this is an incomplete track.
|
||||
*/
|
||||
void ride_get_start_of_track(CoordsXYE * output)
|
||||
{
|
||||
track_begin_end trackBeginEnd;
|
||||
|
@ -5515,8 +5519,6 @@ sint32 ride_get_refund_price(sint32 ride_id)
|
|||
// Find the start in case it is not a complete circuit
|
||||
ride_get_start_of_track(&trackElement);
|
||||
|
||||
int z = trackElement.element->base_height * 8;
|
||||
uint8 track_type = track_element_get_type(trackElement.element);
|
||||
uint8 direction = tile_element_get_direction(trackElement.element);
|
||||
|
||||
// Used in the following loop to know when we have
|
||||
|
@ -5540,9 +5542,7 @@ sint32 ride_get_refund_price(sint32 ride_id)
|
|||
if (!track_block_get_next(&trackElement, &trackElement, NULL, NULL))
|
||||
break;
|
||||
|
||||
z = trackElement.element->base_height * 8;
|
||||
direction = tile_element_get_direction(trackElement.element);
|
||||
track_type = track_element_get_type(trackElement.element);
|
||||
|
||||
} while (trackElement.element != initial_map);
|
||||
|
||||
|
|
|
@ -1064,6 +1064,8 @@ bool track_block_get_next_from_zero(sint16 x, sint16 y, sint16 z_start, uint8 ri
|
|||
bool track_block_get_previous(sint32 x, sint32 y, rct_tile_element *tileElement, track_begin_end *outTrackBeginEnd);
|
||||
bool track_block_get_previous_from_zero(sint16 x, sint16 y, sint16 z, uint8 rideIndex, uint8 direction, track_begin_end *outTrackBeginEnd);
|
||||
|
||||
void ride_get_start_of_track(CoordsXYE * output);
|
||||
|
||||
void window_ride_construction_update_active_elements();
|
||||
void ride_construction_remove_ghosts();
|
||||
money32 ride_entrance_exit_place_ghost(sint32 rideIndex, sint32 x, sint32 y, sint32 direction, sint32 placeType, sint32 stationNum);
|
||||
|
|
|
@ -935,33 +935,15 @@ static bool track_design_save_to_td6_for_tracked_ride(uint8 rideIndex, rct_track
|
|||
{
|
||||
Ride *ride = get_ride(rideIndex);
|
||||
CoordsXYE trackElement;
|
||||
track_begin_end trackBeginEnd;
|
||||
|
||||
if (!ride_try_get_origin_element(rideIndex, &trackElement)) {
|
||||
gGameCommandErrorText = STR_TRACK_TOO_LARGE_OR_TOO_MUCH_SCENERY;
|
||||
return false;
|
||||
}
|
||||
|
||||
sint32 z = 0;
|
||||
// Find the start of the track.
|
||||
// It has to do this as a backwards loop in case this is an incomplete track.
|
||||
if (track_block_get_previous(trackElement.x, trackElement.y, trackElement.element, &trackBeginEnd)) {
|
||||
rct_tile_element* initial_map = trackElement.element;
|
||||
do {
|
||||
CoordsXYE lastGood = {
|
||||
/* .x = */ trackBeginEnd.begin_x,
|
||||
/* .y = */ trackBeginEnd.begin_y,
|
||||
/* .element = */ trackBeginEnd.begin_element
|
||||
};
|
||||
ride_get_start_of_track(&trackElement);
|
||||
|
||||
if (!track_block_get_previous(trackBeginEnd.end_x, trackBeginEnd.end_y, trackBeginEnd.begin_element, &trackBeginEnd)) {
|
||||
trackElement = lastGood;
|
||||
break;
|
||||
}
|
||||
} while (initial_map != trackBeginEnd.begin_element);
|
||||
}
|
||||
|
||||
z = trackElement.element->base_height * 8;
|
||||
sint32 z = trackElement.element->base_height * 8;
|
||||
uint8 track_type = track_element_get_type(trackElement.element);
|
||||
uint8 direction = tile_element_get_direction(trackElement.element);
|
||||
_trackSaveDirection = direction;
|
||||
|
|
Loading…
Reference in New Issue