--- 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: {