Some more minor improvements.

This commit is contained in:
SkyMarshal
2012-08-11 01:05:14 -07:00
parent bca7ff054e
commit bccaea11c9
+21 -20
View File
@@ -18,7 +18,7 @@ proc/FloodFill(turf/start)
for(var/d in cardinal)
var/turf/O = get_step(T,d)
//Simple pass check.
if(istype(O) && !(O in open || O in closed) && O.ZCanPass(T))
if(istype(O) && !(O in open || O in closed || O in doors) && O.ZCanPass(T))
open += O
else
doors |= T
@@ -28,28 +28,29 @@ proc/FloodFill(turf/start)
open -= T
closed += T
for(var/turf/T in doors)
var/force_connection = 1
var/turf/simulated/O = get_step(T,NORTH)
if(O in closed)
closed += T
continue
else if(T.ZCanPass(O) && istype(O))
force_connection = 0
O = get_step(T,WEST)
if(O in closed)
closed += T
continue
else if(force_connection && T.ZCanPass(O) && istype(O))
force_connection = 0
if(force_connection)
O = get_step(T,SOUTH)
if(closed.len)
for(var/turf/T in doors)
var/force_connection = 1
var/turf/simulated/O = get_step(T,NORTH)
if(O in closed)
closed += T
else if((!T.ZCanPass(O) || !istype(O)) && get_step(T,EAST) in closed)
continue
else if(T.ZCanPass(O) && istype(O))
force_connection = 0
O = get_step(T,WEST)
if(O in closed)
closed += T
continue
else if(force_connection && T.ZCanPass(O) && istype(O))
force_connection = 0
if(force_connection)
O = get_step(T,SOUTH)
if(O in closed)
closed += T
else if((!T.ZCanPass(O) || !istype(O)) && get_step(T,EAST) in closed)
closed += T
return closed