(svn r19218) -Feature: [NewGRF] Add CB36 support for aircraft properties 0F and 11. (Eddi)

This commit is contained in:
frosch 2010-02-22 21:46:20 +00:00
parent fee0743ba9
commit 63b01f2009
4 changed files with 13 additions and 11 deletions

View File

@ -184,12 +184,12 @@ uint Engine::GetDisplayDefaultCapacity(uint16 *mail_capacity) const
return GetEngineProperty(this->index, PROP_SHIP_CARGO_CAPACITY, this->u.ship.capacity); return GetEngineProperty(this->index, PROP_SHIP_CARGO_CAPACITY, this->u.ship.capacity);
case VEH_AIRCRAFT: { case VEH_AIRCRAFT: {
uint capacity = this->u.air.passenger_capacity; uint capacity = GetEngineProperty(this->index, PROP_AIRCRAFT_PASSENGER_CAPACITY, this->u.air.passenger_capacity);;
CargoID cargo = this->GetDefaultCargoType(); CargoID cargo = this->GetDefaultCargoType();
if (IsCargoInClass(cargo, CC_PASSENGERS)) { if (IsCargoInClass(cargo, CC_PASSENGERS)) {
if (mail_capacity != NULL) *mail_capacity = this->u.air.mail_capacity; if (mail_capacity != NULL) *mail_capacity = GetEngineProperty(this->index, PROP_AIRCRAFT_MAIL_CAPACITY, this->u.air.mail_capacity);
} else { } else {
capacity += this->u.air.mail_capacity; capacity += GetEngineProperty(this->index, PROP_AIRCRAFT_MAIL_CAPACITY, this->u.air.mail_capacity);
} }
switch (cargo) { switch (cargo) {
case CT_PASSENGERS: case CT_PASSENGERS:

View File

@ -1049,11 +1049,11 @@ static ChangeInfoResult AircraftVehicleChangeInfo(uint engine, int numinfo, int
avi->running_cost = buf->ReadByte(); avi->running_cost = buf->ReadByte();
break; break;
case 0x0F: // Passenger capacity case PROP_AIRCRAFT_PASSENGER_CAPACITY: // 0x0F Passenger capacity
avi->passenger_capacity = buf->ReadWord(); avi->passenger_capacity = buf->ReadWord();
break; break;
case 0x11: // Mail capacity case PROP_AIRCRAFT_MAIL_CAPACITY: // 0x11 Mail capacity
avi->mail_capacity = buf->ReadByte(); avi->mail_capacity = buf->ReadByte();
break; break;

View File

@ -39,6 +39,8 @@ enum PropertyID {
PROP_AIRCRAFT_COST_FACTOR = 0x0B, ///< Purchase cost PROP_AIRCRAFT_COST_FACTOR = 0x0B, ///< Purchase cost
PROP_AIRCRAFT_SPEED = 0x0C, ///< Max. speed: 1 unit = 8 mph = 12.8 km-ish/h PROP_AIRCRAFT_SPEED = 0x0C, ///< Max. speed: 1 unit = 8 mph = 12.8 km-ish/h
PROP_AIRCRAFT_RUNNING_COST_FACTOR = 0x0E, ///< Yearly runningcost PROP_AIRCRAFT_RUNNING_COST_FACTOR = 0x0E, ///< Yearly runningcost
PROP_AIRCRAFT_PASSENGER_CAPACITY = 0x0F, ///< Passenger Capacity
PROP_AIRCRAFT_MAIL_CAPACITY = 0x11, ///< Mail Capacity
}; };
#endif /* NEWGRF_PROPERTIES_H */ #endif /* NEWGRF_PROPERTIES_H */

View File

@ -1468,7 +1468,7 @@ uint GetVehicleCapacity(const Vehicle *v, uint16 *mail_capacity)
if (!e->CanCarryCargo()) return 0; if (!e->CanCarryCargo()) return 0;
if (mail_capacity != NULL && e->type == VEH_AIRCRAFT && IsCargoInClass(v->cargo_type, CC_PASSENGERS)) { if (mail_capacity != NULL && e->type == VEH_AIRCRAFT && IsCargoInClass(v->cargo_type, CC_PASSENGERS)) {
*mail_capacity = e->u.air.mail_capacity; *mail_capacity = GetVehicleProperty(v, PROP_AIRCRAFT_MAIL_CAPACITY, e->u.air.mail_capacity);
} }
CargoID default_cargo = e->GetDefaultCargoType(); CargoID default_cargo = e->GetDefaultCargoType();
@ -1483,10 +1483,10 @@ uint GetVehicleCapacity(const Vehicle *v, uint16 *mail_capacity)
/* Get capacity according to property resp. CB */ /* Get capacity according to property resp. CB */
uint capacity; uint capacity;
switch (e->type) { switch (e->type) {
case VEH_TRAIN: capacity = GetVehicleProperty(v, PROP_TRAIN_CARGO_CAPACITY, e->u.rail.capacity); break; case VEH_TRAIN: capacity = GetVehicleProperty(v, PROP_TRAIN_CARGO_CAPACITY, e->u.rail.capacity); break;
case VEH_ROAD: capacity = GetVehicleProperty(v, PROP_ROADVEH_CARGO_CAPACITY, e->u.road.capacity); break; case VEH_ROAD: capacity = GetVehicleProperty(v, PROP_ROADVEH_CARGO_CAPACITY, e->u.road.capacity); break;
case VEH_SHIP: capacity = GetVehicleProperty(v, PROP_SHIP_CARGO_CAPACITY, e->u.ship.capacity); break; case VEH_SHIP: capacity = GetVehicleProperty(v, PROP_SHIP_CARGO_CAPACITY, e->u.ship.capacity); break;
case VEH_AIRCRAFT: capacity = e->u.air.passenger_capacity; break; case VEH_AIRCRAFT: capacity = GetVehicleProperty(v, PROP_AIRCRAFT_PASSENGER_CAPACITY, e->u.air.passenger_capacity); break;
default: NOT_REACHED(); default: NOT_REACHED();
} }
@ -1495,7 +1495,7 @@ uint GetVehicleCapacity(const Vehicle *v, uint16 *mail_capacity)
if (e->type != VEH_SHIP) { if (e->type != VEH_SHIP) {
if (e->type == VEH_AIRCRAFT) { if (e->type == VEH_AIRCRAFT) {
if (!IsCargoInClass(v->cargo_type, CC_PASSENGERS)) { if (!IsCargoInClass(v->cargo_type, CC_PASSENGERS)) {
capacity += e->u.air.mail_capacity; capacity += GetVehicleProperty(v, PROP_AIRCRAFT_MAIL_CAPACITY, e->u.air.mail_capacity);
} }
if (v->cargo_type == CT_MAIL) return capacity; if (v->cargo_type == CT_MAIL) return capacity;
} else { } else {