diff --git a/source/src/cube.h b/source/src/cube.h index 594a8d2e..4d2e83fb 100644 --- a/source/src/cube.h +++ b/source/src/cube.h @@ -51,12 +51,12 @@ extern int hwtexsize, hwmaxaniso; extern int numspawn[3], maploaded, numflagspawn[2]; extern int verbose; -#include "protos.h" // external function decls - #define AC_VERSION 1111 #define AC_MASTER_URI "assault.cubers.net" #define AC_MASTER_PORT 28760 #define MAXCL 20 +#include "protos.h" // external function decls + #endif diff --git a/source/src/protos.h b/source/src/protos.h index c9e6e29c..588880ff 100644 --- a/source/src/protos.h +++ b/source/src/protos.h @@ -826,6 +826,8 @@ extern void trimtrailingwhitespace(char *s); extern void cutcolorstring(char *text, int len); extern void startintermission(); extern void restoreserverstate(vector &ents); +extern string mastername; +extern int masterport; extern ENetSocket connectmaster(); extern uchar *retrieveservers(uchar *buf, int buflen); extern void serverms(int mode, int numplayers, int minremain, char *smapname, int millis, const ENetAddress &localaddr, int *mnum, int *msend, int *mrec, int *cnum, int *csend, int *crec, int protocol_version); @@ -921,6 +923,11 @@ struct servercommandline int ai = atoi(arg+16); demotimelocal = ai == 0 ? 0 : 1; } + else if(!strncmp(arg, "--masterport=", 13)) + { + int ai = atoi(arg+13); + masterport = ai == 0 ? AC_MASTER_PORT : ai; + } else return false; break; case 'u': uprate = ai; break; diff --git a/source/src/serverbrowser.cpp b/source/src/serverbrowser.cpp index b44e0d3d..e1adc1b3 100644 --- a/source/src/serverbrowser.cpp +++ b/source/src/serverbrowser.cpp @@ -245,7 +245,7 @@ int connectwithtimeout(ENetSocket sock, const char *hostname, ENetAddress &addre return result; } - defformatstring(text)("connecting to %s... (esc to abort)", hostname); + defformatstring(text)("connecting to %s:%d... (esc to abort)", hostname, address.port); show_out_of_renderloop_progress(0, text); if(!connmutex) connmutex = SDL_CreateMutex(); @@ -1283,8 +1283,7 @@ void retrieveservers(vector &data) } clfail = false; - extern string mastername; - defformatstring(text)("retrieving servers from %s... (esc to abort)", mastername); + defformatstring(text)("retrieving servers from %s:%d... (esc to abort)", mastername, masterport); show_out_of_renderloop_progress(0, text); int starttime = SDL_GetTicks(), timeout = 0; diff --git a/source/src/serverms.cpp b/source/src/serverms.cpp index fee15fc4..30154dce 100644 --- a/source/src/serverms.cpp +++ b/source/src/serverms.cpp @@ -19,6 +19,7 @@ int connectwithtimeout(ENetSocket sock, const char *hostname, ENetAddress &remot ENetSocket mastersock = ENET_SOCKET_NULL; ENetAddress masteraddress = { ENET_HOST_ANY, ENET_PORT_ANY }, serveraddress = { ENET_HOST_ANY, ENET_PORT_ANY }; string mastername = AC_MASTER_URI; +int masterport = AC_MASTER_PORT; int lastupdatemaster = 0; vector masterout, masterin; int masteroutpos = 0, masterinpos = 0; @@ -48,8 +49,8 @@ ENetSocket connectmaster() if(masteraddress.host == ENET_HOST_ANY) { - logline(ACLOG_INFO, "looking up %s...", mastername); - masteraddress.port = AC_MASTER_PORT; + logline(ACLOG_INFO, "looking up %s:%d...", mastername, masterport); + masteraddress.port = masterport; if(!resolverwait(mastername, &masteraddress)) return ENET_SOCKET_NULL; } ENetSocket sock = enet_socket_create(ENET_SOCKET_TYPE_STREAM);