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:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-06-24 14:29:26 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-06-24 14:29:26 +0400
commit1f7ae143a29b090ed97cdd7eb47a9c2dbd7f72a2 (patch)
treefff560080a8bbf37ee087653df1b8a30173537b1 /source/gameengine/Converter/KX_BlenderSceneConverter.cpp
parentd38ba6b5d25ca42f76b6d1b746217a565f26228f (diff)
parent74c9c24d273863319a55c18234e03b7d27a43a87 (diff)
Merged changes in the trunk up to revision 48227.
Conflicts resolved: source/blender/blenloader/intern/readfile.c source/blender/editors/space_file/filelist.c
Diffstat (limited to 'source/gameengine/Converter/KX_BlenderSceneConverter.cpp')
-rw-r--r--source/gameengine/Converter/KX_BlenderSceneConverter.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
index 78e5d7b32c2..3961e6554a7 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
@@ -42,6 +42,7 @@
#include "KX_PhysicsEngineEnums.h"
#include "PHY_IPhysicsEnvironment.h"
#include "KX_KetsjiEngine.h"
+#include "KX_PythonInit.h" // So we can handle adding new text datablocks for Python to import
#include "KX_IPhysicsController.h"
#include "BL_Material.h"
#include "BL_ActionActuator.h"
@@ -173,9 +174,9 @@ KX_BlenderSceneConverter::~KX_BlenderSceneConverter()
#endif
/* free any data that was dynamically loaded */
- for (vector<Main*>::iterator it=m_DynamicMaggie.begin(); !(it==m_DynamicMaggie.end()); it++) {
- Main *main= *it;
- free_main(main);
+ while (m_DynamicMaggie.size() != 0)
+ {
+ FreeBlendFile(m_DynamicMaggie[0]);
}
m_DynamicMaggie.clear();
@@ -987,6 +988,11 @@ bool KX_BlenderSceneConverter::LinkBlendFile(BlendHandle *bpy_openlib, const cha
load_datablocks(main_newlib, bpy_openlib, path, idcode);
+ if (idcode==ID_SCE) {
+ /* assume we want text blocks too */
+ load_datablocks(main_newlib, bpy_openlib, path, ID_TXT);
+ }
+
/* now do another round of linking for Scenes so all actions are properly loaded */
if (idcode==ID_SCE && options & LIB_LOAD_LOAD_ACTIONS) {
load_datablocks(main_newlib, bpy_openlib, path, ID_AC);
@@ -1038,6 +1044,10 @@ bool KX_BlenderSceneConverter::LinkBlendFile(BlendHandle *bpy_openlib, const cha
delete other;
}
+ /* Handle any text datablocks */
+
+ addImportMain(main_newlib);
+
/* Now handle all the actions */
if (options & LIB_LOAD_LOAD_ACTIONS) {
ID *action;
@@ -1330,6 +1340,9 @@ bool KX_BlenderSceneConverter::FreeBlendFile(struct Main *maggie)
}
}
+ /* make sure this maggie is removed from the import list if it's there (this operation is safe if it isn't in the list) */
+ removeImportMain(maggie);
+
free_main(maggie);
return true;