From 9841414da6d6eec349acaa0cc8aaf44add875ec5 Mon Sep 17 00:00:00 2001 From: Rykka Date: Sat, 29 Aug 2020 03:04:34 -0400 Subject: [PATCH] Adds Toggles to Revert to Legacy Door Sounds and Enable Department Doors Self-explanatory. Adds toggle to go back to the old-school SS13 legacy airlock sounds, including the glass windoor airlock sounds, and a toggle to disable the per-department door sounds, which some found jarring/unrealistic. If Per-Department sounds are disabled, the department doors will use hall1o/c for open/close respectively, following maintainer-requested behavior for these doors. This also relocates the following sounds to be inside machines/door for more consistency: - airlock.ogg - airlockclose.ogg - airlockforced.ogg - airlock_creaking.ogg - boltsup.ogg - boltsdown.ogg - blastdoorclose.ogg - blastdooropen.ogg - windowdoor.ogg --- .../technomancer/spells/audible_deception.dm | 4 +- code/game/machinery/doors/airlock.dm | 205 +++++++++++++----- code/game/machinery/doors/blast_door.dm | 10 +- code/game/machinery/doors/firedoor.dm | 4 +- code/game/machinery/doors/windowdoor.dm | 4 +- code/game/mecha/equipment/tools/clamp.dm | 6 +- code/game/mecha/mecha.dm | 2 +- code/global.dm | 2 +- .../preference_setup/global/setting_datums.dm | 12 + .../client/preferences_toggle_procs.dm | 30 +++ code/modules/flufftext/Hallucination.dm | 4 +- .../station/station_special_abilities_vr.dm | 4 +- .../machines/{ => door}/airlock_creaking.ogg | Bin sound/machines/{ => door}/airlockcycle.ogg | Bin sound/machines/{ => door}/airlockforced.ogg | Bin sound/machines/{ => door}/blastdoorclose.ogg | Bin sound/machines/{ => door}/blastdooropen.ogg | Bin sound/machines/{ => door}/boltsdown.ogg | Bin sound/machines/{ => door}/boltsup.ogg | Bin .../{airlock.ogg => door/old_airlock.ogg} | Bin .../old_airlockclose.ogg} | Bin sound/machines/{ => door}/windowdoor.ogg | Bin 22 files changed, 216 insertions(+), 71 deletions(-) rename sound/machines/{ => door}/airlock_creaking.ogg (100%) rename sound/machines/{ => door}/airlockcycle.ogg (100%) rename sound/machines/{ => door}/airlockforced.ogg (100%) rename sound/machines/{ => door}/blastdoorclose.ogg (100%) rename sound/machines/{ => door}/blastdooropen.ogg (100%) rename sound/machines/{ => door}/boltsdown.ogg (100%) rename sound/machines/{ => door}/boltsup.ogg (100%) rename sound/machines/{airlock.ogg => door/old_airlock.ogg} (100%) rename sound/machines/{airlockclose.ogg => door/old_airlockclose.ogg} (100%) rename sound/machines/{ => door}/windowdoor.ogg (100%) diff --git a/code/game/gamemodes/technomancer/spells/audible_deception.dm b/code/game/gamemodes/technomancer/spells/audible_deception.dm index 8faff2b4e6..fc67ba1ee3 100644 --- a/code/game/gamemodes/technomancer/spells/audible_deception.dm +++ b/code/game/gamemodes/technomancer/spells/audible_deception.dm @@ -25,8 +25,8 @@ "Glass Shattering" = "shatter", "Grille Damage" = 'sound/effects/grillehit.ogg', "Energy Pulse" = 'sound/effects/EMPulse.ogg', - "Airlock" = 'sound/machines/airlock.ogg', - "Airlock Creak" = 'sound/machines/airlock_creaking.ogg', + "Airlock" = 'sound/machines/door/old_airlock.ogg', + "Airlock Creak" = 'sound/machines/door/airlock_creaking.ogg', "Shotgun Pumping" = 'sound/weapons/shotgunpump.ogg', "Flash" = 'sound/weapons/flash.ogg', diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 03822a6c6d..3da717ef49 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -40,11 +40,15 @@ var/datum/wires/airlock/wires = null var/open_sound_powered = 'sound/machines/door/covert1o.ogg' - var/open_sound_unpowered = 'sound/machines/airlockforced.ogg' + var/open_sound_unpowered = 'sound/machines/door/airlockforced.ogg' var/close_sound_powered = 'sound/machines/door/covert1c.ogg' + var/legacy_open_powered = 'sound/machines/door/old_airlock.ogg' + var/legacy_close_powered = 'sound/machines/door/old_airlockclose.ogg' + var/department_open_powered = null + var/department_close_powered = null var/denied_sound = 'sound/machines/deniedbeep.ogg' - var/bolt_up_sound = 'sound/machines/boltsup.ogg' - var/bolt_down_sound = 'sound/machines/boltsdown.ogg' + var/bolt_up_sound = 'sound/machines/door/boltsup.ogg' + var/bolt_down_sound = 'sound/machines/door/boltsdown.ogg' /obj/machinery/door/airlock/attack_generic(var/mob/living/user, var/damage) if(stat & (BROKEN|NOPOWER)) @@ -81,7 +85,7 @@ if(do_after(user,5 SECONDS,src)) visible_message("\The [user] forces \the [src] open, sparks flying from its electronics!") src.do_animate("spark") - playsound(src, 'sound/machines/airlock_creaking.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS) + playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS) src.locked = 0 src.welded = 0 update_icon() @@ -90,7 +94,7 @@ else if(src.density) visible_message("\The [user] begins forcing \the [src] open!") if(do_after(user, 5 SECONDS,src)) - playsound(src, 'sound/machines/airlock_creaking.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS) + playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS) visible_message("\The [user] forces \the [src] open!") open(1) else @@ -112,40 +116,50 @@ icon = 'icons/obj/doors/Doorcom.dmi' req_one_access = list(access_heads) assembly_type = /obj/structure/door_assembly/door_assembly_com - open_sound_powered = 'sound/machines/door/cmd3o.ogg' - close_sound_powered = 'sound/machines/door/cmd3c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/cmd3o.ogg' + department_close_powered = 'sound/machines/door/cmd3c.ogg' /obj/machinery/door/airlock/security name = "Security Airlock" icon = 'icons/obj/doors/Doorsec.dmi' req_one_access = list(access_security) assembly_type = /obj/structure/door_assembly/door_assembly_sec - open_sound_powered = 'sound/machines/door/sec1o.ogg' - close_sound_powered = 'sound/machines/door/sec1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/sec1o.ogg' + department_close_powered = 'sound/machines/door/sec1c.ogg' /obj/machinery/door/airlock/engineering name = "Engineering Airlock" icon = 'icons/obj/doors/Dooreng.dmi' req_one_access = list(access_engine) assembly_type = /obj/structure/door_assembly/door_assembly_eng - open_sound_powered = 'sound/machines/door/eng1o.ogg' - close_sound_powered = 'sound/machines/door/eng1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' /obj/machinery/door/airlock/engineeringatmos name = "Atmospherics Airlock" icon = 'icons/obj/doors/Doorengatmos.dmi' req_one_access = list(access_atmospherics) assembly_type = /obj/structure/door_assembly/door_assembly_eat - open_sound_powered = 'sound/machines/door/eng1o.ogg' - close_sound_powered = 'sound/machines/door/eng1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' /obj/machinery/door/airlock/medical name = "Medical Airlock" icon = 'icons/obj/doors/Doormed.dmi' req_one_access = list(access_medical) assembly_type = /obj/structure/door_assembly/door_assembly_med - open_sound_powered = 'sound/machines/door/med1o.ogg' - close_sound_powered = 'sound/machines/door/med1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/med1o.ogg' + department_close_powered = 'sound/machines/door/med1c.ogg' /obj/machinery/door/airlock/maintenance name = "Maintenance Access" @@ -158,8 +172,10 @@ /obj/machinery/door/airlock/maintenance/cargo icon = 'icons/obj/doors/Doormaint_cargo.dmi' req_one_access = list(access_cargo) - open_sound_powered = 'sound/machines/door/door2o.ogg' - close_sound_powered = 'sound/machines/door/door2c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/door2o.ogg' + department_close_powered = 'sound/machines/door/door2c.ogg' /obj/machinery/door/airlock/maintenance/command icon = 'icons/obj/doors/Doormaint_command.dmi' @@ -220,6 +236,7 @@ hitsound = 'sound/effects/Glasshit.ogg' open_sound_powered = 'sound/machines/door/hall1o.ogg' close_sound_powered = 'sound/machines/door/hall1c.ogg' + legacy_open_powered = 'sound/machines/door/windowdoor.ogg' maxhealth = 300 explosion_resistance = 5 opacity = 0 @@ -294,8 +311,10 @@ assembly_type = /obj/structure/door_assembly/door_assembly_com glass = 1 req_one_access = list(access_heads) - open_sound_powered = 'sound/machines/door/cmd1o.ogg' - close_sound_powered = 'sound/machines/door/cmd1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/cmd1o.ogg' + department_close_powered = 'sound/machines/door/cmd1c.ogg' /obj/machinery/door/airlock/glass_engineering name = "Engineering Airlock" @@ -307,8 +326,8 @@ assembly_type = /obj/structure/door_assembly/door_assembly_eng glass = 1 req_one_access = list(access_engine) - open_sound_powered = 'sound/machines/door/eng1o.ogg' - close_sound_powered = 'sound/machines/door/eng1c.ogg' + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' /obj/machinery/door/airlock/glass_engineeringatmos name = "Atmospherics Airlock" @@ -320,8 +339,10 @@ assembly_type = /obj/structure/door_assembly/door_assembly_eat glass = 1 req_one_access = list(access_atmospherics) - open_sound_powered = 'sound/machines/door/eng1o.ogg' - close_sound_powered = 'sound/machines/door/eng1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' /obj/machinery/door/airlock/glass_security name = "Security Airlock" @@ -333,8 +354,10 @@ assembly_type = /obj/structure/door_assembly/door_assembly_sec glass = 1 req_one_access = list(access_security) - open_sound_powered = 'sound/machines/door/sec1o.ogg' - close_sound_powered = 'sound/machines/door/sec1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/sec1o.ogg' + department_close_powered = 'sound/machines/door/sec1c.ogg' /obj/machinery/door/airlock/glass_medical name = "Medical Airlock" @@ -346,31 +369,39 @@ assembly_type = /obj/structure/door_assembly/door_assembly_med glass = 1 req_one_access = list(access_medical) - open_sound_powered = 'sound/machines/door/med1o.ogg' - close_sound_powered = 'sound/machines/door/med1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/med1o.ogg' + department_close_powered = 'sound/machines/door/med1c.ogg' /obj/machinery/door/airlock/mining name = "Mining Airlock" icon = 'icons/obj/doors/Doormining.dmi' assembly_type = /obj/structure/door_assembly/door_assembly_min req_one_access = list(access_mining) - open_sound_powered = 'sound/machines/door/cgo1o.ogg' - close_sound_powered = 'sound/machines/door/cgo1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/cgo1o.ogg' + department_close_powered = 'sound/machines/door/cgo1c.ogg' /obj/machinery/door/airlock/atmos name = "Atmospherics Airlock" icon = 'icons/obj/doors/Dooratmo.dmi' assembly_type = /obj/structure/door_assembly/door_assembly_atmo req_one_access = list(access_atmospherics) - open_sound_powered = 'sound/machines/door/eng1o.ogg' - close_sound_powered = 'sound/machines/door/eng1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' /obj/machinery/door/airlock/research name = "Research Airlock" icon = 'icons/obj/doors/Doorresearch.dmi' assembly_type = /obj/structure/door_assembly/door_assembly_research - open_sound_powered = 'sound/machines/door/sci1o.ogg' - close_sound_powered = 'sound/machines/door/sci1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/sci1o.ogg' + department_close_powered = 'sound/machines/door/sci1c.ogg' /obj/machinery/door/airlock/glass_research name = "Research Airlock" @@ -382,8 +413,10 @@ assembly_type = /obj/structure/door_assembly/door_assembly_research glass = 1 req_one_access = list(access_research) - open_sound_powered = 'sound/machines/door/sci1o.ogg' - close_sound_powered = 'sound/machines/door/sci1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/sci1o.ogg' + department_close_powered = 'sound/machines/door/sci1c.ogg' /obj/machinery/door/airlock/glass_mining name = "Mining Airlock" @@ -395,8 +428,10 @@ assembly_type = /obj/structure/door_assembly/door_assembly_min glass = 1 req_one_access = list(access_mining) - open_sound_powered = 'sound/machines/door/cgo1o.ogg' - close_sound_powered = 'sound/machines/door/cgo1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/cgo1o.ogg' + department_close_powered = 'sound/machines/door/cgo1c.ogg' /obj/machinery/door/airlock/glass_atmos name = "Atmospherics Airlock" @@ -408,8 +443,10 @@ assembly_type = /obj/structure/door_assembly/door_assembly_atmo glass = 1 req_one_access = list(access_atmospherics) - open_sound_powered = 'sound/machines/door/eng1o.ogg' - close_sound_powered = 'sound/machines/door/eng1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/eng1o.ogg' + department_close_powered = 'sound/machines/door/eng1c.ogg' /obj/machinery/door/airlock/gold name = "Gold Airlock" @@ -490,8 +527,10 @@ icon = 'icons/obj/doors/Doorsci.dmi' assembly_type = /obj/structure/door_assembly/door_assembly_science req_one_access = list(access_research) - open_sound_powered = 'sound/machines/door/sci1o.ogg' - close_sound_powered = 'sound/machines/door/sci1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/sci1o.ogg' + department_close_powered = 'sound/machines/door/sci1c.ogg' /obj/machinery/door/airlock/glass_science name = "Glass Airlocks" @@ -500,8 +539,10 @@ assembly_type = /obj/structure/door_assembly/door_assembly_science glass = 1 req_one_access = list(access_research) - open_sound_powered = 'sound/machines/door/sci1o.ogg' - close_sound_powered = 'sound/machines/door/sci1c.ogg' + open_sound_powered = 'sound/machines/door/hall1o.ogg' + close_sound_powered = 'sound/machines/door/hall1c.ogg' + department_open_powered = 'sound/machines/door/sci1o.ogg' + department_close_powered = 'sound/machines/door/sci1c.ogg' /obj/machinery/door/airlock/highsecurity name = "Secure Airlock" @@ -1172,10 +1213,41 @@ About the new airlock wires panel: use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people //if the door is unpowered then it doesn't make sense to hear the woosh of a pneumatic actuator - if(arePowerSystemsOn()) - playsound(src, open_sound_powered, 50, 1, volume_channel = VOLUME_CHANNEL_DOORS) - else - playsound(src, open_sound_unpowered, 75, 1, volume_channel = VOLUME_CHANNEL_DOORS) + for(var/P in player_list) + var/mob/M = P + if(!M || !M.client) + continue + var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds) + var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds) + var/sound + var/volume + if(old_sounds) // Do we have old sounds enabled? Play these even if we have department door sounds enabled. + if(arePowerSystemsOn()) + sound = legacy_open_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + else if(!old_sounds && department_door_sounds && src.department_open_powered) // Else, we have old sounds disabled, the door has per-department door sounds, and we have chosen to play department door sounds, use these. + if(arePowerSystemsOn()) + sound = department_open_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + else // Else, play these. + if(arePowerSystemsOn()) + sound = open_sound_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + + var/turf/T = get_turf(M) + var/distance = get_dist(T, get_turf(src)) + if(distance <= world.view * 2) + if(T && T.z == get_z(src)) + M.playsound_local(get_turf(src), sound, volume, 1, null, 0, TRUE, sound(sound), volume_channel = VOLUME_CHANNEL_DOORS) if(src.closeOther != null && istype(src.closeOther, /obj/machinery/door/airlock/) && !src.closeOther.density) src.closeOther.close() @@ -1270,10 +1342,41 @@ About the new airlock wires panel: use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people has_beeped = 0 - if(arePowerSystemsOn()) - playsound(src, close_sound_powered, 50, 1, volume_channel = VOLUME_CHANNEL_DOORS) - else - playsound(src, open_sound_unpowered, 75, 1, volume_channel = VOLUME_CHANNEL_DOORS) + for(var/P in player_list) + var/mob/M = P + if(!M || !M.client) + continue + var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds) + var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds) + var/sound + var/volume + if(old_sounds) + if(arePowerSystemsOn()) + sound = legacy_close_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + else if(!old_sounds && department_door_sounds && src.department_close_powered) // Else, we have old sounds disabled, the door has per-department door sounds, and we have chosen to play department door sounds, use these. + if(arePowerSystemsOn()) + sound = department_close_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + else + if(arePowerSystemsOn()) + sound = close_sound_powered + volume = 50 + else + sound = open_sound_unpowered + volume = 75 + + var/turf/T = get_turf(M) + var/distance = get_dist(T, get_turf(src)) + if(distance <= world.view * 2) + if(T && T.z == get_z(src)) + M.playsound_local(get_turf(src), sound, volume, 1, null, 0, TRUE, sound(sound), volume_channel = VOLUME_CHANNEL_DOORS) for(var/turf/turf in locs) var/obj/structure/window/killthis = (locate(/obj/structure/window) in turf) if(killthis) diff --git a/code/game/machinery/doors/blast_door.dm b/code/game/machinery/doors/blast_door.dm index 06a4527f7e..dcbcce7fbd 100644 --- a/code/game/machinery/doors/blast_door.dm +++ b/code/game/machinery/doors/blast_door.dm @@ -25,8 +25,8 @@ var/icon_state_opening = null var/icon_state_closed = null var/icon_state_closing = null - var/open_sound = 'sound/machines/blastdooropen.ogg' - var/close_sound = 'sound/machines/blastdoorclose.ogg' + var/open_sound = 'sound/machines/door/blastdooropen.ogg' + var/close_sound = 'sound/machines/door/blastdoorclose.ogg' var/damage = BLAST_DOOR_CRUSH_DAMAGE var/multiplier = 1 // The multiplier for how powerful our YEET is. @@ -125,7 +125,7 @@ // Description: Opens or closes the door, depending on current state. No checks are done inside this proc. /obj/machinery/door/blast/proc/force_toggle(var/forced = 0, mob/user as mob) if (forced) - playsound(src, 'sound/machines/airlock_creaking.ogg', 100, 1) + playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1) if(src.density) src.force_open() @@ -219,13 +219,13 @@ if(src.density) visible_message("\The [user] begins forcing \the [src] open!") if(do_after(user, 15 SECONDS,src)) - playsound(src, 'sound/machines/airlock_creaking.ogg', 100, 1) + playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1) visible_message("\The [user] forces \the [src] open!") force_open(1) else visible_message("\The [user] begins forcing \the [src] closed!") if(do_after(user, 5 SECONDS,src)) - playsound(src, 'sound/machines/airlock_creaking.ogg', 100, 1) + playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1) visible_message("\The [user] forces \the [src] closed!") force_close(1) else diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index e31465168f..6cae2617fd 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -200,14 +200,14 @@ if(src.blocked) visible_message("\The [user] begins digging into \the [src] internals!") if(do_after(user,5 SECONDS,src)) - playsound(src, 'sound/machines/airlock_creaking.ogg', 100, 1) + playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1) src.blocked = 0 update_icon() open(1) else if(src.density) visible_message("\The [user] begins forcing \the [src] open!") if(do_after(user, 2 SECONDS,src)) - playsound(src, 'sound/machines/airlock_creaking.ogg', 100, 1) + playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1) visible_message("\The [user] forces \the [src] open!") open(1) else diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 98fb1c75d8..cfd0b3706c 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -115,7 +115,7 @@ if (!operating) //in case of emag operating = 1 flick(text("[src.base_state]opening"), src) - playsound(src, 'sound/machines/windowdoor.ogg', 100, 1) + playsound(src, 'sound/machines/door/windowdoor.ogg', 100, 1) sleep(10) explosion_resistance = 0 @@ -132,7 +132,7 @@ return FALSE operating = TRUE flick(text("[]closing", src.base_state), src) - playsound(src, 'sound/machines/windowdoor.ogg', 100, 1) + playsound(src, 'sound/machines/door/windowdoor.ogg', 100, 1) density = TRUE update_icon() diff --git a/code/game/mecha/equipment/tools/clamp.dm b/code/game/mecha/equipment/tools/clamp.dm index 6091764c2b..0580134f33 100644 --- a/code/game/mecha/equipment/tools/clamp.dm +++ b/code/game/mecha/equipment/tools/clamp.dm @@ -33,7 +33,7 @@ if(FD.blocked) FD.visible_message("\The [chassis] begins prying on \the [FD]!") if(do_after(chassis.occupant,10 SECONDS,FD)) - playsound(FD, 'sound/machines/airlock_creaking.ogg', 100, 1) + playsound(FD, 'sound/machines/door/airlock_creaking.ogg', 100, 1) FD.blocked = 0 FD.update_icon() FD.open(1) @@ -41,7 +41,7 @@ else if(FD.density) FD.visible_message("\The [chassis] begins forcing \the [FD] open!") if(do_after(chassis.occupant, 5 SECONDS,FD)) - playsound(FD, 'sound/machines/airlock_creaking.ogg', 100, 1) + playsound(FD, 'sound/machines/door/airlock_creaking.ogg', 100, 1) FD.visible_message("\The [chassis] forces \the [FD] open!") FD.open(1) else @@ -57,7 +57,7 @@ if(do_after(chassis.occupant, 15 SECONDS,AD) && chassis.Adjacent(AD)) AD.welded = FALSE AD.update_icon() - playsound(AD, 'sound/machines/airlock_creaking.ogg', 100, 1) + playsound(AD, 'sound/machines/door/airlock_creaking.ogg', 100, 1) AD.visible_message("\The [chassis] tears \the [AD] open!") if(!AD.welded) if(density) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 055016908c..9baabe8f9b 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1891,7 +1891,7 @@ update_cell_alerts() update_damage_alerts() set_dir(dir_in) - playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) + playsound(src, 'sound/machines/door/windowdoor.ogg', 50, 1) if(occupant.client && cloaked_selfimage) occupant.client.images += cloaked_selfimage play_entered_noise(occupant) diff --git a/code/global.dm b/code/global.dm index 48628c5e02..1fde7aca07 100644 --- a/code/global.dm +++ b/code/global.dm @@ -157,7 +157,7 @@ var/static/list/scarySounds = list( 'sound/effects/Glassbr3.ogg', 'sound/items/Welder.ogg', 'sound/items/Welder2.ogg', - 'sound/machines/airlock.ogg', + 'sound/machines/door/old_airlock.ogg', 'sound/effects/clownstep1.ogg', 'sound/effects/clownstep2.ogg' ) diff --git a/code/modules/client/preference_setup/global/setting_datums.dm b/code/modules/client/preference_setup/global/setting_datums.dm index 0560f3008b..24cca9ca18 100644 --- a/code/modules/client/preference_setup/global/setting_datums.dm +++ b/code/modules/client/preference_setup/global/setting_datums.dm @@ -152,6 +152,18 @@ var/list/_client_preferences_by_type key = "SOUND_AIRPUMP" enabled_description = "Audible" disabled_description = "Silent" + +/datum/client_preference/old_door_sounds + description ="Old Door Sounds" + key = "SOUND_OLDDOORS" + enabled_description = "Old" + disabled_description = "New" + +/datum/client_preference/department_door_sounds + description ="Department-Specific Door Sounds" + key = "SOUND_DEPARTMENTDOORS" + enabled_description = "Enabled" + disabled_description = "Disabled" /datum/client_preference/pickup_sounds description = "Picked Up Item Sounds" diff --git a/code/modules/client/preferences_toggle_procs.dm b/code/modules/client/preferences_toggle_procs.dm index ddd768a076..bf3d7a3ca7 100644 --- a/code/modules/client/preferences_toggle_procs.dm +++ b/code/modules/client/preferences_toggle_procs.dm @@ -253,6 +253,36 @@ SScharacter_setup.queue_preferences_save(prefs) feedback_add_details("admin_verb","TAirPumpNoise") + +/client/verb/toggle_old_door_sounds() + set name = "Toggle Old Door Sounds" + set category = "Preferences" + set desc = "Toggles New/Old Door Sounds" + + var/pref_path = /datum/client_preference/old_door_sounds + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear the legacy door sounds.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TOldDoorSounds") + +/client/verb/toggle_department_door_sounds() + set name = "Toggle Department Door Sounds" + set category = "Preferences" + set desc = "Toggles Department-Specific Door Sounds" + + var/pref_path = /datum/client_preference/department_door_sounds + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear per-department door sounds.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TDepartmentDoorSounds") /client/verb/toggle_pickup_sounds() set name = "Toggle Picked Up Item Sounds" diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index cca6838836..51cf85b6a2 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -112,7 +112,7 @@ mob/living/carbon/proc/handle_hallucinations() //Strange audio //to_chat(src, "Strange Audio") switch(rand(1,12)) - if(1) src << 'sound/machines/airlock.ogg' + if(1) src << 'sound/machines/door/old_airlock.ogg' if(2) if(prob(50))src << 'sound/effects/Explosion1.ogg' else src << 'sound/effects/Explosion2.ogg' @@ -121,7 +121,7 @@ mob/living/carbon/proc/handle_hallucinations() if(5) src << 'sound/effects/Glassbr2.ogg' if(6) src << 'sound/effects/Glassbr3.ogg' if(7) src << 'sound/machines/twobeep.ogg' - if(8) src << 'sound/machines/windowdoor.ogg' + if(8) src << 'sound/machines/door/windowdoor.ogg' if(9) //To make it more realistic, I added two gunshots (enough to kill) src << 'sound/weapons/Gunshot1.ogg' diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm index fa6bed5c10..63158f9cba 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm @@ -250,7 +250,7 @@ //Strange audio //to_chat(src, "Strange Audio") switch(rand(1,12)) - if(1) src << 'sound/machines/airlock.ogg' + if(1) src << 'sound/machines/door/old_airlock.ogg' if(2) if(prob(50))src << 'sound/effects/Explosion1.ogg' else src << 'sound/effects/Explosion2.ogg' @@ -259,7 +259,7 @@ if(5) src << 'sound/effects/Glassbr2.ogg' if(6) src << 'sound/effects/Glassbr3.ogg' if(7) src << 'sound/machines/twobeep.ogg' - if(8) src << 'sound/machines/windowdoor.ogg' + if(8) src << 'sound/machines/door/windowdoor.ogg' if(9) //To make it more realistic, I added two gunshots (enough to kill) src << 'sound/weapons/Gunshot1.ogg' diff --git a/sound/machines/airlock_creaking.ogg b/sound/machines/door/airlock_creaking.ogg similarity index 100% rename from sound/machines/airlock_creaking.ogg rename to sound/machines/door/airlock_creaking.ogg diff --git a/sound/machines/airlockcycle.ogg b/sound/machines/door/airlockcycle.ogg similarity index 100% rename from sound/machines/airlockcycle.ogg rename to sound/machines/door/airlockcycle.ogg diff --git a/sound/machines/airlockforced.ogg b/sound/machines/door/airlockforced.ogg similarity index 100% rename from sound/machines/airlockforced.ogg rename to sound/machines/door/airlockforced.ogg diff --git a/sound/machines/blastdoorclose.ogg b/sound/machines/door/blastdoorclose.ogg similarity index 100% rename from sound/machines/blastdoorclose.ogg rename to sound/machines/door/blastdoorclose.ogg diff --git a/sound/machines/blastdooropen.ogg b/sound/machines/door/blastdooropen.ogg similarity index 100% rename from sound/machines/blastdooropen.ogg rename to sound/machines/door/blastdooropen.ogg diff --git a/sound/machines/boltsdown.ogg b/sound/machines/door/boltsdown.ogg similarity index 100% rename from sound/machines/boltsdown.ogg rename to sound/machines/door/boltsdown.ogg diff --git a/sound/machines/boltsup.ogg b/sound/machines/door/boltsup.ogg similarity index 100% rename from sound/machines/boltsup.ogg rename to sound/machines/door/boltsup.ogg diff --git a/sound/machines/airlock.ogg b/sound/machines/door/old_airlock.ogg similarity index 100% rename from sound/machines/airlock.ogg rename to sound/machines/door/old_airlock.ogg diff --git a/sound/machines/airlockclose.ogg b/sound/machines/door/old_airlockclose.ogg similarity index 100% rename from sound/machines/airlockclose.ogg rename to sound/machines/door/old_airlockclose.ogg diff --git a/sound/machines/windowdoor.ogg b/sound/machines/door/windowdoor.ogg similarity index 100% rename from sound/machines/windowdoor.ogg rename to sound/machines/door/windowdoor.ogg