From bba54d2ecc78bc86a5bc1a04445d687c0a8c3d43 Mon Sep 17 00:00:00 2001 From: Rik Smeets <30838294+rik-smeets@users.noreply.github.com> Date: Sat, 8 Oct 2022 21:46:58 +0200 Subject: [PATCH] Fix guests 'waiting' on extended railway crossings On extended railway crossings, guests would stop to 'wait' for the passing train, which would then phase right through them. This change at least allows guests a chance to get to a safe place. --- distribution/changelog.txt | 1 + src/openrct2/entity/Peep.cpp | 6 ++++++ src/openrct2/network/NetworkBase.cpp | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/distribution/changelog.txt b/distribution/changelog.txt index b05a7855be..d547b05b37 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -5,6 +5,7 @@ - Fix: [#18064] Unable to dismiss notification messages. - Fix: [#18122] Ghosts count towards “Great scenery!” guest thought. - Fix: [#18134] Underground on-ride photo section partially clips through adjacent terrain edge. +- Fix: [#18257] Guests ‘waiting’ on extended railway crossings. - Improved: [#18192, #18214] Tycoon Park has been added Extras tab, Competition scenarios have received their own section. - Change: [#18230] Make the large flat to steep pieces available on the corkscrew roller coaster without cheats. diff --git a/src/openrct2/entity/Peep.cpp b/src/openrct2/entity/Peep.cpp index 849e6af060..2c11923675 100644 --- a/src/openrct2/entity/Peep.cpp +++ b/src/openrct2/entity/Peep.cpp @@ -324,6 +324,12 @@ bool Peep::CheckForPath() bool Peep::PathIsBlockedByVehicle() { auto curPos = TileCoordsXYZ(GetLocation()); + if (FootpathIsBlockedByVehicle(curPos)) + { + // If current position is blocked, try to get out of the way + return false; + } + auto dstPos = TileCoordsXYZ(CoordsXYZ{ GetDestination(), NextLoc.z }); if ((curPos.x != dstPos.x || curPos.y != dstPos.y) && FootpathIsBlockedByVehicle(dstPos)) { diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index fda3b3c29e..0dd277ceeb 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -42,7 +42,7 @@ // This string specifies which version of network stream current build uses. // It is used for making sure only compatible builds get connected, even within // single OpenRCT2 version. -#define NETWORK_STREAM_VERSION "2" +#define NETWORK_STREAM_VERSION "3" #define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION static Peep* _pickup_peep = nullptr;