diff --git a/src/openrct2/localisation/Formatter.h b/src/openrct2/localisation/Formatter.h index 1a9e35bcb5..bc67042eaf 100644 --- a/src/openrct2/localisation/Formatter.h +++ b/src/openrct2/localisation/Formatter.h @@ -9,6 +9,7 @@ #pragma once +#include "../Identifiers.h" #include "../common.h" #include "../core/Guard.hpp" #include "../core/String.hpp" @@ -17,7 +18,6 @@ #include extern thread_local uint8_t gCommonFormatArgs[80]; -enum class RideId : uint16_t; class Formatter { @@ -85,23 +85,27 @@ public: // clang-format off static_assert( - std::is_same_v::type, char*> || - std::is_same_v::type, const char*> || - std::is_same_v::type, int16_t> || - std::is_same_v::type, int32_t> || - std::is_same_v::type, money32> || - std::is_same_v::type, money64> || - std::is_same_v::type, RideId> || - std::is_same_v::type, rct_string_id> || - std::is_same_v::type, uint16_t> || - std::is_same_v::type, uint32_t> || - std::is_same_v::type, utf8*> || - std::is_same_v::type, const utf8*> + std::is_same_v, char*> || + std::is_same_v, const char*> || + std::is_same_v, int16_t> || + std::is_same_v, int32_t> || + std::is_same_v, money32> || + std::is_same_v, money64> || + std::is_same_v, RideId> || + std::is_same_v, rct_string_id> || + std::is_same_v, uint16_t> || + std::is_same_v, uint32_t> || + std::is_same_v, utf8*> || + std::is_same_v, const utf8*> ); // clang-format on uint64_t convertedValue; - if constexpr (std::is_integral_v || std::is_enum_v) + if constexpr (std::is_same_v, RideId>) + { + convertedValue = static_cast(value.ToUnderlying()); + } + else if constexpr (std::is_integral_v || std::is_enum_v) { convertedValue = static_cast(value); }