anchor.diff:  		else
   			exclude = list()
   
  -	//make it assoicated
  -	for (var/T in exclude)
  -		exclude[T] = 1
   
   	if(maxnodes)
   		//if start turf is farther than maxnodes from end turf, no need to do anything
  
positive.code: 	var/cost					//g A* movement cost variable
  	var/heuristic				//h A* heuristic variable = h
  	var/depth					//ht count the number of Nodes traversed
  	var/PathNode/next			//next node in the linked list stack.
  
  /datum/PathNode/New(s, id, p, pg, ph, pnt)
  	source = s
  
negative.code: 			return AStar_goof(arglist(args))
  		else
  			throw EXCEPTION("invalid chain state")
  
  //the actual algorithm
  /proc/AStar_new(caller, end, dist, maxnodes, maxnodedepth = 30, mintargetdist, adjacent = /turf/proc/reachableAdjacentTurfs, id=null, list/exclude=null, simulated_only = 1)
  	var/static/next_astar_id = 1
  	var/astar_id = next_astar_id++
  
  