From fa1f026367aeb862b0cecd5c29cf680e37b45b3d Mon Sep 17 00:00:00 2001 From: truelight Date: Wed, 15 Dec 2004 21:13:52 +0000 Subject: (svn r1108) -Fix: [Network] Fixed problem around slow clients: They joined, they got the map, but it took some time before the new player was created. In this time a player could do stuff, causing a player-id-mismatch, and the player was kicked out. Now a player get's a nice GUI which says: registering.. When that is gone, the player is joined and can play safely. Tnx to Moriarty for bugging me with this bug ;) --- main_gui.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'main_gui.c') diff --git a/main_gui.c b/main_gui.c index ce5f3cb1e..765ef1935 100644 --- a/main_gui.c +++ b/main_gui.c @@ -2229,7 +2229,7 @@ static void MainWindowWndProc(Window *w, WindowEvent *e) { DrawSprite(SPR_OTTD_T, off_x + 34, 50); DrawSprite(SPR_OTTD_T, off_x + 65, 50); DrawSprite(SPR_OTTD_D, off_x + 96, 50); - + /* DrawSprite(SPR_OTTD_R, off_x + 119, 50); DrawSprite(SPR_OTTD_A, off_x + 148, 50); @@ -2323,8 +2323,8 @@ static void MainWindowWndProc(Window *w, WindowEvent *e) { ShowBuildRailToolbar(_last_built_railtype, 4); break; - case 'L': - ShowTerraformToolbar(); + case 'L': + ShowTerraformToolbar(); break; case 'X': @@ -2332,9 +2332,9 @@ static void MainWindowWndProc(Window *w, WindowEvent *e) { MarkWholeScreenDirty(); break; - case WKC_BACKQUOTE: - IConsoleSwitch(); - e->keypress.cont=false; + case WKC_BACKQUOTE: + IConsoleSwitch(); + e->keypress.cont=false; break; #ifdef ENABLE_NETWORK @@ -2356,6 +2356,7 @@ static void MainWindowWndProc(Window *w, WindowEvent *e) { void ShowSelectGameWindow(); +extern void ShowJoinStatusWindowAfterJoin(); void SetupColorsAndInitialWindow() { @@ -2405,6 +2406,10 @@ void SetupColorsAndInitialWindow() WP(w,def_d).data_1 = -1280; + /* Bring joining GUI to front till the client is really joined */ + if (_networking && !_network_server) + ShowJoinStatusWindowAfterJoin(); + break; case GM_EDITOR: w = AllocateWindow(0, 0, width, height, MainWindowWndProc, 0, NULL); -- cgit v1.2.3-54-g00ecf