diff options
author | Darkvater <Darkvater@openttd.org> | 2007-01-14 21:32:13 +0000 |
---|---|---|
committer | Darkvater <Darkvater@openttd.org> | 2007-01-14 21:32:13 +0000 |
commit | c6bfa82874e6fca477c61968b0e0fc631403d325 (patch) | |
tree | e69c4dfbbfc374b6a29fa377e87301e68172523c | |
parent | 3439942ab5e4314d793e96259126dd6ee8321937 (diff) | |
download | openttd-c6bfa82874e6fca477c61968b0e0fc631403d325.tar.xz |
(svn r8132) -Fix (r6824): The game could crash when the chat key (<ENTER>) is pressed too vehemently during the join of the game. Your client's id does not exist in the clients list yet, and returns NULL.
-rw-r--r-- | src/main_gui.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main_gui.cpp b/src/main_gui.cpp index b333d6ec1..e88a306c5 100644 --- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -2302,6 +2302,8 @@ static void MainWindowWndProc(Window *w, WindowEvent *e) const NetworkClientInfo *cio = NetworkFindClientInfoFromIndex(_network_own_client_index); bool teamchat = false; + if (cio == NULL) break; + /* Only players actually playing can speak to team. Eg spectators cannot */ if (_patches.prefer_teamchat && IsValidPlayer(cio->client_playas)) { const NetworkClientInfo *ci; @@ -2323,8 +2325,10 @@ static void MainWindowWndProc(Window *w, WindowEvent *e) case WKC_CTRL | WKC_RETURN: case WKC_CTRL | 'T': // send text to all team mates if (_networking) { - const NetworkClientInfo *ci = NetworkFindClientInfoFromIndex(_network_own_client_index); - ShowNetworkChatQueryWindow(DESTTYPE_TEAM, ci->client_playas); + const NetworkClientInfo *cio = NetworkFindClientInfoFromIndex(_network_own_client_index); + if (cio == NULL) break; + + ShowNetworkChatQueryWindow(DESTTYPE_TEAM, cio->client_playas); } break; #endif |