summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-10-28 11:32:45 +0000
committertron <tron@openttd.org>2006-10-28 11:32:45 +0000
commitd00a58ad69a5e59ca4f0a01fe9976590d3bc74e8 (patch)
treeb6044568d43abbfa7a491932085dbece97587c6f
parent0adc282c3cf13790150fa7c886f635e4dcadeced (diff)
downloadopenttd-d00a58ad69a5e59ca4f0a01fe9976590d3bc74e8.tar.xz
(svn r6979) Use the pool macros for the Industry pool
-rw-r--r--industry.h20
-rw-r--r--industry_cmd.c21
-rw-r--r--oldloader.c2
-rw-r--r--openttd.c2
4 files changed, 11 insertions, 34 deletions
diff --git a/industry.h b/industry.h
index cc2ee4576..7369450db 100644
--- a/industry.h
+++ b/industry.h
@@ -80,7 +80,7 @@ typedef struct IndustrySpec {
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 @@ static inline bool IsValidIndustry(const Industry *industry)
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 @@ static inline void DeleteIndustry(Industry *i)
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;
diff --git a/industry_cmd.c b/industry_cmd.c
index b1ae892fd..1b7da62ab 100644
--- a/industry_cmd.c
+++ b/industry_cmd.c
@@ -32,12 +32,6 @@ void DeleteOilRig(TileIndex tile);
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 @@ static void IndustryPoolNewBlock(uint start_item)
/* 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 @@ static Industry *AllocateIndustry(void)
/* 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 @@ static Industry *AllocateIndustry(void)
}
/* 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 IndustryMonthlyLoop(void)
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 @@ static void Load_INDY(void)
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);
diff --git a/oldloader.c b/oldloader.c
index ba9395f50..cec51e74a 100644
--- a/oldloader.c
+++ b/oldloader.c
@@ -709,7 +709,7 @@ static bool LoadOldIndustry(LoadgameState *ls, int num)
{
Industry *i;
- if (!AddBlockIfNeeded(&_industry_pool, num))
+ if (!AddBlockIfNeeded(&_Industry_pool, num))
error("Industries: failed loading savegame: too many industries");
i = GetIndustry(num);
diff --git a/openttd.c b/openttd.c
index 89b755cae..1e993df60 100644
--- a/openttd.c
+++ b/openttd.c
@@ -255,7 +255,7 @@ static void UnInitializeDynamicVariables(void)
{
/* 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);