Updated the sound system (#18724)

* sdaf

* sdaf

* sdfa

* sadf

* sfda

* gfd

* reduce thrusters volume

* sdafsadsdaf

* sdfa

* Reduced some sound ranges and made some/more not ignore walls for loops

* health analyzers too

* ivdrip adjustment

* most tools now use play_tool_sound to have the sound played, reduced range for it
This commit is contained in:
Fluffy
2024-03-25 20:40:36 +00:00
committed by GitHub
parent 9faac2d684
commit 1b40dbce82
174 changed files with 1251 additions and 817 deletions
+5 -5
View File
@@ -452,7 +452,7 @@
else
playsound(hit_atom, 'sound/weapons/throwtap.ogg', 1, volume, -1)
else
playsound(src, drop_sound, THROW_SOUND_VOLUME)
playsound(src, drop_sound, YEET_SOUND_VOLUME)
return ..()
/**
@@ -535,9 +535,9 @@
playsound(src, pickup_sound, PICKUP_SOUND_VOLUME)
else if(slot_flags && slot)
if(equip_sound)
playsound(src, equip_sound, EQUIP_SOUND_VOLUME)
playsound(src, equip_sound, EQUIP_SOUND_VOLUME, TRUE, ignore_walls = FALSE)
else
playsound(src, drop_sound, DROP_SOUND_VOLUME)
playsound(src, drop_sound, DROP_SOUND_VOLUME, ignore_walls = FALSE)
if(item_action_slot_check(user, slot))
add_verb(user, verbs)
for(var/v in verbs)
@@ -1100,7 +1100,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
/obj/item/proc/tool_use_check(mob/living/user, amount)
return TRUE
// Plays item's usesound, if any.
/// Plays item's usesound, if any
/obj/item/proc/play_tool_sound(atom/target, volume=null) // null, so default value of this proc won't override default value of the playsound.
if(target && volume)
var/played_sound
@@ -1114,7 +1114,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
played_sound = pick(hitsound)
//playsound(target, played_sound, VOL_EFFECTS_MASTER, volume) implement sound channel system in future
playsound(target, played_sound, volume, TRUE)
playsound(target, played_sound, volume, TRUE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE)
// Generic use proc. Depending on the item, it uses up fuel, charges, sheets, etc.
// Returns TRUE on success, FALSE on failure.
@@ -201,7 +201,7 @@
if (2)
if (attacking_item.isscrewdriver())
to_chat(user, SPAN_NOTICE("You unscrew and remove the wiring cover from \the [src]."))
playsound(loc, attacking_item.usesound, 50, 1)
attacking_item.play_tool_sound(get_turf(src), 50)
setconstructionstate(3)
return TRUE
@@ -227,7 +227,7 @@
if (attacking_item.isscrewdriver())
to_chat(user, SPAN_NOTICE("You replace and screw tight the wiring cover from \the [src]."))
playsound(loc, attacking_item.usesound, 50, 1)
attacking_item.play_tool_sound(get_turf(src), 50)
setconstructionstate(2)
return TRUE
+13 -13
View File
@@ -94,7 +94,7 @@ BREATH ANALYZER
user.visible_message("<b>[user]</b> runs the scanner over the floor.", "<span class='notice'>You run the scanner over the floor.</span>", "<span class='notice'>You hear metal repeatedly clunking against the floor.</span>")
to_chat(user, "<span class='notice'><b>Scan results for the ERROR:</b></span>")
if(sound_scan)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_used.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_used.ogg', 25, extrarange = SILENCED_SOUND_EXTRARANGE)
return
if(!user.IsAdvancedToolUser())
@@ -106,7 +106,7 @@ BREATH ANALYZER
if(!istype(M, /mob/living/carbon/human))
to_chat(user, "<span class='warning'>This scanner is designed for humanoid patients only.</span>")
if(sound_scan)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_used.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_used.ogg', 25, extrarange = SILENCED_SOUND_EXTRARANGE)
return
var/mob/living/carbon/human/H = M
@@ -114,7 +114,7 @@ BREATH ANALYZER
if(H.isSynthetic() && !H.isFBP())
to_chat(user, "<span class='warning'>This scanner is designed for organic humanoid patients only.</span>")
if(sound_scan)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_used.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_used.ogg', 25, extrarange = SILENCED_SOUND_EXTRARANGE)
return
. = list()
@@ -146,18 +146,18 @@ BREATH ANALYZER
if(sound_scan)
switch(brain_result)
if(0)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_dead.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_dead.ogg', 25, extrarange = SILENCED_SOUND_EXTRARANGE)
if(-1)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_used.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_used.ogg', 25, extrarange = SILENCED_SOUND_EXTRARANGE)
else
if(brain_result <= 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_critical.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_critical.ogg', 25, extrarange = SHORT_RANGE_SOUND_EXTRARANGE)
else if(brain_result <= 50)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_danger.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_danger.ogg', 25, extrarange = SHORT_RANGE_SOUND_EXTRARANGE)
else if(brain_result <= 90)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_used.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_used.ogg', 25, extrarange = SILENCED_SOUND_EXTRARANGE)
else
playsound(user.loc, 'sound/items/healthscanner/healthscanner_stable.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_stable.ogg', 25, extrarange = SILENCED_SOUND_EXTRARANGE)
// Pulse rate.
var/pulse_result = "normal"
@@ -635,19 +635,19 @@ BREATH ANALYZER
if(H.stat == DEAD || H.losebreath || !H.breathing)
to_chat(user,"<span class='danger'>Alert: No breathing detected.</span>")
playsound(user.loc, 'sound/items/healthscanner/healthscanner_dead.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_dead.ogg', 25, extrarange = SILENCED_SOUND_EXTRARANGE)
return
switch(H.getOxyLoss())
if(0 to 25)
to_chat(user,"Subject oxygen levels nominal.")
playsound(user.loc, 'sound/items/healthscanner/healthscanner_stable.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_stable.ogg', 25, extrarange = SILENCED_SOUND_EXTRARANGE)
if(25 to 50)
to_chat(user,"<span class='notice'>Subject oxygen levels abnormal.</span>")
playsound(user.loc, 'sound/items/healthscanner/healthscanner_danger.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_danger.ogg', 25, extrarange = SHORT_RANGE_SOUND_EXTRARANGE)
if(50 to INFINITY)
to_chat(user,"<span class='notice'><b>Severe oxygen deprivation detected.</b></span>")
playsound(user.loc, 'sound/items/healthscanner/healthscanner_critical.ogg', 25)
playsound(user.loc, 'sound/items/healthscanner/healthscanner_critical.ogg', 25, extrarange = SHORT_RANGE_SOUND_EXTRARANGE)
var/obj/item/organ/internal/L = H.internal_organs_by_name[BP_LUNGS]
if(istype(L))
@@ -21,7 +21,7 @@
if(attacking_item.iscrowbar())
amount--
to_chat(user, "<span class='notice'>You pry off the steel sheet from the [name].</span>")
playsound(src.loc, attacking_item.usesound, 100, 1)
attacking_item.play_tool_sound(get_turf(src), 100)
new /obj/item/stack/material/glass/wired(user.loc)
new /obj/item/stack/material/steel(user.loc)
if(amount <= 0)
+1 -1
View File
@@ -286,7 +286,7 @@
START_PROCESSING(SSfast_process, src)
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(tgui_alert), triggerer, "You feel your [pick("right", "left")] foot step down on a button with a click..., Uh..., Oh...", "Dread", list("Mom..."))
playsound_allinrange(src, sound('sound/weapons/empty/empty6.ogg'))
playsound(src, sound('sound/weapons/empty/empty6.ogg'))
else
late_trigger(locate(engaged_by))
@@ -10,7 +10,7 @@
/obj/item/thermal_drill/Initialize()
. = ..()
soundloop = new(list(src), FALSE)
soundloop = new(src, FALSE)
/obj/item/thermal_drill/Destroy()
QDEL_NULL(soundloop)
+5 -5
View File
@@ -434,7 +434,7 @@
)
affecting.heal_damage(brute = 15, robo_repair = TRUE)
user.visible_message(SPAN_WARNING("\The [user] [pick(repair_messages)] on [target]'s [affecting.name] with \the [src]."))
playsound(target, usesound, 15)
playsound(target, usesound, 15, extrarange = SILENCED_SOUND_EXTRARANGE)
repair_organ(user, target, affecting)
/obj/item/weldingtool/afterattack(obj/O, mob/user, proximity)
@@ -536,7 +536,7 @@
to_chat(M, "<span class='notice'>You switch the [src] on.</span>")
else if(T)
T.visible_message("<span class='danger'>\The [src] turns on.</span>")
playsound(loc, 'sound/items/welder_activate.ogg', 50, 1)
playsound(loc, 'sound/items/welder_activate.ogg', 50, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE)
force = 22
damtype = DAMAGE_BURN
w_class = ITEMSIZE_LARGE
@@ -555,7 +555,7 @@
to_chat(M, "<span class='notice'>You switch \the [src] off.</span>")
else if(T)
T.visible_message("<span class='warning'>\The [src] turns off.</span>")
playsound(loc, 'sound/items/welder_deactivate.ogg', 50, 1)
playsound(loc, 'sound/items/welder_deactivate.ogg', 50, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE)
force = 3
damtype = DAMAGE_BRUTE
w_class = initial(w_class)
@@ -826,7 +826,7 @@
current_tool = 1
var/tool = RADIAL_INPUT(user, tools)
if(tool)
playsound(user, 'sound/items/penclick.ogg', 25)
playsound(user, 'sound/items/penclick.ogg', 25, extrarange = SILENCED_SOUND_EXTRARANGE)
current_tool = tool
switch(tool)
if("wrench")
@@ -958,7 +958,7 @@
lit = TRUE
if(user)
user.visible_message(SPAN_NOTICE("[user] ignites the steel wool with \the [L]."), SPAN_NOTICE("You ignite the steel wool with \the [L]"), SPAN_NOTICE("You hear a gentle flame crackling."))
playsound(get_turf(src), 'sound/items/flare.ogg', 50)
playsound(get_turf(src), 'sound/items/flare.ogg', 50, extrarange = SHORT_RANGE_SOUND_EXTRARANGE)
desc += " Watch your hands!"
icon_state = "burning_wool"
set_light(2, 2, LIGHT_COLOR_LAVA)
+2
View File
@@ -34,7 +34,9 @@
var/icon_species_in_hand = FALSE
var/equip_slot = 0
///Played when the item is used, for example tools
var/usesound
var/toolspeed = 1
var/surgerysound
+2 -2
View File
@@ -30,14 +30,14 @@
switch(state)
if(ECD_LOOSE)
state = ECD_BOLTED
playsound(get_turf(src), W.usesound, 75, TRUE)
W.play_tool_sound(get_turf(src), 75)
user.visible_message(SPAN_NOTICE("\The [user] secures \the [src] to the floor."), \
SPAN_NOTICE("You secure \the [src]'s external reinforcing bolts to the floor."), \
SPAN_WARNING("You hear a ratcheting noise."))
anchored = TRUE
if(ECD_BOLTED)
state = ECD_LOOSE
playsound(get_turf(src), W.usesound, 75, TRUE)
W.play_tool_sound(get_turf(src), 75)
user.visible_message(SPAN_NOTICE("\The [user] unsecures \the [src]'s reinforcing bolts from the floor."), \
SPAN_NOTICE("You undo \the [src]'s external reinforcing bolts."), \
SPAN_WARNING("You hear a ratcheting noise."))
@@ -410,33 +410,33 @@
else if(attacking_item.isscrewdriver() && canbemoved)
if(screwed)
to_chat(user, SPAN_NOTICE("You start to unscrew \the [src] from the floor..."))
playsound(loc, attacking_item.usesound, 50, 1)
attacking_item.play_tool_sound(get_turf(src), 50)
if (do_after(user, 10/attacking_item.toolspeed SECONDS, src, DO_REPAIR_CONSTRUCT))
to_chat(user, SPAN_NOTICE("You unscrew the locker!"))
playsound(loc, attacking_item.usesound, 50, 1)
attacking_item.play_tool_sound(get_turf(src), 50)
screwed = FALSE
else if(!screwed && wrenched)
to_chat(user, SPAN_NOTICE("You start to screw the \the [src] to the floor..."))
playsound(src, 'sound/items/Welder.ogg', 80, 1)
if (do_after(user, 15/attacking_item.toolspeed SECONDS, src, DO_REPAIR_CONSTRUCT))
to_chat(user, SPAN_NOTICE("You screw \the [src]!"))
playsound(loc, attacking_item.usesound, 50, 1)
attacking_item.play_tool_sound(get_turf(src), 50)
screwed = TRUE
else if(attacking_item.iswrench() && canbemoved)
if(wrenched && !screwed)
to_chat(user, SPAN_NOTICE("You start to unfasten the bolts holding \the [src] in place..."))
playsound(loc, attacking_item.usesound, 50, 1)
attacking_item.play_tool_sound(get_turf(src), 50)
if (do_after(user, 15/attacking_item.toolspeed SECONDS, src, DO_REPAIR_CONSTRUCT))
to_chat(user, SPAN_NOTICE("You unfasten \the [src]'s bolts!"))
playsound(loc, attacking_item.usesound, 50, 1)
attacking_item.play_tool_sound(get_turf(src), 50)
wrenched = FALSE
anchored = FALSE
else if(!wrenched)
to_chat(user, SPAN_NOTICE("You start to fasten the bolts holding the locker in place..."))
playsound(loc, attacking_item.usesound, 50, 1)
attacking_item.play_tool_sound(get_turf(src), 50)
if (do_after(user, 15/attacking_item.toolspeed SECONDS, src, DO_REPAIR_CONSTRUCT))
to_chat(user, SPAN_NOTICE("You fasten the \the [src]'s bolts!"))
playsound(loc, attacking_item.usesound, 50, 1)
attacking_item.play_tool_sound(get_turf(src), 50)
wrenched = TRUE
anchored = TRUE
else if(istype(attacking_item, /obj/item/device/hand_labeler))
+1 -1
View File
@@ -60,7 +60,7 @@
if(C != src && C.anchored) //Can't secure more than one curtain in a tile
to_chat(user, "There is already a curtain secured here!")
return
playsound(src.loc, attacking_item.usesound, 50, 1)
attacking_item.play_tool_sound(get_turf(src), 50)
visible_message(SPAN_NOTICE("\The [src] has been [anchored ? "secured in place" : "unsecured"] by \the [user]."))
/obj/structure/curtain/proc/toggle()
@@ -97,7 +97,7 @@
return
if(WT.use(0, user))
to_chat(user, SPAN_NOTICE("You use \the [WT] to weld apart \the [src]."))
playsound(src, WT.usesound, 50, 1)
WT.play_tool_sound(get_turf(src), 50)
new /obj/item/stack/material/steel(get_turf(src), 4)
qdel(src)
return
+1 -1
View File
@@ -149,7 +149,7 @@
to_chat(user, "<span class='notice'>You unsecured the support struts!</span>")
state = 1
else if(anchored && !reinf_material)
playsound(src.loc, attacking_item.usesound, 50, 1)
attacking_item.play_tool_sound(get_turf(src), 50)
reinforcing = !reinforcing
to_chat(user, "<span class='notice'>\The [src] can now be [reinforcing? "reinforced" : "constructed"]!</span>")
return
+5 -1
View File
@@ -203,7 +203,11 @@
spill()
if(user)
playsound(src.loc, I.usesound, 50, 1)
if(iswelder(I))
var/obj/item/welder = I
welder.play_tool_sound(get_turf(src), 50)
user.visible_message("<b>[user]</b> starts taking apart the [src]...", SPAN_NOTICE("You start disassembling the [src]..."))
if (!do_after(user, 30, do_flags = DO_DEFAULT & ~DO_USER_SAME_HAND))
return
+3 -3
View File
@@ -244,7 +244,7 @@
return
// Wrench Open
else
playsound(get_turf(src), attacking_item.usesound, 50, TRUE)
attacking_item.play_tool_sound(get_turf(src), 50)
if(density)
user.visible_message(SPAN_NOTICE("\The [user] wrenches \the [src] open."), SPAN_NOTICE("You wrench \the [src] open."))
density = FALSE
@@ -260,7 +260,7 @@
if(health >= maxhealth)
to_chat(user, SPAN_WARNING("\The [src] does not need repairs."))
return
playsound(get_turf(src), attacking_item.usesound, 50, TRUE)
attacking_item.play_tool_sound(get_turf(src), 50)
if(do_after(user, 20, src))
if(health >= maxhealth)
return
@@ -274,7 +274,7 @@
to_chat(user, SPAN_NOTICE("You need to wrench \the [src] from back into place first."))
return
user.visible_message(anchored ? "<span class='notice'>\The [user] begins unscrewing \the [src].</span>" : "<span class='notice'>\The [user] begins fastening \the [src].</span>" )
playsound(get_turf(src), attacking_item.usesound, 75, TRUE)
attacking_item.play_tool_sound(get_turf(src), 75)
if(do_after(user, 10, src) && density)
to_chat(user, (anchored ? "<span class='notice'>You have unfastened \the [src] from the floor.</span>" : "<span class='notice'>You have fastened \the [src] to the floor.</span>"))
anchored = !anchored
+1 -1
View File
@@ -181,7 +181,7 @@
/obj/structure/metronome/attackby(obj/item/attacking_item, mob/user)
if(attacking_item.iswrench())
playsound(src.loc, attacking_item.usesound, 50, 1)
attacking_item.play_tool_sound(get_turf(src), 50)
if(anchored)
to_chat(user, "<span class='notice'>You unanchor \the [src] and it destabilizes.</span>")
STOP_PROCESSING(SSfast_process, src)
+1 -1
View File
@@ -147,7 +147,7 @@
/obj/machinery/shower/Initialize()
. = ..()
create_reagents(2)
soundloop = new(list(src), FALSE)
soundloop = new(src, FALSE)
/obj/machinery/shower/Destroy()
QDEL_NULL(soundloop)
+4 -4
View File
@@ -265,24 +265,24 @@
if(reinf && state >= 1)
state = 3 - state
update_nearby_icons()
playsound(loc, attacking_item.usesound, 75, 1)
attacking_item.play_tool_sound(get_turf(src), 75)
to_chat(user, (state == 1 ? SPAN_NOTICE("You have unfastened the window from the frame.") : SPAN_NOTICE("You have fastened the window to the frame.")))
else if(reinf && state == 0)
anchored = !anchored
update_icon()
update_nearby_icons()
playsound(loc, attacking_item.usesound, 75, 1)
attacking_item.play_tool_sound(get_turf(src), 75)
to_chat(user, (anchored ? SPAN_NOTICE("You have fastened the frame to the floor.") : SPAN_NOTICE("You have unfastened the frame from the floor.")))
else if(!reinf)
anchored = !anchored
update_nearby_icons()
playsound(loc, attacking_item.usesound, 75, 1)
attacking_item.play_tool_sound(get_turf(src), 75)
to_chat(user, (anchored ? SPAN_NOTICE("You have fastened the window to the floor.") : SPAN_NOTICE("You have unfastened the window.")))
update_icon()
update_nearby_icons()
else if(attacking_item.iscrowbar() && reinf && state <= 1 && user.a_intent != I_HURT)
state = 1 - state
playsound(loc, attacking_item.usesound, 75, 1)
attacking_item.play_tool_sound(get_turf(src), 75)
to_chat(user, (state ? SPAN_NOTICE("You have pried the window into the frame.") : SPAN_NOTICE("You have pried the window out of the frame.")))
else if(attacking_item.iswrench() && !anchored && (!state || !reinf) && user.a_intent != I_HURT)
if(!glasstype)