From 35dbf67c0019d433ba1be2dc52ced592f591afd1 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Sat, 19 Mar 2011 22:47:51 +0000 Subject: [PATCH] Fixing the other crash mentioned in bug #25083. m_current_scene isn't always pointing to valid memory by the time LinkBlendFile is called. So, use the supplied scene_merge scene instead. Scene LibLoad was already doing this, so I just made Mesh and Action follow suit. --- source/gameengine/Converter/KX_BlenderSceneConverter.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp index 245125456bd..34be0d4d15f 100644 --- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp +++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp @@ -1012,21 +1012,19 @@ bool KX_BlenderSceneConverter::LinkBlendFile(BlendHandle *bpy_openlib, const cha if(idcode==ID_ME) { /* Convert all new meshes into BGE meshes */ ID* mesh; - KX_Scene *kx_scene= m_currentScene; for(mesh= (ID *)main_newlib->mesh.first; mesh; mesh= (ID *)mesh->next ) { RAS_MeshObject *meshobj = BL_ConvertMesh((Mesh *)mesh, NULL, scene_merge, this); - kx_scene->GetLogicManager()->RegisterMeshName(meshobj->GetName(),meshobj); + scene_merge->GetLogicManager()->RegisterMeshName(meshobj->GetName(),meshobj); } } else if(idcode==ID_AC) { /* Convert all actions */ ID *action; - KX_Scene *kx_scene= m_currentScene; for(action= (ID *)main_newlib->action.first; action; action= (ID *)action->next) { printf("ActionName: %s\n", action->name); - kx_scene->GetLogicManager()->RegisterActionName(action->name+2, action); + scene_merge->GetLogicManager()->RegisterActionName(action->name+2, action); } } else if(idcode==ID_SCE) {