From 0e94ff4a7305b3497f0d0167a9ba951ff879b98f Mon Sep 17 00:00:00 2001 From: Alexei Kotov <alexdobrohotov@yandex.ru> Date: Tue, 15 Aug 2023 05:09:59 +0300 Subject: [PATCH] Support unsigned int GMSTs --- components/esm4/loadgmst.cpp | 6 ++++++ components/esm4/loadgmst.hpp | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/components/esm4/loadgmst.cpp b/components/esm4/loadgmst.cpp index b403d09be9..087eed6057 100644 --- a/components/esm4/loadgmst.cpp +++ b/components/esm4/loadgmst.cpp @@ -44,6 +44,12 @@ namespace ESM4 reader.getZString(value); return value; } + case 'u': + { + std::uint32_t value = 0; + reader.get(value); + return value; + } default: throw std::runtime_error( "Unsupported ESM4 GMST (" + formId.toString() + ") data type: " + std::string(editorId)); diff --git a/components/esm4/loadgmst.hpp b/components/esm4/loadgmst.hpp index a8790bad26..2bc71a734e 100644 --- a/components/esm4/loadgmst.hpp +++ b/components/esm4/loadgmst.hpp @@ -14,7 +14,7 @@ namespace ESM4 struct GameSetting { - using Data = std::variant<std::monostate, bool, float, std::int32_t, std::string>; + using Data = std::variant<std::monostate, bool, float, std::int32_t, std::string, std::uint32_t>; ESM::FormId mId; // from the header std::uint32_t mFlags; // from the header, see enum type RecordFlag for details