diff options
author | Olafur Haukur Flygenring <olifly@gmail.com> | 2014-02-19 20:52:07 +0000 |
---|---|---|
committer | Olafur Haukur Flygenring <olifly@gmail.com> | 2014-02-19 20:52:07 +0000 |
commit | c78a06536ebc7c2c2718eaf800c8227bdb07a931 (patch) | |
tree | 6e8d888dfe91c9717b85c18bca6e73d6a43789aa /main | |
parent | ec448845e295c4b8e897793b0971ebd9912e3101 (diff) | |
parent | 449bc14fb49d3266f5bd82dbe3c53a4b9f4062da (diff) |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'main')
-rw-r--r-- | main/main.cpp | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/main/main.cpp b/main/main.cpp index 21fb61c81e..305cc88be7 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -202,7 +202,7 @@ Error Main::setup(const char *execpath,int argc, char *argv[],bool p_second_phas for(int i=0;i<argc;i++) { - args.push_back(argv[i]); + args.push_back(String::utf8(argv[i])); } List<String>::Element *I=args.front(); @@ -1037,18 +1037,24 @@ bool Main::start() { if (!absolute) { - int sep=local_game_path.find_last("/"); + if (Globals::get_singleton()->is_using_datapack()) { - if (sep==-1) { - DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); - local_game_path=da->get_current_dir()+"/"+local_game_path; - memdelete(da) ; - } else { + local_game_path="res://"+local_game_path; - 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); + } 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); + } } } |