1
0
Fork 0

(svn r19996) -Codechange: Add NetworkVehicleType enum.

release/1.1
rubidium 2010-06-19 16:37:56 +00:00
parent 5623710593
commit 99a11badaf
4 changed files with 37 additions and 25 deletions

View File

@ -423,10 +423,10 @@ DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_COMPANY_INFO)
company_info->income = p->Recv_uint64(); company_info->income = p->Recv_uint64();
company_info->performance = p->Recv_uint16(); company_info->performance = p->Recv_uint16();
company_info->use_password = p->Recv_bool(); company_info->use_password = p->Recv_bool();
for (uint i = 0; i < NETWORK_VEHICLE_TYPES; i++) { for (uint i = 0; i < NETWORK_VEH_END; i++) {
company_info->num_vehicle[i] = p->Recv_uint16(); company_info->num_vehicle[i] = p->Recv_uint16();
} }
for (uint i = 0; i < NETWORK_STATION_TYPES; i++) { for (uint i = 0; i < NETWORK_VEH_END; i++) {
company_info->num_station[i] = p->Recv_uint16(); company_info->num_station[i] = p->Recv_uint16();
} }
company_info->ai = p->Recv_bool(); company_info->ai = p->Recv_bool();

View File

@ -1603,15 +1603,19 @@ struct NetworkLobbyWindow : public Window {
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_PERFORMANCE); // performance DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_PERFORMANCE); // performance
y += FONT_HEIGHT_NORMAL; y += FONT_HEIGHT_NORMAL;
for (uint i = 0; i < lengthof(this->company_info[this->company].num_vehicle); i++) { SetDParam(0, this->company_info[this->company].num_vehicle[NETWORK_VEH_TRAIN]);
SetDParam(i, this->company_info[this->company].num_vehicle[i]); SetDParam(1, this->company_info[this->company].num_vehicle[NETWORK_VEH_LORRY]);
} SetDParam(2, this->company_info[this->company].num_vehicle[NETWORK_VEH_BUS]);
SetDParam(3, this->company_info[this->company].num_vehicle[NETWORK_VEH_PLANE]);
SetDParam(4, this->company_info[this->company].num_vehicle[NETWORK_VEH_SHIP]);
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_VEHICLES); // vehicles DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_VEHICLES); // vehicles
y += FONT_HEIGHT_NORMAL; y += FONT_HEIGHT_NORMAL;
for (uint i = 0; i < lengthof(this->company_info[this->company].num_station); i++) { SetDParam(0, this->company_info[this->company].num_station[NETWORK_VEH_TRAIN]);
SetDParam(i, this->company_info[this->company].num_station[i]); SetDParam(1, this->company_info[this->company].num_station[NETWORK_VEH_LORRY]);
} SetDParam(2, this->company_info[this->company].num_station[NETWORK_VEH_BUS]);
SetDParam(3, this->company_info[this->company].num_station[NETWORK_VEH_PLANE]);
SetDParam(4, this->company_info[this->company].num_station[NETWORK_VEH_SHIP]);
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_STATIONS); // stations DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_GAME_LOBBY_STATIONS); // stations
y += FONT_HEIGHT_NORMAL; y += FONT_HEIGHT_NORMAL;

View File

