From 55961e9ba1fe67292a41fdcca0056b43bf960a93 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Tue, 4 Apr 2017 20:49:46 +0200 Subject: [PATCH 1/1] replaced hardcoded sounds with newly added element action sounds (MM engine) --- sounds/snd_classic/bong.wav | Bin 0 -> 3518 bytes sounds/snd_classic/holz.wav | Bin 0 -> 1306 bytes sounds/snd_classic/hui.wav | Bin 0 -> 2770 bytes sounds/snd_classic/kabumm.wav | Bin 0 -> 5380 bytes sounds/snd_classic/kink.wav | Bin 0 -> 2152 bytes sounds/snd_classic/kling.wav | Bin 0 -> 4252 bytes sounds/snd_classic/laser.wav | Bin 0 -> 3734 bytes sounds/snd_classic/quiek.wav | Bin 0 -> 3778 bytes sounds/snd_classic/slurp.wav | Bin 0 -> 15782 bytes sounds/snd_classic/warnton.wav | Bin 0 -> 2458 bytes sounds/snd_classic/whoosh.wav | Bin 0 -> 7068 bytes src/conf_snd.c | 47 ++++++++++++++++++++++- src/game_mm/export.h | 1 + src/game_mm/mm_game.c | 68 ++++++++++++++++----------------- src/game_mm/mm_main.h | 55 ++++++++++++++++++++++++++ src/tools.c | 3 ++ 16 files changed, 138 insertions(+), 36 deletions(-) create mode 100644 sounds/snd_classic/bong.wav create mode 100644 sounds/snd_classic/holz.wav create mode 100644 sounds/snd_classic/hui.wav create mode 100644 sounds/snd_classic/kabumm.wav create mode 100644 sounds/snd_classic/kink.wav create mode 100644 sounds/snd_classic/kling.wav create mode 100644 sounds/snd_classic/laser.wav create mode 100644 sounds/snd_classic/quiek.wav create mode 100644 sounds/snd_classic/slurp.wav create mode 100644 sounds/snd_classic/warnton.wav create mode 100644 sounds/snd_classic/whoosh.wav diff --git a/sounds/snd_classic/bong.wav b/sounds/snd_classic/bong.wav new file mode 100644 index 0000000000000000000000000000000000000000..9808fc1ae0e6231a7c526616bdc703e09819983a GIT binary patch literal 3518 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 N&>7021yQFx=|4h1=?VY< literal 0 HcmV?d00001 diff --git a/sounds/snd_classic/holz.wav b/sounds/snd_classic/holz.wav new file mode 100644 index 0000000000000000000000000000000000000000..e382b2f39b12261f04abce52aafca34e5c0f0ad3 GIT binary patch literal 1306 zcmWIYbaNA8Wnc(*40BD(Em06)U|?VbLZvVUFlJ=nU`R#8U#>zdm;Iy+dKTiV#U2Zn_PhlGZvR`t(bzHY_h6+2E`d-(R=xdZ$5 z?mv8D$Gp~p7@xqfh|pkX9T72U75}RCbT?ZE=h*6Lv*#~ey=m+A9S6@`yZiLn-7AMy zPAHG_2#ic`oV|9(;o~Px?AyG4*O6WGTT)$B6=fwv1O&xpHO!o2%X=nF?aB-CaB~jJ ztg3HqZLDdXv|z`@=O2Fj`tt7Kh5hU1_SEJl$3^(s=_`qH^9f3*nL2od#HJP0bhM;6 zTRVCr)J&VbaM>D|-A|s~zPNu`Z)uEMKy+sFob|hppFDYT@20ie4{V>)nCz;iC@TrJ zThqclzM^-+r1qRZ4>#BF?COTLHlW>87Vp0D`qR%}U*12wuy5_0?wZ`Bm~bCE1EAgf zBGMYBE+Hw!O})83mJV)_B@<==J-uP;wjKLUUcUY4#l0)X)=sTS_V$fPs+qca`(dEP z2ez)-vTy&AjvQZoB{?ZkK><-|RTJlk!mj>F{Uwn=i-S@t>RZ~IY8(6KZa(wu!}mYm zK0Lc}c;kZphC-mH1Ds6MBzgFR#8nLKydzQy>l#MEXb2325Mc1}3=Z)EmR+8HZvLLZ zZXtF+wp(USszP#6YGO%hib7JQf_r{WN_b*fs-6OzsgRssP+63jo>8Kp;jF3PoKcin Mtl(Ufn3>K1045D-aR2}S literal 0 HcmV?d00001 diff --git a/sounds/snd_classic/hui.wav b/sounds/snd_classic/hui.wav new file mode 100644 index 0000000000000000000000000000000000000000..d575ec49a1574b2d34400536820955c42850dd84 GIT binary patch literal 2770 zcmX|DS#Kj*70$dNp7;q7Pw>JYKte)2^r#VH#B^(h={<40B`(`#SCw7+zOQyw*^ZYi z&f1-%5n>pG23~j?@vHc5^$aJ9Wx48}d+zy`bH8}<`0;;#y0i1uZ@>IqgJO1nwzISI z3I2Zm3RSbs=%Z+$Jlw?&ikklpl z;v~x^NRk(2Sr$l%e3MB=^7*c9>Z&Xv4a<@&G~KU)9t>G-%!{&WSdJIQ*(5J#i{s^T zwLUpLL!53_$FpLR#^J{tipY=HAz9z+b*XNzj|>cIK?dD)ydX-DqL_V*`2sPYmH8A^ zguY{HvM^?cbeB46x0g4?L=H2`IhYuef?(g2;-dvt< z7J1?siogwfomPGS&C3_hpFe-`^7Wfq^Qg}XsvV@oVtsabdw2f zPqiDhy*IC3V$EKy+Kv-d%Zn%F@%n6gb#wdv-RG)BWmy6@ohCo4( zC{dMX8!Fn!F+&oB2xGzoMKkOl+h5M+WYubUTuzdY3q%31^}E;rpbd~;)d6@ArPFeL zyjpM8>-BPhKF5J;s^W<0_oz+>;Pfkkh^py^*|eB1mTSDbLVJ?XwKOnl#4?0VG*BD~ zvS#~nN;rfli+qwsflKNI^F|;rh%+QuYnB_t8Ma;!qOC!(JR^nb5=ZcDHd}|CF3s?Y zlkz7^=DV`sIsPuirL0Ltb;DDRSK0J>0)XnspgF z>X<%i9PA&|8=#6vUYM`X&bQ~Mn`Jo(ZFM|A8I5|qO%2A16;4p;`4&td=ZQU28G{K# zBs4P;LD1^N^Em{8bKtOw2owi&AFTr(rk6}e-^!|M4xuc=5O@U%;&j6Vx+=-jgg_+m zTqRsdAwc?3N~E5qao~Ma*$A{CnhJhc1}qZvP8vZ5?N$fJF}xT(1F=q4^NFvE9NnXU z_mJaNbbUHotPqQG8oP$bk}B!J2*d{<01Xc&p(QaDTR8zg$J27LTrRO7@hz1H(l8iC zG~9R!J18nSsnVE*7E}WTCus"Gu4Drt|$JTVdEhbQ6*`Xj^Nh-(^^H^JQqM~Gfn zh9!rE=NIiAWmsQHFi;Qq`s~j=~=WG=hPm6n}!_EK&z0_o)ue ziDm#7f&&(@2dXi|o!oq<(32kCl*xLqv@Ge{7 z1{|*#Zc=VGn`J1{)FCw(DNZswIhiG{3e9uyW;ccZJ4z*d-^YNo(K}#os{l-MLUJs) zgd_-p?4%fBfj$N{RuHEEJ@a(f4EP#GWD2N?B#N-@I8A+1l|{wCJjK*?eKJu!4Wi@p z7*jCRu{}J=@UwEcNsZB<%jhY*DfK`Wgy~{hC63JVyqUpV5{>S1ia*=VV^d`4Av2cI zC4g>mZHl)hCs%V%VkufM{iK*L=aD{m`}v!pGrPXcW%{Vj1#sNlpy393RFeMa=q)cQ zZdSyO(Ef9cv5z0V-6qPgMQh2V$OB!HB+c^3l|h4!F~=RtG)>F(aRab)-GOQ307VrA zw2BCa3}Q>y4BRBpGEpQlKxnd5i3M+jFV)%|R?IxQ@grn*WBhly0!m7T5E zDY(;SbP94h=pfTKDTuzh);FfB(mVufP1FuFN)9w^!$Lm#aVfbYEZJ|NGme(yPB{^aU$k zTs#0Bp>r@$gKS>Fv}9ZsMp`hx`rGx)6{t2n22np=s^FeX@33B@M!G-6@L$a`t>0)J z(lXrO^y>Zlvsr8k!%m~oJRC|ks=2ybg;M9`^8+jiX4|`mzdYPtl-A(YXTSbaQ%bk* z?(VNPh1S8Pq$7Cw$?aeN`Q0}kt~aI2cUrYN#p=oW?z`{*^RI8-off{#^$w3Ha&J*g z%Q6k!@W}kag@9a?D)0<#=MPVwKKniHoKODv`12=EA3ysIzCUhv>btc;eUGUh?C$fs rpY=KiU+r=AU+wu#;r=LhX(i`o6fqhIbmY7N@M-A9AHc5~-{Z$^6% literal 0 HcmV?d00001 diff --git a/sounds/snd_classic/kabumm.wav b/sounds/snd_classic/kabumm.wav new file mode 100644 index 0000000000000000000000000000000000000000..733e660d8e90199956a380916410836065209bdc GIT binary patch literal 5380 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 literal 0 HcmV?d00001 diff --git a/sounds/snd_classic/kink.wav b/sounds/snd_classic/kink.wav new file mode 100644 index 0000000000000000000000000000000000000000..4698de4198e81e4a62b88d466d0c02cbc026d810 GIT binary patch literal 2152 zcmX|@%WoUk6~>uWv+TYbp=f~=NE4s|iUa}d#E#_3QEXYZrPy*LQWW2B&U^0M$IP7< zhr{7hvR;%Zzhql>Tsy6!)OBjRje|Bo(IDuit902-|AroB(MyoLT+GEe-}%1Z<=pht zRQ%OgY~lU+$#hAa_;D;2dj(!Uosa$SekJy5Y&9V!{_~?)%n7-!VB5ARrGyZS4NMtq z$KNJ1RN@3osO1N z>pOTU9X=dn-$-5JoF%$qJ7%hl+a)r`5d zrCloYpY&Ev>JN|5@%fE^jXwTa;n825$+_UgUgdOc^Ol>+S=$jRYF^XQG-7iL3a6IK ziAvniMk;k2suS+nj4~4z#Rjt-s%g}*Fig}lkxoo%Xa->xw+JHKXR1Jh02Kvi-Ki$= z#tvO6g!j6obK?4l#Z&xRTUu7ySM6%e?E0vtjYTtbIIKx(W$S8BU9R^YHWIV!;eF-3 z#QygiXI~Sae@%XUuJ_&c(mUlF_pSM45LRcdX=sQr)1u=*HE_LZ_FCGi(z)ejm+iaz(&^mR%g&_}+JpPr zWW4)qkU1ys4Dly9J`9wS?l-xC41)(DsS4gsRG(LO9=Vqnf~U8NZ)IzgCt zmrFZ;8!VqS?(Cxrh2VNn&!JYxMBQ{9Zo-hACf91T)irC9ztvJ!QE%HWRor1DEeU>~ z*J~{DaUIzW4u0V#*2g4(s958c$4sD>4PBeuraIz*izV!}m;gsMP)T(nORAH=Gpec; zm?~hvG9gdIf>?;E-F2k2(F1AIjeBdQN%7j}?DR*?zaEy}Ozl2xT%5&+JK{{KbE{Fx z7~K$;W#-xtQPJ=Rb}h}ehQ?yH{kWH!)b1Uz-z*INu^)dufBQ>s_M-i0qk5*=-*<9( zwjQFQV)+(A#Izvd2=Ne1gWwRcOgn9y7riaFo;5l>vm)7jSF0i0r5a)mLmFn_>G4p< zEPw?^m=sU}W21J!k<5T8g5vZ&Ij033TB)(NrS;i{^cp?9%$**Dk(U`|L}0;(YLYGk;nf9`NNf-)qTf*#!`52AIjGlH{xbHRawN zFLlK}ye3WOw_kP^PqCxVjLCTCkG&jlahI)>-C;v2=zhRtjk!>zfk18xNyH1ND4LP4 z7xZ8NljUm>$|`=}kp@q2Hjv$ZUZ&#t}i9E-pEWQ+&4Xqog*t6o7KsD&(N*lUxRl53HIgX>xBJyudHc}1^hxs%qsp=J@Nt;< zgx}uMKCXq^ZnZ?BfYgu^*!YJ?0nZ^|4xrubxJY2Fh*TtZy`dIK2U-Ue93ATPsH#!h zgl8bRV|>6>2mN9M41^M>?GRPxp{*2*)*368y-`oOBDHs&VxDhz^%c>F!zwuRiJ(!i zg`q1DNLnu#QCmxvf`c$OtL)v@XD+p#ZzkR<9XxT*&AX3x>L1kx*X(qLZA2)qx}l}W zI*`CLWQjFlKC-vTOG#sGpez=ehe77NzJCKRta^7lLR{;uvwYPWcxqX5JR&Ow#1BK= zj57q6woetXq@$G;-eO`62cBM(c;pxw^T5;)Vg|GuU*<61*v$0#3#Z|q!1S4^v(x9N zE*yjXRIZqsNY+ycF||6eqD`Et6jv7#a_WtV|8FOfm8w?HWwPSLYbSp(aWY%a2@@yl IiCiZ3Kbb5OA^-pY literal 0 HcmV?d00001 diff --git a/sounds/snd_classic/kling.wav b/sounds/snd_classic/kling.wav new file mode 100644 index 0000000000000000000000000000000000000000..9aea20cda51ce16e707dc2e284f47e3f6c2e013f GIT binary patch literal 4252 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 literal 0 HcmV?d00001 diff --git a/sounds/snd_classic/laser.wav b/sounds/snd_classic/laser.wav new file mode 100644 index 0000000000000000000000000000000000000000..c117e7f4bcae92c43b86d2fed79c988d2131f2d9 GIT binary patch literal 3734 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 UB=%@7Z2$lO literal 0 HcmV?d00001 diff --git a/sounds/snd_classic/quiek.wav b/sounds/snd_classic/quiek.wav new file mode 100644 index 0000000000000000000000000000000000000000..9f549da41d3afe870201cbdf362d511708ab5eb6 GIT binary patch literal 3778 zcmX|ES#uj_cGbM)DV3j~%2V=^JS8uwnyInJa^!eqSqn)CBE&B;JDH(R)Oe`_nv$1@|}C*>Xj=` z|MJqM#a}Oc5>6tQ|LW4EOTU1hzh1a>@%xKQe{m_ehOGSt&WLCqnkX21p6-ks8nWG4b7BtVcbhRq+42czK(Xc(&tSXAa;RPJtx}I%1 zep6!#nM6TqZS@Aj?M@{bil#8p=}vZS3Kwmu7|IZ0t=*|x^{pKf-Av_4v1VJQRkQS} zfTaq&<#)CmrBXFSERjfMd9Q6%tjSjcawVKXMYq!*c|u93c?wlRvZQQVhG~1A>&iqr zlS5^{4`|56|0(9rfEjSfapGz25FljY!9Ws5O}$ z>`0sIDO@l-Lu6SNaEbl%*|x`Q1~a5Je!62bne|{%1_v@vmok_$n{Btm>_$A#ch8=k z9jmLq*(keS9Rgrbq=d_pZ=SWV^kx`0`+H|otB_76sd*JuIXs`(tPBo!IvN@b$Fur_ zr)S5l+-EnVtl~5*nME@Q!FA4Fb;~O>3N4v1_A}suY0DsMf4I@VbB?-uZ_|ok}LKQK}Bk-;AY9a4CpewVEkX`REEd`oohJ znYb573*9Gwdfq02zx^z(Hk-|wL>H1NO0T!JG#exJ?(WG{&xAMD5YcsN8jqnUs*g@~8cHb?Eeg$tFLoU!8Cc5;n&VpvlUXf| zfB1UO&fWNAF{T{;^uxE0`D_2Mi0aKzOC|Hs7~_p*XU**AfjHB9`Sx_IroP-j1l{*d z8IJ|<)}v>ykHo-@g*)Z_5AWX{;U9mrl;*r)%a+MZ4(I%X7uyOFy&vb>vzOnE*v<9j zSh?Bhw5$qINEM|Ao}?)|Nd_E?EC-vX~sqG{Bu~^9`=1M8OxTO<9D+f8oIGe zG#Gg%w@TU*QK6dxBrAT@5`|qF4*qi?pAk5~l1tTXOrS0v* zmlJ+ha|p*V1Oc+qTNtjoV*Z|N7r=di3f?i%9L@{ST)N zV)<9M3r>4`pks;9O3^zxJ)bF|dy$-R@ZrU*i7ws<6KZ?fG1$!NYKm+;`_Fx1VewA1 zx_9>YX`9#xNApsv?U{TjokeK(!GoU1rB82LD~qzP%;|Bu1;mb0jxfo9rVf@%PaS}@$0wW9bzAS zw3LzuCzG~X+E|ZeYmYu0`D|)=0};EYZ})0g&%VE}xGkv%>hB^ERElw~&^*4}W*);fdv?bj58C>wG32jv2?V&SrM{ zx3^c4?z8u=9@T>Xcy$dk$FrdiEQA?<`r>)B6b#%*Sr5-%JThZ}Kp>+G2E$f4x)DuP zr{6v5D~apZ){y4w|9RcPSFe1!it7F2ZMTAK05{vmzZ;apt9QfF zUbMj1`denX5L>0%hlhtfdU^3qfbKtg{&HUq-dS4A8{_d#i;G6HxIKNkTj$e(wH)6) ze|OyGqt|c8Xm|Q}pcKMOaqH~tWM7HgyuFlbzj^=RT_=70`WG9Oo&9|nNo(<Uo96vws$ar9h>_0kxIufJz7Z!^C?D6ZvT0VT|R-#hx?RKPG zI+0@St?fyZPi#hF!q)zD;+JFLU$*S_CAi^v5fqrB>Xz#}W>ugmR#2=u7}h~`l}aea zROTAYaO(9s__|O9qEYvK_zQ0M(p)9*@Y-)TT|+M87>a>g2Vyg-aL1RBd=8M>9T>7O z!f7;z6med68=aRPlR=oO+ua!td#+4l`Fx4swR+w6OogXVB%98cNTuEz?~U8G zOc#pnUbkI0r7{5#lYG^%Y*SMN8V(?ZA|u;=cdPB&sz74} zU`?nRCdfq*a#BP}6bFno+il;`D->2L;EW*aR?RlR09q)P2u?AbMyu2D=emz12%4)X zx?vcqSf+3kBj}3mG`6~JP>!;|(iF*7s$jq};Q)9jp(L-?{7$j8V@+?K-BwdCAfEXJN6cU9)&MH;YG!0d*lt~ON z5@oR9HQKEPkN^Nk8j`A8Hn1cM41tv}f)do4>-!#537`U#Y(>!wQ>y|Z6zYJS)9N)_ zP4FRd6oz4BSyDAaRpuB73?~Q%Y&t%q&H@t@MKPQRl{eS;6#)b%il8L)i(PNQ)d1vi zWq5cvqJipHL=coHis5BRpX2aBM^z;O%*<>4&#?#$c*V$zdaO5_P(nH^3pB$De-0Lq zlo^V^F_6r%2`8Xr6`m$ZpyOvRiY#(8juudyhQ9L}bsNIvSO!{1kgA$t09@!ZXak&p zG+(rZV`>r)f|V0QMf;gm4*U>6J8)!yBCXdnz*^?!(Lm<4`Qjt6Bvu0T&dIR0w0sXb z4sW% z)O_4POrBTMWs$!)1HLp3L_NR(9@u%D5Cf>ynxO$*@PHj4@4^)f#fyiVyN5n9FDMmY z1Dxjoj>u3B5CZIguol8o5n(fg7xQ!jhjU0(SrR|Ldh^z2uw!1mcIAt!H?Q3KC49aT zO@uCQVQEbydFgV}F9sFKtmYX<8UaP&jB}ScVGAgKW(s=b02A=TV&JNfhUKrYK6J z2FjwONU>x~j@ksM|54Xk`|SJfBcBxkX^-IhrhCuXXAf(yy$^lz__1RPA09b!=C`Lm z&Mm1t`nN}p9Qhgk{oUy!`tN5){^m$_MrFp|3>wY9CSU8AF;qqDQKtE>ARqwDa%GZ-Bmn8W02ZH=vix3Q((^;Qo@l0X;@ z`@*MAuYmO5#@0%e$3MkxNI!#X#U#--vHh^!1M=bCpgw8{8tmb~E1w9ufnKh2m;h8f zH6JG8ixxClTsZsWcWG^DJ5o1pjBO}3C2pfA!JHDO*GD8-is5{}T1C&sFR`^_qMDqN z0B^axIgwNlmUC5@Hi8Ciy4dFN*1k&-IZ`4-p|GYSQyXsA{%{Xg>PtKNlVc$5NdDfB z33{m+EoE!D`Xf6@M6Jpw@r5yoPmZ^krWX@&@Fos@Fm)UfGid22UL+J|pitaBByy7n zh0|=2@=S%&R7|(7D6E0`lEMyX_a>3nmz;Ky-0_S5=7QogeOukO58saA|I8Y;3@2Y-(x- z%n;fUR9)t$wu-3~8j~vp=}mO`#=zj<;Ly;}a2O*RH#qPPUk(ip4$y5V(cxf$f>N-6 ztGi+jiSJ)X7no8ZWXt2KPqvV&$sb7bDqTh4X8Ln;q~5MO?FKi^yIy@NyfWGmJpEA7 z&@i+Cos8bZ7#$sjc7}&cHPj0Y52p%t0qi$7HPJAQjg4j(m<4L-!E~4mJ2ia0kfjgwPTQKciK^cd3(C!um|QDP_37GSfXzOJ^Wy1J&WK7c3gcZecdkY;Ko&*sQiO|>h1fy#r#Nt4IZx4mW zy)?OO&KyMj7|z=63>Xy22<7oH11PDQ@xe{=VQAd(B+_hupHL*|MQW+4tgNc8sjaK0 zasq$}hSCEk^J$W&D2BOKN2j(m2-qOJOij;VOmhf703aNI2!R9?t3iNO00k(b1}LC5 zffy%3DC^bN*Vn;@H8r)hb+95O6;LQcD-9i#mXI#j4Dkw)X6NP?78d5`W@mzn3IV0J z)GT73T#{t+t*@=60QJ;Uab<0Jac+8Y?8fjwUw3C)OH)H_bwznu zY1y^%ipt>l*IT%TQVRndj&HtC(6iJ)m!wBcz}=^3W}&aNg9?<>Lasr16!wtB;MhC4 zhXrawL)?b-4NcewvkhXN2^TwYEOiZ0Mejdi7BsrxRG^Cr23!yXs;eq1%CD7`mO?St z%FD|W6_xaUxIe5)uc9jlB~dE)GX0bLlmQs^j85Fx+TPXEKR7%(HaR`Fu)Mmlb!X?^ z{oT9Uw{LB%tt>6f%}!4OE=Gp&pz=Rl>T5 zZf$OCz`B@mW(o*&V}v><0MT{CAmBYLKA9{aR;N@td}DNM94<7!xV*fwyhx{?nq<<~ zUhsU{fgrN*CW468AnvFdY6gliYf&w95%2T@3(+F4)i*^IV7r zgTvE^tsHQ;X<~)|1D^xoP;!++7^6t02I!McEYD?5h6*_)ya?f95KSa)Zftfe0qFG}P5pS0)fB#YF{qx!GA6S1w=8%+4z)E=yF_)Hhyl>x7X1jE#;A z_4itA)!~`45uakJmL)~`x!IXlFJWBC z$jZ*mFDx!apjOq^HNdf=Ou{tJJg=w}U86TST|@c-!nAdC_4Ex4-?#~5&n+yitZi=H zz5^%RTwjCP=`_>yno(nIA~)uVPRfAihXw&Y#RF=PJ*x%2N)ise%u8asz4N0RM$2%wX}Ej_5;wyCTHfCR##UzmX{WZ*4P4Z zkPH+`P^L&y;wa(4&>@{wB(5R26U=Jx+!)RX@H`q3j24O_GEjjiIdZ0=$-*fWxoQOx zA=|@9q=X1!%f@75smww9#>Ij|SEzs+AeaOz8ZQu^w|pHh_9am)!~v{Iw1j>jCSq_J z*uRAMUI6w38UX&(?)4_PbyZ~|0jMi0Eh#B3E-ET4$j{Hq&CM?;DlLa+H??+j_tCMZ z=N4B9GHJ%fI_$6vBPe5n(}~m}2)f!^n(AvR%gc%j^RhE8pFey0)R}V^E?>>cLEw~L zOH@_|KlTEL`7KsEl9ebsn|}lUlt>g@3=u@vwbGKpe1t_w8N#Bvww~BQPe-mW-UOOC zgLIC~udJ?bY;4fo7v_+cs0Mi%p*r1ApN_nO{E_vvG81TA;E{o#5&jwRshhoW@%))n zr_Y|daPjih4DJ_^TP9xCB9XNK$51NL0|gzSoSp521%YHd5!ob4 zkjOHO3(yzF_r|T;+uOI+SC{5zxYwcnp04)R=0@O{LKGB990@>&gvOdwRRq~22NVJq z7o#LSG62O!3CBbjcg?^;0g!>~IB(@%SQ1<62d)|0VSW`W6ZDDlFgipsEaC`(EEyDO zxESLXY^bJELSW1wQp6RN7MNvx*cZA23joKYI_<63o8U15)xrXEzbYgfCTOH9>Q1SF zcw~TNacOyqd|OGPz7}Yd0BTg=;RrND)Q5%#y4#v+E6NIUu3k9(<)@$g?l-^w;FmxD zr+@zC2fzOCw;vz>^vhG{E@$QzmL{sx_xJ7 z_x^*u2lsZ6KQ`A_K^nwiZVVg8V?0R?)>1^51X5(3rO2ThV?>gb^;_F_Imx5P`%j-e zfAQ_B?_R(8XiqQDr{W5agopQ4uZ0P$`H}eqK&?c6L@)R%T{qM#j~vS1>MLx^y)=uc$OpRoB$o z**h?Db8>cZb@MiiA$!vpA=g9=1eMX=Kp>bSrfoBzJG1jkD-aojWXHW#po%0Y@E7Lc zVo~W=|CSS`WZkegHW4(u4g^tfx{S9h!U>$#7-7-}u!y}!RTE84uM&A-h0ol{m}c!4 zS~k{Z!h9HgC?v+Gup!hD+dKF79zS{Z{0}c*egE1AqDbS9Z(hH8zQ4D-y}7b5JvK7X ztw=(y%*_FzynOl6#S7<_F(ukJJ@0+K$=+=?vMjqxCv+5$SPZKGGxDMn!c!*_|R>RX6KSolTedRL%>jWuxN$8RnxGwFw4@EI$l!#UxVku1C|!( ztfJ|pm@I)qb$1{os$T<|%`^oP7xEyvs|7A-6_A(qPHNuktvF^2MqEw0B8sL0@uT+NRCS8z2=q>BJd|L>6P_$ zTgcfo5)6tgdZd+tp&?|@&SFpC&ZHskSd8)pCakKhZ$ha7U?o6dVmS8Hgg^>d)>w!9 zTUu0*o12$kD8|Oy!Pms-Sr>x2Ymhl`AZUCrB$9){!QP+u*~ufJp8ERam!E%j;>3y1KBw28K6Ccm`HL4X(ebm9n=5J>S~`0H;B(6xw|5>s ze)jF_w?Dk`=z9I#tCt$z{^7;5{YMXW?`&5u4Z5WcScJG~mbN(MAQW@G(-va*b3@ zbR5wRrr3z+0d)!Weh$-9PJU6zwM12ILo-XF0pc*`C6`bq?K-)6qO7=4Q&^s#9_JcBe<@$^ zBNEK^8(Sg7pn2rx7|Lye{NG`MzIXrO!#%N}r~8ir1wsRmA<2TErKzQjnbK(x+f%y_ z_P~E0fd5FlB0%fw%(_A@^qL~r+Pb}kdmwwDWs9>@*kylDXIry6l4`kCfv&2qV6%<~wO!DVEzmSIGJx$M{p^4Q!hwz+8hXS6_VU1SQ#yGh!p@li88AA!0_gnN z&2iqWG>FC@(?MurBMi`a3M?=b>wuzAtp|R8h~nc54d)pkx#dW18JEtTK6&E!$N%x~ zzxv=`|K%6I__tqu_`6R|oIGL0Sp=Y8u8paq_MTrZBt~|Nn!C|<~mW7(u5jI;V zldXCU#Br$WLPOGX$XXgm4$6&4ipXGa3J_sNw$&GtV(;Krs&ck(Z2%JIP(>3!3=czZ0F!fS zoH&Rip_BxKSsAW&`|>hF-a4u}5n>jFdvM>#R9=GdzybnUwqgectT+=L#)}s&f(rwA zXdUZ*p#tioY1z2sRI0Va=~3Jz4?Wnngi^5(Qi6u32)rV35NPfE0Nn;4Dyt@PBQ!^r z;s+mAU8?xCW)ZsLrNxC91VcDXtbUHleMVkX@RLK6J;S=Vt;DOIpFN8SD9o_3|i0$A@fJB)LbpO^K33G!R9F4uZtu1e8s~8IICD zE=>2SN0LZH@UGZ#mijcwMDF$tMrC-}UwK&N5e{ZKHEk07MF*Xs*A0LryXPrc$bP~$ zOEfOMsh&hPP-$8KR9ay{>cb3}SUk`_wQNj$3wWVeF54+#0U$>FLRutW;OW1usd>+RZ zpFtZ-efDH|dvK-7kAJ%fZ@Nx+q)g|HA35fQZ)Lq#51 zFeI!zc0#WZ530={G9SEyE_vW|05ppA8jB${dDy;b>kF;~Q3=6aZPvszBs4Gt9_k>M z$2FeM<`>Y4%)1Ty@IJ z)3W4QkeXL?0E~cKNuRPdA)MLz>7b!(h@((jXY)yC5Mc8>K0^`jtRTXPxHyo>ItLVr zxmGB=3{u1P+C2<5iO8%_E`zD5cv9x$F$FBf^HAFl9TQF&&I$B40YVK%PO=ABiZX~b zn)jeRg|cG)D+jy-KqI#Z#SVxDD^ojx6zVXTg=9#Sb}sMzW@QIfBurKq9?Z-Yf$*}c zU^Wxm1)=8vwHNR8mYmna);$rF(q+wg83-6Gpma2glUW@1A?Y&bVu1U^I+Q$FV!vn; z?LwRtpmc!m+IbY+f>~bFgFRyvLGn(klS2=biP>1IasiU9N+uq1K`%O6WkXD7&SU~4 zG$9bNYw43wW@$b!N|_Zoo?Ii);uMd!#2UX+fmm7H3PbUQ#YNVgelU;xjzq^(UgnO2 z14N;N8v$0au6D8m12SjmaFmf^ae~P6>eos{IfEbWsj4@Sz%|`@F71b~G1Vwn8H?8J z<`@D{2$gK?p{+t@Us?KL5PCTi+>W$H`GVW?<*7|s+U?BvbhZIc1E#6Vi9n08 zI8|gi;*v^titN-2=YhW@nFgB)`WqluSW;uKH(V1TCmGd$uyl;gVxL4m5S4!tz-^ON7(2EGpg1y|o8Nn9S#>PDA2DFO zKppd7AM@Rq>Pi1Z!x<{3!K5k0$!I1y7gcDfjQSHmFm4jG zsn52ol;+4qH@1D7gJIv;yg`vY8qVpq=6<0%+9&;hm81pS zh&5#iTToXCU>Dz8x>v5kf$iC5&GzrOx-be3S;6B_of8WSF{a=Hn%vbFy#Ao-qMuX5 zu%+BN@hJ|K>2?!+XWDR`OU;gQM2QgUVaqWq|I}O4wf`EER(iv)E~|~(A&jHsd9O{Z8OCsW0PuTiiqL5Nl^@$Yh*3?dyqML(jUVTZf_4WeD;NH z313IwN>sl!lsNu`-+<4!L;hn?s%;68=tdqlK_)dGxDk6CR|#ipo4|f`Nn+CLA#K4f zk!X=ZC5K;PKgS;Wi*F;*f^ZVRF40duNoQ|D$_cJHFjWZT2Q6czVOR$cJ8!e0uz=um2POANBFij(vXot7BjP z2Jep*6z3exO5|iz=42nutULNiS#kE6jOv`9AC2A~%__TAmng`~uRQt>AN}LekMa`* N6-PfxWEA8b`Cq{In|=TQ literal 0 HcmV?d00001 diff --git a/sounds/snd_classic/warnton.wav b/sounds/snd_classic/warnton.wav new file mode 100644 index 0000000000000000000000000000000000000000..4da599de60ec49e69ee3f19002cd9a7075168c76 GIT binary patch literal 2458 zcmX|DNpsui5#`*HTkg52a!M}w38_lCqLfpqq$)Etb9Tm_v1G1T2x8ws09?QY1i=lY zNJ^q4OR}iNvaQ8-GFc}1QS&~?Gp$mIA{+hn_xiop{M+Nr&Cbs=nXi8Tz@kTw`IXqcky}4QMjarVP$ckq8-N|gR6S@jl%w@AV6fH8MQID6)<$N54 zQGb}=Z{TWTg{7%t#qc|WVc2v{S*(=t4n;AXpu4SbFdk2mB$>{p<2VdzRZCZ8grca5 zED3y?T%wqAMUXVht>b|SqU-5Wr6S0ZB=Ia&LZ>83X`+aS5vpD9#L2i9cxGCN;{{1Z zP4QFB5_(`|yEQ#NIX;?&HP>;fRmZjrG$0BUPSk8aXjN6Nw7m^53Zyt%_S(b6%Zr=) z+qbV~ZQqn-2?vGA{?4Ffvf1tDTie^&T%ky@N;Qag4%hGQ|M7mkh-w-R=FtLaP2$Te zL;ct`CtHmuSstBT-CQ2;O~R({7>Xzn6hywvP{k5O(+vA5IJMecUftf^T^vk@QKubX zvH+PE72P&fk)!ju?28xMFLDL+%W`~*hHewmOlKIMF5@i}=IBB$9a}nNR#0ufQFCoW zHEh>!G<*z#vU@g zda;D$GAF90-;Sqy$Ls6!(}OXZ00|gD144r^@C^Ki2gm>^S_Bx=)!DoI_aD}?z!De~ z!0j+oFoywVm_r&YFYC4+%};K=|Ih2a$SJcpiC6t_JYS6hQ=o7?L;*z!4zlUC2J^%9 z+mHYI*UkB&OF%2rk{2!4H-~Yxvh{2$3&<#3uPmrwS`Y-Sb|;KSgFZL}T9UyD97`1- zj;-e@Cn#LmZ6d83c2n+Znr2u|z1@qVcFhJyQ?BD~3@7TY@41c%k+%BDG;X;X$1;eD z6%2L`=5f$9aI2xTq+L2dr*_62{#!*b=&b^ zG>rSh$!z!Fa3>CI5k1p1t2oVY*l+t5T85fQCoHeHonf+A%;(ebAnLZ8gigAqs;Yt( ziVr67&@wJ3DZolMp|LQE`|X-zfp|6F_ka*I4aVj2`2tl@ta`WAtU0>jHo9>VcNJS{_=q(#jE|K-|MzpLCx00GET!2qT$t>m@`!RpbfUnt9CHjKRP)*+S?gLt(t8b z00y8T$ko!xrPfA-2OeuqBaA20X)@|}d>xE|5TIwa2-y?oN%hQ>QV@7^5GIu2Q01oKZY6Y*6zHWd_Z$Q%A(b$&&- zaeS~l8}(Ygt@4uY)H`9TUM23$lnMl7ismH1R0SCfB8z$*TC%HdE$FrbY-+*`x>z8? zW)!zQ+FkBIb3GKXh^ll0#^L+Eqm%6j4rd?s7dR+b&C%iY<@u|F#Uvu<6PO@qvR_r* zv>+%s1&+W5g{1BErU#cFKD@iwi(Hs{r7Y;xppVC)CakAC_CMAm!<+S9vJVTozq^11 zNrdt!D{CN91s3$+RfH9iSxdLa`+tA`_GlcKNRY9w{bs8ZkmZN{QN-68+>gw=V$|Zj zi;MHKqutp!?sWoCNJbOH9?1|1Xjo5ZBJ=0RpMUWue0O^Mm(9OE{(SR`-{JMPh+8Z#RB=x$$+O$WvS2K4&(5{pdFvkDgOo^u{CV$=0`- F9{@+m-6H@1 literal 0 HcmV?d00001 diff --git a/sounds/snd_classic/whoosh.wav b/sounds/snd_classic/whoosh.wav new file mode 100644 index 0000000000000000000000000000000000000000..96e4c3745990f849ed3c9f10805918e4836699db GIT binary patch literal 7068 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 literal 0 HcmV?d00001 diff --git a/src/conf_snd.c b/src/conf_snd.c index 957259b5..854fe05c 100644 --- a/src/conf_snd.c +++ b/src/conf_snd.c @@ -38,7 +38,9 @@ struct ConfigInfo sound_config[] = { "[default].passing", "gate.wav" }, { "[default].dying", "autsch.wav" }, { "[default].exploding", "roaaar.wav" }, + { "[default].hitting", "kink.wav" }, { "[sp_default].exploding", "booom.wav" }, + { "[mm_default].exploding", "kabumm.wav" }, /* sounds for Boulder Dash style elements and actions */ { "bd_diamond.collecting", "pong.wav" }, @@ -235,13 +237,56 @@ struct ConfigInfo sound_config[] = { "dragon.waiting", UNDEFINED_FILENAME }, { "dragon.attacking", UNDEFINED_FILENAME }, + /* sounds for Mirror Magic style elements and actions */ + { "[mm_mcduffin].hitting", "autsch.wav" }, + { "[mm_mirror].hitting", "laser.wav" }, + { "[mm_mirror_fixed].hitting", "laser.wav" }, + { "[mm_prism].hitting", "laser.wav" }, + { "[mm_exit].hitting", "holz.wav" }, + { "[mm_exit].opening", "kling.wav" }, + { "mm_exit_open.hitting", UNDEFINED_FILENAME }, + { "[df_mirror].hitting", "laser.wav" }, + { "[df_mirror_rotating].hitting", "laser.wav" }, + { "[df_refractor].hitting", "laser.wav" }, + { "[df_receiver].hitting", "holz.wav" }, + { "[df_receiver].opening", "kling.wav" }, + { "[mm_wooden_wall].hitting", "holz.wav" }, + { "[mm_wooden_block].hitting", "holz.wav" }, + { "[mm_wooden_block].pushing", "bong.wav" }, + { "[mm_wooden_lock].hitting", "holz.wav" }, + { "[mm_wooden_grid_fixed].hitting", "holz.wav" }, + { "[mm_fuse].hitting", "holz.wav" }, + { "[mm_ice_wall].hitting", "holz.wav" }, + { "[mm_ice_wall].shrinking", "slurp.wav" }, + { "[mm_amoeba_wall].hitting", "holz.wav" }, + { "[mm_amoeba_wall].growing", "amoebe.wav" }, + { "[mm_amoeba_wall].growing.mode_loop","false" }, + { "[df_wooden_wall].hitting", "holz.wav" }, + { "[df_wooden_grid_fixed].hitting", "holz.wav" }, + { "[df_wooden_grid_rotating].hitting","holz.wav" }, + { "[mm_steel_wall].hitting", "hui.wav" }, + { "[mm_steel_grid_fixed].hitting", "hui.wav" }, + { "[mm_steel_block].hitting", "hui.wav" }, + { "[mm_steel_block].pushing", "bong.wav" }, + { "[mm_steel_lock].hitting", "hui.wav" }, + { "[df_steel_wall].hitting", "hui.wav" }, + { "[df_steel_grid_fixed].hitting", "hui.wav" }, + { "[df_steel_grid_rotating].hitting", "hui.wav" }, + + { "[mm_pacman].exploding", "quiek.wav" }, + { "[mm_mcduffin].exploding", "roaaar.wav" }, + { "[mm_bomb].exploding", "roaaar.wav" }, + { "[mm_key].exploding", "kling.wav" }, + { "[mm_steel_lock].exploding", "whoosh.wav" }, + { "[mm_wooden_lock].exploding", "whoosh.wav" }, + /* sounds not associated to game elements (used for menu screens etc.) */ /* keyword to stop parser: "NO_MORE_ELEMENT_SOUNDS" <-- do not change! */ /* sounds for other game actions */ { "game.starting", UNDEFINED_FILENAME }, { "game.leveltime_charging", "fuel.wav" }, - { "game.health_charging", UNDEFINED_FILENAME }, + { "game.health_charging", "warnton.wav" }, { "game.running_out_of_time", "gong.wav" }, { "game.leveltime_bonus", "sirr.wav" }, { "game.health_bonus", "sirr.wav" }, diff --git a/src/game_mm/export.h b/src/game_mm/export.h index 1ea220b4..d92dcdb2 100644 --- a/src/game_mm/export.h +++ b/src/game_mm/export.h @@ -52,6 +52,7 @@ /* sounds */ #define SND_MM_GAME_LEVELTIME_CHARGING 0 +#define SND_MM_GAME_HEALTH_CHARGING 1 /* ------------------------------------------------------------------------- */ diff --git a/src/game_mm/mm_game.c b/src/game_mm/mm_game.c index ed84121d..d282dfe1 100644 --- a/src/game_mm/mm_game.c +++ b/src/game_mm/mm_game.c @@ -1075,7 +1075,7 @@ boolean HitElement(int element, int hit_mask) ((element - EL_POLAR_START) % 2 || (element - EL_POLAR_START) / 2 != laser.current_angle % 8)) { - PlaySoundStereo(SND_KINK, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_HITTING); laser.num_damages--; @@ -1085,7 +1085,7 @@ boolean HitElement(int element, int hit_mask) if (IS_POLAR_CROSS(element) && (element - EL_POLAR_CROSS_START) != laser.current_angle % 4) { - PlaySoundStereo(SND_KINK, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_HITTING); laser.num_damages--; @@ -1163,7 +1163,7 @@ boolean HitElement(int element, int hit_mask) if ((!IS_POLAR(element) && !IS_POLAR_CROSS(element)) && current_angle != laser.current_angle) - PlaySoundStereo(SND_LASER, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_HITTING); laser.overloaded = (get_opposite_angle(laser.current_angle) == @@ -1181,7 +1181,7 @@ boolean HitElement(int element, int hit_mask) if (element == EL_BOMB || element == EL_MINE) { - PlaySoundStereo(SND_KINK, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_HITTING); if (element == EL_MINE) laser.overloaded = TRUE; @@ -1209,6 +1209,7 @@ boolean HitElement(int element, int hit_mask) if (game_mm.kettles_still_needed == 0) { + int exit_element = (element == EL_KETTLE ? EL_EXIT_OPEN : EL_RECEIVER); int x, y; static int xy[4][2] = { @@ -1218,7 +1219,7 @@ boolean HitElement(int element, int hit_mask) { 0, +1 } }; - PlaySoundStereo(SND_KLING, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, exit_element, MM_ACTION_OPENING); for (y = 0; y < lev_fieldy; y++) { @@ -1269,7 +1270,7 @@ boolean HitElement(int element, int hit_mask) if (element == EL_LIGHTBULB_OFF || element == EL_LIGHTBULB_ON) { - PlaySoundStereo(SND_KINK, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_HITTING); DrawLaser(0, DL_LASER_ENABLED); @@ -1626,13 +1627,14 @@ boolean HitBlock(int element, int hit_mask) boolean HitLaserSource(int element, int hit_mask) { - if (HitOnlyAnEdge(element, hit_mask)) - return FALSE; + if (HitOnlyAnEdge(element, hit_mask)) + return FALSE; + + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_HITTING); - PlaySoundStereo(SND_AUTSCH, ST(ELX)); - laser.overloaded = TRUE; + laser.overloaded = TRUE; - return TRUE; + return TRUE; } boolean HitLaserDestination(int element, int hit_mask) @@ -1645,7 +1647,8 @@ boolean HitLaserDestination(int element, int hit_mask) game_mm.kettles_still_needed == 0 && laser.current_angle == get_opposite_angle(get_element_angle(element)))) { - PlaySoundStereo(SND_HOLZ, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_HITTING); + return TRUE; } @@ -1684,7 +1687,7 @@ boolean HitReflectingWalls(int element, int hit_mask) hit_mask == HIT_MASK_RIGHT || hit_mask == HIT_MASK_BOTTOM)) { - PlaySoundStereo(SND_HUI, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_HITTING); LX -= XS; LY -= YS; @@ -1783,7 +1786,7 @@ boolean HitReflectingWalls(int element, int hit_mask) (hit_mask == HIT_MASK_TOPRIGHT || hit_mask == HIT_MASK_BOTTOMLEFT ? ANG_MIRROR_135 : ANG_MIRROR_45); - PlaySoundStereo(SND_HUI, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_HITTING); AddDamagedField(ELX, ELY); AddLaserEdge(LX, LY); @@ -1819,7 +1822,7 @@ boolean HitReflectingWalls(int element, int hit_mask) hit_mask == (HIT_MASK_ALL ^ HIT_MASK_TOPRIGHT) ? ANG_MIRROR_135 : ANG_MIRROR_45); - PlaySoundStereo(SND_HUI, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_HITTING); /* AddDamagedField(ELX, ELY); @@ -1912,7 +1915,7 @@ boolean HitAbsorbingWalls(int element, int hit_mask) element == EL_BLOCK_WOOD || element == EL_GATE_WOOD) { - PlaySoundStereo(SND_HOLZ, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_HITTING); return TRUE; } @@ -2265,13 +2268,13 @@ static void Bang_MM(int x, int y) } if (IS_PACMAN(element)) - PlaySoundStereo(SND_QUIEK, ST(x)); + PlayLevelSound_MM(x, y, element, MM_ACTION_EXPLODING); else if (element == EL_BOMB || IS_MCDUFFIN(element)) - PlaySoundStereo(SND_ROAAAR, ST(x)); + PlayLevelSound_MM(x, y, element, MM_ACTION_EXPLODING); else if (element == EL_KEY) - PlaySoundStereo(SND_KLING, ST(x)); + PlayLevelSound_MM(x, y, element, MM_ACTION_EXPLODING); else - PlaySoundStereo((mode == EX_SHORT ? SND_WHOOSH : SND_KABUMM), ST(x)); + PlayLevelSound_MM(x, y, element, MM_ACTION_EXPLODING); Explode_MM(x, y, EX_PHASE_START, mode); } @@ -2851,7 +2854,7 @@ static void GameActions_MM_Ext(struct MouseActionInfo action, boolean warp_mode) Delay(50); } - StopSound(SND_WARNTON); + StopSound_MM(SND_MM_GAME_HEALTH_CHARGING); FadeMusic(); DrawLaser(0, DL_LASER_DISABLED); @@ -2933,17 +2936,12 @@ static void GameActions_MM_Ext(struct MouseActionInfo action, boolean warp_mode) BackToFront(); } - if (laser.overloaded) - { - if (setup.sound_loops) - PlaySoundExt(SND_WARNTON, SOUND_MAX_VOLUME, SOUND_MAX_RIGHT, - SND_CTRL_PLAY_LOOP); - else - PlaySoundStereo(SND_WARNTON, SOUND_MAX_RIGHT); - } - if (!laser.overloaded) - StopSound(SND_WARNTON); + StopSound_MM(SND_MM_GAME_HEALTH_CHARGING); + else if (setup.sound_loops) + PlaySoundLoop_MM(SND_MM_GAME_HEALTH_CHARGING); + else + PlaySound_MM(SND_MM_GAME_HEALTH_CHARGING); if (laser.overloaded) { @@ -3182,7 +3180,7 @@ static void GameActions_MM_Ext(struct MouseActionInfo action, boolean warp_mode) if (IS_WALL_ICE(element) && CT > 1000) { - PlaySoundStereo(SND_SLURP, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_SHRINKING); { Feld[ELX][ELY] = Feld[ELX][ELY] - EL_WALL_ICE + EL_WALL_CHANGING; @@ -3320,7 +3318,7 @@ static void GameActions_MM_Ext(struct MouseActionInfo action, boolean warp_mode) ScanLaser(); DrawLaser(0, DL_LASER_ENABLED); - PlaySoundStereo(SND_AMOEBE, ST(dx)); + PlayLevelSound_MM(dx, dy, element, MM_ACTION_GROWING); Feld[x][y] = Feld[x][y] - EL_WALL_AMOEBA + EL_WALL_CHANGING; Store[x][y] = EL_WALL_AMOEBA; @@ -3334,7 +3332,7 @@ static void GameActions_MM_Ext(struct MouseActionInfo action, boolean warp_mode) ScanLaser(); DrawLaser(0, DL_LASER_ENABLED); - PlaySoundStereo(SND_AMOEBE, ST(dx)); + PlayLevelSound_MM(dx, dy, element, MM_ACTION_GROWING); for (i = 4; i >= 0; i--) { @@ -3388,7 +3386,7 @@ static void GameActions_MM_Ext(struct MouseActionInfo action, boolean warp_mode) return; } - PlaySoundStereo(SND_BONG, ST(ELX)); + PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_PUSHING); Feld[ELX][ELY] = 0; Feld[x][y] = element; diff --git a/src/game_mm/mm_main.h b/src/game_mm/mm_main.h index 6c2ae34c..7688cca1 100644 --- a/src/game_mm/mm_main.h +++ b/src/game_mm/mm_main.h @@ -1008,6 +1008,61 @@ extern int num_element_info; #define NUM_SOUNDS 20 +/* values for graphics/sounds action types */ +#define MM_ACTION_DEFAULT 0 +#define MM_ACTION_WAITING 1 +#define MM_ACTION_FALLING 2 +#define MM_ACTION_MOVING 3 +#define MM_ACTION_DIGGING 4 +#define MM_ACTION_SNAPPING 5 +#define MM_ACTION_COLLECTING 6 +#define MM_ACTION_DROPPING 7 +#define MM_ACTION_PUSHING 8 +#define MM_ACTION_WALKING 9 +#define MM_ACTION_PASSING 10 +#define MM_ACTION_IMPACT 11 +#define MM_ACTION_BREAKING 12 +#define MM_ACTION_ACTIVATING 13 +#define MM_ACTION_DEACTIVATING 14 +#define MM_ACTION_OPENING 15 +#define MM_ACTION_CLOSING 16 +#define MM_ACTION_ATTACKING 17 +#define MM_ACTION_GROWING 18 +#define MM_ACTION_SHRINKING 19 +#define MM_ACTION_ACTIVE 20 +#define MM_ACTION_FILLING 21 +#define MM_ACTION_EMPTYING 22 +#define MM_ACTION_CHANGING 23 +#define MM_ACTION_EXPLODING 24 +#define MM_ACTION_BORING 25 +#define MM_ACTION_BORING_1 26 +#define MM_ACTION_BORING_2 27 +#define MM_ACTION_BORING_3 28 +#define MM_ACTION_BORING_4 29 +#define MM_ACTION_BORING_5 30 +#define MM_ACTION_BORING_6 31 +#define MM_ACTION_BORING_7 32 +#define MM_ACTION_BORING_8 33 +#define MM_ACTION_BORING_9 34 +#define MM_ACTION_BORING_10 35 +#define MM_ACTION_SLEEPING 36 +#define MM_ACTION_SLEEPING_1 37 +#define MM_ACTION_SLEEPING_2 38 +#define MM_ACTION_SLEEPING_3 39 +#define MM_ACTION_AWAKENING 40 +#define MM_ACTION_DYING 41 +#define MM_ACTION_TURNING 42 +#define MM_ACTION_TURNING_FROM_LEFT 43 +#define MM_ACTION_TURNING_FROM_RIGHT 44 +#define MM_ACTION_TURNING_FROM_UP 45 +#define MM_ACTION_TURNING_FROM_DOWN 46 +#define MM_ACTION_SMASHED_BY_ROCK 47 +#define MM_ACTION_SMASHED_BY_SPRING 48 +#define MM_ACTION_EATING 49 +#define MM_ACTION_TWINKLING 50 +#define MM_ACTION_SPLASHING 51 +#define MM_ACTION_HITTING 52 + /* laser angles (directions) */ #define ANG_RAY_RIGHT 0 #define ANG_RAY_UP 4 diff --git a/src/tools.c b/src/tools.c index e1ff8140..173c40aa 100644 --- a/src/tools.c +++ b/src/tools.c @@ -7409,6 +7409,9 @@ int map_sound_MM_to_RND(int sound_mm) case SND_MM_GAME_LEVELTIME_CHARGING: return SND_GAME_LEVELTIME_CHARGING; + case SND_MM_GAME_HEALTH_CHARGING: + return SND_GAME_HEALTH_CHARGING; + default: return SND_UNDEFINED; } -- 2.34.1