town.h
changeset 919 b0d6c7642f99
parent 835 a22d6bc16a51
child 1005 8c6a9bf44bf1
--- a/town.h	Thu Jan 06 19:40:44 2005 +0000
+++ b/town.h	Thu Jan 06 22:31:58 2005 +0000
@@ -91,10 +91,19 @@
 
 bool CheckforTownRating(uint tile, uint32 flags, Town *t, byte type);
 
-#define DEREF_TOWN(i) (&_towns[i])
-#define FOR_ALL_TOWNS(c) for(c=_towns; c != endof(_towns); c++)
+VARDEF Town _towns[70];
+VARDEF uint _towns_size;
 
-VARDEF Town _towns[70];
+VARDEF uint16 *_town_sort;
+
+static inline Town *GetTown(uint index)
+{
+	assert(index < _towns_size);
+	return &_towns[index];
+}
+
+#define FOR_ALL_TOWNS(t) for(t = _towns; t != &_towns[_towns_size]; t++)
+
 VARDEF int _total_towns; // For the AI: the amount of towns active
 
 VARDEF bool _town_sort_dirty;