From 442ba39d49d9453f84791989c9149692b70ddad5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 21 Aug 2009 03:06:36 +0000 Subject: [PATCH] fix for own bug added since 2.49a, 2.49a tries to remove the object from the conversion list every time. Now remove from the conversion list directly without being apart of the remove object function. --- source/gameengine/Converter/BL_BlenderDataConversion.cpp | 3 +++ source/gameengine/Converter/KX_BlenderSceneConverter.cpp | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index 5b03bbbbc4e..d2e6bbb43f7 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -2422,8 +2422,11 @@ void BL_ConvertBlenderObjects(struct Main* maggie, obj->Release(); } childrenlist->Release(); + // now destroy recursively + converter->UnregisterGameObject(childobj); // removing objects during conversion make sure this runs too kxscene->RemoveObject(childobj); + continue; } diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp index 59c073c2b1f..4f47ce7a036 100644 --- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp +++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp @@ -492,10 +492,11 @@ void KX_BlenderSceneConverter::RegisterGameObject( m_map_blender_to_gameobject.insert(CHashedPtr(for_blenderobject),gameobject); } +/* only need to run this during conversion since + * m_map_blender_to_gameobject is freed after conversion */ void KX_BlenderSceneConverter::UnregisterGameObject( KX_GameObject *gameobject) { -#if 0 struct Object *bobp= gameobject->GetBlenderObject(); if (bobp) { CHashedPtr bptr(bobp); @@ -507,7 +508,6 @@ void KX_BlenderSceneConverter::UnregisterGameObject( m_map_blender_to_gameobject.remove(bptr); } } -#endif } KX_GameObject *KX_BlenderSceneConverter::FindGameObject(