mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r19996) -Codechange: Add NetworkVehicleType enum.
This commit is contained in:
parent
5623710593
commit
99a11badaf
@ -423,10 +423,10 @@ DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_COMPANY_INFO)
|
||||
company_info->income = p->Recv_uint64();
|
||||
company_info->performance = p->Recv_uint16();
|
||||
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();
|
||||
}
|
||||
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->ai = p->Recv_bool();
|
||||
|
@ -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
|
||||
y += FONT_HEIGHT_NORMAL;
|
||||
|
||||
for (uint i = 0; i < lengthof(this->company_info[this->company].num_vehicle); i++) {
|
||||
SetDParam(i, this->company_info[this->company].num_vehicle[i]);
|
||||
}
|
||||
SetDParam(0, this->company_info[this->company].num_vehicle[NETWORK_VEH_TRAIN]);
|
||||
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
|
||||
y += FONT_HEIGHT_NORMAL;
|
||||
|
||||
for (uint i = 0; i < lengthof(this->company_info[this->company].num_station); i++) {
|
||||
SetDParam(i, this->company_info[this->company].num_station[i]);
|
||||
}
|
||||
SetDParam(0, this->company_info[this->company].num_station[NETWORK_VEH_TRAIN]);
|
||||
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
|
||||
y += FONT_HEIGHT_NORMAL;
|
||||
|
||||
|
@ -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 */
|
||||
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]);
|
||||
}
|
||||
|
||||
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]);
|
||||
}
|
||||
|
||||
@ -1402,10 +1402,10 @@ void NetworkPopulateCompanyStats(NetworkCompanyStats *stats)
|
||||
if (!Company::IsValidID(v->owner) || !v->IsPrimaryVehicle()) continue;
|
||||
byte type = 0;
|
||||
switch (v->type) {
|
||||
case VEH_TRAIN: type = 0; break;
|
||||
case VEH_ROAD: type = RoadVehicle::From(v)->IsBus() ? 2 : 1; break;
|
||||
case VEH_AIRCRAFT: type = 3; break;
|
||||
case VEH_SHIP: type = 4; break;
|
||||
case VEH_TRAIN: type = NETWORK_VEH_TRAIN; break;
|
||||
case VEH_ROAD: type = RoadVehicle::From(v)->IsBus() ? NETWORK_VEH_BUS : NETWORK_VEH_LORRY; break;
|
||||
case VEH_AIRCRAFT: type = NETWORK_VEH_PLANE; break;
|
||||
case VEH_SHIP: type = NETWORK_VEH_SHIP; break;
|
||||
default: continue;
|
||||
}
|
||||
stats[v->owner].num_vehicle[type]++;
|
||||
@ -1416,11 +1416,11 @@ void NetworkPopulateCompanyStats(NetworkCompanyStats *stats)
|
||||
if (Company::IsValidID(s->owner)) {
|
||||
NetworkCompanyStats *npi = &stats[s->owner];
|
||||
|
||||
if (s->facilities & FACIL_TRAIN) npi->num_station[0]++;
|
||||
if (s->facilities & FACIL_TRUCK_STOP) npi->num_station[1]++;
|
||||
if (s->facilities & FACIL_BUS_STOP) npi->num_station[2]++;
|
||||
if (s->facilities & FACIL_AIRPORT) npi->num_station[3]++;
|
||||
if (s->facilities & FACIL_DOCK) npi->num_station[4]++;
|
||||
if (s->facilities & FACIL_TRAIN) npi->num_station[NETWORK_VEH_TRAIN]++;
|
||||
if (s->facilities & FACIL_TRUCK_STOP) npi->num_station[NETWORK_VEH_LORRY]++;
|
||||
if (s->facilities & FACIL_BUS_STOP) npi->num_station[NETWORK_VEH_BUS]++;
|
||||
if (s->facilities & FACIL_AIRPORT) npi->num_station[NETWORK_VEH_PLANE]++;
|
||||
if (s->facilities & FACIL_DOCK) npi->num_station[NETWORK_VEH_SHIP]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,10 +26,18 @@ static const uint MAX_CLIENTS = 255;
|
||||
*/
|
||||
static const uint MAX_CLIENT_SLOTS = 256;
|
||||
|
||||
/** How many vehicle types we put over the network */
|
||||
static const uint NETWORK_VEHICLE_TYPES = 5;
|
||||
/** How many station types we put over the network */
|
||||
static const uint NETWORK_STATION_TYPES = 5;
|
||||
/**
|
||||
* Vehicletypes in the order they are send in info packets.
|
||||
*/
|
||||
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 */
|
||||
enum ClientID {
|
||||
@ -43,8 +51,8 @@ typedef uint8 ClientIndex;
|
||||
|
||||
/** Simple calculated statistics of a company */
|
||||
struct NetworkCompanyStats {
|
||||
uint16 num_vehicle[NETWORK_VEHICLE_TYPES]; ///< How many vehicles are there of this type?
|
||||
uint16 num_station[NETWORK_STATION_TYPES]; ///< How many stations are there of this type?
|
||||
uint16 num_vehicle[NETWORK_VEH_END]; ///< How many vehicles 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
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user