summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.cpp66
1 files changed, 37 insertions, 29 deletions
diff --git a/src/main.cpp b/src/main.cpp
index b92a4b2d..b57027d6 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -265,6 +265,9 @@ void init_engine(const Options &options)
resman->addToSearchPath(homeDir, false);
// Add the main data directory to our PhysicsFS search path
+ if (!options.dataPath.empty()) {
+ resman->addToSearchPath(options.dataPath, true);
+ }
resman->addToSearchPath("data", true);
#if defined __APPLE__
CFBundleRef mainBundle = CFBundleGetMainBundle();
@@ -436,16 +439,17 @@ void printHelp()
std::cout
<< "aethyra" << std::endl << std::endl
<< "Options: " << std::endl
- << " -h --help : Display this help" << std::endl
- << " -v --version : Display the version" << std::endl
- << " -u --skipupdate : Skip the update downloads" << std::endl
- << " -U --username : Login with this username" << std::endl
- << " -P --password : Login with this password" << std::endl
+ << " -C --configfile : Configuration file to use" << std::endl
+ << " -d --data : Directory to load game data from" << std::endl
<< " -D --default : Bypass the login process with default "
"settings" << std::endl
- << " -p --playername : Login with this player" << std::endl
- << " -C --configfile : Configuration file to use" << std::endl
+ << " -h --help : Display this help" << std::endl
<< " -H --updatehost : Use this update host" << std::endl;
+ << " -p --playername : Login with this player" << std::endl
+ << " -P --password : Login with this password" << std::endl
+ << " -u --skipupdate : Skip the update downloads" << std::endl
+ << " -U --username : Login with this username" << std::endl
+ << " -v --version : Display the version" << std::endl
}
void printVersion()
@@ -464,15 +468,16 @@ void parseOptions(int argc, char *argv[], Options &options)
const char *optstring = "hvuU:P:Dp:C:H:";
const struct option long_options[] = {
- { "help", no_argument, 0, 'h' },
- { "version", no_argument, 0, 'v' },
- { "skipupdate", no_argument, 0, 'u' },
- { "username", required_argument, 0, 'U' },
- { "password", required_argument, 0, 'P' },
+ { "configfile", required_argument, 0, 'C' },
+ { "data", required_argument, 0, 'd' },
{ "default", no_argument, 0, 'D' },
{ "playername", required_argument, 0, 'p' },
- { "configfile", required_argument, 0, 'C' },
+ { "password", required_argument, 0, 'P' },
+ { "help", no_argument, 0, 'h' },
{ "updatehost", required_argument, 0, 'H' },
+ { "skipupdate", no_argument, 0, 'u' },
+ { "username", required_argument, 0, 'U' },
+ { "version", no_argument, 0, 'v' },
{ 0 }
};
@@ -485,33 +490,36 @@ void parseOptions(int argc, char *argv[], Options &options)
}
switch (result) {
+ case 'C':
+ options.configPath = optarg;
+ break;
+ case 'd':
+ options.dataPath = optarg;
+ break;
+ case 'D':
+ options.chooseDefault = true;
+ break;
default: // Unknown option
case 'h':
options.printHelp = true;
break;
- case 'v':
- options.printVersion = true;
- break;
- case 'u':
- options.skipUpdate = true;
+ case 'H':
+ options.updateHost = optarg;
break;
- case 'U':
- options.username = optarg;
+ case 'p':
+ options.playername = optarg;
break;
case 'P':
options.password = optarg;
break;
- case 'D':
- options.chooseDefault = true;
- break;
- case 'p':
- options.playername = optarg;
+ case 'u':
+ options.skipUpdate = true;
break;
- case 'C':
- options.configPath = optarg;
+ case 'U':
+ options.username = optarg;
break;
- case 'H':
- options.updateHost = optarg;
+ case 'v':
+ options.printVersion = true;
break;
}
}