diff options
Diffstat (limited to 'main/main.cpp')
| -rw-r--r-- | main/main.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/main/main.cpp b/main/main.cpp index 21fb61c81..87713b9b3 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1037,18 +1037,24 @@ bool Main::start() { if (!absolute) { - int sep=local_game_path.find_last("/"); + if (Globals::get_singleton()->is_using_datapack()) { + + local_game_path="res://"+local_game_path; - if (sep==-1) { - DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); - local_game_path=da->get_current_dir()+"/"+local_game_path; - memdelete(da) ; } else { + int sep=local_game_path.find_last("/"); + + if (sep==-1) { + DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + local_game_path=da->get_current_dir()+"/"+local_game_path; + memdelete(da) ; + } else { - DirAccess *da = DirAccess::open(local_game_path.substr(0,sep)); - if (da) { - local_game_path=da->get_current_dir()+"/"+local_game_path.substr(sep+1,local_game_path.length());; - memdelete(da); + DirAccess *da = DirAccess::open(local_game_path.substr(0,sep)); + if (da) { + local_game_path=da->get_current_dir()+"/"+local_game_path.substr(sep+1,local_game_path.length());; + memdelete(da); + } } } |
