diff options
author | tron <tron@openttd.org> | 2005-03-29 08:37:44 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2005-03-29 08:37:44 +0000 |
commit | 3a8665f796876a7dd346887cae7d7df4808ee4d4 (patch) | |
tree | f66307624da181e35fd2472d1aee5143c4e09c72 | |
parent | eb96f899607eb158c512f1fa774b46a249f9941b (diff) | |
download | openttd-3a8665f796876a7dd346887cae7d7df4808ee4d4.tar.xz |
(svn r2104) Simplify implementation of Get{First,Prev}VehicleInChain() and remove a pointless check
-rw-r--r-- | vehicle.c | 19 |
1 files changed, 6 insertions, 13 deletions
@@ -343,27 +343,20 @@ Vehicle *GetLastVehicleInChain(Vehicle *v) Vehicle *GetPrevVehicleInChain(const Vehicle *v) { - const Vehicle *org = v; + Vehicle *u; - FOR_ALL_VEHICLES(v) { - if (v->type == VEH_Train && org == v->next) - return (Vehicle*)v; - } + FOR_ALL_VEHICLES(u) if (u->next == v) return u; return NULL; } Vehicle *GetFirstVehicleInChain(const Vehicle *v) { - while (true) { - const Vehicle* u = v; + const Vehicle* u; - v = GetPrevVehicleInChain(v); - /* If there is no such vehicle, - 'v' == NULL and so 'u' is the first vehicle in chain */ - if (v == NULL) - return (Vehicle*)u; - } + while ((u = GetPrevVehicleInChain(v)) != NULL) v = u; + + return (Vehicle*)v; } int CountVehiclesInChain(Vehicle *v) |