--- a/vehicle.h Thu Jan 06 19:40:44 2005 +0000
+++ b/vehicle.h Thu Jan 06 22:31:58 2005 +0000
@@ -408,9 +408,6 @@
#define BEGIN_ENUM_WAGONS(v) do {
#define END_ENUM_WAGONS(v) } while ( (v=v->next) != NULL);
-#define DEREF_VEHICLE(i) (&_vehicles[i])
-#define FOR_ALL_VEHICLES(v) for(v=_vehicles; v != endof(_vehicles); v++)
-
/* vehicle.c */
enum {
NUM_NORMAL_VEHICLES = 2048,
@@ -419,6 +416,18 @@
};
VARDEF Vehicle _vehicles[NUM_VEHICLES];
+VARDEF uint _vehicles_size;
+
+VARDEF SortStruct *_vehicle_sort;
+
+static inline Vehicle *GetVehicle(uint index)
+{
+ assert(index < _vehicles_size);
+ return &_vehicles[index];
+}
+
+#define FOR_ALL_VEHICLES(v) for(v = _vehicles; v != &_vehicles[_vehicles_size]; v++)
+#define FOR_ALL_VEHICLES_FROM(v, from) for(v = GetVehicle(from); v != &_vehicles[_vehicles_size]; v++)
VARDEF Order _order_array[5000];
VARDEF Order *_ptr_to_next_order;