diff --git a/CMakeLists.txt b/CMakeLists.txt
index 74ce3bd06d..eba549e5f0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,9 +68,9 @@ set(OBJECTS_VERSION "1.3.5")
set(OBJECTS_URL "https://github.com/OpenRCT2/objects/releases/download/v${OBJECTS_VERSION}/objects.zip")
set(OBJECTS_SHA1 "58bddc5f845d8c7eb5d9fd25e52ab1fed24c85db")
-set(REPLAYS_VERSION "0.0.69")
+set(REPLAYS_VERSION "0.0.70")
set(REPLAYS_URL "https://github.com/OpenRCT2/replays/releases/download/v${REPLAYS_VERSION}/replays.zip")
-set(REPLAYS_SHA1 "3EC20AA2C90FDEEB08C26B6DA6D111C9C5C9B694")
+set(REPLAYS_SHA1 "09B339E86AAE81580C5AC3E23AC4BC9E030DA076")
option(FORCE32 "Force 32-bit build. It will add `-m32` to compiler flags.")
option(WITH_TESTS "Build tests")
diff --git a/contributors.md b/contributors.md
index f792ab316c..f99cd5b0ad 100644
--- a/contributors.md
+++ b/contributors.md
@@ -200,6 +200,7 @@ The following people are not part of the development team, but have been contrib
* 73 (733737)
* Raymond Zhao (rzhao271)
* Xixiang Chen (jacknull1991)
+* (ReticulatingSplines)
## Toolchain
* (Balletie) - macOS
diff --git a/distribution/changelog.txt b/distribution/changelog.txt
index 9d2cf01509..3c77c20a25 100644
--- a/distribution/changelog.txt
+++ b/distribution/changelog.txt
@@ -8,6 +8,7 @@
- Change: [#18230] Make the large flat to steep pieces available on the corkscrew roller coaster without cheats.
- Change: [#18381] Convert custom invisible paths to the built-in ones.
- Fix: [#14312] Research ride type message incorrect.
+- Fix: [#15969] Guests heading for ride use vanilla behaviour
- Fix: [#17316] Sides of River Rapids’ corners overlay other parts of the track.
- Fix: [#17657] When switching from buying land rights to buying construction rights, grid disables and won't re-enable afterwards.
- Fix: [#17763] Missing validation on invalid characters in file name.
diff --git a/openrct2.proj b/openrct2.proj
index 5bdd85d425..43ae29076a 100644
--- a/openrct2.proj
+++ b/openrct2.proj
@@ -47,8 +47,8 @@
4ab0065e5a4d9f9c77d94718bbdfcfcd5a389da0
https://github.com/OpenRCT2/objects/releases/download/v1.3.5/objects.zip
58bddc5f845d8c7eb5d9fd25e52ab1fed24c85db
- https://github.com/OpenRCT2/replays/releases/download/v0.0.69/replays.zip
- 3EC20AA2C90FDEEB08C26B6DA6D111C9C5C9B694
+ https://github.com/OpenRCT2/replays/releases/download/v0.0.70/replays.zip
+ 09B339E86AAE81580C5AC3E23AC4BC9E030DA076
diff --git a/src/openrct2/entity/Guest.cpp b/src/openrct2/entity/Guest.cpp
index 6cfb559acc..a7edb8e62c 100644
--- a/src/openrct2/entity/Guest.cpp
+++ b/src/openrct2/entity/Guest.cpp
@@ -2047,34 +2047,13 @@ bool Guest::ShouldGoOnRide(Ride* ride, StationIndex entranceNum, bool atQueue, b
return false;
}
}
-
- if (ClimateIsRaining() && !ShouldRideWhileRaining(*ride))
+ else
{
- if (peepAtRide)
- {
- InsertNewThought(PeepThoughtType::NotWhileRaining, ride->id);
- if (HappinessTarget >= 64)
- {
- HappinessTarget -= 8;
- }
- ride->UpdatePopularity(0);
- }
- ChoseNotToGoOnRide(ride, peepAtRide, true);
- return false;
- }
-
- if (!gCheatsIgnoreRideIntensity)
- {
- // Intensity calculations. Even though the max intensity can go up to 15, it's capped
- // at 10.0 (before happiness calculations). A full happiness bar will increase the max
- // intensity and decrease the min intensity by about 2.5.
- ride_rating maxIntensity = std::min(Intensity.GetMaximum() * 100, 1000) + Happiness;
- ride_rating minIntensity = (Intensity.GetMinimum() * 100) - Happiness;
- if (ride->intensity < minIntensity)
+ if (ClimateIsRaining() && !ShouldRideWhileRaining(*ride))
{
if (peepAtRide)
{
- InsertNewThought(PeepThoughtType::MoreThrilling, ride->id);
+ InsertNewThought(PeepThoughtType::NotWhileRaining, ride->id);
if (HappinessTarget >= 64)
{
HappinessTarget -= 8;
@@ -2084,35 +2063,62 @@ bool Guest::ShouldGoOnRide(Ride* ride, StationIndex entranceNum, bool atQueue, b
ChoseNotToGoOnRide(ride, peepAtRide, true);
return false;
}
- if (ride->intensity > maxIntensity)
+ // If it is raining and the ride provides shelter skip the
+ // ride intensity check and get me on a sheltered ride!
+ if (!ClimateIsRaining() || !ShouldRideWhileRaining(*ride))
{
- peep_ride_is_too_intense(this, ride, peepAtRide);
- return false;
- }
-
- // Nausea calculations.
- ride_rating maxNausea = NauseaMaximumThresholds[(EnumValue(NauseaTolerance) & 3)] + Happiness;
-
- if (ride->nausea > maxNausea)
- {
- if (peepAtRide)
+ if (!gCheatsIgnoreRideIntensity)
{
- InsertNewThought(PeepThoughtType::Sickening, ride->id);
- if (HappinessTarget >= 64)
+ // Intensity calculations. Even though the max intensity can go up to 15, it's capped
+ // at 10.0 (before happiness calculations). A full happiness bar will increase the max
+ // intensity and decrease the min intensity by about 2.5.
+ ride_rating maxIntensity = std::min(Intensity.GetMaximum() * 100, 1000) + Happiness;
+ ride_rating minIntensity = (Intensity.GetMinimum() * 100) - Happiness;
+ if (ride->intensity < minIntensity)
{
- HappinessTarget -= 8;
+ if (peepAtRide)
+ {
+ InsertNewThought(PeepThoughtType::MoreThrilling, ride->id);
+ if (HappinessTarget >= 64)
+ {
+ HappinessTarget -= 8;
+ }
+ ride->UpdatePopularity(0);
+ }
+ ChoseNotToGoOnRide(ride, peepAtRide, true);
+ return false;
+ }
+ if (ride->intensity > maxIntensity)
+ {
+ peep_ride_is_too_intense(this, ride, peepAtRide);
+ return false;
}
- ride->UpdatePopularity(0);
- }
- ChoseNotToGoOnRide(ride, peepAtRide, true);
- return false;
- }
- // Very nauseous peeps will only go on very gentle rides.
- if (ride->nausea >= FIXED_2DP(1, 40) && Nausea > 160)
- {
- ChoseNotToGoOnRide(ride, peepAtRide, false);
- return false;
+ // Nausea calculations.
+ ride_rating maxNausea = NauseaMaximumThresholds[(EnumValue(NauseaTolerance) & 3)] + Happiness;
+
+ if (ride->nausea > maxNausea)
+ {
+ if (peepAtRide)
+ {
+ InsertNewThought(PeepThoughtType::Sickening, ride->id);
+ if (HappinessTarget >= 64)
+ {
+ HappinessTarget -= 8;
+ }
+ ride->UpdatePopularity(0);
+ }
+ ChoseNotToGoOnRide(ride, peepAtRide, true);
+ return false;
+ }
+
+ // Very nauseous peeps will only go on very gentle rides.
+ if (ride->nausea >= FIXED_2DP(1, 40) && Nausea > 160)
+ {
+ ChoseNotToGoOnRide(ride, peepAtRide, false);
+ return false;
+ }
+ }
}
}
}
diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp
index 3b3a7fc71f..d494f49270 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 "6"
+#define NETWORK_STREAM_VERSION "7"
#define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION