diff options
-rw-r--r-- | docs/manaplus.6 | 3 | ||||
-rw-r--r-- | src/client.cpp | 5 | ||||
-rw-r--r-- | src/main.cpp | 8 | ||||
-rw-r--r-- | src/options.h | 2 |
4 files changed, 17 insertions, 1 deletions
diff --git a/docs/manaplus.6 b/docs/manaplus.6 index 507092aab..051d054e8 100644 --- a/docs/manaplus.6 +++ b/docs/manaplus.6 @@ -42,6 +42,9 @@ Login with this character. .B \-s, \-\-server Login server name or IP. .TP +.B \-y, \-\-server-type +Login server type. +.TP .B \-p, \-\-port Login server port. .TP diff --git a/src/client.cpp b/src/client.cpp index 8a6f885c7..f0919ed9a 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -404,6 +404,11 @@ void Client::gameInit() // Initialize default server mCurrentServer.hostname = settings.options.serverName; mCurrentServer.port = settings.options.serverPort; + if (!settings.options.serverType.empty()) + { + mCurrentServer.type = ServerInfo::parseType( + settings.options.serverType); + } loginData.username = settings.options.username; loginData.password = settings.options.password; diff --git a/src/main.cpp b/src/main.cpp index 7fc00918f..da445aab6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -107,6 +107,8 @@ static void printHelp() // TRANSLATORS: command line help << _(" -s --server : Login server name or IP") << std::endl // TRANSLATORS: command line help + << _(" -y --server-type : Login server type") << std::endl + // TRANSLATORS: command line help << _(" -p --port : Login server port") << std::endl // TRANSLATORS: command line help << _(" -H --update-host : Use this update host") << std::endl @@ -146,7 +148,7 @@ static void printVersion() static void parseOptions(const int argc, char *const argv[]) { - const char *const optstring = "hvud:U:P:Dc:p:l:L:C:s:t:T:a:r"; + const char *const optstring = "hvud:U:P:Dc:p:y:l:L:C:s:t:T:a:r"; const struct option long_options[] = { @@ -171,6 +173,7 @@ static void parseOptions(const int argc, char *const argv[]) { "tests", no_argument, nullptr, 'T' }, { "test", required_argument, nullptr, 't' }, { "renderer", required_argument, nullptr, 'r' }, + { "server-type", required_argument, nullptr, 'y' }, { nullptr, 0, nullptr, 0 } }; @@ -256,6 +259,9 @@ static void parseOptions(const int argc, char *const argv[]) case 'r': options.renderer = static_cast<int>(atoi(optarg)); break; + case 'y': + options.serverType = optarg; + break; default: break; } diff --git a/src/options.h b/src/options.h index def02200b..7f4a63ca7 100644 --- a/src/options.h +++ b/src/options.h @@ -54,6 +54,7 @@ struct Options final screenshotDir(), test(), serverName(), + serverType(), renderer(-1), serverPort(0), printHelp(false), @@ -79,6 +80,7 @@ struct Options final std::string screenshotDir; std::string test; std::string serverName; + std::string serverType; int renderer; uint16_t serverPort; bool printHelp; |