diff --git a/code/game/objects/effects/chemsmoke.dm b/code/game/objects/effects/chemsmoke.dm index 4c245b78cc..fb9b049a3e 100644 --- a/code/game/objects/effects/chemsmoke.dm +++ b/code/game/objects/effects/chemsmoke.dm @@ -224,24 +224,25 @@ pending += location while(pending.len) - for(var/turf/simulated/current in pending) + for(var/turf/current in pending) for(var/D in cardinal) - var/turf/simulated/target = get_step(current, D) - + var/turf/target = get_step(current, D) if(wallList) if(istype(target, /turf/simulated/wall)) if(!(target in wallList)) wallList += target continue - if(!target.zone) - continue + if(target in pending) continue if(target in complete) continue if(!(target in targetTurfs)) 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 -= current @@ -249,4 +250,4 @@ targetTurfs = complete - return \ No newline at end of file + return