diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 2dcb96b8c42..d3329ef8622 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -176,5 +176,6 @@ GLOBAL_LIST_INIT(announcer_keys, list( #define SFX_PORTAL_CLOSE "portal_closed" #define SFX_PORTAL_CREATED "portal_created" #define SFX_SCREECH "screech" +#define SFX_TOOL_SWITCH "tool_switch" #define SFX_STONE_DROP "stone_drop" #define SFX_STONE_PICKUP "stone_pickup" diff --git a/code/game/objects/items/rcd/RCD.dm b/code/game/objects/items/rcd/RCD.dm index fb28c1bd6c6..2a815a9b02e 100644 --- a/code/game/objects/items/rcd/RCD.dm +++ b/code/game/objects/items/rcd/RCD.dm @@ -16,6 +16,9 @@ item_flags = NO_MAT_REDEMPTION | NOBLUDGEON has_ammobar = TRUE actions_types = list(/datum/action/item_action/rcd_scan) + drop_sound = 'sound/items/handling/rcd_drop.ogg' + pickup_sound = 'sound/items/handling/rcd_pickup.ogg' + sound_vary = TRUE /// main category of currently selected design[Structures, Airlocks, Airlock Access] var/root_category @@ -79,6 +82,10 @@ GLOB.rcd_list -= src . = ..() +/obj/item/construction/rcd/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + playsound(src, SFX_TOOL_SWITCH, 20, TRUE) + /obj/item/construction/rcd/ui_action_click(mob/user, actiontype) if (!COOLDOWN_FINISHED(src, destructive_scan_cooldown)) to_chat(user, span_warning("[src] lets out a low buzz.")) @@ -105,7 +112,7 @@ T.rcd_act(user, src, list(RCD_DESIGN_MODE = RCD_TURF, RCD_DESIGN_PATH = /turf/open/floor/plating/rcd)) useResource(16, user) activate() - playsound(loc, 'sound/machines/click.ogg', 50, 1) + playsound(get_turf(user), SFX_TOOL_SWITCH, 20, TRUE) user.gib(DROP_ALL_REMAINS) return MANUAL_SUICIDE @@ -146,7 +153,7 @@ //check if we can build our window on the grill if(target_turf.is_blocked_turf(exclude_mobs = !is_full_tile, source_atom = null, ignore_atoms = structures_to_ignore, type_list = TRUE)) - playsound(loc, 'sound/machines/click.ogg', 50, TRUE) + playsound(get_turf(user), SFX_TOOL_SWITCH, 20, TRUE) balloon_alert(user, "something is blocking the turf") return FALSE @@ -157,7 +164,7 @@ else if(rcd_mode == RCD_TURF && rcd_structure == /turf/open/floor/plating/rcd && (!istype(target_turf, /turf/open/floor) || istype(target, /obj/structure/girder))) //if a player builds a wallgirder on top of himself manually with iron sheets he can't finish the wall if he is still on the girder. Exclude the girder itself when checking for other dense objects on the turf if(istype(target, /obj/structure/girder) && target_turf.is_blocked_turf(exclude_mobs = FALSE, source_atom = null, ignore_atoms = list(target))) - playsound(loc, 'sound/machines/click.ogg', 50, TRUE) + playsound(get_turf(user), SFX_TOOL_SWITCH, 20, TRUE) balloon_alert(user, "something is on the girder!") return FALSE @@ -192,7 +199,7 @@ //check if the structure can fit on this turf if(target_turf.is_blocked_turf(exclude_mobs = ignore_mobs, source_atom = null, ignore_atoms = ignored_types, type_list = TRUE)) - playsound(loc, 'sound/machines/click.ogg', 50, TRUE) + playsound(get_turf(user), SFX_TOOL_SWITCH, 20, TRUE) balloon_alert(user, "something is on the tile!") return FALSE diff --git a/code/game/objects/items/rcd/RPD.dm b/code/game/objects/items/rcd/RPD.dm index 370206a1963..642bbc70623 100644 --- a/code/game/objects/items/rcd/RPD.dm +++ b/code/game/objects/items/rcd/RPD.dm @@ -183,6 +183,9 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*37.5, /datum/material/glass=SHEET_MATERIAL_AMOUNT*18.75) armor_type = /datum/armor/item_pipe_dispenser resistance_flags = FIRE_PROOF + drop_sound = 'sound/items/handling/rpd_drop.ogg' + pickup_sound = 'sound/items/handling/rpd_pickup.ogg' + sound_vary = TRUE ///Sparks system used when changing device in the UI var/datum/effect_system/spark_spread/spark_system ///Direction of the device we are going to spawn, set up in the UI @@ -294,7 +297,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( /obj/item/pipe_dispenser/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] points the end of the RPD down [user.p_their()] throat and presses a button! It looks like [user.p_theyre()] trying to commit suicide...")) - playsound(get_turf(user), 'sound/machines/click.ogg', 50, TRUE) + playsound(get_turf(user), SFX_TOOL_SWITCH, 20, TRUE) playsound(get_turf(user), RPD_USE_SOUND, 50, TRUE) return BRUTELOSS @@ -360,6 +363,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( /obj/item/pipe_dispenser/ui_act(action, params) . = ..() + playsound(src, SFX_TOOL_SWITCH, 20, TRUE) if(.) return @@ -457,7 +461,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( . = TRUE if((mode & DESTROY_MODE) && istype(attack_target, /obj/item/pipe) || istype(attack_target, /obj/structure/disposalconstruct) || istype(attack_target, /obj/structure/c_transit_tube) || istype(attack_target, /obj/structure/c_transit_tube_pod) || istype(attack_target, /obj/item/pipe_meter) || istype(attack_target, /obj/structure/disposalpipe/broken)) - playsound(get_turf(src), 'sound/machines/click.ogg', 50, TRUE) + playsound(get_turf(src), SFX_TOOL_SWITCH, 20, TRUE) playsound(get_turf(src), RPD_USE_SOUND, 50, TRUE) qdel(attack_target) return @@ -479,7 +483,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( balloon_alert(user, "already configured for its directions!") return - playsound(get_turf(src), 'sound/machines/click.ogg', 50, TRUE) + playsound(get_turf(src), SFX_TOOL_SWITCH, 20, TRUE) // Something else could have changed the target's state while we were waiting in do_after // Most of the edge cases don't matter, but atmos components being able to have live connections not described by initializable directions sounds like a headache at best and an exploit at worst @@ -543,7 +547,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( if(isclosedturf(attack_target)) balloon_alert(user, "target is blocked!") return - playsound(get_turf(src), 'sound/machines/click.ogg', 50, TRUE) + playsound(get_turf(src), SFX_TOOL_SWITCH, 20, TRUE) if(do_after(user, disposal_build_speed, target = attack_target)) var/obj/structure/disposalconstruct/new_disposals_segment = new (attack_target, queued_pipe_type, queued_pipe_dir, queued_pipe_flipped) @@ -573,7 +577,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( balloon_alert(user, "something in the way!") return - playsound(get_turf(src), 'sound/machines/click.ogg', 50, TRUE) + playsound(get_turf(src), SFX_TOOL_SWITCH, 20, TRUE) if(do_after(user, transit_build_speed, target = attack_target)) playsound(get_turf(src), RPD_USE_SOUND, 50, TRUE) if(queued_pipe_type == /obj/structure/c_transit_tube_pod) @@ -620,7 +624,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( return FALSE if(!can_make_pipe) return FALSE - playsound(get_turf(src), 'sound/machines/click.ogg', 50, vary = TRUE) + playsound(get_turf(src), SFX_TOOL_SWITCH, 20, vary = TRUE) if(!continued_build && !do_after(user, atmos_build_speed, target = atom_to_target)) return FALSE if(!recipe.all_layers && (layer_to_build == 1 || layer_to_build == 5)) diff --git a/code/game/objects/items/rcd/RPLD.dm b/code/game/objects/items/rcd/RPLD.dm index 56452e2e452..e9a5fcc66db 100644 --- a/code/game/objects/items/rcd/RPLD.dm +++ b/code/game/objects/items/rcd/RPLD.dm @@ -152,6 +152,10 @@ return data +/obj/item/construction/plumbing/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + playsound(src, SFX_TOOL_SWITCH, 20, TRUE) + /obj/item/construction/plumbing/handle_ui_act(action, params, datum/tgui/ui, datum/ui_state/state) switch(action) if("color") @@ -178,8 +182,6 @@ blueprint = design blueprint_changed = TRUE - playsound(src, 'sound/effects/pop.ogg', 50, vary = FALSE) - return TRUE diff --git a/code/game/sound.dm b/code/game/sound.dm index 49c716d8e0c..b579a6215f5 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -472,6 +472,8 @@ 'sound/creatures/monkey/monkey_screech_6.ogg', 'sound/creatures/monkey/monkey_screech_7.ogg', ) + if(SFX_TOOL_SWITCH) + soundin = 'sound/items/handling/tool_switch.ogg' if(SFX_STONE_DROP) soundin = pick( 'sound/items/stones/stone_drop1.ogg', diff --git a/sound/items/handling/attribution.txt b/sound/items/handling/attribution.txt new file mode 100644 index 00000000000..c1a72a40c3c --- /dev/null +++ b/sound/items/handling/attribution.txt @@ -0,0 +1,7 @@ +{ +rcd_drop.ogg - made by sadboysuss - license: CC-by-SA +rcd_pickup.ogg - made by sadboysuss - license: CC-by-SA +rpd_drop.ogg - made by sadboysuss - license: CC-by-SA +rpd_pickup.ogg - made by sadboysuss - license: CC-by-SA +tool_switch.ogg - made by sadboysuss - license: CC-by-SA +} - edited by sadboysuss \ No newline at end of file diff --git a/sound/items/handling/rcd_drop.ogg b/sound/items/handling/rcd_drop.ogg new file mode 100644 index 00000000000..276a014ae31 Binary files /dev/null and b/sound/items/handling/rcd_drop.ogg differ diff --git a/sound/items/handling/rcd_pickup.ogg b/sound/items/handling/rcd_pickup.ogg new file mode 100644 index 00000000000..bc7d103800b Binary files /dev/null and b/sound/items/handling/rcd_pickup.ogg differ diff --git a/sound/items/handling/rpd_drop.ogg b/sound/items/handling/rpd_drop.ogg new file mode 100644 index 00000000000..8591719c918 Binary files /dev/null and b/sound/items/handling/rpd_drop.ogg differ diff --git a/sound/items/handling/rpd_pickup.ogg b/sound/items/handling/rpd_pickup.ogg new file mode 100644 index 00000000000..ef6bf685d00 Binary files /dev/null and b/sound/items/handling/rpd_pickup.ogg differ diff --git a/sound/items/handling/tool_switch.ogg b/sound/items/handling/tool_switch.ogg new file mode 100644 index 00000000000..b0cacda4162 Binary files /dev/null and b/sound/items/handling/tool_switch.ogg differ