diff --git a/apps/openmw/mwworld/esmstore.cpp b/apps/openmw/mwworld/esmstore.cpp index 06a111ebef..33a0ffab60 100644 --- a/apps/openmw/mwworld/esmstore.cpp +++ b/apps/openmw/mwworld/esmstore.cpp @@ -431,7 +431,6 @@ namespace MWWorld { ESM::RefId& refId = refIDs[value.mRefID]; // We manually lower case IDs here for the time being to improve performance. - Misc::StringUtils::lowerCaseInPlace(refId.getRefIdString()); ++mRefCount[std::move(refId)]; } }; diff --git a/components/esm/refid.hpp b/components/esm/refid.hpp index 20d7707b79..a010704a8e 100644 --- a/components/esm/refid.hpp +++ b/components/esm/refid.hpp @@ -12,16 +12,16 @@ namespace ESM void clear() { mId.clear(); } bool empty() const { return mId.empty(); } void swap(RefId& rhs) { mId.swap(rhs.mId); } - bool operator==(const RefId& rhs) const { return mId == rhs.mId; } - void operator=(const RefId& rhs) { mId = rhs.mId; } + bool operator==(const RefId& rhs) const { return ciEqual(*this, rhs); } bool operator<(const RefId& rhs) const { return mId < rhs.mId; } bool operator>(const RefId& rhs) const { return mId > rhs.mId; } static bool ciEqual(const RefId& left, const RefId& right); friend std::ostream& operator<<(std::ostream& os, const RefId& dt); - static RefId stringRefId(const std::string_view& id); //The - std::string& getRefIdString() { return mId; } + //The 2 following functions are used to move back and forth between string and RefID. Used for hard coded RefIds that are as string in the code. + //For serialization, and display. Using explicit conversions make it very clear where in the code we need to convert from string to RefId and Vice versa. + static RefId stringRefId(const std::string_view& id); const std::string& getRefIdString() const { return mId; } diff --git a/components/esmloader/load.cpp b/components/esmloader/load.cpp index adb14efd02..c3d9c280ba 100644 --- a/components/esmloader/load.cpp +++ b/components/esmloader/load.cpp @@ -82,7 +82,6 @@ namespace EsmLoader T record; bool deleted = false; record.load(reader, deleted); - Misc::StringUtils::lowerCaseInPlace(record.mId.getRefIdString()); if (Misc::ResourceHelpers::isHiddenMarker(record.mId.getRefIdString())) return; records.emplace_back(deleted, std::move(record));