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:
authorMitchell Stokes <mogurijin@gmail.com>2011-03-21 12:29:28 +0300
committerMitchell Stokes <mogurijin@gmail.com>2011-03-21 12:29:28 +0300
commit1f52d83a99945471a6681c52f9eaf6ca3a3e23a3 (patch)
tree019aa6a1eaf0093f89e1b6062ece1cfb87807919 /source/gameengine
parent4a305e7edb3c3cb27078b0e2b715b5b7b709f400 (diff)
BGE Dynamic Loading: When given a relative path (starts with "//") for LibLoad(), make the path absolute. This helps resolve relative paths inside the library.
Diffstat (limited to 'source/gameengine')
-rw-r--r--source/gameengine/Ketsji/KX_PythonInit.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp
index 60ee86c52c4..5d5367653b7 100644
--- a/source/gameengine/Ketsji/KX_PythonInit.cpp
+++ b/source/gameengine/Ketsji/KX_PythonInit.cpp
@@ -642,6 +642,7 @@ static PyObject *gLibLoad(PyObject*, PyObject* args)
{
KX_Scene *kx_scene= gp_KetsjiScene;
char *path;
+ char abs_path[FILE_MAX] = {0};
char *group;
Py_buffer py_buffer;
py_buffer.buf = NULL;
@@ -652,7 +653,11 @@ static PyObject *gLibLoad(PyObject*, PyObject* args)
if (!py_buffer.buf)
{
- if(kx_scene->GetSceneConverter()->LinkBlendFilePath(path, group, kx_scene, &err_str)) {
+ // Make the path absolute
+ BLI_strncpy(abs_path, path, sizeof(abs_path));
+ BLI_path_abs(abs_path, gp_GamePythonPath);
+
+ if(kx_scene->GetSceneConverter()->LinkBlendFilePath(abs_path, group, kx_scene, &err_str)) {
Py_RETURN_TRUE;
}
}