@ -1375,11 +1375,11 @@ void NetworkSocketHandler::Send_CompanyInformation(Packet *p, const Company *c,
/* Send 1 if there is a passord for the company else send 0 */ /* Send 1 if there is a passord for the company else send 0 */
p->Send_bool (!StrEmpty(_network_company_states[c->index].password)); p->Send_bool (!StrEmpty(_network_company_states[c->index].password));
for (uint i = 0; i < NETWORK_VEHICLE_TYPES; i++) { for (uint i = 0; i < NETWORK_VEH_END; i++) {
p->Send_uint16(stats->num_vehicle[i]); p->Send_uint16(stats->num_vehicle[i]);
} }
for (uint i = 0; i < NETWORK_STATION_TYPES; i++) { for (uint i = 0; i < NETWORK_VEH_END; i++) {
p->Send_uint16(stats->num_station[i]); p->Send_uint16(stats->num_station[i]);
} }
@ -1402,10 +1402,10 @@ void NetworkPopulateCompanyStats(NetworkCompanyStats *stats)
if (!Company::IsValidID(v->owner) || !v->IsPrimaryVehicle()) continue; if (!Company::IsValidID(v->owner) || !v->IsPrimaryVehicle()) continue;
byte type = 0; byte type = 0;
switch (v->type) { switch (v->type) {
case VEH_TRAIN: type = 0; break; case VEH_TRAIN: type = NETWORK_VEH_TRAIN; break;
case VEH_ROAD: type = RoadVehicle::From(v)->IsBus() ? 2 : 1; break; case VEH_ROAD: type = RoadVehicle::From(v)->IsBus() ? NETWORK_VEH_BUS : NETWORK_VEH_LORRY; break;
case VEH_AIRCRAFT: type = 3; break; case VEH_AIRCRAFT: type = NETWORK_VEH_PLANE; break;
case VEH_SHIP: type = 4; break; case VEH_SHIP: type = NETWORK_VEH_SHIP; break;
default: continue; default: continue;
} }
stats[v->owner].num_vehicle[type]++; stats[v->owner].num_vehicle[type]++;
@ -1416,11 +1416,11 @@ void NetworkPopulateCompanyStats(NetworkCompanyStats *stats)
if (Company::IsValidID(s->owner)) { if (Company::IsValidID(s->owner)) {
NetworkCompanyStats *npi = &stats[s->owner]; NetworkCompanyStats *npi = &stats[s->owner];
if (s->facilities & FACIL_TRAIN) npi->num_station[0]++; if (s->facilities & FACIL_TRAIN) npi->num_station[NETWORK_VEH_TRAIN]++;
if (s->facilities & FACIL_TRUCK_STOP) npi->num_station[1]++; if (s->facilities & FACIL_TRUCK_STOP) npi->num_station[NETWORK_VEH_LORRY]++;
if (s->facilities & FACIL_BUS_STOP) npi->num_station[2]++; if (s->facilities & FACIL_BUS_STOP) npi->num_station[NETWORK_VEH_BUS]++;
if (s->facilities & FACIL_AIRPORT) npi->num_station[3]++; if (s->facilities & FACIL_AIRPORT) npi->num_station[NETWORK_VEH_PLANE]++;
if (s->facilities & FACIL_DOCK) npi->num_station[4]++; if (s->facilities & FACIL_DOCK) npi->num_station[NETWORK_VEH_SHIP]++;
} }
} }
} }

View File

@ -26,10 +26,18 @@ static const uint MAX_CLIENTS = 255;
*/ */
static const uint MAX_CLIENT_SLOTS = 256; static const uint MAX_CLIENT_SLOTS = 256;
/** How many vehicle types we put over the network */ /**
static const uint NETWORK_VEHICLE_TYPES = 5; * Vehicletypes in the order they are send in info packets.
/** How many station types we put over the network */ */
static const uint NETWORK_STATION_TYPES = 5; enum NetworkVehicleType {
NETWORK_VEH_TRAIN = 0,
NETWORK_VEH_LORRY,
NETWORK_VEH_BUS,
NETWORK_VEH_PLANE,
NETWORK_VEH_SHIP,
NETWORK_VEH_END
};
/** 'Unique' identifier to be given to clients */ /** 'Unique' identifier to be given to clients */
enum ClientID { enum ClientID {
@ -43,8 +51,8 @@ typedef uint8 ClientIndex;
/** Simple calculated statistics of a company */ /** Simple calculated statistics of a company */
struct NetworkCompanyStats { struct NetworkCompanyStats {
uint16 num_vehicle[NETWORK_VEHICLE_TYPES]; ///< How many vehicles are there of this type? uint16 num_vehicle[NETWORK_VEH_END]; ///< How many vehicles are there of this type?
uint16 num_station[NETWORK_STATION_TYPES]; ///< How many stations are there of this type? uint16 num_station[NETWORK_VEH_END]; ///< How many stations are there of this type?
bool ai; ///< Is this company an AI bool ai; ///< Is this company an AI
}; };