summaryrefslogtreecommitdiff
path: root/src/screen/screen_browser.c
diff options
context:
space:
mode:
authorxHire <xhire@tuxportal.cz>2008-10-25 14:11:06 +0200
committerxHire <xhire@tuxportal.cz>2008-10-25 14:11:06 +0200
commitc8a9209d77a896bf49227e5aeccd54e91ccf29cc (patch)
tree6b7367406ebbc6ce3ea5e0c8668c75f6fb3f6ae9 /src/screen/screen_browser.c
parentcb9deba915dd7b114eeb76601eb1c8b07c1ba90f (diff)
Changed style of the code to the K&R standard
Diffstat (limited to 'src/screen/screen_browser.c')
-rw-r--r--src/screen/screen_browser.c871
1 files changed, 429 insertions, 442 deletions
diff --git a/src/screen/screen_browser.c b/src/screen/screen_browser.c
index 4b82edf..edf222a 100644
--- a/src/screen/screen_browser.c
+++ b/src/screen/screen_browser.c
@@ -15,15 +15,15 @@
#ifndef __WIN32__
-#include <sys/socket.h>
-#include <sys/select.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
+# include <sys/socket.h>
+# include <sys/select.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <arpa/inet.h>
+# include <netdb.h>
#else
-#include <windows.h>
-#include <wininet.h>
+# include <windows.h>
+# include <wininet.h>
#endif
#include <unistd.h>
@@ -36,7 +36,7 @@
extern int errno;
#ifndef NO_SOUND
-#include "music.h"
+# include "music.h"
#endif
#include "screen_gameType.h"
@@ -73,662 +73,649 @@ static int RefreshServers();
static server_t *server_getcurr();
-void
-startScreenBrowser()
+void startScreenBrowser()
{
#ifndef NO_SOUND
- playMusic("menu", MUSIC_GROUP_BASE);
+ playMusic("menu", MUSIC_GROUP_BASE);
#endif
- LoadServers();
+ LoadServers();
}
-void
-drawScreenBrowser()
+void drawScreenBrowser()
{
- drawWidgetImage(image_backgorund);
+ drawWidgetImage(image_backgorund);
- drawWidgetLabel(label_server);
- drawWidgetLabel(label_version);
- drawWidgetLabel(label_address);
- drawWidgetLabel(label_arena);
- drawWidgetLabel(label_players);
- drawWidgetLabel(label_ping);
+ drawWidgetLabel(label_server);
+ drawWidgetLabel(label_version);
+ drawWidgetLabel(label_address);
+ drawWidgetLabel(label_arena);
+ drawWidgetLabel(label_players);
+ drawWidgetLabel(label_ping);
- drawWidgetSelect(select_server);
+ drawWidgetSelect(select_server);
- drawWidgetButton(button_play);
- drawWidgetButton(button_back);
- drawWidgetButton(button_refresh);
+ drawWidgetButton(button_play);
+ drawWidgetButton(button_back);
+ drawWidgetButton(button_refresh);
}
-void
-eventScreenBrowser()
+void eventScreenBrowser()
{
- eventWidgetSelect(select_server);
+ eventWidgetSelect(select_server);
- eventWidgetButton(button_play);
- eventWidgetButton(button_back);
- eventWidgetButton(button_refresh);
+ eventWidgetButton(button_play);
+ eventWidgetButton(button_back);
+ eventWidgetButton(button_refresh);
}
-void
-stopScreenBrowser()
+void stopScreenBrowser()
{
- unsigned i = 0;
- server_t *server;
+ unsigned i = 0;
+ server_t *server;
- //destroyListItem(select_server->list, free);
- //select_server->list = newList();
- removeAllFromWidgetSelect(select_server);
+ //destroyListItem(select_server->list, free);
+ //select_server->list = newList();
+ removeAllFromWidgetSelect(select_server);
- 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;
+ 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->name)
+ free(server->name);
- if (server->version)
- free(server->version);
+ if (server->version)
+ free(server->version);
- if (server->arena)
- free(server->arena);
+ if (server->arena)
+ free(server->arena);
- free(server);
+ free(server);
- i++;
- break;
- }
+ i++;
+ break;
+ }
- if (!i)
- return;
- }
+ if (!i)
+ return;
+ }
}
-static void
-eventWidget(void *p)
+static void eventWidget(void *p)
{
- widget_t *button;
+ widget_t *button;
- button = (widget_t *) (p);
+ button = (widget_t *) (p);
- if (button == button_play) {
- server_t *server = server_getcurr();
+ if (button == button_play) {
+ server_t *server = server_getcurr();
- if (!server)
- return;
+ if (!server)
+ return;
- /* server je offline */
- if (!server->state)
- return;
+ /* server je offline */
+ if (!server->state)
+ return;
- struct in_addr srv;
- srv.s_addr = server->ip;
+ struct in_addr srv;
+ srv.s_addr = server->ip;
- char *address = (char *) inet_ntoa(srv);
+ char *address = (char *) inet_ntoa(srv);
- setSettingGameType(NET_GAME_TYPE_CLIENT);
- setSettingIP(address);
- setSettingPort(server->port);
+ setSettingGameType(NET_GAME_TYPE_CLIENT);
+ setSettingIP(address);
+ setSettingPort(server->port);
- setScreen("world");
- }
+ setScreen("world");
+ }
- if (button == button_back) {
- setScreen("gameType");
- }
+ if (button == button_back) {
+ setScreen("gameType");
+ }
- if (button == button_refresh) {
- RefreshServers();
- }
+ if (button == button_refresh) {
+ RefreshServers();
+ }
}
-server_t *
-server_getcurr()
+server_t *server_getcurr()
{
- unsigned i = 0;
- server_t *server;
+ unsigned i = 0;
+ server_t *server;
- for (server = server_list.next; server != &server_list;
- server = server->next) {
- if (i == getWidgetSelectIndex(select_server))
- return server;
+ for (server = server_list.next; server != &server_list;
+ server = server->next) {
+ if (i == getWidgetSelectIndex(select_server))
+ return server;
- i++;
- }
+ i++;
+ }
- return 0;
+ return 0;
}
-int
-server_getinfo(server_t * server)
+int server_getinfo(server_t * server)
{
- struct sockaddr_in srv;
- int mySocket;
-
- if ((mySocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) {
- return -1;
- }
+ struct sockaddr_in srv;
+ int mySocket;
+ if ((mySocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) {
+ return -1;
+ }
#ifndef __WIN32__
- // Lets make socket non-blocking
- int oldFlag = fcntl(mySocket, F_GETFL, 0);
- if (fcntl(mySocket, F_SETFL, oldFlag | O_NONBLOCK) == -1) {
- return -1;
- }
+ // Lets make socket non-blocking
+ int oldFlag = fcntl(mySocket, F_GETFL, 0);
+ if (fcntl(mySocket, F_SETFL, oldFlag | O_NONBLOCK) == -1) {
+ return -1;
+ }
#else
- unsigned long arg = 1;
- // Operation is FIONBIO. Parameter is pointer on non-zero number.
- if (ioctlsocket(mySocket, FIONBIO, &arg) == SOCKET_ERROR) {
- WSACleanup();
- return -1;
- }
+ unsigned long arg = 1;
+ // Operation is FIONBIO. Parameter is pointer on non-zero number.
+ if (ioctlsocket(mySocket, FIONBIO, &arg) == SOCKET_ERROR) {
+ WSACleanup();
+ return -1;
+ }
#endif
- struct timeval tv;
+ struct timeval tv;
- fd_set myset;
- FD_ZERO(&myset);
- FD_SET(mySocket, &myset);
+ fd_set myset;
+ FD_ZERO(&myset);
+ FD_SET(mySocket, &myset);
- tv.tv_sec = 2;
- tv.tv_usec = 0;
+ tv.tv_sec = 2;
+ tv.tv_usec = 0;
- srv.sin_family = AF_INET;
- srv.sin_port = htons(server->port);
- srv.sin_addr.s_addr = server->ip;
+ srv.sin_family = AF_INET;
+ srv.sin_port = htons(server->port);
+ srv.sin_addr.s_addr = server->ip;
- if (connect(mySocket, (struct sockaddr *) &srv, sizeof(srv)) == -1) {
+ if (connect(mySocket, (struct sockaddr *) &srv, sizeof(srv)) == -1) {
#ifndef __WIN32__
- if (errno != EINPROGRESS)
- return -1;
+ if (errno != EINPROGRESS)
+ return -1;
#else
- if (WSAGetLastError() != WSAEWOULDBLOCK) {
- WSACleanup();
- return -1;
- }
+ if (WSAGetLastError() != WSAEWOULDBLOCK) {
+ WSACleanup();
+ return -1;
+ }
#endif
- }
+ }
- int ret = select(mySocket + 1, NULL, &myset, NULL, &tv);
+ int ret = select(mySocket + 1, NULL, &myset, NULL, &tv);
- if (ret == -1)
- return 0;
+ if (ret == -1)
+ return 0;
- if (ret == 0)
- return -2;
+ if (ret == 0)
+ return -2;
- char request[8];
- memcpy(request, "status\n", 7);
+ char request[8];
+ memcpy(request, "status\n", 7);
- int r = send(mySocket, request, 7, 0);
+ int r = send(mySocket, request, 7, 0);
- if (r == -1)
- return -2;
+ if (r == -1)
+ return -2;
- FD_ZERO(&myset);
- FD_SET(mySocket, &myset);
- tv.tv_sec = 1;
- tv.tv_usec = 0;
+ FD_ZERO(&myset);
+ FD_SET(mySocket, &myset);
+ tv.tv_sec = 1;
+ tv.tv_usec = 0;
- char *str = (char *) malloc(sizeof(char) * 257);
+ char *str = (char *) malloc(sizeof(char) * 257);
- if (!str)
- return -1;
+ if (!str)
+ return -1;
- while (1) {
- int sel = select(mySocket + 1, &myset, NULL, NULL, &tv);
+ while (1) {
+ int sel = select(mySocket + 1, &myset, NULL, NULL, &tv);
- if (sel == 0) {
- free(str);
+ if (sel == 0) {
+ free(str);
#ifndef __WIN32__
- close(mySocket);
+ close(mySocket);
#else
- closesocket(mySocket);
- WSACleanup();
+ closesocket(mySocket);
+ WSACleanup();
#endif
- return -2;
- }
+ return -2;
+ }
- if (sel == -1) {
- free(str);
+ if (sel == -1) {
+ free(str);
#ifndef __WIN32__
- close(mySocket);
+ close(mySocket);
#else
- closesocket(mySocket);
- WSACleanup();
+ closesocket(mySocket);
+ WSACleanup();
#endif
- return -2;
- }
+ return -2;
+ }
- if ((ret = recv(mySocket, str, 256, 0)) == -1) {
- free(str);
+ if ((ret = recv(mySocket, str, 256, 0)) == -1) {
+ free(str);
#ifndef __WIN32__
- close(mySocket);
+ close(mySocket);
#else
- closesocket(mySocket);
- WSACleanup();
+ closesocket(mySocket);
+ WSACleanup();
#endif
- return -1;
- }
+ return -1;
+ }
- if (ret > 0)
- break;
- }
+ if (ret > 0)
+ break;
+ }
#ifndef __WIN32__
- close(mySocket);
+ close(mySocket);
#else
- closesocket(mySocket);
- WSACleanup();
+ closesocket(mySocket);
+ WSACleanup();
#endif
- server->ping = 1000 - (tv.tv_usec / 1000);
- /*
- ["name: F\n"] >= svn82
- "version: svnX\n"
- "clients: N\n"
- "maxclients: M\n"
- "uptime: D\n"
- */
+ server->ping = 1000 - (tv.tv_usec / 1000);
+ /*
+ ["name: F\n"] >= svn82
+ "version: svnX\n"
+ "clients: N\n"
+ "maxclients: M\n"
+ "uptime: D\n"
+ */
- unsigned i = 0;
+ unsigned i = 0;
- while (i < ret) {
- if (str[i] == '\n')
- str[i] = '\0';
+ while (i < ret) {
+ if (str[i] == '\n')
+ str[i] = '\0';
- i++;
- }
+ i++;
+ }
- unsigned name = 0;
+ unsigned name = 0;
- if (strstr(str, "name: "))
- name = 1;
+ if (strstr(str, "name: "))
+ name = 1;
- int len = 0;
+ int len = 0;
- if (name) {
- len = strlen(str);
- if (!strncmp(str, "name: ", 6)) {
- unsigned name_len = strlen(str + 6);
- server->name = (char *) malloc(sizeof(char) * (name_len + 2));
+ if (name) {
+ len = strlen(str);
+ if (!strncmp(str, "name: ", 6)) {
+ unsigned name_len = strlen(str + 6);
+ server->name = (char *) malloc(sizeof(char) * (name_len + 2));
- if (!server->name)
- return 0;
+ if (!server->name)
+ return 0;
- memcpy(server->name, str + 6, name_len + 1);
- server->name[name_len + 1] = '\0';
- }
- }
+ memcpy(server->name, str + 6, name_len + 1);
+ server->name[name_len + 1] = '\0';
+ }
+ }
- /* HACK */
- if (!name)
- len = -1;
+ /* HACK */
+ if (!name)
+ len = -1;
- if (!strncmp(str + len + 1, "version: ", 9)) {
- unsigned ver_len = strlen(str + len + 10);
- server->version = (char *) malloc(sizeof(char) * (ver_len + 2));
+ if (!strncmp(str + len + 1, "version: ", 9)) {
+ unsigned ver_len = strlen(str + len + 10);
+ server->version = (char *) malloc(sizeof(char) * (ver_len + 2));
- if (!server->version)
- return 0;
+ if (!server->version)
+ return 0;
- memcpy(server->version, str + len + 10, ver_len + 1);
- server->version[ver_len + 1] = '\0';
- }
+ memcpy(server->version, str + len + 10, ver_len + 1);
+ server->version[ver_len + 1] = '\0';
+ }
- len += strlen(str + len + 1) + 1;
+ len += strlen(str + len + 1) + 1;
- if (!strncmp(str + len + 1, "clients: ", 9))
- server->clients = atoi(str + len + 10);
+ if (!strncmp(str + len + 1, "clients: ", 9))
+ server->clients = atoi(str + len + 10);
- len += strlen(str + len + 1) + 1;
+ len += strlen(str + len + 1) + 1;
- if (!strncmp(str + len + 1, "maxclients: ", 12))
- server->maxclients = atoi(str + len + 13);
+ if (!strncmp(str + len + 1, "maxclients: ", 12))
+ server->maxclients = atoi(str + len + 13);
- len += strlen(str + len + 1) + 1;
+ len += strlen(str + len + 1) + 1;
- if (!strncmp(str + len + 1, "uptime: ", 8))
- server->uptime = atoi(str + len + 9);
+ if (!strncmp(str + len + 1, "uptime: ", 8))
+ server->uptime = atoi(str + len + 9);
- len += strlen(str + len + 1) + 1;
+ len += strlen(str + len + 1) + 1;
- if (!strncmp(str + len + 1, "arena: ", 7)) {
- unsigned arena_len = strlen(str + len + 9);
- server->arena = (char *) malloc(sizeof(char) * (arena_len + 2));
+ if (!strncmp(str + len + 1, "arena: ", 7)) {
+ unsigned arena_len = strlen(str + len + 9);
+ server->arena = (char *) malloc(sizeof(char) * (arena_len + 2));
- if (!server->arena)
- return 0;
+ if (!server->arena)
+ return 0;
- memcpy(server->arena, str + len + 8, arena_len + 1);
- server->arena[arena_len + 1] = '\0';
- }
+ memcpy(server->arena, str + len + 8, arena_len + 1);
+ server->arena[arena_len + 1] = '\0';
+ }
- free(str);
+ free(str);
- server->state = 1;
+ server->state = 1;
- return 1;
+ return 1;
}
-static int
-LoadServers()
+static int LoadServers()
// Get server list
{
#ifndef __WIN32__
- int s;
+ int s;
#else
- SOCKET s;
+ SOCKET s;
#endif
- char buf[1025];
+ char buf[1025];
- /* TODO: dodelat TCP makro */
- struct sockaddr_in server;
- char *master_server_ip;
+ /* TODO: dodelat TCP makro */
+ struct sockaddr_in server;
+ char *master_server_ip;
- master_server_ip = getIPFormDNS(NET_MASTER_SERVER_DOMAIN);
+ master_server_ip = getIPFormDNS(NET_MASTER_SERVER_DOMAIN);
- //printf("master_server_ip = %s\n", master_server_ip);
+ //printf("master_server_ip = %s\n", master_server_ip);
- if (master_server_ip == NULL) // master server is down
- {
- return -1;
- }
+ if (master_server_ip == NULL) // master server is down
+ {
+ return -1;
+ }
- server.sin_family = AF_INET;
- server.sin_port = htons(NET_MASTER_PORT);
- server.sin_addr.s_addr = inet_addr(master_server_ip);
+ server.sin_family = AF_INET;
+ server.sin_port = htons(NET_MASTER_PORT);
+ server.sin_addr.s_addr = inet_addr(master_server_ip);
- free(master_server_ip);
+ free(master_server_ip);
- if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0)
- return 0;
+ if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0)
+ return 0;
#ifndef __WIN32__
- // Lets make socket non-blocking
- int oldFlag = fcntl(s, F_GETFL, 0);
- if (fcntl(s, F_SETFL, oldFlag | O_NONBLOCK) == -1) {
- return -1;
- }
+ // Lets make socket non-blocking
+ int oldFlag = fcntl(s, F_GETFL, 0);
+ if (fcntl(s, F_SETFL, oldFlag | O_NONBLOCK) == -1) {
+ return -1;
+ }
#else
- unsigned long arg = 1;
- // Operation is FIONBIO. Parameter is pointer on non-zero number.
- if (ioctlsocket(s, FIONBIO, &arg) == SOCKET_ERROR) {
- WSACleanup();
- return -1;
- }
+ unsigned long arg = 1;
+ // Operation is FIONBIO. Parameter is pointer on non-zero number.
+ if (ioctlsocket(s, FIONBIO, &arg) == SOCKET_ERROR) {
+ WSACleanup();
+ return -1;
+ }
#endif
- if (connect(s, (struct sockaddr *) &server, sizeof(server)) == -1) {
+ if (connect(s, (struct sockaddr *) &server, sizeof(server)) == -1) {
#ifndef __WIN32__
- if (errno != EINPROGRESS)
- return -1;
+ if (errno != EINPROGRESS)
+ return -1;
#else
- if (WSAGetLastError() != WSAEWOULDBLOCK) {
- WSACleanup();
- return -1;
- }
+ if (WSAGetLastError() != WSAEWOULDBLOCK) {
+ WSACleanup();
+ return -1;
+ }
#endif
- }
+ }
- struct timeval tv;
+ struct timeval tv;
- fd_set myset;
+ fd_set myset;
- FD_ZERO(&myset);
- FD_SET(s, &myset);
+ FD_ZERO(&myset);
+ FD_SET(s, &myset);
- tv.tv_sec = 3;
- tv.tv_usec = 0;
+ tv.tv_sec = 3;
+ tv.tv_usec = 0;
- int ret = select(s + 1, NULL, &myset, NULL, &tv);
+ int ret = select(s + 1, NULL, &myset, NULL, &tv);
- if (ret == -1)
- return 0;
+ if (ret == -1)
+ return 0;
- if (ret == 0)
- return -2;
+ if (ret == 0)
+ return -2;
- /* send request for server list */
- send(s, "l", 1, 0);
+ /* send request for server list */
+ send(s, "l", 1, 0);
- FD_ZERO(&myset);
- FD_SET(s, &myset);
+ FD_ZERO(&myset);
+ FD_SET(s, &myset);
- ret = select(s + 1, &myset, NULL, NULL, &tv);
+ ret = select(s + 1, &myset, NULL, NULL, &tv);
- if (ret == -1)
- return 0;
+ if (ret == -1)
+ return 0;
- if (ret == 0)
- return -2;
+ if (ret == 0)
+ return -2;
- int len = recv(s, buf, 1024, 0);
+ int len = recv(s, buf, 1024, 0);
#ifndef __WIN32__
- close(s);
+ close(s);
#else
- closesocket(s);
- WSACleanup();
+ closesocket(s);
+ WSACleanup();
#endif
- if (len <= 0)
- return 0;
+ if (len <= 0)
+ return 0;
- unsigned i = 0;
- char list[256];
+ unsigned i = 0;
+ char list[256];
- struct in_addr srv;
+ struct in_addr srv;
- typedef struct
- {
- unsigned port;
- unsigned ip;
- } response_head;
+ typedef struct {
+ unsigned port;
+ unsigned ip;
+ } response_head;
- while (1) {
- response_head *header = (response_head *) ((char *) buf + i);
+ while (1) {
+ response_head *header = (response_head *) ((char *) buf + i);
- server_t *ctx;
+ server_t *ctx;
- // alloc and init context
- ctx = (server_t *) malloc(sizeof(server_t));
+ // alloc and init context
+ ctx = (server_t *) malloc(sizeof(server_t));
- ctx->ip = header->ip;
- ctx->port = header->port;
- ctx->name = 0;
- ctx->version = 0;
- ctx->arena = 0;
+ ctx->ip = header->ip;
+ ctx->port = header->port;
+ ctx->name = 0;
+ ctx->version = 0;
+ ctx->arena = 0;
- int ret = server_getinfo(ctx);
+ int ret = server_getinfo(ctx);
- srv.s_addr = ctx->ip;
+ srv.s_addr = ctx->ip;
- char *address = (char *) inet_ntoa(srv);
+ char *address = (char *) inet_ntoa(srv);
- memset(list, ' ', 254);
- list[255] = '\0';
+ 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); */
+ 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); */
- if (ctx->name)
- memcpy(list, ctx->name, strlen(ctx->name));
- else
- memcpy(list, "Unknown", 7);
+ if (ctx->name)
+ memcpy(list, ctx->name, strlen(ctx->name));
+ else
+ memcpy(list, "Unknown", 7);
- memcpy(list + 30, ctx->version, strlen(ctx->version));
+ 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);
+ unsigned a_len = strlen(address);
+ memcpy(list + 38, address, a_len);
+ memcpy(list + 38 + a_len, ":", 1);
- sprintf(buf, "%d", ctx->port);
+ sprintf(buf, "%d", ctx->port);
- memcpy(list + 39 + a_len, buf, strlen(buf));
+ memcpy(list + 39 + a_len, buf, strlen(buf));
- memcpy(list + 60, ctx->arena, strlen(ctx->arena));
+ memcpy(list + 60, ctx->arena, strlen(ctx->arena));
- sprintf(buf, "%d/%d", ctx->clients, ctx->maxclients);
+ sprintf(buf, "%d/%d", ctx->clients, ctx->maxclients);
- memcpy(list + 75, buf, strlen(buf));
+ memcpy(list + 75, buf, strlen(buf));
- sprintf(buf, "%dms", ctx->ping);
+ sprintf(buf, "%dms", ctx->ping);
- memcpy(list + 83, buf, strlen(buf));
- }
+ memcpy(list + 83, buf, strlen(buf));
+ }
- addToWidgetSelect(select_server, list);
+ addToWidgetSelect(select_server, list);
- // add into list
- ctx->next = &server_list;
- ctx->prev = server_list.prev;
- ctx->prev->next = ctx;
- ctx->next->prev = ctx;
+ // add into list
+ ctx->next = &server_list;
+ ctx->prev = server_list.prev;
+ ctx->prev->next = ctx;
+ ctx->next->prev = ctx;
- i += sizeof(response_head) + 1;
+ i += sizeof(response_head) + 1;
- if (buf[i - 1] != '\n' || (i + 1) > len)
- break;
- }
+ if (buf[i - 1] != '\n' || (i + 1) > len)
+ break;
+ }
- return 1;
+ return 1;
}
-static int
-RefreshServers()
+static int RefreshServers()
{
/*
destroyListItem(select_server->list, free);
select_server->list = newList();
*/
- removeAllFromWidgetSelect(select_server);
+ removeAllFromWidgetSelect(select_server);
- struct in_addr srv;
+ struct in_addr srv;
- server_t *server;
- for (server = server_list.next; server != &server_list;
- server = server->next) {
- if (server->name)
- free(server->name);
+ server_t *server;
+ for (server = server_list.next; server != &server_list;
+ server = server->next) {
+ if (server->name)
+ free(server->name);
- if (server->version)
- free(server->version);
+ if (server->version)
+ free(server->version);
- if (server->arena)
- free(server->arena);
+ if (server->arena)
+ free(server->arena);
- server->name = 0;
- server->version = 0;
- server->arena = 0;
+ server->name = 0;
+ server->version = 0;
+ server->arena = 0;
- char list[256];
- char buf[32];
+ char list[256];
+ char buf[32];
- int ret = server_getinfo(server);
+ int ret = server_getinfo(server);
- srv.s_addr = server->ip;
+ srv.s_addr = server->ip;
- char *address = (char *) inet_ntoa(srv);
+ char *address = (char *) inet_ntoa(srv);
- if (ret == 1) {
- memset(list, ' ', 254);
- list[255] = '\0';
+ if (ret == 1) {
+ memset(list, ' ', 254);
+ list[255] = '\0';
- if (server->name)
- memcpy(list, server->name, strlen(server->name));
- else
- memcpy(list, "Unknown", 7);
+ if (server->name)
+ memcpy(list, server->name, strlen(server->name));
+ else
+ memcpy(list, "Unknown", 7);
- memcpy(list + 30, server->version, strlen(server->version));
+ 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);
+ unsigned a_len = strlen(address);
+ memcpy(list + 38, address, a_len);
+ memcpy(list + 38 + a_len, ":", 1);
- sprintf(buf, "%d", server->port);
+ sprintf(buf, "%d", server->port);
- memcpy(list + 39 + a_len, buf, strlen(buf));
+ memcpy(list + 39 + a_len, buf, strlen(buf));
- memcpy(list + 60, server->arena, strlen(server->arena));
+ memcpy(list + 60, server->arena, strlen(server->arena));
- sprintf(buf, "%d/%d", server->clients, server->maxclients);
+ sprintf(buf, "%d/%d", server->clients, server->maxclients);
- memcpy(list + 75, buf, strlen(buf));
+ memcpy(list + 75, buf, strlen(buf));
- sprintf(buf, "%dms", server->ping);
+ sprintf(buf, "%dms", server->ping);
- memcpy(list + 83, buf, strlen(buf));
- }
+ memcpy(list + 83, buf, strlen(buf));
+ }
- addToWidgetSelect(select_server, list);
+ addToWidgetSelect(select_server, list);
- }
+ }
- return 1;
+ return 1;
}
-void
-initScreenBrowser()
+void initScreenBrowser()
{
- image_t *image;
-
- image = getImage(IMAGE_GROUP_BASE, "screen_main");
- image_backgorund = newWidgetImage(0, 0, image);
-
- button_back =
- newWidgetButton(_("back"), 100, WINDOW_SIZE_Y - 100, eventWidget);
- button_play =
- newWidgetButton(_("Play"), WINDOW_SIZE_X - 200, WINDOW_SIZE_Y - 100,
- eventWidget);
- button_refresh =
- newWidgetButton(_("Refresh"), WINDOW_SIZE_X / 2 - 50,
- WINDOW_SIZE_Y - 100, eventWidget);
-
- label_server = newWidgetLabel(_("server"), 120, 145, WIDGET_LABEL_LEFT);
- label_version = newWidgetLabel(_("version"), 290, 145, WIDGET_LABEL_LEFT);
- label_address = newWidgetLabel(_("IP"), 400, 145, WIDGET_LABEL_LEFT);
- label_arena = newWidgetLabel(_("arena"), 550, 145, WIDGET_LABEL_LEFT);
- label_players = newWidgetLabel(_("clients"), 645, 145, WIDGET_LABEL_LEFT);
- label_ping = newWidgetLabel(_("ping"), 720, 145, WIDGET_LABEL_LEFT);
-
- select_server = newWidgetSelect(50, label_server->y + 40, eventWidget);
-
- registerScreen(newScreen
- ("browser", startScreenBrowser, eventScreenBrowser,
- drawScreenBrowser, stopScreenBrowser));
-
- server_list.next = &server_list;
- server_list.prev = &server_list;
+ image_t *image;
+
+ image = getImage(IMAGE_GROUP_BASE, "screen_main");
+ image_backgorund = newWidgetImage(0, 0, image);
+
+ button_back =
+ newWidgetButton(_("back"), 100, WINDOW_SIZE_Y - 100, eventWidget);
+ button_play =
+ newWidgetButton(_("Play"), WINDOW_SIZE_X - 200, WINDOW_SIZE_Y - 100,
+ eventWidget);
+ button_refresh =
+ newWidgetButton(_("Refresh"), WINDOW_SIZE_X / 2 - 50,
+ WINDOW_SIZE_Y - 100, eventWidget);
+
+ label_server = newWidgetLabel(_("server"), 120, 145, WIDGET_LABEL_LEFT);
+ label_version = newWidgetLabel(_("version"), 290, 145, WIDGET_LABEL_LEFT);
+ label_address = newWidgetLabel(_("IP"), 400, 145, WIDGET_LABEL_LEFT);
+ label_arena = newWidgetLabel(_("arena"), 550, 145, WIDGET_LABEL_LEFT);
+ label_players = newWidgetLabel(_("clients"), 645, 145, WIDGET_LABEL_LEFT);
+ label_ping = newWidgetLabel(_("ping"), 720, 145, WIDGET_LABEL_LEFT);
+
+ select_server = newWidgetSelect(50, label_server->y + 40, eventWidget);
+
+ registerScreen(newScreen
+ ("browser", startScreenBrowser, eventScreenBrowser,
+ drawScreenBrowser, stopScreenBrowser));
+
+ server_list.next = &server_list;
+ server_list.prev = &server_list;
}
-void
-quitScreenBrowser()
+void quitScreenBrowser()
{
- destroyWidgetImage(image_backgorund);
+ destroyWidgetImage(image_backgorund);
- destroyWidgetButton(button_play);
- destroyWidgetButton(button_back);
- destroyWidgetButton(button_refresh);
+ 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);
+ destroyWidgetLabel(label_server);
+ destroyWidgetLabel(label_version);
+ destroyWidgetLabel(label_address);
+ destroyWidgetLabel(label_arena);
+ destroyWidgetLabel(label_players);
+ destroyWidgetLabel(label_ping);
- destroyWidgetSelect(select_server);
+ destroyWidgetSelect(select_server);
}