diff --git a/code/controllers/lighting_controller.dm b/code/controllers/lighting_controller.dm
index edf40061274..7814d21753d 100644
--- a/code/controllers/lighting_controller.dm
+++ b/code/controllers/lighting_controller.dm
@@ -117,7 +117,7 @@ datum/controller/lighting/proc/Recover()
var/msg = "## DEBUG: [time2text(world.timeofday)] lighting_controller restarted. Reports:\n"
for(var/varname in lighting_controller.vars)
switch(varname)
- if("tag","bestF","type","parent_type","vars") continue
+ if("tag","type","parent_type","vars") continue
else
var/varval1 = lighting_controller.vars[varname]
var/varval2 = vars[varname]
diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm
index ac33a534bb7..62015fed642 100644
--- a/code/controllers/master_controller.dm
+++ b/code/controllers/master_controller.dm
@@ -385,7 +385,7 @@ datum/controller/game_controller/proc/Recover() //Mostly a placeholder for now.
var/msg = "## DEBUG: [time2text(world.timeofday)] MC restarted. Reports:\n"
for(var/varname in master_controller.vars)
switch(varname)
- if("tag","bestF","type","parent_type","vars") continue
+ if("tag","type","parent_type","vars") continue
else
var/varval = master_controller.vars[varname]
if(istype(varval,/datum))
diff --git a/code/defines/procs/AStar.dm b/code/defines/procs/AStar.dm
index 0af47ba12c6..2e17811d949 100644
--- a/code/defines/procs/AStar.dm
+++ b/code/defines/procs/AStar.dm
@@ -93,12 +93,13 @@ PriorityQueue
if(ind)
Remove(ind)
PathNode
- var/datum/source
+ var/turf/source
var/PathNode/prevNode
var/f
var/g
var/h
var/nt // Nodes traversed
+ var/bestF
New(s,p,pg,ph,pnt)
source = s
prevNode = p
@@ -108,7 +109,7 @@ PathNode
source.bestF = f
nt = pnt
-datum
+turf
var/bestF
proc
PathWeightCompare(PathNode/a, PathNode/b)
@@ -121,7 +122,8 @@ proc
var/closed[] = new()
var/path[]
start = get_turf(start)
- if(!start) return 0
+ if(!start)
+ return 0
open.Enqueue(new /PathNode(start,null,0,call(start,dist)(end)))
@@ -150,7 +152,7 @@ proc
if(cur.nt >= maxnodedepth)
continue
- for(var/datum/d in L)
+ for(var/turf/d in L)
if(d == exclude)
continue
var/ng = cur.g + call(cur.source,dist)(d)
@@ -165,10 +167,7 @@ proc
continue
open.Enqueue(new /PathNode(d,cur,ng,call(d,dist)(end),cur.nt+1))
- if(maxnodes && open.L.len > maxnodes)
- open.L.Cut(open.L.len)
}
-
var/PathNode/temp
while(!open.IsEmpty())
temp = open.Dequeue()
@@ -178,6 +177,8 @@ proc
temp.bestF = 0
closed.Cut(closed.len)
+ if(path && maxnodes && path.len > maxnodes+1)
+ return 0
if(path)
for(var/i = 1; i <= path.len/2; i++)
path.Swap(i,path.len-i+1)
diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm
index 16a350bd33f..45bd0fa3117 100644
--- a/code/game/machinery/bots/mulebot.dm
+++ b/code/game/machinery/bots/mulebot.dm
@@ -202,7 +202,7 @@ var/global/mulebot_count = 0
if(5,6)
dat += "Calculating navigation path"
if(7)
- dat += "Unable to locate destination"
+ dat += "Unable to reach destination"
dat += "
Current Load: [load ? load.name : "none"]
"