diff --git a/code/ZAS/Turf.dm b/code/ZAS/Turf.dm index 162939baa9..35dc8f684e 100644 --- a/code/ZAS/Turf.dm +++ b/code/ZAS/Turf.dm @@ -26,6 +26,10 @@ #endif var/turf/unsim = get_step(src, d) + + if(!unsim) + continue + block = unsim.c_airblock(src) if(block & AIR_BLOCKED) @@ -75,6 +79,10 @@ #endif var/turf/unsim = get_step(src, d) + + if(!unsim) //edge of map + continue + var/block = unsim.c_airblock(src) if(block & AIR_BLOCKED) @@ -108,6 +116,8 @@ if(istype(unsim, /turf/simulated)) var/turf/simulated/sim = unsim + sim.open_directions |= reverse_dir[d] + if(air_master.has_valid_zone(sim)) //Might have assigned a zone, since this happens for each direction. diff --git a/code/global.dm b/code/global.dm index 1eb82f08cd..c59de977da 100644 --- a/code/global.dm +++ b/code/global.dm @@ -141,6 +141,8 @@ var/list/ninjastart = list() // list/traitors = list() //traitor list var/list/cardinal = list( NORTH, SOUTH, EAST, WEST ) var/list/alldirs = list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) +// reverse_dir[dir] = reverse of dir +var/list/reverse_dir = list(2, 1, 3, 8, 10, 9, 11, 4, 6, 5, 7, 12, 14, 13, 15, 32, 34, 33, 35, 40, 42, 41, 43, 36, 38, 37, 39, 44, 46, 45, 47, 16, 18, 17, 19, 24, 26, 25, 27, 20, 22, 21, 23, 28, 30, 29, 31, 48, 50, 49, 51, 56, 58, 57, 59, 52, 54, 53, 55, 60, 62, 61, 63) var/datum/station_state/start_state = null var/datum/configuration/config = null