1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-17 13:02:27 +01:00

Stopped infinite loop in boat_hire_return_point

This commit is contained in:
FlynnsPixel
2015-09-20 17:44:20 +10:00
parent 0bef4f3467
commit 5b99a587d5

View File

@@ -4100,12 +4100,17 @@ bool ride_check_start_and_end_is_station(rct_xy_element *input, rct_xy_element *
*/
void ride_set_boat_hire_return_point(rct_ride *ride, rct_xy_element *startElement)
{
int trackType;
int trackType = -1;
int returnX = startElement->x;
int returnY = startElement->y;
int startX = returnX;
int startY = returnY;
rct_map_element *returnTrackElement = startElement->element;
track_begin_end trackBeginEnd;
while (track_block_get_previous(returnX, returnY, returnTrackElement, &trackBeginEnd)) {
// If previous track is back to the starting x, y, then break loop (otherwise possible infinite loop)
if (trackType != -1 && startX == trackBeginEnd.begin_x && startY == trackBeginEnd.begin_y) break;
int x = trackBeginEnd.begin_x;
int y = trackBeginEnd.begin_y;
int z = trackBeginEnd.begin_z;