From a7d0a8d9d1e94cd9e68b713f7417a2dafbfe88c5 Mon Sep 17 00:00:00 2001 From: "florent.teppe" Date: Thu, 10 Nov 2022 23:29:18 +0100 Subject: [PATCH] Replaced some RefId* => RefId& Rebase fix commit --- apps/openmw/mwclass/npc.cpp | 8 ++++---- apps/openmw/mwdialogue/filter.cpp | 13 +++++++------ apps/openmw/mwdialogue/scripttest.cpp | 2 +- apps/openmw/mwgui/class.cpp | 6 +++--- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/apps/openmw/mwclass/npc.cpp b/apps/openmw/mwclass/npc.cpp index f551ad3078..c8c5e36c34 100644 --- a/apps/openmw/mwclass/npc.cpp +++ b/apps/openmw/mwclass/npc.cpp @@ -506,11 +506,11 @@ namespace MWClass for (std::vector::const_iterator it = parts.begin(); it != parts.end(); ++it) { - const ESM::RefId* partname = female ? &it->mFemale : &it->mMale; - if (partname->empty()) - partname = female ? &it->mMale : &it->mFemale; + const ESM::RefId& partname + = (female && !it->mFemale.empty()) || (!female && it->mMale.empty()) ? it->mFemale : it->mMale; + const ESM::BodyPart* part - = MWBase::Environment::get().getWorld()->getStore().get().search(*partname); + = MWBase::Environment::get().getWorld()->getStore().get().search(partname); if (part && !part->mModel.empty()) models.push_back(Misc::ResourceHelpers::correctMeshPath(part->mModel, vfs)); } diff --git a/apps/openmw/mwdialogue/filter.cpp b/apps/openmw/mwdialogue/filter.cpp index 39bb19471c..3821862ecb 100644 --- a/apps/openmw/mwdialogue/filter.cpp +++ b/apps/openmw/mwdialogue/filter.cpp @@ -29,16 +29,17 @@ namespace { bool matchesStaticFilters(const MWDialogue::SelectWrapper& select, const MWWorld::Ptr& actor) { + const ESM::RefId selectId = ESM::RefId::stringRefId(select.getName()); if (select.getFunction() == MWDialogue::SelectWrapper::Function_NotId) - return !Misc::StringUtils::ciEqual(actor.getCellRef().getRefId(), select.getName()); + return actor.getCellRef().getRefId() != selectId; if (actor.getClass().isNpc()) { if (select.getFunction() == MWDialogue::SelectWrapper::Function_NotFaction) - return !Misc::StringUtils::ciEqual(actor.getClass().getPrimaryFaction(actor), select.getName()); + return actor.getClass().getPrimaryFaction(actor) != selectId; else if (select.getFunction() == MWDialogue::SelectWrapper::Function_NotClass) - return !Misc::StringUtils::ciEqual(actor.get()->mBase->mClass, select.getName()); + return actor.get()->mBase->mClass != selectId; else if (select.getFunction() == MWDialogue::SelectWrapper::Function_NotRace) - return !Misc::StringUtils::ciEqual(actor.get()->mBase->mRace, select.getName()); + return actor.get()->mBase->mRace != selectId; } return true; } @@ -62,7 +63,7 @@ namespace { if (wrapper.getFunction() == MWDialogue::SelectWrapper::Function_Local) { - std::string_view scriptName = actor.getClass().getScript(actor); + const ESM::RefId& scriptName = actor.getClass().getScript(actor); if (scriptName.empty()) return false; const Compiler::Locals& localDefs @@ -196,7 +197,7 @@ bool MWDialogue::Filter::testPlayer(const ESM::DialInfo& info) const { // supports partial matches, just like getPcCell std::string_view playerCell = MWBase::Environment::get().getWorld()->getCellName(player.getCell()); - if (!Misc::StringUtils::ciStartsWith(playerCell, info.mCell)) + if (!Misc::StringUtils::ciStartsWith(playerCell, info.mCell.getRefIdString())) return false; } diff --git a/apps/openmw/mwdialogue/scripttest.cpp b/apps/openmw/mwdialogue/scripttest.cpp index 07a303a5b9..cf9f225db2 100644 --- a/apps/openmw/mwdialogue/scripttest.cpp +++ b/apps/openmw/mwdialogue/scripttest.cpp @@ -156,7 +156,7 @@ namespace MWDialogue else { errorHandler.reset(); - errorHandler.setContext(info.mId + " in " + topic.mId); + errorHandler.setContext(info.mId.getRefIdString() + " in " + topic.mId.getRefIdString()); if (!test(ptr, info, compiled, total, extensions, compilerContext, errorHandler)) Log(Debug::Error) << "Test failed for " << info.mId << " in " << topic.mId << '\n' << info.mResultScript; diff --git a/apps/openmw/mwgui/class.cpp b/apps/openmw/mwgui/class.cpp index a06e4c7266..3c40dc88c9 100644 --- a/apps/openmw/mwgui/class.cpp +++ b/apps/openmw/mwgui/class.cpp @@ -194,11 +194,11 @@ namespace MWGui if (_index == MyGUI::ITEM_NONE) return; - const ESM::RefId* classId = mClassList->getItemDataAt(_index); - if (mCurrentClassId == *classId) + const ESM::RefId& classId = *mClassList->getItemDataAt(_index); + if (mCurrentClassId == classId) return; - mCurrentClassId = *classId; + mCurrentClassId = classId; updateStats(); }