players.c
changeset 4858 91f058409592
parent 4854 383ef523793f
child 4873 7cb19235cf60
--- a/players.c	Sun Oct 15 23:31:22 2006 +0000
+++ b/players.c	Sun Oct 15 23:35:26 2006 +0000
@@ -821,9 +821,11 @@
 	switch (p1) {
 	case 0: { /* Create a new player */
 		Player *p;
-		PlayerID pid = p2;
+		uint16 cid = p2; // ClientID
 
-		if (!(flags & DC_EXEC) || !IsValidPlayer(pid)) return 0;
+		/* ClientID would be valid up to MAX_CLIENT_INFO, but as it has to be a
+		 * new player, its valid range is restricted to that of players */
+		if (!(flags & DC_EXEC) || !IsValidPlayer((PlayerID)cid)) return 0;
 
 		p = DoStartupNewPlayer(false);
 
@@ -851,7 +853,7 @@
 				/* XXX - UGLY! p2 (pid) is mis-used to fetch the client-id, done at
 				 * server-side in network_server.c:838, function
 				 * DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_COMMAND) */
-				NetworkClientInfo *ci = &_network_client_info[pid];
+				NetworkClientInfo *ci = &_network_client_info[cid];
 				ci->client_playas = p->index + 1;
 				NetworkUpdateClientInfo(ci->client_index);
 
@@ -881,7 +883,7 @@
 			/* XXX - UGLY! p2 (pid) is mis-used to fetch the client-id, done at
 			 * server-side in network_server.c:838, function
 			 * DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_COMMAND) */
-			NetworkClientInfo *ci = &_network_client_info[pid];
+			NetworkClientInfo *ci = &_network_client_info[cid];
 			ci->client_playas = PLAYER_SPECTATOR;
 			NetworkUpdateClientInfo(ci->client_index);
 #endif /* ENABLE_NETWORK */