mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-18 20:43:04 +01:00
Fix #10535: Guests stuck at some level crossings
The location of the back vehicle itself should be included in determining whether to clear the 'blocked by vehicle' flag on footpath. Otherwise, in specific cases, blocked footpath can be missed and therefore this flag wouldn't ever be cleared.
This commit is contained in:
@@ -9258,18 +9258,18 @@ void Vehicle::UpdateCrossings() const
|
||||
uint8_t freeCount = travellingForwards ? 3 : 1;
|
||||
while (freeCount-- > 0)
|
||||
{
|
||||
if (travellingForwards && track_block_get_previous(xyElement, &output))
|
||||
{
|
||||
xyElement.x = output.begin_x;
|
||||
xyElement.y = output.begin_y;
|
||||
xyElement.element = output.begin_element;
|
||||
}
|
||||
|
||||
auto* pathElement = map_get_path_element_at(TileCoordsXYZ(CoordsXYZ{ xyElement, xyElement.element->GetBaseZ() }));
|
||||
if (pathElement != nullptr)
|
||||
{
|
||||
pathElement->SetIsBlockedByVehicle(false);
|
||||
}
|
||||
|
||||
if (travellingForwards && freeCount > 0 && track_block_get_previous(xyElement, &output))
|
||||
{
|
||||
xyElement.x = output.begin_x;
|
||||
xyElement.y = output.begin_y;
|
||||
xyElement.element = output.begin_element;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user