From 62d8fe3fc26ca376ed5dd0659538c0a68f5766a6 Mon Sep 17 00:00:00 2001 From: fteppe Date: Wed, 12 Oct 2022 19:45:23 +0200 Subject: [PATCH] changed a few hardcoded refIds used in mutliple places to be defined only once in a variable --- apps/essimporter/importer.cpp | 3 ++- .../opencs/model/tools/referenceablecheck.cpp | 3 ++- apps/openmw/mwclass/misc.cpp | 11 ++++++----- apps/openmw/mwgui/bookwindow.cpp | 3 ++- apps/openmw/mwgui/dialogue.cpp | 7 ++++--- apps/openmw/mwgui/journalwindow.cpp | 19 ++++++++++--------- apps/openmw/mwgui/mainmenu.cpp | 3 ++- apps/openmw/mwinput/controllermanager.cpp | 3 ++- apps/openmw/mwinput/mousemanager.cpp | 3 ++- apps/openmw/mwlua/types/types.cpp | 3 ++- .../mwmechanics/mechanicsmanagerimp.cpp | 3 ++- apps/openmw/mwrender/characterpreview.cpp | 3 ++- apps/openmw/mwscript/aiextensions.cpp | 3 ++- apps/openmw/mwscript/containerextensions.cpp | 8 ++++---- apps/openmw/mwworld/esmstore.cpp | 7 ++++--- apps/openmw/mwworld/player.cpp | 3 ++- apps/openmw/mwworld/worldimp.cpp | 11 ++++++----- components/CMakeLists.txt | 2 +- components/esm/refidhardcoded.cpp | 17 +++++++++++++++++ components/esm/refidhardcoded.hpp | 12 ++++++++++++ 20 files changed, 86 insertions(+), 41 deletions(-) create mode 100644 components/esm/refidhardcoded.cpp create mode 100644 components/esm/refidhardcoded.hpp diff --git a/apps/essimporter/importer.cpp b/apps/essimporter/importer.cpp index 7ac0b1e1a7..ef96d8ad11 100644 --- a/apps/essimporter/importer.cpp +++ b/apps/essimporter/importer.cpp @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -397,7 +398,7 @@ namespace ESSImport } writer.startRecord(ESM::REC_NPC_); - context.mPlayerBase.mId = ESM::RefId::stringRefId("player"); + context.mPlayerBase.mId = ESM::sPlayerId; context.mPlayerBase.save(writer); writer.endRecord(ESM::REC_NPC_); diff --git a/apps/opencs/model/tools/referenceablecheck.cpp b/apps/opencs/model/tools/referenceablecheck.cpp index 5aa3bbe439..5eda9fb82d 100644 --- a/apps/opencs/model/tools/referenceablecheck.cpp +++ b/apps/opencs/model/tools/referenceablecheck.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include "../prefs/state.hpp" @@ -681,7 +682,7 @@ void CSMTools::ReferenceableCheckStage::npcCheck( CSMWorld::UniversalId id(CSMWorld::UniversalId::Type_Npc, npc.mId); // Detect if player is present - if (npc.mId == ESM::RefId::stringRefId("player")) // Happy now, scrawl? + if (npc.mId == ESM::sPlayerId) // Happy now, scrawl? mPlayerPresent = true; // Skip "Base" records (setting!) diff --git a/apps/openmw/mwclass/misc.cpp b/apps/openmw/mwclass/misc.cpp index 702a9947a0..df987d7632 100644 --- a/apps/openmw/mwclass/misc.cpp +++ b/apps/openmw/mwclass/misc.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include @@ -35,11 +36,11 @@ namespace MWClass bool Miscellaneous::isGold(const MWWorld::ConstPtr& ptr) const { - return ptr.getCellRef().getRefId() == ESM::RefId::stringRefId("gold_001") - || ptr.getCellRef().getRefId() == ESM::RefId::stringRefId("gold_005") - || ptr.getCellRef().getRefId() == ESM::RefId::stringRefId("gold_010") - || ptr.getCellRef().getRefId() == ESM::RefId::stringRefId("gold_025") - || ptr.getCellRef().getRefId() == ESM::RefId::stringRefId("gold_100"); + return ptr.getCellRef().getRefId() == ESM::sGoldId001 + || ptr.getCellRef().getRefId() == ESM::sGoldId005 + || ptr.getCellRef().getRefId() == ESM::sGoldId010 + || ptr.getCellRef().getRefId() == ESM::sGoldId025 + || ptr.getCellRef().getRefId() == ESM::sGoldId100; } void Miscellaneous::insertObjectRendering( diff --git a/apps/openmw/mwgui/bookwindow.cpp b/apps/openmw/mwgui/bookwindow.cpp index 498a52c6d4..92bd30866e 100644 --- a/apps/openmw/mwgui/bookwindow.cpp +++ b/apps/openmw/mwgui/bookwindow.cpp @@ -4,6 +4,7 @@ #include #include +#include #include "../mwbase/environment.hpp" #include "../mwbase/windowmanager.hpp" @@ -202,7 +203,7 @@ namespace MWGui { if (mCurrentPage > 0) { - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("book page")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sBookPageSoundId); --mCurrentPage; diff --git a/apps/openmw/mwgui/dialogue.cpp b/apps/openmw/mwgui/dialogue.cpp index f6d0513ac1..b123858839 100644 --- a/apps/openmw/mwgui/dialogue.cpp +++ b/apps/openmw/mwgui/dialogue.cpp @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -278,19 +279,19 @@ namespace MWGui void Choice::activated() { - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sMenuClickSoundId); eventChoiceActivated(mChoiceId); } void Topic::activated() { - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sMenuClickSoundId); eventTopicActivated(mTopicId); } void Goodbye::activated() { - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sMenuClickSoundId); eventActivated(); } diff --git a/apps/openmw/mwgui/journalwindow.cpp b/apps/openmw/mwgui/journalwindow.cpp index f60d3afba5..626de9e955 100644 --- a/apps/openmw/mwgui/journalwindow.cpp +++ b/apps/openmw/mwgui/journalwindow.cpp @@ -10,6 +10,7 @@ #include #include +#include #include #include @@ -413,7 +414,7 @@ namespace mOptionsMode = false; mTopicsMode = false; - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("book page")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sBookPageSoundId); } void notifyTopicSelected(const ESM::RefId& topic, int id) @@ -444,7 +445,7 @@ namespace mOptionsMode = false; - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("book page")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sBookPageSoundId); } void notifyOptions(MyGUI::Widget* _sender) @@ -472,7 +473,7 @@ namespace assert(mStates.size() > 1); popBook(); - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("book page")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sBookPageSoundId); } void notifyIndexLinkClicked(MWGui::TypesetBook::InteractiveId index) @@ -493,7 +494,7 @@ namespace list->adjustSize(); - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("book page")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sBookPageSoundId); } void notifyTopics(MyGUI::Widget* _sender) @@ -508,7 +509,7 @@ namespace setVisible(ShowAllBTN, false); setVisible(ShowActiveBTN, false); - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("book page")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sBookPageSoundId); } struct AddNamesToList @@ -565,7 +566,7 @@ namespace mModel->visitQuestNames(false, setInactive); } - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("book page")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sBookPageSoundId); } void notifyShowAll(MyGUI::Widget* _sender) @@ -589,7 +590,7 @@ namespace else { setBookMode(); - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("book page")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sBookPageSoundId); } } @@ -619,7 +620,7 @@ namespace if (page + 2 < book->pageCount()) { - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("book page")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sBookPageSoundId); page += 2; updateShowingPages(); @@ -637,7 +638,7 @@ namespace if (page >= 2) { - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("book page")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sBookPageSoundId); page -= 2; updateShowingPages(); diff --git a/apps/openmw/mwgui/mainmenu.cpp b/apps/openmw/mwgui/mainmenu.cpp index e417a495b6..713f881c39 100644 --- a/apps/openmw/mwgui/mainmenu.cpp +++ b/apps/openmw/mwgui/mainmenu.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include "../mwbase/environment.hpp" #include "../mwbase/statemanager.hpp" @@ -89,7 +90,7 @@ namespace MWGui MWBase::WindowManager* winMgr = MWBase::Environment::get().getWindowManager(); const std::string& name = *sender->getUserData(); - winMgr->playSound(ESM::RefId::stringRefId("Menu Click")); + winMgr->playSound(ESM::sMenuClickSoundId); if (name == "return") { winMgr->removeGuiMode(GM_MainMenu); diff --git a/apps/openmw/mwinput/controllermanager.cpp b/apps/openmw/mwinput/controllermanager.cpp index c8186408e9..88c6e7b062 100644 --- a/apps/openmw/mwinput/controllermanager.cpp +++ b/apps/openmw/mwinput/controllermanager.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include "../mwbase/environment.hpp" #include "../mwbase/inputmanager.hpp" @@ -206,7 +207,7 @@ namespace MWInput MyGUI::Button* b = MyGUI::InputManager::getInstance().getMouseFocusWidget()->castType(false); if (b && b->getEnabled()) - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sMenuClickSoundId); } mBindingsManager->setPlayerControlsEnabled(!mousePressSuccess); diff --git a/apps/openmw/mwinput/mousemanager.cpp b/apps/openmw/mwinput/mousemanager.cpp index 8caed79e21..4679366038 100644 --- a/apps/openmw/mwinput/mousemanager.cpp +++ b/apps/openmw/mwinput/mousemanager.cpp @@ -6,6 +6,7 @@ #include #include +#include #include "../mwbase/environment.hpp" #include "../mwbase/inputmanager.hpp" @@ -166,7 +167,7 @@ namespace MWInput = MyGUI::InputManager::getInstance().getMouseFocusWidget()->castType(false); if (b && b->getEnabled() && id == SDL_BUTTON_LEFT) { - MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click")); + MWBase::Environment::get().getWindowManager()->playSound(ESM::sMenuClickSoundId); } } MWBase::Environment::get().getWindowManager()->setCursorActive(true); diff --git a/apps/openmw/mwlua/types/types.cpp b/apps/openmw/mwlua/types/types.cpp index 9e04868fbd..31be81ba07 100644 --- a/apps/openmw/mwlua/types/types.cpp +++ b/apps/openmw/mwlua/types/types.cpp @@ -2,6 +2,7 @@ #include #include +#include namespace MWLua { @@ -66,7 +67,7 @@ namespace MWLua if (ref == nullptr) throw std::runtime_error("Can't get type name from an empty object."); const ESM::RefId& id = ref->mRef.getRefId(); - if (id == ESM::RefId::stringRefId("player")) + if (id == ESM::sPlayerId) return ESM::REC_INTERNAL_PLAYER; if (Misc::ResourceHelpers::isHiddenMarker(id)) return ESM::REC_INTERNAL_MARKER; diff --git a/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp b/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp index 0a3f1b7a69..9e4050ca8e 100644 --- a/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp +++ b/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -84,7 +85,7 @@ namespace const MWWorld::CellRef& cellref = target.getCellRef(); const ESM::RefId& owner = cellref.getOwner(); - bool isOwned = !owner.empty() && owner != ESM::RefId::stringRefId("player"); + bool isOwned = !owner.empty() && owner != ESM::sPlayerId; const ESM::RefId& faction = cellref.getFaction(); bool isFactionOwned = false; diff --git a/apps/openmw/mwrender/characterpreview.cpp b/apps/openmw/mwrender/characterpreview.cpp index 330289212e..cef1552f02 100644 --- a/apps/openmw/mwrender/characterpreview.cpp +++ b/apps/openmw/mwrender/characterpreview.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include "../mwworld/class.hpp" #include "../mwworld/inventorystore.hpp" @@ -543,7 +544,7 @@ namespace MWRender void RaceSelectionPreview::setPrototype(const ESM::NPC& proto) { mBase = proto; - mBase.mId = ESM::RefId::stringRefId("player"); + mBase.mId = ESM::sPlayerId; rebuild(); } diff --git a/apps/openmw/mwscript/aiextensions.cpp b/apps/openmw/mwscript/aiextensions.cpp index 56a349f7ef..1f88fd5068 100644 --- a/apps/openmw/mwscript/aiextensions.cpp +++ b/apps/openmw/mwscript/aiextensions.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include "../mwworld/class.hpp" #include "../mwworld/esmstore.hpp" @@ -484,7 +485,7 @@ namespace MWScript if (!targetPtr.isEmpty() && targetPtr.getCellRef().getRefId() == testedTargetId) targetsAreEqual = true; } - else if (testedTargetId == ESM::RefId::stringRefId("player")) // Currently the player ID is hardcoded + else if (testedTargetId == ESM::sPlayerId) // Currently the player ID is hardcoded { MWBase::MechanicsManager* mechMgr = MWBase::Environment::get().getMechanicsManager(); bool greeting = mechMgr->getGreetingState(actor) == MWMechanics::Greet_InProgress; diff --git a/apps/openmw/mwscript/containerextensions.cpp b/apps/openmw/mwscript/containerextensions.cpp index ab2ed41c68..d93b4acc6a 100644 --- a/apps/openmw/mwscript/containerextensions.cpp +++ b/apps/openmw/mwscript/containerextensions.cpp @@ -15,7 +15,7 @@ #include #include - +#include #include #include "../mwbase/environment.hpp" @@ -104,9 +104,9 @@ namespace MWScript if (count == 0) return; - if (item == ESM::RefId::stringRefId("gold_005") ||item == ESM::RefId::stringRefId("gold_010") - || item == ESM::RefId::stringRefId("gold_025") ||item == ESM::RefId::stringRefId("gold_100")) - item = ESM::RefId::stringRefId("gold_001"); + if (item == ESM::sGoldId005 ||item == ESM::sGoldId010 + || item == ESM::sGoldId025||item == ESM::sGoldId100) + item = ESM::sGoldId001; // Check if "item" can be placed in a container MWWorld::ManualRef manualRef(MWBase::Environment::get().getWorld()->getStore(), item, 1); diff --git a/apps/openmw/mwworld/esmstore.cpp b/apps/openmw/mwworld/esmstore.cpp index b4aacd6a1e..d1764390a7 100644 --- a/apps/openmw/mwworld/esmstore.cpp +++ b/apps/openmw/mwworld/esmstore.cpp @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -534,7 +535,7 @@ namespace MWWorld void ESMStore::movePlayerRecord() { auto& npcs = getWritable(); - auto player = npcs.find(ESM::RefId::stringRefId("player")); + auto player = npcs.find(ESM::sPlayerId); npcs.insert(*player); } @@ -651,7 +652,7 @@ namespace MWWorld { setUp(); - const ESM::NPC* player = get().find(ESM::RefId::stringRefId("player")); + const ESM::NPC* player = get().find(ESM::sPlayerId); if (!get().find(player->mRace) || !get().find(player->mClass)) throw std::runtime_error("Invalid player record (race or class unavailable"); @@ -687,7 +688,7 @@ namespace MWWorld { auto& npcs = getWritable(); - if (npc.mId == ESM::RefId::stringRefId("player")) + if (npc.mId == ESM::sPlayerId) { return npcs.insert(npc); } diff --git a/apps/openmw/mwworld/player.cpp b/apps/openmw/mwworld/player.cpp index afe1f185b8..6b8cb89d7a 100644 --- a/apps/openmw/mwworld/player.cpp +++ b/apps/openmw/mwworld/player.cpp @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -49,7 +50,7 @@ namespace MWWorld { ESM::CellRef cellRef; cellRef.blank(); - cellRef.mRefID = ESM::RefId::stringRefId("player"); + cellRef.mRefID = ESM::sPlayerId; mPlayer = LiveCellRef(cellRef, player); ESM::Position playerPos = mPlayer.mData.getPosition(); diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 4dcdb06364..bd6551f74d 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -12,6 +12,7 @@ #include +#include #include #include #include @@ -325,7 +326,7 @@ namespace MWWorld mPlayer->clear(); mPlayer->setCell(nullptr); mPlayer->getPlayer().getRefData() = RefData(); - mPlayer->set(mStore.get().find(ESM::RefId::stringRefId("player"))); + mPlayer->set(mStore.get().find(ESM::sPlayerId)); } mWorldModel.clear(); @@ -576,7 +577,7 @@ namespace MWWorld = mStore.get().find("sDefaultCellname")->mValue.getString(); if (Misc::StringUtils::ciEqual(cellName, defaultName)) { - cell = mStore.get().searchExtByName(ESM::RefId::stringRefId("")); + cell = mStore.get().searchExtByName(ESM::RefId::sEmpty); if (cell) return cell; } @@ -685,7 +686,7 @@ namespace MWWorld { Ptr ret; // the player is always in an active cell. - if (name == ESM::RefId::stringRefId("player")) + if (name == ESM::sPlayerId) { return mPlayer->getPlayer(); } @@ -1759,7 +1760,7 @@ namespace MWWorld { bool update = false; - if (record.mId == ESM::RefId::stringRefId("player")) + if (record.mId == ESM::sPlayerId) { const ESM::NPC* player = mPlayer->getPlayer().get()->mBase; @@ -2436,7 +2437,7 @@ namespace MWWorld void World::setupPlayer() { - const ESM::NPC* player = mStore.get().find(ESM::RefId::stringRefId("player")); + const ESM::NPC* player = mStore.get().find(ESM::sPlayerId); if (!mPlayer) mPlayer = std::make_unique(player); else diff --git a/components/CMakeLists.txt b/components/CMakeLists.txt index 243ea5841c..001a3fbece 100644 --- a/components/CMakeLists.txt +++ b/components/CMakeLists.txt @@ -80,7 +80,7 @@ add_component_dir (to_utf8 to_utf8 ) -add_component_dir(esm attr common defs esmcommon records util luascripts format refid) +add_component_dir(esm attr common defs esmcommon records util luascripts format refid refidhardcoded) add_component_dir(fx pass technique lexer widgets stateupdater) diff --git a/components/esm/refidhardcoded.cpp b/components/esm/refidhardcoded.cpp new file mode 100644 index 0000000000..e311a0b5ba --- /dev/null +++ b/components/esm/refidhardcoded.cpp @@ -0,0 +1,17 @@ +#include "refidhardcoded.hpp" + +namespace ESM +{//A few hardcoded ids that are used multiple times accross the codebase + const RefId sPlayerId = ESM::RefId::stringRefId("Player"); + const RefId sMenuClickSoundId = ESM::RefId::stringRefId("Menu Click"); + const RefId sBookPageSoundId = ESM::RefId::stringRefId("book page"); + const RefId sGoldId001 = ESM::RefId::stringRefId("gold_001"); + const RefId sGoldId005 = ESM::RefId::stringRefId("gold_005"); + const RefId sGoldId010 = ESM::RefId::stringRefId("gold_010"); + const RefId sGoldId025 = ESM::RefId::stringRefId("gold_025"); + const RefId sGoldId100 = ESM::RefId::stringRefId("gold_100"); +} + + + + diff --git a/components/esm/refidhardcoded.hpp b/components/esm/refidhardcoded.hpp new file mode 100644 index 0000000000..2c9024a1f8 --- /dev/null +++ b/components/esm/refidhardcoded.hpp @@ -0,0 +1,12 @@ +#ifndef OPENMW_COMPONENTS_ESM_REFIDHARDCODED_HPP +#define OPENMW_COMPONENTS_ESM_REFIDHARDCODED_HPP +#include "refid.hpp" + +namespace ESM +{ + extern const RefId sPlayerId, sMenuClickSoundId, sBookPageSoundId; + extern const RefId sGoldId001, sGoldId005, sGoldId010, sGoldId025, sGoldId100; + +} + +#endif