summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Zima <xhire@mujmalysvet.cz>2010-06-06 23:38:37 +0200
committerMichal Zima <xhire@mujmalysvet.cz>2010-06-07 15:28:53 +0200
commit0cb72c814fa839268ed7a09d59d82aa1514a8155 (patch)
tree8950f3a65d7983283f8c4ba2f666d3bc4b7921b6
parent7905c8b17b3a948c4d37d300db17e11217395ef8 (diff)
Added 'Reload' button to the server browser
-rw-r--r--po/cs_CZ.po26
-rw-r--r--po/de_DE.po24
-rw-r--r--po/tuxanci.pot24
-rw-r--r--src/screen/browser.c98
4 files changed, 95 insertions, 77 deletions
diff --git a/po/cs_CZ.po b/po/cs_CZ.po
index bc923c6..0857ddf 100644
--- a/po/cs_CZ.po
+++ b/po/cs_CZ.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: tuxanci\n"
"Report-Msgid-Bugs-To: team@tuxanci.org\n"
-"POT-Creation-Date: 2010-02-08 22:56+0100\n"
-"PO-Revision-Date: 2009-12-28 16:03+0100\n"
+"POT-Creation-Date: 2010-06-06 23:32+0200\n"
+"PO-Revision-Date: 2010-06-06 23:34+0200\n"
"Last-Translator: xHire <xhire@mujmalysvet.cz>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -72,7 +72,7 @@ msgid "Save"
msgstr "Uložit"
#: src/client/saveDialog.c:80
-#: src/screen/browser.c:714
+#: src/screen/browser.c:692
#: src/screen/credits.c:110
#: src/screen/downArena.c:372
#: src/screen/gameType.c:229
@@ -95,38 +95,42 @@ msgstr "Ne"
msgid "OK"
msgstr "OK"
-#: src/screen/browser.c:715
+#: src/screen/browser.c:693
#: src/screen/gameType.c:230
#: src/screen/choiceArena.c:204
msgid "Play"
msgstr "Hraj"
-#: src/screen/browser.c:717
+#: src/screen/browser.c:695
msgid "Refresh"
msgstr "Obnovit"
-#: src/screen/browser.c:721
+#: src/screen/browser.c:698
+msgid "Reload"
+msgstr "Znovu načíst"
+
+#: src/screen/browser.c:702
msgid "Server"
msgstr "Server"
-#: src/screen/browser.c:722
+#: src/screen/browser.c:703
msgid "Version"
msgstr "Verze"
-#: src/screen/browser.c:723
+#: src/screen/browser.c:704
#: src/screen/gameType.c:254
msgid "IP"
msgstr "IP"
-#: src/screen/browser.c:724
+#: src/screen/browser.c:705
msgid "Arena"
msgstr "Aréna"
-#: src/screen/browser.c:725
+#: src/screen/browser.c:706
msgid "Clients"
msgstr "Klienti"
-#: src/screen/browser.c:726
+#: src/screen/browser.c:707
msgid "Ping"
msgstr "Ping"
diff --git a/po/de_DE.po b/po/de_DE.po
index 9ce5002..d1cfc7b 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: tuxanci\n"
"Report-Msgid-Bugs-To: team@tuxanci.org\n"
-"POT-Creation-Date: 2010-02-08 22:56+0100\n"
+"POT-Creation-Date: 2010-06-06 23:32+0200\n"
"PO-Revision-Date: 2008-12-01 12:31+0100\n"
"Last-Translator: Evgeni Golov <sargentd@die-welt.net>\n"
"Language-Team: GERMAN <de@li.org>\n"
@@ -74,7 +74,7 @@ msgid "Save"
msgstr ""
#: src/client/saveDialog.c:80
-#: src/screen/browser.c:714
+#: src/screen/browser.c:692
#: src/screen/credits.c:110
#: src/screen/downArena.c:372
#: src/screen/gameType.c:229
@@ -97,42 +97,46 @@ msgstr ""
msgid "OK"
msgstr ""
-#: src/screen/browser.c:715
+#: src/screen/browser.c:693
#: src/screen/gameType.c:230
#: src/screen/choiceArena.c:204
msgid "Play"
msgstr "Spielen"
-#: src/screen/browser.c:717
+#: src/screen/browser.c:695
msgid "Refresh"
msgstr "Aktualisieren"
-#: src/screen/browser.c:721
+#: src/screen/browser.c:698
+msgid "Reload"
+msgstr ""
+
+#: src/screen/browser.c:702
#, fuzzy
msgid "Server"
msgstr "Server"
-#: src/screen/browser.c:722
+#: src/screen/browser.c:703
#, fuzzy
msgid "Version"
msgstr "Version"
-#: src/screen/browser.c:723
+#: src/screen/browser.c:704
#: src/screen/gameType.c:254
msgid "IP"
msgstr "IP"
-#: src/screen/browser.c:724
+#: src/screen/browser.c:705
#, fuzzy
msgid "Arena"
msgstr "Arena"
-#: src/screen/browser.c:725
+#: src/screen/browser.c:706
#, fuzzy
msgid "Clients"
msgstr "Clients"
-#: src/screen/browser.c:726
+#: src/screen/browser.c:707
#, fuzzy
msgid "Ping"
msgstr "Ping"
diff --git a/po/tuxanci.pot b/po/tuxanci.pot
index d251586..962dbef 100644
--- a/po/tuxanci.pot
+++ b/po/tuxanci.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: team@tuxanci.org\n"
-"POT-Creation-Date: 2010-02-08 22:56+0100\n"
+"POT-Creation-Date: 2010-06-06 23:32+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -73,7 +73,7 @@ msgid "Save"
msgstr ""
#: src/client/saveDialog.c:80
-#: src/screen/browser.c:714
+#: src/screen/browser.c:692
#: src/screen/credits.c:110
#: src/screen/downArena.c:372
#: src/screen/gameType.c:229
@@ -96,38 +96,42 @@ msgstr ""
msgid "OK"
msgstr ""
-#: src/screen/browser.c:715
+#: src/screen/browser.c:693
#: src/screen/gameType.c:230
#: src/screen/choiceArena.c:204
msgid "Play"
msgstr ""
-#: src/screen/browser.c:717
+#: src/screen/browser.c:695
msgid "Refresh"
msgstr ""
-#: src/screen/browser.c:721
+#: src/screen/browser.c:698
+msgid "Reload"
+msgstr ""
+
+#: src/screen/browser.c:702
msgid "Server"
msgstr ""
-#: src/screen/browser.c:722
+#: src/screen/browser.c:703
msgid "Version"
msgstr ""
-#: src/screen/browser.c:723
+#: src/screen/browser.c:704
#: src/screen/gameType.c:254
msgid "IP"
msgstr ""
-#: src/screen/browser.c:724
+#: src/screen/browser.c:705
msgid "Arena"
msgstr ""
-#: src/screen/browser.c:725
+#: src/screen/browser.c:706
msgid "Clients"
msgstr ""
-#: src/screen/browser.c:726
+#: src/screen/browser.c:707
msgid "Ping"
msgstr ""
diff --git a/src/screen/browser.c b/src/screen/browser.c
index 743a90d..bcbcc9f 100644
--- a/src/screen/browser.c
+++ b/src/screen/browser.c
@@ -36,7 +36,7 @@ extern int errno;
#ifndef NO_SOUND
#include "music.h"
-#endif
+#endif /* NO_SOUND */
#include "gameType.h"
#include "browser.h"
@@ -54,6 +54,7 @@ static widget_t *image_backgorund;
static widget_t *button_play;
static widget_t *button_back;
static widget_t *button_refresh;
+static widget_t *button_reload;
static widget_t *label_server;
static widget_t *label_version;
@@ -70,6 +71,7 @@ static server_t server_list;
static int LoadServers();
static int RefreshServers();
static server_t *server_getcurr();
+static void clear_server_list();
static void hotkey_escape()
{
@@ -80,7 +82,7 @@ void browser_start()
{
#ifndef NO_SOUND
music_play("menu", MUSIC_GROUP_BASE);
-#endif
+#endif /* NO_SOUND */
hot_key_register(SDLK_ESCAPE, hotkey_escape);
@@ -103,6 +105,7 @@ void browser_draw()
button_draw(button_play);
button_draw(button_back);
button_draw(button_refresh);
+ button_draw(button_reload);
}
void browser_event()
@@ -112,47 +115,16 @@ void browser_event()
button_event(button_play);
button_event(button_back);
button_event(button_refresh);
+ button_event(button_reload);
}
void browser_stop()
{
- unsigned i = 0;
- server_t *server;
-
- /*list_destroy_item(select_server->list, free);*/
- /*select_server->list = list_new();*/
select_remove_all(select_server);
hot_key_unregister(SDLK_ESCAPE);
- while (1) {
- i = 0;
- for (server = server_list.next; server != &server_list; server = server->next) {
- server->next->prev = server->prev;
- server->prev->next = server->next;
-
- if (server->name) {
- free(server->name);
- }
-
- if (server->version) {
- free(server->version);
- }
-
- if (server->arena) {
- free(server->arena);
- }
-
- free(server);
-
- i++;
- break;
- }
-
- if (!i) {
- return;
- }
- }
+ clear_server_list();
}
static void eventWidget(void *p)
@@ -192,6 +164,10 @@ static void eventWidget(void *p)
if (button == button_refresh) {
RefreshServers();
}
+
+ if (button == button_reload) {
+ LoadServers();
+ }
}
server_t *server_getcurr()
@@ -346,12 +322,12 @@ int server_getinfo(server_t *server)
"uptime: D\n"
*/
- /*unsigned i = 0;*/
int i = 0;
while (i < ret) {
- if (str[i] == '\n')
+ if (str[i] == '\n') {
str[i] = '\0';
+ }
i++;
}
@@ -455,13 +431,18 @@ static int LoadServers()
char buf[1025];
+ /* first of all ensure the server list is empty */
+ clear_server_list();
+ select_remove_all(select_server);
+
/* TODO: TCP macro */
struct sockaddr_in server;
char *master_server_ip;
master_server_ip = dns_resolv(NET_MASTER_SERVER_DOMAIN);
- if (master_server_ip == NULL) { /* master server is down? */
+ if (master_server_ip == NULL) {
+ warning("Did not obtained IP of the MasterServer");
return -1;
}
@@ -471,8 +452,9 @@ static int LoadServers()
free(master_server_ip);
- if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
- return 0;
+ if ((s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
+ warning("Unable to open socket for connection to MasterServer");
+ return -1;
}
/* Set to nonblocking socket mode */
@@ -558,7 +540,7 @@ static int LoadServers()
unsigned ip;
} response_head;
- while (1) {
+ for (;;) {
response_head *header = (response_head *) ((char *) buf + i);
server_t *ctx;
@@ -632,10 +614,6 @@ static int LoadServers()
static int RefreshServers()
{
-/*
- list_destroy_item(select_server->list, free);
- select_server->list = list_new();
-*/
select_remove_all(select_server);
struct in_addr srv;
@@ -715,8 +693,11 @@ void browser_init()
button_play = button_new(_("Play"), WINDOW_SIZE_X - 200, WINDOW_SIZE_Y - 100,
eventWidget);
button_refresh = button_new(_("Refresh"),
- WINDOW_SIZE_X / 2 - 50, WINDOW_SIZE_Y - 100,
+ WINDOW_SIZE_X / 2 - 130, WINDOW_SIZE_Y - 100,
eventWidget);
+ button_reload = button_new(_("Reload"),
+ WINDOW_SIZE_X / 2 + 35, WINDOW_SIZE_Y - 100,
+ eventWidget);
label_server = label_new(_("Server"), 120, 145, WIDGET_LABEL_LEFT);
label_version = label_new(_("Version"), 290, 145, WIDGET_LABEL_LEFT);
@@ -741,6 +722,7 @@ void browser_quit()
button_destroy(button_play);
button_destroy(button_back);
button_destroy(button_refresh);
+ button_destroy(button_reload);
label_destroy(label_server);
label_destroy(label_version);
@@ -751,3 +733,27 @@ void browser_quit()
select_destroy(select_server);
}
+
+static void clear_server_list()
+{
+ server_t *server;
+
+ for (server = server_list.next; server != &server_list; server = server_list.next) {
+ server->next->prev = server->prev;
+ server->prev->next = server->next;
+
+ if (server->name) {
+ free(server->name);
+ }
+
+ if (server->version) {
+ free(server->version);
+ }
+
+ if (server->arena) {
+ free(server->arena);
+ }
+
+ free(server);
+ }
+}