From f6626e36cf162013eee43e0919c10b25e3e4b5c4 Mon Sep 17 00:00:00 2001 From: Evil Eye Date: Wed, 27 Sep 2023 22:07:55 +0200 Subject: [PATCH] Unbreak respawns and fix #7588 --- apps/openmw/mwlua/objectbindings.cpp | 6 ++++++ apps/openmw/mwworld/cellstore.cpp | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwlua/objectbindings.cpp b/apps/openmw/mwlua/objectbindings.cpp index b2d5824629..0a1098f450 100644 --- a/apps/openmw/mwlua/objectbindings.cpp +++ b/apps/openmw/mwlua/objectbindings.cpp @@ -133,6 +133,12 @@ namespace MWLua else { newPtr = world->moveObject(ptr, destCell, pos); + if (MWBase::Environment::get().getWorldScene()->isCellActive(*srcCell)) + { + ESM::RefId script = cls.getScript(newPtr); + if (!script.empty()) + world->getLocalScripts().add(script, newPtr); + } world->rotateObject(newPtr, rot, MWBase::RotationFlag_none); } if (placeOnGround) diff --git a/apps/openmw/mwworld/cellstore.cpp b/apps/openmw/mwworld/cellstore.cpp index a41fbb150a..8fb86f2cad 100644 --- a/apps/openmw/mwworld/cellstore.cpp +++ b/apps/openmw/mwworld/cellstore.cpp @@ -1239,7 +1239,7 @@ namespace MWWorld // no need to clearCorpse, handled as part of get() if (!ptr.getRefData().isDeleted()) ptr.getClass().respawn(ptr); - return false; + return true; }); } }