summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client.cpp12
-rw-r--r--src/net/net.cpp12
-rw-r--r--src/net/net.h2
3 files changed, 19 insertions, 7 deletions
diff --git a/src/client.cpp b/src/client.cpp
index b63550e6..3946d0f9 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -604,11 +604,13 @@ int Client::exec()
case STATE_CHOOSE_SERVER:
logger->log("State: CHOOSE SERVER");
- // Allow changing this using a server choice dialog
- // We show the dialog box only if the command-line
- // options weren't set.
- if (mOptions.serverName.empty() && mOptions.serverPort == 0
- && !branding.getValue("onlineServerList", "a").empty())
+ // If a server was passed on the command line, or branding
+ // provides a server and a blank server list, we skip the
+ // server selection dialog.
+ if (mOptions.serverName.empty() || mOptions.serverPort == 0
+ || !(!branding.getValue("defaultServer","").empty() &&
+ branding.getValue("defaultPort",0) &&
+ branding.getValue("onlineServerList", "").empty()))
{
// Don't allow an alpha opacity
// lower than the default value
diff --git a/src/net/net.cpp b/src/net/net.cpp
index 5e7c989f..7e7395a6 100644
--- a/src/net/net.cpp
+++ b/src/net/net.cpp
@@ -22,6 +22,7 @@
#include "net/net.h"
#include "main.h"
+#include "log.h"
#include "net/adminhandler.h"
#include "net/charhandler.h"
@@ -41,6 +42,8 @@
#include "net/manaserv/generalhandler.h"
+#include "utils/gettext.h"
+
Net::AdminHandler *adminHandler = NULL;
Net::CharHandler *charHandler = NULL;
Net::ChatHandler *chatHandler = NULL;
@@ -124,12 +127,19 @@ namespace Net
{
ServerInfo::Type networkType = ServerInfo::UNKNOWN;
-void connectToServer(const ServerInfo &server)
+void connectToServer(ServerInfo &server)
{
if (server.type == ServerInfo::UNKNOWN)
{
// TODO: Query the server about itself and choose the netcode based on
// that
+
+ if (server.port == 6901)
+ server.type = ServerInfo::TMWATHENA;
+ else if (server.port == 9601)
+ server.type = ServerInfo::MANASERV;
+ else
+ logger->error(_("Unknown Server Type! Exiting."));
}
if (networkType == server.type && getGeneralHandler() != NULL)
diff --git a/src/net/net.h b/src/net/net.h
index 9d9ee10e..6029f3ba 100644
--- a/src/net/net.h
+++ b/src/net/net.h
@@ -67,7 +67,7 @@ ServerInfo::Type getNetworkType();
/**
* Handles server detection and connection
*/
-void connectToServer(const ServerInfo &server);
+void connectToServer(ServerInfo &server);
void unload();