diff --git a/console.c b/console.c index 21bb8f6d62..6f0b684f4e 100644 --- a/console.c +++ b/console.c @@ -436,7 +436,7 @@ void IConsoleVarRegister(const byte * name, void * addr, byte type) } } -void IConsoleVarMemRegister(byte * name, byte type) /* XXX TRON */ +void IConsoleVarMemRegister(const byte * name, byte type) { _iconsole_var * item; item = IConsoleVarAlloc(type); diff --git a/console.h b/console.h index b72b3cc3c1..fb3a7aa96a 100644 --- a/console.h +++ b/console.h @@ -102,7 +102,7 @@ void* IConsoleCmdGetAddr(byte * name); // *** Variables *** // void IConsoleVarRegister(const byte * name, void * addr, byte type); -void IConsoleVarMemRegister(byte * name, byte type); +void IConsoleVarMemRegister(const byte * name, byte type); void IConsoleVarInsert(_iconsole_var * var, const byte * name); _iconsole_var * IConsoleVarGet(const byte * name); _iconsole_var * IConsoleVarAlloc(byte type); @@ -124,5 +124,4 @@ void IConsoleCmdHook(const byte * name, byte type, void * proc); bool IConsoleVarHookHandle(_iconsole_var * hook_var, byte type); bool IConsoleCmdHookHandle(_iconsole_cmd * hook_cmd, byte type); - #endif /* CONSOLE_H */ diff --git a/console_cmds.c b/console_cmds.c index 948bc7b039..8afcbe8d58 100644 --- a/console_cmds.c +++ b/console_cmds.c @@ -96,43 +96,29 @@ DEF_CONSOLE_CMD(ConScrollToTile) DEF_CONSOLE_CMD(ConNetworkConnect) { - byte * b; - byte * ip = NULL; - byte * port = NULL; - byte * player = NULL; - byte c; + byte * ip; + const byte *port = NULL; + const byte *player = NULL; uint16 rport; if (argc<2) return NULL; - b = argv[1]; + ip = argv[1]; rport = _network_server_port; - c = 0; - ip = b; - while (b[c] != 0) { - if (((char)b[c]) == '#') { - player = &b[c+1]; - b[c] = 0; - } - if (((char)b[c]) == ':') { - port = &b[c+1]; - b[c] = 0; - } - c++; - } + ParseConnectionString(&player, &port, ip); - IConsolePrintF(_iconsole_color_default,"Connecting to %s...",ip); + IConsolePrintF(_iconsole_color_default,"Connecting to %s...", ip); if (player!=NULL) { _network_playas = atoi(player); - IConsolePrintF(_iconsole_color_default," player-no: %s",player); + IConsolePrintF(_iconsole_color_default," player-no: %s", player); } if (port!=NULL) { rport = atoi(port); - IConsolePrintF(_iconsole_color_default," port: %s",port); + IConsolePrintF(_iconsole_color_default," port: %s", port); } - NetworkCoreConnectGame(b, rport); + NetworkCoreConnectGame(ip, rport); return NULL; } diff --git a/network.c b/network.c index e2596d1927..5ec84508f3 100644 --- a/network.c +++ b/network.c @@ -1653,6 +1653,22 @@ void NetworkCoreShutdown() /* *************************************************** */ +void ParseConnectionString(const byte **player, const byte **port, byte *connection_string) +{ + byte c = 0; + while (connection_string[c] != '\0') { + if (connection_string[c] == '#') { + *player = &connection_string[c+1]; + connection_string[c] = '\0'; + } + if (connection_string[c] == ':') { + *port = &connection_string[c+1]; + connection_string[c] = '\0'; + } + c++; + } +} + bool NetworkCoreConnectGame(const byte* b, unsigned short port) { if (!_network_available) return false; @@ -1901,6 +1917,7 @@ void NetworkCoreInit() { _network_available=false; }; void NetworkCoreShutdown() {}; void NetworkCoreDisconnect() {}; void NetworkCoreLoop(bool incomming) {}; +void ParseConnectionString(const byte **player, const byte **port, byte *connection_string) {}; bool NetworkCoreConnectGame(const byte* b, unsigned short port) {return false;}; bool NetworkCoreStartGame() {return false;}; void NetworkLobbyShutdown() {}; diff --git a/network.h b/network.h index e4fd42a360..df4871ba99 100644 --- a/network.h +++ b/network.h @@ -27,4 +27,6 @@ typedef struct NetworkGameList { NetworkGameInfo _network_game; NetworkGameList * _network_game_list; +void ParseConnectionString(const byte **player, const byte **port, byte *connection_string); + #endif /* NETWORK_H */ diff --git a/network_gui.c b/network_gui.c index cfacbe2624..216be02c88 100644 --- a/network_gui.c +++ b/network_gui.c @@ -170,27 +170,13 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e) case WE_ON_EDIT_TEXT: { byte *b = e->edittext.str; if (*b != 0) { - byte * ip = NULL; - byte * port = NULL; - byte * player = NULL; - byte c; + const byte *port = NULL; + const byte *player = NULL; uint16 rport; rport = _network_server_port; - c = 0; - ip = b; - while (b[c] != 0) { - if (((char)b[c]) == '#') { - player = &b[c+1]; - b[c] = 0; - } - if (((char)b[c]) == ':') { - port = &b[c+1]; - b[c] = 0; - } - c++; - } + ParseConnectionString(&player, &port, b); if (player!=NULL) _network_playas = atoi(player); if (port!=NULL) rport = atoi(port);