(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.

This commit is contained in:
Darkvater 2007-01-14 21:32:13 +00:00
parent f8a434e9fc
commit e4d4e13e15

View File

@ -2302,6 +2302,8 @@ static void MainWindowWndProc(Window *w, WindowEvent *e)
const NetworkClientInfo *cio = NetworkFindClientInfoFromIndex(_network_own_client_index); const NetworkClientInfo *cio = NetworkFindClientInfoFromIndex(_network_own_client_index);
bool teamchat = false; bool teamchat = false;
if (cio == NULL) break;
/* Only players actually playing can speak to team. Eg spectators cannot */ /* Only players actually playing can speak to team. Eg spectators cannot */
if (_patches.prefer_teamchat && IsValidPlayer(cio->client_playas)) { if (_patches.prefer_teamchat && IsValidPlayer(cio->client_playas)) {
const NetworkClientInfo *ci; 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 case WKC_CTRL | WKC_RETURN: case WKC_CTRL | 'T': // send text to all team mates
if (_networking) { if (_networking) {
const NetworkClientInfo *ci = NetworkFindClientInfoFromIndex(_network_own_client_index); const NetworkClientInfo *cio = NetworkFindClientInfoFromIndex(_network_own_client_index);
ShowNetworkChatQueryWindow(DESTTYPE_TEAM, ci->client_playas); if (cio == NULL) break;
ShowNetworkChatQueryWindow(DESTTYPE_TEAM, cio->client_playas);
} }
break; break;
#endif #endif