Merge pull request #5971 from Lancer411/dev

Fix for infinite loop in smokeFlow() proc.
This commit is contained in:
Chinsky
2014-08-14 06:31:06 +04:00

View File

@@ -224,24 +224,25 @@
pending += location pending += location
while(pending.len) while(pending.len)
for(var/turf/simulated/current in pending) for(var/turf/current in pending)
for(var/D in cardinal) for(var/D in cardinal)
var/turf/simulated/target = get_step(current, D) var/turf/target = get_step(current, D)
if(wallList) if(wallList)
if(istype(target, /turf/simulated/wall)) if(istype(target, /turf/simulated/wall))
if(!(target in wallList)) if(!(target in wallList))
wallList += target wallList += target
continue continue
if(!target.zone)
continue
if(target in pending) if(target in pending)
continue continue
if(target in complete) if(target in complete)
continue continue
if(!(target in targetTurfs)) if(!(target in targetTurfs))
continue continue
if(current.c_airblock(target)) //this is needed to stop chemsmoke from passing through thin window walls
continue
if(target.c_airblock(current))
continue
pending += target pending += target
pending -= current pending -= current