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