summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorOlafur Haukur Flygenring <olifly@gmail.com>2014-02-19 20:52:07 +0000
committerOlafur Haukur Flygenring <olifly@gmail.com>2014-02-19 20:52:07 +0000
commitc78a06536ebc7c2c2718eaf800c8227bdb07a931 (patch)
tree6e8d888dfe91c9717b85c18bca6e73d6a43789aa /main
parentec448845e295c4b8e897793b0971ebd9912e3101 (diff)
parent449bc14fb49d3266f5bd82dbe3c53a4b9f4062da (diff)
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'main')
-rw-r--r--main/main.cpp28
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);
+ }
}
}