diff --git a/code/__defines/sound.dm b/code/__defines/sound.dm index 18666dbd34a..c3516e9d035 100644 --- a/code/__defines/sound.dm +++ b/code/__defines/sound.dm @@ -1,3 +1,9 @@ +#define PICKUP_SOUND_VOLUME_MIN 20 +#define PICKUP_SOUND_VOLUME_MAX 60 +#define DROP_SOUND_VOLUME_MIN 20 +#define DROP_SOUND_VOLUME_MAX 70 +#define THROW_SOUND_VOLUME 90 + //Sound environment defines. Reverb preset for sounds played in an area, see sound datum reference for more. #define GENERIC 0 #define PADDED_CELL 1 @@ -151,7 +157,122 @@ #define SFX_PULL_WOOD "pull_wood" // PICKUP +#define SFX_PICKUP_GENERIC "pickup_generic" +#define SFX_PICKUP_ACCESSORY "pickup_accessory" +#define SFX_PICKUP_AMMOBOX "pickup_ammobox" +#define SFX_PICKUP_AXE "pickup_axe" +#define SFX_PICKUP_BACKPACK "pickup_backpack" +#define SFX_PICKUP_BALL "pickup_ball" +#define SFX_PICKUP_BOOK "pickup_book" +#define SFX_PICKUP_BOOTS "pickup_boots" #define SFX_PICKUP_BOTTLE "pickup_bottle" +#define SFX_PICKUP_GLASSBOTTLE "pickup_glassbottle" +#define SFX_PICKUP_CARD "pickup_card" +#define SFX_PICKUP_CARDBOARD "pickup_cardboard" +#define SFX_PICKUP_CLOTH "pickup_cloth" +#define SFX_PICKUP_COMPONENT "pickup_component" +#define SFX_PICKUP_CROWBAR "pickup_crowbar" +#define SFX_PICKUP_DEVICE "pickup_device" +#define SFX_PICKUP_DISK "pickup_disk" +#define SFX_PICKUP_DRINKGLASS "pickup_drinkglass" +#define SFX_PICKUP_FLESH "pickup_flesh" +#define SFX_PICKUP_FOOD "pickup_food" +#define SFX_PICKUP_GASCAN "pickup_gascan" +#define SFX_PICKUP_GLASS "pickup_glass" +#define SFX_PICKUP_GLASSSMALL "pickup_glasssmall" +#define SFX_PICKUP_GLOVES "pickup_gloves" +#define SFX_PICKUP_GUN "pickup_gun" +#define SFX_PICKUP_HAT "pickup_hat" +#define SFX_PICKUP_HELMET "pickup_helmet" +#define SFX_PICKUP_HERB "pickup_herb" +#define SFX_PICKUP_KNIFE "pickup_knife" +#define SFX_PICKUP_LEATHER "pickup_leather" +#define SFX_PICKUP_MATCHBOX "pickup_matchbox" +#define SFX_PICKUP_METALPOT "pickup_metalpot" +#define SFX_PICKUP_METALWEAPON "pickup_metalweapon" +#define SFX_PICKUP_MULTITOOL "pickup_multitool" +#define SFX_PICKUP_PAPER "pickup_paper" +#define SFX_PICKUP_PAPERCUP "pickup_papercup" +#define SFX_PICKUP_PILLBOTTLE "pickup_pillbottle" +#define SFX_PICKUP_PLUSHIE "pickup_plushie" +#define SFX_PICKUP_RING "pickup_ring" +#define SFX_PICKUP_RUBBER "pickup_rubber" +#define SFX_PICKUP_SCREWDRIVER "pickup_screwdriver" +#define SFX_PICKUP_SHEL "pickup_shelldrop" +#define SFX_PICKUP_SHOES "pickup_shoes" +#define SFX_PICKUP_SHOVEL "pickup_shovel" +#define SFX_PICKUP_SODACAN "pickup_sodacan" +#define SFX_PICKUP_SWORD "pickup_sword" +#define SFX_PICKUP_TOOLBELT "pickup_toolbelt" +#define SFX_PICKUP_TOOLBOX "pickup_toolbox" +#define SFX_PICKUP_WELDINGTOOL "pickup_weldingtool" +#define SFX_PICKUP_WIRECUTTER "pickup_wirecutter" +#define SFX_PICKUP_WOODEN "pickup_wooden" +#define SFX_PICKUP_WRAPPER "pickup_wrapper" +#define SFX_PICKUP_WRENCH "pickup_wrench" + +// DROP +#define SFX_DROP_GENERIC "drop_generic" +#define SFX_DROP_ACCESSORY "drop_accessory" +#define SFX_DROP_AMMOBOX "drop_ammobox" +#define SFX_DROP_AXE "drop_axe" +#define SFX_DROP_BACKPACK "drop_backpack" +#define SFX_DROP_BALL "drop_ball" +#define SFX_DROP_BOOK "drop_book" +#define SFX_DROP_BOOTS "drop_boots" +#define SFX_DROP_BOTTLE "drop_bottle" +#define SFX_DROP_GLASSBOTTLE "drop_glassbottle" +#define SFX_DROP_CARD "drop_card" +#define SFX_DROP_CARDBOARD "drop_cardboard" +#define SFX_DROP_CLOTH "drop_cloth" +#define SFX_DROP_COMPONENT "drop_component" +#define SFX_DROP_CROWBAR "drop_crowbar" +#define SFX_DROP_DEVICE "drop_device" +#define SFX_DROP_DISK "drop_disk" +#define SFX_DROP_DRINKGLASS "drop_drinkglass" +#define SFX_DROP_FLESH "drop_flesh" +#define SFX_DROP_FOOD "drop_food" +#define SFX_DROP_GASCAN "drop_gascan" +#define SFX_DROP_GLASS "drop_glass" +#define SFX_DROP_GLASSSMALL "drop_glasssmall" +#define SFX_DROP_GLOVES "drop_gloves" +#define SFX_DROP_GUN "drop_gun" +#define SFX_DROP_HAT "drop_hat" +#define SFX_DROP_HELMET "drop_helmet" +#define SFX_DROP_HERB "drop_herb" +#define SFX_DROP_KNIFE "drop_knife" +#define SFX_DROP_LEATHER "drop_leather" +#define SFX_DROP_MATCHBOX "drop_matchbox" +#define SFX_DROP_METALPOT "drop_metalpot" +#define SFX_DROP_METALWEAPON "drop_metalweapon" +#define SFX_DROP_MULTITOOL "drop_multitool" +#define SFX_DROP_PAPER "drop_paper" +#define SFX_DROP_PAPERCUP "drop_papercup" +#define SFX_DROP_PILLBOTTLE "drop_pillbottle" +#define SFX_DROP_PLUSHIE "drop_plushie" +#define SFX_DROP_RING "drop_ring" +#define SFX_DROP_RUBBER "drop_rubber" +#define SFX_DROP_SCREWDRIVER "drop_screwdriver" +#define SFX_DROP_SHELL "drop_shelldrop" +#define SFX_DROP_SHOES "drop_shoes" +#define SFX_DROP_SHOVEL "drop_shovel" +#define SFX_DROP_SODACAN "drop_sodacan" +#define SFX_DROP_SWORD "drop_sword" +#define SFX_DROP_TOOLBELT "drop_toolbelt" +#define SFX_DROP_TOOLBOX "drop_toolbox" +#define SFX_DROP_WELDINGTOOL "drop_weldingtool" +#define SFX_DROP_WIRECUTTER "drop_wirecutter" +#define SFX_DROP_WOODEN "drop_wooden" +#define SFX_DROP_WRAPPER "drop_wrapper" +#define SFX_DROP_WRENCH "drop_wrench" + +// HOLSTER & SHEATH +#define SFX_HOLSTERIN "holster_in" +#define SFX_HOLSTEROUT "holster_out" +#define SFX_SHEATHIN "sheath_in" +#define SFX_SHEATHOUT "sheath_out" +#define SFX_TACHOLSTERIN "tacholster_in" +#define SFX_TACHOLSTEROUT "tacholster_out" // DRINK & EAT #define SFX_DRINK "drink" @@ -172,6 +293,11 @@ #define SFX_SPARK_MEDIUM "spark_medium" #define SFX_SPARK_HEAVY "spark_heavy" +// TURRETS +#define SFX_TURRET_DEPLOY "turret_deploy" +#define SFX_TURRET_RETRACT "turret_retract" +#define SFX_TURRET_ROTATE "turret_rotate" + // EXPLOSION #define SFX_EXPLOSION "explosion" #define SFX_EXPLOSION_ELECTRIC "explosion_electric" @@ -230,4 +356,10 @@ #define SFX_FOOTSTEP_ROBOT_LEGS "footstep_robot_legs" #define SFX_FOOTSTEP_ROBOT_SPIDER "footstep_robot_spider" +// VENDING +#define SFX_VENDING_CANS "vending_cans" +#define SFX_VENDING_COFFEE "vending_coffee" +#define SFX_VENDING_DROP "vending_drop" +#define SFX_VENDING_GENERIC "vending_generic" + #define GET_SFX(name) pick(GLOB.sfx_list[name]) diff --git a/code/_global_vars/sfx.dm b/code/_global_vars/sfx.dm index e9e6b2700bd..236b04462bb 100644 --- a/code/_global_vars/sfx.dm +++ b/code/_global_vars/sfx.dm @@ -907,10 +907,352 @@ GLOBAL_LIST_INIT(sfx_list, list( 'sound/effects/pull/pull_wood37.ogg' ), // PICKUP + SFX_PICKUP_GENERIC = list( + 'sound/effects/pickup/generic1.ogg', + 'sound/effects/pickup/generic2.ogg', + 'sound/effects/pickup/generic3.ogg' + ), + SFX_PICKUP_ACCESSORY = list( + 'sound/effects/pickup/accessory.ogg' + ), + SFX_PICKUP_AMMOBOX = list( + 'sound/effects/pickup/ammobox.ogg' + ), + SFX_PICKUP_AXE = list( + 'sound/effects/pickup/axe.ogg' + ), + SFX_PICKUP_BACKPACK = list( + 'sound/effects/pickup/backpack.ogg' + ), + SFX_PICKUP_BALL = list( + 'sound/effects/pickup/ball.ogg' + ), SFX_PICKUP_BOTTLE = list( + 'sound/effects/using/bottles/pickup1.ogg', + 'sound/effects/using/bottles/pickup2.ogg', + ), + SFX_PICKUP_GLASSBOTTLE = list( + 'sound/effects/using/bottles/pickup3.ogg', + ), + SFX_PICKUP_BOOK = list( + 'sound/effects/pickup/book.ogg' + ), + SFX_PICKUP_BOOTS = list( + 'sound/effects/pickup/boots.ogg' + ), + SFX_PICKUP_CARD = list( + 'sound/effects/pickup/card.ogg' + ), + SFX_PICKUP_CARDBOARD = list( + 'sound/effects/pickup/cardboardbox.ogg' + ), + SFX_PICKUP_CLOTH = list( + 'sound/effects/pickup/cloth.ogg' + ), + SFX_PICKUP_COMPONENT = list( + 'sound/effects/pickup/component.ogg' + ), + SFX_PICKUP_CROWBAR = list( + 'sound/effects/pickup/crowbar.ogg' + ), + SFX_PICKUP_DEVICE = list( + 'sound/effects/pickup/device.ogg' + ), + SFX_PICKUP_DISK = list( + 'sound/effects/pickup/disk.ogg' + ), + SFX_PICKUP_DRINKGLASS = list( + 'sound/effects/pickup/drinkglass.ogg' + ), + SFX_PICKUP_FLESH = list( + 'sound/effects/pickup/flesh.ogg' + ), + SFX_PICKUP_FOOD = list( + 'sound/effects/pickup/food.ogg' + ), + SFX_PICKUP_GASCAN = list( + 'sound/effects/pickup/gascan.ogg' + ), + SFX_PICKUP_GLASS = list( + 'sound/effects/pickup/glass.ogg' + ), + SFX_PICKUP_GLASSSMALL = list( + 'sound/effects/pickup/glass_small.ogg' + ), + SFX_PICKUP_GLOVES = list( + 'sound/effects/pickup/gloves.ogg' + ), + SFX_PICKUP_GUN = list( + 'sound/effects/pickup/gun.ogg' + ), + SFX_PICKUP_HAT = list( + 'sound/effects/pickup/hat.ogg' + ), + SFX_PICKUP_HELMET = list( + 'sound/effects/pickup/helm.ogg' + ), + SFX_PICKUP_HERB = list( + 'sound/effects/pickup/herb.ogg' + ), + SFX_PICKUP_KNIFE = list( + 'sound/effects/pickup/knife.ogg' + ), + SFX_PICKUP_LEATHER = list( + 'sound/effects/pickup/leather.ogg' + ), + SFX_PICKUP_MATCHBOX = list( + 'sound/effects/pickup/matchbox.ogg' + ), + SFX_PICKUP_METALPOT = list( + 'sound/effects/pickup/metal_pot.ogg' + ), + SFX_PICKUP_METALWEAPON = list( + 'sound/effects/pickup/metalweapon.ogg' + ), + SFX_PICKUP_MULTITOOL = list( + 'sound/effects/pickup/multitool.ogg' + ), + SFX_PICKUP_PAPER = list( + 'sound/effects/pickup/paper.ogg' + ), + SFX_PICKUP_PAPERCUP = list( + 'sound/effects/pickup/papercup.ogg' + ), + SFX_PICKUP_PILLBOTTLE = list( + 'sound/effects/pickup/pillbottle.ogg' + ), + SFX_PICKUP_PLUSHIE = list( + 'sound/effects/pickup/plushie.ogg' + ), + SFX_PICKUP_RING = list( + 'sound/effects/pickup/ring.ogg' + ), + SFX_PICKUP_RUBBER = list( + 'sound/effects/pickup/rubber.ogg' + ), + SFX_PICKUP_SCREWDRIVER = list( + 'sound/effects/pickup/screwdriver.ogg' + ), + SFX_PICKUP_SHELL = list( + 'sound/effects/drop/shell_drop.ogg' + ), + SFX_PICKUP_SHOES = list( + 'sound/effects/pickup/shoes.ogg' + ), + SFX_PICKUP_SHOVEL = list( + 'sound/effects/pickup/shovel.ogg' + ), + SFX_PICKUP_SODACAN = list( + 'sound/effects/pickup/soda.ogg' + ), + SFX_PICKUP_SWORD = list( + 'sound/effects/pickup/sword1.ogg', + 'sound/effects/pickup/sword2.ogg', + 'sound/effects/pickup/sword3.ogg' + ), + SFX_PICKUP_TOOLBELT = list( + 'sound/effects/pickup/toolbelt.ogg' + ), + SFX_PICKUP_TOOLBOX = list( + 'sound/effects/pickup/toolbox.ogg' + ), + SFX_PICKUP_WELDINGTOOL = list( + 'sound/effects/pickup/weldingtool.ogg' + ), + SFX_PICKUP_WIRECUTTER = list( + 'sound/effects/pickup/wirecutter.ogg' + ), + SFX_PICKUP_WOODEN = list( + 'sound/effects/pickup/wooden.ogg' + ), + SFX_PICKUP_WRAPPER = list( + 'sound/effects/pickup/wrapper.ogg' + ), + SFX_PICKUP_WRENCH = list( + 'sound/effects/pickup/wrench.ogg' + ), + //DROP + SFX_DROP_GENERIC = list( + 'sound/effects/drop/generic1.ogg', + 'sound/effects/drop/generic2.ogg' + ), + SFX_DROP_ACCESSORY = list( + 'sound/effects/pickup/accessory.ogg' + ), + SFX_DROP_AMMOBOX = list( + 'sound/effects/drop/ammobox.ogg' + ), + SFX_DROP_AXE = list( + 'sound/effects/drop/axe.ogg' + ), + SFX_DROP_BACKPACK = list( + 'sound/effects/drop/backpack.ogg' + ), + SFX_DROP_BALL = list( + 'sound/effects/drop/ball.ogg' + ), + SFX_DROP_BOTTLE = list( 'sound/effects/using/bottles/pickup1.ogg', 'sound/effects/using/bottles/pickup2.ogg' ), + SFX_DROP_GLASSBOTTLE = list( + 'sound/effects/using/bottles/pickup3.ogg', + 'sound/effects/drop/bottle.ogg' + ), + SFX_DROP_BOOK = list( + 'sound/effects/drop/book.ogg' + ), + SFX_DROP_BOOTS = list( + 'sound/effects/drop/boots.ogg' + ), + SFX_DROP_CARD = list( + 'sound/effects/drop/card.ogg' + ), + SFX_DROP_CARDBOARD = list( + 'sound/effects/drop/cardboardbox.ogg' + ), + SFX_DROP_CLOTH = list( + 'sound/effects/drop/cloth.ogg' + ), + SFX_DROP_COMPONENT = list( + 'sound/effects/drop/component.ogg' + ), + SFX_DROP_CROWBAR = list( + 'sound/effects/drop/crowbar.ogg' + ), + SFX_DROP_DEVICE = list( + 'sound/effects/drop/device.ogg' + ), + SFX_DROP_DISK = list( + 'sound/effects/drop/disk.ogg' + ), + SFX_DROP_DRINKGLASS = list( + 'sound/effects/drop/drinkglass.ogg' + ), + SFX_DROP_FLESH = list( + 'sound/effects/drop/flesh.ogg' + ), + SFX_DROP_FOOD = list( + 'sound/effects/drop/food.ogg' + ), + SFX_DROP_GASCAN = list( + 'sound/effects/drop/gascan.ogg' + ), + SFX_DROP_GLASS = list( + 'sound/effects/drop/glass.ogg' + ), + SFX_DROP_GLASSSMALL = list( + 'sound/effects/drop/glass_small.ogg' + ), + SFX_DROP_GLOVES = list( + 'sound/effects/drop/gloves.ogg' + ), + SFX_DROP_GUN = list( + 'sound/effects/drop/gun.ogg' + ), + SFX_DROP_HAT = list( + 'sound/effects/drop/hat.ogg' + ), + SFX_DROP_HELMET = list( + 'sound/effects/drop/helm.ogg' + ), + SFX_DROP_HERB = list( + 'sound/effects/drop/herb.ogg' + ), + SFX_DROP_KNIFE = list( + 'sound/effects/drop/knife.ogg' + ), + SFX_DROP_LEATHER = list( + 'sound/effects/drop/leather.ogg' + ), + SFX_DROP_MATCHBOX = list( + 'sound/effects/drop/matchbox.ogg' + ), + SFX_DROP_METALPOT = list( + 'sound/effects/drop/metal_pot.ogg' + ), + SFX_DROP_METALWEAPON = list( + 'sound/effects/drop/metalweapon.ogg' + ), + SFX_DROP_MULTITOOL = list( + 'sound/effects/drop/multitool.ogg' + ), + SFX_DROP_PAPER = list( + 'sound/effects/drop/paper.ogg' + ), + SFX_DROP_PAPERCUP = list( + 'sound/effects/drop/papercup.ogg' + ), + SFX_DROP_PILLBOTTLE = list( + 'sound/effects/drop/pillbottle.ogg' + ), + SFX_DROP_PLUSHIE = list( + 'sound/effects/drop/plushie.ogg' + ), + SFX_DROP_RING = list( + 'sound/effects/drop/ring.ogg' + ), + SFX_DROP_RUBBER = list( + 'sound/effects/drop/rubber.ogg' + ), + SFX_DROP_SCREWDRIVER = list( + 'sound/effects/drop/screwdriver.ogg' + ), + SFX_DROP_SHELL = list( + 'sound/effects/drop/shell_drop.ogg' + ), + SFX_DROP_SHOES = list( + 'sound/effects/drop/shoes.ogg' + ), + SFX_DROP_SHOVEL = list( + 'sound/effects/drop/shovel.ogg' + ), + SFX_DROP_SODACAN = list( + 'sound/effects/drop/soda.ogg' + ), + SFX_DROP_SWORD = list( + 'sound/effects/drop/sword.ogg' + ), + SFX_DROP_TOOLBELT = list( + 'sound/effects/drop/toolbelt.ogg' + ), + SFX_DROP_TOOLBOX = list( + 'sound/effects/drop/toolbox.ogg' + ), + SFX_DROP_WELDINGTOOL = list( + 'sound/effects/drop/weldingtool.ogg' + ), + SFX_DROP_WIRECUTTER = list( + 'sound/effects/drop/wirecutter.ogg' + ), + SFX_DROP_WOODEN = list( + 'sound/effects/drop/wooden.ogg' + ), + SFX_DROP_WRAPPER = list( + 'sound/effects/drop/wrapper.ogg' + ), + SFX_DROP_WRENCH = list( + 'sound/effects/drop/wrench.ogg' + ), + // HOLSTER & SHEATH + SFX_HOLSTERIN = list( + 'sound/effects/holster/holsterin.ogg' + ), + SFX_HOLSTEROUT = list( + 'sound/effects/holster/holsterout.ogg' + ), + SFX_SHEATHIN = list( + 'sound/effects/holster/sheathin.ogg' + ), + SFX_SHEATHOUT = list( + 'sound/effects/holster/sheathout.ogg' + ), + SFX_TACHOLSTERIN = list( + 'sound/effects/holster/tactiholsterin.ogg' + ), + SFX_TACHOLSTEROUT = list( + 'sound/effects/holster/tactiholsterout.ogg' + ), // DRINK & EAT SFX_DRINK = list( 'sound/effects/eating/drink1.ogg' @@ -1005,6 +1347,16 @@ GLOBAL_LIST_INIT(sfx_list, list( 'sound/effects/electric/heavy_spark3.ogg', 'sound/effects/electric/heavy_spark4.ogg' ), + // TURRETS + SFX_TURRET_DEPLOY = list( + 'sound/machines/turrets/turret_deploy.ogg' + ), + SFX_TURRET_RETRACT = list( + 'sound/machines/turrets/turret_retract.ogg' + ), + SFX_TURRET_ROTATE = list( + 'sound/machines/turrets/turret_rotate.ogg' + ), // EXPLOSION SFX_EXPLOSION = list( 'sound/effects/explosions/explosion1.ogg', @@ -1465,5 +1817,17 @@ GLOBAL_LIST_INIT(sfx_list, list( 'sound/machines/keyboard/keypress2.ogg', 'sound/machines/keyboard/keypress3.ogg', 'sound/machines/keyboard/keypress4.ogg' + ), + SFX_VENDING_CANS = list( + 'sound/machines/vending/vending_cans.ogg' + ), + SFX_VENDING_COFFEE = list( + 'sound/machines/vending/vending_coffee.ogg' + ), + SFX_VENDING_DROP = list( + 'sound/machines/vending/vending_drop.ogg' + ), + SFX_VENDING_GENERIC = list( + 'sound/effects/using/disposal/drop2.ogg' ) )) diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index af5160c045a..71e28a00acf 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -11,6 +11,9 @@ var/active = 0 var/beeping = 2 + drop_sound = SFX_DROP_DEVICE + pickup_sound = SFX_PICKUP_DEVICE + /obj/item/pinpointer/Destroy() target = null . = ..() diff --git a/code/game/machinery/kitchen/cooking_machines/_cooker.dm b/code/game/machinery/kitchen/cooking_machines/_cooker.dm index c6777e61214..d4f1053e41a 100644 --- a/code/game/machinery/kitchen/cooking_machines/_cooker.dm +++ b/code/game/machinery/kitchen/cooking_machines/_cooker.dm @@ -7,6 +7,8 @@ // Tracks precooked food to stop deep fried baked grilled grilled grilled diona nymph cereal. /obj/item/reagent_containers/food + drop_sound = SFX_DROP_FOOD + pickup_sound = SFX_PICKUP_FOOD var/list/cooked_types = list() // Root type for cooking machines. See following files for specific implementations. @@ -39,6 +41,7 @@ var/next_burn_time var/cooking_is_done = FALSE + /obj/machinery/cooker/Destroy() if(thing_inside) qdel(thing_inside) diff --git a/code/game/machinery/nuclear_bomb.dm b/code/game/machinery/nuclear_bomb.dm index ce178b91d75..29ef36933d1 100644 --- a/code/game/machinery/nuclear_bomb.dm +++ b/code/game/machinery/nuclear_bomb.dm @@ -375,6 +375,9 @@ var/bomb_set item_state = "card-id" w_class = ITEM_SIZE_TINY + drop_sound = SFX_DROP_DISK + pickup_sound = SFX_PICKUP_DISK + /obj/item/disk/nuclear/Initialize() . = ..() // Can never be quite sure that a game mode has been properly initiated or not at this point, so always register diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 9be8a70c371..1193059dbb1 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -456,6 +456,9 @@ var/list/turret_icons var/list/targets = list() //list of primary targets var/list/secondarytargets = list() //targets that are least important + if(density && prob(25)) + playsound(src, SFX_TURRET_ROTATE, 80, TRUE) + for(var/mob/M in mobs_in_view(world.view, src)) assess_and_assign(M, targets, secondarytargets) @@ -559,6 +562,7 @@ var/list/turret_icons var/atom/flick_holder = new /atom/movable/porta_turret_cover(loc) flick_holder.layer = layer + 0.1 flick("popup", flick_holder) + playsound(src, SFX_TURRET_DEPLOY, 80, TRUE) sleep(10) qdel(flick_holder) @@ -579,6 +583,7 @@ var/list/turret_icons var/atom/flick_holder = new /atom/movable/porta_turret_cover(loc) flick_holder.layer = layer + 0.1 flick("popdown", flick_holder) + playsound(src, SFX_TURRET_RETRACT, 80, TRUE) sleep(10) qdel(flick_holder) diff --git a/code/game/machinery/vending/BODA.dm b/code/game/machinery/vending/BODA.dm index 5144d4caa03..52ace33e477 100644 --- a/code/game/machinery/vending/BODA.dm +++ b/code/game/machinery/vending/BODA.dm @@ -5,6 +5,8 @@ icon_state = "sovietsoda" + vending_sound = SFX_VENDING_GENERIC + use_vend_state = TRUE product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem." idle_power_usage = 211 WATTS //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. diff --git a/code/game/machinery/vending/_vending.dm b/code/game/machinery/vending/_vending.dm index 69a827b8565..0f6a0914ac6 100644 --- a/code/game/machinery/vending/_vending.dm +++ b/code/game/machinery/vending/_vending.dm @@ -71,6 +71,8 @@ var/list/prices = list() var/gen_rand_amount = FALSE // If we want to generate random amount of items in our cartridge. + var/vending_sound = SFX_VENDING_DROP + /obj/machinery/vending/on_update_icon() ClearOverlays() if(stat & BROKEN) @@ -591,7 +593,7 @@ stuck() return - playsound(src, 'sound/effects/using/disposal/drop2.ogg', 40, TRUE) + playsound(src, vending_sound, 70, TRUE) if(prob(diona_spawn_chance)) //Hehehe var/turf/T = get_turf(src) diff --git a/code/game/machinery/vending/actors.dm b/code/game/machinery/vending/actors.dm index 899dca92707..52d57948a1e 100644 --- a/code/game/machinery/vending/actors.dm +++ b/code/game/machinery/vending/actors.dm @@ -5,6 +5,8 @@ icon_state = "Theater" + vending_sound = SFX_VENDING_DROP + component_types = list( /obj/item/vending_cartridge/props ) diff --git a/code/game/machinery/vending/assist.dm b/code/game/machinery/vending/assist.dm index fa9d7494188..e2e308f96af 100644 --- a/code/game/machinery/vending/assist.dm +++ b/code/game/machinery/vending/assist.dm @@ -2,6 +2,8 @@ /obj/machinery/vending/assist product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" + vending_sound = SFX_VENDING_GENERIC + component_types = list( /obj/item/vending_cartridge/assist ) diff --git a/code/game/machinery/vending/boozeomat.dm b/code/game/machinery/vending/boozeomat.dm index 13bc4f7aa83..7fe26202554 100644 --- a/code/game/machinery/vending/boozeomat.dm +++ b/code/game/machinery/vending/boozeomat.dm @@ -14,6 +14,8 @@ product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?" product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!" + vending_sound = SFX_VENDING_GENERIC + component_types = list( /obj/item/vending_cartridge/boozeomat ) diff --git a/code/game/machinery/vending/cigarette.dm b/code/game/machinery/vending/cigarette.dm index f0f7e0636d3..c890db818de 100644 --- a/code/game/machinery/vending/cigarette.dm +++ b/code/game/machinery/vending/cigarette.dm @@ -28,6 +28,8 @@ Professionals. Better cigarettes for better people. Yes, better people.;\ StarLing - look cool 'till you drool!" + vending_sound = SFX_VENDING_DROP + component_types = list( /obj/item/vending_cartridge/cigarette ) diff --git a/code/game/machinery/vending/coat.dm b/code/game/machinery/vending/coat.dm index 0480289edf5..1aaf75dba9a 100644 --- a/code/game/machinery/vending/coat.dm +++ b/code/game/machinery/vending/coat.dm @@ -8,6 +8,8 @@ use_vend_state = TRUE gen_rand_amount = FALSE + vending_sound = SFX_VENDING_DROP + component_types = list( /obj/item/vending_cartridge/coat_dispenser ) diff --git a/code/game/machinery/vending/coffee.dm b/code/game/machinery/vending/coffee.dm index d83d96744dd..5d8b65c9277 100644 --- a/code/game/machinery/vending/coffee.dm +++ b/code/game/machinery/vending/coffee.dm @@ -15,6 +15,8 @@ use_vend_state = TRUE product_ads = "Have a drink!;Drink up!;It's good for you!;Would you like a hot joe?;I'd kill for some coffee!;The best beans in the galaxy.;Only the finest brew for you.;Mmmm. Nothing like a coffee.;I like coffee, don't you?;Coffee helps you work!;Try some tea.;We hope you like the best!;Try our new chocolate!;Admin conspiracies" + vending_sound = SFX_VENDING_COFFEE + component_types = list( /obj/item/vending_cartridge/coffee ) diff --git a/code/game/machinery/vending/cola.dm b/code/game/machinery/vending/cola.dm index 09b4d1d52a2..ff17ddc18b6 100644 --- a/code/game/machinery/vending/cola.dm +++ b/code/game/machinery/vending/cola.dm @@ -12,6 +12,8 @@ product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!" product_ads = "Refreshing!;Hope you're thirsty!;Over 1 million drinks sold!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space." + vending_sound = SFX_VENDING_CANS + component_types = list( /obj/item/vending_cartridge/cola ) diff --git a/code/game/machinery/vending/engineering.dm b/code/game/machinery/vending/engineering.dm index c130ae95361..84fce0b6e40 100644 --- a/code/game/machinery/vending/engineering.dm +++ b/code/game/machinery/vending/engineering.dm @@ -21,6 +21,8 @@ /obj/item/clothing/gloves/insulated/cheap = 2) premium = list(/obj/item/clothing/gloves/insulated = 1) + vending_sound = SFX_VENDING_GENERIC + /obj/item/vending_cartridge/tool name = "youtool" build_path = /obj/machinery/vending/tool diff --git a/code/game/machinery/vending/fashion.dm b/code/game/machinery/vending/fashion.dm index 4231bff4840..97fe66d0b8f 100644 --- a/code/game/machinery/vending/fashion.dm +++ b/code/game/machinery/vending/fashion.dm @@ -10,6 +10,8 @@ product_slogans = "Look smashing for your darling!;Be rich! Dress rich!" product_ads = "Impress the love of your life!;Don't look poor, look rich!;100% authentic designers!;All sales are final!;Lowest prices guaranteed!" + vending_sound = SFX_VENDING_DROP + component_types = list( /obj/item/vending_cartridge/fashionvend ) diff --git a/code/game/machinery/vending/fitness.dm b/code/game/machinery/vending/fitness.dm index 223b55f86b6..5ed8c69b267 100644 --- a/code/game/machinery/vending/fitness.dm +++ b/code/game/machinery/vending/fitness.dm @@ -10,6 +10,8 @@ product_slogans = "SweatMAX, get robust!" product_ads = "Pain is just weakness leaving the body!;Run! Your fat is catching up to you;Never forget leg day!;Push out!;This is the only break you get today.;Don't cry, sweat!;Healthy is an outfit that looks good on everybody." + vending_sound = SFX_VENDING_DROP + component_types = list( /obj/item/vending_cartridge/fitness ) diff --git a/code/game/machinery/vending/games.dm b/code/game/machinery/vending/games.dm index f7b2174d521..f9869d9234c 100644 --- a/code/game/machinery/vending/games.dm +++ b/code/game/machinery/vending/games.dm @@ -9,6 +9,8 @@ product_slogans = "Escape to a fantasy world!;Fuel your gambling addiction!;Ruin your friendships!" product_ads = "Elves and dwarves!;Totally not satanic!;Fun times forever!" + vending_sound = SFX_VENDING_GENERIC + component_types = list( /obj/item/vending_cartridge/games ) diff --git a/code/game/machinery/vending/hydro.dm b/code/game/machinery/vending/hydro.dm index 434ffb24148..8a728a2e34c 100644 --- a/code/game/machinery/vending/hydro.dm +++ b/code/game/machinery/vending/hydro.dm @@ -20,6 +20,8 @@ premium = list( /obj/item/reagent_containers/vessel/bottle/chemical/ammonia = 10, /obj/item/reagent_containers/vessel/bottle/chemical/diethylamine = 5) + vending_sound = SFX_VENDING_DROP + /obj/item/vending_cartridge/hydronutrients icon_state = "refill_plant" build_path = /obj/machinery/vending/hydronutrients diff --git a/code/game/machinery/vending/kitchen.dm b/code/game/machinery/vending/kitchen.dm index 90a9179ab0a..bd6c67e42e8 100644 --- a/code/game/machinery/vending/kitchen.dm +++ b/code/game/machinery/vending/kitchen.dm @@ -8,6 +8,8 @@ use_vend_state = TRUE product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..." + vending_sound = SFX_VENDING_DROP + component_types = list( /obj/item/vending_cartridge/dinnerware ) diff --git a/code/game/machinery/vending/medical.dm b/code/game/machinery/vending/medical.dm index ab1ce45cc7c..44d08e71eed 100644 --- a/code/game/machinery/vending/medical.dm +++ b/code/game/machinery/vending/medical.dm @@ -12,6 +12,8 @@ use_vend_state = TRUE product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!" + vending_sound = SFX_VENDING_DROP + component_types = list( /obj/item/vending_cartridge/medical ) diff --git a/code/game/machinery/vending/plasmaresearch.dm b/code/game/machinery/vending/plasmaresearch.dm index 34bbec3ee39..036b296d54f 100644 --- a/code/game/machinery/vending/plasmaresearch.dm +++ b/code/game/machinery/vending/plasmaresearch.dm @@ -3,6 +3,8 @@ name = "Toximate 3000" desc = "All the fine parts you need in one vending machine!" + vending_sound = SFX_VENDING_GENERIC + component_types = list( /obj/item/vending_cartridge/plasmaresearch ) diff --git a/code/game/machinery/vending/robotics.dm b/code/game/machinery/vending/robotics.dm index 5748a01d351..991589aa025 100644 --- a/code/game/machinery/vending/robotics.dm +++ b/code/game/machinery/vending/robotics.dm @@ -8,6 +8,8 @@ req_access = list(access_robotics) + vending_sound = SFX_VENDING_GENERIC + component_types = list( /obj/item/vending_cartridge/robotics ) diff --git a/code/game/machinery/vending/security.dm b/code/game/machinery/vending/security.dm index 81991c74be7..d67bf206b5e 100644 --- a/code/game/machinery/vending/security.dm +++ b/code/game/machinery/vending/security.dm @@ -15,6 +15,8 @@ product_ads = "Crack capitalist skulls!;Beat some heads in!;Don't forget - harm is good!;Your weapons are right here.;Handcuffs!;Freeze, scumbag!;Don't tase me bro!;Tase them, bro.;Why not have a donut?" + vending_sound = SFX_VENDING_DROP + component_types = list( /obj/item/vending_cartridge/security ) diff --git a/code/game/machinery/vending/snack.dm b/code/game/machinery/vending/snack.dm index c84ffd130b4..67c6d9261eb 100644 --- a/code/game/machinery/vending/snack.dm +++ b/code/game/machinery/vending/snack.dm @@ -10,6 +10,8 @@ product_slogans = "Try our new nougat bar!;Twice the calories for half the price!" product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!" + vending_sound = SFX_VENDING_DROP + component_types = list( /obj/item/vending_cartridge/snack ) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 7fa8f22fcc9..182c4cbebb4 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -90,7 +90,11 @@ // Species-specific sprite sheets for inventory sprites. Used in clothing/refit_for_species() proc. var/list/sprite_sheets_obj = list() - var/pickup_sound = null + /// Played when the item is picked up + var/pickup_sound = SFX_PICKUP_GENERIC + + /// Played when the item is dropped or thrown + var/drop_sound = SFX_DROP_GENERIC var/ear_protection = 0 @@ -124,6 +128,9 @@ /obj/item/device icon = 'icons/obj/device.dmi' + pickup_sound = SFX_PICKUP_DEVICE + drop_sound = SFX_DROP_DEVICE + //Checks if the item is being held by a mob, and if so, updates the held icons /obj/item/proc/update_twohanding() update_held_icon() @@ -267,13 +274,17 @@ var/old_loc = loc + var/changing_slots = FALSE // Removing from a storage if(istype(loc, /obj/item/storage)) var/obj/item/storage/S = loc S.remove_from_storage(src) // Unequipping from self - else if(loc == user && !user.drop(src)) - return + else if(loc == user) + changing_slots = TRUE + if(!user.drop(src, changing_slots = changing_slots)) + return + // Doing some unintended shit that may cause catastrophical events, aborting // If you'll ever want to implement something that intentionally allows direct clicking on an item while it's inside // an atom's contents - just go and smack yourself with a brick, it shall not work like this. @@ -285,7 +296,7 @@ if(QDELETED(src)) // Unequipping may change src gc_destroyed, so must check here return - pickup(user) + pickup(user, changing_slots) if(user.put_in_active_hand(src)) if(isturf(old_loc)) @@ -326,7 +337,7 @@ return // apparently called whenever an item is removed from a slot, container, or anything else. -/obj/item/proc/dropped(mob/user) +/obj/item/proc/dropped(mob/user, changing_slots = FALSE) if(randpixel) pixel_z = randpixel //an idea borrowed from some of the older pixel_y randomizations. Intended to make items appear to drop at a character @@ -337,6 +348,9 @@ if(user.r_hand) user.r_hand.update_twohanding() + if(!changing_slots && !istype(loc, /obj/item/clothing/accessory)) + play_drop_sound() + SEND_SIGNAL(src, SIGNAL_ITEM_UNEQUIPPED, src, user) // called just as an item is picked up (loc is not yet changed) @@ -374,6 +388,8 @@ if(M.r_hand) M.r_hand.update_twohanding() + play_handling_sound(slot) + SEND_SIGNAL(src, SIGNAL_ITEM_EQUIPPED, src, user, slot) //Defines which slots correspond to which slot flags @@ -956,3 +972,19 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. spawn() ..() return + +/obj/item/proc/play_drop_sound() + if(!drop_sound) + return + + var/volume = clamp(rand(12, 16) * w_class, DROP_SOUND_VOLUME_MIN, DROP_SOUND_VOLUME_MAX) + + playsound(src, drop_sound, volume, TRUE) + +/obj/item/proc/play_handling_sound(slot) + if(!pickup_sound) + return + + if(slot == slot_l_hand || slot == slot_r_hand) + var/volume = clamp(rand(5, 15) * w_class, PICKUP_SOUND_VOLUME_MIN, PICKUP_SOUND_VOLUME_MAX) + playsound(src, pickup_sound, volume, TRUE) diff --git a/code/game/objects/items/balloons.dm b/code/game/objects/items/balloons.dm index 03b2916b084..76ca036c270 100644 --- a/code/game/objects/items/balloons.dm +++ b/code/game/objects/items/balloons.dm @@ -129,6 +129,9 @@ var/base_item_state var/balloon_type = BALLOON_FORBIDDEN + drop_sound = SFX_DROP_RUBBER + pickup_sound = SFX_PICKUP_RUBBER + /obj/item/balloon/Initialize() . = ..() base_item_state = item_state diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index b478d9b5b12..1fafa6096c7 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -33,6 +33,9 @@ var/message2 var/list/stored_data = list() + drop_sound = SFX_DROP_COMPONENT + pickup_sound = SFX_PICKUP_COMPONENT + /obj/item/cartridge/Destroy() QDEL_NULL(radio) return ..() diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index a7f749f39c3..c117cc61651 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -22,6 +22,9 @@ var/brightness_color = "#fff3b2" // color of light when on var/light_overlay = TRUE + drop_sound = SFX_DROP_ACCESSORY + pickup_sound = SFX_PICKUP_ACCESSORY + /obj/item/device/flashlight/Initialize() . = ..() if(on) diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index a36468dfc99..fe602a375a1 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -27,6 +27,9 @@ var/buffer_name var/atom/buffer_object + drop_sound = SFX_DROP_MULTITOOL + pickup_sound = SFX_PICKUP_MULTITOOL + /obj/item/device/multitool/Destroy() unregister_buffer(buffer_object) return ..() diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 063e2f1c371..fb0723e0685 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -17,6 +17,9 @@ var/ks1type = /obj/item/device/encryptionkey var/ks2type = null + drop_sound = SFX_DROP_COMPONENT + pickup_sound = SFX_PICKUP_COMPONENT + /obj/item/device/radio/headset/Initialize() . = ..() internal_channels.Cut() diff --git a/code/game/objects/items/glassjar.dm b/code/game/objects/items/glassjar.dm index beb0ce38193..4d7965021d3 100644 --- a/code/game/objects/items/glassjar.dm +++ b/code/game/objects/items/glassjar.dm @@ -9,6 +9,9 @@ var/list/accept_mobs = list(/mob/living/simple_animal/lizard, /mob/living/simple_animal/mouse) var/contains = 0 // 0 = nothing, 1 = money, 2 = animal, 3 = spiderling + drop_sound = SFX_DROP_GLASS + pickup_sound = SFX_PICKUP_GLASS + /obj/item/glass_jar/Initialize() . = ..() update_icon() diff --git a/code/game/objects/items/material/coins.dm b/code/game/objects/items/material/coins.dm index 1c2a6722c8a..b132777a40c 100644 --- a/code/game/objects/items/material/coins.dm +++ b/code/game/objects/items/material/coins.dm @@ -20,6 +20,9 @@ var/string_color = COLOR_RED var/sides = 2 + drop_sound = SFX_DROP_RING + pickup_sound = SFX_PICKUP_RING + /obj/item/material/coin/set_material(new_material) . = ..() if(material.name in icon_states(icon)) diff --git a/code/game/objects/items/material/knives.dm b/code/game/objects/items/material/knives.dm index a12bd500997..f185dd1f8fe 100644 --- a/code/game/objects/items/material/knives.dm +++ b/code/game/objects/items/material/knives.dm @@ -75,6 +75,9 @@ unbreakable = 1 material_amount = 2 + drop_sound = SFX_DROP_KNIFE + pickup_sound = SFX_PICKUP_KNIFE + /obj/item/material/knife/hook name = "meat hook" desc = "A sharp, metal hook what sticks into things." diff --git a/code/game/objects/items/material/misc.dm b/code/game/objects/items/material/misc.dm index 726c4febb57..c51e39f8da0 100644 --- a/code/game/objects/items/material/misc.dm +++ b/code/game/objects/items/material/misc.dm @@ -9,6 +9,9 @@ attack_verb = list("jabbed","stabbed","ripped") material_amount = 3 + drop_sound = SFX_DROP_SWORD + pickup_sound = SFX_PICKUP_SWORD + /obj/item/material/hatchet name = "hatchet" desc = "A very sharp axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood." @@ -30,6 +33,9 @@ hitsound = SFX_CHOP material_amount = 3 + pickup_sound = SFX_PICKUP_KNIFE + drop_sound = SFX_DROP_KNIFE + /obj/item/material/hatchet/tacknife name = "tactical knife" desc = "You'd be killing loads of people if this was Medal of Valor: Heroes of Space." @@ -104,4 +110,5 @@ attack_verb = list("chopped", "sliced", "cut", "reaped") material_amount = 5 - + drop_sound = SFX_DROP_SWORD + pickup_sound = SFX_PICKUP_SWORD diff --git a/code/game/objects/items/material/shards.dm b/code/game/objects/items/material/shards.dm index 3f3ec741001..a773b5d8e00 100644 --- a/code/game/objects/items/material/shards.dm +++ b/code/game/objects/items/material/shards.dm @@ -25,6 +25,9 @@ var/handcutter = FALSE var/noisystepper = FALSE + drop_sound = SFX_DROP_GLASS + pickup_sound = SFX_PICKUP_GLASS + /obj/item/material/shard/set_material(new_material) ..(new_material) if(!istype(material)) diff --git a/code/game/objects/items/material/swords.dm b/code/game/objects/items/material/swords.dm index 8c010ff5ebb..8d4cdbe82a9 100644 --- a/code/game/objects/items/material/swords.dm +++ b/code/game/objects/items/material/swords.dm @@ -18,6 +18,9 @@ hitsound = 'sound/weapons/bladeslice.ogg' material_amount = 5 + drop_sound = SFX_DROP_SWORD + pickup_sound = SFX_PICKUP_SWORD + /obj/item/material/sword/replica desc = "What are you standing around staring at this for? Get to looking cringy!" edge = 0 diff --git a/code/game/objects/items/material/twohanded.dm b/code/game/objects/items/material/twohanded.dm index 4ce036b80a2..9f489f18fb0 100644 --- a/code/game/objects/items/material/twohanded.dm +++ b/code/game/objects/items/material/twohanded.dm @@ -241,6 +241,9 @@ unbreakable = 1 // Because why should it break at all material_amount = 8 + drop_sound = SFX_DROP_AXE + pickup_sound = SFX_PICKUP_AXE + /obj/item/material/twohanded/fireaxe/afterattack(atom/A, mob/user, proximity) if(!proximity) return ..() diff --git a/code/game/objects/items/melee/classic_baton.dm b/code/game/objects/items/melee/classic_baton.dm index d42d0302bda..5b7cdf861ad 100644 --- a/code/game/objects/items/melee/classic_baton.dm +++ b/code/game/objects/items/melee/classic_baton.dm @@ -10,6 +10,8 @@ mod_weight = 1.25 mod_reach = 1.25 mod_handy = 1.5 + drop_sound = SFX_DROP_CROWBAR + pickup_sound = SFX_PICKUP_CROWBAR /obj/item/melee/classic_baton/attack(mob/M as mob, mob/living/user as mob) if(is_pacifist(user)) diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index 27bd54efd43..0b68d30c145 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -18,6 +18,9 @@ var/activate_sound = 'sound/weapons/saberon.ogg' var/deactivate_sound = 'sound/weapons/saberon.ogg' + drop_sound = SFX_DROP_WELDINGTOOL + pickup_sound = SFX_PICKUP_WELDINGTOOL + /obj/item/melee/energy/proc/activate(mob/living/user) if(active) return @@ -194,6 +197,9 @@ hitsound = 'sound/effects/fighting/energy1.ogg' var/blade_color + drop_sound = SFX_DROP_DEVICE + pickup_sound = SFX_PICKUP_DEVICE + /obj/item/melee/energy/sword/activate(mob/living/user) if(!active) to_chat(user, SPAN("notice", "\The [src] is now energised.")) diff --git a/code/game/objects/items/melee/telescopic_baton.dm b/code/game/objects/items/melee/telescopic_baton.dm index 48615bfa76a..9f148141935 100644 --- a/code/game/objects/items/melee/telescopic_baton.dm +++ b/code/game/objects/items/melee/telescopic_baton.dm @@ -12,6 +12,8 @@ mod_reach = 0.5 mod_handy = 1.0 var/on = FALSE + drop_sound = SFX_DROP_CROWBAR + pickup_sound = SFX_PICKUP_CROWBAR /obj/item/melee/telebaton/attack_self(mob/user as mob) on = !on diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index d6c99aa647d..38d24d43114 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -14,6 +14,9 @@ var/stack_full = 0 // 1 - stack looks different if it's never been used var/stack_empty = 0 // 0 - stack disappears, 1 - stack can be empty, 2 - stack is already empty + drop_sound = SFX_DROP_CARDBOARD + pickup_sound = SFX_PICKUP_CARDBOARD + /obj/item/stack/medical/on_update_icon() if(stack_full && amount == max_amount) icon_state = "[icon_state_default]_full" @@ -174,6 +177,9 @@ stack_empty = 1 splittable = 0 + drop_sound = SFX_DROP_HERB + pickup_sound = SFX_PICKUP_HERB + /obj/item/stack/medical/ointment/attack(mob/living/carbon/M as mob, mob/user as mob) if(..()) return 1 diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 8ed036c125d..fcc5eca2f1a 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -17,6 +17,9 @@ attack_verb = list("hit", "bludgeoned", "whacked") lock_picking_level = 3 + drop_sound = SFX_DROP_METALWEAPON + pickup_sound = SFX_PICKUP_METALWEAPON + /obj/item/stack/rods/ten amount = 10 diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 895be1d3c47..4703948050d 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -1,3 +1,7 @@ +/obj/item/stack/material/animalhide + drop_sound = SFX_DROP_CLOTH + pickup_sound = SFX_PICKUP_CLOTH + /obj/item/stack/material/animalhide/human name = "human skin" desc = "The by-product of human farming." diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 842baa095fa..bf94f6ff143 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -23,6 +23,9 @@ obj_flags = 0 var/image/stored_decals = null + drop_sound = SFX_DROP_AXE + pickup_sound = SFX_PICKUP_AXE + /* * Grass */ @@ -33,6 +36,9 @@ icon_state = "tile_grass" origin_tech = list(TECH_BIO = 1) + drop_sound = SFX_DROP_HERB + pickup_sound = SFX_PICKUP_HERB + /* * Wood */ @@ -42,6 +48,9 @@ desc = "An easy to fit wooden floor tile." icon_state = "tile-wood" + drop_sound = SFX_DROP_WOODEN + pickup_sound = SFX_PICKUP_WOODEN + /obj/item/stack/tile/wood/cyborg name = "wood floor tile synthesizer" desc = "A device that makes wood floor tiles." diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 81bb7ff3360..5e5a669072c 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -20,6 +20,9 @@ use_sound = SFX_SEARCH_CLOTHES var/worn_access = TRUE // Whether it can be opened while worn on back + drop_sound = SFX_DROP_BACKPACK + pickup_sound = SFX_PICKUP_BACKPACK + /obj/item/storage/backpack/Initialize() . = ..() diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 5476c96ed27..cda00b49432 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -15,6 +15,9 @@ attack_verb = list("whipped", "lashed", "disciplined") use_sound = SFX_SEARCH_CLOTHES + drop_sound = SFX_DROP_TOOLBELT + pickup_sound = SFX_PICKUP_TOOLBELT + /obj/item/storage/belt/verb/toggle_layer() set name = "Switch Belt Layer" set category = "Object" diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 386985a97a7..14c285eea1a 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -29,6 +29,9 @@ var/obj/item/foldable = /obj/item/stack/material/cardboard // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard use_sound = SFX_SEARCH_CLOTHES + drop_sound = SFX_DROP_CARDBOARD + pickup_sound = SFX_PICKUP_CARDBOARD + /obj/item/storage/box/large name = "large box" icon_state = "largebox" @@ -157,6 +160,9 @@ desc = "It has a picture of a gun and several warning symbols on the front." startswith = list(/obj/item/ammo_casing/shotgun/blank = 7) + drop_sound = SFX_DROP_AMMOBOX + pickup_sound = SFX_PICKUP_AMMOBOX + /obj/item/storage/box/flash name = "box of illumination shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." @@ -166,6 +172,8 @@ icon = 'icons/obj/shotgunshells.dmi' storage_slots = 20 max_storage_space = 20 + drop_sound = SFX_DROP_AMMOBOX + pickup_sound = SFX_PICKUP_AMMOBOX /obj/item/storage/box/shotgun/on_update_icon() . = ..() @@ -209,11 +217,16 @@ name = "box of practice shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." startswith = list(/obj/item/ammo_casing/shotgun/practice = 7) + drop_sound = SFX_DROP_AMMOBOX + pickup_sound = SFX_PICKUP_AMMOBOX + /obj/item/storage/box/sniperammo name = "box of 14.5mm shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." startswith = list(/obj/item/ammo_casing/a145 = 7) + drop_sound = SFX_DROP_AMMOBOX + pickup_sound = SFX_PICKUP_AMMOBOX /obj/item/storage/box/sniperammo/apds name = "box of 14.5mm APDS shells" @@ -224,48 +237,64 @@ desc = "A box containing 7 antipersonnel flashbang grenades.
WARNING: These devices are extremely dangerous and can cause blindness or deafness from repeated use." icon_state = "flashbang" startswith = list(/obj/item/grenade/flashbang = 7) + drop_sound = SFX_DROP_AMMOBOX + pickup_sound = SFX_PICKUP_AMMOBOX /obj/item/storage/box/teargas name = "box of pepperspray grenades" desc = "A box containing 7 tear gas grenades. A gas mask is printed on the label.
WARNING: Exposure carries risk of serious injury or death. Keep away from persons with lung conditions." icon_state = "peppers" startswith = list(/obj/item/grenade/chem_grenade/teargas = 7) + drop_sound = SFX_DROP_AMMOBOX + pickup_sound = SFX_PICKUP_AMMOBOX /obj/item/storage/box/emps name = "box of emp grenades" desc = "A box containing 5 military grade EMP grenades.
WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur." icon_state = "EMPs" startswith = list(/obj/item/grenade/empgrenade = 5) + drop_sound = SFX_DROP_AMMOBOX + pickup_sound = SFX_PICKUP_AMMOBOX /obj/item/storage/box/frags name = "box of frag grenades" desc = "A box containing 5 military grade fragmentation grenades.
WARNING: Live explosives. Misuse may result in serious injury or death." icon_state = "frags" startswith = list(/obj/item/grenade/frag = 5) + drop_sound = SFX_DROP_AMMOBOX + pickup_sound = SFX_PICKUP_AMMOBOX /obj/item/storage/box/fragshells name = "box of frag shells" desc = "A box containing 5 military grade fragmentation shells.
WARNING: Live explosive munitions. Misuse may result in serious injury or death." icon_state = "fragshells" startswith = list(/obj/item/grenade/frag/shell = 5) + drop_sound = SFX_DROP_AMMOBOX + pickup_sound = SFX_PICKUP_AMMOBOX /obj/item/storage/box/smokes name = "box of smoke bombs" desc = "A box containing 5 smoke bombs." icon_state = "smokebombs" startswith = list(/obj/item/grenade/smokebomb = 5) + drop_sound = SFX_DROP_AMMOBOX + pickup_sound = SFX_PICKUP_AMMOBOX /obj/item/storage/box/anti_photons name = "box of anti-photon grenades" desc = "A box containing 5 experimental photon disruption grenades." icon_state = "antiphotons" startswith = list(/obj/item/grenade/anti_photon = 5) + drop_sound = SFX_DROP_AMMOBOX + pickup_sound = SFX_PICKUP_AMMOBOX /obj/item/storage/box/supermatters name = "box of supermatter grenades" desc = "A box containing 5 highly experimental supermatter grenades." icon_state = "radbox" startswith = list(/obj/item/grenade/supermatter = 5) + drop_sound = SFX_DROP_AMMOBOX + pickup_sound = SFX_PICKUP_AMMOBOX /obj/item/storage/box/trackimp name = "boxed tracking implant kit" @@ -402,6 +431,9 @@ can_hold = list(/obj/item/flame/match) startswith = list(/obj/item/flame/match = 10) + drop_sound = SFX_DROP_MATCHBOX + pickup_sound = SFX_PICKUP_MATCHBOX + attackby(obj/item/flame/match/W as obj, mob/user as mob) if(istype(W) && !W.lit && !W.burnt) W.lit = 1 diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 58a917fec06..486fda51142 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -178,3 +178,6 @@ /obj/item/organfixer/standard, /obj/item/stack/medical/advanced/bruise_pack, ) + + drop_sound = SFX_DROP_TOOLBOX + pickup_sound = SFX_PICKUP_TOOLBOX diff --git a/code/game/objects/items/storage/internal.dm b/code/game/objects/items/storage/internal.dm index cba5414d4b8..8797885a299 100644 --- a/code/game/objects/items/storage/internal.dm +++ b/code/game/objects/items/storage/internal.dm @@ -52,10 +52,10 @@ if (!( user.restrained() ) && !( user.stat )) switch(over_object.name) if(BP_R_HAND) - if(user.drop(master_item)) + if(user.drop(master_item, changing_slots = TRUE)) user.put_in_r_hand(master_item) if(BP_L_HAND) - if(user.drop(master_item)) + if(user.drop(master_item, changing_slots = TRUE)) user.put_in_l_hand(master_item) master_item.add_fingerprint(user) return 0 diff --git a/code/game/objects/items/storage/misc.dm b/code/game/objects/items/storage/misc.dm index bbaf457f490..fa10624206e 100644 --- a/code/game/objects/items/storage/misc.dm +++ b/code/game/objects/items/storage/misc.dm @@ -3,6 +3,8 @@ desc = "It's a small bag with dice inside." icon = 'icons/obj/dice.dmi' icon_state = "dicebag" + drop_sound = SFX_DROP_HAT + pickup_sound = SFX_PICKUP_HAT /obj/item/storage/pill_bottle/dice/New() ..() @@ -14,6 +16,8 @@ desc = "It's a small bag with gaming dice inside." icon = 'icons/obj/dice.dmi' icon_state = "magicdicebag" + drop_sound = SFX_DROP_HAT + pickup_sound = SFX_PICKUP_HAT /obj/item/storage/pill_bottle/dice_nerd/New() ..() diff --git a/code/game/objects/items/storage/pill_bottle.dm b/code/game/objects/items/storage/pill_bottle.dm index 5551405dd6c..a783ff43f6c 100644 --- a/code/game/objects/items/storage/pill_bottle.dm +++ b/code/game/objects/items/storage/pill_bottle.dm @@ -20,6 +20,9 @@ var/starting_label = null var/true_desc = "It's an airtight container for storing medication." + pickup_sound = SFX_PICKUP_PILLBOTTLE + drop_sound = SFX_DROP_PILLBOTTLE + /obj/item/storage/pill_bottle/Initialize() . = ..() update_icon() diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index d4783502397..1db8ac57ce6 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -19,6 +19,9 @@ origin_tech = list(TECH_COMBAT = 1) attack_verb = list("robusted") + drop_sound = SFX_DROP_TOOLBOX + pickup_sound = SFX_PICKUP_TOOLBOX + /obj/item/storage/toolbox/emergency name = "emergency toolbox" icon_state = "red" diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm index ee1daa077f0..b9f4ca840f9 100644 --- a/code/game/objects/items/storage/wallets.dm +++ b/code/game/objects/items/storage/wallets.dm @@ -42,6 +42,9 @@ var/obj/item/card/id/front_id = null + drop_sound = SFX_DROP_LEATHER + pickup_sound = SFX_PICKUP_LEATHER + /obj/item/storage/wallet/leather color = COLOR_SEDONA diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index 4c02c3071fe..62099541bef 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -53,6 +53,8 @@ var/list/global/tank_gauge_cache = list() Wired and assembled tanks may be disarmed with a set of wirecutters. Any exploding or rupturing tank will generate shrapnel, assuming their relief valves have been welded beforehand. Even if not, they can be incited to expel hot gas on ignition if pushed above 173�C. \ Relatively easy to make, the single tank bomb requries no tank transfer valve, and is still a fairly formidable weapon that can be manufactured from any tank." + drop_sound = SFX_DROP_GASCAN + pickup_sound = SFX_PICKUP_GASCAN /obj/item/tank/Initialize() . = ..() diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 11764d3198d..e687a2314c2 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -30,6 +30,8 @@ mod_weight = 0.25 mod_reach = 0.25 mod_handy = 0.25 + drop_sound = SFX_DROP_GLOVES + pickup_sound = SFX_PICKUP_GLOVES /obj/item/toy/proc/speak(message) if (!message) @@ -117,6 +119,9 @@ item_state = "syndballoon" w_class = ITEM_SIZE_HUGE + drop_sound = SFX_DROP_RUBBER + pickup_sound = SFX_PICKUP_RUBBER + /obj/item/toy/balloon/New() ..() desc = "Across the balloon is printed: \"[desc]\"" diff --git a/code/game/objects/items/weapons/beachball.dm b/code/game/objects/items/weapons/beachball.dm index 1f6497e983d..6316073b60b 100644 --- a/code/game/objects/items/weapons/beachball.dm +++ b/code/game/objects/items/weapons/beachball.dm @@ -15,6 +15,9 @@ throw_range = 20 obj_flags = OBJ_FLAG_CONDUCTIBLE + drop_sound = SFX_DROP_BALL + pickup_sound = SFX_PICKUP_BALL + /obj/item/beach_ball/afterattack(atom/target, mob/user) user.drop_active_hand() throw_at(target, throw_range, throw_speed, user) diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index ca65f33b2b6..5ef5821cf47 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -24,6 +24,9 @@ var/list/files = list( ) + drop_sound = SFX_DROP_DISK + pickup_sound = SFX_PICKUP_DISK + /obj/item/card/data name = "data disk" desc = "A disk of data." diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index 83b54842c1a..61132d35e04 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -25,6 +25,9 @@ var/ff_reagent = /datum/reagent/water/firefoam var/external_source = FALSE + drop_sound = SFX_DROP_GASCAN + pickup_sound = SFX_PICKUP_GASCAN + /obj/item/extinguisher/mini name = "fire extinguisher" desc = "A light and compact fibreglass-framed model fire extinguisher." diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 29646d24f50..91cb5018701 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -24,6 +24,9 @@ var/cuff_sound = "handcuffs" var/cuff_type = "handcuffs" + drop_sound = SFX_DROP_ACCESSORY + pickup_sound = SFX_PICKUP_ACCESSORY + /obj/item/handcuffs/get_icon_state(slot) if(slot == slot_handcuffed_str) return "handcuff1" diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index 8d2e6115094..0415c0f8214 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -21,6 +21,8 @@ obj_flags = OBJ_FLAG_CONDUCTIBLE w_class = ITEM_SIZE_SMALL origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1) + drop_sound = SFX_DROP_SCREWDRIVER + pickup_sound = SFX_PICKUP_SCREWDRIVER /* * Hemostat @@ -35,6 +37,8 @@ w_class = ITEM_SIZE_SMALL origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1) attack_verb = list("attacked", "pinched") + drop_sound = SFX_DROP_WELDINGTOOL + pickup_sound = SFX_PICKUP_WELDINGTOOL /obj/item/hemostat/pico name = "precision grasper" @@ -55,6 +59,8 @@ w_class = ITEM_SIZE_SMALL origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1) attack_verb = list("burnt") + drop_sound = SFX_DROP_SCREWDRIVER + pickup_sound = SFX_PICKUP_SCREWDRIVER /* * Surgical Drill @@ -75,6 +81,8 @@ mod_handy = 0.9 origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1) attack_verb = list("drilled") + drop_sound = SFX_DROP_ACCESSORY + pickup_sound = SFX_PICKUP_ACCESSORY /* * Scalpel @@ -99,6 +107,8 @@ matter = list(MATERIAL_STEEL = 10000, MATERIAL_GLASS = 5000) attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") hitsound = 'sound/weapons/bladeslice.ogg' + drop_sound = SFX_DROP_KNIFE + pickup_sound = SFX_PICKUP_KNIFE /* * Researchable Scalpels @@ -166,6 +176,8 @@ edge = 1 var/improved = 0 var/craft_step = CHAINSAW_ADD_COIL // Using for creating the chainsaw + drop_sound = SFX_DROP_ACCESSORY + pickup_sound = SFX_PICKUP_ACCESSORY /obj/item/circular_saw/attackby(obj/item/W, mob/user) if(istype(W,/obj/item/material/wirerod) && improved == 0) @@ -289,6 +301,8 @@ force = 0 w_class = ITEM_SIZE_SMALL throwforce = 1.0 + pickup_sound = SFX_PICKUP_BOTTLE + drop_sound = SFX_DROP_BOTTLE /obj/item/FixOVein name = "FixOVein" @@ -299,6 +313,8 @@ origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 3) w_class = ITEM_SIZE_SMALL var/usage_amount = 10 + pickup_sound = SFX_PICKUP_ACCESSORY + drop_sound = SFX_DROP_ACCESSORY /obj/item/FixOVein/clot name = "capillary laying operation tool" //C.L.O.T. @@ -318,6 +334,8 @@ mod_reach = 0.5 mod_handy = 0.75 attack_verb = list("attacked", "hit", "bludgeoned") + drop_sound = SFX_DROP_WELDINGTOOL + pickup_sound = SFX_PICKUP_WELDINGTOOL /obj/item/bonesetter/bone_mender name = "bone mender" diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm index 1ad44326b47..48f4b21ac82 100644 --- a/code/game/objects/items/weapons/tape.dm +++ b/code/game/objects/items/weapons/tape.dm @@ -5,6 +5,8 @@ icon_state = "taperoll" var/tape_speed = 30 w_class = ITEM_SIZE_SMALL + drop_sound = SFX_DROP_CARDBOARD + pickup_sound = SFX_PICKUP_CARDBOARD /obj/item/tape_roll/attack(mob/living/carbon/human/H, mob/user) if(istype(H)) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index f0ea8f33f72..6ee247f544b 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -38,6 +38,9 @@ tool_behaviour = TOOL_WRENCH var/randicon = TRUE + drop_sound = SFX_DROP_WRENCH + pickup_sound = SFX_PICKUP_WRENCH + /obj/item/wrench/Initialize() if(randicon) icon_state = "wrench[pick("","_red","_black")]" @@ -96,6 +99,9 @@ tool_behaviour = TOOL_SCREWDRIVER var/randicon = TRUE + drop_sound = SFX_DROP_SCREWDRIVER + pickup_sound = SFX_PICKUP_SCREWDRIVER + /obj/item/screwdriver/Initialize() if(randicon) switch(pick("red", "blue", "purple", "brown", "green", "cyan", "yellow")) @@ -203,6 +209,9 @@ tool_behaviour = TOOL_WIRECUTTER var/randicon = TRUE + drop_sound = SFX_DROP_WIRECUTTER + pickup_sound = SFX_PICKUP_WIRECUTTER + /obj/item/wirecutters/Initialize() if(randicon && prob(50)) icon_state = "cutters-y" @@ -274,6 +283,9 @@ var/obj/item/welder_tank/tank = /obj/item/welder_tank // where the fuel is stored + drop_sound = SFX_DROP_WELDINGTOOL + pickup_sound = SFX_PICKUP_WELDINGTOOL + /obj/item/weldingtool/Initialize() if(ispath(tank)) tank = new tank @@ -726,6 +738,9 @@ attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked") tool_behaviour = TOOL_CROWBAR + drop_sound = SFX_DROP_CROWBAR + pickup_sound = SFX_PICKUP_CROWBAR + /obj/item/crowbar/red icon_state = "red_crowbar" item_state = "crowbar_red" diff --git a/code/game/objects/items/weapons/towels.dm b/code/game/objects/items/weapons/towels.dm index 231f9bc6130..199715e4b4b 100644 --- a/code/game/objects/items/weapons/towels.dm +++ b/code/game/objects/items/weapons/towels.dm @@ -12,6 +12,8 @@ attack_verb = list("whipped") hitsound = 'sound/weapons/towelwhip.ogg' desc = "A soft cotton towel." + drop_sound = SFX_DROP_CLOTH + pickup_sound = SFX_PICKUP_CLOTH /obj/item/towel/attack_self(mob/living/user as mob) user.visible_message(text("[] uses [] to towel themselves off.", user, src)) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index f354c7d4c22..e02a745c046 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -18,6 +18,8 @@ LINEN BINS throw_range = 2 w_class = ITEM_SIZE_SMALL var/folded = 0 + drop_sound = SFX_DROP_CLOTH + pickup_sound = SFX_PICKUP_CLOTH /obj/item/bedsheet/attackby(obj/item/I, mob/user) if(is_sharp(I)) diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index ccc2956b236..58ea8691fc7 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -264,6 +264,8 @@ w_class = ITEM_SIZE_GARGANTUAN // Not sure if it's actually necessary, I can barely imagine this thing being bigger than a mecha part; var/rollertype = /obj/item/roller var/bedtype = /obj/structure/bed/roller + drop_sound = SFX_DROP_AXE + pickup_sound = SFX_PICKUP_AXE /obj/item/roller/adv name = "advanced roller bed" diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 359ac37a625..de5dd9bfe43 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -22,6 +22,9 @@ var/const/WIRE_RADIO_RECEIVE = 8 //Allows Pulsed(1) to call Activate() var/const/WIRE_RADIO_PULSE = 16 //Allows Pulse(1) to send a radio message + drop_sound = SFX_DROP_COMPONENT + pickup_sound = SFX_PICKUP_COMPONENT + /obj/item/device/assembly/Destroy() holder = null return ..() diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm index 8d3d0bb2e0c..8fc293a4620 100644 --- a/code/modules/assembly/igniter.dm +++ b/code/modules/assembly/igniter.dm @@ -8,6 +8,9 @@ secured = 1 wires = WIRE_RECEIVE + drop_sound = SFX_DROP_COMPONENT + pickup_sound = SFX_PICKUP_COMPONENT + activate() if(!..()) return 0//Cooldown check diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index a601fec6755..59f8a187d7e 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -18,6 +18,9 @@ var/list/seen_turfs var/datum/proximity_trigger/line/transparent/proximity_trigger + drop_sound = SFX_DROP_COMPONENT + pickup_sound = SFX_PICKUP_COMPONENT + /obj/item/device/assembly/infra/New() ..() beams = list() diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 59e2ac68137..9f0c902510b 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -6,6 +6,8 @@ matter = list(MATERIAL_STEEL = 100, MATERIAL_WASTE = 10) var/armed = 0 + drop_sound = SFX_DROP_COMPONENT + pickup_sound = SFX_PICKUP_COMPONENT _examine_text(mob/user) . = ..(user) diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index eb32a0e2bff..63a1dbbf89a 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -14,6 +14,9 @@ var/range = 2 + drop_sound = SFX_DROP_COMPONENT + pickup_sound = SFX_PICKUP_COMPONENT + /obj/item/device/assembly/prox_sensor/Initialize() . = ..() proximity_monitor = new(src, range, FALSE) diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 75e489ae9f1..5b97dc0d02e 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -15,6 +15,9 @@ var/datum/frequency/radio_connection var/deadman = FALSE + drop_sound = SFX_DROP_COMPONENT + pickup_sound = SFX_PICKUP_COMPONENT + /obj/item/device/assembly/signaler/New() ..() addtimer(CALLBACK(src, nameof(.proc/set_frequency), frequency), 4 SECOND) diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 70b2fd5e379..e091ec80941 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -12,6 +12,9 @@ var/timing = FALSE var/time = 10 + drop_sound = SFX_DROP_COMPONENT + pickup_sound = SFX_PICKUP_COMPONENT + /obj/item/device/assembly/timer/proc/timer_end() if(!secured) return 0 diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index 9a9a4c48902..619b949d860 100644 --- a/code/modules/assembly/voice.dm +++ b/code/modules/assembly/voice.dm @@ -6,6 +6,8 @@ matter = list(MATERIAL_STEEL = 500, MATERIAL_GLASS = 50, MATERIAL_WASTE = 10) var/listening = FALSE var/recorded //the activation message + drop_sound = SFX_DROP_COMPONENT + pickup_sound = SFX_PICKUP_COMPONENT /obj/item/device/assembly/voice/New() ..() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 5dbee32ccc4..371761ad3b2 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -119,8 +119,7 @@ GLOBAL_LIST_EMPTY(clothing_blood_icons) return 0 return 1 -/obj/item/clothing/equipped(mob/user) - playsound(src, SFX_USE_OUTFIT, 75, 1) +/obj/item/clothing/equipped(mob/user, slot) SHOULD_CALL_PARENT(TRUE) for(var/obj/item/clothing/accessory/accessory in accessories) accessory.equipped(user) @@ -128,6 +127,16 @@ GLOBAL_LIST_EMPTY(clothing_blood_icons) update_vision() return ..() +/obj/item/clothing/play_handling_sound(slot) + if(!pickup_sound) + return + + if(slot == slot_l_hand || slot == slot_r_hand) + var/volume = clamp(rand(5,15) * w_class, PICKUP_SOUND_VOLUME_MIN, PICKUP_SOUND_VOLUME_MAX) + playsound(src, pickup_sound, volume, TRUE) + else + playsound(src, SFX_USE_OUTFIT, 75, 1) + /obj/item/clothing/proc/refit_for_species(target_species) if(!species_restricted) return //this item doesn't use the species_restricted system @@ -226,6 +235,9 @@ BLIND // can't see anything var/light_protection = 0 blood_overlay_type = null // These are too small to bother, no need to waste CPU time + drop_sound = SFX_DROP_ACCESSORY + pickup_sound = SFX_PICKUP_ACCESSORY + /obj/item/clothing/glasses/update_clothing_icon() if(ismob(src.loc)) var/mob/M = src.loc @@ -253,6 +265,9 @@ BLIND // can't see anything var/transfer_blood = 0 var/mob/living/carbon/human/bloody_hands_mob + drop_sound = SFX_DROP_GLOVES + pickup_sound = SFX_PICKUP_GLOVES + /obj/item/clothing/gloves/Initialize() if(item_flags & ITEM_FLAG_PREMODIFIED) cut_fingertops() @@ -404,6 +419,9 @@ BLIND // can't see anything blood_overlay_type = "helmetblood" + drop_sound = SFX_DROP_HAT + pickup_sound = SFX_PICKUP_HAT + /obj/item/clothing/head/get_mob_overlay(mob/user_mob, slot) var/image/ret = ..() var/species_name = "Default" @@ -598,6 +616,9 @@ BLIND // can't see anything armor = list(melee = 25, bullet = 25, laser = 25,energy = 15, bomb = 25, bio = 10) + drop_sound = SFX_DROP_SHOES + pickup_sound = SFX_PICKUP_SHOES + /obj/item/clothing/shoes/Destroy() if(holding) holding.forceMove(get_turf(src)) @@ -690,6 +711,8 @@ BLIND // can't see anything blood_overlay_type = "suitblood" siemens_coefficient = 0.9 w_class = ITEM_SIZE_NORMAL + drop_sound = SFX_DROP_CLOTH + pickup_sound = SFX_PICKUP_CLOTH /obj/item/clothing/suit/update_clothing_icon() if (ismob(src.loc)) @@ -743,6 +766,9 @@ BLIND // can't see anything valid_accessory_slots = list(ACCESSORY_SLOT_UTILITY,ACCESSORY_SLOT_HOLSTER,ACCESSORY_SLOT_ARMBAND,ACCESSORY_SLOT_RANK,ACCESSORY_SLOT_DEPT,ACCESSORY_SLOT_DECOR,ACCESSORY_SLOT_MEDAL,ACCESSORY_SLOT_INSIGNIA) restricted_accessory_slots = list(ACCESSORY_SLOT_UTILITY,ACCESSORY_SLOT_HOLSTER,ACCESSORY_SLOT_ARMBAND,ACCESSORY_SLOT_RANK,ACCESSORY_SLOT_DEPT) + drop_sound = SFX_DROP_CLOTH + pickup_sound = SFX_PICKUP_CLOTH + /obj/item/clothing/under/New() ..() if(worn_state) @@ -961,3 +987,6 @@ BLIND // can't see anything species_restricted = list("exclude", SPECIES_DIONA) var/undergloves = 1 blood_overlay_type = null + + drop_sound = SFX_DROP_RING + pickup_sound = SFX_PICKUP_RING diff --git a/code/modules/clothing/clothing_accessories.dm b/code/modules/clothing/clothing_accessories.dm index 8c1e84349f4..9c1412ab86e 100644 --- a/code/modules/clothing/clothing_accessories.dm +++ b/code/modules/clothing/clothing_accessories.dm @@ -46,7 +46,7 @@ if(usr.incapacitated()) return - if(!usr.drop(src)) + if(!usr.drop(src, changing_slots = TRUE)) return switch(over_object.name) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 677d6a0043e..64106cd3d08 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -171,6 +171,9 @@ tint = TINT_BLIND flash_protection = FLASH_PROTECTION_MAJOR + drop_sound = SFX_DROP_GLOVES + pickup_sound = SFX_PICKUP_GLOVES + /obj/item/clothing/glasses/sunglasses/blindfold/tape name = "length of tape" desc = "It's a robust DIY blindfold!" diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 99a26dec1d5..57d7c47099b 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -14,6 +14,9 @@ permeability_coefficient = 0.05 armor = list(melee = 10, bullet = 5, laser = 10, energy = 10, bomb = 0, bio = 30) + drop_sound = SFX_DROP_RUBBER + pickup_sound = SFX_PICKUP_RUBBER + /obj/item/clothing/gloves/insulated/cheap //Cheap Chinese Crap desc = "These gloves are cheap copies of the coveted gloves, no way this can end badly." name = "budget insulated gloves" @@ -94,6 +97,9 @@ germ_level = 0 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 70) + drop_sound = SFX_DROP_RUBBER + pickup_sound = SFX_PICKUP_RUBBER + /obj/item/clothing/gloves/latex/modified item_flags = ITEM_FLAG_PREMODIFIED diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 691559559bb..520c0e89052 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -12,6 +12,9 @@ heat_protection = HEAD max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE + pickup_sound = SFX_PICKUP_HELMET + drop_sound = SFX_DROP_HELMET + /obj/item/clothing/head/hardhat/orange icon_state = "hardhat0_orange" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 1893bc04d4d..1c82acf7966 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -26,6 +26,9 @@ RADIATION_HAWKING = 1 ELECTRONVOLT ) + drop_sound = SFX_DROP_HELMET + pickup_sound = SFX_PICKUP_HELMET + /obj/item/clothing/head/helmet/attack_self(mob/user) if(visor_body_parts_covered) togglevisor(user) diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 6642b5388aa..2239de86e19 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -32,6 +32,9 @@ tint = TINT_HEAVY var/obj/item/welding_cover/cover = null + pickup_sound = SFX_PICKUP_HELMET + drop_sound = SFX_DROP_HELMET + /obj/item/clothing/head/welding/_examine_text(mob/user) . = ..() if(cover) diff --git a/code/modules/clothing/shoes/jobs.dm b/code/modules/clothing/shoes/jobs.dm index a97138881d5..fe174a19d26 100644 --- a/code/modules/clothing/shoes/jobs.dm +++ b/code/modules/clothing/shoes/jobs.dm @@ -10,6 +10,9 @@ armor = list(melee = 35, bullet = 30, laser = 30,energy = 35, bomb = 25, bio = 35) + drop_sound = SFX_DROP_BOOTS + pickup_sound = SFX_PICKUP_BOOTS + /obj/item/clothing/shoes/galoshes/Initialize() . = ..() slowdown_per_slot[slot_shoes] = 1 @@ -25,6 +28,9 @@ cold_protection = FEET min_cold_protection_temperature = HELMET_MIN_COLD_PROTECTION_TEMPERATURE + drop_sound = SFX_DROP_BOOTS + pickup_sound = SFX_PICKUP_BOOTS + /obj/item/clothing/shoes/jackboots/tactical name = "tactical jackboots" desc = "Tall synthleather boots with an artificial shine. These ones seem to be reinforced with some sort of plating." @@ -46,6 +52,9 @@ siemens_coefficient = 0.4 can_hold_knife = 1 + drop_sound = SFX_DROP_BOOTS + pickup_sound = SFX_PICKUP_BOOTS + /obj/item/clothing/shoes/workboots/toeless name = "toe-less workboots" desc = "A pair of toeless work boots designed for use in industrial settings. Modified for species whose toes have claws." diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index 86aa90dfbe8..59a057099cb 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -24,6 +24,9 @@ RADIATION_HAWKING = 1 ELECTRONVOLT ) + drop_sound = SFX_DROP_BOOTS + pickup_sound = SFX_PICKUP_BOOTS + /obj/item/clothing/shoes/magboots/proc/set_slowdown() slowdown_per_slot[slot_shoes] = shoes? max(0, shoes.slowdown_per_slot[slot_shoes]): 0 //So you can't put on magboots to make you walk faster. if (magpulse) diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index 4e12e2ba373..767cfc20aa4 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -15,6 +15,9 @@ var/high_visibility //if it should appear on examine without detailed view var/slowdown //used when an accessory is meant to slow the wearer down when attached to clothing + drop_sound = SFX_DROP_ACCESSORY + pickup_sound = SFX_PICKUP_ACCESSORY + /obj/item/clothing/accessory/Destroy() if(has_suit) has_suit.remove_accessory(null, src) diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/under/accessories/holster.dm index 2d0e1c9ff96..72d83a97291 100644 --- a/code/modules/clothing/under/accessories/holster.dm +++ b/code/modules/clothing/under/accessories/holster.dm @@ -8,6 +8,9 @@ var/list/can_hold var/datum/action/item_action/holster_action + var/sound_holster_in = SFX_HOLSTERIN + var/sound_holster_out = SFX_HOLSTEROUT + /datum/action/item_action/holster name = "Holster" check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING|AB_CHECK_ALIVE @@ -73,6 +76,8 @@ user.visible_message(SPAN("notice", "[user] holsters \the [holstered]."), SPAN("notice", "You holster \the [holstered].")) name = "occupied [initial(name)]" + playsound(src, sound_holster_in, rand(40,60)) + /obj/item/clothing/accessory/holster/proc/clear_holster() holstered = null SetName(initial(name)) @@ -98,6 +103,7 @@ holstered.add_fingerprint(user) w_class = initial(w_class) clear_holster() + playsound(src, sound_holster_out, rand(40,60)) /obj/item/clothing/accessory/holster/attackby(obj/item/W, mob/user) holster(W, user) @@ -177,14 +183,20 @@ name = "hip holster" desc = "A handgun holster slung low on the hip, draw pardner!" icon_state = "holster_hip" + sound_holster_in = SFX_TACHOLSTERIN + sound_holster_out = SFX_TACHOLSTEROUT /obj/item/clothing/accessory/holster/thigh name = "thigh holster" desc = "A drop leg holster made of a durable synthetic fiber." icon_state = "holster_thigh" + sound_holster_in = SFX_TACHOLSTERIN + sound_holster_out = SFX_TACHOLSTEROUT /obj/item/clothing/accessory/holster/machete name = "machete sheath" desc = "A handsome synthetic leather sheath with matching belt." icon_state = "holster_machete" can_hold = list(/obj/item/material/hatchet/machete) + sound_holster_in = SFX_SHEATHIN + sound_holster_out = SFX_SHEATHOUT diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index 4cd367a8a09..c63e7ca5fea 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -207,6 +207,9 @@ var/window_width = 650 var/window_height = 650 + drop_sound = SFX_DROP_BOOK + pickup_sound = SFX_PICKUP_BOOK + /obj/item/book/attack_self(mob/user) if(carved) if(store) diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm index 2c85c341250..db412969853 100644 --- a/code/modules/lighting/lighting_atom.dm +++ b/code/modules/lighting/lighting_atom.dm @@ -105,9 +105,6 @@ if(loc != old_loc) {\ /obj/item/pickup() . = ..() - if (pickup_sound) - playsound(src, pickup_sound, rand(50, 75), TRUE) - update_light() /obj/item/dropped() diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm index 03d02dd31be..e119e6dd46b 100644 --- a/code/modules/materials/material_sheets.dm +++ b/code/modules/materials/material_sheets.dm @@ -14,6 +14,9 @@ var/perunit = SHEET_MATERIAL_AMOUNT var/apply_colour //temp pending icon rewrite + drop_sound = SFX_DROP_AXE + pickup_sound = SFX_PICKUP_AXE + /obj/item/stack/material/Initialize() . = ..() if(!default_type) @@ -277,6 +280,8 @@ name = "wooden plank" icon_state = "wood" default_type = MATERIAL_WOOD + drop_sound = SFX_DROP_WOODEN + pickup_sound = SFX_PICKUP_WOODEN /obj/item/stack/material/wood/ten amount = 10 @@ -317,10 +322,15 @@ icon_state = "leather" default_type = MATERIAL_LEATHER + drop_sound = SFX_DROP_LEATHER + pickup_sound = SFX_PICKUP_LEATHER + /obj/item/stack/material/glass name = "glass" icon_state = "glass" default_type = MATERIAL_GLASS + drop_sound = SFX_DROP_GLASS + pickup_sound = SFX_PICKUP_GLASS /obj/item/stack/material/glass/ten amount = 10 diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 05a6a405e79..fe2a08dbdf9 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -192,6 +192,9 @@ sharp = 0 edge = 1 + drop_sound = SFX_DROP_SHOVEL + pickup_sound = SFX_PICKUP_SHOVEL + /obj/item/shovel/spade name = "spade" desc = "A small tool for digging and moving dirt." diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 67c362ec384..34ed2c1f83f 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -185,7 +185,7 @@ var/list/slot_equipment_priority = list( \ // Removes an item from inventory and places it in the target atom. // If canremove or other conditions must be ignored then use 'force = TRUE'. // Returns TRUE if an item's removed from inventory AND still exists. -/mob/proc/drop(obj/item/I, atom/target = null, force = FALSE) +/mob/proc/drop(obj/item/I, atom/target = null, force = FALSE, changing_slots = FALSE) if(!I) return FALSE @@ -204,7 +204,7 @@ var/list/slot_equipment_priority = list( \ I.forceMove(target) else I.dropInto(loc) - I.dropped(src) + I.dropped(src, changing_slots) if(!I?.loc) return FALSE // self destroying objects (tk, grabs) diff --git a/code/modules/mob/living/carbon/alien/diona/diona.dm b/code/modules/mob/living/carbon/alien/diona/diona.dm index ac9b353226f..182f9e52de4 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona.dm @@ -34,7 +34,7 @@ if(hat) to_chat(user, SPAN("notice", "It is wearing \icon[hat] \a [hat].")) -/mob/living/carbon/alien/diona/drop(obj/item/W, atom/Target = null, force = null) +/mob/living/carbon/alien/diona/drop(obj/item/W, atom/Target = null, force = null, changing_slots) . = ..() if(W == hat) hat = null diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 8b3d9352148..2babd4f8740 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1440,7 +1440,7 @@ to_chat(S, "[U] pops your [current_limb.joint] back in!") current_limb.undislocate() -/mob/living/carbon/human/drop(obj/item/W, atom/Target = null, force = null) +/mob/living/carbon/human/drop(obj/item/W, atom/Target = null, force = null, changing_slots) if(W in organs) return . = ..() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 500ff594cee..c0653edf156 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -769,7 +769,7 @@ /mob/living/proc/slip_on_obj(/obj/slipped_on, stun_duration = 8, slip_dist = 0) return 0 -/mob/living/carbon/drop(obj/item/W, atom/Target = null, force = null) +/mob/living/carbon/drop(obj/item/W, atom/Target = null, force = null, changing_slots) if(W in internal_organs) return . = ..() diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index a26ac599d3e..90e9a484118 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -5,7 +5,7 @@ /mob/living/silicon/robot/get_active_hand() return module_active -/mob/living/silicon/robot/drop(obj/item/I, atom/target = null, force = FALSE) +/mob/living/silicon/robot/drop(obj/item/I, atom/target = null, force = FALSE, changing_slots) if(!can_unequip(I)) return FALSE var/obj/item/gripper/G = module_active diff --git a/code/modules/mob/organs/internal/man_machine_interface.dm b/code/modules/mob/organs/internal/man_machine_interface.dm index 7652978b92c..f1570802189 100644 --- a/code/modules/mob/organs/internal/man_machine_interface.dm +++ b/code/modules/mob/organs/internal/man_machine_interface.dm @@ -26,6 +26,9 @@ GLOBAL_LIST_INIT(whitelisted_mmi_species, list( var/obj/item/organ/internal/cerebrum/brain/brainobj = null + drop_sound = SFX_DROP_DEVICE + pickup_sound = SFX_PICKUP_DEVICE + /obj/item/organ/internal/cerebrum/mmi/New(newLoc, mob/living/carbon/human/old_shell) robotize() if(istype(old_shell)) _create_brain(old_shell) diff --git a/code/modules/mob/organs/organ.dm b/code/modules/mob/organs/organ.dm index 534a3c31972..152c74cfeee 100644 --- a/code/modules/mob/organs/organ.dm +++ b/code/modules/mob/organs/organ.dm @@ -32,6 +32,9 @@ var/list/organ_cache = list() var/obj/item/reagent_containers/food/food_organ var/disable_food_organ = FALSE // used to override food_organ's creation and using + drop_sound = SFX_DROP_FLESH + pickup_sound = SFX_PICKUP_FLESH + /obj/item/organ/return_item() return food_organ diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 6b2e106fda3..5412f69df98 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -5,6 +5,9 @@ icon_state = "folder" w_class = ITEM_SIZE_SMALL + drop_sound = SFX_DROP_PAPER + pickup_sound = SFX_PICKUP_PAPER + /obj/item/folder/blue desc = "A blue folder." icon_state = "folder_blue" diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 0e4e932587c..8b0d39d6537 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -96,6 +96,9 @@ var/static/regex/field_regex = regex(@##, "g") var/static/regex/field_link_regex = regex("write", "g") + drop_sound = SFX_DROP_PAPER + pickup_sound = SFX_PICKUP_PAPER + /obj/item/paper/Initialize(mapload, text, title, rawhtml = TRUE, noinit = FALSE) . = ..() diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index 2e607b9c664..e265b3dea2d 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -14,6 +14,8 @@ var/page = 1 // current page var/list/pages = list() // Ordered list of pages as they are to be displayed. Can be different order than src.contents. + drop_sound = SFX_DROP_PAPER + pickup_sound = SFX_PICKUP_PAPER /obj/item/paper_bundle/attackby(obj/item/W, mob/user) ..() diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index ba93922ca87..488ce16ec2d 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -11,6 +11,8 @@ var/amount = 30 //How much paper is in the bin. var/list/papers = new /list() //List of papers put in the bin for reference. + drop_sound = SFX_DROP_CARDBOARD + pickup_sound = SFX_PICKUP_CARDBOARD /obj/item/paper_bin/MouseDrop(mob/user) if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr)))))) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index b851971cde2..b9c10ccecee 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -93,6 +93,9 @@ var/mob/autofiring_by var/autofiring_timer + drop_sound = SFX_DROP_GUN + pickup_sound = SFX_PICKUP_GUN + /obj/item/gun/Initialize() . = ..() for(var/i in 1 to firemodes.len) diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index e037373c43e..402e601d4f5 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -18,6 +18,9 @@ var/vampire_marks = null var/mob/living/carbon/human/attached + drop_sound = SFX_DROP_FOOD + pickup_sound = SFX_PICKUP_FOOD + /obj/item/reagent_containers/ivbag/Destroy() attached = null . = ..() diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 9cd68fea4bc..0af49d2110e 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -12,6 +12,9 @@ slot_flags = SLOT_EARS volume = 5 + drop_sound = SFX_DROP_GLASSSMALL + pickup_sound = SFX_PICKUP_GLASSSMALL + afterattack(obj/target, mob/user, proximity) if(!target.reagents || !proximity) return diff --git a/code/modules/reagents/reagent_containers/food/meat.dm b/code/modules/reagents/reagent_containers/food/meat.dm index 087866f7718..5b5f69d3606 100644 --- a/code/modules/reagents/reagent_containers/food/meat.dm +++ b/code/modules/reagents/reagent_containers/food/meat.dm @@ -8,6 +8,9 @@ startswith = list(/datum/reagent/nutriment/protein = 9) bitesize = 3 + drop_sound = SFX_DROP_FLESH + pickup_sound = SFX_PICKUP_FLESH + /obj/item/reagent_containers/food/meat/attackby(obj/item/W, mob/user) if(istype(W,/obj/item/material/knife)) new /obj/item/reagent_containers/food/rawcutlet(src) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 739a6c4eb91..21a79ba9b71 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -16,6 +16,9 @@ atom_flags = ATOM_FLAG_OPEN_CONTAINER slot_flags = SLOT_BELT + drop_sound = SFX_DROP_GUN + pickup_sound = SFX_PICKUP_GUN + /obj/item/reagent_containers/hypospray/do_surgery(mob/living/carbon/M, mob/living/user) if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool return ..() diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 88363a2e357..a6efdb6c8b2 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -14,6 +14,9 @@ volume = 30 var/mimic_color = FALSE + drop_sound = SFX_DROP_FOOD + pickup_sound = SFX_PICKUP_FOOD + /obj/item/reagent_containers/pill/Initialize() . = ..() if(!icon_state) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index b02ae07a6ee..9a1983b3b7c 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -190,6 +190,9 @@ volume = 10 startswith = list(/datum/reagent/water) + drop_sound = SFX_DROP_HERB + pickup_sound = SFX_PICKUP_HERB + /obj/item/reagent_containers/spray/chemsprayer name = "chem sprayer" desc = "A utility used to spray large amounts of reagent in a given area." diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 898aba918c1..8ca572d3451 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -26,6 +26,9 @@ var/starting_label = null var/package_state = "package" + drop_sound = SFX_DROP_DEVICE + pickup_sound = SFX_PICKUP_DEVICE + /obj/item/reagent_containers/syringe/Initialize() . = ..() if(mode != SYRINGE_PACKAGED && starting_label) diff --git a/code/modules/reagents/reagent_containers/vessel/_vessel.dm b/code/modules/reagents/reagent_containers/vessel/_vessel.dm index 24ec074d3f3..ae73e35fa8d 100644 --- a/code/modules/reagents/reagent_containers/vessel/_vessel.dm +++ b/code/modules/reagents/reagent_containers/vessel/_vessel.dm @@ -22,7 +22,8 @@ w_class = ITEM_SIZE_SMALL atom_flags = ATOM_FLAG_OPEN_CONTAINER unacidable = TRUE // Most of these are made of glass - pickup_sound = 'sound/effects/using/bottles/pickup3.ogg' + pickup_sound = SFX_PICKUP_BOTTLE + drop_sound = SFX_DROP_BOTTLE can_be_splashed = TRUE var/brittle = FALSE @@ -513,3 +514,6 @@ edge = 0 unacidable = 1 var/icon/broken_outline = icon('icons/obj/reagent_containers/vessels.dmi', "broken") + + drop_sound = SFX_DROP_GLASSSMALL + pickup_sound = SFX_PICKUP_GLASSSMALL diff --git a/code/modules/reagents/reagent_containers/vessel/beaker.dm b/code/modules/reagents/reagent_containers/vessel/beaker.dm index 06150649bf5..d350fcf9697 100644 --- a/code/modules/reagents/reagent_containers/vessel/beaker.dm +++ b/code/modules/reagents/reagent_containers/vessel/beaker.dm @@ -23,6 +23,9 @@ RADIATION_HAWKING = 1 ELECTRONVOLT ) + drop_sound = SFX_DROP_HELMET + pickup_sound = SFX_PICKUP_HELMET + /obj/item/reagent_containers/vessel/beaker/large name = "large beaker" desc = "A large beaker." diff --git a/code/modules/reagents/reagent_containers/vessel/bottle.dm b/code/modules/reagents/reagent_containers/vessel/bottle.dm index 9e6efb5ab50..7636ce2fe47 100644 --- a/code/modules/reagents/reagent_containers/vessel/bottle.dm +++ b/code/modules/reagents/reagent_containers/vessel/bottle.dm @@ -28,6 +28,9 @@ var/obj/item/bottle_extra/pourer/pourer = null var/pourer_overlay = "pourer_overlay" + drop_sound = SFX_DROP_GLASSBOTTLE + pickup_sound = SFX_PICKUP_GLASSBOTTLE + /obj/item/reagent_containers/vessel/bottle/Destroy() if(rag) rag.forceMove(get_turf(src)) @@ -147,6 +150,9 @@ lid_type = /datum/vessel_lid/cork rag_underlay = "rag_medium" + drop_sound = SFX_DROP_BOTTLE + pickup_sound = SFX_PICKUP_BOTTLE + /obj/item/reagent_containers/vessel/bottle/chemical/small name = "small bottle" desc = "A small glass bottle." diff --git a/code/modules/reagents/reagent_containers/vessel/can.dm b/code/modules/reagents/reagent_containers/vessel/can.dm index cfc3588aca3..50d1ee7bc15 100644 --- a/code/modules/reagents/reagent_containers/vessel/can.dm +++ b/code/modules/reagents/reagent_containers/vessel/can.dm @@ -14,6 +14,8 @@ mod_handy = 0.5 unacidable = FALSE var/trash = null + drop_sound = SFX_DROP_SODACAN + pickup_sound = SFX_PICKUP_SODACAN /obj/item/reagent_containers/vessel/can/attack_self(mob/user) if((!reagents || !reagents.total_volume) && trash && user.a_intent != I_HELP) diff --git a/code/modules/reagents/reagent_containers/vessel/glass/_glass.dm b/code/modules/reagents/reagent_containers/vessel/glass/_glass.dm index 183621af92c..e160170025f 100644 --- a/code/modules/reagents/reagent_containers/vessel/glass/_glass.dm +++ b/code/modules/reagents/reagent_containers/vessel/glass/_glass.dm @@ -26,6 +26,9 @@ var/list/extras = list() // List of extras. Two extras maximum var/rim_pos // Position of the rim for fruit slices. list(y, x_left, x_right) + drop_sound = SFX_DROP_GLASS + pickup_sound = SFX_PICKUP_GLASS + /obj/item/reagent_containers/vessel/glass/_examine_text(mob/M) . = ..() diff --git a/code/modules/reagents/reagent_containers/vessel/unsorted.dm b/code/modules/reagents/reagent_containers/vessel/unsorted.dm index 85d8b9d737e..38f613c9c72 100644 --- a/code/modules/reagents/reagent_containers/vessel/unsorted.dm +++ b/code/modules/reagents/reagent_containers/vessel/unsorted.dm @@ -34,6 +34,9 @@ unacidable = FALSE lid_type = null + drop_sound = SFX_DROP_METALPOT + pickup_sound = SFX_PICKUP_METALPOT + /obj/item/reagent_containers/vessel/bucket/full startswith = list(/datum/reagent/water) @@ -173,6 +176,9 @@ lid_type = null unacidable = FALSE + drop_sound = SFX_DROP_PAPERCUP + pickup_sound = SFX_PICKUP_PAPERCUP + /obj/item/reagent_containers/vessel/shaker name = "shaker" desc = "A metal shaker to mix drinks in." diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 50509a88011..529538d6986 100755 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -144,6 +144,9 @@ var/nameset = 0 var/tag_x + drop_sound = SFX_DROP_CARDBOARD + pickup_sound = SFX_PICKUP_CARDBOARD + /obj/item/smallDelivery/proc/unwrap(mob/user) if(!Adjacent(user)) return @@ -269,6 +272,9 @@ w_class = ITEM_SIZE_NORMAL var/amount = 25.0 + drop_sound = SFX_DROP_WRAPPER + pickup_sound = SFX_PICKUP_WRAPPER + /obj/item/c_tube name = "cardboard tube" desc = "A tube... of cardboard." diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm index d578f00bf11..4931ed8840f 100644 --- a/code/modules/research/stock_parts.dm +++ b/code/modules/research/stock_parts.dm @@ -24,6 +24,9 @@ w_class = ITEM_SIZE_SMALL var/rating = 1 + drop_sound = SFX_DROP_COMPONENT + pickup_sound = SFX_PICKUP_COMPONENT + //Rank 1 /obj/item/stock_parts/console_screen @@ -33,6 +36,9 @@ origin_tech = list(TECH_MATERIAL = 1) matter = list(MATERIAL_GLASS = 200) + drop_sound = SFX_DROP_GLASS + pickup_sound = SFX_PICKUP_GLASS + /obj/item/stock_parts/scanning_module name = "scanning module" desc = "A compact, high resolution scanning module used in the construction of certain devices." diff --git a/sound/effects/drop/ammobox.ogg b/sound/effects/drop/ammobox.ogg new file mode 100644 index 00000000000..13fce70fe3d Binary files /dev/null and b/sound/effects/drop/ammobox.ogg differ diff --git a/sound/effects/drop/axe.ogg b/sound/effects/drop/axe.ogg new file mode 100644 index 00000000000..eae55a6fd50 Binary files /dev/null and b/sound/effects/drop/axe.ogg differ diff --git a/sound/effects/drop/backpack.ogg b/sound/effects/drop/backpack.ogg new file mode 100644 index 00000000000..ba0d90d9d6b Binary files /dev/null and b/sound/effects/drop/backpack.ogg differ diff --git a/sound/effects/drop/ball.ogg b/sound/effects/drop/ball.ogg new file mode 100644 index 00000000000..6520c7a9066 Binary files /dev/null and b/sound/effects/drop/ball.ogg differ diff --git a/sound/effects/drop/book.ogg b/sound/effects/drop/book.ogg new file mode 100644 index 00000000000..b492b665f59 Binary files /dev/null and b/sound/effects/drop/book.ogg differ diff --git a/sound/effects/drop/boots.ogg b/sound/effects/drop/boots.ogg new file mode 100644 index 00000000000..87176cdca23 Binary files /dev/null and b/sound/effects/drop/boots.ogg differ diff --git a/sound/effects/drop/bottle.ogg b/sound/effects/drop/bottle.ogg new file mode 100644 index 00000000000..8df93e32b70 Binary files /dev/null and b/sound/effects/drop/bottle.ogg differ diff --git a/sound/effects/drop/card.ogg b/sound/effects/drop/card.ogg new file mode 100644 index 00000000000..7e2620d2b0b Binary files /dev/null and b/sound/effects/drop/card.ogg differ diff --git a/sound/effects/drop/cardboardbox.ogg b/sound/effects/drop/cardboardbox.ogg new file mode 100644 index 00000000000..7070ba1c342 Binary files /dev/null and b/sound/effects/drop/cardboardbox.ogg differ diff --git a/sound/effects/drop/cloth.ogg b/sound/effects/drop/cloth.ogg new file mode 100644 index 00000000000..5bf734caba0 Binary files /dev/null and b/sound/effects/drop/cloth.ogg differ diff --git a/sound/effects/drop/component.ogg b/sound/effects/drop/component.ogg new file mode 100644 index 00000000000..093fde7c90c Binary files /dev/null and b/sound/effects/drop/component.ogg differ diff --git a/sound/effects/drop/crowbar.ogg b/sound/effects/drop/crowbar.ogg new file mode 100644 index 00000000000..77464110661 Binary files /dev/null and b/sound/effects/drop/crowbar.ogg differ diff --git a/sound/effects/drop/device.ogg b/sound/effects/drop/device.ogg new file mode 100644 index 00000000000..8382db94b8a Binary files /dev/null and b/sound/effects/drop/device.ogg differ diff --git a/sound/effects/drop/disk.ogg b/sound/effects/drop/disk.ogg new file mode 100644 index 00000000000..3174b88117f Binary files /dev/null and b/sound/effects/drop/disk.ogg differ diff --git a/sound/effects/drop/drinkglass.ogg b/sound/effects/drop/drinkglass.ogg new file mode 100644 index 00000000000..43bb732db3d Binary files /dev/null and b/sound/effects/drop/drinkglass.ogg differ diff --git a/sound/effects/drop/flesh.ogg b/sound/effects/drop/flesh.ogg new file mode 100644 index 00000000000..bb7af66a2ea Binary files /dev/null and b/sound/effects/drop/flesh.ogg differ diff --git a/sound/effects/drop/food.ogg b/sound/effects/drop/food.ogg new file mode 100644 index 00000000000..ace68d4e997 Binary files /dev/null and b/sound/effects/drop/food.ogg differ diff --git a/sound/effects/drop/gascan.ogg b/sound/effects/drop/gascan.ogg new file mode 100644 index 00000000000..29d8b5230d7 Binary files /dev/null and b/sound/effects/drop/gascan.ogg differ diff --git a/sound/effects/drop/generic1.ogg b/sound/effects/drop/generic1.ogg new file mode 100644 index 00000000000..c2195b1e24a Binary files /dev/null and b/sound/effects/drop/generic1.ogg differ diff --git a/sound/effects/drop/generic2.ogg b/sound/effects/drop/generic2.ogg new file mode 100644 index 00000000000..ac0bd3710fe Binary files /dev/null and b/sound/effects/drop/generic2.ogg differ diff --git a/sound/effects/drop/glass.ogg b/sound/effects/drop/glass.ogg new file mode 100644 index 00000000000..fbcd2ac4fb7 Binary files /dev/null and b/sound/effects/drop/glass.ogg differ diff --git a/sound/effects/drop/glass_small.ogg b/sound/effects/drop/glass_small.ogg new file mode 100644 index 00000000000..2dbbb3a2301 Binary files /dev/null and b/sound/effects/drop/glass_small.ogg differ diff --git a/sound/effects/drop/gloves.ogg b/sound/effects/drop/gloves.ogg new file mode 100644 index 00000000000..b1cee65c52f Binary files /dev/null and b/sound/effects/drop/gloves.ogg differ diff --git a/sound/effects/drop/gun.ogg b/sound/effects/drop/gun.ogg new file mode 100644 index 00000000000..3a489c72c0f Binary files /dev/null and b/sound/effects/drop/gun.ogg differ diff --git a/sound/effects/drop/hat.ogg b/sound/effects/drop/hat.ogg new file mode 100644 index 00000000000..f13c656c031 Binary files /dev/null and b/sound/effects/drop/hat.ogg differ diff --git a/sound/effects/drop/helm.ogg b/sound/effects/drop/helm.ogg new file mode 100644 index 00000000000..bbca1b381e2 Binary files /dev/null and b/sound/effects/drop/helm.ogg differ diff --git a/sound/effects/drop/herb.ogg b/sound/effects/drop/herb.ogg new file mode 100644 index 00000000000..2f4afe17d22 Binary files /dev/null and b/sound/effects/drop/herb.ogg differ diff --git a/sound/effects/drop/knife.ogg b/sound/effects/drop/knife.ogg new file mode 100644 index 00000000000..954b611a97f Binary files /dev/null and b/sound/effects/drop/knife.ogg differ diff --git a/sound/effects/drop/leather.ogg b/sound/effects/drop/leather.ogg new file mode 100644 index 00000000000..beb0f469166 Binary files /dev/null and b/sound/effects/drop/leather.ogg differ diff --git a/sound/effects/drop/matchbox.ogg b/sound/effects/drop/matchbox.ogg new file mode 100644 index 00000000000..8e4e276c9e1 Binary files /dev/null and b/sound/effects/drop/matchbox.ogg differ diff --git a/sound/effects/drop/metal_pot.ogg b/sound/effects/drop/metal_pot.ogg new file mode 100644 index 00000000000..f2f26195560 Binary files /dev/null and b/sound/effects/drop/metal_pot.ogg differ diff --git a/sound/effects/drop/metalweapon.ogg b/sound/effects/drop/metalweapon.ogg new file mode 100644 index 00000000000..4ac4f039b91 Binary files /dev/null and b/sound/effects/drop/metalweapon.ogg differ diff --git a/sound/effects/drop/multitool.ogg b/sound/effects/drop/multitool.ogg new file mode 100644 index 00000000000..67e0a41042c Binary files /dev/null and b/sound/effects/drop/multitool.ogg differ diff --git a/sound/effects/drop/paper.ogg b/sound/effects/drop/paper.ogg new file mode 100644 index 00000000000..27ce2b3d1a7 Binary files /dev/null and b/sound/effects/drop/paper.ogg differ diff --git a/sound/effects/drop/papercup.ogg b/sound/effects/drop/papercup.ogg new file mode 100644 index 00000000000..6bea17488f5 Binary files /dev/null and b/sound/effects/drop/papercup.ogg differ diff --git a/sound/effects/drop/pillbottle.ogg b/sound/effects/drop/pillbottle.ogg new file mode 100644 index 00000000000..6c899370596 Binary files /dev/null and b/sound/effects/drop/pillbottle.ogg differ diff --git a/sound/effects/drop/plushie.ogg b/sound/effects/drop/plushie.ogg new file mode 100644 index 00000000000..a6d0f290b69 Binary files /dev/null and b/sound/effects/drop/plushie.ogg differ diff --git a/sound/effects/drop/ring.ogg b/sound/effects/drop/ring.ogg new file mode 100644 index 00000000000..e8949b877a5 Binary files /dev/null and b/sound/effects/drop/ring.ogg differ diff --git a/sound/effects/drop/rubber.ogg b/sound/effects/drop/rubber.ogg new file mode 100644 index 00000000000..a0b365020d2 Binary files /dev/null and b/sound/effects/drop/rubber.ogg differ diff --git a/sound/effects/drop/screwdriver.ogg b/sound/effects/drop/screwdriver.ogg new file mode 100644 index 00000000000..d460fd0aeda Binary files /dev/null and b/sound/effects/drop/screwdriver.ogg differ diff --git a/sound/effects/drop/shell_drop.ogg b/sound/effects/drop/shell_drop.ogg new file mode 100644 index 00000000000..0d6556ef439 Binary files /dev/null and b/sound/effects/drop/shell_drop.ogg differ diff --git a/sound/effects/drop/shoes.ogg b/sound/effects/drop/shoes.ogg new file mode 100644 index 00000000000..5dbf0c41447 Binary files /dev/null and b/sound/effects/drop/shoes.ogg differ diff --git a/sound/effects/drop/shovel.ogg b/sound/effects/drop/shovel.ogg new file mode 100644 index 00000000000..72ceefffa12 Binary files /dev/null and b/sound/effects/drop/shovel.ogg differ diff --git a/sound/effects/drop/soda.ogg b/sound/effects/drop/soda.ogg new file mode 100644 index 00000000000..d968799e5ea Binary files /dev/null and b/sound/effects/drop/soda.ogg differ diff --git a/sound/effects/drop/sword.ogg b/sound/effects/drop/sword.ogg new file mode 100644 index 00000000000..1287c171cb8 Binary files /dev/null and b/sound/effects/drop/sword.ogg differ diff --git a/sound/effects/drop/toolbelt.ogg b/sound/effects/drop/toolbelt.ogg new file mode 100644 index 00000000000..2a3c4655c49 Binary files /dev/null and b/sound/effects/drop/toolbelt.ogg differ diff --git a/sound/effects/drop/toolbox.ogg b/sound/effects/drop/toolbox.ogg new file mode 100644 index 00000000000..abf56946278 Binary files /dev/null and b/sound/effects/drop/toolbox.ogg differ diff --git a/sound/effects/drop/weldingtool.ogg b/sound/effects/drop/weldingtool.ogg new file mode 100644 index 00000000000..58b722ad7a7 Binary files /dev/null and b/sound/effects/drop/weldingtool.ogg differ diff --git a/sound/effects/drop/weldingtool_drop.ogg b/sound/effects/drop/weldingtool_drop.ogg new file mode 100644 index 00000000000..58b722ad7a7 Binary files /dev/null and b/sound/effects/drop/weldingtool_drop.ogg differ diff --git a/sound/effects/drop/wirecutter.ogg b/sound/effects/drop/wirecutter.ogg new file mode 100644 index 00000000000..e099870fc7d Binary files /dev/null and b/sound/effects/drop/wirecutter.ogg differ diff --git a/sound/effects/drop/wirecutter_drop.ogg b/sound/effects/drop/wirecutter_drop.ogg new file mode 100644 index 00000000000..e099870fc7d Binary files /dev/null and b/sound/effects/drop/wirecutter_drop.ogg differ diff --git a/sound/effects/drop/wooden.ogg b/sound/effects/drop/wooden.ogg new file mode 100644 index 00000000000..dd6c4e7c530 Binary files /dev/null and b/sound/effects/drop/wooden.ogg differ diff --git a/sound/effects/drop/woodweapon.ogg b/sound/effects/drop/woodweapon.ogg new file mode 100644 index 00000000000..517f9c015ac Binary files /dev/null and b/sound/effects/drop/woodweapon.ogg differ diff --git a/sound/effects/drop/wrapper.ogg b/sound/effects/drop/wrapper.ogg new file mode 100644 index 00000000000..9f7927e6db3 Binary files /dev/null and b/sound/effects/drop/wrapper.ogg differ diff --git a/sound/effects/drop/wrench.ogg b/sound/effects/drop/wrench.ogg new file mode 100644 index 00000000000..86020bf822c Binary files /dev/null and b/sound/effects/drop/wrench.ogg differ diff --git a/sound/effects/holster/holsterin.ogg b/sound/effects/holster/holsterin.ogg new file mode 100644 index 00000000000..a0f3c639db5 Binary files /dev/null and b/sound/effects/holster/holsterin.ogg differ diff --git a/sound/effects/holster/holsterout.ogg b/sound/effects/holster/holsterout.ogg new file mode 100644 index 00000000000..743280a40d5 Binary files /dev/null and b/sound/effects/holster/holsterout.ogg differ diff --git a/sound/effects/holster/sheathin.ogg b/sound/effects/holster/sheathin.ogg new file mode 100644 index 00000000000..10fcbdf4601 Binary files /dev/null and b/sound/effects/holster/sheathin.ogg differ diff --git a/sound/effects/holster/sheathout.ogg b/sound/effects/holster/sheathout.ogg new file mode 100644 index 00000000000..6b20f970a08 Binary files /dev/null and b/sound/effects/holster/sheathout.ogg differ diff --git a/sound/effects/holster/tactiholsterin.ogg b/sound/effects/holster/tactiholsterin.ogg new file mode 100644 index 00000000000..aaec847ebc5 Binary files /dev/null and b/sound/effects/holster/tactiholsterin.ogg differ diff --git a/sound/effects/holster/tactiholsterout.ogg b/sound/effects/holster/tactiholsterout.ogg new file mode 100644 index 00000000000..f1c44c45861 Binary files /dev/null and b/sound/effects/holster/tactiholsterout.ogg differ diff --git a/sound/effects/pickup/accessory.ogg b/sound/effects/pickup/accessory.ogg new file mode 100644 index 00000000000..b532e2d4026 Binary files /dev/null and b/sound/effects/pickup/accessory.ogg differ diff --git a/sound/effects/pickup/ammobox.ogg b/sound/effects/pickup/ammobox.ogg new file mode 100644 index 00000000000..9532a7697b9 Binary files /dev/null and b/sound/effects/pickup/ammobox.ogg differ diff --git a/sound/effects/pickup/axe.ogg b/sound/effects/pickup/axe.ogg new file mode 100644 index 00000000000..a77809ab577 Binary files /dev/null and b/sound/effects/pickup/axe.ogg differ diff --git a/sound/effects/pickup/backpack.ogg b/sound/effects/pickup/backpack.ogg new file mode 100644 index 00000000000..50965d71344 Binary files /dev/null and b/sound/effects/pickup/backpack.ogg differ diff --git a/sound/effects/pickup/ball.ogg b/sound/effects/pickup/ball.ogg new file mode 100644 index 00000000000..cae604b1fd9 Binary files /dev/null and b/sound/effects/pickup/ball.ogg differ diff --git a/sound/effects/pickup/book.ogg b/sound/effects/pickup/book.ogg new file mode 100644 index 00000000000..120a4e4721a Binary files /dev/null and b/sound/effects/pickup/book.ogg differ diff --git a/sound/effects/pickup/boots.ogg b/sound/effects/pickup/boots.ogg new file mode 100644 index 00000000000..077801f6f53 Binary files /dev/null and b/sound/effects/pickup/boots.ogg differ diff --git a/sound/effects/pickup/bottle.ogg b/sound/effects/pickup/bottle.ogg new file mode 100644 index 00000000000..77e0b22187f Binary files /dev/null and b/sound/effects/pickup/bottle.ogg differ diff --git a/sound/effects/pickup/card.ogg b/sound/effects/pickup/card.ogg new file mode 100644 index 00000000000..44df4b32605 Binary files /dev/null and b/sound/effects/pickup/card.ogg differ diff --git a/sound/effects/pickup/cardboardbox.ogg b/sound/effects/pickup/cardboardbox.ogg new file mode 100644 index 00000000000..aa4e72129b0 Binary files /dev/null and b/sound/effects/pickup/cardboardbox.ogg differ diff --git a/sound/effects/pickup/cloth.ogg b/sound/effects/pickup/cloth.ogg new file mode 100644 index 00000000000..f46988887d1 Binary files /dev/null and b/sound/effects/pickup/cloth.ogg differ diff --git a/sound/effects/pickup/component.ogg b/sound/effects/pickup/component.ogg new file mode 100644 index 00000000000..cfaba1dd193 Binary files /dev/null and b/sound/effects/pickup/component.ogg differ diff --git a/sound/effects/pickup/crowbar.ogg b/sound/effects/pickup/crowbar.ogg new file mode 100644 index 00000000000..79b276f8451 Binary files /dev/null and b/sound/effects/pickup/crowbar.ogg differ diff --git a/sound/effects/pickup/device.ogg b/sound/effects/pickup/device.ogg new file mode 100644 index 00000000000..ca2c4f1ab12 Binary files /dev/null and b/sound/effects/pickup/device.ogg differ diff --git a/sound/effects/pickup/disk.ogg b/sound/effects/pickup/disk.ogg new file mode 100644 index 00000000000..8f67406a5fb Binary files /dev/null and b/sound/effects/pickup/disk.ogg differ diff --git a/sound/effects/pickup/drinkglass.ogg b/sound/effects/pickup/drinkglass.ogg new file mode 100644 index 00000000000..fcd1c7d3126 Binary files /dev/null and b/sound/effects/pickup/drinkglass.ogg differ diff --git a/sound/effects/pickup/flesh.ogg b/sound/effects/pickup/flesh.ogg new file mode 100644 index 00000000000..818ca54500f Binary files /dev/null and b/sound/effects/pickup/flesh.ogg differ diff --git a/sound/effects/pickup/food.ogg b/sound/effects/pickup/food.ogg new file mode 100644 index 00000000000..1113a16a368 Binary files /dev/null and b/sound/effects/pickup/food.ogg differ diff --git a/sound/effects/pickup/gascan.ogg b/sound/effects/pickup/gascan.ogg new file mode 100644 index 00000000000..c2a51c39721 Binary files /dev/null and b/sound/effects/pickup/gascan.ogg differ diff --git a/sound/effects/pickup/generic1.ogg b/sound/effects/pickup/generic1.ogg new file mode 100644 index 00000000000..64f37c6dd9c Binary files /dev/null and b/sound/effects/pickup/generic1.ogg differ diff --git a/sound/effects/pickup/generic2.ogg b/sound/effects/pickup/generic2.ogg new file mode 100644 index 00000000000..57092778f28 Binary files /dev/null and b/sound/effects/pickup/generic2.ogg differ diff --git a/sound/effects/pickup/generic3.ogg b/sound/effects/pickup/generic3.ogg new file mode 100644 index 00000000000..be46e772422 Binary files /dev/null and b/sound/effects/pickup/generic3.ogg differ diff --git a/sound/effects/pickup/glass.ogg b/sound/effects/pickup/glass.ogg new file mode 100644 index 00000000000..b248fbf5e60 Binary files /dev/null and b/sound/effects/pickup/glass.ogg differ diff --git a/sound/effects/pickup/glass_small.ogg b/sound/effects/pickup/glass_small.ogg new file mode 100644 index 00000000000..bf1e6dc0e6a Binary files /dev/null and b/sound/effects/pickup/glass_small.ogg differ diff --git a/sound/effects/pickup/gloves.ogg b/sound/effects/pickup/gloves.ogg new file mode 100644 index 00000000000..1a7d263426c Binary files /dev/null and b/sound/effects/pickup/gloves.ogg differ diff --git a/sound/effects/pickup/gun.ogg b/sound/effects/pickup/gun.ogg new file mode 100644 index 00000000000..4eeda50ca50 Binary files /dev/null and b/sound/effects/pickup/gun.ogg differ diff --git a/sound/effects/pickup/hat.ogg b/sound/effects/pickup/hat.ogg new file mode 100644 index 00000000000..d80b46f7f2d Binary files /dev/null and b/sound/effects/pickup/hat.ogg differ diff --git a/sound/effects/pickup/helm.ogg b/sound/effects/pickup/helm.ogg new file mode 100644 index 00000000000..2d33f62a5dd Binary files /dev/null and b/sound/effects/pickup/helm.ogg differ diff --git a/sound/effects/pickup/herb.ogg b/sound/effects/pickup/herb.ogg new file mode 100644 index 00000000000..bd250b5a137 Binary files /dev/null and b/sound/effects/pickup/herb.ogg differ diff --git a/sound/effects/pickup/knife.ogg b/sound/effects/pickup/knife.ogg new file mode 100644 index 00000000000..6f5ca73c246 Binary files /dev/null and b/sound/effects/pickup/knife.ogg differ diff --git a/sound/effects/pickup/leather.ogg b/sound/effects/pickup/leather.ogg new file mode 100644 index 00000000000..5895cd8f9f8 Binary files /dev/null and b/sound/effects/pickup/leather.ogg differ diff --git a/sound/effects/pickup/matchbox.ogg b/sound/effects/pickup/matchbox.ogg new file mode 100644 index 00000000000..82c23410e11 Binary files /dev/null and b/sound/effects/pickup/matchbox.ogg differ diff --git a/sound/effects/pickup/metal_pot.ogg b/sound/effects/pickup/metal_pot.ogg new file mode 100644 index 00000000000..3ddf6c66477 Binary files /dev/null and b/sound/effects/pickup/metal_pot.ogg differ diff --git a/sound/effects/pickup/metalweapon.ogg b/sound/effects/pickup/metalweapon.ogg new file mode 100644 index 00000000000..ac6e7387119 Binary files /dev/null and b/sound/effects/pickup/metalweapon.ogg differ diff --git a/sound/effects/pickup/multitool.ogg b/sound/effects/pickup/multitool.ogg new file mode 100644 index 00000000000..cbd598ce896 Binary files /dev/null and b/sound/effects/pickup/multitool.ogg differ diff --git a/sound/effects/pickup/paper.ogg b/sound/effects/pickup/paper.ogg new file mode 100644 index 00000000000..55ae2b3d2db Binary files /dev/null and b/sound/effects/pickup/paper.ogg differ diff --git a/sound/effects/pickup/papercup.ogg b/sound/effects/pickup/papercup.ogg new file mode 100644 index 00000000000..f0c459a3536 Binary files /dev/null and b/sound/effects/pickup/papercup.ogg differ diff --git a/sound/effects/pickup/pillbottle.ogg b/sound/effects/pickup/pillbottle.ogg new file mode 100644 index 00000000000..b62ec0016e5 Binary files /dev/null and b/sound/effects/pickup/pillbottle.ogg differ diff --git a/sound/effects/pickup/plushie.ogg b/sound/effects/pickup/plushie.ogg new file mode 100644 index 00000000000..91299b09758 Binary files /dev/null and b/sound/effects/pickup/plushie.ogg differ diff --git a/sound/effects/pickup/ring.ogg b/sound/effects/pickup/ring.ogg new file mode 100644 index 00000000000..41c57a3175a Binary files /dev/null and b/sound/effects/pickup/ring.ogg differ diff --git a/sound/effects/pickup/rubber.ogg b/sound/effects/pickup/rubber.ogg new file mode 100644 index 00000000000..874934ae459 Binary files /dev/null and b/sound/effects/pickup/rubber.ogg differ diff --git a/sound/effects/pickup/screwdriver.ogg b/sound/effects/pickup/screwdriver.ogg new file mode 100644 index 00000000000..987d9af7081 Binary files /dev/null and b/sound/effects/pickup/screwdriver.ogg differ diff --git a/sound/effects/pickup/shoes.ogg b/sound/effects/pickup/shoes.ogg new file mode 100644 index 00000000000..9200f325010 Binary files /dev/null and b/sound/effects/pickup/shoes.ogg differ diff --git a/sound/effects/pickup/shovel.ogg b/sound/effects/pickup/shovel.ogg new file mode 100644 index 00000000000..0d146824119 Binary files /dev/null and b/sound/effects/pickup/shovel.ogg differ diff --git a/sound/effects/pickup/soda.ogg b/sound/effects/pickup/soda.ogg new file mode 100644 index 00000000000..f19a06ec751 Binary files /dev/null and b/sound/effects/pickup/soda.ogg differ diff --git a/sound/effects/pickup/sword1.ogg b/sound/effects/pickup/sword1.ogg new file mode 100644 index 00000000000..96d8d00cf50 Binary files /dev/null and b/sound/effects/pickup/sword1.ogg differ diff --git a/sound/effects/pickup/sword2.ogg b/sound/effects/pickup/sword2.ogg new file mode 100644 index 00000000000..67e05cca760 Binary files /dev/null and b/sound/effects/pickup/sword2.ogg differ diff --git a/sound/effects/pickup/sword3.ogg b/sound/effects/pickup/sword3.ogg new file mode 100644 index 00000000000..d5149e39056 Binary files /dev/null and b/sound/effects/pickup/sword3.ogg differ diff --git a/sound/effects/pickup/toolbelt.ogg b/sound/effects/pickup/toolbelt.ogg new file mode 100644 index 00000000000..58e5d25979a Binary files /dev/null and b/sound/effects/pickup/toolbelt.ogg differ diff --git a/sound/effects/pickup/toolbox.ogg b/sound/effects/pickup/toolbox.ogg new file mode 100644 index 00000000000..01a4ab4b3fa Binary files /dev/null and b/sound/effects/pickup/toolbox.ogg differ diff --git a/sound/effects/pickup/weldingtool.ogg b/sound/effects/pickup/weldingtool.ogg new file mode 100644 index 00000000000..da78b06b848 Binary files /dev/null and b/sound/effects/pickup/weldingtool.ogg differ diff --git a/sound/effects/pickup/wirecutter.ogg b/sound/effects/pickup/wirecutter.ogg new file mode 100644 index 00000000000..078faaf4324 Binary files /dev/null and b/sound/effects/pickup/wirecutter.ogg differ diff --git a/sound/effects/pickup/wooden.ogg b/sound/effects/pickup/wooden.ogg new file mode 100644 index 00000000000..1a778074e9c Binary files /dev/null and b/sound/effects/pickup/wooden.ogg differ diff --git a/sound/effects/pickup/woodweapon.ogg b/sound/effects/pickup/woodweapon.ogg new file mode 100644 index 00000000000..34e9c238eac Binary files /dev/null and b/sound/effects/pickup/woodweapon.ogg differ diff --git a/sound/effects/pickup/wrapper.ogg b/sound/effects/pickup/wrapper.ogg new file mode 100644 index 00000000000..9270ade8db1 Binary files /dev/null and b/sound/effects/pickup/wrapper.ogg differ diff --git a/sound/effects/pickup/wrench.ogg b/sound/effects/pickup/wrench.ogg new file mode 100644 index 00000000000..860e0d70879 Binary files /dev/null and b/sound/effects/pickup/wrench.ogg differ diff --git a/sound/machines/turrets/turret_deploy.ogg b/sound/machines/turrets/turret_deploy.ogg new file mode 100644 index 00000000000..0b2376901b6 Binary files /dev/null and b/sound/machines/turrets/turret_deploy.ogg differ diff --git a/sound/machines/turrets/turret_retract.ogg b/sound/machines/turrets/turret_retract.ogg new file mode 100644 index 00000000000..11d1eecad8c Binary files /dev/null and b/sound/machines/turrets/turret_retract.ogg differ diff --git a/sound/machines/turrets/turret_rotate.ogg b/sound/machines/turrets/turret_rotate.ogg new file mode 100644 index 00000000000..8699fa33168 Binary files /dev/null and b/sound/machines/turrets/turret_rotate.ogg differ diff --git a/sound/machines/vending/vending_cans.ogg b/sound/machines/vending/vending_cans.ogg new file mode 100644 index 00000000000..84b9d520b8e Binary files /dev/null and b/sound/machines/vending/vending_cans.ogg differ diff --git a/sound/machines/vending/vending_coffee.ogg b/sound/machines/vending/vending_coffee.ogg new file mode 100644 index 00000000000..31edabc50ab Binary files /dev/null and b/sound/machines/vending/vending_coffee.ogg differ diff --git a/sound/machines/vending/vending_drop.ogg b/sound/machines/vending/vending_drop.ogg new file mode 100644 index 00000000000..4e0ed7dd6d8 Binary files /dev/null and b/sound/machines/vending/vending_drop.ogg differ