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 | e39cb78b73144ff093ee8ee2e50c7ab075683a0e (patch) | |
tree | f66307624da181e35fd2472d1aee5143c4e09c72 | |
parent | a4e17642a8ebc0fe81dc6383c641e612a5b54b4e (diff) | |
download | openttd-e39cb78b73144ff093ee8ee2e50c7ab075683a0e.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) |