From 34698e13e9c98d4665f31157d32639b426afbed6 Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Wed, 19 Dec 2007 19:56:38 +0000 Subject: [PATCH] added version to server browser. fixed so that you can join a server even if you have --- src/engine/e_interface.h | 1 + src/engine/server/es_server.c | 2 +- src/game/client/gc_menu.cpp | 9 +++++++++ src/game/g_version.h | 2 +- src/game/server/gs_server.cpp | 5 +++-- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/engine/e_interface.h b/src/engine/e_interface.h index f17865a6b..111d5e54e 100644 --- a/src/engine/e_interface.h +++ b/src/engine/e_interface.h @@ -750,6 +750,7 @@ void mods_connected(int client_id); const char *modc_net_version(); const char *mods_net_version(); +const char *mods_version(); /* server */ int server_getclientinfo(int client_id, CLIENT_INFO *info); diff --git a/src/engine/server/es_server.c b/src/engine/server/es_server.c index 488fb9298..7cdaa0dc0 100644 --- a/src/engine/server/es_server.c +++ b/src/engine/server/es_server.c @@ -667,7 +667,7 @@ static void server_send_serverinfo(NETADDR4 *addr) packer_reset(&p); packer_add_raw(&p, SERVERBROWSE_INFO, sizeof(SERVERBROWSE_INFO)); - packer_add_string(&p, mods_net_version(), 32); + packer_add_string(&p, mods_version(), 32); packer_add_string(&p, config.sv_name, 64); packer_add_string(&p, config.sv_map, 32); diff --git a/src/game/client/gc_menu.cpp b/src/game/client/gc_menu.cpp index 11428ae7f..e56077efa 100644 --- a/src/game/client/gc_menu.cpp +++ b/src/game/client/gc_menu.cpp @@ -926,6 +926,7 @@ static void menu2_render_serverbrowser(RECT main_view) COL_PLAYERS, COL_PING, COL_PROGRESS, + COL_VERSION, }; static column cols[] = { @@ -936,6 +937,7 @@ static void menu2_render_serverbrowser(RECT main_view) {COL_MAP, BROWSESORT_MAP, "Map", 1, 100.0f, 0, {0}, {0}}, {COL_PLAYERS, BROWSESORT_NUMPLAYERS, "Players", 1, 60.0f, 0, {0}, {0}}, {-1, -1, " ", 1, 10.0f, 0, {0}, {0}}, + {COL_VERSION, -1, "Ver", 1, 40.0f, FIXED, {0}, {0}}, {COL_PROGRESS, BROWSESORT_PROGRESSION, "%", 1, 20.0f, FIXED, {0}, {0}}, {COL_PING, BROWSESORT_PING, "Ping", 1, 40.0f, FIXED, {0}, {0}}, }; @@ -1144,6 +1146,13 @@ static void menu2_render_serverbrowser(RECT main_view) item->progression = 100; ui2_draw_browse_icon(item->progression, &button); } + else if(id == COL_VERSION) + { + const char *version = item->version; + if(strcmp(version, "0.3 e2d7973c6647a13c") == 0) // TODO: remove me later on + version = "0.3.0"; + ui2_do_label(&button, version, 20.0f, 1); + } else if(id == COL_GAMETYPE) { const char *type = "???"; diff --git a/src/game/g_version.h b/src/game/g_version.h index 8f261c0fd..f9bbcf92c 100644 --- a/src/game/g_version.h +++ b/src/game/g_version.h @@ -1,4 +1,4 @@ /* copyright (c) 2007 magnus auvinen, see licence.txt for more info */ #include "generated/nethash.c" -#define TEEWARS_VERSION "0.3.0-dev" +#define TEEWARS_VERSION "0.3.1" #define TEEWARS_NETVERSION "0.3 " TEEWARS_NETVERSION_HASH diff --git a/src/game/server/gs_server.cpp b/src/game/server/gs_server.cpp index 3e0685a8d..fa8b38d5c 100644 --- a/src/game/server/gs_server.cpp +++ b/src/game/server/gs_server.cpp @@ -1924,11 +1924,11 @@ void mods_message(int msg, int client_id) players[client_id].color_feet = msg_unpack_int(); // check for invalid chars - const char *p = name; + unsigned char *p = (unsigned char *)name; while (*p) { if(*p < 32) - return; + *p = ' '; p++; } @@ -2086,3 +2086,4 @@ void mods_postsnap() } extern "C" const char *mods_net_version() { return TEEWARS_NETVERSION; } +extern "C" const char *mods_version() { return TEEWARS_VERSION; }