BGE #18724: Modifier cause crash in 2.49RC2. My bad, I was too quick to fix the soft body problem in revision 20119. This time I tested against modifiers, soft body, armatures and replace mesh.

This commit is contained in:
Benoit Bolsee 2009-05-11 22:07:30 +00:00
parent e847bcf784
commit 24906dc962
3 changed files with 16 additions and 9 deletions

@ -2121,8 +2121,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
//tf.Add(gameobj->GetSGNode());
gameobj->NodeUpdateGS(0);
//move to after finishing everything so that soft body deformer is included
//gameobj->AddMeshUser();
gameobj->AddMeshUser();
}
else
@ -2312,8 +2311,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
//tf.Add(gameobj->GetSGNode());
gameobj->NodeUpdateGS(0);
//move to after finishing everything so that soft body deformer is included
//gameobj->AddMeshUser();
gameobj->AddMeshUser();
}
else
{
@ -2665,7 +2663,6 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
{
KX_GameObject* gameobj = static_cast<KX_GameObject*>(objectlist->GetValue(i));
gameobj->ResetState();
gameobj->AddMeshUser();
}
#endif //CONVERT_LOGIC

@ -30,6 +30,8 @@
#include "BL_DeformableGameObject.h"
#include "BL_ShapeDeformer.h"
#include "BL_ShapeActionActuator.h"
#include "RAS_MaterialBucket.h"
#ifdef HAVE_CONFIG_H
#include <config.h>
@ -101,3 +103,14 @@ bool BL_DeformableGameObject::GetShape(vector<float> &shape)
return !shape.empty();
}
void BL_DeformableGameObject::SetDeformer(class RAS_Deformer* deformer)
{
m_pDeformer = deformer;
SG_QList::iterator<RAS_MeshSlot> mit(m_meshSlots);
for(mit.begin(); !mit.end(); ++mit)
{
(*mit)->SetDeformer(deformer);
}
}

@ -83,10 +83,7 @@ public:
return (m_pDeformer) ? ((BL_MeshDeformer*)m_pDeformer)->GetMesh()->key : NULL;
}
virtual void SetDeformer(class RAS_Deformer* deformer)
{
m_pDeformer = deformer;
}
virtual void SetDeformer(class RAS_Deformer* deformer);
virtual class RAS_Deformer* GetDeformer()
{
return m_pDeformer;