mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-03-31 01:20:23 +00:00
Don't try to move objects that are not in a cell
This commit is contained in:
parent
993edf0384
commit
c558e12212
@ -207,6 +207,10 @@ namespace MWScript
|
|||||||
virtual void execute (Interpreter::Runtime& runtime)
|
virtual void execute (Interpreter::Runtime& runtime)
|
||||||
{
|
{
|
||||||
MWWorld::Ptr ptr = R()(runtime);
|
MWWorld::Ptr ptr = R()(runtime);
|
||||||
|
|
||||||
|
if (!ptr.isInCell())
|
||||||
|
return;
|
||||||
|
|
||||||
if (ptr.getRefData().getHandle() == "player")
|
if (ptr.getRefData().getHandle() == "player")
|
||||||
{
|
{
|
||||||
MWBase::Environment::get().getWorld()->getPlayer().setTeleported(true);
|
MWBase::Environment::get().getWorld()->getPlayer().setTeleported(true);
|
||||||
@ -275,6 +279,10 @@ namespace MWScript
|
|||||||
virtual void execute (Interpreter::Runtime& runtime)
|
virtual void execute (Interpreter::Runtime& runtime)
|
||||||
{
|
{
|
||||||
MWWorld::Ptr ptr = R()(runtime);
|
MWWorld::Ptr ptr = R()(runtime);
|
||||||
|
|
||||||
|
if (!ptr.isInCell())
|
||||||
|
return;
|
||||||
|
|
||||||
if (ptr.getRefData().getHandle() == "player")
|
if (ptr.getRefData().getHandle() == "player")
|
||||||
{
|
{
|
||||||
MWBase::Environment::get().getWorld()->getPlayer().setTeleported(true);
|
MWBase::Environment::get().getWorld()->getPlayer().setTeleported(true);
|
||||||
@ -336,6 +344,10 @@ namespace MWScript
|
|||||||
virtual void execute (Interpreter::Runtime& runtime)
|
virtual void execute (Interpreter::Runtime& runtime)
|
||||||
{
|
{
|
||||||
MWWorld::Ptr ptr = R()(runtime);
|
MWWorld::Ptr ptr = R()(runtime);
|
||||||
|
|
||||||
|
if (!ptr.isInCell())
|
||||||
|
return;
|
||||||
|
|
||||||
if (ptr.getRefData().getHandle() == "player")
|
if (ptr.getRefData().getHandle() == "player")
|
||||||
{
|
{
|
||||||
MWBase::Environment::get().getWorld()->getPlayer().setTeleported(true);
|
MWBase::Environment::get().getWorld()->getPlayer().setTeleported(true);
|
||||||
@ -605,6 +617,10 @@ namespace MWScript
|
|||||||
virtual void execute (Interpreter::Runtime& runtime)
|
virtual void execute (Interpreter::Runtime& runtime)
|
||||||
{
|
{
|
||||||
MWWorld::Ptr ptr = R()(runtime);
|
MWWorld::Ptr ptr = R()(runtime);
|
||||||
|
|
||||||
|
if (!ptr.isInCell())
|
||||||
|
return;
|
||||||
|
|
||||||
ptr.getRefData().getLocalRotation().rot[0] = 0;
|
ptr.getRefData().getLocalRotation().rot[0] = 0;
|
||||||
ptr.getRefData().getLocalRotation().rot[1] = 0;
|
ptr.getRefData().getLocalRotation().rot[1] = 0;
|
||||||
ptr.getRefData().getLocalRotation().rot[2] = 0;
|
ptr.getRefData().getLocalRotation().rot[2] = 0;
|
||||||
@ -624,6 +640,9 @@ namespace MWScript
|
|||||||
{
|
{
|
||||||
const MWWorld::Ptr& ptr = R()(runtime);
|
const MWWorld::Ptr& ptr = R()(runtime);
|
||||||
|
|
||||||
|
if (!ptr.isInCell())
|
||||||
|
return;
|
||||||
|
|
||||||
std::string axis = runtime.getStringLiteral (runtime[0].mInteger);
|
std::string axis = runtime.getStringLiteral (runtime[0].mInteger);
|
||||||
runtime.pop();
|
runtime.pop();
|
||||||
Interpreter::Type_Float movement = (runtime[0].mFloat*MWBase::Environment::get().getFrameDuration());
|
Interpreter::Type_Float movement = (runtime[0].mFloat*MWBase::Environment::get().getFrameDuration());
|
||||||
@ -659,6 +678,9 @@ namespace MWScript
|
|||||||
{
|
{
|
||||||
MWWorld::Ptr ptr = R()(runtime);
|
MWWorld::Ptr ptr = R()(runtime);
|
||||||
|
|
||||||
|
if (!ptr.isInCell())
|
||||||
|
return;
|
||||||
|
|
||||||
std::string axis = runtime.getStringLiteral (runtime[0].mInteger);
|
std::string axis = runtime.getStringLiteral (runtime[0].mInteger);
|
||||||
runtime.pop();
|
runtime.pop();
|
||||||
Interpreter::Type_Float movement = (runtime[0].mFloat*MWBase::Environment::get().getFrameDuration());
|
Interpreter::Type_Float movement = (runtime[0].mFloat*MWBase::Environment::get().getFrameDuration());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user