(svn r6047) -Codechange: FOR_ALL now _only_ loops valid items, and skips invalid ones

-Codechange: use IsValidXXX where ever possible
  Note: both changes to prepare for new pool system, which needs those changes.
  For every pool there are 2 ugly lines, which will be removed when done
  implementing new pool system.
  Based on FS#13 by blathijs, partly implemented.
This commit is contained in:
truelight
2006-08-22 15:33:35 +00:00
parent 4c2abf1de5
commit 0461d89612
38 changed files with 331 additions and 385 deletions

View File

@@ -359,9 +359,6 @@ static inline uint16 GetVehiclePoolSize(void)
return _vehicle_pool.total_items;
}
#define FOR_ALL_VEHICLES_FROM(v, start) for (v = GetVehicle(start); v != NULL; v = (v->index + 1 < GetVehiclePoolSize()) ? GetVehicle(v->index + 1) : NULL)
#define FOR_ALL_VEHICLES(v) FOR_ALL_VEHICLES_FROM(v, 0)
/**
* Check if a Vehicle really exists.
*/
@@ -370,6 +367,9 @@ static inline bool IsValidVehicle(const Vehicle *v)
return v->type != 0;
}
#define FOR_ALL_VEHICLES_FROM(v, start) for (v = GetVehicle(start); v != NULL; v = (v->index + 1 < GetVehiclePoolSize()) ? GetVehicle(v->index + 1) : NULL) if (IsValidVehicle(v))
#define FOR_ALL_VEHICLES(v) FOR_ALL_VEHICLES_FROM(v, 0)
/**
* Check if an index is a vehicle-index (so between 0 and max-vehicles)
*