diff --git a/src/main.cpp b/src/main.cpp index e7e5baa56..f776951ee 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -608,6 +608,9 @@ void cmdLineHelp() " for some time (currently his finished time * 0.25 + 15.0). \n" " --team-choosing Allow choosing team in lobby, implicitly allowed in lan or\n" " password protected server.\n" + " --soccer-timed Use time limit mode in network soccer game.\n" + " --soccer-goals Use goals limit mode in network soccer game.\n" + " --network-gp=n Specify number of tracks used in network grand prix.\n" " --no-validation Allow non validated and unencrypted connection in wan.\n" " --ranked Server will submit ranking to stk addons server.\n" " You require permission for that.\n" @@ -1239,30 +1242,35 @@ int handleCmdLine() NetworkConfig::get()->setAutoConnect(true); } - if (CommandLine::has("--extra-server-info", &n)) + const bool is_soccer = + race_manager->getMinorMode() == RaceManager::MINOR_MODE_SOCCER; + if (CommandLine::has("--soccer-timed") && is_soccer) { - if (race_manager->getMinorMode() == RaceManager::MINOR_MODE_SOCCER) - { - LobbyProtocol::get()->getGameSetup() - ->setSoccerGoalTarget(n != 0); - NetworkConfig::get()->setServerMode( - race_manager->getMinorMode(), - RaceManager::MAJOR_MODE_SINGLE); - } - else - { - LobbyProtocol::get()->getGameSetup() - ->setGrandPrixTrack(n); - NetworkConfig::get()->setServerMode( - race_manager->getMinorMode(), - RaceManager::MAJOR_MODE_GRAND_PRIX); - } + LobbyProtocol::get()->getGameSetup() + ->setSoccerGoalTarget(false); + NetworkConfig::get()->setServerMode(race_manager->getMinorMode(), + RaceManager::MAJOR_MODE_SINGLE); + } + else if (CommandLine::has("--soccer-goals") && is_soccer) + { + LobbyProtocol::get()->getGameSetup() + ->setSoccerGoalTarget(true); + NetworkConfig::get()->setServerMode(race_manager->getMinorMode(), + RaceManager::MAJOR_MODE_SINGLE); + } + else if (CommandLine::has("--network-gp", &n)) + { + LobbyProtocol::get()->getGameSetup() + ->setGrandPrixTrack(n); + NetworkConfig::get()->setServerMode(race_manager->getMinorMode(), + RaceManager::MAJOR_MODE_GRAND_PRIX); } else { NetworkConfig::get()->setServerMode( race_manager->getMinorMode(), RaceManager::MAJOR_MODE_SINGLE); } + // The extra server info has to be set before server lobby started if (server_lobby) server_lobby->requestStart(); @@ -1341,21 +1349,6 @@ int handleCmdLine() race_manager->setDifficulty(RaceManager::Difficulty(n)); } // --mode - if(CommandLine::has("--type", &n)) - { - switch (n) - { - case 0: race_manager->setMinorMode(RaceManager::MINOR_MODE_NORMAL_RACE); - break; - case 1: race_manager->setMinorMode(RaceManager::MINOR_MODE_TIME_TRIAL); - break; - case 2: race_manager->setMinorMode(RaceManager::MINOR_MODE_FOLLOW_LEADER); - break; - default: - Log::warn("main", "Invalid race type '%d' - ignored.", n); - } - } // --type - if(CommandLine::has("--track", &s) || CommandLine::has("-t", &s)) { race_manager->setTrack(s); diff --git a/src/states_screens/create_server_screen.cpp b/src/states_screens/create_server_screen.cpp index 9ce28f11a..39c52f381 100644 --- a/src/states_screens/create_server_screen.cpp +++ b/src/states_screens/create_server_screen.cpp @@ -320,11 +320,14 @@ void CreateServerScreen::createServer() { // Grand prix track count if (esi > 0) - server_cfg << " --extra-server-info=" << esi; + server_cfg << " --network-gp=" << esi; } else { - server_cfg << " --extra-server-info=" << esi; + if (esi == 0) + server_cfg << " --soccer-timed"; + else + server_cfg << " --soccer-goals"; } }