diff --git a/apps/openmw/mwlua/localscripts.hpp b/apps/openmw/mwlua/localscripts.hpp index aa22ec0424..b57e99dca9 100644 --- a/apps/openmw/mwlua/localscripts.hpp +++ b/apps/openmw/mwlua/localscripts.hpp @@ -63,7 +63,7 @@ namespace MWLua LocalScripts(LuaUtil::LuaState* lua, const LObject& obj); MWBase::LuaManager::ActorControls* getActorControls() { return &mData.mControls; } - const MWWorld::Ptr& getPtr() const { return mData.ptr(); } + const MWWorld::Ptr& getPtrOrEmpty() const { return mData.ptrOrEmpty(); } void setActive(bool active); void onConsume(const LObject& consumable) { callEngineHandlers(mOnConsumeHandlers, consumable); } diff --git a/apps/openmw/mwlua/luamanagerimp.cpp b/apps/openmw/mwlua/luamanagerimp.cpp index bb84dc7989..9bd8138206 100644 --- a/apps/openmw/mwlua/luamanagerimp.cpp +++ b/apps/openmw/mwlua/luamanagerimp.cpp @@ -141,8 +141,9 @@ namespace MWLua mWorldView.update(); - std::erase_if(mActiveLocalScripts, - [](const LocalScripts* l) { return l->getPtr().isEmpty() || l->getPtr().getRefData().isDeleted(); }); + std::erase_if(mActiveLocalScripts, [](const LocalScripts* l) { + return l->getPtrOrEmpty().isEmpty() || l->getPtrOrEmpty().getRefData().isDeleted(); + }); mGlobalScripts.statsNextFrame(); for (LocalScripts* scripts : mActiveLocalScripts) diff --git a/apps/openmw/mwlua/object.hpp b/apps/openmw/mwlua/object.hpp index b3fbfcdae2..89bf425295 100644 --- a/apps/openmw/mwlua/object.hpp +++ b/apps/openmw/mwlua/object.hpp @@ -31,7 +31,7 @@ namespace MWLua using SafePtr::SafePtr; const MWWorld::Ptr& ptr() const { - const MWWorld::Ptr& res = ptrOrNull(); + const MWWorld::Ptr& res = ptrOrEmpty(); if (res.isEmpty()) throw std::runtime_error("Object is not available: " + id().toString()); return res; diff --git a/apps/openmw/mwlua/objectbindings.cpp b/apps/openmw/mwlua/objectbindings.cpp index 4aea21f948..0a42d15ff3 100644 --- a/apps/openmw/mwlua/objectbindings.cpp +++ b/apps/openmw/mwlua/objectbindings.cpp @@ -152,7 +152,7 @@ namespace MWLua return sol::nullopt; return Misc::StringUtils::lowerCase(contentList[contentFileIndex]); }); - objectT["isValid"] = [](const ObjectT& o) { return !o.ptrOrNull().isEmpty(); }; + objectT["isValid"] = [](const ObjectT& o) { return !o.ptrOrEmpty().isEmpty(); }; objectT["recordId"] = sol::readonly_property( [](const ObjectT& o) -> std::string { return o.ptr().getCellRef().getRefId().serializeText(); }); objectT["cell"] = sol::readonly_property([](const ObjectT& o) -> sol::optional> { diff --git a/apps/openmw/mwworld/ptr.hpp b/apps/openmw/mwworld/ptr.hpp index 209d7d9256..1adaa3cbf9 100644 --- a/apps/openmw/mwworld/ptr.hpp +++ b/apps/openmw/mwworld/ptr.hpp @@ -165,7 +165,7 @@ namespace MWWorld std::string toString() const; - const Ptr& ptrOrNull() const + const Ptr& ptrOrEmpty() const { update(); return mPtr;