1
0
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:
Rik Smeets
2022-09-23 07:28:55 +02:00
parent 189ebbced7
commit 9e68226df0
2 changed files with 8 additions and 7 deletions

View File

@@ -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;
}
}
}