summaryrefslogtreecommitdiff
path: root/src/vehicle_base.h
diff options
context:
space:
mode:
authorglx <glx@openttd.org>2019-12-17 03:37:43 +0100
committerNiels Martin Hansen <nielsm@indvikleren.dk>2019-12-21 20:13:03 +0100
commitd8a1be48cd60c690235de175e9a044b95f92ea28 (patch)
tree2e1481aa11661c28df49f0d62f56fbf730577152 /src/vehicle_base.h
parent9892d90b26db4dfe97ec7baeb89e43acb53a178e (diff)
downloadopenttd-d8a1be48cd60c690235de175e9a044b95f92ea28.tar.xz
Codechange: Replace vehicle related FOR_ALL with range-based for loops
Diffstat (limited to 'src/vehicle_base.h')
-rw-r--r--src/vehicle_base.h27
1 files changed, 7 insertions, 20 deletions
diff --git a/src/vehicle_base.h b/src/vehicle_base.h
index 4c2aa891a..bc72c6bbf 100644
--- a/src/vehicle_base.h
+++ b/src/vehicle_base.h
@@ -972,19 +972,6 @@ public:
};
/**
- * Iterate over all vehicles from a given point.
- * @param var The variable used to iterate over.
- * @param start The vehicle to start the iteration at.
- */
-#define FOR_ALL_VEHICLES_FROM(var, start) FOR_ALL_ITEMS_FROM(Vehicle, vehicle_index, var, start)
-
-/**
- * Iterate over all vehicles.
- * @param var The variable used to iterate over.
- */
-#define FOR_ALL_VEHICLES(var) FOR_ALL_VEHICLES_FROM(var, 0)
-
-/**
* Class defining several overloaded accessors so we don't
* have to cast vehicle types that often
*/
@@ -1146,14 +1133,14 @@ struct SpecializedVehicle : public Vehicle {
this->Vehicle::UpdateViewport(true);
}
}
-};
-/**
- * Iterate over all vehicles of a particular type.
- * @param name The type of vehicle to iterate over.
- * @param var The variable used to iterate over.
- */
-#define FOR_ALL_VEHICLES_OF_TYPE(name, var) FOR_ALL_ITEMS_FROM(name, vehicle_index, var, 0) if (var->type == name::EXPECTED_TYPE)
+ /**
+ * Returns an iterable ensemble of all valid vehicles of type T
+ * @param from index of the first vehicle to consider
+ * @return an iterable ensemble of all valid vehicles of type T
+ */
+ static Pool::IterateWrapper<T> Iterate(size_t from = 0) { return Pool::IterateWrapper<T>(from); }
+};
/** Generates sequence of free UnitID numbers */
struct FreeUnitIDGenerator {