mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-25 08:39:41 +00:00
Don't delete physics object if it was never created.
This commit is contained in:
parent
0e0ad97a91
commit
ba1a42ec05
2 changed files with 5 additions and 2 deletions
|
@ -93,6 +93,7 @@ void CSVRender::Object::update()
|
||||||
Ogre::Quaternion yr (Ogre::Radian (-reference.mPos.rot[1]), Ogre::Vector3::UNIT_Y);
|
Ogre::Quaternion yr (Ogre::Radian (-reference.mPos.rot[1]), Ogre::Vector3::UNIT_Y);
|
||||||
Ogre::Quaternion zr (Ogre::Radian (-reference.mPos.rot[2]), Ogre::Vector3::UNIT_Z);
|
Ogre::Quaternion zr (Ogre::Radian (-reference.mPos.rot[2]), Ogre::Vector3::UNIT_Z);
|
||||||
|
|
||||||
|
mPhysicsObject = mReferenceId;
|
||||||
mPhysics->addObject("meshes\\" + model, mBase->getName(), mReferenceId, reference.mScale, position, xr*yr*zr);
|
mPhysics->addObject("meshes\\" + model, mBase->getName(), mReferenceId, reference.mScale, position, xr*yr*zr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -134,7 +135,7 @@ const CSMWorld::CellRef& CSVRender::Object::getReference() const
|
||||||
CSVRender::Object::Object (const CSMWorld::Data& data, Ogre::SceneNode *cellNode,
|
CSVRender::Object::Object (const CSMWorld::Data& data, Ogre::SceneNode *cellNode,
|
||||||
const std::string& id, bool referenceable, CSVWorld::PhysicsSystem *physics,
|
const std::string& id, bool referenceable, CSVWorld::PhysicsSystem *physics,
|
||||||
bool forceBaseToZero)
|
bool forceBaseToZero)
|
||||||
: mData (data), mBase (0), mForceBaseToZero (forceBaseToZero), mPhysics(physics)
|
: mData (data), mBase (0), mForceBaseToZero (forceBaseToZero), mPhysics(physics), mPhysicsObject("")
|
||||||
{
|
{
|
||||||
mBase = cellNode->createChildSceneNode();
|
mBase = cellNode->createChildSceneNode();
|
||||||
|
|
||||||
|
@ -156,7 +157,8 @@ CSVRender::Object::~Object()
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
|
|
||||||
mPhysics->removeObject(mBase->getName());
|
if(mPhysicsObject != "")
|
||||||
|
mPhysics->removeObject(mBase->getName());
|
||||||
|
|
||||||
if (mBase)
|
if (mBase)
|
||||||
mBase->getCreator()->destroySceneNode (mBase);
|
mBase->getCreator()->destroySceneNode (mBase);
|
||||||
|
|
|
@ -32,6 +32,7 @@ namespace CSVRender
|
||||||
NifOgre::ObjectScenePtr mObject;
|
NifOgre::ObjectScenePtr mObject;
|
||||||
bool mForceBaseToZero;
|
bool mForceBaseToZero;
|
||||||
CSVWorld::PhysicsSystem *mPhysics;
|
CSVWorld::PhysicsSystem *mPhysics;
|
||||||
|
std::string mPhysicsObject;
|
||||||
|
|
||||||
/// Not implemented
|
/// Not implemented
|
||||||
Object (const Object&);
|
Object (const Object&);
|
||||||
|
|
Loading…
Reference in a new issue