diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 08a9ad0748..a754856991 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -241,9 +241,18 @@ 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() + + var/list/yellareas //CIT CHANGE - adds the ability for yelling to penetrate walls and echo throughout areas + if(say_test(message) == "2") //CIT CHANGE - ditto + yellareas = get_areas_in_range(message_range*0.5,src) //CIT CHANGE - ditto + for(var/_M in GLOB.player_list) var/mob/M = _M if(M.stat != DEAD) //not dead, not important + if(yellareas) //CIT CHANGE - see above. makes yelling penetrate walls + var/area/A = get_area(M) //CIT CHANGE - ditto + if(istype(A) && A.ambientsounds != SPACE && A in yellareas) //CIT CHANGE - ditto + listening |= M //CIT CHANGE - ditto continue if(!M.client || !client) //client is so that ghosts don't have to listen to mice continue diff --git a/modular_citadel/code/modules/mob/mob.dm b/modular_citadel/code/modules/mob/mob.dm index bb48e5103f..d741384140 100644 --- a/modular_citadel/code/modules/mob/mob.dm +++ b/modular_citadel/code/modules/mob/mob.dm @@ -1,2 +1,22 @@ /mob/proc/use_that_empty_hand() //currently unused proc so i can implement 2-handing any item a lot easier in the future. return + +/mob/say_mod(input, message_mode) + var/customsayverb = findtext(input, "*") + if(customsayverb) + return lowertext(copytext(input, 1, customsayverb)) + . = ..() + +/atom/movable/proc/attach_spans(input, list/spans) + var/customsayverb = findtext(input, "*") + if(customsayverb) + input = capitalize(copytext(input, customsayverb+1)) + return "[message_spans_start(spans)][input]" + +/mob/living/compose_message(atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, face_name = FALSE) + . = ..() + if(istype(speaker, /mob/living)) + var/turf/speakturf = get_turf(speaker) + var/turf/sourceturf = get_turf(src) + if(istype(speakturf) && istype(sourceturf) && !(speakturf in get_hear(5, sourceturf))) + . = "[.]" //Don't ask how the fuck this works. It just does.