diff --git a/src/openrct2/world/Footpath.cpp b/src/openrct2/world/Footpath.cpp index 30f4991be1..022cbe39c8 100644 --- a/src/openrct2/world/Footpath.cpp +++ b/src/openrct2/world/Footpath.cpp @@ -1082,6 +1082,7 @@ void footpath_chain_ride_queue( auto targetQueuePos = curQueuePos + CoordsDirectionDelta[direction]; tileElement = map_get_first_element_at(targetQueuePos); + bool foundQueue = false; if (tileElement != nullptr) { do @@ -1097,7 +1098,8 @@ void footpath_chain_ride_queue( if (tileElement->AsPath()->GetSlopeDirection() != direction) break; } - goto foundNextPath; + foundQueue = true; + break; } if (tileElement->GetBaseZ() == baseZ - LAND_HEIGHT_STEP) { @@ -1108,13 +1110,14 @@ void footpath_chain_ride_queue( break; baseZ -= LAND_HEIGHT_STEP; - goto foundNextPath; + foundQueue = true; + break; } } while (!(tileElement++)->IsLastForTile()); } - break; + if (!foundQueue) + break; - foundNextPath: if (tileElement->AsPath()->IsQueue()) { // Fix #2051: Stop queue paths that are already connected to two other tiles