From e26882b4465e430d0f4ec39574807178008033ae Mon Sep 17 00:00:00 2001 From: Cyp Date: Tue, 30 Nov 2010 22:27:19 +0100 Subject: [PATCH] Fix host crash when someone leaves pre-game lobby screen. Broke in 2ad6ff08556a86b99ca2ea8692176591b11f4fa3. --- src/multijoin.c | 6 +++++- src/multiplay.c | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/multijoin.c b/src/multijoin.c index a86b965f8..e35695496 100644 --- a/src/multijoin.c +++ b/src/multijoin.c @@ -235,7 +235,11 @@ BOOL MultiPlayerLeave(UDWORD playerIndex) ssprintf(buf, _("%s has Left the Game"), getPlayerName(playerIndex)); - if (NetPlay.isHost) + if (ingame.localJoiningInProgress) + { + clearPlayer(playerIndex, false); + } + else if (NetPlay.isHost) // If hosting, and game has started (not in pre-game lobby screen, that is). { sendPlayerLeft(playerIndex); } diff --git a/src/multiplay.c b/src/multiplay.c index d84082ec0..3e9b80c70 100644 --- a/src/multiplay.c +++ b/src/multiplay.c @@ -846,6 +846,7 @@ BOOL recvMessage(void) break; case GAME_PLAYER_LEFT: recvPlayerLeft(queue); + break; default: processedMessage2 = false; break;