From 6c3fbbfa769167e75e6bbaad949be01c065ee76e Mon Sep 17 00:00:00 2001 From: "Wowzewow (Wezzy)" <42310821+alsoandanswer@users.noreply.github.com> Date: Fri, 7 Feb 2020 21:33:30 +0800 Subject: [PATCH] Adds button and switch sounds when using machinery (#8195) --- code/game/machinery/Sleeper.dm | 3 ++ code/game/machinery/alarm.dm | 3 ++ code/game/machinery/autolathe.dm | 2 + code/game/machinery/computer/computer.dm | 3 +- code/game/machinery/cryo.dm | 2 + code/game/machinery/jukebox.dm | 1 + code/game/machinery/kitchen/microwave.dm | 3 ++ code/game/machinery/machinery.dm | 2 +- code/game/machinery/spaceheater.dm | 2 +- code/game/machinery/vending.dm | 8 ++-- code/game/machinery/washing_machine.dm | 3 ++ .../game/objects/items/devices/radio/radio.dm | 5 +++ code/game/sound.dm | 7 +++ code/modules/power/apc.dm | 1 + code/modules/power/smes.dm | 1 + code/modules/reagents/Chemistry-Machinery.dm | 2 + code/modules/reagents/dispenser/dispenser2.dm | 1 + html/changelogs/wezzy_button_noises.yml | 41 ++++++++++++++++++ sound/machines/button1.ogg | Bin 0 -> 5377 bytes sound/machines/button2.ogg | Bin 0 -> 5363 bytes sound/machines/button3.ogg | Bin 0 -> 5381 bytes sound/machines/button4.ogg | Bin 0 -> 5118 bytes sound/machines/buttonbeep.ogg | Bin 0 -> 13054 bytes 23 files changed, 83 insertions(+), 7 deletions(-) create mode 100644 html/changelogs/wezzy_button_noises.yml create mode 100644 sound/machines/button1.ogg create mode 100644 sound/machines/button2.ogg create mode 100644 sound/machines/button3.ogg create mode 100644 sound/machines/button4.ogg create mode 100644 sound/machines/buttonbeep.ogg diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 6fbdb235db9..73e6826bbf3 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -5,6 +5,9 @@ icon_state = "sleeper" density = 1 anchored = 1 + clicksound = 'sound/machines/buttonbeep.ogg' + clickvol = 30 + var/mob/living/carbon/human/occupant = null var/list/available_chemicals = list("norepinephrine" = "Norepinephrine", "stoxin" = "Soporific", "paracetamol" = "Paracetamol", "dylovene" = "Dylovene", "dexalin" = "Dexalin") var/obj/item/reagent_containers/glass/beaker = null diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 049cc939636..597f479b1f6 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -42,6 +42,9 @@ active_power_usage = 1500 //For heating/cooling rooms. 1000 joules equates to about 1 degree every 2 seconds for a single tile of air. power_channel = ENVIRON req_one_access = list(access_atmospherics, access_engine_equip) + clicksound = "button" + clickvol = 30 + var/alarm_id = null var/breach_detection = 1 // Whether to use automatic breach detection or not var/frequency = 1439 diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 4eec54a18c9..28d98b8bffe 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -7,6 +7,8 @@ use_power = 1 idle_power_usage = 10 active_power_usage = 2000 + clicksound = "keyboard" + clickvol = 30 var/list/machine_recipes var/list/stored_material = list(DEFAULT_WALL_MATERIAL = 0, "glass" = 0) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index 86627ea5be8..7ed745ccb11 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -7,6 +7,8 @@ use_power = 1 idle_power_usage = 300 active_power_usage = 300 + clicksound = "keyboard" + var/circuit = null //The path to the circuit board type. If circuit==null, the computer can't be disassembled. var/processing = 0 @@ -15,7 +17,6 @@ var/light_power_on = 1 var/overlay_layer var/is_holographic = TRUE - clicksound = "keyboard" /obj/machinery/computer/Initialize() . = ..() diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index d8741f1285f..187623c3b02 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -13,6 +13,8 @@ use_power = 1 idle_power_usage = 20 active_power_usage = 200 + clicksound = 'sound/machines/buttonbeep.ogg' + clickvol = 30 var/temperature_archived var/mob/living/carbon/occupant = null diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm index 99eee1afd1b..5fb23bcd0b1 100644 --- a/code/game/machinery/jukebox.dm +++ b/code/game/machinery/jukebox.dm @@ -19,6 +19,7 @@ datum/track/New(var/title_name, var/audio) use_power = 1 idle_power_usage = 10 active_power_usage = 100 + clicksound = 'sound/machines/buttonbeep.ogg' var/playing = 0 diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm index 7f86296f691..4d9953b6952 100644 --- a/code/game/machinery/kitchen/microwave.dm +++ b/code/game/machinery/kitchen/microwave.dm @@ -10,6 +10,9 @@ idle_power_usage = 5 active_power_usage = 2000 flags = OPENCONTAINER | NOREACT + clicksound = "button" + clickvol = "30" + var/operating = FALSE // Is it on? var/dirty = 0 // = {0..100} Does it need cleaning? var/broken = 0 // ={0,1,2} How broken is it??? diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index b1de271cc39..13950216b0a 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -231,7 +231,7 @@ Class Procs: /obj/machinery/CouldUseTopic(var/mob/user) ..() - if(istype (user, /mob/living/carbon)) + if(clicksound && iscarbon(user)) playsound(src, clicksound, clickvol) user.set_machine(src) diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 94bde9ad211..5a50f34479e 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -11,7 +11,7 @@ var/heating_power = 42000 emagged = FALSE has_special_power_checks = TRUE - + clicksound = "switch" /obj/machinery/space_heater/Initialize() . = ..() diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index d7ee51846ad..d5e7a78db48 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -37,6 +37,7 @@ layer = 2.9 anchored = 1 density = 1 + clicksound = "button" var/icon_vend //Icon_state when vending var/icon_deny //Icon_state when denying access @@ -123,7 +124,6 @@ src.build_inventory() power_change() - /** * Build src.produdct_records from the products lists * @@ -207,12 +207,10 @@ var/obj/item/spacecash/ewallet/C = W paid = pay_with_ewallet(C) handled = 1 - playsound(user.loc, 'sound/machines/id_swipe.ogg', 100, 1) else if (istype(W, /obj/item/spacecash)) var/obj/item/spacecash/C = W paid = pay_with_cash(C, user) handled = 1 - playsound(user.loc, 'sound/machines/id_swipe.ogg', 100, 1) if(paid) src.vend(currently_vending, usr) @@ -347,6 +345,7 @@ */ /obj/machinery/vending/proc/pay_with_ewallet(var/obj/item/spacecash/ewallet/wallet) visible_message("\The [usr] swipes \the [wallet] through \the [src].") + playsound(src.loc, 'sound/machines/id_swipe.ogg', 50, 1) if(currently_vending.price > wallet.worth) src.status_message = "Insufficient funds on chargecard." src.status_error = 1 @@ -367,6 +366,7 @@ visible_message("\The [usr] swipes \the [I] through \the [src].") else visible_message("\The [usr] swipes \the [ID_container] through \the [src].") + playsound(src.loc, 'sound/machines/id_swipe.ogg', 50, 1) var/datum/money_account/vendor_account = SSeconomy.get_department_account("Vendor") var/datum/money_account/customer_account = SSeconomy.get_account(I.associated_account_number) if (!customer_account) @@ -509,7 +509,7 @@ var/datum/money_account/vendor_account = SSeconomy.get_department_account("Vendor") if(stat & (BROKEN|NOPOWER)) return - if(usr.stat || usr.restrained()) + if(..()) return if(href_list["remove_coin"] && !istype(usr,/mob/living/silicon)) diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 793a7accbc7..9eef6c70ff3 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -4,6 +4,9 @@ icon_state = "wm_10" density = 1 anchored = 1.0 + clicksound = "button" + clickvol = 40 + var/state = 1 //1 = empty, open door //2 = empty, closed door diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 0ee25b2bac2..905eed3d12d 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -756,3 +756,8 @@ var/global/list/default_medbay_channels = list( /obj/item/device/radio/phone/medbay/Initialize() . = ..() internal_channels = default_medbay_channels.Copy() + +/obj/item/device/radio/CouldUseTopic(var/mob/user) + ..() + if(iscarbon(user)) + playsound(src, "button", 10) diff --git a/code/game/sound.dm b/code/game/sound.dm index 9da340a0955..22ecdbc8cf3 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -134,6 +134,12 @@ var/list/gravelfootsteps = list( 'sound/effects/footsteps/gravel3.wav', 'sound/effects/footsteps/gravel4.wav' ) +var/list/button_sound = list( + 'sound/machines/button1.ogg', + 'sound/machines/button2.ogg', + 'sound/machines/button3.ogg', + 'sound/machines/button4.ogg' +) var/list/computerbeeps = list( 'sound/machines/compbeep1.ogg', 'sound/machines/compbeep2.ogg', @@ -376,6 +382,7 @@ var/list/footstepfx = list("defaultstep","concretestep","grassstep","dirtstep"," if ("sandstep") soundin = pick(sandfootsteps) if ("gravelstep") soundin = pick(gravelfootsteps) if ("computerbeep") soundin = pick(computerbeeps) + if ("button") soundin = pick(button_sound) if ("switch") soundin = pick(switchsounds) if ("keyboard") soundin = pick(keyboardsounds) if ("pickaxe") soundin = pick(pickaxesounds) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 3791f76ec82..b76ed483fa5 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -78,6 +78,7 @@ use_power = 0 req_access = list(access_engine_equip) gfi_layer_rotation = GFI_ROTATION_DEFDIR + clicksound = "switch" var/area/area var/areastring = null var/obj/item/cell/cell diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 6d92afdeff8..9592067ba57 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -25,6 +25,7 @@ density = 1 anchored = 1 use_power = 0 + clicksound = "switch" var/capacity = 5e6 // maximum charge var/charge = 1e6 // actual charge diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 99de3a4e7d1..81740fc9ad4 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -14,6 +14,8 @@ use_power = 1 idle_power_usage = 20 layer = 2.9 + clicksound = "button" + var/beaker = null var/obj/item/storage/pill_bottle/loaded_pill_bottle = null var/mode = TRUE diff --git a/code/modules/reagents/dispenser/dispenser2.dm b/code/modules/reagents/dispenser/dispenser2.dm index 85a1230fcfe..5f8c1c08366 100644 --- a/code/modules/reagents/dispenser/dispenser2.dm +++ b/code/modules/reagents/dispenser/dispenser2.dm @@ -2,6 +2,7 @@ name = "chemical dispenser" icon = 'icons/obj/chemical.dmi' icon_state = "dispenser" + clicksound = "button" var/list/spawn_cartridges = null // Set to a list of types to spawn one of each on New() diff --git a/html/changelogs/wezzy_button_noises.yml b/html/changelogs/wezzy_button_noises.yml new file mode 100644 index 00000000000..dbd55da9cd5 --- /dev/null +++ b/html/changelogs/wezzy_button_noises.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Wowzewow (Wezzy) + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - soundadd: "Adds more clicking button sounds to machines. Try it out on your nearest vending machine! Discover ALL the noises!" diff --git a/sound/machines/button1.ogg b/sound/machines/button1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3499e2d1722e6692bd1e60cccc3e14d8d5c90869 GIT binary patch literal 5377 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 a_^^Cu-oEWh0L(IX$3&2iFDR6(fc_0;Zz&%D literal 0 HcmV?d00001 diff --git a/sound/machines/button3.ogg b/sound/machines/button3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a28da269ad6147eaf4b02bb7b1f738910d894cec GIT binary patch literal 5381 zcmahsc|6qX*I$x`QpS>|5yo^=*G&vDA~BYjq%vhM z$_R1GRwS~FNh>Kt)XlZrl-_5?z4!gSf4raH^Lf6{oadb9oaa2}Ip;ZNJVHZ>kRqnIYQrq9v&7E70d_@k4B1g+5kQ;g2NtH zcaobUhG1*1C_-Sp_F-%tm_cF35MEJ-s5FVSs~c!L?(vp@>>)^pp=RL3W2mweG#owE z$KZ}Vw2$hJ`xN8hX8Zgf>oPL5ii;eR{q@g0%^*P{hO-VQR9I{Wm=;Ud);BXj&lW(* zXn+e7;S?PI88GO>fa(C#WR00x%O$+GUV^hQXkP_@n?$gFa=e?LP=N-Ebu3*x6Qt3T za8`?vK0Ch6^sXvP%2NMa{5#V}g9+;$lk*d>mP;C}P=^z$t9$4;xMUkO0Sv5jVHdlkzjMjdA!q7}`*=#3(c>C%HxskFK#(V14il-ePRthsL9ilgHqV#M zJItO)PKU9QDkPye2$BNZSnMI%ICJ*)dXa>D`iuYQ{yD+wVs>Cdh5oRRQt4#VHR{sh zdjM+0DY8x5;{GvmoElF4s!S#N4R@@FET507Mr(3iYGX1B*!AcME~BS&oQvuK&{Zy3 zE+4F$;IX@hb1|nQ!&xeCt#SQ>%uZ+paPpbvc+RCu>eAj9KxzxuH3S31v zhDelnm}>t3=PHY)B~A4?1y9=n|t7oDg>8*hQMU4B(H z)pKT#jc#{~hn*iQZp-hIL$xXFF|2GO5b2gfzO-5NM1H~@Z$DaPEdht*aR{f)6^Hy$vv93Wyy%wS;- zlUx_;|16QR82bwJCFUXDoM7_*>8nQv5r+WIzIqU3hZ>_BJ*mS{_~)45LZJv1XR*Iw zYjj-ub)NJadCXaODBI#yFas8(zKs<84m#c{c)*fEw4#u_={`Ahe?Id?Zt#o6*f;;t zDeJ^XRDz(LncI+=+Q`f?>vSEg{ozLjkiE1hBH3^C)5okcb+DPbVVR*ZIVBhKKU^#{ zC=)M%6huozjeY$DyYvLRYY}<4n-O z5C9;yZk(LRy6{$%4kpUzalggt8T*uNfkAzuS09bPF93q%I&Y~w?t{B2=?VzOB%-l^ zfDsT$|E;+VShy(z!^(&P_CB1|V_cGfl`+m^>$mAl5**ecCwoleix!p83EYP&Xvd6> z94sqO6jxFZ9>f*u5vmOy)q|hX!StXFG}*J;;d+LKkWrPGF;NaEU!={Y#uK^!7_x zN=P1;3aDI85B5Dbs~@Wm{Nug^_#E{uf-sPR9yAgGf0AY4rlRYnjPX#R2$V5`Y>Our zmUu6cn~Iyji$qp+6J+bUnY+2Ekci3{(nb<7$BmR7+-pG}_9DGfC6Vfa{TG0rFyENF z4Xcs_LvEy6CYZj;roYPlR}@L;Me?^I3HX-yXbPSbOa_vV2MhTmpCP833PnhC8{SAF z<&cI2!K55!Ks1TsLlFu|J`1tKL$Q=0<{>qaWTAjbI?fCjqQA*yQhc|IwW5%KR+d0A z(25R3`TVUjX?UI~VA3hd7@B)_SSWeP&1WIeUzj#F6dS5e$*t*-S6aY)@-Puvkjs)E78;-DU^4DXH#E)2=(_e1LPJ#nd(wSGiebrQjEJ@1Y$E(}%c zO{GFXsZCt0ukO!g&Db;|GihQU_?NOw90#RUdB=3$l?nq^nI}V8IcEAEru2^J9 z4|WPsJm}yo5`{$qt&Rdwu2>XbjS-IIYv96wC>j>o0Yn+|U+#oeCVB z)5M!s=<=QiR@8#cH}Kkg38f;A@@kUM8hDr&+LCpw2Kwi;|suN>L}2%^nPJJhH>)g1?jv|7H}DR<+c z{fybB4tT-9lnuIUojUectIOJGno`)adAcQOgnI@qo5Eil^i*ckubY^9u z*J-ghW)lcj24Mou%JiG&CV1j#JPyY%wVIPjprKSjt{(vz`e4HKwzp7XQiT*mkbvaU zspP`Y{IVmD({*DC^~VvNyrGvF#K zt1^7te5|YtytJUK_*_sn)c`OxGwaKzyK0PH@WVH^PBnmvgHNCCiUf<6o2%i@{Ho;! z({CLS;N7)(AOV%!PZB7)vpXc$i=M(DpkfCiNP+MO!2I<|N|J^{kmNr7HDa}| zf;V5gqISrSS_y_!5k#v5DN~#`|KC9ZA}Gs4grBSq|>xC!~!i+mKXipHpqUTTxz<-Q8{20Bqz~@tIhh8$k z6n?7L0hUE5uN{Z8lM*rQT-|b#jTYGsm7`zJ%V7N>ML?3QJon7Jjw`V?t&gSvXatTTTgO9w%-YH zQh$G!B&$_y5#){vDsJ;*l!6<8;sLvs1SAcU4T0hwNVH5KCZ%BMRuJTn+^vw3lsNLa zNC}~RT{5msDsewla_g>3 zkU^ml325Xlq^+Ib`snGik;%_XkPJwSps7Mj5M;eKE;)JJ)Xc)ldZ*29dq?0Ct1T`r zP7K(CF)mL0cSI`7M2vz&e@8?MJsUS_|DvCk3@2v}412or5 z?>%bsn`7h3=30Ru%~zO{H~*vi+C=fnJ70e!Ou|S=UdyfaCOfBHl2DB8oTb4|tsuYK z%}0LKHkm`E|Jl#G_w{VwOQ}M;8H+b-QF`AlFZLsO^VD|%-OK|2fCbd|8SMG^+$Gna zcr({Asni*%{NyJck^3uK`qoJpZcTZyT=!$7@BG%SC(or^5O7Fl%9k2~vRl&*WbeK6 zaOQl|J=>438h`N^e}#0MBbSF(E(ioq=1(_t)s%-~;8qn?&tsHM{jdo+S72GHa|%&j ze)(6jAbn~o_kr%crWBv^f=}Kh{3~NTIpu zV$!vDZl4zxwvP`uCG0|LPR>PNQH{3m85kHKuGQ8q+_2kO_vK8(aTnhm&Dn#4=Z^JC z$SjO(gM5b`V_I5Fvpjd;P8tbMS{A448df`+OwQFD3YgyX9`!Wk^_;;+t};Vw@7b?f zH=iuo9;-V!F#Ncr;jaJSTnPF^``)7wCfjztkKe}gHPucgJ)#tr=uX0F>C zZ(<(W$eP?*cbkOqO1rz9d-Vvr3>SVMHW;d29$qkfI4SPg{`EN2dT6)v{P&iI+28A} z+8Z-}&meAY_PyP+ZPU*-8qjTDZ>6y`*C(gagD+J4seWKT;lV5BmcU=fqNiH&4yc-& zLk5XDr*?Dt{FXm|d1gOP{Lv{aJuz@lwd%8=?E9@A=9oY59IM z3obdPa>35~=`?nRsEoYuT6LtW>Ae=FQD#^7mc5w>$*w&249jO$7BYm(;rKjv(z-n8 zwUb*|jFs{cTD7g=Ul+I5j$Z4uz1^02Nh;1VSklSy^TNT+1p|vaILO~j@DXhueP_w; zn`+PhG*e=|lP{Mn@IjTlJu)tgIj?C*Ii1mB__^M|H)i*?EuEJe?6yyCNG-R}OvT?i ze(IZDq_g&-#^p}Cf;CX5%V3W6k?h#ca=D$wJ;Tpnyk}jbk;CD04e(6q#L&#deKQSf zpl0W$`HPDPV7dQjG)Azp($D8{9I-ANMdb4(1(w9!r zDFPR3yWBE7cw_$_#>4REc7yT(zIW2vhFUBkzc^{n%s-UI+;y|(YY%-d_nu!Idntcl ziyx1jI^qZ6*Z6YZX#CxrG&6B=wu!E|2c4W5ZY=~P{w$7W` zQIBTnr=N7}wHB=Xm!seIEBbzFcW^D=Ib2*CZ;el%#=CeBT?$KDzuatHY^|i;s+u-= z-&A~bE?u(TJh<9sf3mez%+bNh*(FTmqUDX#Wk%c8UZYi>Z#)y!KDOG|D$2f!*UEA^g^iu7a zL48AdDub$znY1kAnM{^h9jE?MPzMZ-}_uVrNp7AjC&e6Wqhp!|Ge>7=)_Lb zw~YaU`#8)#qu7Q9gG;+OTOzI<%R9T%1H?xA>mV1IBeEUZ#m`5H4{dsjKy`JdO28}% zA>mlV!osX@;^OGfGoL#9m9jqt3|J^15zZG5+SydUyX}0urRkUbSGIP(zvfT6^)S*% zIjS)C3{Czh>fOs-GhH)^bEXM|kwt3D?N4ycL>NJ5Tne+)DOdlz!N|w++X~L`yo0=1va5KeA2B{t!yP{2rcg=-fgb3ne-7v);x$sp|8m?Fpl^z^Ls==@&&< zZ|$&|N1J<49S29a40+oQwW6-)N{2>QPVNYa7+Xm{!Q9%=y5hgw{BhUqA<1R|mN|d0 zmLRyN?$_F&UQ*GEU2}yT72&=SQvFK(Bbhv>L<`}ctV$Htm9>tg&l^PD&#ydQ@%w;e z^Q-+ljoza|(@ll2>+{Y>X(rH${I!Eu?2ajR4-9;L;crf{k9PMz{n`i`NhukSyV5Z- J^5?y^{{zq2Kg<9C literal 0 HcmV?d00001 diff --git a/sound/machines/button4.ogg b/sound/machines/button4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9fceed1611fa0afe1a9a7e805b5e66c21bca3084 GIT binary patch literal 5118 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