From 000a9694f9aa542d361f70d025a63c1ffd24115b Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 6 Dec 2018 06:56:57 +0100 Subject: [PATCH] Fix DataSerialiser not accepting temporary values. --- src/openrct2/core/DataSerialiser.h | 4 ++-- src/openrct2/core/DataSerialiserTraits.h | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/openrct2/core/DataSerialiser.h b/src/openrct2/core/DataSerialiser.h index dcae7c2331..65a0372a7f 100644 --- a/src/openrct2/core/DataSerialiser.h +++ b/src/openrct2/core/DataSerialiser.h @@ -56,13 +56,13 @@ public: if (!_isLogging) { if (_isSaving) - DataSerializerTraits::encode(_activeStream, const_cast(data)); + DataSerializerTraits::encode(_activeStream, data); else DataSerializerTraits::decode(_activeStream, const_cast(data)); } else { - DataSerializerTraits::log(_activeStream, const_cast(data)); + DataSerializerTraits::log(_activeStream, data); } return *this; diff --git a/src/openrct2/core/DataSerialiserTraits.h b/src/openrct2/core/DataSerialiserTraits.h index 019c43bc63..80b2fb6ab6 100644 --- a/src/openrct2/core/DataSerialiserTraits.h +++ b/src/openrct2/core/DataSerialiserTraits.h @@ -40,7 +40,7 @@ template struct DataSerializerTraitsIntegral stream->Read(&temp); val = ByteSwapBE(temp); } - static void log(IStream* stream, T& val) + static void log(IStream* stream, const T& val) { char temp[32] = {}; if constexpr (sizeof(T) == 1) @@ -68,7 +68,7 @@ template<> struct DataSerializerTraits { stream->Read(&val); } - static void log(IStream* stream, bool& val) + static void log(IStream* stream, const bool& val) { if (val) stream->Write("true", 4); @@ -142,7 +142,7 @@ template<> struct DataSerializerTraits stream->Read(&temp); val.id = ByteSwapBE(temp); } - static void log(IStream* stream, NetworkPlayerId_t& val) + static void log(IStream* stream, const NetworkPlayerId_t& val) { char playerId[28] = {}; snprintf(playerId, sizeof(playerId), "%u", val.id); @@ -176,7 +176,7 @@ template<> struct DataSerializerTraits stream->Read(&temp); val.id = ByteSwapBE(temp); } - static void log(IStream* stream, NetworkRideId_t& val) + static void log(IStream* stream, const NetworkRideId_t& val) { char rideId[28] = {}; snprintf(rideId, sizeof(rideId), "%u", val.id); @@ -208,7 +208,7 @@ template struct DataSerializerTraits> DataSerializerTraits s; s.decode(stream, tag.Data()); } - static void log(IStream* stream, DataSerialiserTag& tag) + static void log(IStream* stream, const DataSerialiserTag& tag) { const char* name = tag.Name(); stream->Write(name, strlen(name)); @@ -242,7 +242,7 @@ template<> struct DataSerializerTraits val.Write(buf.get(), length); } - static void log(IStream* stream, MemoryStream& tag) + static void log(IStream* stream, const MemoryStream& tag) { } };