(svn r6979) Use the pool macros for the Industry pool
authortron
Sat, 28 Oct 2006 11:32:45 +0000
changeset 4976 2e3d5e8ec510
parent 4975 7e2f5c450321
child 4977 c5dd04c706bc
(svn r6979) Use the pool macros for the Industry pool
industry.h
industry_cmd.c
oldloader.c
openttd.c
--- a/industry.h	Sat Oct 28 11:32:12 2006 +0000
+++ b/industry.h	Sat Oct 28 11:32:45 2006 +0000
@@ -80,7 +80,7 @@
 
 const IndustrySpec *GetIndustrySpec(IndustryType thistype);
 
-extern MemoryPool _industry_pool;
+DECLARE_POOL(Industry, Industry, 3, 8000)
 
 /**
  * Check if an Industry really exists.
@@ -90,22 +90,6 @@
 	return industry->xy != 0;
 }
 
-/**
- * Get the pointer to the industry with index 'index'
- */
-static inline Industry *GetIndustry(uint index)
-{
-	return (Industry*)GetItemFromPool(&_industry_pool, index);
-}
-
-/**
- * Get the current size of the IndustryPool
- */
-static inline uint16 GetIndustryPoolSize(void)
-{
-	return _industry_pool.total_items;
-}
-
 VARDEF int _total_industries;
 
 static inline IndustryID GetIndustryArraySize(void)
@@ -150,7 +134,7 @@
 	i->xy = 0;
 }
 
-#define FOR_ALL_INDUSTRIES_FROM(i, start) for (i = GetIndustry(start); i != NULL; i = (i->index + 1 < GetIndustryPoolSize()) ? GetIndustry(i->index + 1) : NULL) if (IsValidIndustry(i))
+#define FOR_ALL_INDUSTRIES_FROM(i, start) for (i = GetIndustry(start); i != NULL; i = (i->index + 1U < GetIndustryPoolSize()) ? GetIndustry(i->index + 1U) : NULL) if (IsValidIndustry(i))
 #define FOR_ALL_INDUSTRIES(i) FOR_ALL_INDUSTRIES_FROM(i, 0)
 
 VARDEF const Industry** _industry_sort;
--- a/industry_cmd.c	Sat Oct 28 11:32:12 2006 +0000
+++ b/industry_cmd.c	Sat Oct 28 11:32:45 2006 +0000
@@ -32,12 +32,6 @@
 static byte _industry_sound_ctr;
 static TileIndex _industry_sound_tile;
 
-enum {
-	/* Max industries: 64000 (8 * 8000) */
-	INDUSTRY_POOL_BLOCK_SIZE_BITS = 3,       /* In bits, so (1 << 3) == 8 */
-	INDUSTRY_POOL_MAX_BLOCKS      = 8000,
-};
-
 /**
  * Called if a new block is added to the industry-pool
  */
@@ -47,11 +41,10 @@
 
 	/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
 	 * TODO - This is just a temporary stage, this will be removed. */
-	for (i = GetIndustry(start_item); i != NULL; i = (i->index + 1 < GetIndustryPoolSize()) ? GetIndustry(i->index + 1) : NULL) i->index = start_item++;
+	for (i = GetIndustry(start_item); i != NULL; i = (i->index + 1U < GetIndustryPoolSize()) ? GetIndustry(i->index + 1U) : NULL) i->index = start_item++;
 }
 
-/* Initialize the industry-pool */
-MemoryPool _industry_pool = { "Industry", INDUSTRY_POOL_MAX_BLOCKS, INDUSTRY_POOL_BLOCK_SIZE_BITS, sizeof(Industry), &IndustryPoolNewBlock, NULL, 0, 0, NULL };
+DEFINE_POOL(Industry, Industry, IndustryPoolNewBlock, NULL)
 
 /**
  * Retrieve the type for this industry.  Although it is accessed by a tile,
@@ -1369,7 +1362,7 @@
 
 	/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
 	 * TODO - This is just a temporary stage, this will be removed. */
-	for (i = GetIndustry(0); i != NULL; i = (i->index + 1 < GetIndustryPoolSize()) ? GetIndustry(i->index + 1) : NULL) {
+	for (i = GetIndustry(0); i != NULL; i = (i->index + 1U < GetIndustryPoolSize()) ? GetIndustry(i->index + 1U) : NULL) {
 		IndustryID index = i->index;
 
 		if (IsValidIndustry(i)) continue;
@@ -1383,7 +1376,7 @@
 	}
 
 	/* Check if we can add a block to the pool */
-	return AddBlockToPool(&_industry_pool) ? AllocateIndustry() : NULL;
+	return AddBlockToPool(&_Industry_pool) ? AllocateIndustry() : NULL;
 }
 
 static void DoCreateNewIndustry(Industry *i, TileIndex tile, int type, const IndustryTileTable *it, const Town *t, byte owner)
@@ -1848,8 +1841,8 @@
 
 void InitializeIndustries(void)
 {
-	CleanPool(&_industry_pool);
-	AddBlockToPool(&_industry_pool);
+	CleanPool(&_Industry_pool);
+	AddBlockToPool(&_Industry_pool);
 
 	_total_industries = 0;
 	_industry_sort_dirty = true;
@@ -1924,7 +1917,7 @@
 	while ((index = SlIterateArray()) != -1) {
 		Industry *i;
 
-		if (!AddBlockIfNeeded(&_industry_pool, index))
+		if (!AddBlockIfNeeded(&_Industry_pool, index))
 			error("Industries: failed loading savegame: too many industries");
 
 		i = GetIndustry(index);
--- a/oldloader.c	Sat Oct 28 11:32:12 2006 +0000
+++ b/oldloader.c	Sat Oct 28 11:32:45 2006 +0000
@@ -709,7 +709,7 @@
 {
 	Industry *i;
 
-	if (!AddBlockIfNeeded(&_industry_pool, num))
+	if (!AddBlockIfNeeded(&_Industry_pool, num))
 		error("Industries: failed loading savegame: too many industries");
 
 	i = GetIndustry(num);
--- a/openttd.c	Sat Oct 28 11:32:12 2006 +0000
+++ b/openttd.c	Sat Oct 28 11:32:45 2006 +0000
@@ -255,7 +255,7 @@
 {
 	/* Dynamic stuff needs to be free'd somewhere... */
 	CleanPool(&_town_pool);
-	CleanPool(&_industry_pool);
+	CleanPool(&_Industry_pool);
 	CleanPool(&_station_pool);
 	CleanPool(&_Vehicle_pool);
 	CleanPool(&_sign_pool);