From b655e210a19d20ff7e8d082ed2dbbf6ff59da438 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Fri, 24 Jul 2026 12:43:46 -0400 Subject: [PATCH 1/4] fixes channelless SEND_SOUND() and fixes CHANNEL_BUZZ --- code/__DEFINES/sound.dm | 2 +- code/__HELPERS/game.dm | 4 ++-- code/__HELPERS/priority_announce.dm | 8 ++++---- code/_onclick/hud/action_button.dm | 2 +- code/controllers/subsystem/ticker.dm | 6 +++--- code/datums/components/aiming.dm | 2 +- code/datums/components/cult_ritual_item.dm | 2 +- code/datums/diseases/advance/symptoms/clockwork.dm | 2 +- code/datums/looping_sounds/_looping_sound.dm | 2 +- code/datums/status_effects/buffs.dm | 2 +- code/datums/weather/weather.dm | 6 +++--- code/game/mecha/mecha.dm | 10 +++++----- code/game/mecha/mecha_actions.dm | 2 +- code/game/objects/effects/mainttraps.dm | 2 +- code/game/objects/items/devices/radio/radio.dm | 2 +- code/modules/admin/admin.dm | 2 +- code/modules/admin/battle_royale.dm | 4 ++-- code/modules/admin/secrets.dm | 4 ++-- code/modules/admin/topic.dm | 4 ++-- code/modules/admin/verbs/adminhelp.dm | 6 +++--- code/modules/admin/verbs/adminpm.dm | 6 +++--- code/modules/admin/verbs/debug.dm | 2 +- code/modules/admin/verbs/randomverbs.dm | 2 +- code/modules/antagonists/_common/antag_spawner.dm | 2 +- code/modules/antagonists/blob/powers.dm | 4 ++-- code/modules/antagonists/blob/structures/_blob.dm | 2 +- .../antagonists/changeling/powers/shriek.dm | 4 ++-- .../antagonists/changeling/powers/teratoma.dm | 2 +- .../antagonists/clock_cult/clockwork_massive.dm | 14 +++++++------- .../clock_cult/helpers/clockcult_ending.dm | 4 ++-- .../helpers/clockwork_conversion_tracker.dm | 8 ++++---- .../antagonists/clock_cult/mobs/eminence.dm | 6 +++--- code/modules/antagonists/cult/cult.dm | 4 ++-- code/modules/antagonists/cult/cult_comms.dm | 8 ++++---- code/modules/antagonists/cult/narsie.dm | 2 +- code/modules/antagonists/morph/morph.dm | 2 +- code/modules/antagonists/ninja/ninja.dm | 2 +- code/modules/antagonists/revenant/revenant.dm | 2 +- .../antagonists/slaughter/slaughterevent.dm | 2 +- .../antagonists/space_dragon/space_dragon.dm | 2 +- code/modules/antagonists/traitor/datum_traitor.dm | 2 +- .../antagonists/wizard/equipment/artefact.dm | 4 ++-- code/modules/events/wizard/imposter.dm | 2 +- code/modules/flufftext/Hallucination.dm | 10 +++++----- code/modules/guardian/abilities/major/time.dm | 2 +- code/modules/interview/interview.dm | 6 +++--- code/modules/interview/interview_manager.dm | 2 +- .../living/carbon/human/species_types/golems.dm | 4 ++-- .../carbon/human/species_types/shadowpeople.dm | 2 +- code/modules/mob/mob_helpers.dm | 2 +- .../file_system/programs/borg_monitor.dm | 4 ++-- code/modules/paperwork/fax_manager.dm | 2 +- code/modules/power/apc.dm | 6 +++--- code/modules/power/supermatter/supermatter.dm | 2 +- .../power/supermatter/supermatter_delamination.dm | 2 +- code/modules/requests/request_manager.dm | 2 +- .../orbital_poi_generator/loot/alien_artifact.dm | 2 +- code/modules/spells/spell_types/knock.dm | 2 +- code/modules/spells/spell_types/mind_transfer.dm | 4 ++-- code/modules/surgery/organs/ears.dm | 2 +- .../specialized/tgui_input_pda_message.dm | 2 +- nsv13/code/controllers/subsystem/starsystem.dm | 2 +- .../munitions/ammunition/countermeasure_ammo.dm | 2 +- nsv13/code/modules/overmap/ai-skynet.dm | 10 +++++----- nsv13/code/modules/overmap/traders.dm | 2 +- nsv13/code/modules/overmap/traders_items.dm | 2 +- nsv13/code/modules/overmap/weapons/damage.dm | 2 +- nsv13/code/modules/turbolift/lazylift.dm | 2 +- 68 files changed, 121 insertions(+), 121 deletions(-) diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 0f867c6ea2a..bfe568587ee 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -7,7 +7,7 @@ #define CHANNEL_HEARTBEAT 1019 //sound channel for heartbeats #define CHANNEL_AMBIENT_EFFECTS 1018 #define CHANNEL_AMBIENT_MUSIC 1017 -#define CHANNEL_BUZZ 1017 +#define CHANNEL_BUZZ 1016 #define CHANNEL_SHIP_ALERT 1015 //nsv13 - sound channel for looping ship alerts, EG general quarters #define CHANNEL_REACTOR_ALERT 1014 //nsv13 - sound channel for the nuclear storm drive meltdown sfx. #define CHANNEL_SHIP_FX 1013 //nsv13 - sound channel for general ship ambience / FX diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 0752b2a90e9..f49ade9a1c3 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -400,7 +400,7 @@ /proc/showCandidatePollWindow(mob/M, poll_time, Question, list/candidates, ignore_category, time_passed, flashwindow = TRUE) set waitfor = 0 - SEND_SOUND(M, 'sound/misc/notice2.ogg') //Alerting them to their consideration + SEND_SOUND(M, sound('sound/misc/notice2.ogg', channel = SSsounds.random_available_channel())) //Alerting them to their consideration if(flashwindow) window_flash(M.client) switch(ignore_category ? askuser(M,Question,"Please answer in [DisplayTimeText(poll_time)]!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(M,Question,"Please answer in [DisplayTimeText(poll_time)]!","Yes","No", StealFocus=0, Timeout=poll_time)) @@ -408,7 +408,7 @@ to_chat(M, "Choice registered: Yes.") if(time_passed + poll_time <= world.time) to_chat(M, "Sorry, you answered too late to be considered!") - SEND_SOUND(M, 'sound/machines/buzz-sigh.ogg') + SEND_SOUND(M, sound('sound/machines/buzz-sigh.ogg', channel = SSsounds.random_available_channel())) candidates -= M else candidates += M diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm index 13e66a0e348..3ae784f4a41 100644 --- a/code/__HELPERS/priority_announce.dm +++ b/code/__HELPERS/priority_announce.dm @@ -42,12 +42,12 @@ if(auth_id) announcement += "-[auth_id]
" - var/s = sound(sound) + var/s = sound(sound, channel = SSsounds.random_available_channel()) for(var/mob/M in GLOB.player_list) if(!isnewplayer(M) && M.can_hear()) to_chat(M, announcement) if(M.client.prefs.toggles & PREFTOGGLE_SOUND_ANNOUNCEMENTS) - SEND_SOUND(M, s) + SEND_SOUND(M, s ) /proc/exploration_announce(text, z_value) var/announcement = "" @@ -91,8 +91,8 @@ to_chat(M, complete_msg) if(!silent && (M.client.prefs.toggles & PREFTOGGLE_SOUND_ANNOUNCEMENTS)) //nsv13 - silent arg integration if(alert) - SEND_SOUND(M, sound('sound/misc/notice1.ogg')) + SEND_SOUND(M, sound('sound/misc/notice1.ogg', channel = SSsounds.random_available_channel())) else - SEND_SOUND(M, sound('sound/misc/notice2.ogg')) + SEND_SOUND(M, sound('sound/misc/notice2.ogg', channel = SSsounds.random_available_channel())) #undef DEFAULT_ALERT diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm index a83ab3de9ad..2ab8b76822f 100644 --- a/code/_onclick/hud/action_button.dm +++ b/code/_onclick/hud/action_button.dm @@ -63,7 +63,7 @@ return usr.next_click = world.time + 1 linked_action.Trigger() - SEND_SOUND(usr, 'sound/effects/pop.ogg') + SEND_SOUND(usr, sound('sound/effects/pop.ogg', channel = SSsounds.random_available_channel())) transform = turn(matrix() * 0.9, pick(-8, 8)) alpha = 200 animate(src, transform = matrix(), time=4, alpha=255) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index e71dcc99cd2..fd049559700 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -345,7 +345,7 @@ SUBSYSTEM_DEF(ticker) SSdbcore.SetRoundStart() to_chat(world, "Welcome to [station_name()], enjoy your stay!") - SEND_SOUND(world, sound(SSstation.announcer.get_rand_welcome_sound())) + SEND_SOUND(world, sound(SSstation.announcer.get_rand_welcome_sound(), channel = SSsounds.random_available_channel())) current_state = GAME_STATE_PLAYING Master.SetRunLevel(RUNLEVEL_GAME) @@ -503,7 +503,7 @@ SUBSYSTEM_DEF(ticker) listclearnulls(queued_players) for (var/mob/dead/new_player/NP in queued_players) to_chat(NP, "The alive players limit has been released!
[html_encode(">>Join Game<<")]
") - SEND_SOUND(NP, sound('sound/misc/notice1.ogg')) + SEND_SOUND(NP, sound('sound/misc/notice1.ogg', channel = SSsounds.random_available_channel())) NP.LateChoices() queued_players.len = 0 queue_delay = 0 @@ -518,7 +518,7 @@ SUBSYSTEM_DEF(ticker) if(living_player_count() < hpc) if(next_in_line && next_in_line.client) to_chat(next_in_line, "A slot has opened! You have approximately 20 seconds to join. \>\>Join Game\<\<") - SEND_SOUND(next_in_line, sound('sound/misc/notice1.ogg')) + SEND_SOUND(next_in_line, sound('sound/misc/notice1.ogg', channel = SSsounds.random_available_channel())) next_in_line.LateChoices() return queued_players -= next_in_line //Client disconnected, remove he diff --git a/code/datums/components/aiming.dm b/code/datums/components/aiming.dm index 22dc2bbc0cb..0173a2c3b81 100644 --- a/code/datums/components/aiming.dm +++ b/code/datums/components/aiming.dm @@ -103,7 +103,7 @@ Methods to alert the aimer about events (Surrendering/equipping an item/dropping target.balloon_alert(user, "[target] equipped a gun!") else target.balloon_alert(user, "[target] equipped something!") - SEND_SOUND(user, 'sound/machines/chime.ogg') + SEND_SOUND(user, sound('sound/machines/chime.ogg', channel = SSsounds.random_available_channel())) new /obj/effect/temp_visual/aiming/suspect_alert(get_turf(target)) COOLDOWN_START(src, notification_cooldown, 5 SECONDS) diff --git a/code/datums/components/cult_ritual_item.dm b/code/datums/components/cult_ritual_item.dm index 724e79d6943..e043df0ae13 100644 --- a/code/datums/components/cult_ritual_item.dm +++ b/code/datums/components/cult_ritual_item.dm @@ -210,7 +210,7 @@ if(!can_scrape_rune(rune, cultist)) return - SEND_SOUND(cultist, 'sound/items/sheath.ogg') + SEND_SOUND(cultist, sound('sound/items/sheath.ogg', channel = SSsounds.random_available_channel())) if(!do_after(cultist, rune.erase_time, target = rune)) return diff --git a/code/datums/diseases/advance/symptoms/clockwork.dm b/code/datums/diseases/advance/symptoms/clockwork.dm index 6742b661dea..efce2a6d0ba 100644 --- a/code/datums/diseases/advance/symptoms/clockwork.dm +++ b/code/datums/diseases/advance/symptoms/clockwork.dm @@ -297,7 +297,7 @@ /obj/item/organ/brain/clockwork/on_life() . = ..() if(prob(5) && !robust) - SEND_SOUND(owner, pickweight(list('sound/effects/clock_tick.ogg' = 6, 'sound/effects/smoke.ogg' = 2, 'sound/spookoween/chain_rattling.ogg' = 1, 'sound/ambience/ambiruin3.ogg' = 1))) + SEND_SOUND(owner, sound(pickweight(list('sound/effects/clock_tick.ogg' = 6, 'sound/effects/smoke.ogg' = 2, 'sound/spookoween/chain_rattling.ogg' = 1, 'sound/ambience/ambiruin3.ogg' = 1)), channel = SSsounds.random_available_channel())) /obj/item/organ/liver/clockwork name = "biometallic alembic" diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index f7e6b4c525b..e04941bb82e 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -77,7 +77,7 @@ play(get_sound(starttime)) /datum/looping_sound/proc/play(soundfile) - var/sound/S = sound(soundfile) + var/sound/S = sound(soundfile, channel = SSsounds.random_available_channel()) if(direct) S.channel = SSsounds.random_available_channel() S.volume = volume diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 66a67e387db..366624d23b0 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -37,7 +37,7 @@ icon_state = "shadow_mend" /datum/status_effect/void_price/tick() - SEND_SOUND(owner, sound('sound/magic/summon_karp.ogg', volume = 25)) + SEND_SOUND(owner, sound('sound/magic/summon_karp.ogg', volume = 25, , channel = SSsounds.random_available_channel())) owner.adjustBruteLoss(3) /datum/status_effect/cyborg_power_regen diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index 255a6a7e320..bac78fc0fe3 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -73,7 +73,7 @@ if(telegraph_message) to_chat(player, telegraph_message) if(telegraph_sound) - SEND_SOUND(player, sound(telegraph_sound)) + SEND_SOUND(player, sound(telegraph_sound, channel = SSsounds.random_available_channel())) addtimer(CALLBACK(src, PROC_REF(start)), telegraph_duration) /datum/weather/proc/start() @@ -90,7 +90,7 @@ if(weather_message) to_chat(player, weather_message) if(weather_sound) - SEND_SOUND(player, sound(weather_sound)) + SEND_SOUND(player, sound(weather_sound, channel = SSsounds.random_available_channel())) addtimer(CALLBACK(src, PROC_REF(wind_down)), weather_duration) /datum/weather/proc/wind_down() @@ -107,7 +107,7 @@ if(end_message) to_chat(player, end_message) if(end_sound) - SEND_SOUND(player, sound(end_sound)) + SEND_SOUND(player, sound(end_sound, channel = SSsounds.random_available_channel())) addtimer(CALLBACK(src, PROC_REF(end)), end_duration) /datum/weather/proc/end() diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index acad21df6e7..5acd35dbd71 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -205,7 +205,7 @@ /obj/mecha/proc/restore_equipment() equipment_disabled = 0 if(occupant) - SEND_SOUND(occupant, sound('sound/items/timer.ogg', volume=50)) + SEND_SOUND(occupant, sound('sound/items/timer.ogg', volume=50, channel = SSsounds.random_available_channel())) to_chat(occupant, "Equipment control unit has been rebooted successfuly.") occupant.update_mouse_pointer() @@ -713,7 +713,7 @@ /obj/mecha/proc/setInternalDamage(int_dam_flag) internal_damage |= int_dam_flag log_message("Internal damage of type [int_dam_flag].", LOG_MECHA) - SEND_SOUND(occupant, sound('sound/machines/warning-buzzer.ogg',wait=0)) + SEND_SOUND(occupant, sound('sound/machines/warning-buzzer.ogg',wait=0, channel = SSsounds.random_available_channel())) diag_hud_set_mechstat() return @@ -828,7 +828,7 @@ update_icon() playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) if(!internal_damage) - SEND_SOUND(occupant, sound('sound/mecha/nominal.ogg',volume=50)) + SEND_SOUND(occupant, sound('sound/mecha/nominal.ogg',volume=50, channel = SSsounds.random_available_channel())) AI.cancel_camera() AI.controlled_mech = src AI.remote_control = src @@ -969,7 +969,7 @@ setDir(dir_in) playsound(src, 'sound/machines/windowdoor.ogg', 50, 1) if(!internal_damage) - SEND_SOUND(occupant, sound('sound/mecha/nominal.ogg',volume=50)) + SEND_SOUND(occupant, sound('sound/mecha/nominal.ogg',volume=50, channel = SSsounds.random_available_channel())) return 1 else return 0 @@ -1025,7 +1025,7 @@ setDir(dir_in) log_message("[mmi_as_oc] moved in as pilot.", LOG_MECHA) if(!internal_damage) - SEND_SOUND(occupant, sound('sound/mecha/nominal.ogg',volume=50)) + SEND_SOUND(occupant, sound('sound/mecha/nominal.ogg',volume=50, channel = SSsounds.random_available_channel())) GrantActions(brainmob) return TRUE diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm index 49005019f3a..2a5ccd0f524 100644 --- a/code/game/mecha/mecha_actions.dm +++ b/code/game/mecha/mecha_actions.dm @@ -213,7 +213,7 @@ chassis.balloon_alert(owner, "Zoom mode has been [chassis.zoom_mode ? "enabled" : "disabled"].") if(chassis.zoom_mode) owner.client.view_size.setTo(4.5) - SEND_SOUND(owner, sound('sound/mecha/imag_enh.ogg',volume=50)) + SEND_SOUND(owner, sound('sound/mecha/imag_enh.ogg',volume=50, channel = SSsounds.random_available_channel())) else owner.client.view_size.resetToDefault() //Let's not let this stack shall we? UpdateButtonIcon() diff --git a/code/game/objects/effects/mainttraps.dm b/code/game/objects/effects/mainttraps.dm index 9456cd2097f..8c9c5901221 100644 --- a/code/game/objects/effects/mainttraps.dm +++ b/code/game/objects/effects/mainttraps.dm @@ -290,7 +290,7 @@ /obj/effect/rune/cluwne/attackby(obj/I, mob/user, params) if(istype(I, /obj/item/melee/cultblade/dagger) && iscultist(user)) - SEND_SOUND(user,'sound/items/sheath.ogg') + SEND_SOUND(user,sound('sound/items/sheath.ogg', channel = SSsounds.random_available_channel())) if(do_after(user, 15, target = src)) to_chat(user, "It's not within your power to erase the [lowertext(cultist_name)].") else if(istype(I, /obj/item/nullrod)) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 5d21d4aa7a5..ec46101865a 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -252,7 +252,7 @@ if(!radio_silent)//Radios make small static noises now var/mob/sender = loc if(istype(sender) && sender.hears_radio()) - var/sound/radio_sound = sound(pick("sound/effects/radio1.ogg", "sound/effects/radio2.ogg"), volume = 50) + var/sound/radio_sound = sound(pick("sound/effects/radio1.ogg", "sound/effects/radio2.ogg"), volume = 50, channel = SSsounds.random_available_channel()) radio_sound.frequency = get_rand_frequency() SEND_SOUND(sender, radio_sound) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index bfe066e8df5..3a1654d95e3 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -705,7 +705,7 @@ log_admin("[key_name(usr)] delayed the round start.") else to_chat(world, "The game will start in [DisplayTimeText(newtime)].") - SEND_SOUND(world, sound('sound/ai/default/attention.ogg')) + SEND_SOUND(world, sound('sound/ai/default/attention.ogg', channel = SSsounds.random_available_channel())) log_admin("[key_name(usr)] set the pre-game delay to [DisplayTimeText(newtime)].") SSblackbox.record_feedback("tally", "admin_verb", 1, "Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/battle_royale.dm b/code/modules/admin/battle_royale.dm index 7c6729dfeeb..ee747ee9515 100644 --- a/code/modules/admin/battle_royale.dm +++ b/code/modules/admin/battle_royale.dm @@ -288,7 +288,7 @@ GLOBAL_DATUM(battle_royale, /datum/battle_royale_controller) player.make_me_an_observer(TRUE) to_chat(world, "Battle Royale: Force-starting game.") SSticker.start_immediately = TRUE - SEND_SOUND(world, sound('sound/misc/server-ready.ogg')) + SEND_SOUND(world, sound('sound/misc/server-ready.ogg', channel = SSsounds.random_available_channel())) sleep(50) //Clear all living mobs to_chat(world, "Battle Royale: Clearing world mobs.") @@ -346,7 +346,7 @@ GLOBAL_DATUM(battle_royale, /datum/battle_royale_controller) players += H to_chat(M, "You have been given knock and pacifism for 30 seconds.") new /obj/effect/pod_landingzone(spawn_turf, pod) - SEND_SOUND(world, sound('sound/misc/airraid.ogg')) + SEND_SOUND(world, sound('sound/misc/airraid.ogg', channel = SSsounds.random_available_channel())) to_chat(world, "A 30 second grace period has been established. Good luck.") to_chat(world, "WARNING: YOU WILL BE GIBBED IF YOU LEAVE THE STATION Z-LEVEL!") to_chat(world, "[players.len] people remain...") diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index f05165e3a7a..b368b3edda0 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -459,7 +459,7 @@ GLOBAL_DATUM_INIT(admin_secrets, /datum/admin_secrets, new) SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Chinese Cartoons")) message_admins("[key_name_admin(usr)] made everything kawaii.") for(var/mob/living/carbon/human/H in GLOB.carbon_list) - SEND_SOUND(H, sound(SSstation.announcer.event_sounds[ANNOUNCER_ANIMES])) + SEND_SOUND(H, sound(SSstation.announcer.event_sounds[ANNOUNCER_ANIMES], channel = SSsounds.random_available_channel())) if(H.dna.species.id == SPECIES_HUMAN) if(H.dna.features["tail_human"] == "None" || H.dna.features["ears"] == "None") @@ -524,7 +524,7 @@ GLOBAL_DATUM_INIT(admin_secrets, /datum/admin_secrets, new) if(!check_rights(R_FUN)) return SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Mass Australian")) - var/s = sound('sound/misc/downunder.ogg') + var/s = sound('sound/misc/downunder.ogg', channel = SSsounds.random_available_channel()) for(var/mob/living/carbon/human/H in GLOB.player_list) to_chat(H, "You suddenly feel crikey.") var/matrix/M = H.transform diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 821c230a1f6..829f144c9f4 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1239,7 +1239,7 @@ message_admins("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") SSblackbox.record_feedback("amount", "admin_cookies_spawned", 1) to_chat(H, "Your prayers have been answered!! You received the best cookie!") - SEND_SOUND(H, sound('sound/effects/pray_chaplain.ogg')) + SEND_SOUND(H, sound('sound/effects/pray_chaplain.ogg', channel = SSsounds.random_available_channel())) else if(href_list["adminsmite"]) if(!check_rights(R_ADMIN|R_FUN)) @@ -2185,7 +2185,7 @@ if(!datum_to_mark) return return usr.client?.mark_datum(datum_to_mark) - + /datum/admins/proc/HandleCMode() if(!check_rights(R_ADMIN)) return diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 6f5ec20c106..c0cadb75bd7 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -519,7 +519,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //send this msg to all admins for(var/client/X in GLOB.admins) if(X.prefs.toggles & PREFTOGGLE_SOUND_ADMINHELP) - SEND_SOUND(X, sound('sound/effects/adminhelp.ogg')) + SEND_SOUND(X, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) window_flash(X, ignorepref = TRUE) to_chat(X, type = MESSAGE_TYPE_ADMINPM, @@ -643,7 +643,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(initiator) initiator.giveadminhelpverb() - SEND_SOUND(initiator, sound('sound/effects/adminhelp.ogg')) + SEND_SOUND(initiator, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) to_chat(initiator, "- AdminHelp Rejected! -") to_chat(initiator, "The administrators could not resolve your ticket. The adminhelp verb has been returned to you so that you may try again.") @@ -687,7 +687,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(initiator) initiator.giveadminhelpverb() - SEND_SOUND(initiator, sound('sound/effects/adminhelp.ogg')) + SEND_SOUND(initiator, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) to_chat(initiator, "- AdminHelp Rejected! -") to_chat(initiator, "This question may regard game mechanics or how-tos. Such questions should be asked with Mentorhelp.") diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 7d0b3568c8f..be44695e755 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -189,7 +189,7 @@ //play the receiving admin the adminhelp sound (if they have them enabled) if(recipient.prefs.toggles & PREFTOGGLE_SOUND_ADMINHELP) - SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg')) + SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) else if(holder) //sender is an admin but recipient is not. Do BIG RED TEXT @@ -204,7 +204,7 @@ admin_ticket_log(recipient, keywordparsedmsg, key_name_admin(src), null, "purple", safeSenderLogged = TRUE) //always play non-admin recipients the adminhelp sound - SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg')) + SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) //AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn if(CONFIG_GET(flag/popup_admin_pm)) @@ -327,7 +327,7 @@ window_flash(C, ignorepref = TRUE) //always play non-admin recipients the adminhelp sound - SEND_SOUND(C, 'sound/effects/adminhelp.ogg') + SEND_SOUND(C, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) C.externalreplyamount = EXTERNALREPLYCOUNT diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 4b269ea4ac8..96336835390 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -835,7 +835,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that for(var/m in GLOB.player_list) var/datum/asset/fuckywucky = get_asset_datum(/datum/asset/simple/fuckywucky) fuckywucky.send(m) - SEND_SOUND(m, 'sound/misc/fuckywucky.ogg') + SEND_SOUND(m, sound('sound/misc/fuckywucky.ogg', channel = SSsounds.random_available_channel())) to_chat(m, "") addtimer(CALLBACK(src, PROC_REF(restore_fucky_wucky)), 600) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 6cdb4f7c102..da29b4f13eb 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1125,7 +1125,7 @@ Traitors and the like can also be revived with the previous role mostly intact. else card.registered_account.account_balance = card.registered_account.account_balance - new_cost card.registered_account.bank_card_talk("[new_cost] credits deducted from your account based on performance review.") - SEND_SOUND(target, 'sound/machines/buzz-sigh.ogg') //NSV13 end + SEND_SOUND(target, sound('sound/machines/buzz-sigh.ogg', channel = SSsounds.random_available_channel())) //NSV13 end if(ADMIN_PUNISHMENT_LIGHTNING) var/turf/T = get_step(get_step(target, NORTH), NORTH) T.Beam(target, icon_state="lightning[rand(1,12)]", time = 5) diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm index eff42e0d677..63eb070800b 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -93,7 +93,7 @@ app_mind.assigned_role = "Apprentice" app_mind.special_role = "apprentice" // - SEND_SOUND(M, sound('sound/effects/magic.ogg')) + SEND_SOUND(M, sound('sound/effects/magic.ogg', channel = SSsounds.random_available_channel())) ///////////BORGS AND OPERATIVES diff --git a/code/modules/antagonists/blob/powers.dm b/code/modules/antagonists/blob/powers.dm index 1040673e8b8..ae24dc24660 100644 --- a/code/modules/antagonists/blob/powers.dm +++ b/code/modules/antagonists/blob/powers.dm @@ -189,8 +189,8 @@ blob_mobs += blobber var/mob/dead/observer/C = pick(candidates) blobber.key = C.key - SEND_SOUND(blobber, sound('sound/effects/blobattack.ogg')) - SEND_SOUND(blobber, sound('sound/effects/attackblob.ogg')) + SEND_SOUND(blobber, sound('sound/effects/blobattack.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(blobber, sound('sound/effects/attackblob.ogg', channel = SSsounds.random_available_channel())) to_chat(blobber, "You are a blobbernaut!") to_chat(blobber, "You are powerful, hard to kill, and slowly regenerate near nodes and cores, but will slowly die if not near the blob or if the factory that made you is killed.") to_chat(blobber, "You can communicate with other blobbernauts and overminds via :b") diff --git a/code/modules/antagonists/blob/structures/_blob.dm b/code/modules/antagonists/blob/structures/_blob.dm index bb49515d8f7..e75e21279c5 100644 --- a/code/modules/antagonists/blob/structures/_blob.dm +++ b/code/modules/antagonists/blob/structures/_blob.dm @@ -225,7 +225,7 @@ if(I.tool_behaviour == TOOL_ANALYZER) user.changeNext_move(CLICK_CD_MELEE) to_chat(user, "The analyzer beeps once, then reports:
") - SEND_SOUND(user, sound('sound/machines/ping.ogg')) + SEND_SOUND(user, sound('sound/machines/ping.ogg', channel = SSsounds.random_available_channel())) if(overmind) to_chat(user, "Progress to Critical Mass: [overmind.blobs_legit.len]/[overmind.blobwincount].") to_chat(user, chemeffectreport(user).Join("\n")) diff --git a/code/modules/antagonists/changeling/powers/shriek.dm b/code/modules/antagonists/changeling/powers/shriek.dm index 4a14a8a68ba..ad6274a291b 100644 --- a/code/modules/antagonists/changeling/powers/shriek.dm +++ b/code/modules/antagonists/changeling/powers/shriek.dm @@ -18,10 +18,10 @@ C.confused += 15 C.Jitter(20) else - SEND_SOUND(C, sound('sound/effects/screech.ogg')) + SEND_SOUND(C, sound('sound/effects/screech.ogg', channel = SSsounds.random_available_channel())) if(issilicon(M)) - SEND_SOUND(M, sound('sound/weapons/flash.ogg')) + SEND_SOUND(M, sound('sound/weapons/flash.ogg', channel = SSsounds.random_available_channel())) M.Paralyze(rand(75,150)) for(var/obj/machinery/light/L in range(4, user)) diff --git a/code/modules/antagonists/changeling/powers/teratoma.dm b/code/modules/antagonists/changeling/powers/teratoma.dm index f0a89f41d6f..7bab8f4da2e 100644 --- a/code/modules/antagonists/changeling/powers/teratoma.dm +++ b/code/modules/antagonists/changeling/powers/teratoma.dm @@ -34,5 +34,5 @@ var/datum/antagonist/teratoma/D = new T.mind.add_antag_datum(D) to_chat(T, "You burst out from [user]'s chest!") - SEND_SOUND(T, sound('sound/effects/blobattack.ogg')) + SEND_SOUND(T, sound('sound/effects/blobattack.ogg', channel = SSsounds.random_available_channel())) return TRUE diff --git a/code/modules/antagonists/clock_cult/clockwork_massive.dm b/code/modules/antagonists/clock_cult/clockwork_massive.dm index b1a540fffde..84f6d36e118 100644 --- a/code/modules/antagonists/clock_cult/clockwork_massive.dm +++ b/code/modules/antagonists/clock_cult/clockwork_massive.dm @@ -100,7 +100,7 @@ GLOBAL_LIST_INIT(clockwork_portals, list()) if(GLOB.gateway_opening) return GLOB.gateway_opening = TRUE - var/s = sound('sound/magic/clockwork/ark_activation_sequence.ogg') + var/s = sound('sound/magic/clockwork/ark_activation_sequence.ogg', channel = SSsounds.random_available_channel()) icon_state = "clockwork_gateway_charging" for(var/datum/mind/M in GLOB.servants_of_ratvar) SEND_SOUND(M.current, s) @@ -120,7 +120,7 @@ GLOBAL_LIST_INIT(clockwork_portals, list()) var/mob/living/servant = M.current if(!servant) continue - SEND_SOUND(servant, 'sound/machines/clockcult/ark_recall.ogg') + SEND_SOUND(servant, sound('sound/machines/clockcult/ark_recall.ogg', channel = SSsounds.random_available_channel())) /obj/structure/destructible/clockwork/massive/celestial_gateway/proc/announce_gateway() activated = TRUE @@ -132,7 +132,7 @@ GLOBAL_LIST_INIT(clockwork_portals, list()) @!$, [text2ratvar("PURGE ALL UNTRUTHS")] <&. the anomalies and destroy their source to prevent further damage to corporate property. This is \ not a drill.[grace_period ? " Estimated time of appearance: [grace_time/10] seconds. Use this time to prepare for an attack on [station_name()]." : ""]"\ ,"Central Command Higher Dimensional Affairs", 'sound/magic/clockwork/ark_activation.ogg') - sound_to_playing_players(volume = 10, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_charging.ogg', TRUE)) + sound_to_playing_players(volume = 10, channel = CHANNEL_JUSTICAR_ARK, S = sound('sound/effects/clockcult_gateway_charging.ogg', TRUE, channel = SSsounds.random_available_channel())) GLOB.ratvar_arrival_tick = world.time + 6000 + grace_time /obj/structure/destructible/clockwork/massive/celestial_gateway/proc/mass_recall(add_overlay = FALSE) @@ -150,7 +150,7 @@ GLOBAL_LIST_INIT(clockwork_portals, list()) servant_antag.forbearance = mutable_appearance('icons/effects/genetics.dmi', "servitude", -MUTATIONS_LAYER) servant.add_overlay(servant_antag.forbearance) for(var/mob/M in GLOB.player_list) - SEND_SOUND(M, 'sound/magic/clockwork/invoke_general.ogg') + SEND_SOUND(M, sound('sound/magic/clockwork/invoke_general.ogg')) /obj/structure/destructible/clockwork/massive/celestial_gateway/proc/begin_assault() priority_announce("Space-time anomalies detected near the station. Source determined to be a temporal \ @@ -243,7 +243,7 @@ GLOBAL_VAR(cult_ratvar) GLOB.cult_ratvar = src . = ..() desc = "[text2ratvar("That's Ratvar, the Clockwork Justicar. The great one has risen.")]" - SEND_SOUND(world, 'sound/effects/ratvar_reveal.ogg') + SEND_SOUND(world, sound('sound/effects/ratvar_reveal.ogg', channel = SSsounds.random_available_channel())) to_chat(world, "The bluespace veil gives way to Ratvar, his light shall shine upon all mortals!") UnregisterSignal(src, COMSIG_ATOM_BSA_BEAM) INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(trigger_clockcult_victory), src) @@ -258,13 +258,13 @@ GLOBAL_VAR(cult_ratvar) if(next_attack_tick < world.time) next_attack_tick = world.time + rand(50, 100) to_chat(world, "[pick("Reality shudders around you.","You hear the tearing of flesh.","The sound of bones cracking fills the air.")]") - SEND_SOUND(world, 'sound/magic/clockwork/ratvar_attack.ogg') + SEND_SOUND(world, sound('sound/magic/clockwork/ratvar_attack.ogg', channel = SSsounds.random_available_channel())) SpinAnimation(4, 0) for(var/mob/living/M in GLOB.player_list) shake_camera(M, 25, 6) M.Knockdown(5 * delta_time) if(prob(max(GLOB.servants_of_ratvar.len/2, 15))) - SEND_SOUND(world, 'sound/magic/demon_dies.ogg') + SEND_SOUND(world, ('sound/magic/demon_dies.ogg')) to_chat(world, "You were a fool for underestimating me...") qdel(ratvar_target) for(var/datum/mind/M as() in SSticker.mode?.cult) diff --git a/code/modules/antagonists/clock_cult/helpers/clockcult_ending.dm b/code/modules/antagonists/clock_cult/helpers/clockcult_ending.dm index de51ca0ba2f..acb9488c467 100644 --- a/code/modules/antagonists/clock_cult/helpers/clockcult_ending.dm +++ b/code/modules/antagonists/clock_cult/helpers/clockcult_ending.dm @@ -4,7 +4,7 @@ set_security_level("delta") priority_announce("Huge gravitational-energy spike detected emminating from a neutron star near your sector. Event has been determined to be survivable by 0% of life. ESTIMATED TIME UNTIL ENERGY PULSE REACHES [GLOB.station_name]: 56 SECONDS. Godspeed crew, glory to Nanotrasen. -Admiral Telvig.", "Central Command Anomolous Materials Division", 'sound/misc/bloblarm.ogg') for(var/client/C in GLOB.clients) - SEND_SOUND(C, sound('sound/misc/airraid.ogg', 1)) + SEND_SOUND(C, sound('sound/misc/airraid.ogg', 1, channel = SSsounds.random_available_channel())) sleep(500) priority_announce("Station [GLOB.station_name] is in the wa#e %o[text2ratvar("YOU WILL SEE THE LIGHT")] action imminent. Glory[text2ratvar(" TO ENG'INE")].","Central Command Anomolous Materials Division", 'sound/machines/alarm.ogg') for(var/mob/M in GLOB.player_list) @@ -19,7 +19,7 @@ M.client.color = LIGHT_COLOR_CLOCKWORK animate(M.client, color=COLOR_WHITE, time=5) SEND_SOUND(M, sound(null)) - SEND_SOUND(M, sound('sound/magic/fireball.ogg')) + SEND_SOUND(M, sound('sound/magic/fireball.ogg', channel = SSsounds.random_available_channel())) if(!is_servant_of_ratvar(M) && isliving(M)) var/mob/living/L = M L.fire_stacks = INFINITY diff --git a/code/modules/antagonists/clock_cult/helpers/clockwork_conversion_tracker.dm b/code/modules/antagonists/clock_cult/helpers/clockwork_conversion_tracker.dm index 6c3011c7a2d..91d35dfabb7 100644 --- a/code/modules/antagonists/clock_cult/helpers/clockwork_conversion_tracker.dm +++ b/code/modules/antagonists/clock_cult/helpers/clockwork_conversion_tracker.dm @@ -16,17 +16,17 @@ GLOBAL_VAR_INIT(conversion_warning_stage, CONVERSION_WARNING_NONE) if(ishuman(M) && (servant_type == /datum/antagonist/servant_of_ratvar) && GLOB.critical_servant_count) if((GLOB.critical_servant_count)/2 < GLOB.human_servants_of_ratvar.len) if(GLOB.conversion_warning_stage < CONVERSION_WARNING_HALFWAY) - send_sound_to_servants(sound('sound/magic/clockwork/scripture_tier_up.ogg')) + send_sound_to_servants(sound('sound/magic/clockwork/scripture_tier_up.ogg', channel = SSsounds.random_available_channel())) hierophant_message("Rat'var's influence is growing. The Ark will be torn open if [GLOB.critical_servant_count - GLOB.human_servants_of_ratvar.len] more minds are converted to the faith of Rat'var.", span="") GLOB.conversion_warning_stage = CONVERSION_WARNING_HALFWAY else if((3/4) * GLOB.critical_servant_count < GLOB.human_servants_of_ratvar.len) if(GLOB.conversion_warning_stage < CONVERSION_WARNING_THREEQUARTERS) - send_sound_to_servants(sound('sound/magic/clockwork/scripture_tier_up.ogg')) + send_sound_to_servants(sound('sound/magic/clockwork/scripture_tier_up.ogg', channel = SSsounds.random_available_channel())) hierophant_message("You feel the boundary between reality and fiction lessen as the Ark sparks with an arcane energy.
The Ark will be torn open if [GLOB.critical_servant_count - GLOB.human_servants_of_ratvar.len] more minds are converted to the faith of Rat'var.", span="", use_sanitisation=FALSE) GLOB.conversion_warning_stage = CONVERSION_WARNING_THREEQUARTERS else if(GLOB.critical_servant_count-1 == GLOB.human_servants_of_ratvar.len) if(GLOB.conversion_warning_stage < CONVERSION_WARNING_CRITIAL) - send_sound_to_servants(sound('sound/magic/clockwork/scripture_tier_up.ogg')) + send_sound_to_servants(sound('sound/magic/clockwork/scripture_tier_up.ogg', channel = SSsounds.random_available_channel())) hierophant_message("The internal cogs of the Ark begin spinning, ready for activation.
Upon the next conversion, the dimensional barrier will become too weak for the Celestial Gateway to remain closed and it will be forced open.", span="", use_sanitisation=FALSE) GLOB.conversion_warning_stage = CONVERSION_WARNING_CRITIAL return M.mind.add_antag_datum(antagdatum, team) @@ -58,7 +58,7 @@ GLOBAL_VAR_INIT(conversion_warning_stage, CONVERSION_WARNING_NONE) if(GLOB.human_servants_of_ratvar.len < GLOB.critical_servant_count) return FALSE for(var/datum/mind/M in GLOB.servants_of_ratvar) - SEND_SOUND(M.current, 'sound/magic/clockwork/scripture_tier_up.ogg') + SEND_SOUND(M.current, sound('sound/magic/clockwork/scripture_tier_up.ogg', channel = SSsounds.random_available_channel())) hierophant_message("The Ark's many cogs suddenly whir to life, steam gushing out of its many crevices; it will open in 5 minutes!", null, "") addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(force_open_ark)), 3000) GLOB.ark_transport_triggered = TRUE diff --git a/code/modules/antagonists/clock_cult/mobs/eminence.dm b/code/modules/antagonists/clock_cult/mobs/eminence.dm index 506d3084e9d..e1b03b63316 100644 --- a/code/modules/antagonists/clock_cult/mobs/eminence.dm +++ b/code/modules/antagonists/clock_cult/mobs/eminence.dm @@ -180,7 +180,7 @@ var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = GLOB.celestial_gateway if(G) user.abstract_move(get_turf(G)) - SEND_SOUND(user, sound('sound/magic/magic_missile.ogg')) + SEND_SOUND(user, sound('sound/magic/magic_missile.ogg', channel = SSsounds.random_available_channel())) flash_color(user, flash_color = "#AF0AAF", flash_time = 25) else to_chat(user, "There is no Ark!") @@ -194,7 +194,7 @@ /obj/effect/proc_holder/spell/targeted/eminence/station/cast(mob/living/user) if(!is_station_level(user.z)) user.abstract_move(get_turf(pick(GLOB.generic_event_spawns))) - SEND_SOUND(user, sound('sound/magic/magic_missile.ogg')) + SEND_SOUND(user, sound('sound/magic/magic_missile.ogg', channel = SSsounds.random_available_channel())) flash_color(user, flash_color = "#AF0AAF", flash_time = 25) else to_chat(user, "You're already on the station!") @@ -223,7 +223,7 @@ to_chat(user, "They are out of your reach!") return user.forceMove(get_turf(T)) - SEND_SOUND(user, sound('sound/magic/magic_missile.ogg')) + SEND_SOUND(user, sound('sound/magic/magic_missile.ogg', channel = SSsounds.random_available_channel())) flash_color(user, flash_color = "#AF0AAF", flash_time = 25) //=====Mass Recall===== diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 0f8cf5cefed..bc2b2d0e4b5 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -273,7 +273,7 @@ if(ratio > CULT_RISEN && !cult_risen) for(var/datum/mind/B in members) if(B.current) - SEND_SOUND(B.current, 'sound/hallucinations/i_see_you2.ogg') + SEND_SOUND(B.current, sound( 'sound/hallucinations/i_see_you2.ogg', channel = SSsounds.random_available_channel())) to_chat(B.current, "The veil weakens as your cult grows, your eyes begin to glow...") addtimer(CALLBACK(src, PROC_REF(rise), B.current), 200) cult_risen = TRUE @@ -281,7 +281,7 @@ if(ratio > CULT_ASCENDENT && !cult_ascendent) for(var/datum/mind/B in members) if(B.current) - SEND_SOUND(B.current, 'sound/hallucinations/im_here1.ogg') + SEND_SOUND(B.current, sound('sound/hallucinations/im_here1.ogg', channel = SSsounds.random_available_channel())) to_chat(B.current, "Your cult is ascendent and the red harvest approaches - you cannot hide your true nature for much longer!!") addtimer(CALLBACK(src, PROC_REF(ascend), B.current), 200) cult_ascendent = TRUE diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index e28c1220f3a..a82104ecf7c 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -100,13 +100,13 @@ if(B.current) B.current.update_action_buttons_icon() if(!B.current.incapacitated()) - SEND_SOUND(B.current, 'sound/hallucinations/im_here1.ogg') + SEND_SOUND(B.current, sound('sound/hallucinations/im_here1.ogg', channel = SSsounds.random_available_channel())) to_chat(B.current, "Acolyte [Nominee] has asserted that [Nominee.p_theyre()] worthy of leading the cult. A vote will be called shortly.") sleep(100) var/list/asked_cultists = list() for(var/datum/mind/B in team.members) if(B.current && B.current != Nominee && !B.current.incapacitated()) - SEND_SOUND(B.current, 'sound/magic/exit_blood.ogg') + SEND_SOUND(B.current, sound('sound/magic/exit_blood.ogg', channel = SSsounds.random_available_channel())) asked_cultists += B.current var/list/yes_voters = pollCandidates("[Nominee] seeks to lead your cult, do you support [Nominee.p_them()]?", poll_time = 30 SECONDS, group = asked_cultists) if(QDELETED(Nominee) || Nominee.incapacitated()) @@ -333,7 +333,7 @@ desc = "Marks whatever you are orbitting - for the entire cult to track." button_icon_state = "cult_mark" owner.update_action_buttons_icon() - SEND_SOUND(owner, 'sound/magic/enter_blood.ogg') + SEND_SOUND(owner, sound('sound/magic/enter_blood.ogg', channel = SSsounds.random_available_channel())) to_chat(owner,"Your previous mark is gone - you are now ready to create a new blood mark.") /datum/action/innate/cult/ghostmark/Activate() @@ -448,7 +448,7 @@ if(!attached_action.throwing) attached_action.throwing = TRUE attached_action.throwee = target - SEND_SOUND(ranged_ability_user, sound('sound/weapons/thudswoosh.ogg')) + SEND_SOUND(ranged_ability_user, sound('sound/weapons/thudswoosh.ogg', channel = SSsounds.random_available_channel())) to_chat(ranged_ability_user,"You reach through the veil with your mind's eye and seize [target]!") return else diff --git a/code/modules/antagonists/cult/narsie.dm b/code/modules/antagonists/cult/narsie.dm index fc9079b194e..81366cd2f13 100644 --- a/code/modules/antagonists/cult/narsie.dm +++ b/code/modules/antagonists/cult/narsie.dm @@ -107,7 +107,7 @@ if(next_attack_tick < world.time) next_attack_tick = world.time + rand(50, 100) to_chat(world, "[pick("You hear the scratching of cogs.","You hear the clanging of pipes.","You feel your bones start to rust...")]") - SEND_SOUND(world, 'sound/magic/clockwork/narsie_attack.ogg') + SEND_SOUND(world, sound('sound/magic/clockwork/narsie_attack.ogg', channel = SSsounds.random_available_channel())) SpinAnimation(4, 0) for(var/mob/living/M in GLOB.player_list) shake_camera(M, 25, 6) diff --git a/code/modules/antagonists/morph/morph.dm b/code/modules/antagonists/morph/morph.dm index e88a891f1b1..2b58bd7cd35 100644 --- a/code/modules/antagonists/morph/morph.dm +++ b/code/modules/antagonists/morph/morph.dm @@ -292,7 +292,7 @@ player_mind.special_role = "Morph" player_mind.add_antag_datum(/datum/antagonist/morph) to_chat(S, S.playstyle_string) - SEND_SOUND(S, sound('sound/magic/mutate.ogg')) + SEND_SOUND(S, sound('sound/magic/mutate.ogg', channel = SSsounds.random_available_channel())) message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a morph by an event.") log_game("[key_name(S)] was spawned as a morph by an event.") spawned_mobs += S diff --git a/code/modules/antagonists/ninja/ninja.dm b/code/modules/antagonists/ninja/ninja.dm index b697e6684bd..dc70193760c 100644 --- a/code/modules/antagonists/ninja/ninja.dm +++ b/code/modules/antagonists/ninja/ninja.dm @@ -93,7 +93,7 @@ /datum/antagonist/ninja/greet() - SEND_SOUND(owner.current, sound('sound/effects/ninja_greeting.ogg')) + SEND_SOUND(owner.current, sound('sound/effects/ninja_greeting.ogg', channel = SSsounds.random_available_channel())) to_chat(owner.current, "I am an elite mercenary assassin of the mighty Spider Clan. A SPACE NINJA!") to_chat(owner.current, "Surprise is my weapon. Shadows are my armor. Without them, I am nothing. (initialize your suit by right clicking on it, to use abilities like stealth)!") owner.announce_objectives() diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index 02370743481..2a916d72ce0 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -111,7 +111,7 @@ generated_objectives_and_spells = TRUE mind.assigned_role = ROLE_REVENANT mind.special_role = ROLE_REVENANT - SEND_SOUND(src, sound('sound/effects/ghost.ogg')) + SEND_SOUND(src, sound('sound/effects/ghost.ogg', channel = SSsounds.random_available_channel())) mind.add_antag_datum(/datum/antagonist/revenant) //Life, Stat, Hud Updates, and Say diff --git a/code/modules/antagonists/slaughter/slaughterevent.dm b/code/modules/antagonists/slaughter/slaughterevent.dm index 9c2fdaf3d13..512b4d2457e 100644 --- a/code/modules/antagonists/slaughter/slaughterevent.dm +++ b/code/modules/antagonists/slaughter/slaughterevent.dm @@ -41,7 +41,7 @@ player_mind.add_antag_datum(/datum/antagonist/slaughter) to_chat(S, S.playstyle_string) to_chat(S, "You are currently not currently in the same plane of existence as the station. Blood Crawl near a blood pool to manifest.") - SEND_SOUND(S, 'sound/magic/demon_dies.ogg') + SEND_SOUND(S, sound('sound/magic/demon_dies.ogg', channel = SSsounds.random_available_channel())) message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a slaughter demon by an event.") log_game("[key_name(S)] was spawned as a slaughter demon by an event.") spawned_mobs += S diff --git a/code/modules/antagonists/space_dragon/space_dragon.dm b/code/modules/antagonists/space_dragon/space_dragon.dm index 68ad2195fab..f1038f48ae6 100644 --- a/code/modules/antagonists/space_dragon/space_dragon.dm +++ b/code/modules/antagonists/space_dragon/space_dragon.dm @@ -14,7 +14,7 @@ to_chat(owner, "Attacking dead bodies will allow me to gib them to restore health.") to_chat(owner, "From the wizard's writings, he had been studying this station and its hierarchy. From this, I know who leads the station, and will kill them so the station underlings see me as their new leader.") owner.announce_objectives() - SEND_SOUND(owner.current, sound('sound/magic/demon_attack1.ogg')) + SEND_SOUND(owner.current, sound('sound/magic/demon_attack1.ogg', channel = SSsounds.random_available_channel())) owner.current.client?.tgui_panel?.give_antagonist_popup("Space Dragon", "Once you were a space carp, until a powerful wizard transformed you. Use your new-found powers to complete your goals.") diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 02396b7388b..fb863f71820 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -381,7 +381,7 @@ result += "The [special_role_text] was successful!" else result += "The [special_role_text] has failed!" - SEND_SOUND(owner.current, 'sound/ambience/ambifailure.ogg') + SEND_SOUND(owner.current, sound('sound/ambience/ambifailure.ogg', channel = SSsounds.random_available_channel())) return result.Join("
") diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 4deae8c6adc..8950058c652 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -271,7 +271,7 @@ to_chat(M, "[user.p_theyre(TRUE)] your master now, assist [user.p_them()] even if it costs you your new life!") equip_roman_skeleton(M) - + log_combat(user, M, "used a necromantic stone to reanimate") desc = "A shard capable of resurrecting humans as skeleton thralls[unlimited ? "." : ", [spooky_scaries.len]/3 active thralls."]" @@ -333,7 +333,7 @@ GiveHint(target) else if(istype(I, /obj/item/bikehorn)) to_chat(target, "HONK") - SEND_SOUND(target, 'sound/items/airhorn.ogg') + SEND_SOUND(target, sound('sound/items/airhorn.ogg', channel = SSsounds.random_available_channel())) target.adjustEarDamage(0,3) GiveHint(target) cooldown = world.time +cooldown_time diff --git a/code/modules/events/wizard/imposter.dm b/code/modules/events/wizard/imposter.dm index f69d962ce0c..28139a12c32 100644 --- a/code/modules/events/wizard/imposter.dm +++ b/code/modules/events/wizard/imposter.dm @@ -37,4 +37,4 @@ I.mind.special_role = "imposter" // I.log_message("is an imposter!", LOG_ATTACK, color="red") //? - SEND_SOUND(I, sound('sound/effects/magic.ogg')) + SEND_SOUND(I, sound('sound/effects/magic.ogg', channel = SSsounds.random_available_channel())) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 223804ae917..40cdd4a2fca 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -884,7 +884,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( if("blob alert") to_chat(target, "

Biohazard Alert

") to_chat(target, "

Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.

") - SEND_SOUND(target, SSstation.announcer.event_sounds[ANNOUNCER_OUTBREAK5]) + SEND_SOUND(target, sound(SSstation.announcer.event_sounds[ANNOUNCER_OUTBREAK5], channel = SSsounds.random_available_channel())) if("ratvar") target.playsound_local(target, 'sound/machines/clockcult/ark_deathrattle.ogg', 50, FALSE, pressure_affected = FALSE) target.playsound_local(target, 'sound/effects/clockcult_gateway_disrupted.ogg', 50, FALSE, pressure_affected = FALSE) @@ -893,17 +893,17 @@ GLOBAL_LIST_INIT(hallucination_list, list( if("shuttle dock") to_chat(target, "

Priority Announcement

") to_chat(target, "

The Emergency Shuttle has docked with the station. You have 3 minutes to board the Emergency Shuttle.

") - SEND_SOUND(target, SSstation.announcer.event_sounds[ANNOUNCER_SHUTTLEDOCK]) + SEND_SOUND(target, sound(SSstation.announcer.event_sounds[ANNOUNCER_SHUTTLEDOCK], channel = SSsounds.random_available_channel())) if("malf ai") //AI is doomsdaying! to_chat(target, "

Anomaly Alert

") to_chat(target, "

Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.

") - SEND_SOUND(target, SSstation.announcer.event_sounds[ANNOUNCER_AIMALF]) + SEND_SOUND(target, sound(SSstation.announcer.event_sounds[ANNOUNCER_AIMALF], channel = SSsounds.random_available_channel())) if("meteors") //Meteors inbound! to_chat(target, "

Meteor Alert

") to_chat(target, "

Meteors have been detected on collision course with the station.

") - SEND_SOUND(target, SSstation.announcer.event_sounds[ANNOUNCER_METEORS]) + SEND_SOUND(target, sound(SSstation.announcer.event_sounds[ANNOUNCER_METEORS], channel = SSsounds.random_available_channel())) if("supermatter") - SEND_SOUND(target, 'sound/magic/charge.ogg') + SEND_SOUND(target, sound('sound/magic/charge.ogg', channel = SSsounds.random_available_channel())) to_chat(target, "You feel reality distort for a moment...") /datum/hallucination/hudscrew diff --git a/code/modules/guardian/abilities/major/time.dm b/code/modules/guardian/abilities/major/time.dm index fd6d828be87..f9df443315a 100644 --- a/code/modules/guardian/abilities/major/time.dm +++ b/code/modules/guardian/abilities/major/time.dm @@ -26,7 +26,7 @@ for(var/mob/living/simple_animal/hostile/guardian/GG in G.summoner.current.hasparasites()) immune += GG for(var/mob/living/L in immune) - SEND_SOUND(L, sound('sound/magic/timeparadox2.ogg')) + SEND_SOUND(L, sound('sound/magic/timeparadox2.ogg', channel = SSsounds.random_available_channel())) if(isturf(L.loc)) var/mob/living/simple_animal/hostile/illusion/doppelganger/E = new(L.loc) E.set_lifetime(60) diff --git a/code/modules/interview/interview.dm b/code/modules/interview/interview.dm index 14975aaff45..59d04e693ed 100644 --- a/code/modules/interview/interview.dm +++ b/code/modules/interview/interview.dm @@ -62,7 +62,7 @@ log_admin_private("[key_name(approved_by)] has approved interview #[id] for [owner_ckey][!owner ? "(DC)": ""].") message_admins("[key_name(approved_by)] has approved interview #[id] for [owner_ckey][!owner ? "(DC)": ""].") if (owner) - SEND_SOUND(owner, sound('sound/effects/adminhelp.ogg')) + SEND_SOUND(owner, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) to_chat(owner, "-- Interview Update --" \ + "\nYour interview was approved, you will now be reconnected in 5 seconds.") addtimer(CALLBACK(src, PROC_REF(reconnect_owner)), 5 SECONDS) @@ -84,14 +84,14 @@ if(can_retry) addtimer(CALLBACK(GLOB.interviews, TYPE_PROC_REF(/datum/interview_manager, release_from_cooldown), owner_ckey), 180 SECONDS) if (owner) - SEND_SOUND(owner, sound('sound/effects/adminhelp.ogg')) + SEND_SOUND(owner, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) to_chat(owner, "-- Interview Update --" \ + "\nUnfortunately your interview was denied. Please try submitting another questionnaire." \ + " You may do this in three minutes.") else addtimer(CALLBACK(GLOB.interviews, TYPE_PROC_REF(/datum/interview_manager, give_the_boot), owner_ckey), 30 SECONDS) if (owner) - SEND_SOUND(owner, sound('sound/effects/adminhelp.ogg')) + SEND_SOUND(owner, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) to_chat(owner, "-- Interview Update --" \ + "\nUnfortunately your interview was denied. You will be removed for the round's duration." \ + " You will be kicked in 30 seconds.") diff --git a/code/modules/interview/interview_manager.dm b/code/modules/interview/interview_manager.dm index d8a8c8cbd11..bc687c553b7 100644 --- a/code/modules/interview/interview_manager.dm +++ b/code/modules/interview/interview_manager.dm @@ -171,7 +171,7 @@ GLOBAL_DATUM_INIT(interviews, /datum/interview_manager, new) to_chat(to_queue.owner, "No active admins are online, your interview's submission was sent through TGS to admins who are available. This may use IRC or Discord.") for(var/client/X as() in GLOB.admins) if(X.prefs.toggles & PREFTOGGLE_SOUND_ADMINHELP) - SEND_SOUND(X, sound('sound/effects/adminhelp.ogg')) + SEND_SOUND(X, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) window_flash(X, ignorepref = TRUE) to_chat(X, "Interview for [ckey] enqueued for review. Current position in queue: [to_queue.pos_in_queue]") diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index 6886f7f63a3..118c12a7c69 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -1180,7 +1180,7 @@ C.equip_to_slot_or_del(new /obj/item/clothing/glasses/monocle (), ITEM_SLOT_EYES) C.revive(full_heal = TRUE) - SEND_SOUND(C, sound('sound/misc/capitialism.ogg')) + SEND_SOUND(C, sound('sound/misc/capitialism.ogg', channel = CHANNEL_AMBIENT_MUSIC)) C.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock ()) RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) @@ -1223,7 +1223,7 @@ C.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka (), ITEM_SLOT_HEAD) C.revive(full_heal = TRUE) - SEND_SOUND(C, sound('sound/misc/Russian_Anthem_chorus.ogg')) + SEND_SOUND(C, sound('sound/misc/Russian_Anthem_chorus.ogg', channel = CHANNEL_AMBIENT_MUSIC)) C.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock ()) RegisterSignal(C, COMSIG_MOB_SAY, PROC_REF(handle_speech)) diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index 4e98524fa88..19107d764d8 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -154,7 +154,7 @@ old_owner.set_species(/datum/species/shadow) Insert(old_owner, HEART_SPECIAL_SHADOWIFY) to_chat(owner, "You feel the shadows invade your skin, leaping into the center of your chest! You're alive!") - SEND_SOUND(owner, sound('sound/effects/ghost.ogg')) + SEND_SOUND(owner, sound('sound/effects/ghost.ogg', channel = SSsounds.random_available_channel())) owner.visible_message("[owner] staggers to [owner.p_their()] feet!") playsound(owner, 'sound/hallucinations/far_noise.ogg', 50, 1) respawn_progress = 0 diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index e5b7cec1a87..138712e8d5d 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -426,7 +426,7 @@ orbit_link = " (Orbit)" to_chat(O, "[message][(enter_link) ? " [enter_link]" : ""][orbit_link]") if(ghost_sound) - SEND_SOUND(O, sound(ghost_sound, volume = notify_volume)) + SEND_SOUND(O, sound(ghost_sound, volume = notify_volume, channel = SSsounds.random_available_channel())) if(flashwindow) window_flash(O.client) if(source) diff --git a/code/modules/modular_computers/file_system/programs/borg_monitor.dm b/code/modules/modular_computers/file_system/programs/borg_monitor.dm index da755a19bf4..259ab90a2dd 100644 --- a/code/modules/modular_computers/file_system/programs/borg_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/borg_monitor.dm @@ -80,10 +80,10 @@ to_chat(usr, "

Message to [R] (as [sender_name]) -- \"[message]\"
") computer.send_sound() to_chat(R, "

Message from [sender_name] -- \"[message]\"
") - SEND_SOUND(R, 'sound/machines/twobeep_high.ogg') + SEND_SOUND(R, sound('sound/machines/twobeep_high.ogg', channel = SSsounds.random_available_channel())) if(R.connected_ai) to_chat(R.connected_ai, "

Message from [sender_name] to [R] -- \"[message]\"
") - SEND_SOUND(R.connected_ai, 'sound/machines/twobeep_high.ogg') + SEND_SOUND(R.connected_ai, sound('sound/machines/twobeep_high.ogg', channel = SSsounds.random_available_channel())) R.logevent("Message from [sender_name] -- \"[message]\"") usr.log_talk(message, LOG_PDA, tag="Cyborg Monitor Program: ID name \"[sender_name]\" to [R]") return TRUE diff --git a/code/modules/paperwork/fax_manager.dm b/code/modules/paperwork/fax_manager.dm index f2c4e7a6d01..4368ba1dd5a 100644 --- a/code/modules/paperwork/fax_manager.dm +++ b/code/modules/paperwork/fax_manager.dm @@ -133,7 +133,7 @@ GLOBAL_DATUM_INIT(fax_manager, /datum/fax_manager, new) to_chat(GLOB.admins, msg) for(var/client/admin in GLOB.admins) if((admin.prefs.chat_toggles & CHAT_PRAYER) && (admin.prefs.toggles & PREFTOGGLE_SOUND_PRAYERS)) - SEND_SOUND(admin, sound('sound/items/poster_being_created.ogg')) + SEND_SOUND(admin, sound('sound/items/poster_being_created.ogg', channel = SSsounds.random_available_channel())) // A special piece of paper for the administrator that will open the interface no matter what. /obj/item/paper/request/ui_status() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index a2a1664ef39..e61ad1ab7dd 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -1208,11 +1208,11 @@ return transfer_in_progress = TRUE user.visible_message("[user] slots [card] into [src]...", "Transfer process initiated. Sending request for AI approval...") - playsound(src, 'sound/machines/click.ogg', 50, 1) - SEND_SOUND(occupier, sound('sound/misc/notice2.ogg')) //To alert the AI that someone's trying to card them if they're tabbed out + playsound(src, 'sound/machines/click.ogg', 50, 1, channel = SSsounds.random_available_channel()) + SEND_SOUND(occupier, sound('sound/misc/notice2.ogg', channel = SSsounds.random_available_channel())) //To alert the AI that someone's trying to card them if they're tabbed out if(alert(occupier, "[user] is attempting to transfer you to \a [card.name]. Do you consent to this?", "APC Transfer", "Yes - Transfer Me", "No - Keep Me Here") == "No - Keep Me Here") to_chat(user, "AI denied transfer request. Process terminated.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1) + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1, channel = SSsounds.random_available_channel()) transfer_in_progress = FALSE return if(user.loc != T) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index b3864a3116c..8d8aa4147ae 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -522,7 +522,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) visible_message("[src] is consumed by the singularity!") for(var/mob/M in GLOB.player_list) if(M.get_virtual_z_level() == get_virtual_z_level()) - SEND_SOUND(M, 'sound/effects/supermatter.ogg') //everyone goan know bout this + SEND_SOUND(M, sound('sound/effects/supermatter.ogg', channel = SSsounds.random_available_channel())) //everyone goan know bout this to_chat(M, "A horrible screeching fills your ears, and a wave of dread washes over you...") qdel(src) return gain diff --git a/code/modules/power/supermatter/supermatter_delamination.dm b/code/modules/power/supermatter/supermatter_delamination.dm index 172c138e552..8bcf4238a56 100644 --- a/code/modules/power/supermatter/supermatter_delamination.dm +++ b/code/modules/power/supermatter/supermatter_delamination.dm @@ -52,7 +52,7 @@ for(var/mob/M in GLOB.player_list) if(M.get_virtual_z_level() == supermatter_z) - SEND_SOUND(M, 'sound/magic/charge.ogg') + SEND_SOUND(M, sound('sound/magic/charge.ogg', channel = SSsounds.random_available_channel())) to_chat(M, "You feel reality distort for a moment...") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "delam", /datum/mood_event/delam) diff --git a/code/modules/requests/request_manager.dm b/code/modules/requests/request_manager.dm index 6c3c132b140..d0ffb3b2283 100644 --- a/code/modules/requests/request_manager.dm +++ b/code/modules/requests/request_manager.dm @@ -54,7 +54,7 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) request_for_client(C, REQUEST_PRAYER, message) for(var/client/admin in GLOB.admins) if(is_chaplain && admin.prefs.chat_toggles & CHAT_PRAYER && admin.prefs.toggles & PREFTOGGLE_SOUND_PRAYERS) - SEND_SOUND(admin, sound('sound/effects/pray.ogg')) + SEND_SOUND(admin, sound('sound/effects/pray.ogg', channel = SSsounds.random_available_channel())) /** * Creates a request for a Centcom message diff --git a/code/modules/shuttle/super_cruise/orbital_poi_generator/loot/alien_artifact.dm b/code/modules/shuttle/super_cruise/orbital_poi_generator/loot/alien_artifact.dm index dd26bf9e873..502db3ce831 100644 --- a/code/modules/shuttle/super_cruise/orbital_poi_generator/loot/alien_artifact.dm +++ b/code/modules/shuttle/super_cruise/orbital_poi_generator/loot/alien_artifact.dm @@ -480,7 +480,7 @@ GLOBAL_LIST_EMPTY(destabliization_exits) return if(world.time < next_use_time) return - SEND_SOUND(world, 'sound/magic/repulse.ogg') + SEND_SOUND(world, sound('sound/magic/repulse.ogg', channel = SSsounds.random_available_channel())) next_use_time = world.time + cooldown var/turf/T = get_turf(pulser) log_attack("[key_name_admin(pulser)] activated an insanity pulse at [COORD(T)]. [first_time ? " (Effects were unknown)" : " (Artifact had been activated before)"]") diff --git a/code/modules/spells/spell_types/knock.dm b/code/modules/spells/spell_types/knock.dm index 3a3a1a9213c..fa6d47270ef 100644 --- a/code/modules/spells/spell_types/knock.dm +++ b/code/modules/spells/spell_types/knock.dm @@ -13,7 +13,7 @@ action_icon_state = "knock" /obj/effect/proc_holder/spell/aoe_turf/knock/cast(list/targets,mob/user = usr) - SEND_SOUND(user, sound('sound/magic/knock.ogg')) + SEND_SOUND(user, sound('sound/magic/knock.ogg', channel = SSsounds.random_available_channel())) for(var/turf/T in targets) for(var/obj/machinery/door/door in T.contents) INVOKE_ASYNC(src, PROC_REF(open_door), door) diff --git a/code/modules/spells/spell_types/mind_transfer.dm b/code/modules/spells/spell_types/mind_transfer.dm index 799bd7b48bd..2ba5cabe050 100644 --- a/code/modules/spells/spell_types/mind_transfer.dm +++ b/code/modules/spells/spell_types/mind_transfer.dm @@ -103,6 +103,6 @@ Also, you never added distance checking after target is selected. I've went ahea //Here we knock both mobs out for a time. caster.Unconscious(unconscious_amount_caster) victim.Unconscious(unconscious_amount_victim) - SEND_SOUND(caster, sound('sound/magic/mandswap.ogg')) - SEND_SOUND(victim, sound('sound/magic/mandswap.ogg'))// only the caster and victim hear the sounds, that way no one knows for sure if the swap happened + SEND_SOUND(caster, sound('sound/magic/mandswap.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(victim, sound('sound/magic/mandswap.ogg', channel = SSsounds.random_available_channel()))// only the caster and victim hear the sounds, that way no one knows for sure if the swap happened return TRUE diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm index 173b47a8529..ce6f297e945 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -41,7 +41,7 @@ deaf = max(deaf - 1, 0) if(prob(damage / 20) && (damage > low_threshold)) adjustEarDamage(0, 4) - SEND_SOUND(C, sound('sound/weapons/flash_ring.ogg')) + SEND_SOUND(C, sound('sound/weapons/flash_ring.ogg', channel = SSsounds.random_available_channel())) to_chat(C, "The ringing in your ears grows louder, blocking out any external noises for a moment.") else if((organ_flags & ORGAN_FAILING) && (deaf == 0)) deaf = 1 //stop being not deaf you deaf idiot diff --git a/code/modules/tgui_input/specialized/tgui_input_pda_message.dm b/code/modules/tgui_input/specialized/tgui_input_pda_message.dm index a0eee44dd0e..6ed0e5bec18 100644 --- a/code/modules/tgui_input/specialized/tgui_input_pda_message.dm +++ b/code/modules/tgui_input/specialized/tgui_input_pda_message.dm @@ -179,7 +179,7 @@ playsound(src_console, 'sound/machines/terminal_success.ogg', 15, TRUE) else usr.balloon_alert(usr, "photo selected.") - SEND_SOUND(usr, 'sound/machines/terminal_success.ogg') + SEND_SOUND(usr, sound('sound/machines/terminal_success.ogg', channel = SSsounds.random_available_channel())) else if(src_console) src_console.balloon_alert(usr, "no photo identified.") diff --git a/nsv13/code/controllers/subsystem/starsystem.dm b/nsv13/code/controllers/subsystem/starsystem.dm index ee6b5aa0940..514029a98d2 100644 --- a/nsv13/code/controllers/subsystem/starsystem.dm +++ b/nsv13/code/controllers/subsystem/starsystem.dm @@ -54,7 +54,7 @@ SUBSYSTEM_DEF(star_system) if(new_announcements) for(var/mob/M in GLOB.player_list) if(!isnewplayer(M) && M.can_hear() && (M.client.prefs.toggles & PREFTOGGLE_SOUND_ANNOUNCEMENTS)) - SEND_SOUND(M, sound('sound/misc/notice2.ogg')) + SEND_SOUND(M, sound('sound/misc/notice2.ogg', channel = SSsounds.random_available_channel())) next_combat_cycle = world.time + COMBAT_CYCLE_INTERVAL for(var/datum/faction/F in factions) diff --git a/nsv13/code/modules/munitions/ammunition/countermeasure_ammo.dm b/nsv13/code/modules/munitions/ammunition/countermeasure_ammo.dm index c2ef14c75dc..a37dd68346b 100644 --- a/nsv13/code/modules/munitions/ammunition/countermeasure_ammo.dm +++ b/nsv13/code/modules/munitions/ammunition/countermeasure_ammo.dm @@ -49,7 +49,7 @@ if(CD.obj_integrity <= 0) //check to see if the dispenser is broken if(prob(85)) to_chat(usr, "Error detected in Countermeasure System! Process Aborted!") - SEND_SOUND(usr, sound('sound/effects/alert.ogg', repeat = FALSE, wait = 0, volume = 100)) + SEND_SOUND(usr, sound('sound/effects/alert.ogg', repeat = FALSE, wait = 0, volume = 100, channel = SSsounds.random_available_channel())) return CD.charges -= 1 for(var/I = 0, I < 3, I++) //launch three chaff diff --git a/nsv13/code/modules/overmap/ai-skynet.dm b/nsv13/code/modules/overmap/ai-skynet.dm index 1a656871be7..53e49f6a713 100644 --- a/nsv13/code/modules/overmap/ai-skynet.dm +++ b/nsv13/code/modules/overmap/ai-skynet.dm @@ -441,7 +441,7 @@ Adding tasks is easy! Just define a datum for it. /obj/structure/overmap/proc/deliver_package(var/mob/living/user, var/datum/overmap_objective/cargo/O) if ( !O?.delivered_package ) var/obj/structure/overmap/MO = SSstar_system.find_main_overmap() - SEND_SOUND(user, 'nsv13/sound/effects/ship/freespace2/computer/textdraw.wav') + SEND_SOUND(user, sound('nsv13/sound/effects/ship/freespace2/computer/textdraw.wav', channel = SSsounds.random_available_channel())) MO.hail( pick( list( "Message received, we are delivering your package for transfer now.", "Understood, delivering the cargo.", @@ -543,7 +543,7 @@ Adding tasks is easy! Just define a datum for it. /obj/structure/overmap/proc/reject_unexpected_shipment( var/datum/freight_delivery_receipt/receipt ) if(receipt?.vessel) if ( returns_rejected_cargo ) - SEND_SOUND(receipt.courier, 'nsv13/sound/effects/ship/freespace2/computer/textdraw.wav') + SEND_SOUND(receipt.courier, sound('nsv13/sound/effects/ship/freespace2/computer/textdraw.wav', channel = SSsounds.random_available_channel())) receipt.vessel.hail( pick( list( "We're not expecting any shipments at this time. Please give us some time to arrange the return shipment.", "We're not expecting any shipments, please don't send us your trash.", @@ -552,7 +552,7 @@ Adding tasks is easy! Just define a datum for it. ) ), src) addtimer(CALLBACK(src, PROC_REF(return_shipment), receipt), speed_cargo_return) else - SEND_SOUND(receipt.courier, 'nsv13/sound/effects/ship/freespace2/computer/textdraw.wav') + SEND_SOUND(receipt.courier, sound('nsv13/sound/effects/ship/freespace2/computer/textdraw.wav', channel = SSsounds.random_available_channel())) receipt.vessel.hail( pick( list( "We're not expecting any shipments at this time. We hope you weren't attached to this.", "We're not expecting any shipments, but our assistants could make use of this.", @@ -563,7 +563,7 @@ Adding tasks is easy! Just define a datum for it. /obj/structure/overmap/proc/reject_incomplete_shipment( var/datum/freight_delivery_receipt/receipt ) if(receipt?.vessel) // Won't check for returns_rejected_cargo if the station is actually expecting cargo, but the torp they receive is incorrect - SEND_SOUND(receipt.courier, 'nsv13/sound/effects/ship/freespace2/computer/textdraw.wav') + SEND_SOUND(receipt.courier, sound('nsv13/sound/effects/ship/freespace2/computer/textdraw.wav', channel = SSsounds.random_available_channel())) receipt.vessel.hail( pick( list( "Some of the cargo contents are missing. We're sending the crates back, please double check your crates and try again.", "We're not expecting this kind of shipment. We will return it as soon as we can.", @@ -574,7 +574,7 @@ Adding tasks is easy! Just define a datum for it. /obj/structure/overmap/proc/approve_shipment( var/datum/freight_delivery_receipt/receipt ) if(receipt?.vessel) - SEND_SOUND(receipt.courier, 'nsv13/sound/effects/ship/freespace2/computer/textdraw.wav') + SEND_SOUND(receipt.courier, sound('nsv13/sound/effects/ship/freespace2/computer/textdraw.wav', channel = SSsounds.random_available_channel())) receipt.vessel.hail( "Thank you for delivering this cargo. We have marked the supply request as received.", src) addtimer(CALLBACK(src, PROC_REF(return_approved_form), receipt), speed_cargo_return) SSovermap_mode.update_reminder(objective=TRUE) // Completing any valid delivery resets the timer diff --git a/nsv13/code/modules/overmap/traders.dm b/nsv13/code/modules/overmap/traders.dm index 8013b6d8ef6..9cd937948cd 100644 --- a/nsv13/code/modules/overmap/traders.dm +++ b/nsv13/code/modules/overmap/traders.dm @@ -445,7 +445,7 @@ account = (OM.faction == "nanotrasen") ? ACCOUNT_CAR : ACCOUNT_SYN var/datum/bank_account/D = SSeconomy.get_dep_account(account) if(!D || D.account_balance <= item.price) - SEND_SOUND(user, 'nsv13/sound/effects/ship/freespace2/computer/textdraw.wav') + SEND_SOUND(user, sound('nsv13/sound/effects/ship/freespace2/computer/textdraw.wav', channel = SSsounds.random_available_channel())) to_chat(user, "[pick(on_fail)]") return FALSE D.adjust_money(-item.price) diff --git a/nsv13/code/modules/overmap/traders_items.dm b/nsv13/code/modules/overmap/traders_items.dm index 4533db36d44..42046f45a3a 100644 --- a/nsv13/code/modules/overmap/traders_items.dm +++ b/nsv13/code/modules/overmap/traders_items.dm @@ -22,7 +22,7 @@ if(inhabited_trader) inhabited_trader.greeting = pick(inhabited_trader.greetings) inhabited_trader.ui_interact(user) - SEND_SOUND(user, 'nsv13/sound/effects/ship/freespace2/computer/textdraw.wav') + SEND_SOUND(user, sound('nsv13/sound/effects/ship/freespace2/computer/textdraw.wav', channel = SSsounds.random_available_channel())) to_chat(user, "[pick(inhabited_trader.greetings)]") /obj/structure/overmap/trader/can_move() diff --git a/nsv13/code/modules/overmap/weapons/damage.dm b/nsv13/code/modules/overmap/weapons/damage.dm index 38937ac6272..5390e3359cd 100644 --- a/nsv13/code/modules/overmap/weapons/damage.dm +++ b/nsv13/code/modules/overmap/weapons/damage.dm @@ -296,7 +296,7 @@ Bullet reactions for(var/mob/M in orange(src, 3)) if(isliving(M) && (M.client?.prefs.toggles & PREFTOGGLE_SOUND_AMBIENCE) && M.can_hear_ambience()) to_chat(M, "You hear a loud creak coming from above you. Take cover!") - SEND_SOUND(M, pick('nsv13/sound/ambience/ship_damage/creak5.ogg','nsv13/sound/ambience/ship_damage/creak6.ogg')) + SEND_SOUND(M, sound(pick('nsv13/sound/ambience/ship_damage/creak5.ogg','nsv13/sound/ambience/ship_damage/creak6.ogg'), channel = SSsounds.random_available_channel())) /obj/effect/temp_visual/explosion_telegraph/Destroy() var/turf/T = get_turf(src) diff --git a/nsv13/code/modules/turbolift/lazylift.dm b/nsv13/code/modules/turbolift/lazylift.dm index b5fea91d35d..f50c2bd2ecd 100644 --- a/nsv13/code/modules/turbolift/lazylift.dm +++ b/nsv13/code/modules/turbolift/lazylift.dm @@ -405,7 +405,7 @@ That's it, ok bye! /obj/machinery/lazylift/master/proc/sound_effect(list/moblist, start = FALSE) if(start) for(var/mob/M as() in moblist) - SEND_SOUND(M, turbolift_start_sound) + SEND_SOUND(M, sound(turbolift_start_sound, channel = SSsounds.random_available_channel())) shake_with_inertia(M, 2, 1) if(!isliving(M)) continue From ea87bd39ee32d906bdccd67e1223eb1d2dac052f Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Fri, 24 Jul 2026 13:40:37 -0400 Subject: [PATCH 2/4] ensures that relay() always has a channel set barring a few where breaking sound makes sense I am completely fried. --- .../security_levels/keycard_authentication.dm | 4 +-- nsv13/code/game/general_quarters/damage.dm | 6 ++-- nsv13/code/game/machinery/iff_console.dm | 2 +- nsv13/code/modules/mining/asteroid.dm | 4 +-- .../ftl_jump_mishaps/jump_mishap_helpers.dm | 2 +- nsv13/code/modules/overmap/ai-skynet.dm | 6 ++-- .../modules/overmap/armour/armour_quadrant.dm | 2 +- .../code/modules/overmap/boarding/boarding.dm | 4 +-- .../modules/overmap/fighters/_fighters.dm | 32 +++++++++---------- .../overmap/fighters/fighters_launcher.dm | 6 ++-- .../overmap/fighters/modules/ftl_drive.dm | 2 +- .../overmap/fighters/modules/refueling_kit.dm | 4 +-- .../overmap/fighters/modules/repair_kit.dm | 4 +-- .../fighters/modules/utility_modules.dm | 2 +- nsv13/code/modules/overmap/fighters/tug.dm | 6 ++-- nsv13/code/modules/overmap/fleet_types.dm | 4 +-- nsv13/code/modules/overmap/overmap.dm | 10 +++--- nsv13/code/modules/overmap/radar.dm | 4 +-- nsv13/code/modules/overmap/weapons/damage.dm | 4 +-- .../firing_checks.dm | 4 +-- .../new_weapon_types/weapon_datum_types.dm | 2 +- .../delta_overmap_ship_weapons/selection.dm | 2 +- 22 files changed, 58 insertions(+), 58 deletions(-) diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index 24e6bc05e47..9c32df1ab5e 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -198,9 +198,9 @@ GLOBAL_VAR_INIT(emergency_access, FALSE) return target.ftl_safety_override = !target.ftl_safety_override if(target.ftl_safety_override) //Safety disengaged. - target.relay('nsv13/sound/misc/triple_boop_alert.ogg',"

