summaryrefslogtreecommitdiff
path: root/src/ai/api/ai_event_types.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ai/api/ai_event_types.cpp')
-rw-r--r--src/ai/api/ai_event_types.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/ai/api/ai_event_types.cpp b/src/ai/api/ai_event_types.cpp
index 4c66ceadb..469d53776 100644
--- a/src/ai/api/ai_event_types.cpp
+++ b/src/ai/api/ai_event_types.cpp
@@ -28,10 +28,11 @@ CargoID AIEventEnginePreview::GetCargoType()
int32 AIEventEnginePreview::GetCapacity()
{
- switch (::GetEngine(engine)->type) {
+ const Engine *e = ::GetEngine(engine);
+ switch (e->type) {
case VEH_ROAD:
case VEH_TRAIN: {
- uint16 *capacities = GetCapacityOfArticulatedParts(engine, ::GetEngine(engine)->type);
+ uint16 *capacities = GetCapacityOfArticulatedParts(engine, e->type);
for (CargoID c = 0; c < NUM_CARGO; c++) {
if (capacities[c] == 0) continue;
return capacities[c];
@@ -39,15 +40,13 @@ int32 AIEventEnginePreview::GetCapacity()
return -1;
} break;
- case VEH_SHIP: {
- const ShipVehicleInfo *vi = ::ShipVehInfo(engine);
- return vi->capacity;
- } break;
+ case VEH_SHIP:
+ return e->u.ship.capacity;
+ break;
- case VEH_AIRCRAFT: {
- const AircraftVehicleInfo *vi = ::AircraftVehInfo(engine);
- return vi->passenger_capacity;
- } break;
+ case VEH_AIRCRAFT:
+ return AircraftDefaultCargoCapacity(e->GetDefaultCargoType(), &e->u.air);
+ break;
default: NOT_REACHED();
}