diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 51f0936b717..32b07aef803 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -315,6 +315,8 @@ GLOBAL_LIST_EMPTY(sfx_datum_by_key) #define SFX_GAS_MASK_PICKUP "gas_mask_pickup" #define SFX_GAS_MASK_DROP "gas_mask_drop" #define SFX_GAS_MASK_EQUIP "gas_mask_equip" +#define SFX_GENERIC_DEVICE_PICKUP "generic_device_pickup" +#define SFX_GENERIC_DEVICE_DROP "generic_device_drop" // Standard is 44.1khz #define MIN_EMOTE_PITCH 40000 diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm index a96f38cf99f..4550b7cf6b8 100644 --- a/code/game/objects/items/cosmetics.dm +++ b/code/game/objects/items/cosmetics.dm @@ -194,6 +194,9 @@ inhand_icon_state = "razor" obj_flags = CONDUCTS_ELECTRICITY w_class = WEIGHT_CLASS_TINY + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP /obj/item/razor/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] begins shaving [user.p_them()]self without the razor guard! It looks like [user.p_theyre()] trying to commit suicide!")) diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index 759790ab155..62ff966c91c 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -11,6 +11,9 @@ w_class = WEIGHT_CLASS_SMALL slot_flags = ITEM_SLOT_BELT item_flags = NOBLUDGEON + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP var/flush = FALSE var/mob/living/silicon/ai/AI diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 4ee61917f16..f38aa9147cf 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -25,6 +25,10 @@ light_range = 4 light_power = 1 light_on = FALSE + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP + /// If we've been forcibly disabled for a temporary amount of time. COOLDOWN_DECLARE(disabled_time) /// Can we toggle this light on and off (used for contexual screentips only) diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 7b8257d9ede..c3b17c4ce1f 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -11,6 +11,9 @@ w_class = WEIGHT_CLASS_SMALL slot_flags = ITEM_SLOT_BELT obj_flags = UNIQUE_RENAME + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP var/gpstag var/tracking_on = TRUE var/debug_mode = FALSE diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index 3867ace4fc1..c7507b31bd0 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -9,6 +9,9 @@ obj_flags = CONDUCTS_ELECTRICITY slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_HUGE + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT *5, /datum/material/glass=SHEET_MATERIAL_AMOUNT * 1.25) var/on = TRUE diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index d2d479693f9..9245f00a0ed 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -11,6 +11,9 @@ desc = "A basic handheld radio that communicates with local telecommunication networks." dog_fashion = /datum/dog_fashion/back interaction_flags_atom = parent_type::interaction_flags_atom | INTERACT_ATOM_ALLOW_USER_LOCATION | INTERACT_ATOM_IGNORE_MOBILITY + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP obj_flags = CONDUCTS_ELECTRICITY slot_flags = ITEM_SLOT_BELT diff --git a/code/game/objects/items/devices/scanners/autopsy_scanner.dm b/code/game/objects/items/devices/scanners/autopsy_scanner.dm index af0ff55abd1..d407ce6b8e3 100644 --- a/code/game/objects/items/devices/scanners/autopsy_scanner.dm +++ b/code/game/objects/items/devices/scanners/autopsy_scanner.dm @@ -13,6 +13,9 @@ w_class = WEIGHT_CLASS_NORMAL custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*2) custom_price = PAYCHECK_COMMAND + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP /obj/item/autopsy_scanner/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) if(!isliving(interacting_with)) diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm index 7e70edc5f5e..bb0f7fdde8d 100644 --- a/code/game/objects/items/devices/scanners/health_analyzer.dm +++ b/code/game/objects/items/devices/scanners/health_analyzer.dm @@ -22,6 +22,9 @@ custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT *2) interaction_flags_click = NEED_LITERACY|NEED_LIGHT|ALLOW_RESTING custom_price = PAYCHECK_COMMAND + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP /// Verbose/condensed var/mode = SCANNER_VERBOSE /// HEALTH/WOUND diff --git a/code/game/objects/items/devices/scanners/plant_analyzer.dm b/code/game/objects/items/devices/scanners/plant_analyzer.dm index 857454fb7fc..e653d09dcb8 100644 --- a/code/game/objects/items/devices/scanners/plant_analyzer.dm +++ b/code/game/objects/items/devices/scanners/plant_analyzer.dm @@ -13,6 +13,9 @@ w_class = WEIGHT_CLASS_TINY slot_flags = ITEM_SLOT_BELT custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*0.3, /datum/material/glass =SMALL_MATERIAL_AMOUNT*0.2) + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP /// Cached data from ui_interact var/list/last_scan_data /// Weakref to the last thing we scanned diff --git a/code/game/objects/items/devices/scanners/sequence_scanner.dm b/code/game/objects/items/devices/scanners/sequence_scanner.dm index d22372fa108..938c5637b74 100644 --- a/code/game/objects/items/devices/scanners/sequence_scanner.dm +++ b/code/game/objects/items/devices/scanners/sequence_scanner.dm @@ -15,6 +15,9 @@ throw_speed = 3 throw_range = 7 custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*2) + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP var/list/discovered = list() //hit a dna console to update the scanners database var/list/buffer diff --git a/code/game/objects/items/devices/scanners/t_scanner.dm b/code/game/objects/items/devices/scanners/t_scanner.dm index 0e8e2c44182..30083139abd 100644 --- a/code/game/objects/items/devices/scanners/t_scanner.dm +++ b/code/game/objects/items/devices/scanners/t_scanner.dm @@ -11,6 +11,9 @@ lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT * 1.5) + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP /// Is this T-Ray scanner currently on? var/on = FALSE diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm index e68c8095fe0..97320669be8 100644 --- a/code/game/objects/items/devices/sensor_device.dm +++ b/code/game/objects/items/devices/sensor_device.dm @@ -11,6 +11,9 @@ slot_flags = ITEM_SLOT_BELT custom_price = PAYCHECK_CREW * 5 custom_premium_price = PAYCHECK_CREW * 6 + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP /obj/item/sensor_device/attack_self(mob/user) GLOB.crewmonitor.show(user,src) //Proc already exists, just had to call it diff --git a/code/game/objects/items/holosign_creator.dm b/code/game/objects/items/holosign_creator.dm index 23db75e850c..6e46cdb2a4d 100644 --- a/code/game/objects/items/holosign_creator.dm +++ b/code/game/objects/items/holosign_creator.dm @@ -13,6 +13,9 @@ throw_speed = 3 throw_range = 7 item_flags = NOBLUDGEON + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP var/list/signs var/max_signs = 10 //time to create a holosign in deciseconds. diff --git a/code/game/objects/items/inspector.dm b/code/game/objects/items/inspector.dm index 2f96f3fb737..8a08562bd84 100644 --- a/code/game/objects/items/inspector.dm +++ b/code/game/objects/items/inspector.dm @@ -22,6 +22,9 @@ interaction_flags_click = NEED_DEXTERITY throw_range = 1 throw_speed = 1 + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP ///How long it takes to print on time each mode, ordered NORMAL, FAST, HONK var/list/time_list = list(5 SECONDS, 1 SECONDS, 0.1 SECONDS) ///Which print time mode we're on. diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index 2e0f7af6102..dfff30effdc 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -14,6 +14,9 @@ throw_speed = 3 throw_range = 7 custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 5, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 2.5) + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP var/active = FALSE var/atom/movable/target //The thing we're searching for var/minimum_range = 0 //at what range the pinpointer declares you to be at your destination diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index a442cc327ab..18eabb3f816 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -87,6 +87,9 @@ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5) armor_type = /datum/armor/item_hand_tele resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP ///List of portal pairs created by this hand tele var/list/active_portal_pairs = list() ///Maximum concurrent active portal pairs allowed diff --git a/code/game/objects/items/wall_mounted.dm b/code/game/objects/items/wall_mounted.dm index b6ad4ecd9f7..1abf80b5a19 100644 --- a/code/game/objects/items/wall_mounted.dm +++ b/code/game/objects/items/wall_mounted.dm @@ -94,3 +94,6 @@ custom_materials = list(/datum/material/iron= SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass= SMALL_MATERIAL_AMOUNT * 0.5) grind_results = list(/datum/reagent/iron = 10, /datum/reagent/silicon = 10) custom_price = PAYCHECK_CREW * 0.5 + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP diff --git a/code/game/sound/sound_keys/sound_keys.dm b/code/game/sound/sound_keys/sound_keys.dm index 0a7c4ea9e0f..e8d528408e1 100644 --- a/code/game/sound/sound_keys/sound_keys.dm +++ b/code/game/sound/sound_keys/sound_keys.dm @@ -1089,3 +1089,22 @@ 'sound/items/gas_mask/gas_mask_equip3.ogg', ) +/datum/sound_effect/generic_device_pickup + key = SFX_GENERIC_DEVICE_PICKUP + file_paths = list( + 'sound/items/generic_device/generic_device_pickup1.ogg', + 'sound/items/generic_device/generic_device_pickup2.ogg', + 'sound/items/generic_device/generic_device_pickup3.ogg', + 'sound/items/generic_device/generic_device_pickup4.ogg', + 'sound/items/generic_device/generic_device_pickup5.ogg', + ) + +/datum/sound_effect/generic_device_drop + key = SFX_GENERIC_DEVICE_DROP + file_paths = list( + 'sound/items/generic_device/generic_device_drop1.ogg', + 'sound/items/generic_device/generic_device_drop2.ogg', + 'sound/items/generic_device/generic_device_drop3.ogg', + 'sound/items/generic_device/generic_device_drop4.ogg', + 'sound/items/generic_device/generic_device_drop5.ogg', + ) diff --git a/code/modules/experisci/handheld_scanner.dm b/code/modules/experisci/handheld_scanner.dm index 67850aedd28..f89fda97f3f 100644 --- a/code/modules/experisci/handheld_scanner.dm +++ b/code/modules/experisci/handheld_scanner.dm @@ -11,6 +11,9 @@ icon_state = "experiscanner" lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP /obj/item/experi_scanner/Initialize(mapload) ..() diff --git a/code/modules/mod/modules/_module.dm b/code/modules/mod/modules/_module.dm index 17d72f2e68f..c2a43b6dd95 100644 --- a/code/modules/mod/modules/_module.dm +++ b/code/modules/mod/modules/_module.dm @@ -4,6 +4,9 @@ icon = 'icons/obj/clothing/modsuit/mod_modules.dmi' icon_state = "module" abstract_type = /obj/item/mod/module + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP /// If it can be removed var/removable = TRUE /// If it's passive, togglable, usable or active diff --git a/code/modules/modular_computers/computers/item/pda.dm b/code/modules/modular_computers/computers/item/pda.dm index 0946903ee17..25ef899febb 100644 --- a/code/modules/modular_computers/computers/item/pda.dm +++ b/code/modules/modular_computers/computers/item/pda.dm @@ -31,6 +31,9 @@ shell_capacity = SHELL_CAPACITY_SMALL action_slots = ALL + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP ///The item currently inserted into the PDA, starts with a pen. var/obj/item/inserted_item = /obj/item/pen diff --git a/code/modules/pai/card.dm b/code/modules/pai/card.dm index 0c394227c6c..b5d2e183c9f 100644 --- a/code/modules/pai/card.dm +++ b/code/modules/pai/card.dm @@ -11,6 +11,9 @@ slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL worn_icon_state = "electronic" + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP /// Spam alert prevention var/alert_cooldown diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index aab830e0304..696134e7893 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -263,6 +263,9 @@ righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' obj_flags = CONDUCTS_ELECTRICITY slot_flags = ITEM_SLOT_BELT + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP /obj/item/dest_tagger/borg name = "cyborg destination tagger" diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index 5a2a2a47630..ffbf453f393 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -9,6 +9,9 @@ If you create T5+ please take a pass at mech_fabricator.dm. The parts being good ///The generic category type that the stock part belongs to. Generic objects that should not be instantiated should have the same type and abstract_type abstract_type = /obj/item/stock_parts w_class = WEIGHT_CLASS_SMALL + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP var/rating = 1 ///Used when a base part has a different name to higher tiers of part. For example, machine frames want any servo and not just a micro-servo. var/base_name diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index ec2c59bd640..7291157ba48 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -643,6 +643,9 @@ attack_verb_simple = list("pump", "siphon") tool_behaviour = TOOL_BLOODFILTER toolspeed = 1 + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP /// Assoc list of chem ids to names, used for deciding which chems to filter when used for surgery var/list/whitelist = list() var/surgical_tray_overlay = "filter" diff --git a/code/modules/vehicles/mecha/mecha_parts.dm b/code/modules/vehicles/mecha/mecha_parts.dm index a8719eb1d4d..e0a31c762da 100644 --- a/code/modules/vehicles/mecha/mecha_parts.dm +++ b/code/modules/vehicles/mecha/mecha_parts.dm @@ -9,6 +9,9 @@ abstract_type = /obj/item/mecha_parts w_class = WEIGHT_CLASS_GIGANTIC obj_flags = CONDUCTS_ELECTRICITY + sound_vary = TRUE + pickup_sound = SFX_GENERIC_DEVICE_PICKUP + drop_sound = SFX_GENERIC_DEVICE_DROP /obj/item/mecha_parts/proc/try_attach_part(mob/user, obj/vehicle/sealed/mecha/M, attach_right = FALSE) //For attaching parts to a finished mech if(!user.transferItemToLoc(src, M)) diff --git a/sound/items/generic_device/attribution.txt b/sound/items/generic_device/attribution.txt new file mode 100644 index 00000000000..86532e8255b --- /dev/null +++ b/sound/items/generic_device/attribution.txt @@ -0,0 +1 @@ +generic_device sounds made by grungussuss, license: CC-BY-SA \ No newline at end of file diff --git a/sound/items/generic_device/generic_device_drop1.ogg b/sound/items/generic_device/generic_device_drop1.ogg new file mode 100644 index 00000000000..b2974510021 Binary files /dev/null and b/sound/items/generic_device/generic_device_drop1.ogg differ diff --git a/sound/items/generic_device/generic_device_drop2.ogg b/sound/items/generic_device/generic_device_drop2.ogg new file mode 100644 index 00000000000..a53ffc2f27a Binary files /dev/null and b/sound/items/generic_device/generic_device_drop2.ogg differ diff --git a/sound/items/generic_device/generic_device_drop3.ogg b/sound/items/generic_device/generic_device_drop3.ogg new file mode 100644 index 00000000000..d58e1dd736c Binary files /dev/null and b/sound/items/generic_device/generic_device_drop3.ogg differ diff --git a/sound/items/generic_device/generic_device_drop4.ogg b/sound/items/generic_device/generic_device_drop4.ogg new file mode 100644 index 00000000000..440126beb17 Binary files /dev/null and b/sound/items/generic_device/generic_device_drop4.ogg differ diff --git a/sound/items/generic_device/generic_device_drop5.ogg b/sound/items/generic_device/generic_device_drop5.ogg new file mode 100644 index 00000000000..f272337c26e Binary files /dev/null and b/sound/items/generic_device/generic_device_drop5.ogg differ diff --git a/sound/items/generic_device/generic_device_pickup1.ogg b/sound/items/generic_device/generic_device_pickup1.ogg new file mode 100644 index 00000000000..8d0c89d628e Binary files /dev/null and b/sound/items/generic_device/generic_device_pickup1.ogg differ diff --git a/sound/items/generic_device/generic_device_pickup2.ogg b/sound/items/generic_device/generic_device_pickup2.ogg new file mode 100644 index 00000000000..91c443738f3 Binary files /dev/null and b/sound/items/generic_device/generic_device_pickup2.ogg differ diff --git a/sound/items/generic_device/generic_device_pickup3.ogg b/sound/items/generic_device/generic_device_pickup3.ogg new file mode 100644 index 00000000000..f6dd7cb8002 Binary files /dev/null and b/sound/items/generic_device/generic_device_pickup3.ogg differ diff --git a/sound/items/generic_device/generic_device_pickup4.ogg b/sound/items/generic_device/generic_device_pickup4.ogg new file mode 100644 index 00000000000..348d4976a07 Binary files /dev/null and b/sound/items/generic_device/generic_device_pickup4.ogg differ diff --git a/sound/items/generic_device/generic_device_pickup5.ogg b/sound/items/generic_device/generic_device_pickup5.ogg new file mode 100644 index 00000000000..f4ed65563e1 Binary files /dev/null and b/sound/items/generic_device/generic_device_pickup5.ogg differ