From 685906afdfd26d4afd920fd8fbcf4914c3b7f8df Mon Sep 17 00:00:00 2001 From: Evil Eye Date: Thu, 11 Aug 2022 22:51:55 +0200 Subject: [PATCH] Make getScript return string_view --- apps/openmw/mwbase/scriptmanager.hpp | 2 +- apps/openmw/mwclass/activator.cpp | 2 +- apps/openmw/mwclass/activator.hpp | 2 +- apps/openmw/mwclass/apparatus.cpp | 2 +- apps/openmw/mwclass/apparatus.hpp | 2 +- apps/openmw/mwclass/armor.cpp | 2 +- apps/openmw/mwclass/armor.hpp | 2 +- apps/openmw/mwclass/book.cpp | 2 +- apps/openmw/mwclass/book.hpp | 2 +- apps/openmw/mwclass/clothing.cpp | 2 +- apps/openmw/mwclass/clothing.hpp | 2 +- apps/openmw/mwclass/container.cpp | 2 +- apps/openmw/mwclass/container.hpp | 2 +- apps/openmw/mwclass/creature.cpp | 4 ++-- apps/openmw/mwclass/creature.hpp | 2 +- apps/openmw/mwclass/door.cpp | 2 +- apps/openmw/mwclass/door.hpp | 2 +- apps/openmw/mwclass/ingredient.cpp | 2 +- apps/openmw/mwclass/ingredient.hpp | 2 +- apps/openmw/mwclass/light.cpp | 2 +- apps/openmw/mwclass/light.hpp | 2 +- apps/openmw/mwclass/lockpick.cpp | 2 +- apps/openmw/mwclass/lockpick.hpp | 2 +- apps/openmw/mwclass/misc.cpp | 2 +- apps/openmw/mwclass/misc.hpp | 2 +- apps/openmw/mwclass/npc.cpp | 6 +++--- apps/openmw/mwclass/npc.hpp | 2 +- apps/openmw/mwclass/potion.cpp | 2 +- apps/openmw/mwclass/potion.hpp | 2 +- apps/openmw/mwclass/probe.cpp | 2 +- apps/openmw/mwclass/probe.hpp | 2 +- apps/openmw/mwclass/repair.cpp | 2 +- apps/openmw/mwclass/repair.hpp | 2 +- apps/openmw/mwclass/weapon.cpp | 2 +- apps/openmw/mwclass/weapon.hpp | 2 +- apps/openmw/mwdialogue/dialoguemanagerimp.cpp | 2 +- apps/openmw/mwdialogue/filter.cpp | 2 +- apps/openmw/mwdialogue/scripttest.cpp | 2 +- apps/openmw/mwgui/companionitemmodel.cpp | 4 ++-- apps/openmw/mwgui/companionwindow.cpp | 2 +- apps/openmw/mwgui/console.cpp | 2 +- apps/openmw/mwgui/container.cpp | 4 ++-- apps/openmw/mwgui/inventorywindow.cpp | 2 +- .../mwmechanics/mechanicsmanagerimp.cpp | 2 +- apps/openmw/mwmechanics/repair.cpp | 4 ++-- apps/openmw/mwmechanics/spellpriority.cpp | 4 ++-- apps/openmw/mwscript/compilercontext.cpp | 2 +- apps/openmw/mwscript/locals.cpp | 14 ++++++------- apps/openmw/mwscript/locals.hpp | 14 ++++++------- apps/openmw/mwscript/miscextensions.cpp | 4 ++-- apps/openmw/mwscript/scriptmanagerimp.cpp | 4 ++-- apps/openmw/mwscript/scriptmanagerimp.hpp | 2 +- apps/openmw/mwworld/actionteleport.cpp | 2 +- apps/openmw/mwworld/class.cpp | 8 +++---- apps/openmw/mwworld/class.hpp | 2 +- apps/openmw/mwworld/containerstore.cpp | 6 +++--- apps/openmw/mwworld/inventorystore.cpp | 4 ++-- apps/openmw/mwworld/livecellref.cpp | 2 +- apps/openmw/mwworld/localscripts.cpp | 12 +++++------ apps/openmw/mwworld/localscripts.hpp | 2 +- apps/openmw/mwworld/refdata.cpp | 2 +- apps/openmw/mwworld/refdata.hpp | 2 +- apps/openmw/mwworld/worldimp.cpp | 21 +++++++++---------- 63 files changed, 104 insertions(+), 105 deletions(-) diff --git a/apps/openmw/mwbase/scriptmanager.hpp b/apps/openmw/mwbase/scriptmanager.hpp index c7717cfb05..67b9593a20 100644 --- a/apps/openmw/mwbase/scriptmanager.hpp +++ b/apps/openmw/mwbase/scriptmanager.hpp @@ -49,7 +49,7 @@ namespace MWBase ///< Compile all scripts /// \return count, success - virtual const Compiler::Locals& getLocals (const std::string& name) = 0; + virtual const Compiler::Locals& getLocals(std::string_view name) = 0; ///< Return locals for script \a name. virtual MWScript::GlobalScripts& getGlobalScripts() = 0; diff --git a/apps/openmw/mwclass/activator.cpp b/apps/openmw/mwclass/activator.cpp index 4937ca3b03..af9826b3f0 100644 --- a/apps/openmw/mwclass/activator.cpp +++ b/apps/openmw/mwclass/activator.cpp @@ -77,7 +77,7 @@ namespace MWClass return ref->mBase->mName; } - std::string Activator::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Activator::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/activator.hpp b/apps/openmw/mwclass/activator.hpp index e34786a1f0..6f2f8cc28b 100644 --- a/apps/openmw/mwclass/activator.hpp +++ b/apps/openmw/mwclass/activator.hpp @@ -32,7 +32,7 @@ namespace MWClass MWGui::ToolTipInfo getToolTipInfo (const MWWorld::ConstPtr& ptr, int count) const override; ///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip. - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr std::unique_ptr activate (const MWWorld::Ptr& ptr, const MWWorld::Ptr& actor) const override; diff --git a/apps/openmw/mwclass/apparatus.cpp b/apps/openmw/mwclass/apparatus.cpp index 39dd864f99..421f15e67f 100644 --- a/apps/openmw/mwclass/apparatus.cpp +++ b/apps/openmw/mwclass/apparatus.cpp @@ -53,7 +53,7 @@ namespace MWClass return defaultItemActivate(ptr, actor); } - std::string Apparatus::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Apparatus::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/apparatus.hpp b/apps/openmw/mwclass/apparatus.hpp index ef21928075..89aadbf357 100644 --- a/apps/openmw/mwclass/apparatus.hpp +++ b/apps/openmw/mwclass/apparatus.hpp @@ -27,7 +27,7 @@ namespace MWClass const MWWorld::Ptr& actor) const override; ///< Generate action for activation - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr int getValue (const MWWorld::ConstPtr& ptr) const override; diff --git a/apps/openmw/mwclass/armor.cpp b/apps/openmw/mwclass/armor.cpp index 2fb6ecba34..29e5ecb7fd 100644 --- a/apps/openmw/mwclass/armor.cpp +++ b/apps/openmw/mwclass/armor.cpp @@ -73,7 +73,7 @@ namespace MWClass return ref->mBase->mData.mHealth; } - std::string Armor::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Armor::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/armor.hpp b/apps/openmw/mwclass/armor.hpp index b185596c08..468fd831b3 100644 --- a/apps/openmw/mwclass/armor.hpp +++ b/apps/openmw/mwclass/armor.hpp @@ -33,7 +33,7 @@ namespace MWClass int getItemMaxHealth (const MWWorld::ConstPtr& ptr) const override; ///< Return item max health or throw an exception, if class does not have item health - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr std::pair, bool> getEquipmentSlots (const MWWorld::ConstPtr& ptr) const override; diff --git a/apps/openmw/mwclass/book.cpp b/apps/openmw/mwclass/book.cpp index 75648a1180..2fb328b62a 100644 --- a/apps/openmw/mwclass/book.cpp +++ b/apps/openmw/mwclass/book.cpp @@ -70,7 +70,7 @@ namespace MWClass return std::make_unique(ptr); } - std::string Book::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Book::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/book.hpp b/apps/openmw/mwclass/book.hpp index a5152fa812..65af358268 100644 --- a/apps/openmw/mwclass/book.hpp +++ b/apps/openmw/mwclass/book.hpp @@ -25,7 +25,7 @@ namespace MWClass const MWWorld::Ptr& actor) const override; ///< Generate action for activation - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr MWGui::ToolTipInfo getToolTipInfo (const MWWorld::ConstPtr& ptr, int count) const override; diff --git a/apps/openmw/mwclass/clothing.cpp b/apps/openmw/mwclass/clothing.cpp index c20a7dae22..3a0a69e45b 100644 --- a/apps/openmw/mwclass/clothing.cpp +++ b/apps/openmw/mwclass/clothing.cpp @@ -56,7 +56,7 @@ namespace MWClass return defaultItemActivate(ptr, actor); } - std::string Clothing::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Clothing::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/clothing.hpp b/apps/openmw/mwclass/clothing.hpp index 8e0a0c90bd..bfb6869561 100644 --- a/apps/openmw/mwclass/clothing.hpp +++ b/apps/openmw/mwclass/clothing.hpp @@ -25,7 +25,7 @@ namespace MWClass const MWWorld::Ptr& actor) const override; ///< Generate action for activation - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr std::pair, bool> getEquipmentSlots (const MWWorld::ConstPtr& ptr) const override; diff --git a/apps/openmw/mwclass/container.cpp b/apps/openmw/mwclass/container.cpp index 63b511cadd..932b160e32 100644 --- a/apps/openmw/mwclass/container.cpp +++ b/apps/openmw/mwclass/container.cpp @@ -226,7 +226,7 @@ namespace MWClass return data.mStore; } - std::string Container::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Container::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/container.hpp b/apps/openmw/mwclass/container.hpp index 9ecf323b71..2573eeb47e 100644 --- a/apps/openmw/mwclass/container.hpp +++ b/apps/openmw/mwclass/container.hpp @@ -63,7 +63,7 @@ namespace MWClass MWWorld::ContainerStore& getContainerStore (const MWWorld::Ptr& ptr) const override; ///< Return container store - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr float getCapacity (const MWWorld::Ptr& ptr) const override; diff --git a/apps/openmw/mwclass/creature.cpp b/apps/openmw/mwclass/creature.cpp index 7a2d3e13ee..19eddfec86 100644 --- a/apps/openmw/mwclass/creature.cpp +++ b/apps/openmw/mwclass/creature.cpp @@ -488,7 +488,7 @@ namespace MWClass return isFlagBitSet(ptr, ESM::Creature::Weapon); } - std::string Creature::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Creature::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); @@ -836,7 +836,7 @@ namespace MWClass if (ptr.getRefData().getCount() == 0) { ptr.getRefData().setCount(1); - const std::string& script = getScript(ptr); + std::string_view script = getScript(ptr); if(!script.empty()) MWBase::Environment::get().getWorld()->getLocalScripts().add(script, ptr); } diff --git a/apps/openmw/mwclass/creature.hpp b/apps/openmw/mwclass/creature.hpp index a1696d80f0..17f208a532 100644 --- a/apps/openmw/mwclass/creature.hpp +++ b/apps/openmw/mwclass/creature.hpp @@ -80,7 +80,7 @@ namespace MWClass bool hasInventoryStore (const MWWorld::Ptr &ptr) const override; - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr float getCapacity (const MWWorld::Ptr& ptr) const override; diff --git a/apps/openmw/mwclass/door.cpp b/apps/openmw/mwclass/door.cpp index 1a8c01571d..cf9d197b30 100644 --- a/apps/openmw/mwclass/door.cpp +++ b/apps/openmw/mwclass/door.cpp @@ -255,7 +255,7 @@ namespace MWClass return true; } - std::string Door::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Door::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/door.hpp b/apps/openmw/mwclass/door.hpp index d3a369d89e..b490060153 100644 --- a/apps/openmw/mwclass/door.hpp +++ b/apps/openmw/mwclass/door.hpp @@ -47,7 +47,7 @@ namespace MWClass bool allowTelekinesis(const MWWorld::ConstPtr &ptr) const override; ///< Return whether this class of object can be activated with telekinesis - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr std::string getModel(const MWWorld::ConstPtr &ptr) const override; diff --git a/apps/openmw/mwclass/ingredient.cpp b/apps/openmw/mwclass/ingredient.cpp index bd830dc6b7..45dc165564 100644 --- a/apps/openmw/mwclass/ingredient.cpp +++ b/apps/openmw/mwclass/ingredient.cpp @@ -55,7 +55,7 @@ namespace MWClass return defaultItemActivate(ptr, actor); } - std::string Ingredient::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Ingredient::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/ingredient.hpp b/apps/openmw/mwclass/ingredient.hpp index 95b3d94e5e..5520397ebe 100644 --- a/apps/openmw/mwclass/ingredient.hpp +++ b/apps/openmw/mwclass/ingredient.hpp @@ -28,7 +28,7 @@ namespace MWClass MWGui::ToolTipInfo getToolTipInfo (const MWWorld::ConstPtr& ptr, int count) const override; ///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip. - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr int getValue (const MWWorld::ConstPtr& ptr) const override; diff --git a/apps/openmw/mwclass/light.cpp b/apps/openmw/mwclass/light.cpp index 564775b5d2..71f882fac4 100644 --- a/apps/openmw/mwclass/light.cpp +++ b/apps/openmw/mwclass/light.cpp @@ -96,7 +96,7 @@ namespace MWClass return defaultItemActivate(ptr, actor); } - std::string Light::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Light::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/light.hpp b/apps/openmw/mwclass/light.hpp index 0104e88b6b..f917693246 100644 --- a/apps/openmw/mwclass/light.hpp +++ b/apps/openmw/mwclass/light.hpp @@ -38,7 +38,7 @@ namespace MWClass const MWWorld::Ptr& actor) const override; ///< Generate action for activation - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr std::pair, bool> getEquipmentSlots (const MWWorld::ConstPtr& ptr) const override; diff --git a/apps/openmw/mwclass/lockpick.cpp b/apps/openmw/mwclass/lockpick.cpp index ee32e2945c..64396f5505 100644 --- a/apps/openmw/mwclass/lockpick.cpp +++ b/apps/openmw/mwclass/lockpick.cpp @@ -55,7 +55,7 @@ namespace MWClass return defaultItemActivate(ptr, actor); } - std::string Lockpick::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Lockpick::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/lockpick.hpp b/apps/openmw/mwclass/lockpick.hpp index 3aac0c70b7..0e873efb15 100644 --- a/apps/openmw/mwclass/lockpick.hpp +++ b/apps/openmw/mwclass/lockpick.hpp @@ -28,7 +28,7 @@ namespace MWClass MWGui::ToolTipInfo getToolTipInfo (const MWWorld::ConstPtr& ptr, int count) const override; ///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip. - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr std::pair, bool> getEquipmentSlots (const MWWorld::ConstPtr& ptr) const override; diff --git a/apps/openmw/mwclass/misc.cpp b/apps/openmw/mwclass/misc.cpp index 3aa5544b74..2e4de8865a 100644 --- a/apps/openmw/mwclass/misc.cpp +++ b/apps/openmw/mwclass/misc.cpp @@ -65,7 +65,7 @@ namespace MWClass return defaultItemActivate(ptr, actor); } - std::string Miscellaneous::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Miscellaneous::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/misc.hpp b/apps/openmw/mwclass/misc.hpp index ebf38b10be..7a3f97bd58 100644 --- a/apps/openmw/mwclass/misc.hpp +++ b/apps/openmw/mwclass/misc.hpp @@ -28,7 +28,7 @@ namespace MWClass MWGui::ToolTipInfo getToolTipInfo (const MWWorld::ConstPtr& ptr, int count) const override; ///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip. - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr int getValue (const MWWorld::ConstPtr& ptr) const override; diff --git a/apps/openmw/mwclass/npc.cpp b/apps/openmw/mwclass/npc.cpp index 1a757a05d3..86fbe496a7 100644 --- a/apps/openmw/mwclass/npc.cpp +++ b/apps/openmw/mwclass/npc.cpp @@ -707,7 +707,7 @@ namespace MWClass if (setOnPcHitMe && !attacker.isEmpty() && attacker == MWMechanics::getPlayer()) { - const std::string &script = getScript(ptr); + std::string_view script = getScript(ptr); /* Set the OnPCHitMe script variable. The script is responsible for clearing it. */ if(!script.empty()) ptr.getRefData().getLocals().setVarByInt(script, "onpchitme", 1); @@ -951,7 +951,7 @@ namespace MWClass return ptr.getRefData().getCustomData()->asNpcCustomData().mInventoryStore; } - std::string Npc::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Npc::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); @@ -1406,7 +1406,7 @@ namespace MWClass if (ptr.getRefData().getCount() == 0) { ptr.getRefData().setCount(1); - const std::string& script = getScript(ptr); + std::string_view script = getScript(ptr); if (!script.empty()) MWBase::Environment::get().getWorld()->getLocalScripts().add(script, ptr); } diff --git a/apps/openmw/mwclass/npc.hpp b/apps/openmw/mwclass/npc.hpp index 2795b91cea..4d8ebde7a3 100644 --- a/apps/openmw/mwclass/npc.hpp +++ b/apps/openmw/mwclass/npc.hpp @@ -87,7 +87,7 @@ namespace MWClass const MWWorld::Ptr& actor) const override; ///< Generate action for activation - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr float getMaxSpeed (const MWWorld::Ptr& ptr) const override; diff --git a/apps/openmw/mwclass/potion.cpp b/apps/openmw/mwclass/potion.cpp index 6e3bf24a5b..bb89d74d1f 100644 --- a/apps/openmw/mwclass/potion.cpp +++ b/apps/openmw/mwclass/potion.cpp @@ -57,7 +57,7 @@ namespace MWClass return defaultItemActivate(ptr, actor); } - std::string Potion::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Potion::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/potion.hpp b/apps/openmw/mwclass/potion.hpp index d5964cff85..f0a0a0cedc 100644 --- a/apps/openmw/mwclass/potion.hpp +++ b/apps/openmw/mwclass/potion.hpp @@ -28,7 +28,7 @@ namespace MWClass MWGui::ToolTipInfo getToolTipInfo (const MWWorld::ConstPtr& ptr, int count) const override; ///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip. - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr int getValue (const MWWorld::ConstPtr& ptr) const override; diff --git a/apps/openmw/mwclass/probe.cpp b/apps/openmw/mwclass/probe.cpp index e3b22514d5..5bd217772e 100644 --- a/apps/openmw/mwclass/probe.cpp +++ b/apps/openmw/mwclass/probe.cpp @@ -54,7 +54,7 @@ namespace MWClass return defaultItemActivate(ptr, actor); } - std::string Probe::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Probe::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/probe.hpp b/apps/openmw/mwclass/probe.hpp index b048b37f92..0aa6941380 100644 --- a/apps/openmw/mwclass/probe.hpp +++ b/apps/openmw/mwclass/probe.hpp @@ -28,7 +28,7 @@ namespace MWClass MWGui::ToolTipInfo getToolTipInfo (const MWWorld::ConstPtr& ptr, int count) const override; ///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip. - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr std::pair, bool> getEquipmentSlots (const MWWorld::ConstPtr& ptr) const override; diff --git a/apps/openmw/mwclass/repair.cpp b/apps/openmw/mwclass/repair.cpp index 9da2f7775f..216057c203 100644 --- a/apps/openmw/mwclass/repair.cpp +++ b/apps/openmw/mwclass/repair.cpp @@ -52,7 +52,7 @@ namespace MWClass return defaultItemActivate(ptr, actor); } - std::string Repair::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Repair::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/repair.hpp b/apps/openmw/mwclass/repair.hpp index 4ca0dd2511..519989c785 100644 --- a/apps/openmw/mwclass/repair.hpp +++ b/apps/openmw/mwclass/repair.hpp @@ -28,7 +28,7 @@ namespace MWClass MWGui::ToolTipInfo getToolTipInfo (const MWWorld::ConstPtr& ptr, int count) const override; ///< @return the content of the tool tip to be displayed. raises exception if the object has no tooltip. - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr int getValue (const MWWorld::ConstPtr& ptr) const override; diff --git a/apps/openmw/mwclass/weapon.cpp b/apps/openmw/mwclass/weapon.cpp index 43bb2b110d..7a5ad50c31 100644 --- a/apps/openmw/mwclass/weapon.cpp +++ b/apps/openmw/mwclass/weapon.cpp @@ -76,7 +76,7 @@ namespace MWClass return ref->mBase->mData.mHealth; } - std::string Weapon::getScript (const MWWorld::ConstPtr& ptr) const + std::string_view Weapon::getScript(const MWWorld::ConstPtr& ptr) const { const MWWorld::LiveCellRef *ref = ptr.get(); diff --git a/apps/openmw/mwclass/weapon.hpp b/apps/openmw/mwclass/weapon.hpp index f09c590183..5ed2cee45a 100644 --- a/apps/openmw/mwclass/weapon.hpp +++ b/apps/openmw/mwclass/weapon.hpp @@ -34,7 +34,7 @@ namespace MWClass int getItemMaxHealth (const MWWorld::ConstPtr& ptr) const override; ///< Return item max health or throw an exception, if class does not have item health - std::string getScript (const MWWorld::ConstPtr& ptr) const override; + std::string_view getScript(const MWWorld::ConstPtr& ptr) const override; ///< Return name of the script attached to ptr std::pair, bool> getEquipmentSlots (const MWWorld::ConstPtr& ptr) const override; diff --git a/apps/openmw/mwdialogue/dialoguemanagerimp.cpp b/apps/openmw/mwdialogue/dialoguemanagerimp.cpp index a8ea3fdf02..9d03314d8d 100644 --- a/apps/openmw/mwdialogue/dialoguemanagerimp.cpp +++ b/apps/openmw/mwdialogue/dialoguemanagerimp.cpp @@ -201,7 +201,7 @@ namespace MWDialogue Compiler::Locals locals; - std::string actorScript = actor.getClass().getScript (actor); + std::string_view actorScript = actor.getClass().getScript(actor); if (!actorScript.empty()) { diff --git a/apps/openmw/mwdialogue/filter.cpp b/apps/openmw/mwdialogue/filter.cpp index 458834445a..516cfff767 100644 --- a/apps/openmw/mwdialogue/filter.cpp +++ b/apps/openmw/mwdialogue/filter.cpp @@ -173,7 +173,7 @@ bool MWDialogue::Filter::testDisposition (const ESM::DialInfo& info, bool invert bool MWDialogue::Filter::testFunctionLocal(const MWDialogue::SelectWrapper& select) const { - std::string scriptName = mActor.getClass().getScript (mActor); + std::string_view scriptName = mActor.getClass().getScript(mActor); if (scriptName.empty()) return false; // no script diff --git a/apps/openmw/mwdialogue/scripttest.cpp b/apps/openmw/mwdialogue/scripttest.cpp index 1b192aec15..3692272484 100644 --- a/apps/openmw/mwdialogue/scripttest.cpp +++ b/apps/openmw/mwdialogue/scripttest.cpp @@ -55,7 +55,7 @@ void test(const MWWorld::Ptr& actor, int &compiled, int &total, const Compiler:: Compiler::Locals locals; - std::string actorScript = actor.getClass().getScript(actor); + std::string_view actorScript = actor.getClass().getScript(actor); if (!actorScript.empty()) { diff --git a/apps/openmw/mwgui/companionitemmodel.cpp b/apps/openmw/mwgui/companionitemmodel.cpp index 3a272aa868..4e065da8b5 100644 --- a/apps/openmw/mwgui/companionitemmodel.cpp +++ b/apps/openmw/mwgui/companionitemmodel.cpp @@ -7,7 +7,7 @@ namespace void modifyProfit(const MWWorld::Ptr& actor, int diff) { - std::string script = actor.getClass().getScript(actor); + std::string_view script = actor.getClass().getScript(actor); if (!script.empty()) { int profit = actor.getRefData().getLocals().getIntVar(script, "minimumprofit"); @@ -43,7 +43,7 @@ namespace MWGui bool CompanionItemModel::hasProfit(const MWWorld::Ptr &actor) { - std::string script = actor.getClass().getScript(actor); + std::string_view script = actor.getClass().getScript(actor); if (script.empty()) return false; return actor.getRefData().getLocals().hasVar(script, "minimumprofit"); diff --git a/apps/openmw/mwgui/companionwindow.cpp b/apps/openmw/mwgui/companionwindow.cpp index 852efa7583..4951dbfd12 100644 --- a/apps/openmw/mwgui/companionwindow.cpp +++ b/apps/openmw/mwgui/companionwindow.cpp @@ -25,7 +25,7 @@ namespace int getProfit(const MWWorld::Ptr& actor) { - std::string script = actor.getClass().getScript(actor); + std::string_view script = actor.getClass().getScript(actor); if (!script.empty()) { return actor.getRefData().getLocals().getIntVar(script, "minimumprofit"); diff --git a/apps/openmw/mwgui/console.cpp b/apps/openmw/mwgui/console.cpp index a382bbeb07..920612bc5b 100644 --- a/apps/openmw/mwgui/console.cpp +++ b/apps/openmw/mwgui/console.cpp @@ -194,7 +194,7 @@ namespace MWGui Compiler::Locals locals; if (!mPtr.isEmpty()) { - std::string script = mPtr.getClass().getScript(mPtr); + std::string_view script = mPtr.getClass().getScript(mPtr); if (!script.empty()) locals = MWBase::Environment::get().getScriptManager()->getLocals(script); } diff --git a/apps/openmw/mwgui/container.cpp b/apps/openmw/mwgui/container.cpp index fdfd192cc1..52fc04ddf2 100644 --- a/apps/openmw/mwgui/container.cpp +++ b/apps/openmw/mwgui/container.cpp @@ -257,11 +257,11 @@ namespace MWGui creatureStats.setDeathAnimationFinished(true); MWBase::Environment::get().getMechanicsManager()->notifyDied(ptr); - const std::string script = ptr.getClass().getScript(ptr); + std::string_view script = ptr.getClass().getScript(ptr); if (!script.empty() && MWBase::Environment::get().getWorld()->getScriptsEnabled()) { MWScript::InterpreterContext interpreterContext (&ptr.getRefData().getLocals(), ptr); - MWBase::Environment::get().getScriptManager()->run (script, interpreterContext); + MWBase::Environment::get().getScriptManager()->run(std::string{script}, interpreterContext); } // Clean up summoned creatures as well diff --git a/apps/openmw/mwgui/inventorywindow.cpp b/apps/openmw/mwgui/inventorywindow.cpp index c28a36dd28..6a6bca3e1e 100644 --- a/apps/openmw/mwgui/inventorywindow.cpp +++ b/apps/openmw/mwgui/inventorywindow.cpp @@ -512,7 +512,7 @@ namespace MWGui void InventoryWindow::useItem(const MWWorld::Ptr &ptr, bool force) { - const std::string& script = ptr.getClass().getScript(ptr); + std::string_view script = ptr.getClass().getScript(ptr); if (!script.empty()) { // Don't try to equip the item if PCSkipEquip is set to 1 diff --git a/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp b/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp index f7b05ba4a8..e0e70348b1 100644 --- a/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp +++ b/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp @@ -1447,7 +1447,7 @@ namespace MWMechanics // If an actor has OnPCHitMe declared in his script, his Fight = 0 and the attacker is player, // he will attack the player only if we will force him (e.g. via StartCombat console command) bool peaceful = false; - std::string script = target.getClass().getScript(target); + std::string_view script = target.getClass().getScript(target); if (!script.empty() && target.getRefData().getLocals().hasVar(script, "onpchitme") && attacker == player) { const int fight = target.getClass().getCreatureStats(target).getAiSetting(AiSetting::Fight).getModified(); diff --git a/apps/openmw/mwmechanics/repair.cpp b/apps/openmw/mwmechanics/repair.cpp index 15101bb81e..266b8dd3c4 100644 --- a/apps/openmw/mwmechanics/repair.cpp +++ b/apps/openmw/mwmechanics/repair.cpp @@ -61,8 +61,8 @@ void Repair::repair(const MWWorld::Ptr &itemToRepair) MWWorld::ContainerStoreIterator stacked = player.getClass().getContainerStore(player).restack(itemToRepair); // set the OnPCRepair variable on the item's script - std::string script = stacked->getClass().getScript(itemToRepair); - if(script != "") + std::string_view script = stacked->getClass().getScript(itemToRepair); + if(!script.empty()) stacked->getRefData().getLocals().setVarByInt(script, "onpcrepair", 1); // increase skill diff --git a/apps/openmw/mwmechanics/spellpriority.cpp b/apps/openmw/mwmechanics/spellpriority.cpp index 245bd4fcdb..e22a8c4f75 100644 --- a/apps/openmw/mwmechanics/spellpriority.cpp +++ b/apps/openmw/mwmechanics/spellpriority.cpp @@ -125,7 +125,7 @@ namespace MWMechanics // Don't make use of racial bonus spells, like MW. Can be made optional later if (actor.getClass().isNpc()) { - std::string raceid = actor.get()->mBase->mRace; + const std::string& raceid = actor.get()->mBase->mRace; const ESM::Race* race = MWBase::Environment::get().getWorld()->getStore().get().find(raceid); if (race->mPowers.exists(spell->mId)) return 0.f; @@ -367,7 +367,7 @@ namespace MWMechanics if (actor.getClass().isNpc()) { // Beast races can't wear helmets or boots - std::string raceid = actor.get()->mBase->mRace; + const std::string& raceid = actor.get()->mBase->mRace; const ESM::Race* race = MWBase::Environment::get().getWorld()->getStore().get().find(raceid); if (race->mData.mFlags & ESM::Race::Beast) return 0.f; diff --git a/apps/openmw/mwscript/compilercontext.cpp b/apps/openmw/mwscript/compilercontext.cpp index 72537d606b..53e93354fa 100644 --- a/apps/openmw/mwscript/compilercontext.cpp +++ b/apps/openmw/mwscript/compilercontext.cpp @@ -33,7 +33,7 @@ namespace MWScript std::pair CompilerContext::getMemberType (const std::string& name, const std::string& id) const { - std::string script; + std::string_view script; bool reference = false; if (const ESM::Script *scriptRecord = diff --git a/apps/openmw/mwscript/locals.cpp b/apps/openmw/mwscript/locals.cpp index 9b9fbc66ad..3fa91bf5e2 100644 --- a/apps/openmw/mwscript/locals.cpp +++ b/apps/openmw/mwscript/locals.cpp @@ -15,7 +15,7 @@ namespace MWScript { - void Locals::ensure (const std::string& scriptName) + void Locals::ensure(std::string_view scriptName) { if (!mInitialised) { @@ -62,7 +62,7 @@ namespace MWScript return (mShorts.empty() && mLongs.empty() && mFloats.empty()); } - bool Locals::hasVar(const std::string &script, std::string_view var) + bool Locals::hasVar(std::string_view script, std::string_view var) { ensure (script); @@ -72,7 +72,7 @@ namespace MWScript return (index != -1); } - int Locals::getIntVar(const std::string &script, std::string_view var) + int Locals::getIntVar(std::string_view script, std::string_view var) { ensure (script); @@ -98,7 +98,7 @@ namespace MWScript return 0; } - float Locals::getFloatVar(const std::string &script, std::string_view var) + float Locals::getFloatVar(std::string_view script, std::string_view var) { ensure (script); @@ -124,7 +124,7 @@ namespace MWScript return 0; } - bool Locals::setVarByInt(const std::string& script, std::string_view var, int val) + bool Locals::setVarByInt(std::string_view script, std::string_view var, int val) { ensure (script); @@ -149,7 +149,7 @@ namespace MWScript return false; } - bool Locals::write (ESM::Locals& locals, const std::string& script) const + bool Locals::write(ESM::Locals& locals, std::string_view script) const { if (!mInitialised) return false; @@ -188,7 +188,7 @@ namespace MWScript return true; } - void Locals::read (const ESM::Locals& locals, const std::string& script) + void Locals::read(const ESM::Locals& locals, std::string_view script) { ensure (script); diff --git a/apps/openmw/mwscript/locals.hpp b/apps/openmw/mwscript/locals.hpp index 6f3d4d5f07..3eac2c71e6 100644 --- a/apps/openmw/mwscript/locals.hpp +++ b/apps/openmw/mwscript/locals.hpp @@ -19,7 +19,7 @@ namespace MWScript { bool mInitialised; - void ensure (const std::string& scriptName); + void ensure(std::string_view scriptName); public: std::vector mShorts; @@ -39,33 +39,33 @@ namespace MWScript /// @note var needs to be in lowercase /// /// \note Locals will be automatically configured first, if necessary - bool setVarByInt(const std::string& script, std::string_view var, int val); + bool setVarByInt(std::string_view script, std::string_view var, int val); /// \note Locals will be automatically configured first, if necessary // // \note If it can not be determined if the variable exists, the error will be // ignored and false will be returned. - bool hasVar(const std::string& script, std::string_view var); + bool hasVar(std::string_view script, std::string_view var); /// if var does not exist, returns 0 /// @note var needs to be in lowercase /// /// \note Locals will be automatically configured first, if necessary - int getIntVar (const std::string& script, std::string_view var); + int getIntVar(std::string_view script, std::string_view var); /// if var does not exist, returns 0 /// @note var needs to be in lowercase /// /// \note Locals will be automatically configured first, if necessary - float getFloatVar (const std::string& script, std::string_view var); + float getFloatVar(std::string_view script, std::string_view var); /// \note If locals have not been configured yet, no data is written. /// /// \return Locals written? - bool write (ESM::Locals& locals, const std::string& script) const; + bool write(ESM::Locals& locals, std::string_view script) const; /// \note Locals will be automatically configured first, if necessary - void read (const ESM::Locals& locals, const std::string& script); + void read(const ESM::Locals& locals, std::string_view script); }; } diff --git a/apps/openmw/mwscript/miscextensions.cpp b/apps/openmw/mwscript/miscextensions.cpp index c2294116e0..3f50d9158d 100644 --- a/apps/openmw/mwscript/miscextensions.cpp +++ b/apps/openmw/mwscript/miscextensions.cpp @@ -1045,7 +1045,7 @@ namespace MWScript if (!ptr.isEmpty()) { - const std::string& script = ptr.getClass().getScript(ptr); + std::string_view script = ptr.getClass().getScript(ptr); if (!script.empty()) { const Compiler::Locals& locals = @@ -1097,7 +1097,7 @@ namespace MWScript { std::stringstream str; - const std::string script = ptr.getClass().getScript(ptr); + std::string_view script = ptr.getClass().getScript(ptr); if(script.empty()) str<< ptr.getCellRef().getRefId()<<" does not have a script."; else diff --git a/apps/openmw/mwscript/scriptmanagerimp.cpp b/apps/openmw/mwscript/scriptmanagerimp.cpp index 61764684f5..a0ae49ad98 100644 --- a/apps/openmw/mwscript/scriptmanagerimp.cpp +++ b/apps/openmw/mwscript/scriptmanagerimp.cpp @@ -165,7 +165,7 @@ namespace MWScript return std::make_pair (count, success); } - const Compiler::Locals& ScriptManager::getLocals (const std::string& name) + const Compiler::Locals& ScriptManager::getLocals(std::string_view name) { std::string name2 = Misc::StringUtils::lowerCase (name); @@ -212,7 +212,7 @@ namespace MWScript return iter->second; } - throw std::logic_error ("script " + name + " does not exist"); + throw std::logic_error("script " + name2 + " does not exist"); } GlobalScripts& ScriptManager::getGlobalScripts() diff --git a/apps/openmw/mwscript/scriptmanagerimp.hpp b/apps/openmw/mwscript/scriptmanagerimp.hpp index a82e3f92e8..d32d6e822c 100644 --- a/apps/openmw/mwscript/scriptmanagerimp.hpp +++ b/apps/openmw/mwscript/scriptmanagerimp.hpp @@ -79,7 +79,7 @@ namespace MWScript ///< Compile all scripts /// \return count, success - const Compiler::Locals& getLocals (const std::string& name) override; + const Compiler::Locals& getLocals(std::string_view name) override; ///< Return locals for script \a name. GlobalScripts& getGlobalScripts() override; diff --git a/apps/openmw/mwworld/actionteleport.cpp b/apps/openmw/mwworld/actionteleport.cpp index bbf4952063..72cafc4eed 100644 --- a/apps/openmw/mwworld/actionteleport.cpp +++ b/apps/openmw/mwworld/actionteleport.cpp @@ -71,7 +71,7 @@ namespace MWWorld { MWWorld::Ptr follower = *it; - std::string script = follower.getClass().getScript(follower); + std::string_view script = follower.getClass().getScript(follower); if (!includeHostiles && follower.getClass().getCreatureStats(follower).getAiSequence().isInCombat(actor)) continue; diff --git a/apps/openmw/mwworld/class.cpp b/apps/openmw/mwworld/class.cpp index 8379098636..3389bfd727 100644 --- a/apps/openmw/mwworld/class.cpp +++ b/apps/openmw/mwworld/class.cpp @@ -155,9 +155,9 @@ namespace MWWorld return -1; } - std::string Class::getScript (const ConstPtr& ptr) const + std::string_view Class::getScript(const ConstPtr& ptr) const { - return ""; + return {}; } float Class::getMaxSpeed (const Ptr& ptr) const @@ -291,7 +291,7 @@ namespace MWWorld std::string Class::getEnchantment (const ConstPtr& ptr) const { - return ""; + return {}; } void Class::adjustScale(const MWWorld::ConstPtr& ptr, osg::Vec3f& scale, bool rendering) const @@ -300,7 +300,7 @@ namespace MWWorld std::string Class::getModel(const MWWorld::ConstPtr &ptr) const { - return ""; + return {}; } bool Class::useAnim() const diff --git a/apps/openmw/mwworld/class.hpp b/apps/openmw/mwworld/class.hpp index 242f27c04d..8d6e7bfc06 100644 --- a/apps/openmw/mwworld/class.hpp +++ b/apps/openmw/mwworld/class.hpp @@ -170,7 +170,7 @@ namespace MWWorld ///< Returns the remaining duration of the object, such as an equippable light /// source. (default implementation: -1, i.e. infinite) - virtual std::string getScript (const ConstPtr& ptr) const; + virtual std::string_view getScript(const ConstPtr& ptr) const; ///< Return name of the script attached to ptr (default implementation: return an empty /// string). diff --git a/apps/openmw/mwworld/containerstore.cpp b/apps/openmw/mwworld/containerstore.cpp index 1f58ffa206..d73fb7dc19 100644 --- a/apps/openmw/mwworld/containerstore.cpp +++ b/apps/openmw/mwworld/containerstore.cpp @@ -30,7 +30,7 @@ namespace auto& scripts = MWBase::Environment::get().getWorld()->getLocalScripts(); for(const auto&& ptr : store) { - const std::string& script = ptr.getClass().getScript(ptr); + std::string_view script = ptr.getClass().getScript(ptr); if(!script.empty()) { MWWorld::Ptr item = ptr; @@ -208,7 +208,7 @@ MWWorld::ContainerStoreIterator MWWorld::ContainerStore::unstack(const Ptr &ptr, if (ptr.getRefData().getCount() <= count) return end(); MWWorld::ContainerStoreIterator it = addNewStack(ptr, subtractItems(ptr.getRefData().getCount(false), count)); - const std::string script = it->getClass().getScript(*it); + std::string_view script = it->getClass().getScript(*it); if (!script.empty()) MWBase::Environment::get().getWorld()->getLocalScripts().add(script, *it); @@ -317,7 +317,7 @@ MWWorld::ContainerStoreIterator MWWorld::ContainerStore::add (const Ptr& itemPtr // maybe we should do this in the copy constructor instead? item.getCellRef().unsetRefNum(); // destroy link to content file - std::string script = item.getClass().getScript(item); + std::string_view script = item.getClass().getScript(item); if (!script.empty()) { if (actorPtr == player) diff --git a/apps/openmw/mwworld/inventorystore.cpp b/apps/openmw/mwworld/inventorystore.cpp index 27a21e3362..bbb5ae5ce1 100644 --- a/apps/openmw/mwworld/inventorystore.cpp +++ b/apps/openmw/mwworld/inventorystore.cpp @@ -655,8 +655,8 @@ MWWorld::ContainerStoreIterator MWWorld::InventoryStore::unequipSlot(int slot, c if (actor == MWMechanics::getPlayer()) { // Unset OnPCEquip Variable on item's script, if it has a script with that variable declared - const std::string& script = it->getClass().getScript(*it); - if (script != "") + std::string_view script = it->getClass().getScript(*it); + if (!script.empty()) (*it).getRefData().getLocals().setVarByInt(script, "onpcequip", 0); } diff --git a/apps/openmw/mwworld/livecellref.cpp b/apps/openmw/mwworld/livecellref.cpp index 53c936564b..172ba9ca8d 100644 --- a/apps/openmw/mwworld/livecellref.cpp +++ b/apps/openmw/mwworld/livecellref.cpp @@ -27,7 +27,7 @@ void MWWorld::LiveCellRefBase::loadImp (const ESM::ObjectState& state) if (state.mHasLocals) { - std::string scriptId = mClass->getScript (ptr); + std::string_view scriptId = mClass->getScript(ptr); // Make sure we still have a script. It could have been coming from a content file that is no longer active. if (!scriptId.empty()) { diff --git a/apps/openmw/mwworld/localscripts.cpp b/apps/openmw/mwworld/localscripts.cpp index 0e7dd0771f..9345a0cb9b 100644 --- a/apps/openmw/mwworld/localscripts.cpp +++ b/apps/openmw/mwworld/localscripts.cpp @@ -23,7 +23,7 @@ namespace if (ptr.getRefData().isDeleted()) return true; - std::string script = ptr.getClass().getScript(ptr); + std::string_view script = ptr.getClass().getScript(ptr); if (!script.empty()) mScripts.add(script, ptr); @@ -48,12 +48,12 @@ namespace return true; MWWorld::ContainerStore& container = containerPtr.getClass().getContainerStore(containerPtr); - for(MWWorld::ContainerStoreIterator it = container.begin(); it != container.end(); ++it) + for(const auto& ptr : container) { - std::string script = it->getClass().getScript(*it); - if(script != "") + std::string_view script = ptr.getClass().getScript(ptr); + if(!script.empty()) { - MWWorld::Ptr item = *it; + MWWorld::Ptr item = ptr; item.mCell = containerPtr.getCell(); mScripts.add (script, item); } @@ -85,7 +85,7 @@ bool MWWorld::LocalScripts::getNext(std::pair& script) return false; } -void MWWorld::LocalScripts::add (const std::string& scriptName, const Ptr& ptr) +void MWWorld::LocalScripts::add(std::string_view scriptName, const Ptr& ptr) { if (const ESM::Script *script = mStore.get().search (scriptName)) { diff --git a/apps/openmw/mwworld/localscripts.hpp b/apps/openmw/mwworld/localscripts.hpp index c698daf043..cc4b5376e6 100644 --- a/apps/openmw/mwworld/localscripts.hpp +++ b/apps/openmw/mwworld/localscripts.hpp @@ -30,7 +30,7 @@ namespace MWWorld ///< Get next local script /// @return Did we get a script? - void add (const std::string& scriptName, const Ptr& ptr); + void add(std::string_view scriptName, const Ptr& ptr); ///< Add script to collection of active local scripts. void addCell (CellStore *cell); diff --git a/apps/openmw/mwworld/refdata.cpp b/apps/openmw/mwworld/refdata.cpp index 10c65bd17c..b3515c838f 100644 --- a/apps/openmw/mwworld/refdata.cpp +++ b/apps/openmw/mwworld/refdata.cpp @@ -102,7 +102,7 @@ namespace MWWorld } } - void RefData::write (ESM::ObjectState& objectState, const std::string& scriptId) const + void RefData::write(ESM::ObjectState& objectState, std::string_view scriptId) const { objectState.mHasLocals = mLocals.write (objectState.mLocals, scriptId); diff --git a/apps/openmw/mwworld/refdata.hpp b/apps/openmw/mwworld/refdata.hpp index 0bc6df52a5..5c94dbcacf 100644 --- a/apps/openmw/mwworld/refdata.hpp +++ b/apps/openmw/mwworld/refdata.hpp @@ -82,7 +82,7 @@ namespace MWWorld ~RefData(); - void write (ESM::ObjectState& objectState, const std::string& scriptId = "") const; + void write(ESM::ObjectState& objectState, std::string_view scriptId = {}) const; ///< Ignores custom data (not enough context available here to /// perform this operations). diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 8429332c47..d6f8db9f24 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -816,8 +816,8 @@ namespace MWWorld MWWorld::ContainerStore& container = reference.getClass().getContainerStore(reference); for(MWWorld::ContainerStoreIterator it = container.begin(); it != container.end(); ++it) { - std::string script = it->getClass().getScript(*it); - if(script != "") + std::string_view script = it->getClass().getScript(*it); + if(!script.empty()) { MWWorld::Ptr item = *it; item.mCell = cell; @@ -859,8 +859,8 @@ namespace MWWorld MWWorld::ContainerStore& container = reference.getClass().getContainerStore(reference); for(MWWorld::ContainerStoreIterator it = container.begin(); it != container.end(); ++it) { - std::string script = it->getClass().getScript(*it); - if(script != "") + std::string_view script = it->getClass().getScript(*it); + if(!script.empty()) { MWWorld::Ptr item = *it; mLocalScripts.remove (item); @@ -1140,7 +1140,7 @@ namespace MWWorld && ptr.getRefData().isEnabled()) { mWorldScene->addObjectToScene(ptr); - std::string script = ptr.getClass().getScript(ptr); + std::string_view script = ptr.getClass().getScript(ptr); if (!script.empty()) mLocalScripts.add(script, ptr); addContainerScripts(ptr, ptr.getCell()); @@ -1196,7 +1196,7 @@ namespace MWWorld if(newPtr.getRefData().isEnabled()) mWorldScene->addObjectToScene(newPtr); - std::string script = newPtr.getClass().getScript(newPtr); + std::string_view script = newPtr.getClass().getScript(newPtr); if (!script.empty()) { mLocalScripts.add(script, newPtr); @@ -1226,8 +1226,7 @@ namespace MWWorld MWBase::MechanicsManager *mechMgr = MWBase::Environment::get().getMechanicsManager(); mechMgr->updateCell(ptr, newPtr); - std::string script = - ptr.getClass().getScript(ptr); + std::string_view script = ptr.getClass().getScript(ptr); if (!script.empty()) { mLocalScripts.remove(ptr); @@ -2135,10 +2134,10 @@ namespace MWWorld void World::PCDropped (const Ptr& item) { - std::string script = item.getClass().getScript(item); + std::string_view script = item.getClass().getScript(item); // Set OnPCDrop Variable on item's script, if it has a script with that variable declared - if(script != "") + if(!script.empty()) item.getRefData().getLocals().setVarByInt(script, "onpcdrop", 1); } @@ -2209,7 +2208,7 @@ namespace MWWorld if (dropped.getRefData().isEnabled()) { mWorldScene->addObjectToScene(dropped); } - std::string script = dropped.getClass().getScript(dropped); + std::string_view script = dropped.getClass().getScript(dropped); if (!script.empty()) { mLocalScripts.add(script, dropped); }