(svn r6980) Use the pool macros for the Order pool
authortron
Sat, 28 Oct 2006 11:37:26 +0000
changeset 4977 c5dd04c706bc
parent 4976 2e3d5e8ec510
child 4978 a5d2e71f2e2c
(svn r6980) Use the pool macros for the Order pool
oldloader.c
openttd.c
order.h
order_cmd.c
saveload.c
--- a/oldloader.c	Sat Oct 28 11:32:45 2006 +0000
+++ b/oldloader.c	Sat Oct 28 11:37:26 2006 +0000
@@ -497,7 +497,7 @@
 
 static bool LoadOldOrder(LoadgameState *ls, int num)
 {
-	if (!AddBlockIfNeeded(&_order_pool, num))
+	if (!AddBlockIfNeeded(&_Order_pool, num))
 		error("Orders: failed loading savegame: too many orders");
 
 	if (!LoadChunk(ls, NULL, order_chunk)) return false;
--- a/openttd.c	Sat Oct 28 11:32:45 2006 +0000
+++ b/openttd.c	Sat Oct 28 11:37:26 2006 +0000
@@ -259,7 +259,7 @@
 	CleanPool(&_station_pool);
 	CleanPool(&_Vehicle_pool);
 	CleanPool(&_sign_pool);
-	CleanPool(&_order_pool);
+	CleanPool(&_Order_pool);
 
 	free((void*)_town_sort);
 	free((void*)_industry_sort);
--- a/order.h	Sat Oct 28 11:32:45 2006 +0000
+++ b/order.h	Sat Oct 28 11:37:26 2006 +0000
@@ -107,23 +107,7 @@
 VARDEF TileIndex _backup_orders_tile;
 VARDEF BackuppedOrders _backup_orders_data[1];
 
-extern MemoryPool _order_pool;
-
-/**
- * Get the pointer to the order with index 'index'
- */
-static inline Order *GetOrder(OrderID index)
-{
-	return (Order*)GetItemFromPool(&_order_pool, index);
-}
-
-/**
- * Get the current size of the OrderPool
- */
-static inline uint16 GetOrderPoolSize(void)
-{
-	return _order_pool.total_items;
-}
+DECLARE_POOL(Order, Order, 6, 1000)
 
 static inline VehicleOrderID GetOrderArraySize(void)
 {
@@ -149,7 +133,7 @@
 	o->next = NULL;
 }
 
-#define FOR_ALL_ORDERS_FROM(order, start) for (order = GetOrder(start); order != NULL; order = (order->index + 1 < GetOrderPoolSize()) ? GetOrder(order->index + 1) : NULL) if (IsValidOrder(order))
+#define FOR_ALL_ORDERS_FROM(order, start) for (order = GetOrder(start); order != NULL; order = (order->index + 1U < GetOrderPoolSize()) ? GetOrder(order->index + 1U) : NULL) if (IsValidOrder(order))
 #define FOR_ALL_ORDERS(order) FOR_ALL_ORDERS_FROM(order, 0)
 
 
@@ -160,7 +144,7 @@
 	const Order *order;
 
 	/* There is always room if not all blocks in the pool are reserved */
-	if (_order_pool.current_blocks < _order_pool.max_blocks)
+	if (_Order_pool.current_blocks < _Order_pool.max_blocks)
 		return true;
 
 	FOR_ALL_ORDERS(order)
--- a/order_cmd.c	Sat Oct 28 11:32:45 2006 +0000
+++ b/order_cmd.c	Sat Oct 28 11:37:26 2006 +0000
@@ -31,11 +31,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 (order = GetOrder(start_item); order != NULL; order = (order->index + 1 < GetOrderPoolSize()) ? GetOrder(order->index + 1) : NULL) order->index = start_item++;
+	for (order = GetOrder(start_item); order != NULL; order = (order->index + 1U < GetOrderPoolSize()) ? GetOrder(order->index + 1U) : NULL) order->index = start_item++;
 }
 
-/* Initialize the order-pool */
-MemoryPool _order_pool = { "Orders", ORDER_POOL_MAX_BLOCKS, ORDER_POOL_BLOCK_SIZE_BITS, sizeof(Order), &OrderPoolNewBlock, NULL, 0, 0, NULL };
+DEFINE_POOL(Order, Order, OrderPoolNewBlock, NULL)
 
 /**
  *
@@ -122,7 +121,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 (order = GetOrder(0); order != NULL; order = (order->index + 1 < GetOrderPoolSize()) ? GetOrder(order->index + 1) : NULL) {
+	for (order = GetOrder(0); order != NULL; order = (order->index + 1U < GetOrderPoolSize()) ? GetOrder(order->index + 1U) : NULL) {
 		if (!IsValidOrder(order)) {
 			OrderID index = order->index;
 
@@ -137,7 +136,7 @@
 	}
 
 	/* Check if we can add a block to the pool */
-	if (AddBlockToPool(&_order_pool)) return AllocateOrder();
+	if (AddBlockToPool(&_Order_pool)) return AllocateOrder();
 
 	return NULL;
 }
@@ -1178,8 +1177,8 @@
 
 void InitializeOrders(void)
 {
-	CleanPool(&_order_pool);
-	AddBlockToPool(&_order_pool);
+	CleanPool(&_Order_pool);
+	AddBlockToPool(&_Order_pool);
 
 	_backup_orders_tile = 0;
 }
@@ -1227,7 +1226,7 @@
 			SlArray(orders, len, SLE_UINT16);
 
 			for (i = 0; i < len; ++i) {
-				if (!AddBlockIfNeeded(&_order_pool, i))
+				if (!AddBlockIfNeeded(&_Order_pool, i))
 					error("Orders: failed loading savegame: too many orders");
 
 				AssignOrder(GetOrder(i), UnpackVersion4Order(orders[i]));
@@ -1241,7 +1240,7 @@
 			SlArray(orders, len, SLE_UINT32);
 
 			for (i = 0; i < len; ++i) {
-				if (!AddBlockIfNeeded(&_order_pool, i))
+				if (!AddBlockIfNeeded(&_Order_pool, i))
 					error("Orders: failed loading savegame: too many orders");
 
 				AssignOrder(GetOrder(i), UnpackOrder(orders[i]));
@@ -1262,7 +1261,7 @@
 		while ((index = SlIterateArray()) != -1) {
 			Order *order;
 
-			if (!AddBlockIfNeeded(&_order_pool, index))
+			if (!AddBlockIfNeeded(&_Order_pool, index))
 				error("Orders: failed loading savegame: too many orders");
 
 			order = GetOrder(index);
--- a/saveload.c	Sat Oct 28 11:32:45 2006 +0000
+++ b/saveload.c	Sat Oct 28 11:37:26 2006 +0000
@@ -1248,7 +1248,7 @@
 
 	switch (rt) {
 		case REF_ORDER: {
-			if (!AddBlockIfNeeded(&_order_pool, index))
+			if (!AddBlockIfNeeded(&_Order_pool, index))
 				error("Orders: failed loading savegame: too many orders");
 			return GetOrder(index);
 		}