it works
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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()
|
||||
. = ..()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user