summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarkvater <Darkvater@openttd.org>2007-01-14 21:32:13 +0000
committerDarkvater <Darkvater@openttd.org>2007-01-14 21:32:13 +0000
commitc6bfa82874e6fca477c61968b0e0fc631403d325 (patch)
treee69c4dfbbfc374b6a29fa377e87301e68172523c
parent3439942ab5e4314d793e96259126dd6ee8321937 (diff)
downloadopenttd-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.cpp8
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