changeset 5672:e6ba5c304b87 draft

(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.
author Darkvater <Darkvater@openttd.org>
date Sun, 14 Jan 2007 21:32:13 +0000
parents 025a6bc5e2e5
children 397c30519888
files src/main_gui.cpp
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/main_gui.cpp
+++ b/src/main_gui.cpp
@@ -2302,6 +2302,8 @@
 					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 @@
 
 			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