From 3a8665f796876a7dd346887cae7d7df4808ee4d4 Mon Sep 17 00:00:00 2001 From: tron Date: Tue, 29 Mar 2005 08:37:44 +0000 Subject: (svn r2104) Simplify implementation of Get{First,Prev}VehicleInChain() and remove a pointless check --- vehicle.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'vehicle.c') diff --git a/vehicle.c b/vehicle.c index 8636ceb00..d2186e4da 100644 --- a/vehicle.c +++ b/vehicle.c @@ -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) -- cgit v1.2.3-70-g09d2