From db71d250500e619ce53a39eda862763f91ff3535 Mon Sep 17 00:00:00 2001 From: patty21 Date: Sat, 25 Sep 2004 11:48:36 +0000 Subject: [PATCH] 2nd part of new multi selection screen --- src/multiwait.c | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/src/multiwait.c b/src/multiwait.c index 2bf3409..133839c 100644 --- a/src/multiwait.c +++ b/src/multiwait.c @@ -1,4 +1,4 @@ -/* $Id: multiwait.c,v 1.46 2004/09/25 11:17:38 patty21 Exp $ +/* $Id: multiwait.c,v 1.47 2004/09/25 11:48:36 patty21 Exp $ multiwait.c - this manages only the network screen where everyone have to select it's players and where even the basic chat is inside */ @@ -36,6 +36,7 @@ int mw_calc_screen() { } if (plnum!=mw_num_players) { + mw_num_players=plnum; if (bman.gametype==GT_team) { mw_num_players_x=2; mw_num_players_y=2; // needs to be fixed (calculated separately) @@ -52,13 +53,14 @@ int mw_calc_screen() { } mw_num_players_y=ceil(mw_num_players/mw_num_players_x); for(i=0;iplayers[j].wins) { + h=n[i];n[i]=n[j];n[j]=h; + } for (i = 0; i < MAX_PLAYERS; i++) { /* we do not sort the players */ - mw_draw_player (&players[i], i); + if (PS_IS_used (players[i].state)) { + mw_draw_player (&players[i], n[i]); + } } }; @@ -210,7 +219,8 @@ void mw_keys_loop () { SDL_WM_ToggleFullScreen(gfx.screen); gfx.fullscreen = !gfx.fullscreen; bman.updatestatusbar = 1; // force an update - } + mw_num_players=-1; + } if (keyb_gamekeys.state[BCK_esc] && !keyb_gamekeys.old[BCK_esc]) { /* ESCAPE key was pressed */ @@ -222,6 +232,7 @@ void mw_keys_loop () { /* player 1 want to select a new gfx */ playermenu_selgfx (bman.p_nr); net_change_playerid (bman.p_nr, 1); + mw_num_players=-1; keyb_loop (NULL); // to reload the current keys } @@ -229,18 +240,21 @@ void mw_keys_loop () { /* player 2 want to select a new gfx */ playermenu_selgfx (bman.p2_nr); net_change_playerid (bman.p2_nr, 1); + mw_num_players=-1; keyb_loop (NULL); // to reload the current keys } if (keyb_gamekeys.state[BCK_mapmenu] && !keyb_gamekeys.old[BCK_mapmenu] && GT_MP_PTPM) { /* mapmenu */ mapmenu (); + mw_num_players=-1; keyb_loop (NULL); // to reload the current keys } if (keyb_gamekeys.state[BCK_playermenu] && !keyb_gamekeys.old[BCK_playermenu]) { /* playermenu */ playermenu (); + mw_num_players=-1; keyb_loop (NULL); // to reload the current keys } }; @@ -252,6 +266,8 @@ void wait_for_players () { SDL_Event event; mw_init (); + mw_calc_screen(); + mw_draw_all_player (); do { if (SDL_PollEvent (&event) != 0) @@ -270,7 +286,7 @@ void wait_for_players () { /* * the drawing stuff */ - mw_draw_all_player (); + if (mw_calc_screen()) {mw_draw_all_player ();} gfx_blitdraw (); /*