From 8f361393ddd26f2f1a08a108bb74c6bbfc6cab56 Mon Sep 17 00:00:00 2001 From: maedhros Date: Sat, 2 Jun 2007 09:11:06 +0000 Subject: [PATCH] (svn r10020) -Fix [FS#824]: GetNextVehicle() is invalid for anything that isn't a train. --- src/vehicle.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 298bcfcaf3..d6c46e5e50 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -612,11 +612,20 @@ void DestroyVehicle(Vehicle *v) if (v->type == VEH_TRAIN && EngineHasArticPart(v)) DeleteVehicle(v->next); } +/** + * Deletes all vehicles in a chain. + * @param v The first vehicle in the chain. + * + * @warning This function is not valid for any vehicle containing articulated + * parts. + */ void DeleteVehicleChain(Vehicle *v) { + assert(v->type != VEH_TRAIN); + do { Vehicle *u = v; - v = GetNextVehicle(v); + v = v->next; DeleteVehicle(u); } while (v != NULL); }