From 5f50e0863b6a982d2df3f7a1e40286c092a985e1 Mon Sep 17 00:00:00 2001 From: Azarak Date: Fri, 16 Oct 2020 18:29:01 +0200 Subject: [PATCH] Makes yells be carried through areas as an echo (#1324) * weh * Update living_say.dm --- code/modules/mob/living/living_say.dm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm index a71cca7b35a..057667546a9 100644 --- a/code/modules/mob/living/living_say.dm +++ b/code/modules/mob/living/living_say.dm @@ -271,6 +271,11 @@ GLOBAL_LIST_INIT(department_radio_keys, list( eavesdrop_range = EAVESDROP_EXTRA_RANGE var/list/listening = get_hearers_in_view(message_range+eavesdrop_range, source) var/list/the_dead = list() + //SKYRAT EDIT ADDITION BEGIN - YELLING ECHOES + var/list/yellareas + if(say_test(message) == "2") + yellareas = get_areas_in_range(message_range,src) + //SKYRAT EDIT ADDITION END if(HAS_TRAIT(src, TRAIT_SIGN_LANG)) var/mob/living/carbon/mute = src if(istype(mute)) @@ -295,6 +300,12 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(QDELETED(M)) //Some times nulls and deleteds stay in this list. This is a workaround to prevent ic chat breaking for everyone when they do. continue //Remove if underlying cause (likely byond issue) is fixed. See TG PR #49004. if(M.stat != DEAD) //not dead, not important + //SKYRAT EDIT ADDITION BEGIN - YELLING ECHOES + if(yellareas) + var/area/A = get_area(M) + if(istype(A) && A.ambientsounds != SPACE && (A in yellareas)) + listening |= M + //SKYRAT EDIT ADDITION END continue if(get_dist(M, src) > 7 || M.z != z) //they're out of range of normal hearing if(eavesdrop_range)