From 0a431ecc82cd515150ed033ad651b2d9c7062630 Mon Sep 17 00:00:00 2001 From: stevenhowes <38082088+stevenhowes@users.noreply.github.com> Date: Sat, 29 May 2021 19:58:48 +0100 Subject: [PATCH] Don't repeatedly fire actions. Load some sounds for mission2. --- !TheEsc/!RunImage,ff8 | Bin 23908 -> 24056 bytes !TheEsc/Makefile,fe1 | 13 +++++-------- !TheEsc/c/Mission2 | 31 ++++++++++++++++++++++--------- !TheEsc/h/Sound | 2 +- !TheEsc/sounds/door | 1 + 5 files changed, 29 insertions(+), 18 deletions(-) create mode 100644 !TheEsc/sounds/door diff --git a/!TheEsc/!RunImage,ff8 b/!TheEsc/!RunImage,ff8 index ef852efefa9d70ec74d77a3d73792b2e6781999c..ec9d1b97e3964e33040e6126fff5a7b954338182 100644 GIT binary patch delta 3496 zcmY*c4OEm>8h+o8nPFyR;F}qS--9zc2*U7_Ac83YB047OAZD&)K!SfOf&zQA&1J^G zvUJ5>wc4$i{&xG_w8=U}r-LVPb~NsjI32ptF!M1 zd*7eue)H7_c&!%`0o*>hMF9k7n;@tMxGdHHe7h&{uXtjQ&#V{XAh-nfO2GXxct^TP zdQ2C@LAn#iYu+?L?^nuOf;p~k5TLqc6Etu?r+Gsg@Ndl^ zZ4z>@hMpJFF^!H3W=$=>mu(0?}q_W6|?UIzD+jk$! zo+4D5v706+jra)_C>P-i)TOlHdOFDR20Ep*;&%F(B@UXPGNYZ!ROz^u)~cRVCGd;u z21yl}gVU%WvJh`jQ=}DtqCJuM_zm?(n(-n@k-2!2OzJ}Hrv>U}Tek(jQNUOAu;X^c{tr3()S~zYZ zrqjl8B{)n6$K~?DedBBb7%4g`4Np)(lo>y!d!lmDPhI?coeo9W&`rLmWYyCK7}`8Y zf-a5i$nvZW$m8lSa zLpw}1PP9X&xp;(b@OU9*#HC|1RmItGI&F=MSB1Uwhqz2!O#N}WLb6Ezic7@#*?PmTbHk;#!y*NB~I6rk84YNRf0U(vzHG0{Sjsu>P zmM0O{QRBovVmYDpUSa*0wA}hNUZJwo>XalM1W!gmFcw^X1ssv$7|VtzquhZ(I+$80 zv<=cwYG&C-QP9hl1U}hlmag)G*TRcBs~+(x>)2Z8mqu82Yw^3I<9?}3;r1cV4beT5 zYBTna?c#ezYnCj~Ew!I;`1|0#7h7JbId|f=)!lSqQZgQ<>yy&6-(&eYd9KbKK!-aJ z0abz6y3W(Fj?VrpN2l~wcwGb61G7(BK3A_R&5HZ^8BZUkwdq>J8gj)HQE~ciL5!kL z)9=S?ls)-l8T>doM^Hr3#Ec<4PP)vCX!m@VIYSVN0+gAZ$Ema;`>OsuEt4MmMh={k zx7t9BIW?T=hjRvn7G{OqG{KD8s&z_U8kssnbBZP7u7-ktr-FhGKE|PfD{>TGo0iFWe0rJ{ z=h5|Pg}PQ&lf4}=cB;ZwA@zdi?ZO;nit!cY>%NHO9G*9}@#mfi(|?IzTT_bjb;nc? z>{~E4(eGJNd=YUf6_?y=8n1%hPf9uKMZQrqtROn2JbJa{V~w0?a>fmN+Dju5U!tvL zR&1f?%dAP4ln~?^57Q3cDNXg8+S=BxZ)~NW@+lNED?@p=5{3q-c$Q73=UG-Ppk4g@ z3mu%bT4mt5ZXJy;Ps2Q_D7P{tuPwJ>JMAm4#Xd1Si=(yVy9mVU4E^_9cW;DjB#uj*D;=N?(~ljqO4&!Bv zxAJ^m7%ySGpYhBvb})X6@tiQOWSqzA9b>p7U}u4k6_$q;?qFUoSHRE`KG@jNTN~Tj zTWagu8`d^6&%^?RbbXwPXR|LU4pg$?D|{ve^eWA}xs2U`73=^NkL5H4-s@LaLPM?1 z?Hd|eb5=GtH9gR&}$kA1($I%a$Cx6mFNx()A6}0JF=J^ zkWsdHM6&a^l0EL=2H*`$=02;+ELVlEf&CX^Jry6Rfsbp!SYMD$rWMw7M2HYlM7*a zBFit_CRc~$%qPAq@r;C^4=5~X0LU{c#WF*d*q3C=5(k*x^#OHwLOV8L%A#lQ?pU#Y zm7IoEff#`E*eTwCPs@iYK|I6Dot=vgrh8O zB=|q|NLGI%p05`tEq5f@He(N;vRiT1|2mQ=-eO=G)W-PA|va+rZ9Ni07!s zk=Rkh`U}mwUszz?{dNp{BGST_A+xN7vrxzz|^IBMTE4}|K*Ke!zrixu`@Dz48Xl2*A zo6OQPEj`lC98A1rJqJWiAF<`q>vrM1#p*nk^f=Vv6F9ca*7?!utoo`QOO$ZqZ*0T>6lGr)y?|% zIlw8LyG`{QY8yFe|3QbVX9)isrkmB7s)vU|i@mS$69u<7<3edEV2v)Ez+sOBGbN rTs=PZG(g|y07tmVKY3R*wT)C#$AN;DO>lTj?$- delta 3374 zcmZ8j4^&iT7XR*J-oOkDynz}1F1~@mfng97MEr;RR|v^LG&_m`3YDGJKw!5&>oT|l zVMStB&28BjE88sFq*?6`*1=PlmA16IS|MBWr?)2=O|8s4rL*_J*mCxr^S$r;-Fv_L z?sxya@5dqd>Me+4%;AMFKd`hw;=+25pb z)IuuPGlmOchUzgr8~Tb3NT;v?hWI)y^Ce*tmjJskpA(}$8)K}dc`F;IdFlOI+88~q zG2F^!!UEjSrGf%K;6znEX(k)IoA3%})Mp3KT{J6Lw}`LLVPiRebW9w}RPFk zfTYwU^+SX+GIj~bcEvpmujA=BOa7qpnj?ZTA-Z_sj$s!0R(pXYC<+xy-9~c){xM2C-_d zuHJq|XSI)HSnX18U|%EE19cx$4pncb$p~%qj=^K5HcfRvLavx-%un6PeG`fwr``o; zaaP*9GWa$vlkS1wYST0SRc%Std7xoEV739XZ#iZ*|T! z!W(#CZh_`_2(|Dsky6bry@OZgE>gWpl+bH_-z%7#+d;=TlKY(;g_q`~)5p%tGeRm} zpO>epCNViwK~ty7Yvp#2J73GA0y>E9`8k>+!IZ-lQ;J`6CN20W2%g5o{2a{-O6D7` znqoZXT%Z3XKqTfDtkM6>v!PRkl=Z@HiK$3Hut@?QEO=KXXPTUGwa)g!V1Vtot;h(s zQ??Fq~0h0s+fPjMS1hl~|w#_mtGZn|QUvqP;-Axu;=sQ+8crQ$yRmEDQ&u zqhJ)vN((ffE0}MeY%+Q8Ebb~@qv=@OH(_R5~ESDd(^DUqc%9a#e`21)&=kq!j+=kGb4Z(5{{c;_oM~zJi^eqRfX3>x>-xLa^|T{x?JCQ)7Ng{p9r6vhOZIUQ1d@TJx`wJ(;QB7%T2slK7-#*5!Yc-MI|-Z%@syvzgCoN z&G_+(XgpM5g(19Au@RcE;kKxbG}{Sj0p(~Y1%xm{}O6q~9x*8~SKRHT`1QSgB!D0>gGssbN@B8#+BYq0_UR z3ZvX$lS)am+>UsX3u0`78TLxcg+4N4C3Okfi{~rbH-6tSZa|t&+fOvPd&>P=xzFLQ*yk|1D|8NbcXhW* zxw6Z}SJNd^=#@^zh>{YzT_I$Q%|_9@D<@=t(hhsOyY+~qoEH!w8mQ+VSrBAC)tkMT#S3%#p39c(CG@H|5_)rxhVFo zMsl`7_zWYe<2q7EzCzsjY`M7eH5GXx*g(G}>UUv8H_(aXi-Vf2@;*Zs45;s>^&Q@w zv@XAwJjM1-nr5J2l4-8^0RH9M+D=#U|I^48*+VI;Tl&>{u|w)_9*{x?L@DD5QL;0; zi@^>Tqs&MlrNFY~Yk7PKWdLJyyeeUoSFk>w2_wOjHEJN5g7_*%{Nx^2FePY=NOvh< zlZKxp!_Skk5mZ)YMu}?>JcZQ9IDt{}&WREjE?jBS4^z**OucuM=9!ylv@%wS?JHk~ zGEAyTFfSpMkCDn!Qt|!dePuFA@e0{j^vQg2h35}4A2-z`B+63UR2+Yis3eK@Ns0Y6 zsbIzrYVOybqaY?yI&W^+QrARzyaX#&E#lZk>|T|wJaEAu8h;UwuG+v4#saIy#MO_$ z>&^qKYoP4dS;l_%DP#RHz}|=l#?fXO*V7SX%uK-i^w?}uH2D%H({4R7Zgl3aaR$xk j{}*HPX)LB8Ke8Gd4LgmVPqC%;K73%^V&}1S^SS>5B`oxZ diff --git a/!TheEsc/Makefile,fe1 b/!TheEsc/Makefile,fe1 index 349038d..f826cb4 100644 --- a/!TheEsc/Makefile,fe1 +++ b/!TheEsc/Makefile,fe1 @@ -40,18 +40,14 @@ Squeezeflags = -o $@ # Dynamic dependencies: +o.Graphics: c.Graphics +o.Graphics: C:h.swis +o.Graphics: C:h.kernel +o.Graphics: C:h.kernel o.Input: c.Input o.Input: C:h.swis o.Input: C:h.kernel o.Input: C:h.kernel -o.Graphics: c.Graphics -o.Graphics: C:h.swis -o.Graphics: C:h.kernel -o.Graphics: C:h.kernel -o.Graphics: c.Graphics -o.Graphics: C:h.swis -o.Graphics: C:h.kernel -o.Graphics: C:h.kernel o.CTheEscape: c.CTheEscape o.CTheEscape: C:h.swis o.CTheEscape: C:h.kernel @@ -82,3 +78,4 @@ o.Mission2: h.Graphics o.Mission2: C:h.swis o.Mission2: C:h.kernel o.Mission2: C:h.kernel +o.Mission2: h.Sound diff --git a/!TheEsc/c/Mission2 b/!TheEsc/c/Mission2 index 1830057..befbeb6 100644 --- a/!TheEsc/c/Mission2 +++ b/!TheEsc/c/Mission2 @@ -1,6 +1,7 @@ #include "Graphics.h" #include "swis.h" #include +#include "Sound.h" extern int tick; extern int lasttick; @@ -53,6 +54,8 @@ struct TilePlayer_s { struct EntityLocation_s lastmapoffset; struct EntityLocation_s localtile; int rawtile; + int lastrawtile; + unsigned char direction; unsigned char facedirection; unsigned char sprite[13]; @@ -231,6 +234,12 @@ void game2_fillmap(int xoffset, int yoffset) memcpy(map[0][9],fullmap+yoffset+(xoffset*100)+900,10); } +void game2_setup_audio() +{ + sound_pcm_loadsample(PCMSAMPLE_HAIL,"sounds.commbdg"); + sound_pcm_loadsample(PCMSAMPLE_DOOR,"sounds.door"); +} + void game2_setup() { screen_flipbuffer(); @@ -256,7 +265,7 @@ void game2_setup() TilePlayer.animframe = 0; TilePlayer.nextanimframe = 0; TilePlayer.nextanimidle = 0; - + TilePlayer.lastrawtile = -1; memset(map[0],0xFF,100); memset(map[1],0xFF,100); memset(map[2],0xFF,100); @@ -264,6 +273,7 @@ void game2_setup() game2_loadmap("m2_map"); game2_loadsmarttiles("m2_smart"); game2_loadareanames("m2_areas"); + game2_setup_audio(); game2_fillmap(TilePlayer.mapoffset.X,TilePlayer.mapoffset.Y); } @@ -509,18 +519,21 @@ int game2_tick() } } + TilePlayer.lastrawtile = TilePlayer.rawtile; TilePlayer.rawtile = (TilePlayer.mapoffset.Y) + TilePlayer.localtile.Y + (TilePlayer.mapoffset.X * 100) + (TilePlayer.localtile.X * 100); - // Trigger any smart tiles for our centre of mass - for(i = 0; i < SMARTTILES; i++) + if(TilePlayer.rawtile != TilePlayer.lastrawtile) { - if(SmartTiles[i].Tile == TilePlayer.rawtile) + // Trigger any smart tiles for our centre of mass + for(i = 0; i < SMARTTILES; i++) { - // Change tile sprite - if(SmartTiles[i].Action == 0) - fullmap[SmartTiles[i].ActionTarget] = SmartTiles[i].ActionValue; - else if(SmartTiles[i].Action == 1) - sprintf(areaname,"%s",Areas[SmartTiles[i].ActionValue].name); + if(SmartTiles[i].Tile == TilePlayer.rawtile) + { + if(SmartTiles[i].Action == 0) // Change tile sprite + fullmap[SmartTiles[i].ActionTarget] = SmartTiles[i].ActionValue; + else if(SmartTiles[i].Action == 1) // Change area name + sprintf(areaname,"%s",Areas[SmartTiles[i].ActionValue].name); + } } } diff --git a/!TheEsc/h/Sound b/!TheEsc/h/Sound index ad3832f..2b8567b 100644 --- a/!TheEsc/h/Sound +++ b/!TheEsc/h/Sound @@ -44,7 +44,7 @@ enum pcmchannel_e{ PCMCHANNEL_NPC2 = 7, PCMCHANNEL_AMBIENT = 8 }; -enum pcmsample_e{PCMSAMPLE_DURNOTORPEDO, PCMSAMPLE_PHASER, PCMSAMPLE_SHIPEXPLODE, PCMSAMPLE_TRACTOR, PCMSAMPLE_HAIL, PCMSAMPLE_MAX}; +enum pcmsample_e{PCMSAMPLE_DURNOTORPEDO, PCMSAMPLE_PHASER, PCMSAMPLE_SHIPEXPLODE, PCMSAMPLE_TRACTOR, PCMSAMPLE_HAIL, PCMSAMPLE_DOOR, PCMSAMPLE_MAX}; struct CompositionElement { signed short int Start; diff --git a/!TheEsc/sounds/door b/!TheEsc/sounds/door new file mode 100644 index 0000000..53bdff8 --- /dev/null +++ b/!TheEsc/sounds/door @@ -0,0 +1 @@ +€€€€€€~€~€~€~€€€€~}€€„~€€}€€€~€€‚}|€ƒ~~€‚{}€‚‚€}€€‚‚€‚}}€~~~€€€}€~€€€€€~}ƒ€€‚~}{€}~‚~~€}~€€€~|€~‚…‚„~}~€‚„ƒ€{{{€‚~~€~~~{~~}‚„„€|~~€ƒ…ƒ€~}~~€ƒ„z{|„|~}€~‚ƒ~‚~z|€€‚~‚~€}}‚€„€ƒ~~‚ƒ{~{~}‚€ƒ~{~y~‚€€ƒ}~ƒ|€€‚€~~|~€~€~€‚ƒƒz{~ƒ„ƒ€~|~~~~€~}€‚€~}~~…‚~}}}€€~~}~„€|€€}ƒ€~|€‚ƒ~~}}~‚‚~~€~‚~~€€‚~‚}€|‚€€€~~}~~}{€€€|~€€‚‚~€€€~€~~|}~€‚ƒ‚|€‚‚€~~€€€€~~€€|€~€}~€€|€‚~~€€€~€~‚€€~€~€|€‚‚}‚}~€€€€~}€‚€€€€}‚~€‚~€€~~€€€}€}~€‚€~}€€€€€~~~€€}~~€€€€~€€€€~~€€€€~}~}~€€€~€~~}€€€€}€‚‚|ƒ~~€€€~€€€~~€}~~~‚€~€€€€€€~€~€~~€‚~€~‚~€~‚‚€€€~€~€€€€~€~€‚~€€€€€€~€€€€€‚€~€€}€€~€€€~€~‚€€~~€€~€€~€€€€~€€€~€€€€€€€}€€€€€~€€€€€€€€€€~€€~~€€~€~‚~€€€~€€~€}€€€~~€~€~‚}~~~~€€‚€~€~€€€€~€~€€€~‚€€€€€€~€}€€€~~€€€€€~~‚€€~€~}~€~€€€~~€€~€€€€~€~€~~€€€€€€~~ƒ~€€€€‚~~€€~€~€€€€€}€~€€€€€€€€}€€~€~~€€€}€€€~€€€€€€€~€€€€€€€€€€€€€~~€€~€}€€€€€€€€€€€€~‚€€€}‚~€~€~€€~€€~€€€€€€€~€€€€€€€~€€€€€~~€€~~€~€~€€€€~€‚€€~€€€€€€€€€€€€€~€~€~€~€€€‚~€~€~~€~‚~‚€~€~~‚€}‚€€€€~€~€€€~€~€€€~€€€€}~~€€~‚~€€€€€~€€€€‚€}€€€€€€~~€~€€€€~€€€€€}€€€~€‚}€€€€~€€~€€€€~€~€€€€€€€€€€€€€€€~€€~~€~€€~€‚~€~€€~€€}€€~€~€€~~€€~‚~€€€~€€~€€€€€}‚€~~€€€€€~€€€€|‚€‚~~~‚€~€~€‚€€€€€€~€€€~€}€€€ƒ}€€€€}€€€~€~€€€€€€~‚~€€€€€€€~€€€~€€€}€~~€€€€€€€€~€€€}€~~€~€€€€}‚~€~€€€~€€€€~€€~~€}€€‚~€~}€€~€€~€€€€€€€€~€~€}€€€€~~€€~€€€€€€€€€~€€€€~€~€~€€€~€~€€~€€~ƒ€€ƒ}€€€~~~€€€~€~€}‚€€~‚~€€€~‚€€€~€€€€€€€~€~€€~€€~€~€~€~€€~€€~~€€€€€€€}€€~‚€~€€€~~‚~}€€~~€€€~~€€~€€}‚€€~€~‚€€}€€€}€€~€€€€~€€€€€€}€€~€€~€€€‚~~€ƒ~}€~~€}€€€~~€~€~€€€€€~€~€€~€€~€~~ƒ€~€€~€€}€€€~€~€~€~€€~‚€‚€€€€‚~~€€€€‚€€‚~€€€~€€~€€~€€€~~€~€€€€€€}€‚€~~~~~‚€€~€€€€~~‚~~~€~€~€~€~€€€€~€€~€€€€€€}‚~~€~€€~€€€€€€€€€€€€€€~~‚€€~‚€}€€€‚~€€€€~€€€€€~€€€~€€‚}€~€€‚~‚~€~€€€€|}€€~€€}~ƒ}€‚~€€~€‚€~€€€€~€€~€€~€}€€€€~ƒ}‚}€~}€€~€~€€}€~‚~€~~€€€~€€‚~~€€€€€€€€€~€€€€~€€€€€~~€€~~€€~€€~€}~€~€€€}€}~€}‚€~€~€€€€€€€ƒ€~€€€€€€~€€€€~€€~€~€~€€€€~€€€€€€€}~€€~€€~€~~€€€~€€€~~€€€~€€€€€€€~€~€€€€€€€~€~€~~€~~€‚~€}€€€€~~~€~€€€~€~€€€€‚€~€€€€€~~~€~€~€€€~€€~€~‚€€€€~€€~€~€~€€~€€€€|‚€€€~€€€~€€~~‚€€~€~€}~€€€~€€€~€~€€€€€€€€€~€€€€€€€€€€~€~~€€€€€€~~~€~€~€€€€€€~€~€€€€€ƒ€€€€~€€~€~€€~~~€€€€€~€€}€€€€~€€€}€€€‚€€€€‚~~€~€€€~€~~€~~€€€€€€€€€€~€€€€~€€€~~€}‚€~€€€}‚€‚€€~€€€~~‚€~€}€~~€€€~~€~€€€€€~€€€€€~€€€~€€€€€€€~€€~€}€€€€€€€~€~€€€€€€€~€€€€€€~€€~€€€€€}~€€€€~€~€€€€€€€}€€€€~€€€€€€€~€~~€€€~€~€€‚~€€~€€€€€€~€€€€€€€€€€€€~€€~€€€€€~€€€€~~~€€~€€€€€€€€€€€€€€€€€€€€€€€€~€€€~€€€€€€€€€€~‚€€€€€€€€~€€€€~€€€€€€€€€€€€~€€~€€€~€€~€€€‚€€~~€€€€€€€€€€€€€€~€€€€€€€~€€€€€€€€€€€€€€€€€~€€€€€€€€€€€~€€€€€€€~€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€~€€€~€~€€€€€€€€€€€€€~€€€€€€~€€€~€€€€€€€€€€€€€€€€€€€€€€~€€€€€€~€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€~€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€~€~€€€€€€€€€~€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ \ No newline at end of file