From 8837c2a00f2df5cc56a968996d34f60dc6015823 Mon Sep 17 00:00:00 2001 From: Trevor Boddy Date: Sat, 20 Aug 2022 20:05:05 -0400 Subject: [PATCH] obstacle/stage work --- res/enemies/fairy1.png | Bin 4507 -> 1672 bytes res/fg/obstacle1leftbottom.png | Bin 0 -> 5047 bytes res/fg/{rock1lt.png => obstacle1lefttop.png} | Bin 5016 -> 5015 bytes .../{rock1r.png => obstacle1middlebottom.png} | Bin 5024 -> 4920 bytes res/fg/{rock1b.png => obstacle1middletop.png} | Bin 4614 -> 4917 bytes .../{rock1rt.png => obstacle1rightbottom.png} | Bin 5033 -> 5039 bytes res/fg/obstacle1righttop.png | Bin 0 -> 5048 bytes res/fg/{rock1.png => rock1bottom.png} | Bin 4896 -> 4896 bytes res/fg/rock1l.png | Bin 5003 -> 0 bytes res/fg/{rock1t.png => rock1top.png} | Bin res/player/nitori.png | Bin 4506 -> 4702 bytes res/resources.res | 21 ++++--- src/foreground.h | 58 ++++++++++++------ src/main.c | 1 + src/stage.h | 33 ++++++---- 15 files changed, 75 insertions(+), 38 deletions(-) create mode 100644 res/fg/obstacle1leftbottom.png rename res/fg/{rock1lt.png => obstacle1lefttop.png} (69%) rename res/fg/{rock1r.png => obstacle1middlebottom.png} (67%) rename res/fg/{rock1b.png => obstacle1middletop.png} (82%) rename res/fg/{rock1rt.png => obstacle1rightbottom.png} (67%) create mode 100644 res/fg/obstacle1righttop.png rename res/fg/{rock1.png => rock1bottom.png} (91%) delete mode 100644 res/fg/rock1l.png rename res/fg/{rock1t.png => rock1top.png} (100%) diff --git a/res/enemies/fairy1.png b/res/enemies/fairy1.png index acb061665e785f2235db779882cc9189ccbfbaf1..fcf778777cbf08c3669add0c9d7c22a49e65e212 100644 GIT binary patch delta 613 zcmbQO+`+5Z8Q|y6%O%Cdz`(%k>ERLtq&0w8frA-Hh8LeQn!JT8n2F`nW=`%zCT=5x z5JO`tV^b>=lgXvLN@hrWT>}#<0|O<6irfM#-~5!!v`Ux6l2ltIBLgENT>}eUB&Czj z@>-~*nVBUUq?#n_nx~qj>YA7)8|hl4871i&8Ks(-rKA|8C7Bpa*5s2RPGKgW3ULZI z@<~qq%oplPjP*(i#U-v~C06Absd?Bv(#t=)e#+}7)eH=b44y8IAr`%7CtWORQQ&dq zPgt4r^2h)AFRw_(gnP;dL>-v>b?sT{hXwgUO!Z=`PD(g5L@e9Qby>@Hx_Fn>{H2qw zgm-H>&b46;m~p-9n@V`|JGOQ2KJf7D5iHQXVPlrG@sp1n`71Cb66nMsLbK<%E=g7*?>(TRn3Gb`P3@xfZLoU?xd)FkmLPjVy9R1Uwt3r!QF0I Uue1;S1*RMZPgg&ebxsLQ0OVfTNdN!< delta 3446 zcma)8S2Wy>)Bf!uWJQe@lGQ_^v)bybM~NUILG*6*p0F!Qu&JyTy|*OFs!@Ubmo zObUmydkCFqG*-vMkdcDJ5P?A(JLk~H0of5O^vWC2MJ>@eT(1~!F?gX`2IxLiaK%Qd zR2+hWDEOD=`K63!X=YhNaQG%^kAt$N16jxPf6_t}0S&8iwNH^HAiD>QyU_re$#l*@nt%B=wY?vK$vpz>6}DlWSh3t0UFpwsU$*^$t)09HA)ltv(m1EA%D zrusHOApzolgDndjG%@GwHv)j|N;}L-9M+f&<<42ve#hLRJ}^s0TJ^KRc*OOHb#Oh! zs=a+T>0k#CFF^vJHT>1kH2sH5vT}8Bxha`R_{-{|OV%??^jpkjl2Tb42n0k7?W>>S z8b7lFTP#4$4koecPL@3tdh}f6(=RA6fy@em-I)_UBL?VVX!$TJ zHpK>SG760{J#n!-5bZ>UB(2N%7!+=UCb`iSuo?-yc7QN5Xz0GSktEDfzJ})A z00YYbbFYdAXs-cc*TUliXi$LYaq8tAr&~bQL>$9y0L@GnNtv*l_KO7spebMmWKvGy ziY(z|<7nRHii4H>YIC%C_j ztPVUj&m@n2&VpVQg?L!qR-qMdQ!|a0vOy;sS*e*jm zNyArI?#Erv^PtC2*>`E`!kh|S3VAfQG(uGsvsk*7CyJmhQIpx`!)#QD+&{-okZ%-y znv?@nPQ1^;p@`H0+#2H^(|-VCu7L!e7zW36+f&7S0!-n$9Hzw zRZ2~K+EAh9rR;)u(*?;L(;mZ);X&xLcZfn3gWLBmuz{#ptf6vo*6qBs9P`2(hMmPO z#zrM!Uc(sT#J#zrNbbCj9$8fJ~2yuV9=@5DWOVZGH6nDQUIRrt`?C0dWd%~ zVei3-^@(~g`?-Q@xOK<87(L5_&TE~aowqs_ItA{=J9qBcbV@MxQuPMoW%0InImX1; zFAz)hyh;=z|5^Uim2cgYk4s95OKJ(=k(VQok=zoK$C|@ME)Fj8l3|nH)h^XbE&;=x z!%qp+gls|zA)i1#B2rA_{6Vr8b_P>pjbuHA^*it3L=(j@Kj|x<;9Q=rJ|%IZpGxa< zEUeHOpQ~t?$o<6nNdlHDNraV3K6E+o7JYZ?^>5U#d92qvPj??h-GS6a1$BA*b8P3m zvBJiYPbDk)yrcI=T?W79@2jwl9SrG@&F0PIoNK+#vdzEwHNF(5v)b6-Wqe?KSlm|J zVf0?NsSHDSwyv=zJTOx@l`mINSjL>iH#GG%K;J_xGxwkT%!2Rgm)MJPP>)q&Si2Rb z)j1sHSa)~pt>b(`Ai1JTkt>T+5p3FZ94X^&=MEbyYAO1)_ED@a*)`3rv7>G#aJapN zr`@htJN#FOQOUhA*obecbK$y~gb$7dSM4C=po)Kne@T2vyheP@q)Yh_qs}DBBrT+! zXx`)7lb$&C*+77=)VS28v~;wn8du#OTMmzPze=Cc+=r?OkJ`xc}%1vIm5tC#xLd)F_9Omscc zFTA7nZ|uCWkl2D(q#@Eq;ni{>-u_;Ra?)^`hU7Y)ZyTQVKkR*e)a6fOzN(q9k1?XY z@|n*y$Tr-Yeph!+a9_&U3jGt}RB)`j(>s}R4%L8y-#0;HT@Eo(eov$MJIzqbt}@i>`+onFCO3agT5f*vqWf#w<&Vqd>x4+DQtnjB zE-&03k{y&4%BJn6nYn$!-z)F-X#D*`-gfymVY`rynofrs&i(WwB{z*mbIfkceN3?E zn9Wyj_ZL+zz6jrty(yNtT3X?_OMINs&JIhCFN8gSrfJ;W)hR&YpQ2H|23Ch$P_+?uy45-=I=q|Rlzkg+*^43Z)CbNp$*|_Vb`%OjWpqQHI zs1E3&_l{MirgzY;L9Avs9=l-tdpLHO?)pPR-k=nwU%|}vD51%3PR3B4vL21fRma-<M@;1fz7K zur&P8DI+)oR_0nUvbc{SC!Q0(TOdri%mK72OY+!m<55F3^N z5}^5<^W}l%zEN0+N>J7eYo>5xI5A&J`^~Kv4Iu$}5>ZSE7 zDfnynJ1o0(Ph1>CZqoF3WHe0B%?^YpuAOyIUNHCj1qWm_uX*jX^VaJ86!8(MHTP;B zoL(9B+u$qAeCH<@AZ_VaKN;M&|IF-nZ-&vBLRn_h!i%Lgy^B79TKqJjUg7XyM(%n* z@ISFz)H6MGhr6NusPi3i0d{(JCMClc#yh5mUVXn4m8AFKhZ!5h&A-9)$IB|;%P)_W zDld1uvbOILojbBxt&>N-=3;F)_H9G+bONei6*|ub75}<6kkHM8-~B)Y?YYUfNzr)WIGm z1hbcx7Lt*W5EYV;6%(@&w}V+*TT5|q1R_24^x$e9wth%^cVBHa1+J@%u${9V{J-?a zkCO24{HH=F=`DT^PbUvw4<9EFPq_A#*7o*raCWm-;QD`>J6?+P$$y(#PRjJJy$48B zQN0Li5dZ+0Xsf9h%e>9U&Ui;~+|Zy=dYn}8<5a0&$iiX9a8td7(b`O|kBZ(WPUKpI z(kGXrPGBDW_m*<_q5L@Kku`?-DIaf#$$eL=CUw(Q zBHCulV0ttjohyy^7OU~N$w<4FQ2k^8RZ9&TpJcoAyAbPzPb}F5IkVDw@Ib=0*Hbo)yu9g9M`Q76C81V zANpZWq-1MNM|@+WS++=C-Z6Uir)SoSeGP*!aAGs?P0vCaOvgb5l%&6|bvtD@b1 zp3d+mv5O1sL_qT|YkdGwfyf<XQVPJ~e< zoU2@D0g%uasA7-g+{MYEqYCpY`s_JAx-pqBJz{9>5xc6yBf-mZ4}z!djgxBK;;W|x NwAJ<1z9Ot%{SPD*O1S_4 diff --git a/res/fg/obstacle1leftbottom.png b/res/fg/obstacle1leftbottom.png new file mode 100644 index 0000000000000000000000000000000000000000..09002f0e22a4a10e273d24e31151cc9e6e8dd697 GIT binary patch literal 5047 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 diff --git a/res/fg/rock1r.png b/res/fg/obstacle1middlebottom.png similarity index 67% rename from res/fg/rock1r.png rename to res/fg/obstacle1middlebottom.png index 31e93bc1147b77097bb8e939bade6d3cc0d42e00..916e98a76e1fcfa102ee75b8d8e2f4b0b6043d67 100644 GIT binary patch delta 698 zcmZ3WzC%s1Gr-TCmrII^fq{Y7)59eQNGkxb0|zsZ^a*I4vr+LG7Zcl&&79n+Ozh@X zhDKHfMw3f}Vvw9> zF}aLSb@DkumC5`0ri1A!ekr&^X7g7l8>Cs7q^20A>84o%b(&bFr2#FoG}SdSO92{h zVPa@$IJuHvng!^1v&pmh?IuqX@N*{YJ|%_X64$a4tMZK0JX<9r10y3{0}EY*uT7w4 ziA}B+l$oq9WLt0YLDGhSfzjL3#WBRA^X;XBdD4bFEEn9p4@R-x`uD$F?Cx2mWmlWG zY-?uoytuh?k;&qR6GB?fFAm$nD|O>tg!+;G-=V()4%W?jX|!tZqg9E=g-$bUZ~tyB z#uB^r2H($Gfpxbg3UNO_EL3({)<(Ims&v~n+2`RpkFFh3;7M*jQ~&PIY#sKsG50sE zS{k)}x_4xJ)->~#^OH{PG1;AcdzVh<`)eU>F78(rE=@nU-E<+(WY3kIT^cTn&Gvh} zU{+hyXSjY7OYUXo`C`R-r!!xC-B23odf3Zz>%pwOyxLzo)m`SkRk?C(J$rY@jOQj- zZ|I#;nX*PTc<0w`rrXkrXTH|>nEB!9s&1>#cG?{h`I}F4#;vFqPCMCf?3${ox0~&X z&ChNWoqrq~@?KKoxUZ#GjhLwFUiov$ci2+@weySQ)xEQ84?3xDJEh*B@)uLR(7YD) fhn_#`56REHQM32u8eR!ta%Avy^>bP0l+XkKUS$cO delta 803 zcmdm?wm@C6Gr-TCmrII^fq{Y7)59eQNDBb50S7aX)NkZU-KhACi-|paGbeW{6T5|# zv89!%>Eu#gB`!m=5JO8V14}ET$qRWEk-2Aht(6kZ(o&6$bxq9D40TN`j7)SbOp{Y| zlT%U*4UCcvjSUkmCTsF(DVrLaB$_0dSm-92C8p`78JeW%T3DtU>82zm0TrfMnx~jg zF5^>GGBq_cPfRs7*R@PGG}SdRPBqoFOtLi9O*Kn3N;Nh!NV1r`mv1I9$}0F};NFgRoLbU;d$ONiQY;uL5jDA5zeo20DMt*^nOMY@`ZfahMV_tG&J5{YWt2{E$g(hABJwcC^jzKDj}dE>#s9xaNDDQ| z^h-(Gedp!oT6vD$D`ptJZ!X;SO|quoGo!7WjoHWc&dO+(yzg--hnMd+@2E>$+>&a( z{-XYdm2WIo&0ko5v}(>0+mJYa>EDl6c!q8}pO~Y>WF`D;tD6(MJFm;+Ee}?tE3qB^ zJEd34 zTk2NW)W#$p{%FU~o!ug)^FdQ4wt8y(hO(Pt+gd;8yI#mhyD_bFg`G`K^VgL@&M#(M zF!H`O{c>B*CfB8$o?M%PUQd{H>iuVnzfaH4?8}>f{RjVi@1l^ihZtr7(>;TytDnm{ Hr-UW|XK@~= diff --git a/res/fg/rock1b.png b/res/fg/obstacle1middletop.png similarity index 82% rename from res/fg/rock1b.png rename to res/fg/obstacle1middletop.png index 2be81563f5867b947ace61a74307a27aa263c4a8..ab81cf33e6819f6ae33bbb284ce9384073faf8dd 100644 GIT binary patch delta 602 zcmZou*{U`{oXdfOnSp`9C!lrCM#VB-Gb4i#LrW`DLn}iQT>}#<0|O<6irfM#-~5!! zv`Ux6l2ltIBLgENT>}eUB&Czj@>(jJrI{urS)}Qj8>d<5nwS|G>n52Qrs^i88K#<; z8YG*gS{O~%l)MePOt2Ml}<82<6MY+u!A z61L;#J~o4V(Ko7R=Zgg?zjeLiG{3I-;J;-zZx}i}j5HSr*!%h|hxGB;3_?@7ns@$W zxbq?J6j!4aSN;DyqYZh-avcob_a&%!HBHi}o*lIPfZ~#E(bvxU7PB&LJufA6XTI-c zQ3d9GQ;k#=%2%IfP){o3aXiYrL|1zaV+F%Aj-Z1J(i&IXJI<49Fy(~T9pAm$%&fD7 zuk!9lk)M9ymdRXU?*5Rh`ow)F`X08eSbOp^i|8iDGvd=`L}%HjePc5?d_^{H#=cC} zhOWFbK2NqVT;@5VxOMrXc|02gB9FcGZAe;Tk}Pqmd5d!w!;wof54vXTd$nuhMoFXZ wQnFX38g=YFw*G>oN9y&{>q0L)fB%S`d1dL-3rPX4z%<0*>FVdQ&MBb@0PCje82|tP delta 276 zcmdn0)}}H+oJ)a&nSp`9Wl7hujf!QwW`<@VhL%vvVv{QbBTZAjv(5#2Ow!ZEF~p)bIVI%){|t^3{aO;C2CEWo bXfZJK*fTgPIbP0l+XkKGWJW_ diff --git a/res/fg/rock1rt.png b/res/fg/obstacle1rightbottom.png similarity index 67% rename from res/fg/rock1rt.png rename to res/fg/obstacle1rightbottom.png index 3ade725c73d012e523f48a24badb904738a54aaf..63f74fe08d36a043fcde6dea190dafe4ff76a636 100644 GIT binary patch delta 852 zcmZ3fzFu9iGr-TCmrII^fq{Y7)59eQNGkxb0|zsZ^a*I4vr+LG7Zcl&&79n+Ozh@X zhDKHfMw3fDKpOfKhBnS4%AW%7Q$>0r8wUkdKf z+58pC25A;1sVRnOx@nfiiMl41X=%EN=9Z?qMrJ8yiKZ4NhL(ntEBU2afSxm(Je%Kc z@-zV-S7Mx~q)=SqT2^9Jo{^e|-LnwW#3ok@%1l-lvaL^0(Vfr0z<9{h#WBRA^X-(t z;@J*7E%u74&x_T6{{KIDrQtl`SIvA)!WmYzZ$gZZ9e5SC`l_swjQf}R&CAQ3<~A-h z`X*EPe^VLTf&(56CuJj6$Z8h(i7rNLDDVFTo3c_ep%Yen&-iqw}7wl z_1jsJ%pI1u3h%Emk!YB6bjRc!=NY0JrUlJ9e!=$|!-a#>U0W0nB&@3U*|IO>Z*$^< zuY#W@IlR%nvFrXEgN*Exy0aJ+w>;Uz75x0YsMM@=4HB1hPvupqo}KNGQhlO_Uz4li z#Lb-!f*Fa+3;NoN+j=&{KFx8Q?^~Z1@PYp_*T^`80~xe=<|$g70ogM z)+sNJ_i#OSY~l)Oke)R8|DKv&?L>n*--5LUYvbn}))Se+WN?+4jbYlIEu#gB{M^_5F-OC17o0&u7Qb_fq{}jMQ(wWZ+=Q3Nvf@qk%5tsu7QOv zlG4d%c`Z~@%uO>`42Qp|MCOp;PfEKHLO%?->ZYw~HSn5QI} z85$TE>slrzrs*annWO?0CK~FR8yFjzm?WlJnkE}fF6UEGGBq_cPfRs7*R@PGG}SdR zPBqoFOtLi9O*Kn3N;Nh!NV1r`mv1I9$}0F};NG0gU!jtcXlZC-VQi?IY-VJkYm%Cp zsGDSzoT6)PWNKn&X=G_;nPM=xieHM|(#pWl%G7Z3Y<|1RlLdTSiSeY8LUD;}S&3D7 zMrt1R;DVSYHn~DjM!z5&iu>CWnHR4Xy$V-)V)Fh?=BM9N>NQIPCmmRL_K3u*!?+HQ(*{S?oaTdv*G?KtNlT~QS(JTZCp?meCR zHg4WEpJ`G4hSe7fLz-*DcWvDo?cyHw?bGAN@czzwKOVU&*2QMY$A8!z8hVvk?s=cT zPFk8`T~!n7`RQJVjSP-SoL;>z^p5CV;rCbX{^XxOf41H)?v|jO1zF4dmICt)gQu&X J%Q~loCIEbfGG_n) diff --git a/res/fg/obstacle1righttop.png b/res/fg/obstacle1righttop.png new file mode 100644 index 0000000000000000000000000000000000000000..334a6be8b8affcecafc68fb05d977ca7aafcbc67 GIT binary patch literal 5048 zcmb_f2|SeRzkg8?m8Fu9ra@^LvlwG$82g%S4%10RnU%pTX2u>(p)4(mEKyN}l(nQ# zlAN-&*hQ8igpw^;y05l-?*E?ux#x55ozLf;=Y5~&`+R@f_j#W8jU?Jxtd>-i1OQ;Q zm8Gcz*h0X|P(lp+w;_h7fXy;DBU>W?C^#cEPhJiHlGaQU6C&Ti!Wd#@W`aTDFc=t0 z6A1v8kry4^NRC7Dgqhcq#?}$SIBSl>dI^YwakP-cydrlFNDEVtGaQM?s))D(J+^-1 zI`4`XvM~kFsBoi#8Ib@9jW<0S7}9I$*NVYK1LZoL>Ado3oZH0@DZ%=Hxof`Zh4AYl zwB74JMF5-iFq$gc{KO_hRRd z5I5Akl?2pQ0oS6d+Kqv9834swk6I3(B!Q81L6Rt-4gd#Klr~5UJwyOq`Z;?s!1txv zj3`j7;kZN8@G4-qwPsx;@O%y6lyG%jG?4EKXw;mI;EUuZ1Fq-N>f!*`4}kFEc6pkZ zi~`_#MMla|L}D7Kh_NvH2uNs&Xq=48^MAS5c}s&M0DLT@MfabJBQ0ldxmC5v+2yW( zDptqj2C*${W!RADU5R&edd;$zkAYY%F+gbUYbum(n0bTKEy3%)!gk;f-_H7~I3FEx zD*9`JL0+YZ2oTmdWj0q-c0&;uQviy`qvLOFN~NzBwk*IeJXHajjfDd_hw2~og1I4u z8xJtt5|WcWcgjk!!m|%e&0b!4MC8y^Q9n4^-5NR<6}!A<)p8Zto=~YGRAC%X@4!}> zDDPwgmGN%P`3XOpXqj!%{giCtNek<$yK+p)hT3ycYLZs*>k=%##zr0~8j(&c^8{R* zLsm>1A0U?2tQbkqgyatj)kj2uw|?EnvR}xo0FWy}WBsH7#BB1{P3{|k)b?}hlmX!e z*>I`zpHiMGhyX$fG;uk`Jyc&Iba|UlwM3}ve{^%*abm}MPXdghRWq7qOCphdcuPW!gmNsj;pef464%9DFQ(Alc=|lda>GFeSfHmaq^3z!S$2!9ntz0e;_Ib6~wiwybzkz zkBkfacWsQN))r81h~_+0EWq4YTY7YgqS_WD8d(ADS*CPMcS{T+0iw1Gx@%jU+;s_Y ziTbcLm8*?6ljA-nJy9E$yBWzg)knrB8rP}I%kGTusiIa*R2`@i=~I%6tlE+k>uh;6 z9qXXTT$vqrE4IlLZ!)}PDz^Fwtq{|GVZ>;Sy3`X%o@{{btjsKW79Sv-KW&_;Kvdqo z80Q}q=U|wfs+^v3#W{18Lv^+X$?>|9cHE9Dn%Clg^UP*7?TspUc7YA zaX){{yd$8)q+=)kBHPq2<3ywSwEWDG-Y`(JoL1WcJOX{+qg{udN1G~!E6$-C zn3F|_cx3b+a)rMadF*?)Ps~g1RZ6{EW`T8EcR^|U)eDLjw9r?zC(t?C_8!wb#OaME zo;~e}^FGaG^Yv|BB=-@_^ymw5)!SP$%bG7-@6S+g+0o+h@?OT2ky7h)qh0Ik^sXxl zmM2oF8EbQ6bBe6rl{GveO_OG_E3+Rvp0O#OxSU;U7A`Pu`suW^g{BDJpZN2^?;A2LJTO16%ja_c$oFRt&A<*DGFh3@ohV`14e zHo7&dBJ1hkS!8{pXNp(Z)Tt=&4OfR=FkBxevv}aZ3c{C zGO&N(@WkPX6%!}qZKUj@&E&P^bzoNU&b5Nti}9^Dh Cka9e7a$2%(7u~K3%=CGN z?nAdSUoy2D$J!8HWh|bTqSqHMT=B!=<;AdK_=wF&-zcWtrz5!7ukcxZ-t8kjslA9- zX%%Vpy*d^@yEHQl?pb$#wO=k8Km>GsakB@4ssHMo3$CQ>quHq zF;@{iQ?628^l@Kg(RAJL6nb)_6N`06S%L0f7AGT5CZ4=zvztK~@XkJtcIh~qart~gvuaWN`lo>#?!r3mxsz1X z@@mZs-?`n{(I%O6#hRJse08KY>Ad5`2~8dRjQgd)OXxh$g66)dXz_`Ki3cvmPEhBU z_nWvw*E51^%MwOiPVchc|N4HVzgch8(eolZrEgrhx%<$RG&AxU7?GTl~RThhx4gZkm_8n_n_~nk{EboqHXJ9tP{P7s;7ORF;e*WS4 zo3Ct(Ih~6IJ8lpEe%s!saZT5z_kLwv+dBe+6Iyety8=tCeUG%Mw)6cs6|V;ri!MY3 zrw8NaF147q`i9gl6yLYY%uOF_3>jK{Eha0DA9fjjFFmZX%hOOPZuO%Ra%)`X8fHpc z%#*9jZBwqDd&G4L_}o4d+1;%#CrDq=m~nq2ea&D5TaEv{^CTM1R$*DOhFGUOM{)Xd z{z1t>uL?G^j&vTW{AfC5RUb>wbkCHuw@qmGWI%`n)b=*7kFYa8Mt_0p9&{@E+`BjLP^mf9Li}LOA-nnCzwDlCUToDmc;`&`DMCo> zEMuNEt~=@{{+i$I7ZNdxz+Rd=J74fAwm-A@nbGCVb~HPi`L$w+6Z0n@`(%KxnGmX_ zgDn6AZUq2g7yx_$yM%)P;DZ2wVOIdaCj!6*Zpyvi^uPfG(S~FOwyPx8sqTdmJ&mE8 z^>k53j1<<{lLhSU>RfX@PiKO_iztIpXQF6(_c#Xz`aDs%fd%KRws4Vaqk4yE82Vd347>I}$a}lZvB34fG*;{&G#rVBArN>i z93G8^{P;mZb37UY?_g^F!x;EPfVv9=Ts$1^=jW&Cr=`i^xxtY*91e~^!BHp}h=B0} z*aEUYjLld5$zV$7Q+Z6TfXQJ)mKeztj*ox<1zr6f1B?5Mmd*c>Cop4he=--2)I==B z^bJU({=#v6cwXO()2MK|7oA0C3-}-w`3noC$=3E4{4Z%)tY2upz|0r)=tpdSiRP06 zxOBJ!ozL;%QR!yBpheZ6j&a>N0uJAu^Kat#HT)|YF5ZMkCkr?{5{KjUvr@#LED)5I zCIX^iOQtf}OT62c?EIKQHzf<`1SnWH6byldAu%MR4jzfZBfv*A9)b7{wFRX>BMZp? z6^ufVkT|?H@?XIm8j}(5KSF6#JcGkyk-F zUDaeVX?O%3gT*4XP%yB?!O%Kb1`LO#fEv`HBC&KG6jFyw{W;&1L-kpz;nMu?dZuxx zAjhxF;gNJ25`)2M!?0Qu91N+2ro$*SEE$Hv($FXjmW-h>zQ+!FW6xuPON#9EXVxXJ zXdok*fxuwUI2{;*r1fN&iMA-(h?XL*Pf|(T&`|{PxDIR$6xJ>th=b1>Y zm8lWQGIBJoEB6g#RhYpaq_|wW?yoo<2PV|{LwK4&=F{w32|4}Hm57aJMnz;pR2ok# zd=(y%jKS<(Ujf9}A8%*)L)%3(6f_2}S?ns#_yCxto@}32sT3S`iMe>t-9D|Ntnmh1D0%C_2ga)I z(QDhuN#!yxIP*$|51+G(BhFr#lrJ;C^OAbFrgEl`D3dyRNlHsO0^hl(s~Jed3)L$3 zmnkQV$Eu2J5I2cwZ(0^w*KZgaX0Xj()Y<*);~?nM(1WWT(&UFd2iZd_U95;6CPAa( z`A2I`4X80De{*^NOyZTY+QuErOZ1-Fco)5GKO2_89SRi2TWhuzLze!I!70%DW11S45Gk01TJ`M6*tBLInOINtyO delta 178 zcmZ3Wwm@yebY3$DD*ChD47Bpd3QB&V6`T9_mm>slBZCK)EC8W@;cq;A&aTfwAE lgv!a;{L<`DhfMC}x0~E5AT~KmFp_2QoG;5a9~X>d1OVXFF|+^x diff --git a/res/fg/rock1l.png b/res/fg/rock1l.png deleted file mode 100644 index e9a9d631fc29c4dbb20b361497b1fc66b819b2aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5003 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 diff --git a/res/fg/rock1t.png b/res/fg/rock1top.png similarity index 100% rename from res/fg/rock1t.png rename to res/fg/rock1top.png diff --git a/res/player/nitori.png b/res/player/nitori.png index e36132e269750d6a3d0a9db075e58d065faf78ac..87fa106caea9226d29e0f7600edb6ca73e8d815f 100644 GIT binary patch delta 647 zcmbQGd{1QqJ2w;StIeF;eN1LX1|f#VR)(flCT6+@CRPRpN(vRZ1y;WKDVb@NE{P?n zwn|0@Mn<{@7P?4EC!giDP%$)5Ni{Y!vCvIQHa5^TNj6W>O*Bun&^0i#G%&JAF*LO> zPn)dCw@^c&AS1sdzc?emz{=CvIiM&%Ei(sbZgG&ilY*zKvzei#nVGJUp5f$^e0L>^ zQqrt)G8KwTT+2$V5|c|Z^Yeg86U!zu^2@mrW2F*QZ+S*4P$xFWr|{beLKP)vB<7{3 zrr0X!PhQ9$SMSZKufV{-=Q?~!| z*^+Bj1RFdiH2shLb=$I@JtJk`M+?WkMBiuc@+Oxpn){-vEA!Fkm4Wt*Qt1ruF3Z}k zRX){kaYy)o5h@+-6;*LO1S)%KKm}L>A{wEMuSte ze04Nmr0k5u2v4yK?+U&jT$#K(qWx=-{5x+s#*T@SJ6Mms&brV0K6TlQK%ozl*1!B3 zq2^$h*ECy^rzJn~UE2nwOuh9{TA2@5h!;s%_Ub?N>&Wr@!6@Lh-c6M!rE*TY?$v?- z>6R$|x9%WvMWm?CWVmkE-s+g9X@o{0WbdEB$^|z2MYoO^0NsGjslZv4HyM)WNBu3lUxlUlhq9{lSmIHlPeCNlk*PT zlb#S+fA0)@`~Uy}e@R3^R5*=glihaPFbsn~P-^ShdH)w(<9SI)>_W<4ryCy=I3Ptp z;{6B!|13QJHg;CdPtF@b8@m9!a`yj(2M&0hjCjTOKLSoCPH5kxcLi-b0#1CNzDKDH z{T0W9|2@^dJJAp6BDm8G}Ia& z01XHMLZ1Z&85EGvAZbuH6Y6!l8Obb5kh$_j?|e;5I@~OT;h-f*bP!|%=)PG^7#1Mq zF=LQa8v3x!u&}cdT)RQt;^ygvbK})abp1%qtzG=svS4F} ze-)_9!ol*0OpFOOc3_9$$LF!#BXxIkADb#z4z+7LTD}Ix=M}+9Fz+ea2+TCb=hXnm z1*nR2Q)|*oqQrK{!|7+9($9iQR?C2-0#Jng8d|KV1}LU(re9;P#_Uk>z~A2mjXQ@j zY54i{I$&hP@ah@+d4fuy$K2^pf^$mb9<%Rz4~9wiFZ=^9jJ9SA82NDk0000 -1){ @@ -50,29 +55,45 @@ static void spawnObstacle(bool top){ obstacles[i].top = top; obstacles[i].pos.x = FIX16(256); obstacles[i].pos.y = top ? OBS_TOP_Y : OBS_BOTTOM_Y; - obstacles[i].size.x = FIX16(64); + obstacles[i].size.x = FIX16(32); obstacles[i].size.y = FIX16(32); - obstacles[i].startX = obsX; - for(u8 j = 0; j < 4; j++){ - VDP_drawImageEx(BG_B, - top ? (j == 0 ? &rock1lt : (j == 1 ? &rock1t : (j == 2 ? &rock1rt : &rock1b))) : (j == 0 ? &rock1l : (j == 1 ? &rock1 : (j == 2 ? &rock1r : &rock1b))), - TILE_ATTR_FULL(PAL2, 1, 0, 0, FG_I + (top ? (j == 0 ? 32 : (j == 1 ? 48 : (j == 2 ? 64 : 80))) : (j == 0 ? 112 : (j == 1 ? 128 : (j == 2 ? 144 : 80))))), - obsX + (top ? (j == 1 || j == 3 ? 2 : (j == 2 ? 6 : 0)) : ((j == 1 || j == 3 ? 2 : (j == 2 ? 6 : 0)))), - top ? (OBS_CEIL_Y - (j == 0 || j == 2 ? 2 : (j == 3 ? 4 : 0))) : (OBS_FLOOR_Y + (j == 3 ? 4 : 0)), - 0, DMA_QUEUE); + if(offset){ + obstacles[i].pos.x = fix16Sub(obstacles[i].pos.x, FIX16(offset)); + obsX -= offset / 8; } + obstacles[i].startX = obsX; + switch(type){ + case 0: obstacleImage = top ? &obstacle1LeftTop : &obstacle1LeftBottom; break; + case 1: obstacleImage = top ? &obstacle1MiddleTop : &obstacle1MiddleBottom; break; + case 2: obstacleImage = top ? &obstacle1RightTop : &obstacle1RightBottom; break; + } + obstacleI = type * 32; + if(top) obstacleI += 128; + VDP_drawImageEx(BG_B, obstacleImage, + TILE_ATTR_FULL(PAL2, 1, 0, 0, OBS_I + obstacleI), + obsX, top ? OBS_CEIL_Y : OBS_FLOOR_Y, 0, DMA); + + // VDP_drawImageEx(BG_B, + // top ? (j == 0 ? &rock1lt : (j == 1 ? &rock1t : (j == 2 ? &rock1rt : &rock1b))) : (j == 0 ? &rock1l : (j == 1 ? &rock1 : (j == 2 ? &rock1r : &rock1b))), + // TILE_ATTR_FULL(PAL2, 1, 0, 0, FG_I + (top ? (j == 0 ? 32 : (j == 1 ? 48 : (j == 2 ? 64 : 80))) : (j == 0 ? 112 : (j == 1 ? 128 : (j == 2 ? 144 : 80))))), + // obsX + (top ? (j == 1 || j == 3 ? 2 : (j == 2 ? 6 : 0)) : ((j == 1 || j == 3 ? 2 : (j == 2 ? 6 : 0)))), + // top ? (OBS_CEIL_Y - (j == 0 || j == 2 ? 2 : (j == 3 ? 4 : 0))) : (OBS_FLOOR_Y + (j == 3 ? 4 : 0)), + // 0, DMA); } } #define OBSTACLE_MOD FIX16(8) #define OBSTACLE_LIMIT_X FIX16(-64) +SpriteDefinition* obstacleImage; + static void killObstacle(s16 i){ obstacles[i].active = FALSE; - VDP_clearTileMapRect(BG_B, obstacles[i].startX, obstacles[i].top ? OBS_CEIL_Y : OBS_FLOOR_Y, 8, 4); - for(u8 x = 0; x < 2; x++) - VDP_drawImageEx(BG_B, obstacles[i].top ? &rock1t : &rock1, TILE_ATTR_FULL(PAL2, 1, 0, 0, FG_I + (obstacles[i].top ? 0 : 16)), - obstacles[i].startX + 4 * x, obstacles[i].top ? CEIL_Y : FLOOR_Y, 0, DMA); + VDP_clearTileMapRect(BG_B, obstacles[i].startX, obstacles[i].top ? OBS_CEIL_Y + 4 : OBS_FLOOR_Y, 8, 4); + for(u8 x = 0; x < 2; x++){ + VDP_drawImageEx(BG_B, obstacles[i].top ? &rock1Top : &rock1Bottom, TILE_ATTR_FULL(PAL2, 1, 0, 0, FG_I + (obstacles[i].top ? 0 : 16)), + obstacles[i].startX + 4 * x, obstacles[i].top ? CEIL_Y : FLOOR_Y, 0, DMA_QUEUE); + } } static void collideObstacle(s16 i){ @@ -118,5 +139,4 @@ void updateFg(){ VDP_setHorizontalScrollTile(BG_B, 0, fgPosX, GAME_H_T, DMA); scrollFg(); for(s16 i = 0; i < OBSTACLE_COUNT; i++) if(obstacles[i].active) updateObstacle(i); - if(clock % 60 == 0) spawnObstacle(clock % 120 < 60); } \ No newline at end of file diff --git a/src/main.c b/src/main.c index 2184241..d2c3539 100644 --- a/src/main.c +++ b/src/main.c @@ -15,6 +15,7 @@ #include "stage.h" #include "chrome.h" + // game loop static void loadInternals(){ diff --git a/src/stage.h b/src/stage.h index 7c746e7..eab6cff 100644 --- a/src/stage.h +++ b/src/stage.h @@ -5,25 +5,24 @@ // waves -static void waveOne(){ - +static void waveOne(s16 off, bool big){ struct enemySpawner spawner = { .angle = 512, - .speed = FIX16(0.75), - .x = GAME_W + 24, - .y = SPAWN_MID, + .speed = FIX16(0.8), + .x = GAME_W + 20, + .y = SPAWN_MID + off, .image = &fairy1, - .offX = 24, + .offX = 20, .offY = 16 }; spawner.fixes[0] = FIX16(spawner.y); spawner.fixes[1] = FIX16(8); - spawner.fixes[2] = FIX16(12); - spawner.fixes[3] = FIX16(0.1); + spawner.fixes[2] = FIX16(8); + spawner.fixes[3] = FIX16(0.25); void updater(s16 i){ enemies[i].pos.y = fix16Sub(enemies[i].fixes[0], fix16Mul(sinFix16(enemies[i].fixes[1]), enemies[i].fixes[2])); enemies[i].fixes[1] = fix16Add(enemies[i].fixes[1], enemies[i].fixes[3]); - if(enemies[i].clock == 30){ + if(enemies[i].clock == 30 && enemies[i].bools[0]){ struct bulletSpawner spawner = { .x = enemies[i].pos.x, .y = enemies[i].pos.y, @@ -31,13 +30,19 @@ static void waveOne(){ .angle = 512, .speed = FIX16(1.5) }; + if(enemies[i].bools[1]){ + spawner.image = &bigRedBullet; + spawner.big = TRUE; + } spawner.vel = hone(enemies[i].pos, player.pos, spawner.speed, 0); spawnBullet(spawner, EMPTY); } } for(u8 j = 0; j < 3; j++){ + spawner.bools[0] = j == 2; + spawner.bools[1] = big ? TRUE : FALSE; spawnEnemy(spawner, updater, EMPTY); - spawner.x += 50; + spawner.x += 40; } } @@ -48,7 +53,13 @@ s16 stageClock; static void updateWaves(){ switch(stageClock){ - case 5: waveOne(); break; + case 0: + for(s16 i = 0; i < 8; i++) + for(s16 j = 0; j < 2; j++) spawnObstacle(j == 0 ? TRUE : FALSE, 256 - 32 * i, i == 7 ? 2 : 1); + break; + // case 0: waveOne(-32, FALSE); break; + // case 180: waveOne(32, FALSE); break; + // case 360: waveOne(0, TRUE); break; } }