forked from mirror/OpenTTD
(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 ;)
This commit is contained in:
17
main_gui.c
17
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);
|
||||
|
Reference in New Issue
Block a user