diff options
author | frosch <frosch@openttd.org> | 2009-01-24 14:26:48 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2009-01-24 14:26:48 +0000 |
commit | 47cdbe4a20ef0ab9f2d7108d51b501305ac4d401 (patch) | |
tree | 0890255fd73402ca21ee816e7c56b72568c00d2d /src/ai | |
parent | a92f472714dc4f8045be5a0c03c638fa91940c9c (diff) | |
download | openttd-47cdbe4a20ef0ab9f2d7108d51b501305ac4d401.tar.xz |
(svn r15255) -Fix (r15027): AIVehicle::GetLength() returned only the length of the first part of articulated road vehicles.
Diffstat (limited to 'src/ai')
-rw-r--r-- | src/ai/api/ai_vehicle.cpp | 8 |
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; } |