diff --git a/src/app/app.cpp b/src/app/app.cpp index c245838d..cf509f91 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -208,7 +208,8 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) OPT_LOGLEVEL, OPT_LANGUAGE, OPT_LANGDIR, - OPT_VBO + OPT_VBO, + OPT_MOD }; option options[] = @@ -221,6 +222,7 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) { "language", required_argument, nullptr, OPT_LANGUAGE }, { "langdir", required_argument, nullptr, OPT_LANGDIR }, { "vbo", required_argument, nullptr, OPT_VBO }, + { "mod", required_argument, nullptr, OPT_MOD }, { nullptr, 0, nullptr, 0} }; @@ -259,6 +261,7 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) GetLogger()->Message(" -language lang set language (one of: en, de, fr, pl, ru)\n"); GetLogger()->Message(" -langdir path set custom language directory path\n"); GetLogger()->Message(" -vbo mode set OpenGL VBO mode (one of: auto, enable, disable)\n"); + GetLogger()->Message(" -mod path load datadir mod from given path\n"); return PARSE_ARGS_HELP; } case OPT_DEBUG: @@ -338,6 +341,13 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) break; } + case OPT_MOD: + { + GetLogger()->Info("Loading mod from \"%s\"\n", optarg); + CResourceManager::AddLocation(optarg, true); + + break; + } default: assert(false); // should never get here } diff --git a/src/app/main.cpp b/src/app/main.cpp index 324acc2b..6ba8da2a 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -79,7 +79,7 @@ int SDL_MAIN_FUNC(int argc, char *argv[]) { CLogger logger; // single istance of logger CResourceManager manager(argv[0]); - manager.AddLocation(COLOBOT_DEFAULT_DATADIR); + manager.AddLocation(COLOBOT_DEFAULT_DATADIR, false); // Initialize static string arrays InitializeRestext();