changeset 4973:41cbe5852a02 draft

(svn r6976) Use the pool macros for the Depot pool
author tron <tron@openttd.org>
date Sat, 28 Oct 2006 11:02:37 +0000
parents 09362b003ca3
children c95f3fb53dcd
files depot.c depot.h oldloader.c
diffstat 3 files changed, 10 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- a/depot.c
+++ b/depot.c
@@ -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);
--- a/depot.h
+++ b/depot.h
@@ -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
--- a/oldloader.c
+++ b/oldloader.c
@@ -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;