diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index b9f3151672..dcf1b26176 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -566,9 +566,10 @@ if(!does_not_breathe && client) // If we breathe, and have an active client, check if we have synthetic lungs. var/obj/item/organ/internal/lungs/L = internal_organs_by_name[O_LUNGS] - if(L.robotic < ORGAN_ROBOT && (istype(get_turf(src), /turf/space))) // Only non-synthetic lungs, please, and only play these while we're in space. + var/turf = get_turf(src) + var/mob/living/carbon/human/M = src + if(L.robotic < ORGAN_ROBOT && is_below_sound_pressure(turf) && M.internal) // Only non-synthetic lungs, please, and only play these while the pressure is below that which we can hear sounds normally AND we're on internals. if(!failed_inhale && (world.time >= (last_breath_sound + 7 SECONDS))) // Were we able to inhale successfully? Play inhale. - var/mob/living/carbon/human/M = src var/exhale = failed_exhale // Pass through if we passed exhale or not play_inhale(M, exhale) last_breath_sound = world.time @@ -646,7 +647,7 @@ else // Failsafe suit_inhale_sound = 'sound/effects/mob_effects/suit_breathe_in.ogg' - M << sound(suit_inhale_sound,0,0,0,100) + playsound_local(get_turf(src), suit_inhale_sound, 100, pressure_affected = FALSE, volume_channel = VOLUME_CHANNEL_AMBIENCE) if(!exhale) // Did we fail exhale? If no, play it after inhale finishes. addtimer(CALLBACK(src, .proc/play_exhale, M), 5 SECONDS) @@ -657,7 +658,7 @@ else // Failsafe suit_exhale_sound = 'sound/effects/mob_effects/suit_breathe_out.ogg' - M << sound(suit_exhale_sound,0,0,0,100) + playsound_local(get_turf(src), suit_exhale_sound, 100, pressure_affected = FALSE, volume_channel = VOLUME_CHANNEL_AMBIENCE) /mob/living/carbon/human/handle_environment(datum/gas_mixture/environment) if(!environment)