diff --git a/apps/openmw/mwrender/objectpaging.cpp b/apps/openmw/mwrender/objectpaging.cpp index d2b66b78d9..cf1d689911 100644 --- a/apps/openmw/mwrender/objectpaging.cpp +++ b/apps/openmw/mwrender/objectpaging.cpp @@ -440,7 +440,10 @@ namespace MWRender if (moved) continue; - if (std::find(cell->mMovedRefs.begin(), cell->mMovedRefs.end(), ref.mRefNum) != cell->mMovedRefs.end()) continue; + if (std::find(cell->mMovedRefs.begin(), cell->mMovedRefs.end(), ref.mRefNum) != cell->mMovedRefs.end()) + continue; + + Misc::StringUtils::lowerCaseInPlace(ref.mRefID); int type = store.findStatic(ref.mRefID); if (!typeFilter(type,size>=2)) continue; if (deleted) { refs.erase(ref.mRefNum); continue; } @@ -454,7 +457,12 @@ namespace MWRender } for (auto [ref, deleted] : cell->mLeasedRefs) { - if (deleted) { refs.erase(ref.mRefNum); continue; } + if (deleted) + { + refs.erase(ref.mRefNum); + continue; + } + Misc::StringUtils::lowerCaseInPlace(ref.mRefID); int type = store.findStatic(ref.mRefID); if (!typeFilter(type,size>=2)) continue; refs[ref.mRefNum] = std::move(ref); diff --git a/apps/openmw/mwworld/esmstore.cpp b/apps/openmw/mwworld/esmstore.cpp index 6308c9a547..c670bead9c 100644 --- a/apps/openmw/mwworld/esmstore.cpp +++ b/apps/openmw/mwworld/esmstore.cpp @@ -257,7 +257,8 @@ void ESMStore::setUp(bool validateRecords) } if (mStaticIds.empty()) - mStaticIds = mIds; + for (const auto& [k, v] : mIds) + mStaticIds.emplace(Misc::StringUtils::lowerCase(k), v); mSkills.setUp(); mMagicEffects.setUp(); diff --git a/apps/openmw/mwworld/esmstore.hpp b/apps/openmw/mwworld/esmstore.hpp index 8582a1daca..07f860e6de 100644 --- a/apps/openmw/mwworld/esmstore.hpp +++ b/apps/openmw/mwworld/esmstore.hpp @@ -77,7 +77,7 @@ namespace MWWorld // maps the id name to the record type. using IDMap = std::unordered_map; IDMap mIds; - IDMap mStaticIds; + std::unordered_map mStaticIds; std::unordered_map mRefCount;