diff --git a/console_cmds.c b/console_cmds.c --- a/console_cmds.c +++ b/console_cmds.c @@ -551,7 +551,9 @@ DEF_CONSOLE_CMD(ConStatus) status = (cs->status < lengthof(stat_str) ? stat_str[cs->status] : "unknown"); IConsolePrintF(8, "Client #%1d name: '%s' status: '%s' frame-lag: %3d company: %1d IP: %s unique-id: '%s'", - cs->index, ci->client_name, status, lag, ci->client_playas, GetPlayerIP(ci), ci->unique_id); + cs->index, ci->client_name, status, lag, + ci->client_playas + (IsValidPlayer(ci->client_playas) ? 1 : 0), + GetPlayerIP(ci), ci->unique_id); } return true; @@ -669,16 +671,15 @@ DEF_CONSOLE_CMD(ConResetCompany) if (argc != 2) return false; - index = atoi(argv[1]); + index = atoi(argv[1]) - 1; /* Check valid range */ - if (index < 1 || index > MAX_PLAYERS) { + if (!IsValidPlayer(index)) { IConsolePrintF(_icolour_err, "Company does not exist. Company-id must be between 1 and %d.", MAX_PLAYERS); return true; } /* Check if company does exist */ - index--; p = GetPlayer(index); if (!p->is_active) { IConsoleError("Company does not exist."); @@ -693,13 +694,13 @@ DEF_CONSOLE_CMD(ConResetCompany) /* Check if the company has active players */ FOR_ALL_CLIENTS(cs) { ci = DEREF_CLIENT_INFO(cs); - if (ci->client_playas - 1 == index) { + if (ci->client_playas == index) { IConsoleError("Cannot remove company: a client is connected to that company."); return true; } } ci = NetworkFindClientInfoFromIndex(NETWORK_SERVER_INDEX); - if (ci->client_playas - 1 == index) { + if (ci->client_playas == index) { IConsoleError("Cannot remove company: the server is connected to that company."); return true; } @@ -723,7 +724,9 @@ DEF_CONSOLE_CMD(ConNetworkClients) for (ci = _network_client_info; ci != &_network_client_info[MAX_CLIENT_INFO]; ci++) { if (ci->client_index != NETWORK_EMPTY_INDEX) { IConsolePrintF(8, "Client #%1d name: '%s' company: %1d IP: %s", - ci->client_index, ci->client_name, ci->client_playas, GetPlayerIP(ci)); + ci->client_index, ci->client_name, + ci->client_playas + (IsValidPlayer(ci->client_playas) ? 1 : 0), + GetPlayerIP(ci)); } } @@ -740,7 +743,7 @@ DEF_CONSOLE_CMD(ConNetworkConnect) if (argc == 0) { IConsoleHelp("Connect to a remote OTTD server and join the game. Usage: 'connect '"); IConsoleHelp("IP can contain port and player: 'IP[[#Player]:Port]', eg: 'server.ottd.org#2:443'"); - IConsoleHelp("Player #0 is new company, #255 is spectator all others are a certain company"); + IConsoleHelp("Player #255 is spectator all others are a certain company with Company 1 being #1"); return true; } @@ -763,11 +766,9 @@ DEF_CONSOLE_CMD(ConNetworkConnect) /* From a user pov 0 is a new player, internally it's different and all * players are offset by one to ease up on users (eg players 1-8 not 0-7) */ - if (_network_playas == 0) _network_playas = PLAYER_NEW_COMPANY; - if (!IsValidPlayer(_network_playas - 1) && - (_network_playas != PLAYER_SPECTATOR && - _network_playas != PLAYER_NEW_COMPANY)) { - return false; + if (_network_playas != PLAYER_SPECTATOR) { + _network_playas--; + if (!IsValidPlayer(_network_playas)) return false; } } if (port != NULL) {