From c5871a5a7a5a8bffd1f59e2c8082674d5bc393df Mon Sep 17 00:00:00 2001 From: Petr Mikheev Date: Sat, 22 Jul 2023 16:57:39 +0200 Subject: [PATCH] Allow to handle activation in Lua even for mwscripted objects --- apps/openmw/mwlua/luabindings.cpp | 2 ++ apps/openmw/mwworld/worldimp.cpp | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwlua/luabindings.cpp b/apps/openmw/mwlua/luabindings.cpp index e922eb7db5..efb64244e8 100644 --- a/apps/openmw/mwlua/luabindings.cpp +++ b/apps/openmw/mwlua/luabindings.cpp @@ -274,6 +274,8 @@ namespace MWLua }); api["_runStandardActivationAction"] = [context](const GObject& object, const GObject& actor) { + if (!object.ptr().getRefData().activate()) + return; context.mLuaManager->addAction( [object, actor] { const MWWorld::Ptr& objPtr = object.ptr(); diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 4c090b2701..033c6d5afc 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -3707,8 +3707,7 @@ namespace MWWorld void World::activate(const Ptr& object, const Ptr& actor) { breakInvisibility(actor); - if (object.getRefData().activate()) - MWBase::Environment::get().getLuaManager()->objectActivated(object, actor); + MWBase::Environment::get().getLuaManager()->objectActivated(object, actor); } struct ResetActorsVisitor