From 2587b99a6921cb53d61a409113205b8d699aa1b3 Mon Sep 17 00:00:00 2001 From: AnturK Date: Mon, 4 Dec 2017 12:28:11 +0100 Subject: [PATCH 1/2] Adds quiet argument to playsound. (#33185) * Adds quiet argument to playsound. * argument name change --- code/game/sound.dm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/game/sound.dm b/code/game/sound.dm index b150c1c148..231a346f2e 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -1,4 +1,4 @@ -/proc/playsound(atom/source, soundin, vol as num, vary, extrarange as num, falloff, frequency = null, channel = 0, pressure_affected = TRUE) +/proc/playsound(atom/source, soundin, vol as num, vary, extrarange as num, falloff, frequency = null, channel = 0, pressure_affected = TRUE, ignore_walls = TRUE) if(isarea(source)) throw EXCEPTION("playsound(): source is an area") return @@ -11,7 +11,10 @@ // Looping through the player list has the added bonus of working for mobs inside containers var/sound/S = sound(get_sfx(soundin)) var/maxdistance = (world.view + extrarange) * 3 - for(var/P in GLOB.player_list) + var/list/listeners = GLOB.player_list + if(!ignore_walls) //these sounds don't carry through walls + listeners = listeners & hearers(maxdistance,turf_source) + for(var/P in listeners) var/mob/M = P if(!M || !M.client) continue