|
|
|
@ -563,9 +563,9 @@ namespace MWWorld
|
|
|
|
|
mWorldScene->changeCell(cellX, cellY, pos, false);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (!mWorldScene->isCellActive(newCell)) {
|
|
|
|
|
if (!mWorldScene->isCellActive(*currCell)) {
|
|
|
|
|
copyObjectToCell(ptr, newCell, pos);
|
|
|
|
|
} else if (!mWorldScene->isCellActive(*currCell)) {
|
|
|
|
|
} else if (!mWorldScene->isCellActive(newCell)) {
|
|
|
|
|
MWWorld::Class::get(ptr).copyToCell(ptr, newCell);
|
|
|
|
|
mWorldScene->removeObjectFromScene(ptr);
|
|
|
|
|
mLocalScripts.remove(ptr);
|
|
|
|
@ -640,10 +640,12 @@ namespace MWWorld
|
|
|
|
|
float *objRot = ptr.getRefData().getPosition().rot;
|
|
|
|
|
objRot[0] = rot.x, objRot[1] = rot.y, objRot[2] = rot.z;
|
|
|
|
|
|
|
|
|
|
mPhysics->rotateObject(
|
|
|
|
|
ptr.getRefData().getHandle(),
|
|
|
|
|
ptr.getRefData().getBaseNode()->getOrientation()
|
|
|
|
|
);
|
|
|
|
|
if (ptr.getRefData().getBaseNode() != 0) {
|
|
|
|
|
mPhysics->rotateObject(
|
|
|
|
|
ptr.getRefData().getHandle(),
|
|
|
|
|
ptr.getRefData().getBaseNode()->getOrientation()
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|