diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index cf18a99875d..3e367767733 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -85,7 +85,7 @@ return if(!allowed(user)) to_chat(user,"Error: Access Denied - Message: Only the engineering department can be trusted with this kind of power.") - playsound_local(src,'sound/misc/compiler-failure.ogg', 25, 1) + user.playsound_local(src,'sound/misc/compiler-failure.ogg', 25, 1) return if(!Adjacent(user) && !isAI(user)) return diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 60b992ac460..cffb1571790 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -183,8 +183,9 @@ if(!T) return - if(triggerer_only) - A.playsound_local(T, sound, volume, freq_vary) + if(triggerer_only && ismob(A)) + var/mob/B = A + B.playsound_local(T, sound, volume, freq_vary) else playsound(T, sound, volume, freq_vary, extra_range) diff --git a/code/game/sound.dm b/code/game/sound.dm index 2e716194132..847dc0d4bfd 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -23,10 +23,10 @@ if(T && T.z == turf_source.z) M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, surround, channel, pressure_affected) -/atom/proc/playsound_direct(soundin, vol as num, vary, frequency, falloff, surround = TRUE, channel = 0, pressure_affected = FALSE) - playsound_local(get_turf(src), soundin, vol, vary, frequency, falloff, surround, channel) +/mob/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, surround = 1, channel = 0, pressure_affected = TRUE) + if(!client || !can_hear()) + return -/atom/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, surround = 1, channel = 0, pressure_affected = TRUE) soundin = get_sfx(soundin) var/sound/S = sound(soundin) @@ -76,15 +76,10 @@ // The y value is for above your head, but there is no ceiling in 2d spessmens. S.y = 1 - S.falloff = (falloff ? falloff : FALLOFF_SOUNDS) + S.falloff = falloff || FALLOFF_SOUNDS src << S -/mob/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, surround = 1, channel = 0, pressure_affected = TRUE) - if(!client || !can_hear()) - return - ..() - /proc/open_sound_channel() var/static/next_channel = 1 //loop through the available 1024 - (the ones we reserve) channels and pray that its not still being used . = ++next_channel diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 4c1328a38b0..9710098c5fa 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -356,9 +356,9 @@ Gunshots/explosions/opening doors/less rare audio (done) for(var/i=0,i