(svn r2363) - Codechange: [NPF] Removed caching the endnode check. The code for this was buggy, fundamentally flawed and barely useful. (Hackykid)
authormatthijs
Mon, 23 May 2005 19:00:16 +0000
changeset 1857 7321b4c1d4e1
parent 1856 8fd9852cb251
child 1858 70c82f2343bd
(svn r2363) - Codechange: [NPF] Removed caching the endnode check. The code for this was buggy, fundamentally flawed and barely useful. (Hackykid)
npf.c
npf.h
order_gui.c
--- a/npf.c	Mon May 23 16:41:51 2005 +0000
+++ b/npf.c	Mon May 23 19:00:16 2005 +0000
@@ -443,22 +443,14 @@
 	AyStarNode *node = &current->path.node;
 	TileIndex tile = node->tile;
 
-	/* See if we checked this before */
-	if (NPFGetFlag(node, NPF_FLAG_TARGET_CHECKED))
-		return NPFGetFlag(node, NPF_FLAG_IS_TARGET);
-	/* We're gonna check this now and store the result, let's mark that */
-	NPFSetFlag(node, NPF_FLAG_TARGET_CHECKED, true);
-
 	/* If GetNeighbours said we could get here, we assume the station type
 	 * is correct */
 	if (
 		(fstd->station_index == -1 && tile == fstd->dest_coords) || /* We've found the tile, or */
 		(IsTileType(tile, MP_STATION) && _map2[tile] == fstd->station_index) /* the station */
 	) {
-		NPFSetFlag(node, NPF_FLAG_TARGET_CHECKED, true);
 		return AYSTAR_FOUND_END_NODE;
 	} else {
-		NPFSetFlag(node, NPF_FLAG_TARGET_CHECKED, false);
 		return AYSTAR_DONE;
 	}
 }
--- a/npf.h	Mon May 23 16:41:51 2005 +0000
+++ b/npf.h	Mon May 23 19:00:16 2005 +0000
@@ -43,13 +43,6 @@
 	NPF_FLAG_SEEN_SIGNAL, /* Used to mark that a signal was seen on the way, for rail only */
 	NPF_FLAG_REVERSE, /* Used to mark that this node was reached from the second start node, if applicable */
 	NPF_FLAG_LAST_SIGNAL_RED, /* Used to mark that the last signal on this path was red */
-	NPF_FLAG_TARGET_CHECKED, /* Used by end node checking function of npf to mark
-														 that they have evaluated this node. When this
-														 flag is on, NPF_FLAG_IS_TARGET is on when the
-														 node is a target, and off when it is not. Should
-														 never be used directly, only by the end node
-														 checking functions for caching of results. */
-	NPF_FLAG_IS_TARGET, /* See comment for NPF_FLAG_TARGET_CHECKED */
 } NPFNodeFlag;
 
 typedef struct NPFFoundTargetData { /* Meant to be stored in AyStar.userpath */
--- a/order_gui.c	Mon May 23 16:41:51 2005 +0000
+++ b/order_gui.c	Mon May 23 19:00:16 2005 +0000
@@ -52,7 +52,7 @@
 
 	shared_orders = IsOrderListShared(v);
 
-	if ((uint)v->num_orders + shared_orders <= (uint)WP(w,order_d).sel)
+	if ((uint)v->num_orders + (shared_orders?1:0) <= (uint)WP(w,order_d).sel)
 		SETBIT(w->disabled_state, 5); /* delete */
 
 	if (v->num_orders == 0)