From 23f4f720471451d8a9e63c01a7b4b76b1b0a0394 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Sun, 5 Sep 2021 16:59:42 +0300 Subject: [PATCH 1/4] Fix enum serialization not using byte swap --- src/openrct2/core/DataSerialiserTraits.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/openrct2/core/DataSerialiserTraits.h b/src/openrct2/core/DataSerialiserTraits.h index bb4b638724..7cea7fe8f5 100644 --- a/src/openrct2/core/DataSerialiserTraits.h +++ b/src/openrct2/core/DataSerialiserTraits.h @@ -38,19 +38,23 @@ template struct DataSerializerTraits_t template struct DataSerializerTraits_enum { + using TUnderlying = std::underlying_type_t; + static void encode(OpenRCT2::IStream* stream, const T& val) { - stream->Write(&val); + TUnderlying temp = ByteSwapBE(static_cast(val)); + stream->Write(&temp); } static void decode(OpenRCT2::IStream* stream, T& val) { - stream->Read(&val); + TUnderlying temp; + stream->Read(&temp); + val = static_cast(ByteSwapBE(temp)); } static void log(OpenRCT2::IStream* stream, const T& val) { - using underlying = std::underlying_type_t; std::stringstream ss; - ss << std::hex << std::setw(sizeof(underlying) * 2) << std::setfill('0') << static_cast(val); + ss << std::hex << std::setw(sizeof(TUnderlying) * 2) << std::setfill('0') << static_cast(val); std::string str = ss.str(); stream->Write(str.c_str(), str.size()); From b8d1f86f3f91316a9ad78137d571ae4229240f1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Sun, 5 Sep 2021 17:21:51 +0300 Subject: [PATCH 2/4] Use correct underlying type for Vehicle::Status enum --- src/openrct2/ride/Vehicle.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openrct2/ride/Vehicle.h b/src/openrct2/ride/Vehicle.h index bc04b53ddf..2146af930d 100644 --- a/src/openrct2/ride/Vehicle.h +++ b/src/openrct2/ride/Vehicle.h @@ -63,7 +63,7 @@ struct Vehicle : EntityBase Tail, }; - enum class Status + enum class Status : uint8_t { MovingToEndOfStation, WaitingForPassengers, From c844bf91423d718e49a348dc78081d3277f66987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Sun, 5 Sep 2021 17:22:52 +0300 Subject: [PATCH 3/4] Bump up network version --- src/openrct2/network/NetworkBase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index f60ab85a15..691c0467e9 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -37,7 +37,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 "7" +#define NETWORK_STREAM_VERSION "8" #define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION static Peep* _pickup_peep = nullptr; From 745885e78eca33b08407f25631246646b3919ca0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Sun, 5 Sep 2021 17:49:42 +0300 Subject: [PATCH 4/4] Update replays --- CMakeLists.txt | 4 ++-- openrct2.proj | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d7e6e4d0bd..ab47c2c638 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,9 +50,9 @@ set(OBJECTS_VERSION "1.0.21") set(OBJECTS_URL "https://github.com/OpenRCT2/objects/releases/download/v${OBJECTS_VERSION}/objects.zip") set(OBJECTS_SHA1 "c38af45d51a6e440386180feacf76c64720b6ac5") -set(REPLAYS_VERSION "0.0.49") +set(REPLAYS_VERSION "0.0.50") set(REPLAYS_URL "https://github.com/OpenRCT2/replays/releases/download/v${REPLAYS_VERSION}/replays.zip") -set(REPLAYS_SHA1 "004AE4D38D1326913AF5DE7A90E8AF31DD31BF94") +set(REPLAYS_SHA1 "C569C73147F1C1554807B6FBE74C39A4F0E20EAF") option(FORCE32 "Force 32-bit build. It will add `-m32` to compiler flags.") option(WITH_TESTS "Build tests") diff --git a/openrct2.proj b/openrct2.proj index 294fb087f3..504b00508c 100644 --- a/openrct2.proj +++ b/openrct2.proj @@ -48,8 +48,8 @@ 304d13a126c15bf2c86ff13b81a2f2cc1856ac8d https://github.com/OpenRCT2/objects/releases/download/v1.0.21/objects.zip c38af45d51a6e440386180feacf76c64720b6ac5 - https://github.com/OpenRCT2/replays/releases/download/v0.0.49/replays.zip - 004AE4D38D1326913AF5DE7A90E8AF31DD31BF94 + https://github.com/OpenRCT2/replays/releases/download/v0.0.50/replays.zip + C569C73147F1C1554807B6FBE74C39A4F0E20EAF