This commit is contained in:
silicons
2021-06-13 22:19:06 -07:00
parent 8595e05ad9
commit b04a580e1d
4 changed files with 11 additions and 16 deletions
+6 -6
View File
@@ -21,14 +21,15 @@
collected += typecache_filter_list(source.contents, GLOB.typecache_living)
var/list/powers = list()
powers[source] = dist
var/list/processed_last = list()
var/list/processed = list()
var/turf/T
var/turf/expanding
var/power
var/dir
var/returned
#define RUN_YELL(_T, _P, _D) \
returned = max(_P - max(_T.get_yelling_resistance(_P), 0) - 1, 0); // \
returned = max(_P - max(_T.get_yelling_resistance(_P), 0) - 1, 0); \
processed[_T] = returned; // \
// _T.maptext = "[returned]";
var/list/turf/edges_next
@@ -44,15 +45,15 @@
#define CARDINAL_MARK(ndir, cdir, edir) \
if(edir & cdir) { \
expanding = get_step(T,ndir); \
if(expanding && (isnull(processed_last[expanding]) || (processed_last[expanding] < (power - 5))) && (isnull(edges[expanding]) || (edges[expanding] < (power - 5)))) { \
if(expanding && (isnull(processed[expanding]) || (processed[expanding] < (power - 3)))) { \
powers_next[expanding] = max(powers_next[expanding], returned); \
edges_next[expanding] = cdir; \
edges_next[expanding] = (cdir | edges_next[expanding]); \
}; \
};
#define DIAGONAL_SUBSTEP(ndir, cdir, edir) \
expanding = get_step(T,ndir); \
if(expanding && (isnull(processed_last[expanding])) && (isnull(edges[expanding]))) { \
if(expanding && (isnull(processed[expanding]) || (processed[expanding] < (power - 3)))) { \
if(!edges_next[expanding]) { \
diagonal_powers_max[expanding] = max(diagonal_powers_max[expanding], returned, powers[T]); \
diagonal_powers[expanding] = CALCULATE_DIAGONAL_POWER(diagonal_powers[expanding], returned, diagonal_powers_max[expanding]); \
@@ -128,7 +129,6 @@
// to_chat(world, "DEBUG: cycle end edges_next [english_list_assoc(edges_next)]")
// flush lists
processed_last = edges + diagonals
edges = edges_next
powers = powers_next
+2 -2
View File
@@ -9,9 +9,9 @@
wave_explosion_block = 10
wave_explosion_multiply = 0.75
/// How much we block yelling
var/yelling_resistance = 5
var/yelling_resistance = 10
/// how much of inbound yelling to dampen
var/yelling_dampen = 0.75
var/yelling_dampen = 0.5
/turf/closed/Initialize()
. = ..()
+2 -7
View File
@@ -620,13 +620,8 @@ GLOBAL_LIST_EMPTY(station_turfs)
if(!window)
window = locate(/obj/machinery/door/window) in src
if(window)
. += 5 // windows are minimally resistant
. += 4 // windows are minimally resistant
// if there's more than one someone fucked up as that shouldn't happen
var/obj/machinery/door/D = locate() in src
if(D?.density)
. += D.opacity? 30 : 20 // glass doors are slightly more resistant to screaming
for(var/obj/machinery/door/D in src)
if(!D.density)
continue
break
. += D.opacity? 30 :
. += D.opacity? 29 : 19 // glass doors are slightly more resistant to screaming