(svn r16360) -Codechange: don't use _network_playas as a 'second' _local_company, but only as a storage location for the company you want to join in MP.

This commit is contained in:
rubidium
2009-05-19 21:20:14 +00:00
parent 00bc2659f2
commit 9f4d64bda0
11 changed files with 38 additions and 58 deletions

View File

@@ -769,11 +769,6 @@ DEF_CONSOLE_CMD(ConNetworkClients)
DEF_CONSOLE_CMD(ConNetworkConnect)
{
char *ip;
const char *port = NULL;
const char *company = NULL;
uint16 rport;
if (argc == 0) {
IConsoleHelp("Connect to a remote OTTD server and join the game. Usage: 'connect <ip>'");
IConsoleHelp("IP can contain port and company: 'IP[[#Company]:Port]', eg: 'server.ottd.org#2:443'");
@@ -784,23 +779,25 @@ DEF_CONSOLE_CMD(ConNetworkConnect)
if (argc < 2) return false;
if (_networking) NetworkDisconnect(); // we are in network-mode, first close it!
ip = argv[1];
const char *port = NULL;
const char *company = NULL;
char *ip = argv[1];
/* Default settings: default port and new company */
rport = NETWORK_DEFAULT_PORT;
_network_playas = COMPANY_NEW_COMPANY;
uint16 rport = NETWORK_DEFAULT_PORT;
CompanyID join_as = COMPANY_NEW_COMPANY;
ParseConnectionString(&company, &port, ip);
IConsolePrintF(CC_DEFAULT, "Connecting to %s...", ip);
if (company != NULL) {
_network_playas = (CompanyID)atoi(company);
IConsolePrintF(CC_DEFAULT, " company-no: %d", _network_playas);
join_as = (CompanyID)atoi(company);
IConsolePrintF(CC_DEFAULT, " company-no: %d", join_as);
/* From a user pov 0 is a new company, internally it's different and all
* companies are offset by one to ease up on users (eg companies 1-8 not 0-7) */
if (_network_playas != COMPANY_SPECTATOR) {
if (_network_playas > MAX_COMPANIES) return false;
_network_playas--;
if (join_as != COMPANY_SPECTATOR) {
if (join_as > MAX_COMPANIES) return false;
join_as--;
}
}
if (port != NULL) {
@@ -808,7 +805,7 @@ DEF_CONSOLE_CMD(ConNetworkConnect)
IConsolePrintF(CC_DEFAULT, " port: %s", port);
}
NetworkClientConnectGame(NetworkAddress(ip, rport));
NetworkClientConnectGame(NetworkAddress(ip, rport), join_as);
return true;
}