diff options
author | Mitchell Stokes <mogurijin@gmail.com> | 2011-03-21 12:29:28 +0300 |
---|---|---|
committer | Mitchell Stokes <mogurijin@gmail.com> | 2011-03-21 12:29:28 +0300 |
commit | 1f52d83a99945471a6681c52f9eaf6ca3a3e23a3 (patch) | |
tree | 019aa6a1eaf0093f89e1b6062ece1cfb87807919 /source/gameengine | |
parent | 4a305e7edb3c3cb27078b0e2b715b5b7b709f400 (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.cpp | 7 |
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; } } |