Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2009-08-21 07:06:36 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-08-21 07:06:36 +0400
commit442ba39d49d9453f84791989c9149692b70ddad5 (patch)
tree2dfe6617baa3b6a2b78756e3c69ed526e977757a
parentc73bad7bddb3a5368b28d061bdc3b2c86b05a53d (diff)
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.
-rw-r--r--source/gameengine/Converter/BL_BlenderDataConversion.cpp3
-rw-r--r--source/gameengine/Converter/KX_BlenderSceneConverter.cpp4
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(