diff options
Diffstat (limited to 'source/gameengine/GamePlayer/ghost/GPG_ghost.cpp')
-rw-r--r-- | source/gameengine/GamePlayer/ghost/GPG_ghost.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp index 1a6501fae6e..915fe614957 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp @@ -64,6 +64,7 @@ extern "C" #include "BLO_readfile.h" #include "BLO_runtime.h" +#include "BKE_appdir.h" #include "BKE_blender.h" #include "BKE_depsgraph.h" #include "BKE_global.h" @@ -79,6 +80,10 @@ extern "C" #include "IMB_imbuf.h" #include "IMB_moviecache.h" +#ifdef __APPLE__ + int GHOST_HACK_getFirstFile(char buf[]); +#endif + // For BLF #include "BLF_api.h" #include "BLF_translation.h" @@ -296,6 +301,12 @@ static void get_filename(int argc, char **argv, char *filename) if (BLI_exists(argv[argc-1])) { BLI_strncpy(filename, argv[argc-1], FILE_MAX); } + if (::strncmp(argv[argc-1], "-psn_", 5)==0) { + static char firstfilebuf[512]; + if (GHOST_HACK_getFirstFile(firstfilebuf)) { + BLI_strncpy(filename, firstfilebuf, FILE_MAX); + } + } } srclen -= ::strlen("MacOS/blenderplayer"); @@ -430,8 +441,8 @@ int main(int argc, char** argv) sdlewInit(); #endif - BLI_init_program_path(argv[0]); - BLI_temp_dir_init(NULL); + BKE_appdir_program_path_init(argv[0]); + BKE_tempdir_init(NULL); // We don't use threads directly in the BGE, but we need to call this so things like // freeing up GPU_Textures works correctly. @@ -870,7 +881,7 @@ int main(int argc, char** argv) } } else { - bfd = load_game_data(BLI_program_path(), filename[0]? filename: NULL); + bfd = load_game_data(BKE_appdir_program_path(), filename[0]? filename: NULL); } #if defined(DEBUG) @@ -1142,7 +1153,7 @@ int main(int argc, char** argv) MEM_printmemlist(); } - BLI_temp_dir_session_purge(); + BKE_tempdir_session_purge(); return error ? -1 : 0; } |