Changeset - r14631:5e82747104db
[Not reviewed]
master
0 4 0
frosch - 14 years ago 2010-02-22 21:46:20
frosch@openttd.org
(svn r19218) -Feature: [NewGRF] Add CB36 support for aircraft properties 0F and 11. (Eddi)
4 files changed with 13 insertions and 11 deletions:
0 comments (0 inline, 0 general)
src/engine.cpp
Show inline comments
 
@@ -184,12 +184,12 @@ uint Engine::GetDisplayDefaultCapacity(u
 
			return GetEngineProperty(this->index, PROP_SHIP_CARGO_CAPACITY, this->u.ship.capacity);
 

	
 
		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();
 
			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 {
 
				capacity += this->u.air.mail_capacity;
 
				capacity += GetEngineProperty(this->index, PROP_AIRCRAFT_MAIL_CAPACITY, this->u.air.mail_capacity);
 
			}
 
			switch (cargo) {
 
				case CT_PASSENGERS:
src/newgrf.cpp
Show inline comments
 
@@ -1049,11 +1049,11 @@ static ChangeInfoResult AircraftVehicleC
 
				avi->running_cost = buf->ReadByte();
 
				break;
 

	
 
			case 0x0F: // Passenger capacity
 
			case PROP_AIRCRAFT_PASSENGER_CAPACITY: // 0x0F Passenger capacity
 
				avi->passenger_capacity = buf->ReadWord();
 
				break;
 

	
 
			case 0x11: // Mail capacity
 
			case PROP_AIRCRAFT_MAIL_CAPACITY: // 0x11 Mail capacity
 
				avi->mail_capacity = buf->ReadByte();
 
				break;
 

	
src/newgrf_properties.h
Show inline comments
 
@@ -39,6 +39,8 @@ enum PropertyID {
 
	PROP_AIRCRAFT_COST_FACTOR                   = 0x0B, ///< Purchase cost
 
	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_PASSENGER_CAPACITY            = 0x0F, ///< Passenger Capacity
 
	PROP_AIRCRAFT_MAIL_CAPACITY                 = 0x11, ///< Mail Capacity
 
};
 

	
 
#endif /* NEWGRF_PROPERTIES_H */
src/vehicle.cpp
Show inline comments
 
@@ -1468,7 +1468,7 @@ uint GetVehicleCapacity(const Vehicle *v
 
	if (!e->CanCarryCargo()) return 0;
 

	
 
	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();
 

	
 
@@ -1483,10 +1483,10 @@ uint GetVehicleCapacity(const Vehicle *v
 
	/* Get capacity according to property resp. CB */
 
	uint capacity;
 
	switch (e->type) {
 
		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_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_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_SHIP:     capacity = GetVehicleProperty(v, PROP_SHIP_CARGO_CAPACITY,         e->u.ship.capacity); break;
 
		case VEH_AIRCRAFT: capacity = GetVehicleProperty(v, PROP_AIRCRAFT_PASSENGER_CAPACITY, e->u.air.passenger_capacity); break;
 
		default: NOT_REACHED();
 
	}
 

	
 
@@ -1495,7 +1495,7 @@ uint GetVehicleCapacity(const Vehicle *v
 
	if (e->type != VEH_SHIP) {
 
		if (e->type == VEH_AIRCRAFT) {
 
			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;
 
		} else {
0 comments (0 inline, 0 general)