(svn r13250) -Codechange: Use VehicleList in SendAllVehiclesToDepot()
authorpeter1138
Sun, 25 May 2008 17:36:49 +0000
changeset 9353 9d76aef9fe2b
parent 9352 8979e416b2e9
child 9354 845e07db4549
(svn r13250) -Codechange: Use VehicleList in SendAllVehiclesToDepot()
src/vehicle.cpp
--- a/src/vehicle.cpp	Sun May 25 17:26:16 2008 +0000
+++ b/src/vehicle.cpp	Sun May 25 17:36:49 2008 +0000
@@ -1462,14 +1462,13 @@
  */
 CommandCost SendAllVehiclesToDepot(VehicleType type, uint32 flags, bool service, PlayerID owner, uint16 vlw_flag, uint32 id)
 {
-	const Vehicle **sort_list = NULL;
-	uint16 array_length = 0;
-
-	uint n = GenerateVehicleSortList(&sort_list, &array_length, type, owner, id, vlw_flag);
+	VehicleList list;
+
+	GenerateVehicleSortList(&list, type, owner, id, vlw_flag);
 
 	/* Send all the vehicles to a depot */
-	for (uint i = 0; i < n; i++) {
-		const Vehicle *v = sort_list[i];
+	for (uint i = 0; i < list.Length(); i++) {
+		const Vehicle *v = list[i];
 		CommandCost ret = DoCommand(v->tile, v->index, (service ? 1 : 0) | DEPOT_DONT_CANCEL, flags, GetCmdSendToDepot(type));
 
 		/* Return 0 if DC_EXEC is not set this is a valid goto depot command)
@@ -1477,12 +1476,10 @@
 			* and we will issue the command. We can now safely quit the loop, knowing
 			* it will succeed at least once. With DC_EXEC we really need to send them to the depot */
 		if (CmdSucceeded(ret) && !(flags & DC_EXEC)) {
-			free((void*)sort_list);
 			return CommandCost();
 		}
 	}
 
-	free((void*)sort_list);
 	return (flags & DC_EXEC) ? CommandCost() : CMD_ERROR;
 }