FTL Drive System Notice

FTL Drive Safeties disengaged. Drive reverting to manual control.
") + target.relay('nsv13/sound/misc/triple_boop_alert.ogg',"

FTL Drive System Notice

FTL Drive Safeties disengaged. Drive reverting to manual control.
", channel = CHANNEL_IMPORTANT_SHIP_ALERT) else //Safety reengaged. - target.relay('sound/misc/notice2.ogg', "

FTL Drive System Notice

FTL Drive Safeties restored.
") + target.relay('sound/misc/notice2.ogg', "

FTL Drive System Notice

FTL Drive Safeties restored.
", channel = CHANNEL_SHIP_ALERT) //NSV13 end. #undef KEYCARD_RED_ALERT diff --git a/nsv13/code/game/general_quarters/damage.dm b/nsv13/code/game/general_quarters/damage.dm index de5bda0e861..3993314b696 100644 --- a/nsv13/code/game/general_quarters/damage.dm +++ b/nsv13/code/game/general_quarters/damage.dm @@ -1,6 +1,6 @@ /obj/structure/overmap/proc/nuclear_impact() set waitfor = FALSE - relay('nsv13/sound/effects/ship/nukehit.ogg', message="You hear a huge rumble as a blinding flash of light envelops you!") + relay('nsv13/sound/effects/ship/nukehit.ogg', message="You hear a huge rumble as a blinding flash of light envelops you!", channel = CHANNEL_SHIP_FX) for(var/mob/living/karmics_victim in mobs_in_ship) if(karmics_victim.stat == DEAD) //They're dead! continue @@ -14,7 +14,7 @@ for(var/area/AR in linked_areas) if(prob(10)) - relay(pick(GLOB.overmap_impact_sounds)) //Kaboom + relay(pick(GLOB.overmap_impact_sounds), channel = SSsounds.random_available_channel()) //Kaboom if(prob(70)) var/turf/T = pick(get_area_turfs(AR)) radiation_pulse(T, 1000, 10) @@ -24,7 +24,7 @@ //For training purposes. /obj/structure/overmap/proc/simulate_nuke() set waitfor = FALSE - relay('nsv13/sound/effects/ship/incoming_missile.ogg', message="

