diff -r b18d1d5b047d -r 6e4a90ed8830 src/ai/api/ai_engine.cpp --- a/src/ai/api/ai_engine.cpp Tue Apr 15 15:32:47 2008 +0000 +++ b/src/ai/api/ai_engine.cpp Tue Apr 15 15:34:02 2008 +0000 @@ -16,6 +16,7 @@ #include "../../economy_func.h" #include "../../core/bitmath_func.hpp" #include "../../settings_type.h" +#include "../../articulated_vehicles.h" #include "table/strings.h" /* static */ bool AIEngine::IsValidEngine(EngineID engine_id) @@ -78,14 +79,14 @@ if (!IsValidEngine(engine_id)) return 0; switch (::GetEngine(engine_id)->type) { - case VEH_ROAD: { - const RoadVehicleInfo *vi = ::RoadVehInfo(engine_id); - return vi->capacity; - } break; - + case VEH_ROAD: case VEH_TRAIN: { - const RailVehicleInfo *vi = ::RailVehInfo(engine_id); - return vi->capacity; + uint16 *capacities = GetCapacityOfArticulatedParts(engine_id, ::GetEngine(engine_id)->type); + for (CargoID c = 0; c < NUM_CARGO; c++) { + if (capacities[c] == 0) continue; + return capacities[c]; + } + return 0; } break; case VEH_SHIP: {