From ede421537264811350ee1936c682fb69d2c37a61 Mon Sep 17 00:00:00 2001 From: stpohle Date: Sun, 4 Jan 2004 03:22:49 +0000 Subject: [PATCH] menu_reload added to reload all datas so we don\'t need to delete and create a new menuitem.. network joining problem fixed.. forgot to set the ai_family in the network list. --- include/Makefile.am | 3 ++- include/menu.h | 4 +++- src/menu.c | 29 ++++++++++++++++++++++++++++- src/netsrvlist.c | 11 ++++++----- src/network.c | 12 +++++++++++- 5 files changed, 50 insertions(+), 9 deletions(-) diff --git a/include/Makefile.am b/include/Makefile.am index f82fe10..58e51f6 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -20,6 +20,7 @@ bomberclone_include_DATA = \ packets.h \ sysfunc.h \ sound.h \ - ogcache-client.h + ogcache-client.h\ + udp.h EXTRA_DIST = $(bomberclone_include_DATA) diff --git a/include/menu.h b/include/menu.h index 5e7d55f..b06c508 100644 --- a/include/menu.h +++ b/include/menu.h @@ -1,4 +1,4 @@ -/* $Id: menu.h,v 1.3 2003/12/28 05:47:51 stpohle Exp $ +/* $Id: menu.h,v 1.4 2004/01/04 03:22:49 stpohle Exp $ * GUI for menuhandling */ @@ -73,6 +73,8 @@ extern int menu_loop (); extern void menu_draw_border (); extern void menu_draw_background (SDL_Rect *dest); extern inline void menu_draw_menuitem (_menuitem *m); +extern void menu_reload (); +extern inline void menu_reload_menuitem (_menuitem *m); extern void menu_focus_next (); extern void menu_focus_prev (); extern void menu_focus_id (int id); diff --git a/src/menu.c b/src/menu.c index b80eb71..d64a265 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1,4 +1,4 @@ -/* $Id: menu.c,v 1.33 2003/12/28 05:47:51 stpohle Exp $ +/* $Id: menu.c,v 1.34 2004/01/04 03:22:49 stpohle Exp $ * Menuhandling */ #include "basic.h" @@ -173,6 +173,7 @@ void menu_draw () { }; + /* draw an item on the screen */ inline void menu_draw_menuitem (_menuitem *m) { switch (m->type) { @@ -198,6 +199,32 @@ inline void menu_draw_menuitem (_menuitem *m) { }; +/* reload all variables into all menuelements */ +void menu_reload () { + _menuitem *m; + + for (m = menu.items; m != NULL; m = m->next) + menu_reload_menuitem (m); +}; + + + +/* reload variable into menuelement */ +inline void menu_reload_menuitem (_menuitem *m) { + switch (m->type) { + case (MENU_entrytext): + case (MENU_entryint16): + case (MENU_entryint32): + case (MENU_entryfloat): + menu_entry_restore (m); + break; + default: + break; + } +}; + + + /* find the last menuitem in the list. */ int menu_getlastitem (_menuitem *first) { int i = 0; diff --git a/src/netsrvlist.c b/src/netsrvlist.c index 4e2ba06..142eaac 100644 --- a/src/netsrvlist.c +++ b/src/netsrvlist.c @@ -1,4 +1,4 @@ -/* $Id: netsrvlist.c,v 1.5 2004/01/03 22:32:18 stpohle Exp $ +/* $Id: netsrvlist.c,v 1.6 2004/01/04 03:22:49 stpohle Exp $ * netsrvlist.c - shows a list of possible servers.*/ #include "basic.h" @@ -48,7 +48,8 @@ void srvlist_rebuildlist () { srvlst_dat[srvlst_cnt].host[0] = 0; srvlst_dat[srvlst_cnt].port[0] = 0; srvlst_dat[srvlst_cnt].gamename[0] = 0; - + + srvlst_dat[srvlst_cnt].ai_family = ogc_array[ogclst].ai_family; strncpy (srvlst_dat[srvlst_cnt].host,ogc_array[ogclst].host, LEN_SERVERNAME); strncpy (srvlst_dat[srvlst_cnt].port,ogc_array[ogclst].port, LEN_PORT); strncpy (srvlst_dat[srvlst_cnt].gamename,ogc_array[ogclst].gamename, LEN_GAMENAME); @@ -96,6 +97,7 @@ void net_getserver () { while (menuselect != -1 && bman.state != GS_quit) { srvlist_rebuildlist (); + menu_reload (); menuselect = menu_loop (); switch (menuselect) { @@ -103,14 +105,13 @@ void net_getserver () { menuselect = -1; break; case (1): // Join a Game - entry = &srvlst_text[0] - sel_entry; - d_printf ("Selected Entry %s:%s Game:%s\n", srvlst_dat[entry].host, srvlst_dat[entry].port, srvlst_dat[entry].gamename); + entry = sel_entry - &srvlst_text[0]; + d_printf ("Selected Entry (%d) %s:%s Game:%s\n", entry, srvlst_dat[entry].host, srvlst_dat[entry].port, srvlst_dat[entry].gamename); if (srvlst_dat[entry].host[0] != 0 && srvlst_dat[entry].port[0] != 0 && srvlst_dat[entry].gamename[0] != 0) { /* test if there was a selection */ bman.net_ai_family = srvlst_dat[entry].ai_family; sprintf (bman.servername, "%s:%s", srvlst_dat[entry].host, srvlst_dat[entry].port); - menuselect = -1; } break; } diff --git a/src/network.c b/src/network.c index 86fb7f8..01e9f1b 100644 --- a/src/network.c +++ b/src/network.c @@ -1,4 +1,4 @@ -/* $Id: network.c,v 1.51 2004/01/04 01:28:34 stpohle Exp $ */ +/* $Id: network.c,v 1.52 2004/01/04 03:22:49 stpohle Exp $ */ /* network routines. */ @@ -101,6 +101,16 @@ network_init () } #endif + if (bman.net_ai_family == PF_INET) + sprintf (host, "IPv4"); +#ifdef _WIN32 + else if (bman.net_ai_family == PF_INET6) + sprintf (host, "IPv6"); +#endif + else + sprintf (host, "IPv (unknown)"); + d_printf ("Network Init with %s.\n", host); + bman.sock = -1; timestamp = SDL_GetTicks ();