# HG changeset patch # User tron # Date 1162033357 0 # Node ID c671d5dd04bba360faad8be1ff8f671708c86671 # Parent c7f92c6b74e4a6989f8cfee4c8578e67da85d805 (svn r6976) Use the pool macros for the Depot pool diff -r c7f92c6b74e4 -r c671d5dd04bb depot.c --- a/depot.c Sat Oct 28 10:55:59 2006 +0000 +++ b/depot.c Sat Oct 28 11:02:37 2006 +0000 @@ -10,11 +10,6 @@ #include "saveload.h" #include "order.h" -enum { - /* Max depots: 64000 (8 * 8000) */ - DEPOT_POOL_BLOCK_SIZE_BITS = 3, /* In bits, so (1 << 3) == 8 */ - DEPOT_POOL_MAX_BLOCKS = 8000, -}; /** * Called if a new block is added to the depot-pool @@ -25,11 +20,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 (d = GetDepot(start_item); d != NULL; d = (d->index + 1 < GetDepotPoolSize()) ? GetDepot(d->index + 1) : NULL) d->index = start_item++; + for (d = GetDepot(start_item); d != NULL; d = (d->index + 1U < GetDepotPoolSize()) ? GetDepot(d->index + 1U) : NULL) d->index = start_item++; } -/* Initialize the town-pool */ -MemoryPool _depot_pool = { "Depots", DEPOT_POOL_MAX_BLOCKS, DEPOT_POOL_BLOCK_SIZE_BITS, sizeof(Depot), &DepotPoolNewBlock, NULL, 0, 0, NULL }; +DEFINE_POOL(Depot, Depot, DepotPoolNewBlock, NULL) /** @@ -57,7 +51,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 (d = GetDepot(0); d != NULL; d = (d->index + 1 < GetDepotPoolSize()) ? GetDepot(d->index + 1) : NULL) { + for (d = GetDepot(0); d != NULL; d = (d->index + 1U < GetDepotPoolSize()) ? GetDepot(d->index + 1U) : NULL) { if (!IsValidDepot(d)) { DepotID index = d->index; @@ -69,7 +63,7 @@ } /* Check if we can add a block to the pool */ - if (AddBlockToPool(&_depot_pool)) return AllocateDepot(); + if (AddBlockToPool(&_Depot_pool)) return AllocateDepot(); return NULL; } @@ -91,8 +85,8 @@ void InitializeDepots(void) { - CleanPool(&_depot_pool); - AddBlockToPool(&_depot_pool); + CleanPool(&_Depot_pool); + AddBlockToPool(&_Depot_pool); } @@ -120,7 +114,7 @@ while ((index = SlIterateArray()) != -1) { Depot *depot; - if (!AddBlockIfNeeded(&_depot_pool, index)) + if (!AddBlockIfNeeded(&_Depot_pool, index)) error("Depots: failed loading savegame: too many depots"); depot = GetDepot(index); diff -r c7f92c6b74e4 -r c671d5dd04bb depot.h --- a/depot.h Sat Oct 28 10:55:59 2006 +0000 +++ b/depot.h Sat Oct 28 11:02:37 2006 +0000 @@ -17,23 +17,7 @@ DepotID index; }; -extern MemoryPool _depot_pool; - -/** - * Get the pointer to the depot with index 'index' - */ -static inline Depot *GetDepot(DepotID index) -{ - return (Depot*)GetItemFromPool(&_depot_pool, index); -} - -/** - * Get the current size of the DepotPool - */ -static inline uint16 GetDepotPoolSize(void) -{ - return _depot_pool.total_items; -} +DECLARE_POOL(Depot, Depot, 3, 8000); /** * Check if a depot really exists. @@ -58,7 +42,7 @@ void ShowDepotWindow(TileIndex tile, byte type); -#define FOR_ALL_DEPOTS_FROM(d, start) for (d = GetDepot(start); d != NULL; d = (d->index + 1 < GetDepotPoolSize()) ? GetDepot(d->index + 1) : NULL) if (IsValidDepot(d)) +#define FOR_ALL_DEPOTS_FROM(d, start) for (d = GetDepot(start); d != NULL; d = (d->index + 1U < GetDepotPoolSize()) ? GetDepot(d->index + 1U) : NULL) if (IsValidDepot(d)) #define FOR_ALL_DEPOTS(d) FOR_ALL_DEPOTS_FROM(d, 0) #define MIN_SERVINT_PERCENT 5 diff -r c7f92c6b74e4 -r c671d5dd04bb oldloader.c --- a/oldloader.c Sat Oct 28 10:55:59 2006 +0000 +++ b/oldloader.c Sat Oct 28 11:02:37 2006 +0000 @@ -521,7 +521,7 @@ static bool LoadOldDepot(LoadgameState *ls, int num) { - if (!AddBlockIfNeeded(&_depot_pool, num)) + if (!AddBlockIfNeeded(&_Depot_pool, num)) error("Depots: failed loading savegame: too many depots"); if (!LoadChunk(ls, GetDepot(num), depot_chunk)) return false;