diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 77964258..995449ea 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -10,6 +10,7 @@ #define CHANNEL_BUZZ 1018 #define CHANNEL_BICYCLE 1017 + //CIT CHANNELS - TRY NOT TO REGRESS #define CHANNEL_PRED 1010 #define CHANNEL_DIGEST 1009 @@ -126,4 +127,9 @@ #define SOUND_AREA_WOODFLOOR SOUND_ENVIRONMENT_CITY #define INTERACTION_SOUND_RANGE_MODIFIER -3 -#define EQUIP_SOUND_VOLUME 30 \ No newline at end of file +#define EQUIP_SOUND_VOLUME 30 + + +#define PICKUP_SOUND_VOLUME 40 +#define DROP_SOUND_VOLUME 50 +#define YEET_SOUND_VOLUME 90 \ No newline at end of file diff --git a/code/datums/components/storage/concrete/_concrete.dm b/code/datums/components/storage/concrete/_concrete.dm index ec22b6b7..eb900a18 100644 --- a/code/datums/components/storage/concrete/_concrete.dm +++ b/code/datums/components/storage/concrete/_concrete.dm @@ -134,7 +134,7 @@ if(ismob(parent.loc) && isitem(AM)) var/obj/item/I = AM var/mob/M = parent.loc - I.dropped(M) + I.dropped(M, TRUE) if(new_location) //Reset the items values _removal_reset(AM) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 8cb1f333..3bc00c84 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -32,7 +32,13 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/hitsound var/usesound - var/throwhitsound + + var/mob_throw_hit_sound + + ///Sound uses when picking the item up (into your hands) + var/pickup_sound + ///Sound uses when dropping the item, or when its thrown. + var/drop_sound ///Sound used when equipping the item into a valid slot var/equip_sound @@ -376,7 +382,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /obj/item/proc/talk_into(mob/M, input, channel, spans, datum/language/language) return ITALICS | REDUCE_RANGE -/obj/item/proc/dropped(mob/user) +/obj/item/proc/dropped(mob/user, silent) for(var/X in actions) var/datum/action/A = X A.Remove(user) @@ -384,6 +390,8 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) qdel(src) item_flags &= ~IN_INVENTORY SEND_SIGNAL(src, COMSIG_ITEM_DROPPED,user) + if(!silent) + playsound(src, drop_sound, DROP_SOUND_VOLUME, ignore_walls = FALSE) // called just as an item is picked up (loc is not yet changed) /obj/item/proc/pickup(mob/user) @@ -427,8 +435,10 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) A.Grant(user) item_flags |= IN_INVENTORY - if(equip_sound && (slot_flags & slotdefine2slotbit(slot))) + if(equip_sound &&(slot_flags & slotdefine2slotbit(slot))) playsound(src, equip_sound, EQUIP_SOUND_VOLUME, TRUE, ignore_walls = FALSE) + else if(slot == SLOT_HANDS) + playsound(src, pickup_sound, PICKUP_SOUND_VOLUME, ignore_walls = FALSE) //sometimes we only want to grant the item's action if it's equipped in a specific slot. /obj/item/proc/item_action_slot_check(slot, mob/user) @@ -582,6 +592,21 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/itempush = 1 if(w_class < 4) itempush = 0 //too light to push anything + + if(istype(hit_atom, /mob/living)) //Living mobs handle hit sounds differently. + var/volume = get_volume_by_throwforce_and_or_w_class() + if (throwforce > 0) + if (mob_throw_hit_sound) + playsound(hit_atom, mob_throw_hit_sound, volume, TRUE, -1) + else if(hitsound) + playsound(hit_atom, hitsound, volume, TRUE, -1) + else + playsound(hit_atom, 'sound/weapons/genhit.ogg',volume, TRUE, -1) + else + playsound(hit_atom, 'sound/weapons/throwtap.ogg', 1, volume, -1) + + else + playsound(src, drop_sound, YEET_SOUND_VOLUME, ignore_walls = FALSE) return hit_atom.hitby(src, 0, itempush, throwingdatum=throwingdatum) /obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, messy_throw = TRUE) @@ -853,7 +878,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) layer = initial(layer) plane = initial(plane) appearance_flags &= ~NO_CLIENT_COLOR - dropped(M) + dropped(M, FALSE) return ..() /obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=TRUE, diagonals_first = FALSE, var/datum/callback/callback) diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 87d7b5e5..463bc809 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -32,6 +32,9 @@ var/datum/integrated_io/selected_io = null //functional for integrated circuits. var/mode = 0 + drop_sound = 'sound/items/handling/multitool_drop.ogg' + pickup_sound = 'sound/items/handling/multitool_pickup.ogg' + /obj/item/multitool/examine(mob/user) . = ..() if(selected_io) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 4cfeb324..5da495f3 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -355,6 +355,9 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ merge_type = /obj/item/stack/sheet/cloth grind_results = list(/datum/reagent/cellulose = 4) + drop_sound = 'sound/items/handling/cloth_drop.ogg' + pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + /obj/item/stack/sheet/cloth/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.cloth_recipes return ..() @@ -400,6 +403,11 @@ GLOBAL_LIST_INIT(durathread_recipes, list ( \ merge_type = /obj/item/stack/sheet/durathread grind_results = list(/datum/reagent/cellulose = 10) + drop_sound = 'sound/items/handling/cloth_drop.ogg' + pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + + + /obj/item/stack/sheet/durathread/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.durathread_recipes return ..() diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 78d3d057..69ca79d2 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -12,6 +12,8 @@ var/content_overlays = FALSE //If this is true, the belt will gain overlays based on what it's holding var/worn_overlays = FALSE //worn counterpart of the above. equip_sound = 'sound/items/equip/toolbelt_equip.ogg' + drop_sound = 'sound/items/handling/toolbelt_drop.ogg' + pickup_sound = 'sound/items/handling/toolbelt_pickup.ogg' /obj/item/storage/belt/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins belting [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 4f00a15d..7298839c 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -35,6 +35,9 @@ var/illustration = "writing" rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE //exploits ahoy + drop_sound = 'sound/items/handling/cardboardbox_drop.ogg' + pickup_sound = 'sound/items/handling/cardboardbox_pickup.ogg' + /obj/item/storage/box/Initialize(mapload) . = ..() update_icon() @@ -643,6 +646,8 @@ w_class = WEIGHT_CLASS_TINY slot_flags = ITEM_SLOT_BELT price = 2 + drop_sound = 'sound/items/handling/matchbox_drop.ogg' + pickup_sound = 'sound/items/handling/matchbox_pickup.ogg' /obj/item/storage/box/matches/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 13ad5cbb..c8fa3050 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -16,6 +16,8 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) materials = list(MAT_METAL = 500) attack_verb = list("robusted") hitsound = 'sound/weapons/smash.ogg' + drop_sound = 'sound/items/handling/toolbox_drop.ogg' + pickup_sound = 'sound/items/handling/toolbox_pickup.ogg' var/latches = "single_latch" var/has_latches = TRUE var/can_rubberify = TRUE diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index ae86295a..74327fca 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -13,6 +13,9 @@ w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50) + drop_sound = 'sound/items/handling/crowbar_drop.ogg' + pickup_sound = 'sound/items/handling/crowbar_pickup.ogg' + attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked") tool_behaviour = TOOL_CROWBAR toolspeed = 1 diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index e0f31486..ceb0a804 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -19,6 +19,8 @@ usesound = list('sound/items/screwdriver.ogg', 'sound/items/screwdriver2.ogg') tool_behaviour = TOOL_SCREWDRIVER toolspeed = 1 + drop_sound = 'sound/items/handling/screwdriver_drop.ogg' + pickup_sound = 'sound/items/handling/screwdriver_pickup.ogg' armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 30) var/random_color = TRUE //if the screwdriver uses random coloring var/static/list/screwdriver_colors = list( diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index f880a7c5..9b43af28 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -34,6 +34,9 @@ tool_behaviour = TOOL_WELDER toolspeed = 1 + drop_sound = 'sound/items/handling/weldingtool_drop.ogg' + pickup_sound = 'sound/items/handling/weldingtool_pickup.ogg' + /obj/item/weldingtool/Initialize() . = ..() create_reagents(max_fuel) diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index 8586fd47..f8cc2556 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -17,6 +17,9 @@ hitsound = 'sound/items/wirecutter.ogg' usesound = 'sound/items/wirecutter.ogg' + drop_sound = 'sound/items/handling/wirecutter_drop.ogg' + pickup_sound = 'sound/items/handling/wirecutter_pickup.ogg' + tool_behaviour = TOOL_WIRECUTTER toolspeed = 1 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 30) diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm index 3e880edb..6ae950da 100644 --- a/code/game/objects/items/tools/wrench.dm +++ b/code/game/objects/items/tools/wrench.dm @@ -13,6 +13,9 @@ usesound = 'sound/items/ratchet.ogg' materials = list(MAT_METAL=150) + drop_sound = 'sound/items/handling/wrench_drop.ogg' + pickup_sound = 'sound/items/handling/wrench_pickup.ogg' + attack_verb = list("bashed", "battered", "bludgeoned", "whacked") tool_behaviour = TOOL_WRENCH toolspeed = 1 diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 0d815703..17611e2f 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -609,6 +609,8 @@ This is here to make the tiles around the station mininuke change when it's arme lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi' icon_state = "datadisk0" + drop_sound = 'sound/items/handling/disk_drop.ogg' + pickup_sound = 'sound/items/handling/disk_pickup.ogg' /obj/item/disk/nuclear name = "nuclear authentication disk" diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm index 950074f3..35cac248 100644 --- a/code/modules/clothing/suits/_suits.dm +++ b/code/modules/clothing/suits/_suits.dm @@ -10,6 +10,8 @@ var/togglename = null var/suittoggled = FALSE + drop_sound = 'sound/items/handling/cloth_drop.ogg' + pickup_sound = 'sound/items/handling/cloth_pickup.ogg' var/adjusted = NORMAL_STYLE mutantrace_variation = MUTANTRACE_VARIATION var/tauric = FALSE //Citadel Add for tauric hardsuits diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index d581f8b2..3a570607 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -18,6 +18,9 @@ mutantrace_variation = MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to. equip_sound = 'sound/items/equip/jumpsuit_equip.ogg' + drop_sound = 'sound/items/handling/cloth_drop.ogg' + pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + /obj/item/clothing/under/worn_overlays(isinhands = FALSE) . = list() if(!isinhands) diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index fcd4d57b..95b3e8db 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -12,6 +12,9 @@ resistance_flags = ACID_PROOF obj_flags = UNIQUE_RENAME + drop_sound = 'sound/items/handling/drinkglass_drop.ogg' + pickup_sound = 'sound/items/handling/drinkglass_pickup.ogg' + /obj/item/reagent_containers/food/drinks/drinkingglass/on_reagent_change(changetype) cut_overlays() if(reagents.reagent_list.len) diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index 892bab04..aa7f87bf 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -193,6 +193,8 @@ var/unique = 0 //0 - Normal book, 1 - Should not be treated as normal book, unable to be copied, unable to be modified var/title //The real name of the book. var/window_size = null // Specific window size for the book, i.e: "1920x1080", Size x Width + drop_sound = 'sound/items/handling/book_drop.ogg' + pickup_sound = 'sound/items/handling/book_pickup.ogg' /obj/item/book/attack_self(mob/user) if(is_blind(user)) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 71fdf998..b869df35 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -105,7 +105,7 @@ return /mob/living/proc/can_embed(obj/item/I) - return FALSE + return FALSE /mob/living/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum) var/obj/item/I @@ -126,22 +126,10 @@ return TRUE var/zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest var/dtype = BRUTE - var/volume = I.get_volume_by_throwforce_and_or_w_class() + SEND_SIGNAL(I, COMSIG_MOVABLE_IMPACT_ZONE, src, zone) dtype = I.damtype - if (I.throwforce > 0) //If the weapon's throwforce is greater than zero... - if (I.throwhitsound) //...and throwhitsound is defined... - playsound(loc, I.throwhitsound, volume, 1, -1) //...play the weapon's throwhitsound. - else if(I.hitsound) //Otherwise, if the weapon's hitsound is defined... - playsound(loc, I.hitsound, volume, 1, -1) //...play the weapon's hitsound. - else if(!I.throwhitsound) //Otherwise, if throwhitsound isn't defined... - playsound(loc, 'sound/weapons/genhit.ogg',volume, 1, -1) //...play genhit.ogg. - - else if(!I.throwhitsound && I.throwforce > 0) //Otherwise, if the item doesn't have a throwhitsound and has a throwforce greater than zero... - playsound(loc, 'sound/weapons/genhit.ogg', volume, 1, -1)//...play genhit.ogg - if(!I.throwforce)// Otherwise, if the item's throwforce is 0... - playsound(loc, 'sound/weapons/throwtap.ogg', 1, volume, -1)//...play throwtap.ogg. if(!blocked) visible_message("[src] has been hit by [I].", \ "[src] has been hit by [I].") @@ -397,7 +385,7 @@ if (INTENT_GRAB) grabbedby(M) return FALSE - if(INTENT_HARM) + if(INTENT_HARM) if(HAS_TRAIT(M, TRAIT_PACIFISM)) to_chat(M, "You don't want to hurt anyone!") return FALSE diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 7eb1d72b..f615e82d 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -23,6 +23,9 @@ dog_fashion = /datum/dog_fashion/head grind_results = list(/datum/reagent/cellulose = 2) + drop_sound = 'sound/items/handling/paper_drop.ogg' + pickup_sound = 'sound/items/handling/paper_pickup.ogg' + var/info //What's actually written on the paper. var/info_links //A different version of the paper which includes html links at fields and EOF var/stamps //The (text for the) stamps on the paper. @@ -143,6 +146,7 @@ var/locid = 0 var/laststart = 1 var/textindex = 1 + playsound(src, 'sound/items/handling/writing.ogg', 50, 1, -1) while(locid < 15) //hey whoever decided a while(1) was a good idea here, i hate you var/istart = 0 if(links) diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 9f670ecb..909ac3f0 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -238,7 +238,6 @@ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' hitsound = 'sound/weapons/circsawhit.ogg' - throwhitsound = 'sound/weapons/pierce.ogg' item_flags = SURGICAL_TOOL flags_1 = CONDUCT_1 force = 15 @@ -251,6 +250,7 @@ sharpness = IS_SHARP tool_behaviour = TOOL_SAW toolspeed = 1 + mob_throw_hit_sound = 'sound/weapons/pierce.ogg' /obj/item/circular_saw/Initialize() . = ..() @@ -263,7 +263,6 @@ icon = 'icons/obj/surgery.dmi' icon_state = "saw" hitsound = 'sound/weapons/circsawhit.ogg' - throwhitsound = 'sound/weapons/pierce.ogg' flags_1 = CONDUCT_1 force = 10 w_class = WEIGHT_CLASS_SMALL diff --git a/sound/items/handling/ammobox_drop.ogg b/sound/items/handling/ammobox_drop.ogg new file mode 100644 index 00000000..13fce70f Binary files /dev/null and b/sound/items/handling/ammobox_drop.ogg differ diff --git a/sound/items/handling/ammobox_pickup.ogg b/sound/items/handling/ammobox_pickup.ogg new file mode 100644 index 00000000..9532a769 Binary files /dev/null and b/sound/items/handling/ammobox_pickup.ogg differ diff --git a/sound/items/handling/book_drop.ogg b/sound/items/handling/book_drop.ogg new file mode 100644 index 00000000..b492b665 Binary files /dev/null and b/sound/items/handling/book_drop.ogg differ diff --git a/sound/items/handling/book_pickup.ogg b/sound/items/handling/book_pickup.ogg new file mode 100644 index 00000000..120a4e47 Binary files /dev/null and b/sound/items/handling/book_pickup.ogg differ diff --git a/sound/items/handling/cardboardbox_drop.ogg b/sound/items/handling/cardboardbox_drop.ogg new file mode 100644 index 00000000..7070ba1c Binary files /dev/null and b/sound/items/handling/cardboardbox_drop.ogg differ diff --git a/sound/items/handling/cardboardbox_pickup.ogg b/sound/items/handling/cardboardbox_pickup.ogg new file mode 100644 index 00000000..aa4e7212 Binary files /dev/null and b/sound/items/handling/cardboardbox_pickup.ogg differ diff --git a/sound/items/handling/cloth_drop.ogg b/sound/items/handling/cloth_drop.ogg new file mode 100644 index 00000000..5bf734ca Binary files /dev/null and b/sound/items/handling/cloth_drop.ogg differ diff --git a/sound/items/handling/cloth_pickup.ogg b/sound/items/handling/cloth_pickup.ogg new file mode 100644 index 00000000..f4698888 Binary files /dev/null and b/sound/items/handling/cloth_pickup.ogg differ diff --git a/sound/items/handling/component_drop.ogg b/sound/items/handling/component_drop.ogg new file mode 100644 index 00000000..093fde7c Binary files /dev/null and b/sound/items/handling/component_drop.ogg differ diff --git a/sound/items/handling/component_pickup.ogg b/sound/items/handling/component_pickup.ogg new file mode 100644 index 00000000..cfaba1dd Binary files /dev/null and b/sound/items/handling/component_pickup.ogg differ diff --git a/sound/items/handling/crowbar_drop.ogg b/sound/items/handling/crowbar_drop.ogg new file mode 100644 index 00000000..77464110 Binary files /dev/null and b/sound/items/handling/crowbar_drop.ogg differ diff --git a/sound/items/handling/crowbar_pickup.ogg b/sound/items/handling/crowbar_pickup.ogg new file mode 100644 index 00000000..79b276f8 Binary files /dev/null and b/sound/items/handling/crowbar_pickup.ogg differ diff --git a/sound/items/handling/disk_drop.ogg b/sound/items/handling/disk_drop.ogg new file mode 100644 index 00000000..3174b881 Binary files /dev/null and b/sound/items/handling/disk_drop.ogg differ diff --git a/sound/items/handling/disk_pickup.ogg b/sound/items/handling/disk_pickup.ogg new file mode 100644 index 00000000..8f67406a Binary files /dev/null and b/sound/items/handling/disk_pickup.ogg differ diff --git a/sound/items/handling/drinkglass_drop.ogg b/sound/items/handling/drinkglass_drop.ogg new file mode 100644 index 00000000..caf582e6 Binary files /dev/null and b/sound/items/handling/drinkglass_drop.ogg differ diff --git a/sound/items/handling/drinkglass_pickup.ogg b/sound/items/handling/drinkglass_pickup.ogg new file mode 100644 index 00000000..83f6cefc Binary files /dev/null and b/sound/items/handling/drinkglass_pickup.ogg differ diff --git a/sound/items/handling/matchbox_drop.ogg b/sound/items/handling/matchbox_drop.ogg new file mode 100644 index 00000000..8e4e276c Binary files /dev/null and b/sound/items/handling/matchbox_drop.ogg differ diff --git a/sound/items/handling/matchbox_pickup.ogg b/sound/items/handling/matchbox_pickup.ogg new file mode 100644 index 00000000..82c23410 Binary files /dev/null and b/sound/items/handling/matchbox_pickup.ogg differ diff --git a/sound/items/handling/multitool_drop.ogg b/sound/items/handling/multitool_drop.ogg new file mode 100644 index 00000000..67e0a410 Binary files /dev/null and b/sound/items/handling/multitool_drop.ogg differ diff --git a/sound/items/handling/multitool_pickup.ogg b/sound/items/handling/multitool_pickup.ogg new file mode 100644 index 00000000..cbd598ce Binary files /dev/null and b/sound/items/handling/multitool_pickup.ogg differ diff --git a/sound/items/handling/paper_drop.ogg b/sound/items/handling/paper_drop.ogg new file mode 100644 index 00000000..27ce2b3d Binary files /dev/null and b/sound/items/handling/paper_drop.ogg differ diff --git a/sound/items/handling/paper_pickup.ogg b/sound/items/handling/paper_pickup.ogg new file mode 100644 index 00000000..55ae2b3d Binary files /dev/null and b/sound/items/handling/paper_pickup.ogg differ diff --git a/sound/items/handling/screwdriver_drop.ogg b/sound/items/handling/screwdriver_drop.ogg new file mode 100644 index 00000000..d460fd0a Binary files /dev/null and b/sound/items/handling/screwdriver_drop.ogg differ diff --git a/sound/items/handling/screwdriver_pickup.ogg b/sound/items/handling/screwdriver_pickup.ogg new file mode 100644 index 00000000..368f1bfd Binary files /dev/null and b/sound/items/handling/screwdriver_pickup.ogg differ diff --git a/sound/items/handling/tape_drop.ogg b/sound/items/handling/tape_drop.ogg new file mode 100644 index 00000000..5379a114 Binary files /dev/null and b/sound/items/handling/tape_drop.ogg differ diff --git a/sound/items/handling/tape_pickup.ogg b/sound/items/handling/tape_pickup.ogg new file mode 100644 index 00000000..77f74f19 Binary files /dev/null and b/sound/items/handling/tape_pickup.ogg differ diff --git a/sound/items/handling/taperecorder_drop.ogg b/sound/items/handling/taperecorder_drop.ogg new file mode 100644 index 00000000..6e3c1511 Binary files /dev/null and b/sound/items/handling/taperecorder_drop.ogg differ diff --git a/sound/items/handling/taperecorder_pickup.ogg b/sound/items/handling/taperecorder_pickup.ogg new file mode 100644 index 00000000..941640ae Binary files /dev/null and b/sound/items/handling/taperecorder_pickup.ogg differ diff --git a/sound/items/handling/toolbelt_drop.ogg b/sound/items/handling/toolbelt_drop.ogg new file mode 100644 index 00000000..2a3c4655 Binary files /dev/null and b/sound/items/handling/toolbelt_drop.ogg differ diff --git a/sound/items/handling/toolbelt_pickup.ogg b/sound/items/handling/toolbelt_pickup.ogg new file mode 100644 index 00000000..58e5d259 Binary files /dev/null and b/sound/items/handling/toolbelt_pickup.ogg differ diff --git a/sound/items/handling/toolbox_drop.ogg b/sound/items/handling/toolbox_drop.ogg new file mode 100644 index 00000000..abf56946 Binary files /dev/null and b/sound/items/handling/toolbox_drop.ogg differ diff --git a/sound/items/handling/toolbox_pickup.ogg b/sound/items/handling/toolbox_pickup.ogg new file mode 100644 index 00000000..01a4ab4b Binary files /dev/null and b/sound/items/handling/toolbox_pickup.ogg differ diff --git a/sound/items/handling/weldingtool_drop.ogg b/sound/items/handling/weldingtool_drop.ogg new file mode 100644 index 00000000..58b722ad Binary files /dev/null and b/sound/items/handling/weldingtool_drop.ogg differ diff --git a/sound/items/handling/weldingtool_pickup.ogg b/sound/items/handling/weldingtool_pickup.ogg new file mode 100644 index 00000000..da78b06b Binary files /dev/null and b/sound/items/handling/weldingtool_pickup.ogg differ diff --git a/sound/items/handling/wirecutter_drop.ogg b/sound/items/handling/wirecutter_drop.ogg new file mode 100644 index 00000000..e099870f Binary files /dev/null and b/sound/items/handling/wirecutter_drop.ogg differ diff --git a/sound/items/handling/wirecutter_pickup.ogg b/sound/items/handling/wirecutter_pickup.ogg new file mode 100644 index 00000000..078faaf4 Binary files /dev/null and b/sound/items/handling/wirecutter_pickup.ogg differ diff --git a/sound/items/handling/wrench_drop.ogg b/sound/items/handling/wrench_drop.ogg new file mode 100644 index 00000000..86020bf8 Binary files /dev/null and b/sound/items/handling/wrench_drop.ogg differ diff --git a/sound/items/handling/wrench_pickup.ogg b/sound/items/handling/wrench_pickup.ogg new file mode 100644 index 00000000..860e0d70 Binary files /dev/null and b/sound/items/handling/wrench_pickup.ogg differ diff --git a/sound/items/handling/writing.ogg b/sound/items/handling/writing.ogg new file mode 100644 index 00000000..dba98b57 Binary files /dev/null and b/sound/items/handling/writing.ogg differ diff --git a/sound/voice/radio.ogg b/sound/voice/radio.ogg index 395980cf..f01198c1 100644 Binary files a/sound/voice/radio.ogg and b/sound/voice/radio.ogg differ