From 69d8ab329befd528d72fedd29d5295d9874d7a05 Mon Sep 17 00:00:00 2001 From: DJSnapshot Date: Sat, 5 Jul 2014 09:08:59 -0700 Subject: [PATCH 1/2] 3D EAX Environmental sound --- code/game/sound.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/game/sound.dm b/code/game/sound.dm index b79504bf1d..a60b6e2862 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -25,13 +25,13 @@ var/list/page_sound = list('sound/effects/pageturn1.ogg', 'sound/effects/pagetur var/mob/M = P if(!M || !M.client) continue - if(get_dist(M, turf_source) <= world.view + extrarange) + if(get_dist(M, turf_source) <= (world.view + extrarange) * 6) var/turf/T = get_turf(M) if(T && T.z == turf_source.z) M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff) var/const/FALLOFF_SOUNDS = 1 -var/const/SURROUND_CAP = 7 +var/const/SURROUND_CAP = 255 /mob/proc/playsound_local(var/turf/turf_source, soundin, vol as num, vary, frequency, falloff) if(!src.client || ear_deaf > 0) return @@ -41,6 +41,7 @@ var/const/SURROUND_CAP = 7 S.wait = 0 //No queue S.channel = 0 //Any channel S.volume = vol + S.environment = 2 if (vary) if(frequency) From 784707b16c22059f5628e509137f33a25c4b2914 Mon Sep 17 00:00:00 2001 From: DJSnapshot Date: Sat, 5 Jul 2014 17:04:28 -0700 Subject: [PATCH 2/2] volume fallout over distance to make it even better. --- code/game/sound.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/game/sound.dm b/code/game/sound.dm index a60b6e2862..d3f47aff82 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -30,7 +30,7 @@ var/list/page_sound = list('sound/effects/pageturn1.ogg', 'sound/effects/pagetur if(T && T.z == turf_source.z) M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff) -var/const/FALLOFF_SOUNDS = 1 +var/const/FALLOFF_SOUNDS = 2 var/const/SURROUND_CAP = 255 /mob/proc/playsound_local(var/turf/turf_source, soundin, vol as num, vary, frequency, falloff) @@ -52,6 +52,9 @@ var/const/SURROUND_CAP = 255 if(isturf(turf_source)) // 3D sounds, the technology is here! var/turf/T = get_turf(src) + S.volume -= get_dist(T, turf_source) * 0.5 + if (S.volume < 0) + S.volume = 0 var/dx = turf_source.x - T.x // Hearing from the right/left S.x = round(max(-SURROUND_CAP, min(SURROUND_CAP, dx)), 1)