summaryrefslogtreecommitdiff
path: root/network_gui.c
diff options
context:
space:
mode:
Diffstat (limited to 'network_gui.c')
-rw-r--r--network_gui.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/network_gui.c b/network_gui.c
index 31e26dd6d..200c924b1 100644
--- a/network_gui.c
+++ b/network_gui.c
@@ -31,10 +31,17 @@ static byte _players_max;
* we'll just use some dummy here
*/
static byte _network_connection;
+static uint16 _network_game_count_last;
static void NetworkGameWindowWndProc(Window *w, WindowEvent *e)
{
switch(e->event) {
+ case WE_TICK: {
+ if (_network_game_count_last != _network_game_count) {
+ SetWindowDirty(w);
+ }
+ }
+ break;
case WE_PAINT: {
SET_DPARAM16(0, 0x00);
@@ -86,8 +93,18 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e)
case WE_DROPDOWN_SELECT: /* we have selected a dropdown item in the list */
_network_connection = e->dropdown.index;
-
- SetWindowDirty(w);
+ switch (_network_connection) {
+ case 0:
+ NetworkGameListFromLAN();
+ _network_game_count_last = _network_game_count;
+ SetWindowDirty(w);
+ break;
+ case 1:
+ NetworkGameListFromInternet();
+ _network_game_count_last = _network_game_count;
+ SetWindowDirty(w);
+ break;
+ }
break;
case WE_MOUSELOOP:
@@ -164,6 +181,7 @@ void ShowNetworkGameWindow()
w = AllocateWindowDesc(&_network_game_window_desc);
strcpy(_edit_str_buf, "Your name");
+ _network_game_count_last = _network_game_count;
WP(w,querystr_d).caret = 1;
WP(w,querystr_d).maxlen = MAX_QUERYSTR_LEN;