From 0a2dd4c6cbdb85069bac3842479fbb4253c7663e Mon Sep 17 00:00:00 2001 From: scrawl Date: Sat, 27 Dec 2014 17:20:37 +0100 Subject: [PATCH] Fix unsafe use of BaseNode in Move script instruction --- apps/openmw/mwscript/transformationextensions.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/openmw/mwscript/transformationextensions.cpp b/apps/openmw/mwscript/transformationextensions.cpp index b39b3507ac..7568f604dd 100644 --- a/apps/openmw/mwscript/transformationextensions.cpp +++ b/apps/openmw/mwscript/transformationextensions.cpp @@ -689,7 +689,11 @@ namespace MWScript else throw std::runtime_error ("invalid movement axis: " + axis); + if (!ptr.getRefData().getBaseNode()) + return; + Ogre::Vector3 worldPos = ptr.getRefData().getBaseNode()->convertLocalToWorldPosition(posChange); + dynamic_cast(runtime.getContext()).updatePtr( MWBase::Environment::get().getWorld()->moveObject(ptr, worldPos.x, worldPos.y, worldPos.z)); }