From 0a3185d26c352395bc46704df2f367e1edc4cfeb Mon Sep 17 00:00:00 2001 From: grungussuss <96586172+grungussuss@users.noreply.github.com> Date: Tue, 1 Jul 2025 12:06:35 +0300 Subject: [PATCH] Cig pack sounds (#91860) --- code/__DEFINES/sound.dm | 5 +++ code/datums/storage/storage.dm | 9 ++++- .../storage/subtypes/others/fancy_storage.dm | 2 + code/game/atom/atom_storage.dm | 4 +- code/game/objects/items/storage/fancy.dm | 6 +++ code/game/sound_keys.dm | 36 ++++++++++++++++++ code/modules/detectivework/evidence.dm | 4 +- sound/items/cigs/attribution.txt | 5 +++ sound/items/cigs/cig_pack_drop1.ogg | Bin 0 -> 7087 bytes sound/items/cigs/cig_pack_drop2.ogg | Bin 0 -> 8851 bytes sound/items/cigs/cig_pack_insert1.ogg | Bin 0 -> 9801 bytes sound/items/cigs/cig_pack_insert2.ogg | Bin 0 -> 8883 bytes sound/items/cigs/cig_pack_insert3.ogg | Bin 0 -> 14418 bytes sound/items/cigs/cig_pack_insert4.ogg | Bin 0 -> 16918 bytes sound/items/cigs/cig_pack_pickup1.ogg | Bin 0 -> 9106 bytes sound/items/cigs/cig_pack_pickup2.ogg | Bin 0 -> 8520 bytes sound/items/cigs/cig_pack_pickup3.ogg | Bin 0 -> 12008 bytes sound/items/cigs/cig_pack_rustle1.ogg | Bin 0 -> 7472 bytes sound/items/cigs/cig_pack_rustle2.ogg | Bin 0 -> 8242 bytes sound/items/cigs/cig_pack_rustle3.ogg | Bin 0 -> 8727 bytes sound/items/cigs/cig_pack_rustle4.ogg | Bin 0 -> 7554 bytes sound/items/cigs/cig_pack_rustle5.ogg | Bin 0 -> 8789 bytes sound/items/cigs/cig_pack_rustle6.ogg | Bin 0 -> 10531 bytes sound/items/cigs/cig_pack_throw_drop1.ogg | Bin 0 -> 8629 bytes 24 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 sound/items/cigs/attribution.txt create mode 100644 sound/items/cigs/cig_pack_drop1.ogg create mode 100644 sound/items/cigs/cig_pack_drop2.ogg create mode 100644 sound/items/cigs/cig_pack_insert1.ogg create mode 100644 sound/items/cigs/cig_pack_insert2.ogg create mode 100644 sound/items/cigs/cig_pack_insert3.ogg create mode 100644 sound/items/cigs/cig_pack_insert4.ogg create mode 100644 sound/items/cigs/cig_pack_pickup1.ogg create mode 100644 sound/items/cigs/cig_pack_pickup2.ogg create mode 100644 sound/items/cigs/cig_pack_pickup3.ogg create mode 100644 sound/items/cigs/cig_pack_rustle1.ogg create mode 100644 sound/items/cigs/cig_pack_rustle2.ogg create mode 100644 sound/items/cigs/cig_pack_rustle3.ogg create mode 100644 sound/items/cigs/cig_pack_rustle4.ogg create mode 100644 sound/items/cigs/cig_pack_rustle5.ogg create mode 100644 sound/items/cigs/cig_pack_rustle6.ogg create mode 100644 sound/items/cigs/cig_pack_throw_drop1.ogg diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 47af06c9627..c45565fbf37 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -279,6 +279,11 @@ GLOBAL_LIST_EMPTY(sfx_datum_by_key) #define SFX_REGEN_MESH_END "regen_mesh_end" #define SFX_REGEN_MESH_PICKUP "regen_mesh_pickup" #define SFX_REGEN_MESH_DROP "regen_mesh_drop" +#define SFX_CIG_PACK_DROP "cig_pack_drop" +#define SFX_CIG_PACK_INSERT "cig_pack_insert" +#define SFX_CIG_PACK_PICKUP "cig_pack_pickup" +#define SFX_CIG_PACK_RUSTLE "cig_pack_rustle" +#define SFX_CIG_PACK_THROW_DROP "cig_pack_throw_drop" // Standard is 44.1khz #define MIN_EMOTE_PITCH 40000 diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm index 19603f8927e..bbd1c33181f 100644 --- a/code/datums/storage/storage.dm +++ b/code/datums/storage/storage.dm @@ -135,7 +135,10 @@ max_slots = src.max_slots, max_specific_storage = src.max_specific_storage, max_total_storage = src.max_total_storage, -) + rustle_sound = src.rustle_sound, + remove_rustle_sound = src.remove_rustle_sound, + ) + if(!istype(parent)) stack_trace("Storage datum ([type]) created without a [isnull(parent) ? "null parent" : "invalid parent ([parent.type])"]!") qdel(src) @@ -147,6 +150,8 @@ src.max_slots = max_slots src.max_specific_storage = max_specific_storage src.max_total_storage = max_total_storage + src.rustle_sound = rustle_sound + src.remove_rustle_sound = remove_rustle_sound /datum/storage/Destroy() @@ -827,7 +832,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) to_chat(user, span_notice("You dump the contents of [parent] into [dest_object].")) if(do_rustle) - playsound(parent, SFX_RUSTLE, 50, TRUE, -5) + playsound(parent, rustle_sound, 50, TRUE, -5) for(var/obj/item/to_dump in real_location) dest_object.atom_storage.attempt_insert(to_dump, user) diff --git a/code/datums/storage/subtypes/others/fancy_storage.dm b/code/datums/storage/subtypes/others/fancy_storage.dm index a4e82a33cc9..66fa64bbed6 100644 --- a/code/datums/storage/subtypes/others/fancy_storage.dm +++ b/code/datums/storage/subtypes/others/fancy_storage.dm @@ -39,6 +39,8 @@ /datum/storage/cigarette_box max_slots = 6 display_contents = FALSE + rustle_sound = SFX_CIG_PACK_INSERT + remove_rustle_sound = SFX_CIG_PACK_RUSTLE /datum/storage/cigarette_box/New(atom/parent, max_slots, max_specific_storage, max_total_storage) . = ..() diff --git a/code/game/atom/atom_storage.dm b/code/game/atom/atom_storage.dm index 24ab0887742..963a7836c46 100644 --- a/code/game/atom/atom_storage.dm +++ b/code/game/atom/atom_storage.dm @@ -10,13 +10,15 @@ list/canhold, list/canthold, storage_type = /datum/storage, + rustle_sound, + remove_rustle_sound ) RETURN_TYPE(/datum/storage) if(atom_storage) QDEL_NULL(atom_storage) - atom_storage = new storage_type(src, max_slots, max_specific_storage, max_total_storage) + atom_storage = new storage_type(src, max_slots, max_specific_storage, max_total_storage, rustle_sound, remove_rustle_sound) if(canhold || canthold) atom_storage.set_holdable(canhold, canthold) diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index a08d7d1825c..719688c5390 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -196,6 +196,10 @@ age_restricted = TRUE contents_tag = "cigarette" storage_type = /datum/storage/cigarette_box + drop_sound = SFX_CIG_PACK_DROP + pickup_sound = SFX_CIG_PACK_PICKUP + throw_drop_sound = SFX_CIG_PACK_THROW_DROP + sound_vary = TRUE ///for cigarette overlay var/candy = FALSE @@ -210,6 +214,8 @@ if(contents.len != 0 || !spawn_coupon) return ..() + playsound(src, storage_type.rustle_sound, 50, TRUE) + balloon_alert(user, "ooh, free coupon") var/obj/item/coupon/attached_coupon = new user.put_in_hands(attached_coupon) diff --git a/code/game/sound_keys.dm b/code/game/sound_keys.dm index 0f5e4365abb..5e0a563ab43 100644 --- a/code/game/sound_keys.dm +++ b/code/game/sound_keys.dm @@ -812,6 +812,42 @@ key = SFX_REGEN_MESH_DROP file_paths = list('sound/items/regenerative_mesh/regen_mesh_drop1.ogg') +/datum/sound_effect/cig_pack_drop + key = SFX_CIG_PACK_DROP + file_paths = list( + 'sound/items/cigs/cig_pack_drop1.ogg', + 'sound/items/cigs/cig_pack_drop2.ogg', + ) + +/datum/sound_effect/cig_pack_insert + key = SFX_CIG_PACK_INSERT + file_paths = list( + 'sound/items/cigs/cig_pack_insert1.ogg', + 'sound/items/cigs/cig_pack_insert2.ogg', + 'sound/items/cigs/cig_pack_insert3.ogg', + 'sound/items/cigs/cig_pack_insert4.ogg', + ) + +/datum/sound_effect/cig_pack_pickup + key = SFX_CIG_PACK_PICKUP + file_paths = list( + 'sound/items/cigs/cig_pack_pickup1.ogg', + 'sound/items/cigs/cig_pack_pickup2.ogg', + 'sound/items/cigs/cig_pack_pickup3.ogg', + ) + +/datum/sound_effect/cig_pack_rustle + key = SFX_CIG_PACK_RUSTLE + file_paths = list( + 'sound/items/handling/regenerative_mesh/regen_mesh_pickup1.ogg', + 'sound/items/handling/regenerative_mesh/regen_mesh_pickup2.ogg', + 'sound/items/handling/regenerative_mesh/regen_mesh_pickup3.ogg', + ) + +/datum/sound_effect/cig_pack_throw_drop + key = SFX_CIG_PACK_THROW_DROP + file_paths = list('sound/items/cigs/cig_pack_throw_drop1.ogg') + /* assoc lists go next */ diff --git a/code/modules/detectivework/evidence.dm b/code/modules/detectivework/evidence.dm index 8c4427d3961..f4e41d09cd6 100644 --- a/code/modules/detectivework/evidence.dm +++ b/code/modules/detectivework/evidence.dm @@ -17,13 +17,13 @@ create_storage( max_slots = 1, max_specific_storage = WEIGHT_CLASS_NORMAL, + rustle_sound = 'sound/items/evidence_bag/evidence_bag_zip.ogg', + remove_rustle_sound = 'sound/items/evidence_bag/evidence_bag_unzip.ogg', ) atom_storage.allow_quick_gather = TRUE atom_storage.collection_mode = COLLECT_ONE RegisterSignal(atom_storage, COMSIG_STORAGE_STORED_ITEM, PROC_REF(on_insert)) RegisterSignal(atom_storage, COMSIG_STORAGE_REMOVED_ITEM, PROC_REF(on_remove)) - atom_storage.rustle_sound = 'sound/items/evidence_bag/evidence_bag_zip.ogg' - atom_storage.remove_rustle_sound = 'sound/items/evidence_bag/evidence_bag_unzip.ogg' /obj/item/evidencebag/update_desc(updates) . = ..() diff --git a/sound/items/cigs/attribution.txt b/sound/items/cigs/attribution.txt new file mode 100644 index 00000000000..09a65fd3dc0 --- /dev/null +++ b/sound/items/cigs/attribution.txt @@ -0,0 +1,5 @@ +cig_pack_drop[1,2].ogg - grungussusss, license: CC-BY-SA +cig_pack_insert[1,...,4].ogg - grungussusss, license: CC-BY-SA +cig_pack_pickup[1,2,3].ogg - grungussusss, license: CC-BY-SA +cig_pack_rustle[1,...,6].ogg - grungussusss, license: CC-BY-SA +cig_pack_throw_drop.ogg - grungussusss, license: CC-BY-SA diff --git a/sound/items/cigs/cig_pack_drop1.ogg b/sound/items/cigs/cig_pack_drop1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c998b7db0725f21aab110c84786ba0223ca9df18 GIT binary patch literal 7087 zcmai23p|ut*MHn{O_S@WsWXZgnKF#aDCLqcZW)G*B+OvOeOyXK3WX#wZi9~7h{*^c zL@K#obM2z2+^J3yr+QC)d&W8EJ>UENe($$`d-iWXd+oK>UTgi=e%3R#-rn{QKlEoS z)!3NO2|I`QcJhS>(mkjl+$Fvv<$rED&BvS6^VxDa|887PE=Be@`|#GE2Y&vq)+MkZ z2@5tHrv~}#v!#0@{iq&}Jo!iqq^5?ZhK8;N7O6_0ki$Hw0p3W{fN&~3Fu
~?m(P9lw_Kh1&YNeP>sl9m~&@s8VOm9gf_Tm5~lsH0f{BcLXaR7tty&aG;2ZY$9cn5
zlIi(4s*T<)q;R6$6i)Q*zygqdg$MBLXvxW3c@
zguH5wc%*0Ny6AxK%l6>!`tR1litb2=c3cP8;NxOLy4$coaW8+g9v`$xaZbh_rq+fG
zg%K8!#SWNFiXk@mHU#4so~FncQENv!BwKXmrb*#_P>dmhZ~^NW-nW1;M)0jF8S!|J
zESAGl(TpJyt*m{7l(f|ora4zk?za$S)o=+w)LeeCq%odVEMtjBJN5z~7Y!MimlaFd
zTa?uTQLJJ)OFX7d#w7qVh5#JJQZ5##b{TtrbUSl*I}(WM;wtCqn8{)QQQ0x6cswUP
zmC&1;#uXKljJH75rQ)r?sqpx!I0DHJGnPy6(*~ykqEhjG=ysBeRc#oIB+fe(r`FMz
z#%Tx2m0560d{wQSZvbX?8=lJHDlco3b4dou?R~XN#%NrEi@(7bGX&2W8zEc+1W*6w
zQRcaie_8H9L${B4aJb6Vs?t+|^4S-pBphSN1Bgl`BmoW=zlM?w8XzzUS8Hcqg!pN%
zjgZQ@IxN8(BIJ6*7e{dGL<>NM(V~=m?iIpKTcdbFzXcUW@5QN!8u#K<%IH?cC={{R
zNJP1|ABRG t(m#kLeIHB)6qer(!e*7BiJ98{}<(}|&tm*zQXIn2$9^}QW
zc(%~*H$_{qeh(duj*&4j+m
+WQb*|!_l^bdXxM0gv{DOj|8Mo_#LZZb~LSgx*R(St2
zP!Qs6x0}FI83D^Vd61A(SH%!))4NYM
46vXt
z@=0hBRL6j*B4I=@0(8U4Sj2;WkFhAOoyen*Q@w^f++K@qjW1$?y8}YIviF6{-58ZJFr16dSX>G}b9Qs!x8sce`*(duDjza1eVtn}sFJ>NCVg}0
zSg^qH%I$?|+M%cmUie7CHIFp*cQZoOpSr|Ec3zl2Wyv+LT4lZ*@nsqJ^SaF??b*CY
zuDs13q$=4{oT$qzMv
nv~Z^KG1f9&>-*cu)wlQyT8;r*Z>L^<5ET^-hUf1#
zWSl5{*f`J4lgx~-Q}R~3`g!#y?0!|(>>W4ojkz?q()9C|ynn;=+SZqn-rgrX?eP`e
zR9xwpSUE+-UfJ}_FOf!ne5>o#5D=sA-MJb*`)Sw2QciY&w|MvRDKnkAA{i?}TtZn{
hS^EI*8=LsuW5vbpCc9WqPsWEy1gg0+e=5*G{{vKuX0QMN
literal 0
HcmV?d00001
diff --git a/sound/items/cigs/cig_pack_insert3.ogg b/sound/items/cigs/cig_pack_insert3.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..5d4d6fd297054b61011b18613233c54b47727209
GIT binary patch
literal 14418
zcmaia1yohf_wS)Yx=}z
xz_^=8^c}btsK6P8MEdfO0TOk4
zj)4q@0a}pN@SX5KGIr9FK~}GW5@E2)lti_$tfV_uL9sA-NK+zA5nL4vRvV(GXUDye
zrDn$ut_oz82(#lD(9>6JbSKce_h(g=jamrX$^lR~QxSy%thSL1;lRCn9|o_y6JFX+
zrXLFmS4Z#{FWBA@^zB6#GF)Mm3v+5QAi>
Jk6AnK*@91;@E@WNS2g~Nl(H*$sPEwYR4M-J@gZKarzN*d92`K
zJ#ZdftrcO5dm}p=?z6xq)F^
o3Y|})2g*mP4h&toRsMvE|9hpncuNnj{m=`7e9CNaFiq(weOUaCEFcmz`9;+FP
zt~NHCzOIJ%xo_|5lO%JdIJ%b|4Zff6{2jOqp(Vgdd#Z)&+JW3!NMJ)|+%k%>tE2SL
zziOF)5oYy{;WOU3``Y1QcBNaFiC*y*eY2!nL;F5#qc8qJh;}f%KMONU5U@C4!K-kH
zp=HXp!{9<^#httLRB#t&ORQhB;DNBz#vD%eLHY`gHm+4rEY4YwGtexa7^CLS)*2f_
zUJ@Si4z$NsEu7E@E>I{(tcbkYay;Zm@;OIk4yFx3viCDZY9CnL33k`*BmSjqOk;hH
z_p6q7pWDgP5fkt^a3kErQoIu7kEitcWVG5mla}CoGed2ND8bu{VeZhf^J{rRardFRdlD~E@3q5ze-Y&Y->apwZ{#(nkC>s@BSV9
z;=sP%u?N96U2u7rgtOw!Xx62;BTjWq6H>w6`|L*esQ;W^41ct
zq`7Yh{g}0bV;DU#k~fEas%PHLQYNy=2U{Ll0R4PB;TbJX2<}c7kz{c%jgSHdc8kq%
z