diff --git a/CMakeLists.txt b/CMakeLists.txt
index 95b962a9fc..7cfd7496d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -76,9 +76,9 @@ set(OPENMSX_VERSION "1.0.1")
set(OPENMSX_URL "https://github.com/OpenRCT2/OpenMusic/releases/download/v${OPENMSX_VERSION}/openmusic.zip")
set(OPENMSX_SHA1 "8ff94490180e2fbfdd13a4130eb300da726ca406")
-set(REPLAYS_VERSION "0.0.70")
+set(REPLAYS_VERSION "0.0.72")
set(REPLAYS_URL "https://github.com/OpenRCT2/replays/releases/download/v${REPLAYS_VERSION}/replays.zip")
-set(REPLAYS_SHA1 "09B339E86AAE81580C5AC3E23AC4BC9E030DA076")
+set(REPLAYS_SHA1 "93744627E3F1FE5ED6317D5A292D15B63AA71765")
option(FORCE32 "Force 32-bit build. It will add `-m32` to compiler flags.")
option(WITH_TESTS "Build tests")
diff --git a/distribution/changelog.txt b/distribution/changelog.txt
index a9162ffbdc..ca1b07e23b 100644
--- a/distribution/changelog.txt
+++ b/distribution/changelog.txt
@@ -21,6 +21,7 @@
- Fix: [#18971] New Game does not prompt for save before quitting.
- Fix: [#19025] Park loan behaves inconsistently with non-round and out-of-bounds values.
- Fix: [#19026] Park loan is clamped to a 32-bit integer.
+- Fix: [#19068] Guests may not join queues correctly.
- Fix: [#19091] [Plugin] Remote plugins in multiplayer servers do not unload properly.
- Fix: [#19112] Clearing the last character in the Object Selection filter does not properly reset it.
- Fix: [#19112] Text boxes not updated with empty strings in Track List, Server List, and Start Server windows.
diff --git a/openrct2.proj b/openrct2.proj
index 7c512c6f98..ee458c3d91 100644
--- a/openrct2.proj
+++ b/openrct2.proj
@@ -51,8 +51,8 @@
8f04aea33f8034131c3069f6accacce0d94f80c1
https://github.com/OpenRCT2/OpenMusic/releases/download/v1.0.1/openmusic.zip
8ff94490180e2fbfdd13a4130eb300da726ca406
- https://github.com/OpenRCT2/replays/releases/download/v0.0.70/replays.zip
- 09B339E86AAE81580C5AC3E23AC4BC9E030DA076
+ https://github.com/OpenRCT2/replays/releases/download/v0.0.72/replays.zip
+ 93744627E3F1FE5ED6317D5A292D15B63AA71765
diff --git a/src/openrct2/entity/Guest.cpp b/src/openrct2/entity/Guest.cpp
index 345ff9aadb..2d34a84e08 100644
--- a/src/openrct2/entity/Guest.cpp
+++ b/src/openrct2/entity/Guest.cpp
@@ -7318,10 +7318,10 @@ bool Guest::UpdateQueuePosition(PeepActionType previous_action)
return false;
}
- if (sprite_direction != guestNext->sprite_direction)
+ if (PeepDirection != guestNext->PeepDirection)
return false;
- switch (guestNext->sprite_direction / 8)
+ switch (guestNext->PeepDirection)
{
case 0:
if (x >= guestNext->x)
diff --git a/src/openrct2/entity/Peep.cpp b/src/openrct2/entity/Peep.cpp
index 575fe00214..235064f357 100644
--- a/src/openrct2/entity/Peep.cpp
+++ b/src/openrct2/entity/Peep.cpp
@@ -2237,6 +2237,11 @@ static void PeepInteractWithPath(Peep* peep, const CoordsXYE& coords)
}
}
+ // Force set centre of tile to prevent issues with guests accidentally skipping the queue
+ auto queueTileCentre = CoordsXY{ CoordsXY{ guest->NextLoc } + CoordsDirectionDelta[guest->PeepDirection] }
+ .ToTileCentre();
+ guest->SetDestination(queueTileCentre);
+
PeepFootpathMoveForward(guest, { coords, tile_element }, vandalism_present);
}
else
diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp
index 8a49708fec..0038aa7cb9 100644
--- a/src/openrct2/network/NetworkBase.cpp
+++ b/src/openrct2/network/NetworkBase.cpp
@@ -43,7 +43,7 @@
// 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