diff options
author | tron <tron@openttd.org> | 2006-10-28 11:32:45 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-10-28 11:32:45 +0000 |
commit | 4cb479e083d8edd3005b8db00f350b9fdb3bf2a6 (patch) | |
tree | b6044568d43abbfa7a491932085dbece97587c6f | |
parent | a97f75e43904ad15a3275cc1a480feb3352d6ec6 (diff) | |
download | openttd-4cb479e083d8edd3005b8db00f350b9fdb3bf2a6.tar.xz |
(svn r6979) Use the pool macros for the Industry pool
-rw-r--r-- | industry.h | 20 | ||||
-rw-r--r-- | industry_cmd.c | 21 | ||||
-rw-r--r-- | oldloader.c | 2 | ||||
-rw-r--r-- | openttd.c | 2 |
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); @@ -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); |