Missile Impact Imminent


Thermonuclear launch detected. All hands brace for impact.") + relay('nsv13/sound/effects/ship/incoming_missile.ogg', message="

Missile Impact Imminent


Thermonuclear launch detected. All hands brace for impact.", channel = CHANNEL_SHIP_FX) sleep(5 SECONDS) //This is a sin, but it won't be used much. var/turf/open/pickedstart = get_turf(pick(orange(10, src))) var/turf/open/pickedgoal = get_turf(src) diff --git a/nsv13/code/game/machinery/iff_console.dm b/nsv13/code/game/machinery/iff_console.dm index 4b68ddfbdbd..e755cdede24 100644 --- a/nsv13/code/game/machinery/iff_console.dm +++ b/nsv13/code/game/machinery/iff_console.dm @@ -127,7 +127,7 @@ If someone hacks it, you can always rebuild it. if(!OM) return FALSE SEND_SIGNAL(OM, COMSIG_SHIP_BOARDED) - OM.relay(pick('sound/ambience/ambitech.ogg', 'sound/ambience/ambitech3.ogg')) + OM.relay(pick('sound/ambience/ambitech.ogg', 'sound/ambience/ambitech3.ogg'), channel = CHANNEL_AMBIENT_EFFECTS) say(pick("981d5d2ef58bae5aec45eb7030e56d29","0d4b1c990a4d84aba5aa0560c55a3f4e", "e935f4417ad97a36e540bc67a807d5c4")) playsound(loc, 'nsv13/sound/effects/computer/alarm_3.ogg', 80) switch(OM.faction) diff --git a/nsv13/code/modules/mining/asteroid.dm b/nsv13/code/modules/mining/asteroid.dm index 3e2ad91faec..d12e9f95e34 100644 --- a/nsv13/code/modules/mining/asteroid.dm +++ b/nsv13/code/modules/mining/asteroid.dm @@ -295,7 +295,7 @@ GLOBAL_LIST_EMPTY(asteroid_spawn_markers) //handles mining asteroids, kind of s var/obj/structure/overmap/asteroid/AS = input(usr, "Select target:", "Target") as null|anything in asteroids if(!AS || !length(AS.core_composition)) return FALSE - linked.relay('nsv13/sound/effects/ship/tractor.ogg', "DANGER: Magnet has locked on to an asteroid. Vacate the asteroid cage immediately.") + linked.relay('nsv13/sound/effects/ship/tractor.ogg', "DANGER: Magnet has locked on to an asteroid. Vacate the asteroid cage immediately.", channel = CHANNEL_SHIP_FX) cooldown = TRUE addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 1 MINUTES) if(prob(20)) @@ -320,7 +320,7 @@ GLOBAL_LIST_EMPTY(asteroid_spawn_markers) //handles mining asteroids, kind of s return cooldown = TRUE addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 1 MINUTES) - linked.relay('nsv13/sound/effects/ship/general_quarters.ogg', "DANGER: An asteroid is now being detached from [linked]. Vacate the asteroid cage immediately.") + linked.relay('nsv13/sound/effects/ship/general_quarters.ogg', "DANGER: An asteroid is now being detached from [linked]. Vacate the asteroid cage immediately.", channel = CHANNEL_SHIP_ALERT) addtimer(CALLBACK(src, PROC_REF(push_away_asteroid)), 30 SECONDS) /obj/machinery/computer/ship/mineral_magnet/proc/push_away_asteroid() diff --git a/nsv13/code/modules/overmap/FTL/ftl_jump_mishaps/jump_mishap_helpers.dm b/nsv13/code/modules/overmap/FTL/ftl_jump_mishaps/jump_mishap_helpers.dm index 1346f6d1a93..56e429aad4a 100644 --- a/nsv13/code/modules/overmap/FTL/ftl_jump_mishaps/jump_mishap_helpers.dm +++ b/nsv13/code/modules/overmap/FTL/ftl_jump_mishaps/jump_mishap_helpers.dm @@ -96,7 +96,7 @@ if(next_noise > world.time) return var/yowie_sound = pickweight(yowie_sounds) - linked.relay(yowie_sound) + linked.relay(yowie_sound, channel = SSsounds.random_available_channel()) if(prob(1)) var/oops_reality_distortion = pick(/obj/effect/anomaly/stormdrive, /obj/effect/anomaly/stormdrive/sheer, /obj/effect/anomaly/bluespace) var/list/possible_areas = linked.linked_areas.Copy() //we really should have a different space area for the NSV huh (and we even already have nearstation) diff --git a/nsv13/code/modules/overmap/ai-skynet.dm b/nsv13/code/modules/overmap/ai-skynet.dm index 53e49f6a713..ae1e5dff50b 100644 --- a/nsv13/code/modules/overmap/ai-skynet.dm +++ b/nsv13/code/modules/overmap/ai-skynet.dm @@ -423,7 +423,7 @@ Adding tasks is easy! Just define a datum for it. 'nsv13/sound/effects/ship/freespace2/m_stiletto.wav', 'nsv13/sound/effects/ship/freespace2/m_tsunami.wav', 'nsv13/sound/effects/ship/freespace2/m_wasp.wav' - ) ) ) + ) ), channel = SSsounds.random_available_channel() ) return TRUE /obj/structure/overmap/proc/add_objective( objective ) @@ -630,9 +630,9 @@ Adding tasks is easy! Just define a datum for it. player_string = " (Sent by [player_name])" if(outbound) - relay('nsv13/sound/effects/ship/freespace2/computer/textdraw.wav', "

