diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 42095aba41..5fbe66808f 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -9,6 +9,9 @@ #define TEXT_EAST "[EAST]" #define TEXT_WEST "[WEST]" +/// Inverse direction, taking into account UP|DOWN if necessary. +#define REVERSE_DIR(dir) ( ((dir & 85) << 1) | ((dir & 170) >> 1) ) + //These get to go at the top, because they're special //You can use these defines to get the typepath of the currently running proc/verb (yes procs + verbs are objects) /* eg: diff --git a/code/modules/atmospherics/environmental/LINDA_system.dm b/code/modules/atmospherics/environmental/LINDA_system.dm index 21dc6069a6..4f057ca9be 100644 --- a/code/modules/atmospherics/environmental/LINDA_system.dm +++ b/code/modules/atmospherics/environmental/LINDA_system.dm @@ -18,7 +18,7 @@ /turf/open/CanAtmosPass(turf/T, vertical = FALSE) var/dir = vertical? get_dir_multiz(src, T) : get_dir(src, T) - var/opp = dir_inverse_multiz(dir) + var/opp = REVERSE_DIR(dir) var/R = FALSE if(vertical && !(zAirOut(dir, T) && T.zAirIn(dir, src))) R = TRUE @@ -48,7 +48,7 @@ var/canvpass = CANVERTICALATMOSPASS(src, src) for(var/direction in GLOB.cardinals_multiz) var/turf/T = get_step_multiz(src, direction) - var/opp_dir = dir_inverse_multiz(direction) + var/opp_dir = REVERSE_DIR(direction) if(!isopenturf(T)) continue if(!(blocks_air || T.blocks_air) && ((direction & (UP|DOWN))? (canvpass && CANVERTICALATMOSPASS(T, src)) : (canpass && CANATMOSPASS(T, src))) ) diff --git a/code/modules/mapping/space_management/multiz_helpers.dm b/code/modules/mapping/space_management/multiz_helpers.dm index 970c25ee9b..81c78cec8c 100644 --- a/code/modules/mapping/space_management/multiz_helpers.dm +++ b/code/modules/mapping/space_management/multiz_helpers.dm @@ -46,17 +46,4 @@ /turf/proc/below() return get_step_multiz(src, DOWN) - -/proc/dir_inverse_multiz(dir) - var/holder = dir & (UP|DOWN) - if((holder == NONE) || (holder == (UP|DOWN))) - return turn(dir, 180) - dir &= ~(UP|DOWN) - if(dir != 0) - dir = turn(dir, 180) - if(holder == UP) - holder = DOWN - else - holder = UP - dir |= holder - return dir + \ No newline at end of file