From b6cd6402cc862c3eb6871423e738a82d62a3b2a3 Mon Sep 17 00:00:00 2001 From: elsid Date: Fri, 26 May 2023 19:26:23 +0200 Subject: [PATCH] Use ranged for loop --- apps/openmw/mwworld/worldmodel.cpp | 22 +++++++++++----------- apps/openmw/mwworld/worldmodel.hpp | 4 +--- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/apps/openmw/mwworld/worldmodel.cpp b/apps/openmw/mwworld/worldmodel.cpp index fe2ed4babe..10f72ef444 100644 --- a/apps/openmw/mwworld/worldmodel.cpp +++ b/apps/openmw/mwworld/worldmodel.cpp @@ -334,14 +334,14 @@ MWWorld::CellStore& MWWorld::WorldModel::getCellByPosition( MWWorld::Ptr MWWorld::WorldModel::getPtr(const ESM::RefId& name) { - // First check the cache - for (IdCache::iterator iter(mIdCache.begin()); iter != mIdCache.end(); ++iter) - if (iter->first == name && iter->second) - { - Ptr ptr = iter->second->getPtr(name); - if (!ptr.isEmpty()) - return ptr; - } + for (const auto& [cachedId, cellStore] : mIdCache) + { + if (cachedId != name || cellStore == nullptr) + continue; + Ptr ptr = cellStore->getPtr(name); + if (!ptr.isEmpty()) + return ptr; + } // Then check cells that are already listed // Search in reverse, this is a workaround for an ambiguous chargen_plank reference in the vanilla game. @@ -423,10 +423,10 @@ int MWWorld::WorldModel::countSavedGameRecords() const void MWWorld::WorldModel::write(ESM::ESMWriter& writer, Loading::Listener& progress) const { - for (auto iter(mCells.begin()); iter != mCells.end(); ++iter) - if (iter->second.hasState()) + for (auto& [id, cellStore] : mCells) + if (cellStore.hasState()) { - writeCell(writer, iter->second); + writeCell(writer, cellStore); progress.increaseProgress(); } } diff --git a/apps/openmw/mwworld/worldmodel.hpp b/apps/openmw/mwworld/worldmodel.hpp index 24e6a8afed..496537fdf3 100644 --- a/apps/openmw/mwworld/worldmodel.hpp +++ b/apps/openmw/mwworld/worldmodel.hpp @@ -89,14 +89,12 @@ namespace MWWorld bool readRecord(ESM::ESMReader& reader, uint32_t type, const std::map& contentFileMap); private: - using IdCache = std::vector>; - const MWWorld::ESMStore& mStore; ESM::ReadersCache& mReaders; mutable std::unordered_map mCells; mutable std::map mInteriors; mutable std::map mExteriors; - IdCache mIdCache; + std::vector> mIdCache; std::size_t mIdCacheIndex = 0; std::unordered_map mPtrIndex; std::size_t mPtrIndexUpdateCounter = 0;