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

@ -30,6 +30,8 @@
#include "BL_DeformableGameObject.h" #include "BL_DeformableGameObject.h"
#include "BL_ShapeDeformer.h" #include "BL_ShapeDeformer.h"
#include "BL_ShapeActionActuator.h" #include "BL_ShapeActionActuator.h"
#include "RAS_MaterialBucket.h"
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include <config.h> #include <config.h>
@ -101,3 +103,14 @@ bool BL_DeformableGameObject::GetShape(vector<float> &shape)
return !shape.empty(); 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; return (m_pDeformer) ? ((BL_MeshDeformer*)m_pDeformer)->GetMesh()->key : NULL;
} }
virtual void SetDeformer(class RAS_Deformer* deformer) virtual void SetDeformer(class RAS_Deformer* deformer);
{
m_pDeformer = deformer;
}
virtual class RAS_Deformer* GetDeformer() virtual class RAS_Deformer* GetDeformer()
{ {
return m_pDeformer; return m_pDeformer;