Mercurial > hg > openttd
changeset 18339:4675de035ab1 draft
(svn r23175) -Codechange: Refactor Engine::DetermineCapacity().
author | frosch <frosch@openttd.org> |
---|---|
date | Wed, 09 Nov 2011 16:40:36 +0000 |
parents | 1acd061c150f |
children | 72d57cf141f5 |
files | src/engine.cpp |
diffstat | 1 files changed, 26 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/src/engine.cpp +++ b/src/engine.cpp @@ -228,28 +228,38 @@ /* Get capacity according to property resp. CB */ uint capacity; switch (this->type) { - case VEH_TRAIN: capacity = GetEngineProperty(this->index, PROP_TRAIN_CARGO_CAPACITY, this->u.rail.capacity, v); break; - case VEH_ROAD: capacity = GetEngineProperty(this->index, PROP_ROADVEH_CARGO_CAPACITY, this->u.road.capacity, v); break; - case VEH_SHIP: capacity = GetEngineProperty(this->index, PROP_SHIP_CARGO_CAPACITY, this->u.ship.capacity, v); break; - case VEH_AIRCRAFT: capacity = GetEngineProperty(this->index, PROP_AIRCRAFT_PASSENGER_CAPACITY, this->u.air.passenger_capacity, v); break; + case VEH_TRAIN: + capacity = GetEngineProperty(this->index, PROP_TRAIN_CARGO_CAPACITY, this->u.rail.capacity, v); + break; + + case VEH_ROAD: + capacity = GetEngineProperty(this->index, PROP_ROADVEH_CARGO_CAPACITY, this->u.road.capacity, v); + break; + + case VEH_SHIP: + capacity = GetEngineProperty(this->index, PROP_SHIP_CARGO_CAPACITY, this->u.ship.capacity, v); + break; + + case VEH_AIRCRAFT: + capacity = GetEngineProperty(this->index, PROP_AIRCRAFT_PASSENGER_CAPACITY, this->u.air.passenger_capacity, v); + if (!IsCargoInClass(v->cargo_type, CC_PASSENGERS)) { + capacity += GetEngineProperty(this->index, PROP_AIRCRAFT_MAIL_CAPACITY, this->u.air.mail_capacity, v); + } + if (v->cargo_type == CT_MAIL) return capacity; + default_cargo = CT_PASSENGERS; // Always use 'passengers' wrt. cargo multipliers + break; + default: NOT_REACHED(); } /* Apply multipliers depending on cargo- and vehicletype. * Note: This might change to become more consistent/flexible. */ if (this->type != VEH_SHIP) { - if (this->type == VEH_AIRCRAFT) { - if (!IsCargoInClass(v->cargo_type, CC_PASSENGERS)) { - capacity += GetEngineProperty(this->index, PROP_AIRCRAFT_MAIL_CAPACITY, this->u.air.mail_capacity, v); - } - if (v->cargo_type == CT_MAIL) return capacity; - } else { - switch (default_cargo) { - case CT_PASSENGERS: break; - case CT_MAIL: - case CT_GOODS: capacity *= 2; break; - default: capacity *= 4; break; - } + switch (default_cargo) { + case CT_PASSENGERS: break; + case CT_MAIL: + case CT_GOODS: capacity *= 2; break; + default: capacity *= 4; break; } switch (v->cargo_type) { case CT_PASSENGERS: break;