diff --git a/Source/Contents/MapSkyMgr.cpp b/Source/Contents/MapSkyMgr.cpp index 9df6a06b..2d168c78 100644 --- a/Source/Contents/MapSkyMgr.cpp +++ b/Source/Contents/MapSkyMgr.cpp @@ -11,6 +11,7 @@ #include "Resource/World/TerrainResource.h" #include "Utility/Math/AffineMatrix.h" +#include #include #include @@ -41,6 +42,11 @@ CWeatherEffect g_weatherEffect; // GLOBAL: gl_24633 float g_depthAverageHalf = 0.5f; +// GLOBAL: gl_25254 +std::vector g_registeredLowercaseNames; + +static_assert(sizeof(std::vector) == 12); + // OFFSET: 0x005B8D50 // FUNCTION: fn_03431 CMapSkyMgr::CMapSkyMgr() : m_script(nullptr) { @@ -469,3 +475,24 @@ CMapSkyMgr* GetMapSkyMgr() { // FUNCTION: fn_24378 void IgnoreNull() { } + +// OFFSET: 0x00E5D110 +// FUNCTION: fn_24379 +void RegisterLowercaseName(const char* name) { + if (!name) { + return; + } + + std::string lowered(name); + for (char& character : lowered) { + character = static_cast(std::tolower(static_cast(character))); + } + + for (const std::string& entry : g_registeredLowercaseNames) { + if (entry == lowered) { + return; + } + } + + g_registeredLowercaseNames.push_back(lowered.c_str()); +}