summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortomas <tomas@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-07-05 20:26:32 +0000
committertomas <tomas@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-07-05 20:26:32 +0000
commite44ef9a5f396ef377de7da07d0dc107d4b36ddc9 (patch)
treedd610daa14166e4097b817e0ab69d64f2a613050
parentd847c45f743194b37fcaa804610a150b5f82af69 (diff)
- Byla vylepsena tabulka se seznamem serveru
- Pridany lokalizacni retezce popisku kolonek v server browseru git-svn-id: http://opensvn.csie.org/tuxanci_ng@100 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
-rw-r--r--config.h2
-rw-r--r--data/lang/cs.lang6
-rw-r--r--data/lang/en.lang9
-rw-r--r--data/lang/fr.lang8
-rw-r--r--data/lang/sk.lang10
-rw-r--r--src/screen/screen_browser.c112
6 files changed, 119 insertions, 28 deletions
diff --git a/config.h b/config.h
index 6e1079d..e758e4e 100644
--- a/config.h
+++ b/config.h
@@ -1,4 +1,4 @@
-#define TUXANCI_NG_VERSION "svn99"
+#define TUXANCI_NG_VERSION "svn100"
#define DESTDIR "/usr/local/"
diff --git a/data/lang/cs.lang b/data/lang/cs.lang
index 9920dfa..85b9564 100644
--- a/data/lang/cs.lang
+++ b/data/lang/cs.lang
@@ -18,6 +18,12 @@ NEXT Další
# browser
REFRESH Obnovit
+SERVER Server
+VERSION Verze
+ADDRESS Adresa
+ARENA Aréna
+CLIENTS Hráči
+PING Odezva
# error message
ERROR_BAD_VERSION Máte verzi klienta, kterou server nepodporuje.
diff --git a/data/lang/en.lang b/data/lang/en.lang
index 2fbfaca..d864bc1 100644
--- a/data/lang/en.lang
+++ b/data/lang/en.lang
@@ -18,6 +18,12 @@ NEXT Next
# browser
REFRESH Refresh
+SERVER Server
+VERSION Version
+ADDRESS Address
+ARENA Arena
+CLIENTS Players
+PING Ping
# error message
ERROR_BAD_VERSION Version of your client isn't supported by the server.
@@ -36,7 +42,6 @@ NAME_PLAYER1 Player 1:
NAME_PLAYER2 Player 2:
MUSIC Music:
SOUND Sound:
-BROWSER Browser
# settings - game type
NONE Local game
@@ -44,3 +49,5 @@ SERVER Set up a server
CLIENT Network game
IP_ADDR IP address:
NET_PORT Network port:
+BROWSER Browser
+
diff --git a/data/lang/fr.lang b/data/lang/fr.lang
index 84a1326..36f0b25 100644
--- a/data/lang/fr.lang
+++ b/data/lang/fr.lang
@@ -19,6 +19,12 @@ NEXT Suivant
# browser
REFRESH Refresh
+SERVER Server
+VERSION Version
+ADDRESS Address
+ARENA Arena
+CLIENTS Players
+PING Ping
# error message
ERROR_BAD_VERSION Version of your client isn't supported by the server.
@@ -36,4 +42,4 @@ NAME_PLAYER1 Joueur de droite :
NAME_PLAYER2 Joueur de gauche :
MUSIC Musique :
SOUND Son :
-BROWSER Browser \ No newline at end of file
+BROWSER Browser
diff --git a/data/lang/sk.lang b/data/lang/sk.lang
index bd710c4..e7c0356 100644
--- a/data/lang/sk.lang
+++ b/data/lang/sk.lang
@@ -18,6 +18,12 @@ NEXT Ďalej
# browser
REFRESH Refresh
+SERVER Server
+VERSION Version
+ADDRESS Address
+ARENA Arena
+CLIENTS Players
+PING Ping
# error message
ERROR_BAD_VERSION Mate verziu clienta, ktoru server nepodporuje.
@@ -36,11 +42,11 @@ NAME_PLAYER1 Meno Hraca 1:
NAME_PLAYER2 Meno Hraca 2:
MUSIC Hudba:
SOUND Zvuk:
-BROWSER Browser
# settings - game type
NONE žiadne
SERVER server
CLIENT client
IP_ADDR IP adresa:
-NET_PORT Sieotvy port: \ No newline at end of file
+NET_PORT Sieotvy port:
+BROWSER Browser
diff --git a/src/screen/screen_browser.c b/src/screen/screen_browser.c
index 531047c..2b2c0b2 100644
--- a/src/screen/screen_browser.c
+++ b/src/screen/screen_browser.c
@@ -52,6 +52,11 @@ static widget_button_t *button_back;
static widget_button_t *button_refresh;
static widget_label_t *label_server;
+static widget_label_t *label_version;
+static widget_label_t *label_address;
+static widget_label_t *label_arena;
+static widget_label_t *label_players;
+static widget_label_t *label_ping;
static widget_select_t *select_server;
@@ -77,6 +82,11 @@ void drawScreenBrowser()
drawWidgetImage(image_backgorund);
drawWidgetLabel(label_server);
+ drawWidgetLabel(label_version);
+ drawWidgetLabel(label_address);
+ drawWidgetLabel(label_arena);
+ drawWidgetLabel(label_players);
+ drawWidgetLabel(label_ping);
drawWidgetSelect(select_server);
@@ -411,16 +421,15 @@ static int LoadServers ()
}
struct timeval tv;
- // Mno�ina
+
fd_set myset;
- // Mno�ina obsahuje n�hodn� data. Odstran�m je.
+
FD_ZERO(&myset);
- // Zapln�n� mno�iny sokety
FD_SET(s, &myset);
- // Vypln�m �asov� �daj (nap��klad na 3 minuty)
- tv.tv_sec = 3;// Po�et sekund
- tv.tv_usec = 0;// Po�et mikrosekund
- // Zavol�m select (V Linuxu mus�m m�t nastavenou prom�nnou max.)
+
+ tv.tv_sec = 3;
+ tv.tv_usec = 0;
+
int ret = select (s+1, NULL, &myset, NULL, &tv);
if (ret == -1)
@@ -432,9 +441,7 @@ static int LoadServers ()
/* send request for server list */
send (s, "l", 1, 0);
- // Mno�ina obsahuje n�hodn� data. Odstran�m je.
FD_ZERO(&myset);
- // Zapln�n� mno�iny sokety
FD_SET(s, &myset);
ret = select (s+1, &myset, NULL, NULL, &tv);
@@ -485,14 +492,38 @@ static int LoadServers ()
char *address = (char *) inet_ntoa (srv);
+ memset (list, ' ', 254);
+ list[255] = '\0';
+
if (ret == 1) {
- sprintf (list, "%s (%s) - %s:%d - %s - %d/%d - %dms", ctx->name ? ctx->name : "Unknown", ctx->version, address, ctx->port,
- ctx->arena ? ctx->arena : "Unknown", ctx->clients, ctx->maxclients, ctx->ping);
- } else if (ret == -2)
- sprintf (list, "%s:%d - Timeout", address, ctx->port);
- else
- sprintf (list, "%s:%d - Offline", address, ctx->port);
+ /*sprintf (list, "%s (%s) - %s:%d - %s - %d/%d - %dms", ctx->name ? ctx->name : "Unknown", ctx->version, address, ctx->port,
+ ctx->arena ? ctx->arena : "Unknown", ctx->clients, ctx->maxclients, ctx->ping);*/
+
+ if (ctx->name)
+ memcpy (list, ctx->name, strlen (ctx->name));
+ else
+ memcpy (list, "Unknown", 7);
+
+ memcpy (list+30, ctx->version, strlen (ctx->version));
+
+ unsigned a_len = strlen (address);
+ memcpy (list+38, address, a_len);
+ memcpy (list+38+a_len, ":", 1);
+
+ sprintf (buf, "%d", ctx->port);
+
+ memcpy (list+39+a_len, buf, strlen (buf));
+
+ memcpy (list+60, ctx->arena, strlen (ctx->arena));
+
+ sprintf (buf, "%d/%d", ctx->clients, ctx->maxclients);
+
+ memcpy (list+75, buf, strlen (buf));
+
+ sprintf (buf, "%dms", ctx->ping);
+ memcpy (list+83, buf, strlen (buf));
+ }
addToWidgetSelect(select_server, list);
@@ -534,6 +565,7 @@ static int RefreshServers ()
server->arena = 0;
char list[256];
+ char buf[32];
int ret = server_getinfo (server);
@@ -542,12 +574,34 @@ static int RefreshServers ()
char *address = (char *) inet_ntoa (srv);
if (ret == 1) {
- sprintf (list, "%s (%s) - %s:%d - %s - %d/%d - %dms", server->name ? server->name : "Unknown", server->version,
- address, server->port, server->arena ? server->arena : "Unknown", server->clients, server->maxclients, server->ping);
- } else if (ret == -2)
- sprintf (list, "%s:%d - Timeout", address, server->port);
- else
- sprintf (list, "%s:%d - Offline", address, server->port);
+ memset (list, ' ', 254);
+ list[255] = '\0';
+
+ if (server->name)
+ memcpy (list, server->name, strlen (server->name));
+ else
+ memcpy (list, "Unknown", 7);
+
+ memcpy (list+30, server->version, strlen (server->version));
+
+ unsigned a_len = strlen (address);
+ memcpy (list+38, address, a_len);
+ memcpy (list+38+a_len, ":", 1);
+
+ sprintf (buf, "%d", server->port);
+
+ memcpy (list+39+a_len, buf, strlen (buf));
+
+ memcpy (list+60, server->arena, strlen (server->arena));
+
+ sprintf (buf, "%d/%d", server->clients, server->maxclients);
+
+ memcpy (list+75, buf, strlen (buf));
+
+ sprintf (buf, "%dms", server->ping);
+
+ memcpy (list+83, buf, strlen (buf));
+ }
addToWidgetSelect(select_server, list);
@@ -567,9 +621,14 @@ void initScreenBrowser()
button_play = newWidgetButton(getMyText("PLAY"), WINDOW_SIZE_X-200, WINDOW_SIZE_Y-100, eventWidget);
button_refresh = newWidgetButton(getMyText("REFRESH"), WINDOW_SIZE_X/2-50, WINDOW_SIZE_Y-100, eventWidget);
- label_server = newWidgetLabel("Server list", 50, 145, WIDGET_LABEL_LEFT);
+ label_server = newWidgetLabel(getMyText("SERVER"), 120, 145, WIDGET_LABEL_LEFT);
+ label_version = newWidgetLabel(getMyText("VERSION"), 290, 145, WIDGET_LABEL_LEFT);
+ label_address = newWidgetLabel(getMyText("ADDRESS"), 400, 145, WIDGET_LABEL_LEFT);
+ label_arena = newWidgetLabel(getMyText("ARENA"), 550, 145, WIDGET_LABEL_LEFT);
+ label_players = newWidgetLabel(getMyText("CLIENTS"), 645, 145, WIDGET_LABEL_LEFT);
+ label_ping = newWidgetLabel(getMyText("PING"), 720, 145, WIDGET_LABEL_LEFT);
- select_server = newWidgetSelect(label_server->x, label_server->y+40, eventWidget);
+ select_server = newWidgetSelect(50, label_server->y+40, eventWidget);
registerScreen( newScreen("browser", startScreenBrowser, eventScreenBrowser,
drawScreenBrowser, stopScreenBrowser) );
@@ -585,7 +644,14 @@ void quitScreenBrowser()
destroyWidgetButton(button_play);
destroyWidgetButton(button_back);
destroyWidgetButton(button_refresh);
+
destroyWidgetLabel(label_server);
+ destroyWidgetLabel(label_version);
+ destroyWidgetLabel(label_address);
+ destroyWidgetLabel(label_arena);
+ destroyWidgetLabel(label_players);
+ destroyWidgetLabel(label_ping);
+
destroyWidgetSelect(select_server);
}