diff --git a/src/base_station_base.h b/src/base_station_base.h index 53e104a826..6d6b20ba3c 100644 --- a/src/base_station_base.h +++ b/src/base_station_base.h @@ -250,6 +250,8 @@ struct SpecializedStation : public BaseStation { } }; -#define FOR_ALL_BASE_STATIONS_OF_TYPE(name, var) FOR_ALL_ITEMS_FROM(name, station_index, var, 0) if (name::IsExpected(var)) +#define FOR_ALL_BASE_STATIONS_OF_TYPE(name, var) \ + for (size_t station_index = 0; var = NULL, station_index < name::GetPoolSize(); station_index++) \ + if ((var = name::GetIfValid(station_index)) != NULL) #endif /* BASE_STATION_BASE_H */ diff --git a/src/vehicle_base.h b/src/vehicle_base.h index 902bfc3e4f..40872dca0c 100644 --- a/src/vehicle_base.h +++ b/src/vehicle_base.h @@ -1170,7 +1170,9 @@ struct SpecializedVehicle : public Vehicle { * @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) +#define FOR_ALL_VEHICLES_OF_TYPE(name, var) \ + for (size_t vehicle_index = 0; var = NULL, vehicle_index < name::GetPoolSize(); vehicle_index++) \ + if ((var = name::GetIfValid(vehicle_index)) != NULL) /** Generates sequence of free UnitID numbers */ struct FreeUnitIDGenerator {