Outbound hail to: [ship_name][player_string]


[text]
") + relay('nsv13/sound/effects/ship/freespace2/computer/textdraw.wav', "

Outbound hail to: [ship_name][player_string]


[text]
", channel = CHANNEL_SHIP_ALERT) else - relay('nsv13/sound/effects/ship/freespace2/computer/textdraw.wav', "

Incoming hail from: [ship_name][player_string]


[text]
") + relay('nsv13/sound/effects/ship/freespace2/computer/textdraw.wav', "

Incoming hail from: [ship_name][player_string]


[text]
", channel = CHANNEL_SHIP_ALERT) /proc/get_internet_sound(web_sound_input) if(!web_sound_input) diff --git a/nsv13/code/modules/overmap/armour/armour_quadrant.dm b/nsv13/code/modules/overmap/armour/armour_quadrant.dm index fb17a005115..c81307f75dd 100644 --- a/nsv13/code/modules/overmap/armour/armour_quadrant.dm +++ b/nsv13/code/modules/overmap/armour/armour_quadrant.dm @@ -78,7 +78,7 @@ var/delta = damage-quad["current_armour"] quad["current_armour"] = max(quad["current_armour"] - damage, 0) if(delta <= 0) //Woo! We absorbed the hit fully. - relay(ARMOUR_DING) + relay(ARMOUR_DING, channel = SSsounds.random_available_channel()) if(!impact_sound_cooldown) if(damage >= 15) //Flak begone shake_everyone(5) diff --git a/nsv13/code/modules/overmap/boarding/boarding.dm b/nsv13/code/modules/overmap/boarding/boarding.dm index e6fd10c6ac1..1b47d29f847 100644 --- a/nsv13/code/modules/overmap/boarding/boarding.dm +++ b/nsv13/code/modules/overmap/boarding/boarding.dm @@ -109,7 +109,7 @@ switch(faction_selection) if("syndicate") - relay('nsv13/sound/effects/ship/boarding_pod.ogg', "You can hear several tethers attaching to the ship.") + relay('nsv13/sound/effects/ship/boarding_pod.ogg', "You can hear several tethers attaching to the ship.", channel = SSsounds.random_available_channel()) else //No other special cases exist but this is a switch anyways to support them in the future (pirates have no tell) var/obj/structure/closet/supplypod/toLaunch @@ -164,7 +164,7 @@ message_admins("[ADMIN_LOOKUPFLW(H)] became a syndicate drop trooper.") to_chat(H, "You are a syndicate drop trooper! Cripple [station_name()] to the best of your ability, by any means you see fit. You have been given some objectives to guide you in the pursuit of this goal.") operatives += H - relay('nsv13/sound/effects/ship/boarding_pod.ogg', "You can hear several tethers attaching to the ship.") + relay('nsv13/sound/effects/ship/boarding_pod.ogg', "You can hear several tethers attaching to the ship.", channel = SSsounds.random_available_channel()) else if(faction_selection == "pirate") var/datum/map_template/spacepirate_boarding_pod/currentPod = new /datum/map_template/spacepirate_boarding_pod() diff --git a/nsv13/code/modules/overmap/fighters/_fighters.dm b/nsv13/code/modules/overmap/fighters/_fighters.dm index d788c3ccf43..bc1730e9ad4 100644 --- a/nsv13/code/modules/overmap/fighters/_fighters.dm +++ b/nsv13/code/modules/overmap/fighters/_fighters.dm @@ -225,7 +225,7 @@ Been a mess since 2018, we'll fix it someday (probably) return if(disruption && prob(min(95, disruption))) to_chat(usr, "The controls buzz angrily!") - relay('sound/machines/buzz-sigh.ogg') + relay('sound/machines/buzz-sigh.ogg', channel = SSsounds.random_available_channel()) return TRUE var/atom/movable/target = locate(params["id"]) switch(action) @@ -317,22 +317,22 @@ Been a mess since 2018, we'll fix it someday (probably) return to_chat(usr, "You [DC.docking_mode ? "disengage" : "engage"] [src]'s docking computer.") DC.docking_mode = !DC.docking_mode - relay('nsv13/sound/effects/fighters/switch.ogg') + relay('nsv13/sound/effects/fighters/switch.ogg', channel = SSsounds.random_available_channel()) return TRUE if("brakes") toggle_brakes() - relay('nsv13/sound/effects/fighters/switch.ogg') + relay('nsv13/sound/effects/fighters/switch.ogg', channel = SSsounds.random_available_channel()) return TRUE if("inertial_dampeners") toggle_inertia() - relay('nsv13/sound/effects/fighters/switch.ogg') + relay('nsv13/sound/effects/fighters/switch.ogg', channel = SSsounds.random_available_channel()) return TRUE if("weapon_safety") toggle_safety() - relay('nsv13/sound/effects/fighters/switch.ogg') + relay('nsv13/sound/effects/fighters/switch.ogg', channel = SSsounds.random_available_channel()) return TRUE if("target_lock") - relay('nsv13/sound/effects/fighters/switch.ogg') + relay('nsv13/sound/effects/fighters/switch.ogg', channel = SSsounds.random_available_channel()) dump_locks() return TRUE if("mag_release") @@ -352,7 +352,7 @@ Been a mess since 2018, we'll fix it someday (probably) to_chat(usr, "FTL unit not properly installed.") return ftl.toggle() - relay('nsv13/sound/effects/fighters/switch.ogg') + relay('nsv13/sound/effects/fighters/switch.ogg', channel = SSsounds.random_available_channel()) . = TRUE if("anchor_ftl") var/obj/item/fighter_component/ftl/ftl = loadout.get_slot(HARDPOINT_SLOT_FTL) @@ -364,7 +364,7 @@ Been a mess since 2018, we'll fix it someday (probably) ftl.anchored_to = new_target else to_chat(usr, "Unable to update telemetry. Ensure you are in proximity to a Seegson FTL drive.") - relay('nsv13/sound/effects/fighters/switch.ogg') + relay('nsv13/sound/effects/fighters/switch.ogg', channel = SSsounds.random_available_channel()) . = TRUE if("return_jump") var/obj/item/fighter_component/ftl/ftl = loadout.get_slot(HARDPOINT_SLOT_FTL) @@ -395,7 +395,7 @@ Been a mess since 2018, we'll fix it someday (probably) maintenance_mode = !maintenance_mode return TRUE - relay('nsv13/sound/effects/fighters/switch.ogg') + relay('nsv13/sound/effects/fighters/switch.ogg', channel = SSsounds.random_available_channel()) // Bypass the z level checks done by parent /obj/structure/overmap/small_craft/forceMove(atom/destination) @@ -818,7 +818,7 @@ Been a mess since 2018, we'll fix it someday (probably) if(A.obj_integrity <= 0) loadout.remove_hardpoint(A, TRUE) qdel(A) //There goes your armour! - relay(pick('nsv13/sound/effects/ship/freespace2/ding1.wav', 'nsv13/sound/effects/ship/freespace2/ding2.wav', 'nsv13/sound/effects/ship/freespace2/ding3.wav', 'nsv13/sound/effects/ship/freespace2/ding4.wav', 'nsv13/sound/effects/ship/freespace2/ding5.wav')) + relay(pick('nsv13/sound/effects/ship/freespace2/ding1.wav', 'nsv13/sound/effects/ship/freespace2/ding2.wav', 'nsv13/sound/effects/ship/freespace2/ding3.wav', 'nsv13/sound/effects/ship/freespace2/ding4.wav', 'nsv13/sound/effects/ship/freespace2/ding5.wav'), channel = SSsounds.random_available_channel()) else . = ..() if(obj_integrity <= 0) @@ -832,14 +832,14 @@ Been a mess since 2018, we'll fix it someday (probably) M.take_overall_damage(damage_amount/2) return if(prob(50)) - relay('sound/effects/glasshit.ogg') + relay('sound/effects/glasshit.ogg', channel = SSsounds.random_available_channel()) C.take_damage(damage_amount/2, damage_type, damage_flag, sound_effect) if(C.obj_integrity <= 0) canopy_breach(C) /obj/structure/overmap/small_craft/proc/canopy_breach(obj/item/fighter_component/canopy/C) set waitfor = FALSE - relay('nsv13/sound/effects/ship/cockpit_breach.ogg') //We're leaking air! + relay('nsv13/sound/effects/ship/cockpit_breach.ogg', channel = SSsounds.random_available_channel()) //We're leaking air! loadout.remove_hardpoint(HARDPOINT_SLOT_CANOPY, TRUE) qdel(C) //Pop off the canopy. update_visuals() @@ -1545,7 +1545,7 @@ due_to_damage: If the removal was caused voluntarily (FALSE), or if it was cause next_process = world.time + 4 SECONDS if(!fuel_line) return //APU needs fuel to drink - F.relay('nsv13/sound/effects/fighters/apu_loop.ogg') + F.relay('nsv13/sound/effects/fighters/apu_loop.ogg', channel = SSsounds.random_available_channel()) var/obj/item/fighter_component/engine/engine = F.loadout.get_slot(HARDPOINT_SLOT_ENGINE) F.use_fuel(2, TRUE) //APUs take fuel to run. if(engine.active()) @@ -1690,7 +1690,7 @@ Utility modules can be either one of these types, just ensure you set its slot t if(!istype(F)) return FALSE if(!ammo.len) - F.relay('sound/weapons/gun_dry_fire.ogg') + F.relay('sound/weapons/gun_dry_fire.ogg', channel = SSsounds.random_available_channel()) return FALSE var/obj/item/ammo_casing/chambered = ammo[ammo.len] . = chambered.projectile_type @@ -1766,7 +1766,7 @@ Utility modules can be either one of these types, just ensure you set its slot t var/obj/item/fighter_component/battery/B = F.loadout.get_slot(HARDPOINT_SLOT_BATTERY) if(B.charge < charge_to_fire) - F.relay('sound/weapons/gun_dry_fire.ogg') + F.relay('sound/weapons/gun_dry_fire.ogg', channel = SSsounds.random_available_channel()) return FALSE B.charge -= charge_to_fire @@ -1890,7 +1890,7 @@ Utility modules can be either one of these types, just ensure you set its slot t if(!istype(F)) return FALSE if(!ammo.len) - F.relay('sound/weapons/gun_dry_fire.ogg') + F.relay('sound/weapons/gun_dry_fire.ogg', channel = SSsounds.random_available_channel()) return FALSE var/obj/item/ship_weapon/ammunition/americagobrr = pick_n_take(ammo) . = americagobrr.projectile_type //Pass torp back towards datum. diff --git a/nsv13/code/modules/overmap/fighters/fighters_launcher.dm b/nsv13/code/modules/overmap/fighters/fighters_launcher.dm index ee4909cc8c6..a9e8ec390f9 100644 --- a/nsv13/code/modules/overmap/fighters/fighters_launcher.dm +++ b/nsv13/code/modules/overmap/fighters/fighters_launcher.dm @@ -142,7 +142,7 @@ center = get_turf(locate(x+2,y,z)) OM.forceMove(get_turf(center)) //"Catch" them like an arrestor. var/obj/structure/overmap/link = get_overmap() - link?.relay('nsv13/sound/effects/fighters/magcat.ogg') + link?.relay('nsv13/sound/effects/fighters/magcat.ogg', channel = SSsounds.random_available_channel()) shake_people(OM) switch(dir) //Make sure theyre facing the right way so they dont FACEPLANT INTO THE WALL. if(NORTH) @@ -174,7 +174,7 @@ if(!mag_locked || !ready) return ready = FALSE - mag_locked.relay('nsv13/sound/effects/ship/fighter_launch.ogg') + mag_locked.relay('nsv13/sound/effects/ship/fighter_launch.ogg', channel = SSsounds.random_available_channel()) addtimer(CALLBACK(src, PROC_REF(finish_launch)), 10 SECONDS) /obj/structure/fighter_launcher/proc/abort_launch() @@ -193,7 +193,7 @@ mag_locked.prime_launch() //Gets us ready to move at PACE. var/obj/structure/overmap/our_overmap = get_overmap() if(our_overmap) - our_overmap.relay('nsv13/sound/effects/ship/fighter_launch_short.ogg') + our_overmap.relay('nsv13/sound/effects/ship/fighter_launch_short.ogg', channel = SSsounds.random_available_channel()) spawn(0) shake_people(mag_locked) switch(dir) //Just handling north / south..FOR NOW! diff --git a/nsv13/code/modules/overmap/fighters/modules/ftl_drive.dm b/nsv13/code/modules/overmap/fighters/modules/ftl_drive.dm index 02ff62e9661..03d3618df16 100644 --- a/nsv13/code/modules/overmap/fighters/modules/ftl_drive.dm +++ b/nsv13/code/modules/overmap/fighters/modules/ftl_drive.dm @@ -61,7 +61,7 @@ return ftl_state = FTL_STATE_JUMPING linked.begin_jump(target_system, force) - linked.relay('nsv13/sound/effects/ship/freespace2/computer/escape.wav') + linked.relay('nsv13/sound/effects/ship/freespace2/computer/escape.wav', channel = SSsounds.random_available_channel()) progress = 0 /obj/item/fighter_component/ftl/proc/cancel_ftl() diff --git a/nsv13/code/modules/overmap/fighters/modules/refueling_kit.dm b/nsv13/code/modules/overmap/fighters/modules/refueling_kit.dm index a135514d122..451ff030fe1 100644 --- a/nsv13/code/modules/overmap/fighters/modules/refueling_kit.dm +++ b/nsv13/code/modules/overmap/fighters/modules/refueling_kit.dm @@ -112,8 +112,8 @@ return "Fuel levels below minimum safe transfer level." var/obj/item/fighter_component/fuel_tank/ourTank = us.loadout.get_slot(HARDPOINT_SLOT_FUEL) var/obj/item/fighter_component/fuel_tank/theirTank = them.loadout.get_slot(HARDPOINT_SLOT_FUEL) - us.relay('nsv13/sound/effects/fighters/refuel.ogg') - them.relay('nsv13/sound/effects/fighters/refuel.ogg') + us.relay('nsv13/sound/effects/fighters/refuel.ogg', channel = SSsounds.random_available_channel()) + them.relay('nsv13/sound/effects/fighters/refuel.ogg', channel = SSsounds.random_available_channel()) ourTank.reagents.trans_to(theirTank, transfer_amount) return diff --git a/nsv13/code/modules/overmap/fighters/modules/repair_kit.dm b/nsv13/code/modules/overmap/fighters/modules/repair_kit.dm index 6558f44677f..dba2ed30516 100644 --- a/nsv13/code/modules/overmap/fighters/modules/repair_kit.dm +++ b/nsv13/code/modules/overmap/fighters/modules/repair_kit.dm @@ -107,5 +107,5 @@ else repair_amount = CEILING(10 * tier - (them.mass - us.mass), 1) //Big ships can be slow to fix. them.try_repair(repair_amount) - us.relay('sound/items/welder.ogg') - them.relay('sound/items/welder2.ogg') + us.relay('sound/items/welder.ogg', channel = SSsounds.random_available_channel()) + them.relay('sound/items/welder2.ogg', channel = SSsounds.random_available_channel()) diff --git a/nsv13/code/modules/overmap/fighters/modules/utility_modules.dm b/nsv13/code/modules/overmap/fighters/modules/utility_modules.dm index 92f9fdd977e..377b887e0e8 100644 --- a/nsv13/code/modules/overmap/fighters/modules/utility_modules.dm +++ b/nsv13/code/modules/overmap/fighters/modules/utility_modules.dm @@ -42,7 +42,7 @@ var/obj/item/fighter_component/battery/B = F.loadout.get_slot(HARDPOINT_SLOT_BATTERY) if(B.charge < charge_to_fire) - F.relay('sound/weapons/gun_dry_fire.ogg') + F.relay('sound/weapons/gun_dry_fire.ogg', channel = SSsounds.random_available_channel()) return FALSE B.charge -= charge_to_fire diff --git a/nsv13/code/modules/overmap/fighters/tug.dm b/nsv13/code/modules/overmap/fighters/tug.dm index 6e4ec911bbb..e63a2ff0b41 100644 --- a/nsv13/code/modules/overmap/fighters/tug.dm +++ b/nsv13/code/modules/overmap/fighters/tug.dm @@ -159,10 +159,10 @@ if(!ready) return canmove = FALSE - playsound(src.loc, 'nsv13/sound/effects/ship/fighter_launch.ogg', 100, FALSE) + playsound(src.loc, 'nsv13/sound/effects/ship/fighter_launch.ogg', 100, FALSE, channel = SSsounds.random_available_channel()) add_overlay("launcher_charge") for(var/obj/structure/overmap/small_craft/target in contents) - target.relay('nsv13/sound/effects/ship/fighter_launch.ogg') + target.relay('nsv13/sound/effects/ship/fighter_launch.ogg', channel = SSsounds.random_available_channel()) ready = FALSE addtimer(CALLBACK(src, PROC_REF(finish_launch)), 10 SECONDS) @@ -195,7 +195,7 @@ target.angle = target.desired_angle var/obj/structure/overmap/our_overmap = get_overmap() if(our_overmap) - our_overmap.relay('nsv13/sound/effects/ship/fighter_launch_short.ogg') + our_overmap.relay('nsv13/sound/effects/ship/fighter_launch_short.ogg', channel = SSsounds.random_available_channel()) sleep(1 SECONDS) density = TRUE layer = stored_layer diff --git a/nsv13/code/modules/overmap/fleet_types.dm b/nsv13/code/modules/overmap/fleet_types.dm index d8c62def612..9de75228036 100644 --- a/nsv13/code/modules/overmap/fleet_types.dm +++ b/nsv13/code/modules/overmap/fleet_types.dm @@ -270,7 +270,7 @@ if(!current_system) return FALSE for(var/obj/structure/overmap/OM in current_system.system_contents) - OM.relay('nsv13/sound/effects/ship/solgov_scan.ogg') + OM.relay('nsv13/sound/effects/ship/solgov_scan.ogg', channel = CHANNEL_SHIP_FX) sleep(5 SECONDS) for(var/obj/structure/overmap/shield_scan_target in current_system.system_contents) if(istype(shield_scan_target, /obj/structure/overmap/nanotrasen/solgov)) @@ -278,7 +278,7 @@ //Ruh roh.... (Persona non gratas do not need to be scanned again.) if((shield_scan_target.faction != shield_scan_target.name) && shield_scan_target.shields && shield_scan_target.shields.active && length(shield_scan_target.occupying_levels)) shield_scan_target.hail("Scans have detected that you are in posession of prohibited technology. \n Your IFF signature has been marked as 'persona non grata'. \n In accordance with SGC-reg #10124, your ship and lives are now forfeit. Evacuate all civilian personnel immediately and surrender yourselves.", name) - shield_scan_target.relay_to_nearby('nsv13/sound/effects/ship/solgov_scan_alert.ogg', ignore_self=FALSE) + shield_scan_target.relay_to_nearby('nsv13/sound/effects/ship/solgov_scan_alert.ogg', ignore_self=FALSE, channel = CHANNEL_IMPORTANT_SHIP_ALERT) grant_oopsie_achievement(shield_scan_target) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(play_soundtrack_music), /datum/soundtrack_song/bee/mind_crawler, null, 120), 2 SECONDS) shield_scan_target.faction = shield_scan_target.name diff --git a/nsv13/code/modules/overmap/overmap.dm b/nsv13/code/modules/overmap/overmap.dm index 89d06abc64e..018d87bc240 100644 --- a/nsv13/code/modules/overmap/overmap.dm +++ b/nsv13/code/modules/overmap/overmap.dm @@ -785,7 +785,7 @@ Proc to spool up a new Z-level for a player ship and assign it a treadmill. movekey_delta_angle = 15 user_thrust_dir = direction - EAST -//relay('nsv13/sound/effects/ship/rcs.ogg') +//relay('nsv13/sound/effects/ship/rcs.ogg', channel = SSsounds.random_available_channel()) // This is overly expensive, most of these checks are already ran in physics. TODO: optimize /obj/structure/overmap/update_icon() //Adds an rcs overlay @@ -865,7 +865,7 @@ Proc to spool up a new Z-level for a player ship and assign it a treadmill. if(length(O.mobs_in_ship)) O.stop_relay(channel) -/obj/structure/overmap/proc/relay_to_nearby(S, message, ignore_self=FALSE, sound_range=20, faction_check=FALSE) //Sends a sound + text message to nearby ships +/obj/structure/overmap/proc/relay_to_nearby(S, message, ignore_self=FALSE, sound_range=20, faction_check=FALSE, channel) //Sends a sound + text message to nearby ships for(var/obj/structure/overmap/ship as() in GLOB.overmap_objects) //Might be called in hyperspace or by fighters, so shouldn't use a system check. if(ignore_self) if(ship == src) @@ -876,13 +876,13 @@ Proc to spool up a new Z-level for a player ship and assign it a treadmill. if(faction_check) if(src.faction == ship.faction) continue - ship.relay(S,message) + ship.relay(S,message, channel = channel) /obj/structure/overmap/proc/boost(direction) if(world.time < next_maneuvre) to_chat(pilot, "Engines on cooldown to prevent overheat") return FALSE - relay('nsv13/sound/effects/ship/afterburner.ogg', message="You feel the ship lurch suddenly.", loop=FALSE) + relay('nsv13/sound/effects/ship/afterburner.ogg', message="You feel the ship lurch suddenly.", loop=FALSE, channel = SSsounds.random_available_channel()) if(helm && prob(80)) var/sound = pick(GLOB.computer_beeps) playsound(helm, sound, 100, 1) @@ -921,7 +921,7 @@ Proc to spool up a new Z-level for a player ship and assign it a treadmill. /obj/structure/overmap/proc/railgun_bluespace_recoil(target) next_maneuvre = world.time + 5 SECONDS //Set booster on cooldown - relay('nsv13/sound/effects/ship/afterburner.ogg', message="You feel as the ship gets suddenly pulled away!", loop=FALSE) + relay('nsv13/sound/effects/ship/afterburner.ogg', message="You feel as the ship gets suddenly pulled away!", loop=FALSE, channel = SSsounds.random_available_channel()) addtimer(CALLBACK(src, PROC_REF(reset_boost), forward_maxthrust, backward_maxthrust, side_maxthrust, max_angular_acceleration, speed_limit), 2 SECONDS) var/direction = get_angle(src, target) speed_limit += 10 diff --git a/nsv13/code/modules/overmap/radar.dm b/nsv13/code/modules/overmap/radar.dm index 23a7217a028..d15c1fce1e8 100644 --- a/nsv13/code/modules/overmap/radar.dm +++ b/nsv13/code/modules/overmap/radar.dm @@ -83,8 +83,8 @@ Called by add_sensor_profile_penalty if remove_in is used. var/next_pulse = last_radar_pulse + RADAR_VISIBILITY_PENALTY if(world.time < next_pulse) return FALSE - relay('nsv13/sound/effects/ship/sensor_pulse_send.ogg') - relay_to_nearby('nsv13/sound/effects/ship/sensor_pulse_hit.ogg', ignore_self=TRUE, sound_range=255, faction_check=TRUE) + relay('nsv13/sound/effects/ship/sensor_pulse_send.ogg', channel = SSsounds.random_available_channel()) + relay_to_nearby('nsv13/sound/effects/ship/sensor_pulse_hit.ogg', ignore_self=TRUE, sound_range=255, faction_check=TRUE, channel = SSsounds.random_available_channel()) last_radar_pulse = world.time addtimer(VARSET_CALLBACK(src, max_tracking_range, max_tracking_range), RADAR_VISIBILITY_PENALTY) max_tracking_range *= 2 diff --git a/nsv13/code/modules/overmap/weapons/damage.dm b/nsv13/code/modules/overmap/weapons/damage.dm index 5390e3359cd..0f7446b7f71 100644 --- a/nsv13/code/modules/overmap/weapons/damage.dm +++ b/nsv13/code/modules/overmap/weapons/damage.dm @@ -26,7 +26,7 @@ Bullet reactions var/damage_sound = pick('nsv13/sound/effects/ship/damage/shield_hit.ogg', 'nsv13/sound/effects/ship/damage/shield_hit2.ogg') if(!impact_sound_cooldown) new /obj/effect/temp_visual/overmap_shield_hit(src, src) - relay(damage_sound) + relay(damage_sound, channel = SSsounds.random_available_channel()) if(P.damage >= 15) //Flak begone shake_everyone(5) impact_sound_cooldown = TRUE @@ -101,7 +101,7 @@ Bullet reactions /obj/structure/overmap/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, nsv_damagesound = TRUE) var/damage_sound = pick(GLOB.overmap_impact_sounds) if(nsv_damagesound && !impact_sound_cooldown && damage_sound) - relay(damage_sound) + relay(damage_sound, channel = SSsounds.random_available_channel()) if(damage_amount >= 15) //Flak begone shake_everyone(5) impact_sound_cooldown = TRUE diff --git a/nsv13/code/modules/overmap/weapons/delta_overmap_ship_weapons/firing_checks.dm b/nsv13/code/modules/overmap/weapons/delta_overmap_ship_weapons/firing_checks.dm index efe68a35bce..f83835eca8a 100644 --- a/nsv13/code/modules/overmap/weapons/delta_overmap_ship_weapons/firing_checks.dm +++ b/nsv13/code/modules/overmap/weapons/delta_overmap_ship_weapons/firing_checks.dm @@ -211,6 +211,6 @@ */ /datum/overmap_ship_weapon/proc/play_weapon_sound(local = FALSE) if(!local) - linked_overmap.relay_to_nearby(pick(overmap_firing_sounds)) + linked_overmap.relay_to_nearby(pick(overmap_firing_sounds), channel = SSsounds.random_available_channel()) else - linked_overmap.relay(pick(overmap_firing_sounds)) + linked_overmap.relay(pick(overmap_firing_sounds), channel = SSsounds.random_available_channel()) diff --git a/nsv13/code/modules/overmap/weapons/delta_overmap_ship_weapons/new_weapon_types/weapon_datum_types.dm b/nsv13/code/modules/overmap/weapons/delta_overmap_ship_weapons/new_weapon_types/weapon_datum_types.dm index 7a7267d520b..d679d736af5 100644 --- a/nsv13/code/modules/overmap/weapons/delta_overmap_ship_weapons/new_weapon_types/weapon_datum_types.dm +++ b/nsv13/code/modules/overmap/weapons/delta_overmap_ship_weapons/new_weapon_types/weapon_datum_types.dm @@ -380,7 +380,7 @@ /datum/overmap_ship_weapon/pdc_mount/play_weapon_sound() if(world.time > next_firetime + fire_delay + (1 SECONDS)) lastsound = pick(overmap_firing_sounds) - linked_overmap.relay(lastsound) + linked_overmap.relay(lastsound, channel = SSsounds.random_available_channel()) /datum/overmap_ship_weapon/flak name = "Flak cannon" diff --git a/nsv13/code/modules/overmap/weapons/delta_overmap_ship_weapons/selection.dm b/nsv13/code/modules/overmap/weapons/delta_overmap_ship_weapons/selection.dm index 488fcf393cd..306d4c1885a 100644 --- a/nsv13/code/modules/overmap/weapons/delta_overmap_ship_weapons/selection.dm +++ b/nsv13/code/modules/overmap/weapons/delta_overmap_ship_weapons/selection.dm @@ -99,7 +99,7 @@ old_weapon.on_swap_from() on_swap_to() if(overmap_select_sound && !no_sound && world.time > linked_overmap.switchsound_cooldown) - linked_overmap.relay(overmap_select_sound) + linked_overmap.relay(overmap_select_sound, channel = SSsounds.random_available_channel()) linked_overmap.switchsound_cooldown = world.time + 5 SECONDS if(select_alert && !no_message && user) to_chat(user, select_alert) From ad0ee221def19ea2d4aed1a52c0051536df68fda Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Mon, 27 Jul 2026 12:25:24 -0400 Subject: [PATCH 3/4] moves admin sounds to the admin channel --- code/modules/admin/admin.dm | 2 +- code/modules/admin/battle_royale.dm | 2 +- code/modules/admin/secrets.dm | 2 +- code/modules/admin/topic.dm | 2 +- code/modules/admin/verbs/adminhelp.dm | 6 +++--- code/modules/admin/verbs/adminpm.dm | 6 +++--- code/modules/admin/verbs/debug.dm | 2 +- code/modules/paperwork/fax_manager.dm | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 3a1654d95e3..e4c7f8517b1 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -705,7 +705,7 @@ log_admin("[key_name(usr)] delayed the round start.") else to_chat(world, "The game will start in [DisplayTimeText(newtime)].") - SEND_SOUND(world, sound('sound/ai/default/attention.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(world, sound('sound/ai/default/attention.ogg', channel = SSsounds.CHANNEL_ADMIN())) log_admin("[key_name(usr)] set the pre-game delay to [DisplayTimeText(newtime)].") SSblackbox.record_feedback("tally", "admin_verb", 1, "Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/battle_royale.dm b/code/modules/admin/battle_royale.dm index ee747ee9515..f895c704dfb 100644 --- a/code/modules/admin/battle_royale.dm +++ b/code/modules/admin/battle_royale.dm @@ -288,7 +288,7 @@ GLOBAL_DATUM(battle_royale, /datum/battle_royale_controller) player.make_me_an_observer(TRUE) to_chat(world, "Battle Royale: Force-starting game.") SSticker.start_immediately = TRUE - SEND_SOUND(world, sound('sound/misc/server-ready.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(world, sound('sound/misc/server-ready.ogg', channel = CHANNEL_ADMIN())) sleep(50) //Clear all living mobs to_chat(world, "Battle Royale: Clearing world mobs.") diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index b368b3edda0..369329286c3 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -459,7 +459,7 @@ GLOBAL_DATUM_INIT(admin_secrets, /datum/admin_secrets, new) SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Chinese Cartoons")) message_admins("[key_name_admin(usr)] made everything kawaii.") for(var/mob/living/carbon/human/H in GLOB.carbon_list) - SEND_SOUND(H, sound(SSstation.announcer.event_sounds[ANNOUNCER_ANIMES], channel = SSsounds.random_available_channel())) + SEND_SOUND(H, sound(SSstation.announcer.event_sounds[ANNOUNCER_ANIMES], channel = CHANNEL_SHIP_ALERT())) if(H.dna.species.id == SPECIES_HUMAN) if(H.dna.features["tail_human"] == "None" || H.dna.features["ears"] == "None") diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 829f144c9f4..2677f17639b 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1239,7 +1239,7 @@ message_admins("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") SSblackbox.record_feedback("amount", "admin_cookies_spawned", 1) to_chat(H, "Your prayers have been answered!! You received the best cookie!") - SEND_SOUND(H, sound('sound/effects/pray_chaplain.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(H, sound('sound/effects/pray_chaplain.ogg', channel = CHANNEL_ADMIN())) else if(href_list["adminsmite"]) if(!check_rights(R_ADMIN|R_FUN)) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index c0cadb75bd7..f5235b6e821 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -519,7 +519,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //send this msg to all admins for(var/client/X in GLOB.admins) if(X.prefs.toggles & PREFTOGGLE_SOUND_ADMINHELP) - SEND_SOUND(X, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(X, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN())) window_flash(X, ignorepref = TRUE) to_chat(X, type = MESSAGE_TYPE_ADMINPM, @@ -643,7 +643,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(initiator) initiator.giveadminhelpverb() - SEND_SOUND(initiator, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(initiator, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN())) to_chat(initiator, "- AdminHelp Rejected! -") to_chat(initiator, "The administrators could not resolve your ticket. The adminhelp verb has been returned to you so that you may try again.") @@ -687,7 +687,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(initiator) initiator.giveadminhelpverb() - SEND_SOUND(initiator, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(initiator, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN())) to_chat(initiator, "- AdminHelp Rejected! -") to_chat(initiator, "This question may regard game mechanics or how-tos. Such questions should be asked with Mentorhelp.") diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index be44695e755..d04954dc163 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -189,7 +189,7 @@ //play the receiving admin the adminhelp sound (if they have them enabled) if(recipient.prefs.toggles & PREFTOGGLE_SOUND_ADMINHELP) - SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN())) else if(holder) //sender is an admin but recipient is not. Do BIG RED TEXT @@ -204,7 +204,7 @@ admin_ticket_log(recipient, keywordparsedmsg, key_name_admin(src), null, "purple", safeSenderLogged = TRUE) //always play non-admin recipients the adminhelp sound - SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN())) //AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn if(CONFIG_GET(flag/popup_admin_pm)) @@ -327,7 +327,7 @@ window_flash(C, ignorepref = TRUE) //always play non-admin recipients the adminhelp sound - SEND_SOUND(C, sound('sound/effects/adminhelp.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(C, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN())) C.externalreplyamount = EXTERNALREPLYCOUNT diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 96336835390..82cb27e891d 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -835,7 +835,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that for(var/m in GLOB.player_list) var/datum/asset/fuckywucky = get_asset_datum(/datum/asset/simple/fuckywucky) fuckywucky.send(m) - SEND_SOUND(m, sound('sound/misc/fuckywucky.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(m, sound('sound/misc/fuckywucky.ogg', channel = CHANNEL_ADMIN())) to_chat(m, "") addtimer(CALLBACK(src, PROC_REF(restore_fucky_wucky)), 600) diff --git a/code/modules/paperwork/fax_manager.dm b/code/modules/paperwork/fax_manager.dm index 4368ba1dd5a..da20c30d077 100644 --- a/code/modules/paperwork/fax_manager.dm +++ b/code/modules/paperwork/fax_manager.dm @@ -133,7 +133,7 @@ GLOBAL_DATUM_INIT(fax_manager, /datum/fax_manager, new) to_chat(GLOB.admins, msg) for(var/client/admin in GLOB.admins) if((admin.prefs.chat_toggles & CHAT_PRAYER) && (admin.prefs.toggles & PREFTOGGLE_SOUND_PRAYERS)) - SEND_SOUND(admin, sound('sound/items/poster_being_created.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(admin, sound('sound/items/poster_being_created.ogg', channel = CHANNEL_ADMIN())) // A special piece of paper for the administrator that will open the interface no matter what. /obj/item/paper/request/ui_status() From cdf9d8bf518b6d9913fd286ab9ffcb16034f6e57 Mon Sep 17 00:00:00 2001 From: TC <55299415+Pockets-byte@users.noreply.github.com> Date: Mon, 27 Jul 2026 13:49:20 -0400 Subject: [PATCH 4/4] vscode please --- code/modules/admin/admin.dm | 2 +- code/modules/admin/battle_royale.dm | 4 ++-- code/modules/admin/secrets.dm | 2 +- code/modules/admin/topic.dm | 2 +- code/modules/admin/verbs/adminhelp.dm | 6 +++--- code/modules/admin/verbs/adminpm.dm | 6 +++--- code/modules/admin/verbs/debug.dm | 2 +- code/modules/paperwork/fax_manager.dm | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index e4c7f8517b1..1dd3a42a4d1 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -705,7 +705,7 @@ log_admin("[key_name(usr)] delayed the round start.") else to_chat(world, "The game will start in [DisplayTimeText(newtime)].") - SEND_SOUND(world, sound('sound/ai/default/attention.ogg', channel = SSsounds.CHANNEL_ADMIN())) + SEND_SOUND(world, sound('sound/ai/default/attention.ogg', channel = CHANNEL_ADMIN)) log_admin("[key_name(usr)] set the pre-game delay to [DisplayTimeText(newtime)].") SSblackbox.record_feedback("tally", "admin_verb", 1, "Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/battle_royale.dm b/code/modules/admin/battle_royale.dm index f895c704dfb..17354d155d1 100644 --- a/code/modules/admin/battle_royale.dm +++ b/code/modules/admin/battle_royale.dm @@ -288,7 +288,7 @@ GLOBAL_DATUM(battle_royale, /datum/battle_royale_controller) player.make_me_an_observer(TRUE) to_chat(world, "Battle Royale: Force-starting game.") SSticker.start_immediately = TRUE - SEND_SOUND(world, sound('sound/misc/server-ready.ogg', channel = CHANNEL_ADMIN())) + SEND_SOUND(world, sound('sound/misc/server-ready.ogg', channel = CHANNEL_ADMIN)) sleep(50) //Clear all living mobs to_chat(world, "Battle Royale: Clearing world mobs.") @@ -346,7 +346,7 @@ GLOBAL_DATUM(battle_royale, /datum/battle_royale_controller) players += H to_chat(M, "You have been given knock and pacifism for 30 seconds.") new /obj/effect/pod_landingzone(spawn_turf, pod) - SEND_SOUND(world, sound('sound/misc/airraid.ogg', channel = SSsounds.random_available_channel())) + SEND_SOUND(world, sound('sound/misc/airraid.ogg', channel = CHANNEL_ADMIN)) to_chat(world, "A 30 second grace period has been established. Good luck.") to_chat(world, "WARNING: YOU WILL BE GIBBED IF YOU LEAVE THE STATION Z-LEVEL!") to_chat(world, "[players.len] people remain...") diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index 369329286c3..7ebb7d32bbe 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -459,7 +459,7 @@ GLOBAL_DATUM_INIT(admin_secrets, /datum/admin_secrets, new) SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Chinese Cartoons")) message_admins("[key_name_admin(usr)] made everything kawaii.") for(var/mob/living/carbon/human/H in GLOB.carbon_list) - SEND_SOUND(H, sound(SSstation.announcer.event_sounds[ANNOUNCER_ANIMES], channel = CHANNEL_SHIP_ALERT())) + SEND_SOUND(H, sound(SSstation.announcer.event_sounds[ANNOUNCER_ANIMES], channel = CHANNEL_SHIP_ALERT)) if(H.dna.species.id == SPECIES_HUMAN) if(H.dna.features["tail_human"] == "None" || H.dna.features["ears"] == "None") diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 2677f17639b..fbb09e8656d 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1239,7 +1239,7 @@ message_admins("[key_name(H)] got their cookie, spawned by [key_name(src.owner)].") SSblackbox.record_feedback("amount", "admin_cookies_spawned", 1) to_chat(H, "Your prayers have been answered!! You received the best cookie!") - SEND_SOUND(H, sound('sound/effects/pray_chaplain.ogg', channel = CHANNEL_ADMIN())) + SEND_SOUND(H, sound('sound/effects/pray_chaplain.ogg', channel = CHANNEL_ADMIN)) else if(href_list["adminsmite"]) if(!check_rights(R_ADMIN|R_FUN)) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index f5235b6e821..9eba2f709ce 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -519,7 +519,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) //send this msg to all admins for(var/client/X in GLOB.admins) if(X.prefs.toggles & PREFTOGGLE_SOUND_ADMINHELP) - SEND_SOUND(X, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN())) + SEND_SOUND(X, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN)) window_flash(X, ignorepref = TRUE) to_chat(X, type = MESSAGE_TYPE_ADMINPM, @@ -643,7 +643,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(initiator) initiator.giveadminhelpverb() - SEND_SOUND(initiator, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN())) + SEND_SOUND(initiator, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN)) to_chat(initiator, "- AdminHelp Rejected! -") to_chat(initiator, "The administrators could not resolve your ticket. The adminhelp verb has been returned to you so that you may try again.") @@ -687,7 +687,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(initiator) initiator.giveadminhelpverb() - SEND_SOUND(initiator, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN())) + SEND_SOUND(initiator, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN)) to_chat(initiator, "- AdminHelp Rejected! -") to_chat(initiator, "This question may regard game mechanics or how-tos. Such questions should be asked with Mentorhelp.") diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index d04954dc163..78ed694bec8 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -189,7 +189,7 @@ //play the receiving admin the adminhelp sound (if they have them enabled) if(recipient.prefs.toggles & PREFTOGGLE_SOUND_ADMINHELP) - SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN())) + SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN)) else if(holder) //sender is an admin but recipient is not. Do BIG RED TEXT @@ -204,7 +204,7 @@ admin_ticket_log(recipient, keywordparsedmsg, key_name_admin(src), null, "purple", safeSenderLogged = TRUE) //always play non-admin recipients the adminhelp sound - SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN())) + SEND_SOUND(recipient, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN)) //AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn if(CONFIG_GET(flag/popup_admin_pm)) @@ -327,7 +327,7 @@ window_flash(C, ignorepref = TRUE) //always play non-admin recipients the adminhelp sound - SEND_SOUND(C, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN())) + SEND_SOUND(C, sound('sound/effects/adminhelp.ogg', channel = CHANNEL_ADMIN)) C.externalreplyamount = EXTERNALREPLYCOUNT diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 82cb27e891d..562245c4c76 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -835,7 +835,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that for(var/m in GLOB.player_list) var/datum/asset/fuckywucky = get_asset_datum(/datum/asset/simple/fuckywucky) fuckywucky.send(m) - SEND_SOUND(m, sound('sound/misc/fuckywucky.ogg', channel = CHANNEL_ADMIN())) + SEND_SOUND(m, sound('sound/misc/fuckywucky.ogg', channel = CHANNEL_ADMIN)) to_chat(m, "") addtimer(CALLBACK(src, PROC_REF(restore_fucky_wucky)), 600) diff --git a/code/modules/paperwork/fax_manager.dm b/code/modules/paperwork/fax_manager.dm index da20c30d077..e076741f207 100644 --- a/code/modules/paperwork/fax_manager.dm +++ b/code/modules/paperwork/fax_manager.dm @@ -133,7 +133,7 @@ GLOBAL_DATUM_INIT(fax_manager, /datum/fax_manager, new) to_chat(GLOB.admins, msg) for(var/client/admin in GLOB.admins) if((admin.prefs.chat_toggles & CHAT_PRAYER) && (admin.prefs.toggles & PREFTOGGLE_SOUND_PRAYERS)) - SEND_SOUND(admin, sound('sound/items/poster_being_created.ogg', channel = CHANNEL_ADMIN())) + SEND_SOUND(admin, sound('sound/items/poster_being_created.ogg', channel = CHANNEL_ADMIN)) // A special piece of paper for the administrator that will open the interface no matter what. /obj/item/paper/request/ui_status()