diff --git a/src/openrct2/world/Map.cpp b/src/openrct2/world/Map.cpp index 28c6075810..875484769e 100644 --- a/src/openrct2/world/Map.cpp +++ b/src/openrct2/world/Map.cpp @@ -1383,7 +1383,18 @@ std::unique_ptr MapCanConstructWithClearAt( { if (tileElement->GetOccupiedQuadrants() & (quarterTile.GetBaseQuarterOccupied())) { - goto loc_68BABC; + if (MapLoc68BABCShouldContinue( + tileElement, pos, clearFunc, flags, res->Cost, crossingMode, canBuildCrossing)) + { + continue; + } + + if (tileElement != nullptr) + { + map_obstruction_set_error_text(tileElement, *res); + res->Error = GameActions::Status::NoClearance; + } + return res; } } continue; @@ -1484,7 +1495,7 @@ std::unique_ptr MapCanConstructWithClearAt( continue; } } - loc_68BABC: + if (MapLoc68BABCShouldContinue(tileElement, pos, clearFunc, flags, res->Cost, crossingMode, canBuildCrossing)) { continue;