From 3810ade67a7f473fcc8da9fc20afd8943e74784a Mon Sep 17 00:00:00 2001 From: Capostrophic Date: Sun, 3 Jun 2018 10:50:10 +0300 Subject: [PATCH] Don't make unnecessary faction ID searches --- apps/openmw/mwmechanics/mechanicsmanagerimp.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp b/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp index 25fc5c7049..8da2c86d24 100644 --- a/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp +++ b/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp @@ -1000,11 +1000,18 @@ namespace MWMechanics const OwnerMap& owners = it->second; const std::string ownerid = ptr.getCellRef().getRefId(); - const std::string factionid = ptr.getClass().getPrimaryFaction(ptr); OwnerMap::const_iterator ownerFound = owners.find(std::make_pair(Misc::StringUtils::lowerCase(ownerid), false)); - OwnerMap::const_iterator factionOwnerFound = owners.find(std::make_pair(Misc::StringUtils::lowerCase(factionid), true)); + if (ownerFound != owners.end()) + return true; - return ownerFound != owners.end() || factionOwnerFound != owners.end(); + const std::string factionid = ptr.getClass().getPrimaryFaction(ptr); + if (!factionid.empty()) + { + OwnerMap::const_iterator factionOwnerFound = owners.find(std::make_pair(Misc::StringUtils::lowerCase(factionid), true)); + return factionOwnerFound != owners.end(); + } + + return false; } void MechanicsManager::confiscateStolenItemToOwner(const MWWorld::Ptr &player, const MWWorld::Ptr &item, const MWWorld::Ptr& victim, int count)