summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2009-01-24 14:26:48 +0000
committerfrosch <frosch@openttd.org>2009-01-24 14:26:48 +0000
commit47cdbe4a20ef0ab9f2d7108d51b501305ac4d401 (patch)
tree0890255fd73402ca21ee816e7c56b72568c00d2d
parenta92f472714dc4f8045be5a0c03c638fa91940c9c (diff)
downloadopenttd-47cdbe4a20ef0ab9f2d7108d51b501305ac4d401.tar.xz
(svn r15255) -Fix (r15027): AIVehicle::GetLength() returned only the length of the first part of articulated road vehicles.
-rw-r--r--src/ai/api/ai_vehicle.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ai/api/ai_vehicle.cpp b/src/ai/api/ai_vehicle.cpp
index ec5d42f65..197b558b8 100644
--- a/src/ai/api/ai_vehicle.cpp
+++ b/src/ai/api/ai_vehicle.cpp
@@ -47,7 +47,13 @@
const Vehicle *v = ::GetVehicle(vehicle_id);
switch (v->type) {
- case VEH_ROAD: return v->u.road.cached_veh_length;
+ case VEH_ROAD: {
+ uint total_length = 0;
+ for (const Vehicle *u = v; u != NULL; u = u->Next()) {
+ total_length += u->u.road.cached_veh_length;
+ }
+ return total_length;
+ }
case VEH_TRAIN: return v->u.rail.cached_total_length;
default: return -1;
}