From a1b011dfaa8c74f84703fec7a95ddee9ee390ca2 Mon Sep 17 00:00:00 2001 From: Paul Date: Sun, 10 Jun 2001 17:07:06 +0000 Subject: [PATCH] --- Graphics/party/banner1.bmp | Bin 132150 -> 65654 bytes Graphics/party/banner2.bmp | Bin 132150 -> 65654 bytes Graphics/party/banner3.bmp | Bin 132150 -> 65654 bytes Graphics/party/banner4.bmp | Bin 132150 -> 65654 bytes Graphics/party/bigcake.bmp | Bin 132150 -> 65654 bytes Graphics/party/jelly.bmp | Bin 132150 -> 65654 bytes Graphics/party/sandwiches.bmp | Bin 132150 -> 65654 bytes data/DataCache.scr | 2 + makefile.gaz | 3 +- makefile.gfx | 34 +- source/backend/party.cpp | 396 ++++++------------ source/backend/party.h | 57 +-- source/paul/scenesel.cpp | 5 + source/player/pmodes.cpp | 14 + source/player/pmodes.h | 5 +- .../spongebob project/spongebob project.dsp | 12 + 16 files changed, 214 insertions(+), 314 deletions(-) diff --git a/Graphics/party/banner1.bmp b/Graphics/party/banner1.bmp index c3020a28e472c5f8446fee4e98dcdc0c249cdce7..161eb45a71a6462ce8e82e8c2b1bca3c2fc36147 100644 GIT binary patch literal 65654 zcmeI*PiP!f90%~1noYJ*FsZcc!HaXysk5${Kq+`=DvG5bM2i^o(3Dy)UQ&>l<7SfL zqY(+}p%(w_A&SBo4Jm&t$lut1vrqoYsUbD&|0PHFy8mw6zsPZ0-7Z!hd$V}%^6BEO z(`&^ik9=DEFrF9hzOr6?cX+dS>eN(m<{P3OP$?w;T6F+@bT)LPS z-T#HJ6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbF zC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epy zpa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+ zfC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epyz!2DfB$}K$hY{;;QR?n7 zzS}i~b7|y{Sl1DP-6cjH`}lvq5g**;BETuFqf`L4IyRmG2)8f9p#YFZTP+(u+jkY< z#B47EoVE4>K)ih+Rs=wfMBhKUh-04*>6QMU8hn#d zB@Hv8n#>6yI|Ehf0<^8sU-xGKz?rhN02vUaH%u`zKn6oO+5+%4!0ql2u@ZTKTD#-2 z@&2oWf2I`ff6{U84?REl;r2&ZPGji-YPoYam*r}s|0f3f%y6#nF7nvbk6C)PW3&aJF0yTkVp@ZK^6tnqV|&@({e4$x|llZ0g}YIR(+2g8SvA` zeHW0}mc{G=lzKq`BmrzTH{f@A&+vw{bb;1lP6C5UX;R`h^*x0K|HAQANq`xNv*BL= zkI~N`%$CobnL2dn?~{Px`;hOG0(mSGqF67lK@yb0Y)D2!qgNmSWF+v1e@3(f*$>Qy z=fp+;GCdBM0;Ay_VPbQe8$AsOu&8}qTmYmdurv<{a4B>F@`k_{1rRf!TNCjK;IOAEennQ zsP(Fia*6*UVge}jJ7>|(h~<8cR1j_`iZb?n_Yqx2*vOyf_yCOv%M0E zp^4Gw;Br3%yy#0IQVnnGX-I(X0=X#4oxud~9Y7*)g`E2qG67`Ms0bL_ahTPR(U1U% zUmFrbCV(uCN@c^4Y?{PO03`r^byU-B-+ecPlnF8fihz{E9cBXvLtrA$!(4_r1P)iE z0r(yewj4C8jWKQ1P1DlZ4e6ws=aB2edtLq6&D_~|Tq(#xm`8Xcx1gUI&`W`jZHD?p zyen{TmVVQ-!2I%;j;>)w-i>;nEDk=53?MV1_|XQgK&S?+-~xmV!?k!0H3MX2R2On9*P0C^lxy=tWx4Eb9H(EtDd delta 4208 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 literal 132150 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 D2)ftX diff --git a/Graphics/party/banner3.bmp b/Graphics/party/banner3.bmp index 3bfa87d291cc97269ff56ca5229a55058b264f4b..d6e664e203799745dfea07b1c8835c07dc223ae1 100644 GIT binary patch literal 65654 zcmeI4&x;&I6vu0mnVm_qhZ$tUoO@7OS}<(z<{=1)10rO=gvE;qibM|*2(BC0!)zz& z!}SnxSmBg@^wx$O*e|`pzguZyfAo6lo|boCzFofl@SXD3M-R*Oi$9isPJS=% zU;U~4?fjGS)#Xn4^YTgg&+fnFD~}(PU*7+t)Yp!G{Qtv0BtQZrKmsH{0wh2JBtQZr zKmsH{0wh2JBtQZrKmsH{0wh2JBtQZrKmsH{0wh2JBtQZrKmsH{0wh2JBtQZrKmsH{ z0wh2JBtQZrKmsH{0wh2JBtQZrKmsH{0wh2JBtQZrKmsH{0wh2JBtQZrKmsH{0wh2J zBtQZrKmsH{0wh2JBtQZrKmsH{0wh2JBtQZrKmsH{0wh2JBtQZrKmsH{0wh2JBtQZr zKmsH{0wh2JBtQZrKmsH{0wh2JBtQZrKmsH{0wh2JBtQZrKmsH{0wh2JBtQZr&@%#O zdZwqVoJH3c`t|&-^h-}iHCvK(e4`(aUwMCL=lqA4uSk~kLr^yrGpVmhw-%=4{*4;mTcRHPJe|)kRd-BwGl7(m|lZ!o()J4Xx+Tr>3 zKK``JYkhh4`=b!-srUCqQWqT~AMW_E&Z^6MeR)>9`zqXnigs%AEj8G)>aUGITw zw_)Dz$9gehtnX^?&*JQE?GixWBd^~&zf5qV-PXWktNqsYYv9}7g((ed^Q-)GFsfUj z-u!BP&2!ys@8Xm+@+;yz0j>OQY>}_k{=*A6Hb16xk^59ne2CceJGbx6pMa`&&JTRH zkNE>kF&akBEsu&Eu+tw#2Vb3i?)vn)cK}ivMu@8wsy4nXgJD^=@Tz?bMuPg^HYN;avl zmv8&z8j9*hr$#$=`8>C*n%gLa!EyP3ZT~D--^?$Ec)1Q6>S@zw>l)+^iqE$?H^mx1 zTiBpsZ+jc2G!Aooh0gE403*5;8qL)G^EB5r4$rrDQA)!omUKS<_PtA&K3JoOZglR6 z#K~vPPpm?8phF$4^nimMGjya2du(!Jg=O_d?IY0+Uzf2?nmbU1O|gZX+U0|~{~`=` zGPrdem6uzmZ}wk7d3`HZ^ZTklL#_U|H01Zyza;`ysxsZEt>31Od93*dO!av;zmfXZ zFF{<^WdPLuZK^{qcp7+rBrNSfb^k%8wLecFr}xd-H?;SU=XjaUx}rZiDpFwiZk87F zdo>KeZ%K1x`H>WWqh4LrR9%DYTwR3x9wSb3w3c2bfZkup|72?0SX&lYrK`5SO;g@j zsvEWYVkwUpH03>7R2z8#S9q8U?1wSGy8q3_BY+BTR2jb{flPUiZHfKh3d45G@@-w=|5%Y{{58#yM{BS3_-KOSy0Z06Gb2qaMtqI_kt^iz%HTdRLv`vt`JSi?SV{}qJXXGNa2L622`%!IE$z$gs*C(oim_&xI58q+!I g76*TLqwVSx$oZb&{?-71F7XfNdFX)-|9ABBAMTjUD*ylh delta 4002 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 bp;y!jd|smX_;hx1i|C6#( zY<0Ezu2!?Nvoo{z{LXjIJ@>9O^#ga}p$Ta&exH_|1NgwWE`;VExH-~)l*ShlROmp}vn#u(Tw8W=R}1Ay}D<#7j~Ls38!Aqe8w!~+0e zAu8~-ZOyzl&e?Eaa2jPri{mgH9Mlp9zIG2 zLOKlev^BHyKsa#x`p9{JjuF-JxIH=n3Q;#(FQ{N- zKvQbIX<3(cfZ+8o>$Hq@dIy*8!X<@`dHxsg!&pzX@{thxgC+n1g`b+WO+S_<-a6K4 zch~gFQ4Iips&dXyly*< zW4K;gJcxy$2m>5~7y{Xd1VjY2OT+f6q~>a!o;H_tqd7A@>{YvYUVp&HQ#*-cZQ416 zekc_Ck^o`5ghWBW557KR7r)@mz1CUNH&%6P)*Z>oM3VLfBR&{(@Qd09hKlL8Bmh{C z2jX9pfO=rak>EMyOrFCy(l9M&>hU3=?doapG%6so+UdgdK{H7%`kcY_f<*zKP=e?{ z4OI;|YI^d@TI5G9&#|A{Rl|n-Fo}AUJZNFs?F;~9YdRgoyea@-1jO1vt_(y0QsFRJ zpzPSkaj(X*ryT3CA-lAzr{yZ|r#_hi#;ff95I{ci!MJpwgRp-{>=ye$0C@nLA`j@=>PwuL) zhx{-x76efGiF?r``%8;N1idSXXdpkd-e?uFn zz!aMSj9mM12pMEap#iLj!TEUr6qG;$uQy#JEH&#+rPKM;Q?vGHhW`YtFYL{?H%*rS zh#&1o}gQ;0QLY>{PW{zS6s{>h-C~lS4-2?w*F^j{yMrA6xvO zK?L$7O=2+he&I<2a%<+lS>ccw>j^qZK_t-@OQ3J9q{ z#2^6rJ2(gjLj>aeJQ3!pK*?+v^-vNgq6ILhNfx|26E4?PO=I|TXO5iS1kwNbFzhzQ zz=SAWz3F#hAP>Bi1Hhhmzi8M+`p-)O)#)WBj|SbkryY%|Yahp#i*@Jd-Ei)C#cm&j zfK8f7^)J?&)W|%bn~LSDV!gCH)^qv8bO{Hffm{HPMwY~Qi9GoCd-ePeUbR|5z&Ou6 zeXqAi;n;;|55Dlisl~-p7aK@(tEtfj!+XQmshBR!NWzmu&<_HW0}u&dUG!Ymiv9$IQA_-+0cbE`Q$D5qCKZqwc|Kdznh!i*Fcd9^B4eXa89^Zdrdm}2AeJu* z5d(J&^HW#ru3BhVcXGMyb4L0_Y09$766^Cwh$hUZ$#EcyBEBz)aK4*eb0h>%51=;s z;K|#pxp=JV&Ms*CE4Llpb1#0k_-qB)UT3Sq0FMyf$Ff1J5&FK)u3BL)jAdFB+_5%# z*u_`KEql*de0PT*e!ikSKf-Dz0K{;26a{`{LaY@+4dwYH#4$_^R-U=_TBqrF3;wBF z5AE6g(swL)I7*G=LmB@gqx@8(2*&p!_E{81c~!J>>sbHYmg6q8Msn$MCw^FzTo7eg z(<_z*LtR}!5TF83uVFe6BP@Kia!Vz2Ue&#Y;5JF@>zo}Q{}+B(T3Wgsq3**_nA=+pg+TaWMF7D3AlUHNqt$o) z`lbs68|Uq{y`@ur2X&9ZWKgf!bAS`~5@=B7_Dku($s;4yTxMOd>h+w|k?j$Ba9>5nSwF-v8Lw*I{jbJHhZ0g^w z^jdm*F3Z+alQxfKz3bLo;2*)_hy8}CI>Y|G%vQJG1Mig<&t>bV0BYy5_Pfr^eY^7>xzVD(macxHr?qPSWd7sk#$;fR^#5~r^U-fc zom5Zzs(Cj1&!I7${cJ_)gTqnh9|r@yaw5BCZFS<9zIW!856k)+@gnQyaH3 R>y5*amOrfhaBl11{~r*ETAly^ literal 132150 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 delta 3177 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 diff --git a/Graphics/party/jelly.bmp b/Graphics/party/jelly.bmp index 10e5e2c45cea55604df640a6b84b067a32e8ae46..ebe6bc70b190ba18c57b1495179f0b61aa69347d 100644 GIT binary patch delta 791 zcmaKp&ubGw6vxxBZlY~%x3#DTYhCM3z)PY3fRTb$P`ng8h7@KO%%L61PH%=BmOX3^ zA|>5by!j)s1xrzEL%@qmkXaB9+IBObhl-U_OO>JrJHBb~>Vr2k?|nb>o!yz2ZhF6{ z+_`++PIM$>*pL~yNJ2uZBcaF&qOHqSuN)u_5(mP=x5W+Rv3S&XU(DrQ@n&jCJWPBM zeMc?vE%!$}ugr_);tR2|5{kVCzs2s?9RXYa<)Kev`I=()_Kb{<_K#&Xe=eAqxK%9P z%PKnqlhf0hAJkUsjRtQ(a=tn?0?O9uQ7u@65+ZI-?Qyjq)Xl;4TUl;w_*ptWULgjW ziQ^L&50UkGY5hq*CV{FSEIy$YM#QjK5hm=QnYv$V#Bp^FFg~mRw&Yi9oPQi*Zi?hQ z&Q#NIy>JG$-#rua`WS$%3!TzE@PlVpsKI!WV2?LdeYV^xQ5sh@`LXp&K*nv7`&tDf zqs&7|GRMqBKw_!|bs*Oz*&2?dXH7d<2&o5P&IL=9iPlm>4Efcd!TE~34Sp^SWX-RX z-%%@akPSy;ScRy-5kPVL3aHP6X|KWG7uKl3U!y7MMGH|#3u`)@@>Jf+<|)^`%1lxY zkqvqhG}C6`0&_v!8c+?dL<`N7Z80}byFiPQIZ(Fyld~*O+&scA{F9d=-Hr|Y9nJI{ zlqpdgaHB*lhM@ahOIggZRYY|}ao+Ym=+NEmC9Y#qqC-$(HBD)}+cQa^XIP$!5hZzP zx_2BIPWu`3Oo>SBM;9>(?&d9Q+NQjapPlM?WLQxV6J6H7RAi(v%`In@BWIUyD*J=~ I8x}hL0=BwscmMzZ delta 2341 zcmchXjZ+l&8OL{nCtF+PnjGOsGQM3%g_Dafr^SZa#Arc^9l2^ss8p*FYK2BalBU|p zxpL(#C!zv9?I}h*1e5D!Qy>>_c9c>M6|>sJZlq3^aj8jz}E7mNX@(5$BrBfJYo*@jEH7?HZupZ_oCE~^+hKS+vh+$l? zfGL6n%obR{Y=;F*1#yUTR)8Fb9ETid#F^b>cAH&fM$(Lc838M_)v%0*=74nQbl4*E zGFtU57cFGmSYoqwF0eBBcr&<58-80I4ZPC0pKwkR>NkE0%pMI&^mQaLTCawqA1r% zQS6T*9z`r_#LU1-BymxakdqLX5SI{_5SKB4jAzL370xY_iXs&c(h$_}V2y(|>!c&5 zL+fa+bB2#IXYz>9jIcS=zKzOqHxr+?foe)i$?kZIezo`%75`#C@jI*O#Nrw{zOI^l z6~CoZI}XrskB3gz)KFVP1GTigPrcvmre60Bfn-c|VmQx0htsaORz{>m9N9%Sd1ds z02=m=VHMQK3MmSX3=oFUgBS?h?}Qeiff~heMWGEOAmhyy9HpY;&~d3MsX$YgE4Ud# z!!BGJ&K~HKpcr9IN3%)L2$mjRaEJu{b+gdmpYh1sZwve#cJ^DZ?aaw}{`s1k+S=N^ zd+XjgeE9IOW5*6)ojP^=_#1Bu{6E;tUB7-|)>BXIt*rBUeMh^y`};5U_V!=Ce*L<1 z`Evi|YlE?PJU-CptF6iTI+ zj{T?C$NzArz+Ysu-S4%uXk!l^#O`6kwZ8K{Up2pH55I3;{XS2MZFz2*%~N&b^J{;t zuBzIv#sAkXt{gjX==g4dKhLguqvcLK9*e~W`p^68eMh2KKJVRQG8eXPTIWpRY|afY z2SqW|^m1XE#p1}`*u2S+_;^)c&ygcXd;1mTvjOQZe|)E5m%yK8b80^!W5k|1-w~{y z{;>z7B|g^_4u{S(r6oGol?5VqM@3;r@%OE%<$>UzBOO2DsveA8yL7bPTj`A{0|Nun z#p+st53{RxO2*#^OY-}V`j2$?eNyf5BsxpFZceBt<|jG}%G)9nBz80vXQ$Xs1jolC z!t$w)c{~@c_4w*4yW=r@3}1eEVL!Tk#IAl*de{v2K|HI@oBW(>$GL6 zrC)c;vN(lvM3L6a#N;)Fb04d$+t+)sf4~^#!Qb~+8?)uUd-m&YvA(0;%E~#V5h2%P zYrRRM9r>KIpd?_7CX^RvCp*w=BJ^|9lF~@{*+;#8|GxSjNyqm47wQ`XKEl4}elPrm zuE(@X-Ss~I>_aquFo7#>9~tR-#c8r041^~r5;|CD;$9NYjod8DN+|B2(Ptm;9mF@R zX#5%=X2~uKhRR+^{pO<8!EkfRjAf;2yX%P` z3;YfC>0R4WLgzwd4)fAbbG9wfmK$ix&*Ds3>w_z&*;lun>#)tlNB2*5ZpAY{dHrew5rwU#eSNw!$*Sq{71ku~3z zWJz`ubcn%C)3*uyO?KAi1-2zwX;TvuGP3g5Hw!|bEI)UCifQW9?EH+Ryx$4@5c}l9 z8TR$FR9=Qgr^Lw2gApx}vB z0zbkgZ(Fc%VTyfyLAyE}Dl1rd diff --git a/Graphics/party/sandwiches.bmp b/Graphics/party/sandwiches.bmp index cd989efefed243fd08ac35bfcbf326841065ad1c..e6b373583460423407acb2ebc5c7789a2471797c 100644 GIT binary patch literal 65654 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 diff --git a/data/DataCache.scr b/data/DataCache.scr index b64c740f7..58456426a 100644 --- a/data/DataCache.scr +++ b/data/DataCache.scr @@ -2,6 +2,7 @@ } sprites/sprites.spr shop/shop.spr +party/party.spr scripts/ch1l1_01.dat scripts/ch1l1_02.dat @@ -58,6 +59,7 @@ backdrop/start3.gfx backdrop/start4.gfx backdrop/gameover.gfx backdrop/shop.gfx +backdrop/partybackdrop.gfx loadingscreens/culture.gfx loadingscreens/karate.gfx loadingscreens/monitor.gfx diff --git a/makefile.gaz b/makefile.gaz index d22d9bad3..4eb9231de 100644 --- a/makefile.gaz +++ b/makefile.gaz @@ -49,7 +49,8 @@ CD_FILESYS_LIB := CMXBoot #---------------------------------------------------------------------------- backend_src := gameover \ - complete + complete \ + party enemy_src := npc \ npcdata \ diff --git a/makefile.gfx b/makefile.gfx index 679f3ab22..2e29182b8 100644 --- a/makefile.gfx +++ b/makefile.gfx @@ -309,7 +309,6 @@ SHOP_GFX_TRANS_IN := $(foreach FILE,$(SHOP_GFX_TRANS),$(SHOP_GFX_DIR)/$(FILE).b SHOP_GFX_TEX_OUT := $(SHOP_GFX_OUT_DIR)/shop.spr SHOP_GFX_HDR_OUT := $(INC_DIR)/shop.h -SHOP_GFX_REP_FILE := cleanshop: @$(RM) -f $(SHOP_GFX_TEX_OUT) @@ -324,6 +323,37 @@ GRAF_DIRS_TO_MAKE += $(SHOP_GFX_OUT_DIR) GFX_DATA_OUT += $(SHOP_GFX_TEX_OUT) +#---------------------------------------------------------------------------- +# Party pieces +#---------------------------------------------------------------------------- +PARTY_GFX_DIR := $(GRAF_DIR)/party +PARTY_GFX_OUT_DIR := $(DATA_OUT)/party + +PARTY_GFX_TRANS := balloon1 balloon2 banner1 banner2 banner3 banner4 \ + bigcake jelly lefttable presents1 presents2 \ + sandwiches smallcakes table2 \ + toychest + # leave this as last item - some of the code needs it :( +PARTY_GFX_TRANS_IN := $(foreach FILE,$(PARTY_GFX_TRANS),$(PARTY_GFX_DIR)/$(FILE).bmp) + +PARTY_GFX_TEX_OUT := $(PARTY_GFX_OUT_DIR)/party.spr + +PARTY_GFX_HDR_OUT := $(INC_DIR)/party.h +PARTY_GFX_REP_FILE := $(PARTY_GFX_OUT_DIR)/rep.txt + +cleanparty: + @$(RM) -f $(PARTY_GFX_TEX_OUT) + @$(ECHO) Party Cleaned + +party: $(PARTY_GFX_TEX_IN) +$(PARTY_GFX_TEX_OUT) : $(PARTY_GFX_TEX_IN) + @parkgrab -c- -z+ -r+ -q+ $(PARTY_GFX_TRANS_IN) -b+ -t:8,4,1 -l:$(REPORT_DIR)/party.lbm -o:$(PARTY_GFX_TEX_OUT) -k:$(PARTY_GFX_REP_FILE) + @$(MV) -f $(PARTY_GFX_OUT_DIR)/party.h $(PARTY_GFX_HDR_OUT) + +GRAF_DIRS_TO_MAKE += $(PARTY_GFX_OUT_DIR) +GFX_DATA_OUT += $(PARTY_GFX_TEX_OUT) + + #---------------------------------------------------------------------------- #---------------------------------------------------------------------------- SPRITES_OUT_DIR := $(DATA_OUT)/sprites @@ -411,7 +441,7 @@ GFX_DATA_OUT += $(TRANS_OUT_DAT) # Big TGA backdrops #---------------------------------------------------------------------------- BACKDROPS_IN_DIR := $(GRAF_DIR)/backdrop -BACKDROPS_IN := credits start1 start2 start3 start4 gameover shop +BACKDROPS_IN := credits start1 start2 start3 start4 gameover shop partybackdrop BACKDROPS_OUT_DIR := $(DATA_OUT)/backdrop BACKDROPS_OUT := $(foreach SCREEN,$(BACKDROPS_IN),$(BACKDROPS_OUT_DIR)/$(SCREEN).gfx) diff --git a/source/backend/party.cpp b/source/backend/party.cpp index bcc331fb7..8c86b76da 100644 --- a/source/backend/party.cpp +++ b/source/backend/party.cpp @@ -1,6 +1,6 @@ /*========================================================================= - gameover.cpp + party.cpp Author: PKG Created: @@ -16,11 +16,7 @@ Includes -------- */ -#include "backend\gameover.h" - -#ifndef __GFX_FONT_H__ -#include "gfx\font.h" -#endif +#include "backend\party.h" #ifndef __PAD_PADS_H__ #include "pad\pads.h" @@ -46,12 +42,20 @@ #include "system\vid.h" #endif -#ifndef __MATHTABLE_HEADER__ -#include "utils\mathtab.h" +#ifndef __SHOP_SHOP_H__ +#include "shop\shop.h" #endif -#ifndef __LOCALE_TEXTDBASE_H__ -#include "locale\textdbase.h" +#ifndef __GFX_SPRBANK_H__ +#include "gfx\sprbank.h" +#endif + +#ifndef __ACTOR_HEADER__ +#include "gfx\actor.h" +#endif + +#ifndef __FRONTEND_FRONTEND_H__ +#include "frontend\frontend.h" #endif @@ -65,6 +69,10 @@ #include #endif +#ifndef __SPR_PARTY_H__ +#include +#endif + /*---------------------------------------------------------------------- Tyepdefs && Defines @@ -82,7 +90,10 @@ Vars ---- */ -CGameOverScene GameOverScene; +CPartyScene PartyScene; + +CActorGfx *m_actorSpongebob; +CActorGfx *m_actorPatrick; /*---------------------------------------------------------------------- @@ -91,24 +102,28 @@ CGameOverScene GameOverScene; Params: Returns: ---------------------------------------------------------------------- */ -void CGameOverScene::init() +void CPartyScene::init() { - m_image=CFileIO::loadFile(BACKDROP_GAMEOVER_GFX); + m_image=CFileIO::loadFile(BACKDROP_PARTYBACKDROP_GFX); ASSERT(m_image); SetScreenImage((u8*)m_image); - m_font=new ("game over font") ScalableFontBank(); - m_font->initialise(&standardFont); - m_font->setJustification(ScalableFontBank::JUST_CENTRE); - m_font->setOt(5); +// m_font=new ("game over font") ScalableFontBank(); +// m_font->initialise(&standardFont); +// m_font->setJustification(ScalableFontBank::JUST_CENTRE); +// m_font->setOt(5); + + m_sprites=new ("Party sprites") SpriteBank(); + m_sprites->load(PARTY_PARTY_SPR); m_readyToExit=false; CFader::setFadingIn(CFader::BLACK_FADE); - initContinue(); - initGameOver(); - - m_state=STATE__CONTINUE; + CActorPool::Reset(); + m_actorSpongebob=CActorPool::GetActor(ACTORS_SPONGEBOB_SBK); + m_actorSpongebob->SetOtPos(5); + m_actorPatrick=CActorPool::GetActor(ACTORS_PATRICK_SBK); + m_actorPatrick->SetOtPos(5); } @@ -118,9 +133,14 @@ void CGameOverScene::init() Params: Returns: ---------------------------------------------------------------------- */ -void CGameOverScene::shutdown() +void CPartyScene::shutdown() { - m_font->dump(); delete m_font; + delete m_actorPatrick; + delete m_actorSpongebob; + CActorPool::Reset(); + + m_sprites->dump(); delete m_sprites; +// m_font->dump(); delete m_font; MemFree(m_image); } @@ -132,26 +152,100 @@ void CGameOverScene::shutdown() Params: Returns: ---------------------------------------------------------------------- */ -void CGameOverScene::render() +typedef struct { - switch(m_state) + CShopScene::SHOPITEM_ID m_itemId; + int m_fh; + u8 m_xOffsetBroken,m_yOffsetBroken; + u8 m_ot; +}PARTY_IMAGE; +static PARTY_IMAGE images[]= +{ + { CShopScene::SHOPITEM_BLOWER, FRM_BALLOON1, 0,0, 2 }, + { CShopScene::SHOPITEM_BLOWER, FRM_BALLOON2, 1,0, 2 }, + + { CShopScene::SHOPITEM_PARTYHAT, FRM_BANNER1, 0,0, 1 }, + { CShopScene::SHOPITEM_PARTYHAT, FRM_BANNER2, 0,0, 1 }, + { CShopScene::SHOPITEM_PARTYHAT, FRM_BANNER3, 1,0, 1 }, + { CShopScene::SHOPITEM_PARTYHAT, FRM_BANNER4, 1,0, 1 }, + + { CShopScene::SHOPITEM_CAKE, FRM_BIGCAKE, 1,1, 4 }, + { CShopScene::SHOPITEM_CAKE, FRM_TABLE2, 1,1, 5 }, + + { CShopScene::SHOPITEM_JELLY2, FRM_JELLY, 1,1, 3 }, + { CShopScene::SHOPITEM_JELLY2, FRM_TABLE2, 1,1, 5 }, + + { CShopScene::SHOPITEM_PREZZIE, FRM_PRESENTS1, 0,1, 4 }, + { CShopScene::SHOPITEM_PREZZIE, FRM_PRESENTS2, 2,1, 5 }, + + { CShopScene::SHOPITEM_SARNIE, FRM_SANDWICHES, 0,1, 5 }, + { CShopScene::SHOPITEM_SARNIE, FRM_LEFTTABLE, 0,1, 5 }, + + { CShopScene::SHOPITEM_CUPCAKE, FRM_SMALLCAKES, 1,1, 4 }, + { CShopScene::SHOPITEM_CUPCAKE, FRM_TABLE2, 1,1, 5 }, + + { CShopScene::SHOPITEM_TEDDY, FRM_TOYCHEST, 1,0, 6 }, +}; +static const int numimages=sizeof(images)/sizeof(PARTY_IMAGE); + +static int itemsHeld[CShopScene::NUM_SHOP_ITEM_IDS]= +{ + true, // SHOPITEM_BLOWER + true, // SHOPITEM_CAKE + true, // SHOPITEM_CUPCAKE + true, // SHOPITEM_JELLY2 + true, // SHOPITEM_PARTYHAT + true, // SHOPITEM_PREZZIE + true, // SHOPITEM_SARNIE + true, // SHOPITEM_TEDDY +}; +DVECTOR sbpos={100,100}; +DVECTOR patpos={100,100}; +void CPartyScene::render() +{ + int i; + int drawn[FRM_TOYCHEST+1]; + PARTY_IMAGE *pimage; + + for(i=0;im_fh<=FRM_TOYCHEST); + if(itemsHeld[pimage->m_itemId]&&!drawn[pimage->m_fh]) + { + m_sprites->printFT4(pimage->m_fh,pimage->m_xOffsetBroken*256,pimage->m_yOffsetBroken*256,0,0,pimage->m_ot); + drawn[pimage->m_fh]=true; + } + pimage++; + } + + // Actors +// m_actorSpongebob->Render(sbpos,0,0,0,0); +// m_actorPatrick->Render(patpos,0,0,0,0); +} + + +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +void CPartyScene::think(int _frames) +{ + if(!CFader::isFading()) + { + if(PadGetDown(0)&(PAD_CROSS|PAD_START)) + { + m_readyToExit=true; + CFader::setFadingOut(); + GameState::setNextScene(&FrontEndScene); + } } } @@ -162,229 +256,11 @@ void CGameOverScene::render() Params: Returns: ---------------------------------------------------------------------- */ -void CGameOverScene::think(int _frames) -{ - switch(m_state) - { - case STATE__CONTINUE: - thinkContinue(_frames); - break; - case STATE__CONTINUE_TIMED_OUT: - thinkContinue(_frames); - thinkGameOver(_frames); - break; - case STATE__GAME_OVER: - thinkGameOver(_frames); - break; - case STATE__EXITING_TO_GAME: - thinkContinue(_frames); - break; - case STATE__EXITING_TO_FRONT_END: - break; - } -PAUL_DBGMSG("%d",m_state); -} - - -/*---------------------------------------------------------------------- - Function: - Purpose: - Params: - Returns: - ---------------------------------------------------------------------- */ -int CGameOverScene::readyToShutdown() +int CPartyScene::readyToShutdown() { return m_readyToExit&&!CFader::isFading(); } -/*---------------------------------------------------------------------- - Function: - Purpose: - Params: - Returns: - ---------------------------------------------------------------------- */ -void CGameOverScene::initContinue() -{ - m_continueFontSin=0; - m_continueFontOffset=100<<2; - m_continueTimer=10*COUNTDOWN_TIME_SECOND_LENGTH; -} -void CGameOverScene::thinkContinue(int _frames) -{ - int move; - - // Slide the text onscreen - if(m_state==STATE__CONTINUE) - { - if(!CFader::isFading()) - { - if(m_continueFontOffset) - { - move=m_continueFontOffset/10; - if(move==0) - { - move=1; - } - m_continueFontOffset-=move; - if(m_continueFontOffset<0) - { - m_continueFontOffset=0; - } - } - else - { - // Countdown ( wait for text to stop first ) - if(m_continueTimer) - { - int pad=PadGetDown(0); - if(pad&PAD_CROSS) - { - m_continueTimer-=m_continueTimer%COUNTDOWN_TIME_SECOND_LENGTH; - } - else if(pad&PAD_START) - { - m_readyToExit=true; - CFader::setFadingOut(CFader::BLACK_FADE); - GameState::setNextScene(&GameScene); - m_state=STATE__EXITING_TO_GAME; - } - else - { - m_continueTimer-=_frames; - } - - if(m_continueTimer<=0) - { - m_continueTimer=0; - m_state=STATE__CONTINUE_TIMED_OUT; - } - } - } - } - } - else if(m_state==STATE__CONTINUE_TIMED_OUT||STATE__EXITING_TO_GAME) - { - // Slide text back off the screen - m_continueFontOffset=(100<<2)-m_continueFontOffset; - move=m_continueFontOffset/10; - if(move==0) - { - move=1; - } - m_continueFontOffset-=move; - if(m_continueFontOffset<0) - { - if(m_state==STATE__CONTINUE_TIMED_OUT) - { - m_state=STATE__GAME_OVER; - } - } - m_continueFontOffset=(100<<2)-m_continueFontOffset; - } - - // Change the text size - m_continueFontSin=(m_continueFontSin+(_frames*CONTINUE_STROBE_SPEED))&4095; -} -void CGameOverScene::renderContinue() -{ - int yOfs; - char buf[100]; - - m_font->setColour(242/2,245/2,15/2); - yOfs=m_continueFontOffset>>2; - - sprintf(buf,TranslationDatabase::getString(STR__BACKEND__CONTINUE)); - m_font->setScale(((msin(m_continueFontSin)*CONTINUE_FONT_SCALE)>>12)+CONTINUE_FONT_BASE_SIZE); - m_font->print(256,50-m_font->getStringHeight(buf)-yOfs,buf); - - sprintf(buf,"%d",m_continueTimer/COUNTDOWN_TIME_SECOND_LENGTH); - m_font->setScale(CONTINUE_FONT_SCALE+CONTINUE_FONT_BASE_SIZE); - m_font->print(256,80-m_font->getStringHeight(buf)-yOfs,buf); - - if(!CFader::isFading()) - { - if(m_continueFontSin>512&m_state==STATE__CONTINUE) - { - sprintf(buf,TranslationDatabase::getString(STR__BACKEND__PRESS_START)); - m_font->setColour(255,0,0); - m_font->print(256,200-m_font->getStringHeight(buf),buf); - } - } -} - - -/*---------------------------------------------------------------------- - Function: - Purpose: - Params: - Returns: - ---------------------------------------------------------------------- */ -void CGameOverScene::initGameOver() -{ - m_gameOverTimer=0; - m_finishedGrowingText=false; -} -void CGameOverScene::thinkGameOver(int _frames) -{ - if(!m_finishedGrowingText) - { - m_gameOverTimer+=_frames; - } - else - { - if(!CFader::isFading()&&!m_readyToExit&& - PadGetDown(0)&(PAD_START|PAD_CROSS)) - { - m_readyToExit=true; - CFader::setFadingOut(CFader::BLACK_FADE); - GameState::setNextScene(&FrontEndScene); - m_state=STATE__EXITING_TO_FRONT_END; - } - } -} -void CGameOverScene::renderGameOver() -{ - char buf[100],*bufPtr; - char letter[]=" \0"; - int i,len,step,x; - - m_font->setColour(80/2,143/2,248/2); - - sprintf(buf,TranslationDatabase::getString(STR__BACKEND__GAME_OVER)); - - bufPtr=buf; - len=strlen(buf); - step=(400<<2)/len; - x=(256<<2)-(((len-1)*step)/2); - - for(i=0;i0) - { - if(sin>GAMEOVER_FONT_MAXSIN) - { - sin=GAMEOVER_FONT_MAXSIN; - if(i==strlen(buf)-1) - { - m_finishedGrowingText=true; - } - } - scale=(msin(sin)*GAMEOVER_FONT_SCALE)>>12; - if(scale>50) - { - m_font->setScale(scale); - letter[0]=*bufPtr; - m_font->print(x>>2,100,letter); - } - } - bufPtr++; - x+=step; - } -} - /*=========================================================================== end */ \ No newline at end of file diff --git a/source/backend/party.h b/source/backend/party.h index ef2a4abdf..8b7815f21 100644 --- a/source/backend/party.h +++ b/source/backend/party.h @@ -1,6 +1,6 @@ /*========================================================================= - gameover.h + party.h Author: PKG Created: @@ -11,8 +11,8 @@ ===========================================================================*/ -#ifndef __BACKEND_GAMEOVER_H__ -#define __BACKEND_GAMEOVER_H__ +#ifndef __BACKEND_PARTY_H__ +#define __BACKEND_PARTY_H__ /*---------------------------------------------------------------------- Includes @@ -34,7 +34,7 @@ Structure defintions -------------------- */ -class CGameOverScene: public CScene +class CPartyScene: public CScene { public: void init(); @@ -42,52 +42,11 @@ public: void render(); void think(int _frames); int readyToShutdown(); - char *getSceneName() {return"GameOver/Continue";} + char *getSceneName() {return"Party";} private: - typedef enum - { - STATE__CONTINUE, - STATE__CONTINUE_TIMED_OUT, - STATE__GAME_OVER, - STATE__EXITING_TO_GAME, - STATE__EXITING_TO_FRONT_END, - } GAMEOVER_STATE; - - - // Continue - enum - { - CONTINUE_STROBE_SPEED=75, - CONTINUE_FONT_SCALE=100, - CONTINUE_FONT_BASE_SIZE=400, - COUNTDOWN_TIME_SECOND_LENGTH=100, // Each 'second' on the countdown lasts this long - }; - void initContinue(); - void thinkContinue(int _frames); - void renderContinue(); - int m_continueFontOffset; - int m_continueFontSin; - int m_continueTimer; - - // Game over - enum - { - GAMEOVER_FONT_SCALE=511, - GAMEOVER_FONT_GROWSPEED=150, - GAMEOVER_FONT_GROWSPACING=900, - GAMEOVER_FONT_MAXSIN=1500, - }; - void initGameOver(); - void thinkGameOver(int _frames); - void renderGameOver(); - int m_gameOverTimer; - int m_finishedGrowingText; - - - GAMEOVER_STATE m_state; - class ScalableFontBank *m_font; + class SpriteBank *m_sprites; int m_readyToExit; unsigned char *m_image; @@ -98,7 +57,7 @@ private: Globals ------- */ -extern CGameOverScene GameOverScene; +extern CPartyScene PartyScene; /*---------------------------------------------------------------------- @@ -107,7 +66,7 @@ extern CGameOverScene GameOverScene; /*---------------------------------------------------------------------- */ -#endif /* __BACKEND_GAMEOVER_H__ */ +#endif /* __BACKEND_PARTY_H__ */ /*=========================================================================== end */ diff --git a/source/paul/scenesel.cpp b/source/paul/scenesel.cpp index 3ec1b7eef..25f9e971d 100644 --- a/source/paul/scenesel.cpp +++ b/source/paul/scenesel.cpp @@ -63,6 +63,10 @@ #include "map\map.h" #endif +#ifndef __BACKEND_PARTY_H__ +#include "backend\party.h" +#endif + /* Std Lib ------- */ @@ -99,6 +103,7 @@ CScene *CSceneSelector::s_sceneList[]= &FmaScene, &MapScene, &ShopScene, + &PartyScene, }; int CSceneSelector::s_sceneCount=sizeof(s_sceneList)/sizeof(CScene*); diff --git a/source/player/pmodes.cpp b/source/player/pmodes.cpp index a873b9307..9e9bd1c5d 100644 --- a/source/player/pmodes.cpp +++ b/source/player/pmodes.cpp @@ -623,6 +623,20 @@ void CPlayerModeBase::jump() moveVel.vy=-getPlayerMetrics()->m_metric[PM__JUMP_VELOCITY]<getMoveVelocity(); +// moveVel.vy=-getPlayerMetrics()->m_metric[PM__JUMP_VELOCITY]<m_metric[PM__JUMP_VELOCITY]<m_metric[PM__JUMP_VELOCITY]<