From 4946dd8b92f019e369fc07b42d5c01f29b05fc86 Mon Sep 17 00:00:00 2001 From: Trevor Boddy Date: Fri, 23 Sep 2022 10:21:36 -0400 Subject: [PATCH] now its a different game --- res/bg/1.png | Bin 0 -> 2363 bytes res/bg/wall1.png | Bin 5515 -> 0 bytes res/bullets/big.png | Bin 0 -> 5024 bytes res/bullets/bigblue.png | Bin 3073 -> 0 bytes res/bullets/biggreen.png | Bin 3067 -> 0 bytes res/bullets/bigpink.png | Bin 3066 -> 0 bytes res/bullets/bigred.png | Bin 3075 -> 0 bytes res/bullets/bigwhite.png | Bin 2989 -> 0 bytes res/bullets/bigyellow.png | Bin 3070 -> 0 bytes res/bullets/huge.png | Bin 0 -> 5367 bytes res/bullets/player.png | Bin 0 -> 4850 bytes res/bullets/small.png | Bin 0 -> 2958 bytes res/bullets/smallblue.png | Bin 2866 -> 0 bytes res/bullets/smallgreen.png | Bin 2865 -> 0 bytes res/bullets/smallpink.png | Bin 2870 -> 0 bytes res/bullets/smallred.png | Bin 2866 -> 0 bytes res/bullets/smallwhite.png | Bin 2835 -> 0 bytes res/bullets/smallyellow.png | Bin 2869 -> 0 bytes res/enemies/fairy1.png | Bin 1672 -> 0 bytes res/enemies/fairyblue.png | Bin 0 -> 5929 bytes res/enemies/fairygreen.png | Bin 0 -> 5928 bytes res/enemies/fairyred.png | Bin 0 -> 5927 bytes res/enemies/fairyyellow.png | Bin 0 -> 5951 bytes res/fg/obstacle1leftbottom.png | Bin 5047 -> 0 bytes res/fg/obstacle1lefttop.png | Bin 5015 -> 0 bytes res/fg/obstacle1middlebottom.png | Bin 4920 -> 0 bytes res/fg/obstacle1middletop.png | Bin 4917 -> 0 bytes res/fg/obstacle1rightbottom.png | Bin 5039 -> 0 bytes res/fg/obstacle1righttop.png | Bin 5048 -> 0 bytes res/fg/rock1bottom.png | Bin 4896 -> 0 bytes res/fg/rock1top.png | Bin 4905 -> 0 bytes res/fg/rock2bottom.png | Bin 4907 -> 0 bytes res/fg/rock2top.png | Bin 4911 -> 0 bytes res/font.png | Bin 3830 -> 3460 bytes res/player/hitbox.png | Bin 0 -> 4579 bytes res/player/nitori.png | Bin 4702 -> 0 bytes res/player/sunny.png | Bin 0 -> 5749 bytes res/resources.res | 46 +--- src/background.h | 32 ++- src/bullets.h | 36 ++- src/chrome.h | 46 ++-- src/enemies.h | 2 +- src/foreground.h | 159 ------------ src/global.h | 2 + src/main.c | 10 +- src/player.h | 79 +++--- src/stage.h | 403 ++++++++++++++++++++++++++----- src/structs.h | 6 +- 48 files changed, 457 insertions(+), 364 deletions(-) create mode 100644 res/bg/1.png delete mode 100644 res/bg/wall1.png create mode 100644 res/bullets/big.png delete mode 100644 res/bullets/bigblue.png delete mode 100644 res/bullets/biggreen.png delete mode 100644 res/bullets/bigpink.png delete mode 100644 res/bullets/bigred.png delete mode 100644 res/bullets/bigwhite.png delete mode 100644 res/bullets/bigyellow.png create mode 100644 res/bullets/huge.png create mode 100644 res/bullets/player.png create mode 100644 res/bullets/small.png delete mode 100644 res/bullets/smallblue.png delete mode 100644 res/bullets/smallgreen.png delete mode 100644 res/bullets/smallpink.png delete mode 100644 res/bullets/smallred.png delete mode 100644 res/bullets/smallwhite.png delete mode 100644 res/bullets/smallyellow.png delete mode 100644 res/enemies/fairy1.png create mode 100644 res/enemies/fairyblue.png create mode 100644 res/enemies/fairygreen.png create mode 100644 res/enemies/fairyred.png create mode 100644 res/enemies/fairyyellow.png delete mode 100644 res/fg/obstacle1leftbottom.png delete mode 100644 res/fg/obstacle1lefttop.png delete mode 100644 res/fg/obstacle1middlebottom.png delete mode 100644 res/fg/obstacle1middletop.png delete mode 100644 res/fg/obstacle1rightbottom.png delete mode 100644 res/fg/obstacle1righttop.png delete mode 100644 res/fg/rock1bottom.png delete mode 100644 res/fg/rock1top.png delete mode 100644 res/fg/rock2bottom.png delete mode 100644 res/fg/rock2top.png create mode 100644 res/player/hitbox.png delete mode 100644 res/player/nitori.png create mode 100644 res/player/sunny.png delete mode 100644 src/foreground.h diff --git a/res/bg/1.png b/res/bg/1.png new file mode 100644 index 0000000000000000000000000000000000000000..996286565ef054211a948f7edfc1a59567f8dc8c GIT binary patch literal 2363 zcmb_e4^R|U7(Y_WP_WdA!9Te!GpXp_{ySK9y_59rgfk8pyhfY~+1uSaR_=Ds-97Gr zGP6=F!OTH(6it~?CrNTfL1e@L?^5{W z(WAyJnU;DzHRDd>xbhE-Q)eHVy}5RB-5b>a^mHJ7wrViMHtSDR<;2*L2E&sLqAOR+ zb!IS}>^HK!>=uk+e*mBj26JjSz;cCx2Dt^VC|Tf+#=S5k@)mejk`r?VtU`g9UZMyy zOEO(tNg+q`aOxDu9A@uLQ52G;D1Zkkc`kwr1QlPGbDl#5pWqiHO$Asyf(;bNnyePc4>28? ze!v09tYLTHvI5R==)A#4gwBOZ)0 z;Zzb%;ACWdmLh^GWPOiqN3Ts?Jxsc&f_*LSDV~|ayq=y>2`Ry55c4Cg3G<9|;o3lmc#>^DA!5Fc_k4 zIc!s1xnGp8YE_z{!PcaNd-tdtV^8+Kn($rw)#NDOJII{umn#qLyjy#zooZ@oSD$FO zbFj7T&n*Fuy}5J#@Q?GF&t#pwwrIiO?Fn<%&sU>2hi5yX(L! z!Ls_lwj|G2HdebCSS#$3Gj{({EVSMfOH{O*H!=#e#zJ63PV8n~%_RHDaQ zGo^Gx&AxL@XSwyqmM4Y}Z%>m(Xji_Rd*NEcn*HUX#yQ^p;Y7okqN?bOb-CXr%{rBK zVr(KZ= fD)0SLvF&JTo6k&_1zW51FBXSA)3$9|{=&Zj;rK`A literal 0 HcmV?d00001 diff --git a/res/bg/wall1.png b/res/bg/wall1.png deleted file mode 100644 index 45702683d3d7f9fc8aa614df3ba439e2c0e31999..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5515 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 diff --git a/res/bullets/big.png b/res/bullets/big.png new file mode 100644 index 0000000000000000000000000000000000000000..31287fd917c31435ef0f33469c5954c513d56c20 GIT binary patch literal 5024 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 uvSs1T#D?TxS-N%K;eP>N6foHU literal 0 HcmV?d00001 diff --git a/res/bullets/bigblue.png b/res/bullets/bigblue.png deleted file mode 100644 index 013a853ec410fdab040e4c1843d97f5e8e67b311..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3073 zcmb_edyHIF8J|i;T3A^iNMX}(ohGKOJ#)`F_uR+1>9pJKEZr^4vTirAXsn*sogF$e zcbu7hYLS$pl0d@4G*PO7XafOCg9J#iXygwq!KjHzeQZ%|lv0UGECl0&`rVn?>0-KL zL!9K!J@?-4_xs-8Id_eYZ0lKh-O5xd)iXSl8-sg4T)mfE1poK(yZYdUM{gP*g!{F< zYi~F_`0(*N2RF@3>38oS>%R5k>nC>H`1^Zik01HM>0dqk(bA2-Fvku*cI551-uS@B zO9|PE>d-CqRO-^Jl51J&8wXaUQY$wX$9Fb%=5GpBT+Rp`OOu%?S3x?J+PHb9D%5V% zu%syzE7|m4zxRW*Rn*z^C*3^GR|m{QacHh)cFc{8tGV5Z>-6SL*2b9-2+F1*teJAD zQV(ac=_YRo>*TeawwfZ1-P!b(M4`1aKWYucHDmc1j15oI8ME5IG^nfTC>+b(&{hUd+4MxCQ4MW-dU`rD?PTIw!6uw@8&jK71QMt|TWN?H zRH?67V91%esuin^VqCEjMj_+LMm7zmwtOg8JG7O0J5CTWdqz}klEH~jO~L9!+=%NF z@e<;l&+h?g)giA=)=Eu_wX#jglue~k2U*fl0I|*IJL2cHrCjbv*BgUV;6^(j=asIH z&sL2+X6o@|O_{+d(6}b?rWy{^jA+EQ@i;CmWNLK5J&V!|v)1N?DpnGQ*DZpWoM@PA zI>{TtE^^2?VId_U!3eVux|?-7o5F`E6KqMh)D192&? zI&=t*JVPB6Y041Ou8)Khct{&*Tu%|7ac=>ii`8V3&jjCU z2pucnIA@%vsbWI8h~p?gk}-k=77TfT@;#Sx%>uQ+c5|%=Jt<0ySre-?FcQk8!<2(m z;9|s_$VJk@1W_Xb=?d2cvZV0OXb3l&c_9Qb_@UaU~Ko;)wdh@o3}v5*%@-P2L_Z82PQb9pgTxPh6Ri%sA-OMv@}{U*Wo?^G$s--frA1W z2}Cs%fbV-aB3&#OOiJM?jXWbE=8nfv&}=Q&4_wb9lH)EJ(@e2IdK&pb67z^d#vBiH zd%~walgd$xW8SRzR>RocI|~{K=E+bo>9pB)hwLz)@AQh*9NVE#$##@Yt7Hxvoo>G_ zo@WkSP{+6N(-Q_ryG-Yn_IeyOrbW$cDZtFSfcbAPWqw^ubvHhM3*q!rke*aH* zng!abGyA_wu=#D#AqbM$d<7?~WZ5~>!9(X%Xetn?8l3s|TB+Aksbw36b6duPdnO;4 zzki=~*#{qV#-e|njSrq2`_Z1%)l<=##cuDYdvdyn;vJkJ6|8^OCSB| z>Z2e2?1|g2yZ!WEo_l zu6gtN(TI;+x$51E?h}0Ep#J;FpB{Pj&!73>vG4!x#7AyDN~$NrXHT7&`|{bB=SS_y m>+hc5^IduJ?aDis{`1f``yP1Zr9H_(dw6gp_vF^k?fnnLO5s5O diff --git a/res/bullets/biggreen.png b/res/bullets/biggreen.png deleted file mode 100644 index 1fb50a0f10f9c67d4e97bef4f02fb5fdd4441888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3067 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 diff --git a/res/bullets/bigwhite.png b/res/bullets/bigwhite.png deleted file mode 100644 index 98d353a84e1409413ae3808410113b41bd381d8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2989 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 diff --git a/res/bullets/huge.png b/res/bullets/huge.png new file mode 100644 index 0000000000000000000000000000000000000000..3d1f439e7e7b04e0002c850f09eb0846ba954125 GIT binary patch literal 5367 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 literal 0 HcmV?d00001 diff --git a/res/bullets/player.png b/res/bullets/player.png new file mode 100644 index 0000000000000000000000000000000000000000..c7dcf0de6ea2fcc5597b44db01d71d0758424d70 GIT binary patch literal 4850 zcmb_f2|SeB-ygDsvX(WBDP);_3^S1|W68cG3N^b4Gt(ES0?Aeay#z0G)2^x+;qrnIW z900KB$Vm-wc77@y-P;@xoc{>M>v-W+(=UL5kYrCBK3(qQ{%xX2RE7K2aRd2mg; zwlID8hJJm_eN6F9r(weE?vM4>D(3fMs$xWt4cXcfqmngd7hx${6dtsgRe0&ohlay&)Ab z`FPs_YFZhc)W;qJj*m0$>;Xv6t-B${pAX=0^{Be~pHV0z;!COhrr#pt@QV>#u-r-m zRlH*J(oEI*fIQ%2ckHQ~iud0;+T<1a=)DiyTAsx}Xcsn?Khdm6{`qF0m! zH~f?YjIsko^V+3w=VPzOby0Yno zRURG-Ud;r-Uk@ox0!&T{lt+M>eDq%wRwBj4gwiHIpUPP zpu7>%i@(E2U5~#f((1MRZ612$+R0tk5!92?cLYSl`S2c3VgdM0W!PNMa2} zE%xHOgzg&)iHk`Z2lY`(WHlp8^Mgy|J}Y5`a-u5_MfQ1k?Z~_k9{uX>cI$IDswK<$ z720=j?VUAweT2z-N1!K4cH#8d7TxszOZ5BZ{iW+67mHXWkEac@qaWg zNC-TCrQG~tg77sS8m=+%;2Sl>#cm+OL3S5E&Rnj*$04`GewRp{K%LT&bERgAW`0+L z9dsRtC2oV}D7lK5A@h-|&3zJ+d>rXUagVcf<6DK$0!E>FUlm+-$Iim|nzld!2yU5P zmoC|T&|2Z$9*Q{faz;C$X2CVATyaRb>z;6R)HBU#hiSKIaev-50rPt|UUxHRZ|~nD zmUgA=7sb0dcXy7dofZkyxTE$;VD1Waf<0ffViu~qfeq(vJ(Qs4B{jWW<@~-jHDlHM z6lUUl#C(#)zEX*b*t4dP(|c=@0^>Qq z+!*hGc9Q1`N;&U1lJy>EQy}fsS}1ByC6h^MofkSOT|*CZQx%I;P~c1%aFom81GWm+ zn~xX#e2*qX?Oax^u)2`i-33lz|1|M%cV}Ja%hV8cyR?90yVOzDQH@P|o}#P8;w1@1 z)hEUZ+PWRzJB}2U7vZd~K%0xVYrWSH(5O73U-GO#RS)Gx7V%^H<7F6nVg?d(s1;q9oy6DxR$$jnM?7|PxaaLY5tY| zmzK9F)?SY6kGiae-btd+?<~aCL5!XMtz@E59(;QOCTpR=YEO0N<0ozaYI} zvhaO!SUHM(z3gSV{h<9W#T|>Hfd_7cO(w zT-UZO7mAjOT1N{+cU*pd*{4IT!&2R&cwcd$ZEucE_G-^e&msg3`QYBu0IF1~#8qyi zBk1|`C-f^Xp1hEHar_0dESN)vL^>^R@H++b3fDB%XqHgBlV&9G;a_ms~Gt zNTF+eD$kCokAcJ~c@{NmhCE4mB3$O=l6N^V4*wuK2G?<+Ln$__cZrII{WgAQ{L}=+ z4N~4*PW3VO$An}OJ2WP&AB@~jyKkrZOm*5e-IilfZjn9K$SiAsCg~@?PkNX9C0R`M z%wZurn$`WH2iJ4obj~LQHPe2j4bvj0K2JqW6?*#&O}inxK8@*;56P7w8u^_2d!1YD z&2QuMQfYZ^$*XEw+8<2oIcR8;p*fTq(nG2YnZ4!h;O*uevf#Xkej8uGK6bQK>6r4Z z7HZ_@3+Hx9DHx!YUYS1o>CRMfX!3gP`q8X*-2j>WyM44}N5^Z5itGy#PUzJ>@%Mg- z9z@U9pPhL(QdWOPn;_!>Mr%~=4?oeS+3-1jN;hRR^tnVU@#% znq}JC)cCpOk(Um(P^jjaI(15K%0=>SzYw92s1S3lFs-IiRH?s9bCqp*i^qifW0x}5 zre^G)JI3hQ<&Z|gYUksGeO_GSKb z-h_d=topGtee3!4IRl=9JbrID-TrF+m;G`6J9C!~4nOuCdAU*8emN+mmBusLMV$wjO9_-TOsELWcgkz_O_OQbXWs(pr&7m~9vpI^uEA@BX`A zJImtAa-M2e`7Iq^y0uCA=(HB`_E3jk*#{5Zat22XqO6a61LJI5|M1A_)*ZS>Q}g)p zYv$y9PU2)@|AFZPP61A{Ew|Hx7-Jg`1SbV?Vns?W`i`N4^EYREeG5|yi#yyqJ}V0v zwix!vpINqg0G(48&P~X3wl1|s+hy3~Wcuf|eB``+97~<*m8J-vN!h4dZs=K54ri}d zoIw-($N4w!7mr$b{@SX)bZWRPw;`gzyvpeWv|FY*@eF$fJmEXqG#`*G;x<<^r)4-9 zKDjZu`0;M>pk3Yu|F-nSbwZ|NUzz+rhygvy5 zVABBr8D@5)gFbgc#opQ($8Fz_&4-_k(uE&T+@l<8Y`AP_{iR7gJ^^Cn*5y`Qb)Y`1 zkP8xGTDY+R0MUC}H&2R|r~&{W&_Hu`<+$2dV~Gr32%f|skRgG-OfDJ#&^HWZ;)&j5 z4v;{m(&z@Dxu#YSkVY~99o4ac*)UDWUNnnf7TGD-)|nXWO~jBuh6jQAfmp5rUor;| z4D|J(v$25&ps#wd-2T=u6a@SV;dmQ>jJ6B{U2W`vCJYuCs0)FEi7*%psEdJ+@B}=O zK+pyvUFRG#9&b<;I|9JHOC@Ru#To?-;8nJ3_xBS4igK71_T5^0+0{} ziwcEfFc>Hd0YxCdTm+aMMCafG!F2ZC?;1?WY$A)s)t(1`WhBp>POnE2ghN67dI)>BsWBZnM*j|jkh~vlfk7$@! z6BZfIVX&MT44?0nvj46Hh(JPM!2LFOB8|SKS7Xc0HxaTaoL$Yhatdl3W@+n zz$qk>9_G8eDTC;@Rm1P{B(A)k4hc&t{SUnO1IA`h zI01MT*@((b_upV1^sn4!08|&rwRAv$9Y7ib2G)_o;H5Ok`(}eN5|6C$l0P}W~l3O8*B%^ zJ!AIK<|bV6IW`<^I-9kz5mZelXtB((Z`pyNA}4@hMl z3Y8Wb{#ZeUxFk3C+aa1mSK)A``M#D>t=>>=@Q4|))Im0%a7{GM{xnJ^SHkVNOLyB| zQk-Xics}U-#potbutDTTDE$SIxrkp-S9Dc~qME(0Y9FD7vR)d=?v*<5vhkG98+RVr#`#wqu z!%1pNKbArr{FJiD|B`y0YMy@}{?_E3d*!t{Kl@usKaPIRs<`yhpqXmg@7Dh|x%#-( z^X3~zNu#~c?Y+pG+gL|DhA9=9)}sJhgytd+>U;#+6ECC=8g J()i@L{{nng`hWlc literal 0 HcmV?d00001 diff --git a/res/bullets/small.png b/res/bullets/small.png new file mode 100644 index 0000000000000000000000000000000000000000..4f1ad16ba8c050ab64f7824c1aebceb55a90e3af GIT binary patch literal 2958 zcmbVOO^6&t6rLc6CMtp#BZ_TDh=Mg;RbAcH)yWulcUCiyiJRRK6HrL~^=_M;>2bO@ zy9xeb5Dg;H+!POjh^Y93Xgr8`h(s_%1aCPgiWj{Y5CV!pU(d`=63LDs13g{c{l53U z_gAkD&+L5Q`t`T0uT(16H@4Sj;qJh7<26^o|9wBav=44~%o->_>t9S; zyNlh;9kI^ZRcSJ1t1Im;NLMObx2<%g-e(I(+4;0nbASK*OV>$F&3!m%;%0ZsE~MKJ z_Uzojoh^NEpBBd5cCWK_B?bj;TS#Z6z1Yd)m73ev8^gMM?YT~0q}W$;CrX3P?&gd$ zmG!K{s|0C`vBO2xNF}vW_c#<&;$h|yhA@tO5i{lte=eBonIxXA-#;`4Pc?U;D7vxd zEiW%um;GwioA-zi!o$>~6oCZF4|EE-f;#!8RSk8U>t5O|(yZf@8l}pXikb^l2R^jB zBek7;7$=CBw<5b9sp8V7zF>DDE3$kcTSI*G`67_fBjw$t-eRAz(VktjZQChwkR>An z5Zh*RBz{RQ?e<7IFQ)f{8^eHHQaW!P=vr^q=GjtD+v)vaaZ~9{H=gQQS!BIdmMyMk zYG&0vhteu@?rKV%c1nluz5rtDvamI`%p1Z1@=1%Zn35P%gjtO7K(q;^U}Paj!thlf z>bGzhlQ8x#7S2qX9Qa?+QF!C2Y%%LKGgI<#o%8P-Q&Tg&EJ+vPLq7Y!q|=z53W*3q zM61MgjEzQ6E^I75t4Pi13I?j_LzR-qaA1N*j{4t6mN-!wrijagbWe33n zHV^hv=t;SFq1KX>0gXWvO3ZDDFbynXoJL3_0wYX5_gz>WQ&s$#AG6DYOkn?=l zSd(&oxLQo_y>il9y|Sl3#h_hbu}T#OKH=0bBuq)wYKo+_99gacZH4dS#2kPIx5&~}_iGX^aHKrlg)Ckgl+MMznzz>$D*N->X&S{of0MKtFaS(8Ah(cllM#f)hYvq5u>5C{l?;)Ib4n9^!|Vo+ZVy?AeKV*#9nL zmUwH?&*lE{7aXV{nf+IAN-LM6 z^C3KpPMEd>k?O(u@uA)CU^sg|(Wp(;g6h? zz1dGssiVhgkHn|>dwg!)`^SUNHnH{i>J!hL-23##gGbLE&L0csmacoZvGuJ_<~~04 z*XHA2@7eYImNftM4gST(b>C&*Uj62oUt0g%+5Iv3{z&!y`cdcSKfgKmD1G6`9~+KN WZ)i`RP_LGU;KuaM`UjJHpZymesiE@# literal 0 HcmV?d00001 diff --git a/res/bullets/smallblue.png b/res/bullets/smallblue.png deleted file mode 100644 index 6bfb0756c15a126eaa0343c88fdef8a89c97045f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2866 zcmb_eO^6&t6dt2Oj06=u#6M^|K}@u!tE#KJy4pndx!5 zliiIsB?kqMUPObQ#2k!*2+@N<2*iMR5PuMV5IiUzL@)>O_w~%|WR=}9hyy)c-Tl7z z^S$?~-qSPFdp2&kV?(7<**LX#;vn1|xYn<~7XHsZy75K0;hBdUlW@QN=KFS^oqYL| zQ zQn~Tg^17z-{0o~Zl?^-7#%wWLe>m1zt13;VY<02K0qII*`_9FV)W>Y$C_9(7YwnNl zyz4rtskx5?bzJX^+xc|w$*w(ga=M{U9@E0OJ9jwS7h_P+vW0XOTg`SJFV@_i-Wb;9 zYtMChBE_+qJ60NWX6rM~c-FNJuVSPz#ts)%BbC%jJ>XDGiHDg-7{WOAMa-Bp__<)N zYm)fj#O{GHc&fScMbU{pZ((7fy5Lu{?wm)25FVx;r3fTYzSJ({B5LQGmo-e-TzAt> zk!EeD)F@SUyr{Y0YCncnXQ;NF4|oE`yhYjZNEMec^#nWfS&`-Q*&5=*&wm3MJyhN~ z-fi|gHrlgI+p_H<2U#*S0NmE=L-AF8X|;yZc`R9if&9mcOZ6{BF z#m!|jop`)!Ws!9oS=L<6)XZ{t4y9G*+*g-6ZI=OWT>-HZvamI`%p1Z1@=1fRn35P% zgjtMnU$hRTU}Paz3P%Ws4HCqD82f)0&P0Dp*UePbi2;>c$VF&z;kEU;{S8-|u+sR|iM1mcb&q^wmCNI*HIm`6sfjSh?= znnQ(JlR(C>44_QGeVQl{g~SAmlC{y1&y|XlMg%imat_I2SfeCKsNq@!A(11{TH?rp zG2+7x&M4T9%93FbV_FC!uu0ZNOBVQo6F_6402BErQi(*=Kml+b;)IOwTr#C(s0|9O z0?z$Vpa>^GUBIIt42cqWM8*u$EK;FCJSsU)1Z2z)!FDJ)22Gw)a7whb9K27TjLI1r>pEkSJm+Y{KC8ir6YFdzV$py ziUrxVV{@=)UB&+It>u0$PmFe+7y~E0G{_eWa!jKHs$4-z(-`yR zqvgLjKcGg>%l4dw0mpOydpK8jCiMMW8P2MQ-~Sm-uR!~C=KZq-d*4wUNUbm`J(cip}F4e`NU@w&HO{dCiTcV5XZ|9bbvJzq{g u_)LD(p1*L@+ov1pV_PnKyY1`WZ~FYUd+CQ{U!$B%rzWQ-UfXr_$-e;q0)nXk diff --git a/res/bullets/smallgreen.png b/res/bullets/smallgreen.png deleted file mode 100644 index d00ebc26c52c92c3bce6c347f4df059ac6b3113a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2865 zcmb_eONbmr7#`niBqFFJieTHpVAPtfs;=(pYBG84ZjvRLxMUYhFo^Z)-7z!M<8<#U zLBtpjf{Gq;NuuaUR4`{1jSujFh@h}|(1RDFc<|s0MAW}$W+$ucjv+WO(>>k)_x;bW zs-76%w`=X1o7a>|rL|+bNA|M}PTNx+5kh#FdXyrtK-oewm-DEZZCGL$v6*hyT6ryP zIt8Ot=}ca6A=GXTjaHwwnf2-f74zn0%Oho6ylEN4j>z0r+@fy?2goOrgvFG^m?F$# zjJu{)7zHD9x!gEHm>0$*h>LD7Gfqt{S@=)WetF~Jw4S!BsVU-co%7GfhKI-7X;Q1h zi){a{9nRS3a7aWLB3dS{V|1LP?S_P!)f#fjdadSEC){c^9&2W~Y-&3;QgNX?zznJAtx zUJU+u&r2-ZA-@cIp7n&aLr(SX>a{IP^f>Sdr-mV63VN$4lGbu$xeBxuzK;`svsb7H zKwW_@M=N7|U_b%q0b&H?7zyBsv< z2z{*y;)yR1GZ93gk^srT5(!e_M4AC;0RVytk~~Qu?cP1QmoKQ34O>m|>blDl~{kMa>fd9rHu*9ZF6)Q`*m@9)51x0_lL&x$8YklYCCL z?e-~Hvo2u$_f`u(le2?^C&s`|FAeeqgC5f;fhkweaswL#H$G8{FD1WX@HEDJX}7qz z;CrRf)3P~b;eg}07oX0B?FrpDm#4Gh=J$W5(;3k2oO%Bq!Opv7hahNX=MkK&irfB~ z4*v8{g|-QmYQvdt-^yc zHXg*+LDZuje4$qb7eNJ4P}GBhASjBUARYuCh$1R_5&xc@n zLkouwY@fMordF$MpFh|-0(S?lZQIU)|Fzq;KMgm$aA|Fn`eQ)jg*M9xw`?IgtxJzP_uch8};&YY{-Qm4Jj;oTb`wk1p3aI3r_93Y=85*AYuV~Q|~F&>Gw zp%jcP+!s}+JMtTMnDM4`moh6vNjDo!IL5`hsWK`3ORc*1y9_@_0mv&@2j z1?0RKH`ac+G+uSmz3cQi@Cm1eAz>y|%m|LM>3A1mG6Uvw`1dFK4Nb3O6E ztq(u2c6Gk{cgGdqxx0T``}y;GYTF<8FIjr$jYHMxbbjt|>&5+d-1iroZiZ?A diff --git a/res/bullets/smallred.png b/res/bullets/smallred.png deleted file mode 100644 index 32d447ff6453d29e99846bb855fccd88c7bb998a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2866 zcmb_eO^6&t6dr%T7>W1;qF!uUkQh_bRn^s9T}>t-*;$h%PFywvNf5#M>)jzU(_?pU zb~fTcMNmXRK@Xxr5IlG=1P>B~D1ydAz(XJyHK3@Vco0MnD*n8lnVqb%I|gx}r>nc) z_ul*7U)58y`*v^Icb@89$a-08j!z#u z_r&z}{t@%XQBX8GL7hrj#e*zN7TXYEJF-#Gd6Pv2jDce_+}b#Kq1 zyi&R5#`3zX^3uyUS1KEKw3-KtgN=J*op!3yq{>$NogPS6D%*DSdr}{^g`@0zt6Ot_ zc;{W$X_=aPAZXx5Z^|yT_8iUZ{-gVv`siUTjJspIv#lS4f{rbu)9A%usiM=1gclrMJ+*+<>{juj1co9nFA zD_UvSDK$!!E*3QxTpe=g^u}tt`6x~hF|RLs9;xDz(?GDdkQQmakgg*>{`@zP(PQPk z#jHK>*l5qTZO3+t9AwGZ0K~S@7>lpzOQ$oI&Wq_IKw}h;HKp_Ba?g5mHcuBbZKscb z#XCwiy?83KvPiRLnzmOmHM>I3p|r}J%?+tr-IDNKt01;63tMx`ydfMQpEL=JDTy&f zn8g?mMH^5GMiz3laD;H!Bth(lF$w-AoSIg${I8@)KDT?9Gc!FE5)p=oR*CBv9Vcnlkr1<1N6uTX*PS1@+i1iy-Mo-pZD;B=7s69* zwM-l&m_~^fNC*`mhJ`^n{EL=XwCn_aIpjPaHP$XUKU%e0+gH@%z$cs$g^3Ilm3$IfGr_Es$cPeMt|ShD8YfgnN=VAW z^=;FD=|EG4lvWZkKTt^0L?FtEAJQa{9MkpDjQYk#P{onY7-BjiNLYxn^=%khj-@7S z0@@d$uQfqD@daWg0xwh&AQ@O9p;b7MW&&COfM9|oPZHoAMMznzfJi_&rI<%Xt&a|j zBARoItVtkaSO!Q$;66>1h(cllM#=i<$mdE$N+W`yA|d9GEQU2ol7t$rMGz7>0j(vD zEEpp`OmIfQc2t%OlsD5t7^wAReY9kOFF5o7a4%aT@=>G`iKu}B;5@_$nc%r(O36?g z6j}u__d|gqoIvOT9tB}Yl)w`*W|(G?3Ju~>8S_Ly#{3X$hmupyl=k)Nm=7v`*f8GY z&Kh>`o>tju%cBn2Zyy@>iZdA7vDD>uRC9GXhpll(uUl))p-bub5q@dGg3<}od1yUP zlVV9`cIQ0ItV@{x-g@rm^2lW8i7~L#OM`sDAjdFJp~@Ac+`tCGjZc)~E9BR7p2nE3 z>=ysc`B7-}g6z&)IN*5hf2VV4d&1Dq)pXX}{Qgfmg907anfK2U9DG}K2!dn|Uct$# zT#nCl@Gw3V+Ac&YgEQZu4{j?@j1SDzcQ$W+q4P1h_6oA$%J@T3XhPwa& diff --git a/res/bullets/smallwhite.png b/res/bullets/smallwhite.png deleted file mode 100644 index 63e9ee779fea6b670bb6eb2048ada261871bfa93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2835 zcmbVOO=uid9A6c&jRXo_sv?ZjgDv&#y!YnKym>=6F-_7Yv>VfQp)Fo~Uz04|-P!I; zl1;oR^#c)41ra~!)k6zjq$miU6ugK~gbL!pkK#cO)q|k;pWV$iEy)_XFgqXb|NH&F z|L?uAxNv-Y?1`~bsWd)6H**^94qSWoJOuyOUKoELZg}xzZ5Hm2?>l(x+U%7Zmu4rr ztLEQV$e|Cu`1SiUCw_cu{l@i|Zhd#<>Bfm~?U&a+y8h?w-yS^ND9HA<=gw!P(xZlWoc4n%iU%hq)VkElijw|7i{h*yHsyg+}}U_+;!@v z;+_qvxZ0k!%k{a9jyD0I$M7oF*}V;x>5NMnp0F3LtKsg-)xp_md6GmkKYaqNqjF=y~|L0!ir@#&dk z17+}5ahLPF9edu|+FE(dFQ=U)j|d?=Og%~wNT6)JmCG(_Wd}AHW^ATA^>$uQTTa0! zRl1T_TrjooL$f`kZDoTvLBzbSY1aE<3K|a--n8TC zj+J@ZsikRSGgFJ3?m3i}nRBozb-h(Md}s^A&dA(W+#+uX2goNi!eUBdOc7==#(mK$ zl!B4D916o~hzO}s8sjJ?{4U|t)RXo96&;2*o=zKSr<$6=4%fN!eSUg+v6CkC1}tQ! zj~{jBXQx9V!Vu9iaUG-MB<(aM#H`+wOV(?*mU`w^tMPm*%VkU3`I(9f;VIYaCJvzJ zt(F>vK@cIv0*RDX9I1%QgiD|LKCt$37SE)5rO0Q2?>B@=HE`T9&JSs%sUpZKE|BC* zqlg-Tl0;D75}KGW*kpUYQ-_|EjjgPORi>~i3MJ+?M3@E^F-{{S5`hsWK`3ORc*1y5 z_;)mKvP^-08RR@0G}ckMG#zFp+_xl8-`bCYY5H8Bw5%Cy7IFjT0&(B_w6x&bn#9 zbf76Kk|YuH1BE0_1frZk?2|xpOm{{z>KhwD6-Pc}i0OzRVIj)aw_#{GmYT2;XkUcB z)&%jy7l@e%tWZgSWMGMeR^ddN5oiGbf(cYbl7Qb)gp{=k90@3=6!XZaoza0&M01Xj zH3?)4%K(W8%%_PGQAkX{DA^eu`CO?;X+$toB*Yw&#ju95OsL^n1R;?l&|2cif->U6 z1ZNaV*YzOnV-qk(Z&;FV5gS``GP@?X_P>f!xSV2HVAHfq7>hBep};V!x-)s_h*Y|&t5xq_Ubo_Pks3JA3rVnwO_ve_>+r|yt*-Y^T|WcJbY{Xo!fqK P^qikvn7MlN#h3pByr^|p diff --git a/res/bullets/smallyellow.png b/res/bullets/smallyellow.png deleted file mode 100644 index 1e8731b0035c3dfdf43dd59d47f4ca3a7f573242..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2869 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 O01KRrNvYAXu>S$YJ-8A8 literal 0 HcmV?d00001 diff --git a/res/enemies/fairygreen.png b/res/enemies/fairygreen.png new file mode 100644 index 0000000000000000000000000000000000000000..a087d7c501161f9be8619831ccd92c2c022eae99 GIT binary patch literal 5928 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 OAvh3SY$~mGANUssai&QC literal 0 HcmV?d00001 diff --git a/res/enemies/fairyred.png b/res/enemies/fairyred.png new file mode 100644 index 0000000000000000000000000000000000000000..7d54419023a2a6e83c92e4908224bf29f45162df GIT binary patch literal 5927 zcmb_f2{@E%-yciXvZS(PokGf(l`&&q#*#IpRF>IIm>Dx;&r(uUvYl*MibQrg5kiHe zgoIXW8xkWO+0yrDd(Zp6=bZ0+=lbTlp1GgrzW>Ybzdrvb&e7g-gNU362n5<-ZDsBR ztWm&aEW`)=zZOcc0~UU&iJb`uRFxpQf?o#$iD=Wz%pBQHmZr+qI5QnMMn?yN(1L?N zR_)oTK`t(jx18*53<|yY0LJTdVyNLJs5dOd1BXwS_1eKFhD24V0jQ3YR)h$mob{~)iB^N@|(gbXH z67NZIqxG{UB$M`Vra)0Vie6C~AX`_9de6!*A&HLr4`OmuSiGM6JlxRzH+Y$kdXQ1} zf?skkxlJ57I-U-aJbx77&c@T&7u!u00Z8e0|1*4T3P)Nk*V#hB5bBx_Dp5sDg7wV`I zWnWIeuUP4o19^4E9lknu8d5G2)dd0F9b6_n(gj6bDq<)+Zmt)%(}%|Kn$*Wv`MbKN zN~X0SHcEdK|LkzG`C>&Ab-Uqo!iOGr%&aZ`RFqcv)?E-)ySs(dOGr2Q`qA8z3rd2k z0g3`9S;1ntEmFASahK2Bw~@GZzWt5Jb(%gl?Ne^%f_Tg7rM9{)alH$Yj>I!jeE~a- zBi;+{5Rp`VxZLLcC7;o>08@?#8Qqz3n*C)4{h4~JU`#doJQvfYy5o4)#t%s8Pp#b> zFYxeK@$O6%yl1R14l?r+D2;+J`RO;eE<{U62)puavEsiHC0=c;_=I1?1pY*LKI*We zpqvTPdtJMUy6(EJXqyqa>pb-6Wv@-PQBAc@zR zG&xFa5^ggUmJr`)8qz~4lGzzud@;00c1aN{oPDy~IJ(E(dwu4Kh?7INglvypsoYq) zZfnbWK;Kcbk-bdb8v4>uJ(eCzKBuuTZt$MNx8gJGT`;C>t-$U z5`&K?lvQrXzk=e8kXDOTKyC9NMxG*pJe$!%sQR!!yi{R8>3*w7Wz3VEQ+uY|rX&J+mjx_auZ(mur?2mj z7f(wlxv6j~`__h0HGk1yjT>r10y7EJmuzmqg2fT^DmH?***H?_iHOnnA$O~T4r-1wevpY9Q&7-cQljQ8Q+G%UN^wXXRvp&(;>c5Qp-`eI zv7pj(H1Bq&)1=e$g3Sa4ino9P)85bJRRiE@l+f?Yrv0_OLm)>yS^0YvI5zHCZ)j zf#rdx=lK+>&qjC2Wea2ob-22p^=x;`&Vk~A z!^cg?{IK0JX=M)wx(2qEI=D4otNK;)iG1zigMl8Mr}MGz`&jQ^XT6TU-~PUDDn0PG z!2Eg6^8RJM`FycrG24>@C)>|Xp7m{4YqwT+FWg?3Z{MA5m$lgSzH3fPN9*08t~zkJ zVmYpykB*>Ur1#SkUi80^dU5at)j(5!AT(>vJZvd=`h)ze(+5I`cG!c^gCP}j)4!=K z@-MqA>(BSkymW|f;i0zl+5|!0p%9Uzd>qMHP zhodJ_@MHg?E3X>cHNP z-55LklH#US+E_~UwG70BWfI#pUfSMy-j>$pp!!60%0AtmV^wOEHCoRsse>l#r%Wcl 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 L*_)S}dL8>8XGE~n literal 0 HcmV?d00001 diff --git a/res/enemies/fairyyellow.png b/res/enemies/fairyyellow.png new file mode 100644 index 0000000000000000000000000000000000000000..9b6dffb509634d836c928a5966ad40c9b27e7228 GIT binary patch literal 5951 zcmb_f2{@E%-yci%ENv*uG)1=Ahgq^Smh4NSNV6GJ%nUR3EK#8nQB<~rM95YYLJLU= zNvfmlm7U@sOTI_jd*1gw=X~co*EiSo%>6v~{a=3n_4z-sw$`TWMYf87K%n*JX2$lw z8UbATLVUpgJE3?hVBx15SQ&soW$~iRq;(*Wh$h3x$d+SoY6vzb8fhW%T3S#P3<(06 zHKiv9I6A)E65UoC5S;ZC!E1lAr{*rGBP8h{k#te^kP4qT8dJ7Cn^%fxd>LY9+Ys^0 zcBhkZndBzNQo)@vVC^o%v6nmIjMh6F26omd0z__Dh2j^WZ5d0v0?8 zk2g+7X{U`yowMVPgCcko4n?SfES*fM-AhA+B%7Z+J(029m)D)2XFAyV4lnz8J37Kz za5eLa%gE7V!xuqPsWQoG*p2Xrw=ho{kX_V(& ze0@#3GNuuqcf;W|d2;i|O3Ur04KXD#qUfqL4XNG@WhSQ(7t{x^1Fsy#(R`py=3dfl z=U9lA6f#zE!w_WP9jMPt*xl#NK8-%AXhVvxxkXz)XXA!-T=`_!+sgGj8zR8-!?V9=lhdX~ScA4XWeHe4Lz; zrBWWCHb~D(tk^`?XO+~^cj`{Ye`ihvbwQ->;9J<6kBLA%IR_h&{gC<=b@ zQxGsn3lz_Mu#tE?_Uf4@7LpaIP47i+GqedQ^O=_yBp!UZ(pa@6wqrrcmU1Sd(@#x5 zY(h{)L<; zhsTUpEkW?HzWgxA=#W5B1eDFsyt{27N>WnTiEoP;|FsB-a(#tY{2~U(SHg10-}=qr0po0kiC6HmxI?%4U1nW#rp#60H!ZP}mz;U?Okg_e-!H z){c_z(rJp3y<L+WkvyyVNj0cT2UT+cBo$tsHnZD`!`G2~tLEeNJ52{XjAVX@0Td z;)WJo%Wd!FJS5R)FFhcaeR2*hlJ8P{(jZcL;+5LC-MGuRq(ASHfN8_Ez83c6Z526* zl=#BC^7qp3t?yU%5e-zmque7f6;B`JOy@3`9L0Vigz?tvCn$Sv92eSteCK^-L#3<> z>~qr*(}`v~3#6{c9y5md>?lhNJQH{cXL8gcar?+QSF>k3w=)DsBuC^%U?WPGEW04P z6LTK%eiHXZf9Cxx^*N58c;D>4MI^M$AloF{h-@}cwez68Lx;I<1+|!ZVo11oED>!V zs0vk;R=wI8d~NHsB>NrqoQ_Ql2S)ga$s7cWN6WQdF`+HUQ;R`>Vhgk$<=e4Vk)Xuu>CGNG^n{~K$G-5RJa^?Q~{dN0O ze>L)pBpB%&taYt54RtaiKCszglS3TLP(GNHbt%7U-whkiL5l;wj(m8vQwx@^cPPuDUsaa>D%l0u(KP}d$W5s z0Ih>gc8Plp<&;;|d={92%}76)P4P*daQAPDB=^(HUSu~7MCD#k>Meia`|F+uYF!0g zhmRZ3_z`<#Qm#MiYVF!qWaCm_QFc@6mE5h*PrKT+UeCo$box%bOM4ghq-mma{G$JF z{yB5pCFdo+xg7BVam#3d=%%xyXT6$~o6L8)u6|q1*gpzhb#t8ev4BtEyRa` zI|GLYJzQW#wMBFH0Okf81PnrZD}bMv33-f!SND)Q=8J5%2Vy{0hh1uthAc1WZvIJ%r$XxjOdL;?^Ce zTTSi2TpxRQI{n=6xo5k_cRK_)OxE2_31ansc_=t6NR-G`aMHFv+Btn=vduduIVZ2l zwP{gNP_Is}b!+&X#Y6biE|H9cOh?NCOD&sAR_T}hGwVKb-#w3|kF;&^5DCBVrDCqC zbw)9avwS^Vi|jwJZnZJ5*W%#gdhOZ6uM0D(BC1SF9Ngh8(zWNpISbH1@7|i}fFx0u zsj?|`z2UIoFT*n*@8xycWPVx4cX4K!eA&Vf7%0IMGkajL3|0n)&Ep`@BCr)P3AQ0gq2qeu;tG3ey4z}A`Iue0(w0}Cx=L8nHTV75v)=+Ow&vK<^S6l+jz~zZc zUdist&>VnBm~H050f9s}u3bE!%V{zokkACf(V6RPWl5m0ykR6Ni%f$Bdb0s)5J+1u zkWHc-p>e@v8lAz^flSrZL%)Pa1JO91ZIw&4))R}$_K9f-l2La?)yE!c?VO9NwJNGJt?K!CA$ z7?ngOQOINsFbaV}!Vwra5(7mb2xvS3g8_g4K>&5WR1bo^vB`I3z>^Ndlgnij;P8Ne z09XJT#`2}Zk$5~FjzGatC@4Syv*U*ZV;YCz%V2XEEGBqOB8klMF zsNZbxX8#n+5NkGlC1iWDxGat*>rcpk9{(E?mGV&Rkx{fLz95A(n%GzICUI#x5Fl^0i`7 z*Kk0<|JpYPKF)ku9tg26(OTACyeDh`LIqQ5y0Kx5;}0BVxt z^?RvnsHlKMq?QL2i^ou*9#jMtK!qnmNf-ycoJa#3K+$G!Bo(7~+kLiFo8%Z5iSX4GpkHhDfwA5}^%Ws~~{kTXFuL z6ZKCy|Bgw2uGbikMjD_|XhZD(6|u45KjkzrK%)McmrRWQF(>hFbAFA{xA4OMIuC%b z1NmmgSj&r`?=f|t`TUG7_-m6PkSJ@-QwKs>>l!pF5+s^x6YDC9mJL zi@ed_(dzt(;{3oh)8DgirQ}h^d)s4^23gt&_dZ56|4XOgw0PVVImP$+Y>U1jTayKZ z>6Ij5Oq!k9J?tk+-mQly>vrn zG}N&^<^#>p{o3cPMsfAU?`qJwbt#lzv2lQ9>&i3gV7R-N3xkJ5EJ7nUwv>z~WQPQ` z-LYSeRXE(z!gCdu9O%9Ky{z-#7^wbZoMLsr(Pt~H@Q7{mXW`YW=|?~Gd?e1tA1f9) zv-ny_1^4FV%;LVy2|a?flRagF?0u{Jieob~b0=(e^bHAk-tLlj9+MR;80h;FI(+cF z*s!SQLZ9pW;&D3t?j#{_9;J^J+#`PLH+hAXpr=A}q3rp{_}!&1EQ%)eJr&rI``+N^ zme1;Tz8o+b)8n6N5xlS{YQz&Mq3%3dRTuf&q&_=-yf1WAQEc5!*Vhdd88v)dA3y7{ z`c12o4uX`ld&~tBMYZW`M%j<0yn{*7tZ(u)VqOdFRc#>t(Hzz0dx?{rz>96G61Mkd{!E002PR%F@&U zY$4#YOI!^6w@F2$U84NM_LX55;hDI6C%&Sf&j5HGtog|b#!28I0^tP zBd$2QJ2}2n#Lx6j5^TZ+LL0WjT5*U2AxhxHxGsMQNI9t_ziT8sqdfdN^!VEKYmSsZ zm%ES$jSMr+n-K{R*Lc~lq2tsm)2kd*FjS_?p3W(o#=2kmkQ8JHn7iegCWK{)P_5UF zhXb1obl|Gn{KO=jAfaM{U2!nUh{^M!K>wGqk0YS;ljySk2IejRV0A1zHJ~>aLR?q- zN&?s-1>B6P>?8oGvH+U97QGxmO8_IO{CH779RLofs;rX{c!~h}v`f3i0NOAHX0`r_8<-l-^PX-YWq`V^J}8Hzw1h1#R<)gr}-ND?u=neYl}w0E~@O7-5L+ z9-ElxwNp-#8J2l?YWCWy5Rt=E1+PJAU;BwKk5YU}R}k|2 zHP=T|>hj39M6(|&=jq&1C<&b+t92X|jVOoqFHHN=oHK<$+3(K^6Ik%FXf7u9l&xdJf8r zRhh!O(JiJpli|%%(bYB7e4WmO5#!bBk~I=sxd8oH*;&jiEQAvNi`Yr2#}b*872W0s1xaL0A{&6qu2naq~#7Lj2+yDN12iDa|qO&-}Em+zW) z1$3Eo?ZjPSnfj%jZdRYXJZb%z^w}(M(>&hf1gWYYC9h;%y`nm}dVMv%dgsK(4N3#Ywz})<|5CnKmF`!zwpR8 z4vS}K`#fC+|DE|;`12R(-D&za({t7(Z)@(p<7dw{y>{b6 z+O?aH%oc?UxgvFLF`<=iQI8oX+>5uqKkMFq*?*;>XNH%OM+TqOvgU8RZ#I z-(EyD#CauomsSGbIeD)P&JmYY);(w{tl>`p09X&BJ8 z*lCeMDSX-RuKwLZv$HMx$^!S)l+@UngIe!#c}aw%He8{85ZCuejJ_^TrX;R-%YzZl z{R$edqByN5>W-=NruMaWwz>9|U`w|5oGYFmX1%=nKKPFykDIf$WA$C}^Qz{mqUXz0 z%L+d3izt|`AD+TYuJLd4HylGx%LlXuNCzGWOb^&J9y~z#pf-aYnuvK*eV|(ZWz_77 zPl{iBzc4;EOl6NB9bvz^HrUs1q};zIcT2x51clV#IQDORsCu|2=gs*>-}o|bUkh0^ z4Rpqiw^q4(a}A1N%cSEs=3`$CY-q+dVPPq2j;( zY}9aS`z}hV$(TQk7?0Qy6^Lvn-{G>3-u2`Y_(7B1N_}zTalI}j9ke{>LH^*DBe%z1 zeR})p!Kb`{;EAF}6-$n_hIKK%?^tl}oQ))3k*cY8pXig~Ht^h(Otu|-TzURD(fF*J zX2i9-Y7D0u1(t&0x`2qH@KaT)gWNH#keB< zQD&gW=Y`3LGjV5b+FH}eLq{@CVGed(OuKeDwpFblX6@6!b@yRi4?LVyx8&5B=f82k zx1&QM{<;k##r4KWUHoOoD-&>C+>FQ7z^j-Xue{d5si>6`^AnE_5?r9JO%Gc*@3PW@ z>Pllr51!N9y}$S26MwUT$k59oJ7sQNzioYZ$}u#^INkd@if-yKNrUb8nm%$%c>O~y~XN59EG zsA8p(rov{A_wbWl%M2cshVW{JhG3s!24Ok(;5~tvWb>-`%)885X4&P(mv4956|s93 z@^%ys|5mu$r+M{@jeq);zS!Os5ER>fr}{-;iH&bahgv7kk6qq7q+E~?8I&4?{c^R< zyxljrZocTDefpi$_szlY7J9|xR^o;a4*w}Ltg7j?OGPMMaaw-$!7q(7C2i)3)n#@` zH!oFiTmn9I&P4R}8Orlh=QU9-bjqqBnwIX7F0tD#snH1UYwk;b?5Szbmj|YX5;}^;aF+ z@j2JZ29CabVz-gAS3ENw+&DkBa_1)bO^QYiN1eu8 zW{xyGi!suj!p&SAnHc>uP=5B6@uS?uS)=^Lu_MVJw@)ytk{`RxUwHXP1Zi==>)8-q z#UFmu(9mHr>N7(BkW1;O0q2~+4@WCLc7+Xd*{Q>;)A1S>2u66 z{ZYS_y}UlZ;P6?b-qkM`=kms*U#Ay6GrqRTo@#G9ryv$LF?XiQCk?!2LMWCFb^s8# z6#xV$0pK$@BzOw|K1cuf9CHINS3KXFD66B+KvSLfx&{XN)F|E31Lv&bSnlHifTY6GBLXBODFMKW zN`{jQ-^I=rM`1JJBr2OsgZnc%AQ}J+jQlwyiWiL!A=BI$EIjl>$s;I)LB&Izwe660 z921%c!!nRda}2b1q6B(TuvDm#A;iER2NE!8d=kW;>CNKd{PEDQyg0DGG>m{kzC!q3 zc&PD`LWqkU5n{sT(jdBU6pVsIA|bk1IF&>uQOIOX2pWk-A&?jZ3IjtTaavd$1_Sy2 zgM#X~R65SV)cm_L@C^_3;PW{+1j5hH5ALT0XLH>VC@dC>K%x<7Gz>(*cmXUv$sfkz zsr_IurST|S28YjJvmi^1Br@BFkB5S$e)ECJ`AN&-eUB3uF@!&fgFwNNOFn%CQYk-i z93QUtSLIX+g62(Q(pY>Rh(-Oxf?=|=`w9OgEtB~Z&EuQ-f);)E?U!htQvipCaG>$n zK3odT%oo(C_QNoa2b<64d9eSDA3w!Ez2V?YxHJ-<&2?h4y?HbQFdP!;(m7n4X?4orWUQw5dp)A8fn13~))2y#LC&WEFME zDmqd}2ZPmx>5%E#FpMsZ1OutjFcOwZMqyE83I$7pLjGH?3EP{^wPRD4V*b~0EAVTT z%ce8DLBap}YF#S)uLX#+WbnW&2Yg>jjv~H-)Q|jXdvm|RLM6Ok4@+Mk+?KtcQE+>pbioL&U_xp_wS8I()BPjDhj+>Vzo#x z43uw{cnud`BAd}ndRT9DIO%2I}O}r5zznKmw#5-zw+f5 zEAao*9mLY^`mM+i|FizS%KowwgPHs~1a9w3-Jb^w`112;qOrh8alwP9I7EIA0EpCD znHoD;MvMx(Suc@NrqANKIwbn%7Z)|#B1N>iR$ANl=#3uTBYNLugG0q;#&g@G#LqLf z>jinhec;tb2;D_QDYWSXPt4;`_tWC)bo_Q;5ItV=N3cza2xABR40SzqLk8>UL>W z>2LDoNP$UM{>)(S`vet*4c#T{_vr$*Dc8kP&pbK2QFFDL>}g@>NjS%Ocra0aXroI$ zQBs7tK{M~-NywhU=x`TZgUMa6L?goOi{&R1?p_&qDO0AgvEr;6G-2=g(-t>@tY`5J zB})Ek0l9~K>Pc5L*N>Gj)#zb8uZLe!G# zwyS%N9Ef-vcpqwH)Flb^eys~T{{OKnHWbq6Rt99t9(Uej-MS2@z zN|LP~B-DKYThkrbT{7UDh@P8I-Ad`xzhA^`w04opi+65rL92(h=eG(h1D3}9$D z3IOb4&$#)J-QFn?rh6xd4l%++2acYx>ZOEA_te(R8ocWL*VG7uI6L+*RhYoVDD#9@%|Q;IRLP`#19P^&F&+u zZhR#JXf6dV#@BTdfvgn(nx}}C0MIhPaF!rd6wm^I9crqp<%E7BfHC8wix?36NOM{g zDA#t|Bx-&EFyGL)Di(OS9PmiKuqqxX@&dFQPsH#=iqZhDlbOwlfY%2=ct%HwF1A7$ z@H)Rj)=fle3aB}5YyA zL(5B~t|;lKccRy&-Y^)A;*ahE3HoAy&?eYQDAzju5@%e2H-2i=gWp@0yPz@~AMhYxY*V3v>D!`~RP(Bu)bah<@W0~;D9OCqSHK2ni94y$~a%TX{4LO=P z=x0jZhd9Qs*cktsnnyZf>ri)Hfhp74bTUp;#y)9PvfV;L?7q@rxs)n@z^fy2 z$rN!1sj_j&a55ZH^j4@fEDF2|={u0uwqgl@T5>QUL=HgCq%ExTT?1rvpIo&T5U!Sw zmOb?;{l2mYAe6$8Bn*5HnkpZZ=n`sF2#rJct2ZAa#T+p50El+cj>j$GdeK`+;#x)W zLt;FT9smhODik)Pf|6y_K3#TK>Nj24;ZgMj!cGV>Ou83CMx7hNlLXu zEx)~ts7^`znA)H@q;NTwZDoo|N+C9DDaq@`1l7^%#_M*}iM&u%h^=@scU_nAK5Km6`Q!}Jp5wP7XLg}dqKO%kdf0FZ|Ct0>$XR}1-_@Q z+Vq6=SoY}R&#oK`ulkGX&y#}r^){HA!wqiYU7xZj@` zc$CZLn>x0oy&zbdFy<2LbvkpZI!@=m&enRe>51Q?8`+ZLgIXpNRwC6{yMMtTINBYiVdTG`t+X)l{EFs^;h=I#XR%xVi~dNY)ofv zP44}-Cr~XZ{^N~RIzvgDgj>taOJh-66LUR#IWP=ixGqFpq_~Gkdg;Qg=PEtGX{`PGix$i z1`KU=Z8K?QFI(O1buOsUYk zG0eSwhrz#7k^L<(|W}_y0 ztXi$Q^y9YJ(y8X5NzBBm&?lj$W9TV`u#T{0;XA@}!qh)S4$wYmOydT}lit+ts5gEY zKeObs(%0ax%+D>81)uf|b6%Z$(bsRL(!Z)mv)>VdLTYo}`q$l5+ucz3=2&ZRYIQ)c z?FtQTbnd3N_C;HZOe$dF%Tm{s;9d=^eT;jAgJrI0lzYDRi*~a~z?QCK16d!7J`R1% zkzX$Fpn=!ec0yJ|&gN$9r`S#L;mA(v6&`!fRX+hy5Hayoxi95YO0P#{7o*tyh2Vu| z;N`JbpWlAI@wqrGa=g4%)sDMadvgV$Z*OGptb?pTiLPgKofMSmHPB{7r8>T-tvhyr zWbvn$UhKK68ccG-O7=?A)nT#aF^BG|z2J>`mDuvaK9S;V8wV2y$Pe1%+U2EPT(!bd zl~T%$M_A#$U*;!bkE9&A=(yRNIvALD2(z>2ME1E;$sHP{Ns9NwS6_$q-0&r^!RHvc31_?NIB1xc#R@bmcCczr1<(q}%=oi?G`F9jJn*GLtgyN>hc> z9*;>`u9}D&rB5P8MuVb)P6j=HpHtX(bDm$E`o(VEMt4(fI?c+BL4#GYsy?_;7gFg$;quSgZWnE=8vZ_zjp1Sv+kL64U|U-v$w>bXu&SVVH?mHOx5l@7uCx-`1^A)K1tL6y?eaS>S& zxUXlQ*mMR*HqDjabk4bwHTpR6-F&Z@yd-{T=g@n(AvHaJbJfIUcMdBo-}$w5y7Gxl zT79)s`o)uXxE^7jyQgFO`b-rBS##RczAxo2nhhJ(?gkYOs?^gkh-Sbn?BXX^G&sKKJ_qIit zzMZ`*JHNU$C_Los&9{MLbz0XP?jiVyYo38OA3b~B9yGi$=iJdC;}FB$LDzf2TPC;f zc+h;-t&>oAu6kh4%iB)#ExOkRpAB6nOiw*GmJSL35I4H~c~iyor^wd1F-cu@1$8Ae z*FEGhkLkdc2T5jzllbYg!{a0G!xd&;S==gGm@z9^7z@n!s58#In^EgEcl_nUSjxhH z|ARq-YAAepD{W}DlDisrJJ0^{W%JjL`A+>^*N#R1Nr+6C z@t$Rk8IOcW_VW8eB4cKdMrXgCm@WR4@H(gbfyFs>XS%cF>`Jke@!2DHgR;SECWL0^ z>I4Ac8vsBU1pr^bCgEEE2toqDkQV^pQvhH!H~q#I6R-nGawJ=WRZiL_!R4a5{xbp;4)N5Hu2vLLe~+6b6Pw;`MQO z3Y zlu#I(ukn+?iovJxm|Ovq!-gy}QmC9D0RalS`aK2~_ZKaj|07Re#t@+tE&>HdF2?i? zNT>b6af5gP-;C2~2u1*d#b68gAQtrt3#Q4*=@Uygvo_vQSXIDU2iiiV4~MmQW6#=xPGI4p&V#Nbdr$6Ik|L5p*^IR3ky z=^Pr!@hfw91GJ$54g+#vuvi=nNx{%yRDFFc42#B5aWuL<152U(WOLy$!6iir_$%w8 zS9Fk(;*B&gz~BsF22^h>3}eWkz;IXw8b-m1~8z&{5#k z5~ojrVQ}8wFp43l1~e!V3f2e%<{r%Z-#BmZQ?mb==Rc@vz7)0(1Ked1(EmJ^f2Qo; z#qygK`2QIWVsUrBuY(1A`E@ig*kGo3;K7qpGZ_c~ zBKh`K7G%5Fk;E;>E+Cgi-KyQe$4*3RPK6L$zYEfsq4K*&fOMXU=^`z71czfp8jC5=7*=`KY z>arhAqO_=D0q(+842A=w|v zFsq8M$!n`Kt|1hTeb7Z(-p(tyJbHmHgPq{sPt&(u`r**plWCo&uGg@qXR?3 zQ2<~exa#0abQqGu&vs22TZe~4TeIzDMIrXaks(CJb(xDm@=1A_-6P={kHW7*PsncC z;Qi=@^!Yq!M3_w5KLLZBgF=8{Xe5|$-I zwUV6(2b2wT;7Z&1E5wM9<10dT$HK$~Q|E+%o`vzT5pZ-)cx6vLb2k96+E$+G)msd< z+gS5f3{YJQ+=#4vWelWB0cegadKG{c14dGLal(Ka031|O+$b61E(GY)F790c_`Xz~ z6$Xmb9d-)uP62jrtJxp`{#*w*T~65$3FNu}>NOX_xk9<|fXl_?x@f@VBM@?Rha7c< zlsw>aT}s?RNOT5xbl%)_3=q{4Qa=-&j4S^TnqZ+L(*^Iq(eBpJg@~wCHEUNXN%w?`7ohW_IR*!} zNkw?a?@}7?hA&R?Z6c+%N4_Ix+MO}CuDmD15NoKt7@;a=8MEQC#g`~SaKVUVY^ev} z(j2sU#`vIJNzLk!%Wz2UV2Ij?Fz}Y&eIoOP)M@~=Iy8ze2_Wa=zie^a1SGw>xM4F8 zvQaur{L)0iGkGB(L=ySfYp)KJm z6{hs9K^91vymPWf}*P3*pCy}9@c2{*L^p-RT_FA4@_r{vlr4b7h-9}UWjXjOV5 z;Z=`~^ZYb7MNw+=$Tx+v%N6o;ZmusmK226>J1Q)A1npU=ctU^cdE{k?swPx(d$dfJ zsEBC&$#oSH#>%AVvAAm0VVPS37Qqk|6KhdJ`GIyLcXF^;sq{=C#YW*+AsvUt`wUEXf< zj-_b7h-mxWnMs>d6Rta_ueGnrbSFAwDQZXWybiw+^P5K|vnjhtXjsqoDt*snlIe?= zZrN^^?wGavx0|$U;I6U={It`JYEze{tUi%GnFc6-#+!tap7fw(Q%4O_8g#Wa}jA0{XH2lzx5Ln21|qM@&=mjnfXK?SFT_MtomZR%X`SVd3Uu&0@_d zS&sY6n=;(#?grY&+c|~qg>T&XO;t_%ht~}!562Cs4U04*G9?-3wd*j87=l8W!UCp& zF;#$!K}9~5$^X5;egDAz6`nG$6Y5>l^Q_yt^GaT&Tv529g-Ow##AIvlb)VrN&u%*X z{8>-5_gOC%*U;ugd>`J_fc81MYDa5&Y4eq=cWG)ZJ6qge-cOr0Qf!@R+|$~X+Iju6 z#pxtU+WOm3*#*`Er47}@8RBeaMdlNSb2eo;k;4au%m(2vI@4dL>EB4t*_gDw@%3%~ z9yTE{=EXD8hYo6S3*-w5=`gxU z|AGEvlgB1kPo9>u5#JkWDyJ={3$u)IuI1HUjcL7Ur?EYonC+gO-I7sQP*@p|?(-be zhiPTJWN0^zwjn)BnH*0A&rhD%qVl3uMX(~oh|Ngf2c1_w?SV!7{O7qjg~2^Zy~x+e zkCN+qbWAuvmKq&x*jJZ0r>57ApE;y8ipxtdPH4du>IZUsy<_xsagrsm z#j5v5yzV`waUU0_bwu7KI4ZZw-rnxqU4kvy(Q&r;^Dyhpwb7tI1Kn=S+l<$>$9+~Z zQxZN`rc_oiwqH;%Q#U+~ncCpj;%7LHo{{ly_Lm4a7?AF-JQ37O`KU6B?VpSps5)4s z|0Z&N^_<*-?*e14emZ;N=m`65VqbU9E`^>AxvD)j5EN3~%b{n>1EnL?IRob!eB;VI zea)p*)X^C`2Q72=JMKJVUf|Sg`R>?>*e<7%Hd>xzAFof< z`_}l|xxu;nb9w$jlSK`R7G75BR>k=4V?kYu*5W)ls;1sOJD+5i-WLQi*`}|&^4tkK zqd#0U1&Mc57{u!Jto4Q){RKtgr=BSFamHQp%{l%Pb`j<^{n5R|=S>k!(rfnGtNF*t z#TMy*U zS!sc_rI$Y(I;*+&K-Yr`Khxfb0kRlAOy79+n1ktNZ(5b1{9eoV)OjfK0O4lTqd!W(~9KQu(D@uWgIi z9ZPvT3x|I%-0Rc0u5-(Kere~9cK^W3t+%T>14^uYgWFVIarx{=UHu9LS0Vya1F;L& zTFhE~gK9q)J=l|eJ9V@%XlSWxg|rB6_|Wis$zdf;kKKyV5|2;ItUI*OFk8}M7GG6n zn{eaeV=pKFxmUA-?ruXFUg~G{S+_TmH+GHaRpEZ`ID!WDtZs}rsZ4(-H;eE|~>2E!2UM`bTr8h*gXh|zVOwZ*d&K@FeBMKqLUl;w8WA0>`E z&3e~AkJ+U=jhnqTGWp?sfXw_`qldX)=6B_P8TU>a+cC*_l2q>U`TUzd1*9*%9?$#n zihl5;hKBZ2k)IIyhn-62dL46)l$cS>MGn^-*|YfjC#!|#rB;k!TbGi9w(+FeDPEg~eeo zkncYzXpTdrNc_nr&16!Pa2cP;&DMN>L(UVldbJf_%CUh%%5m3&(s(6=zDCxM01J$UNnR~ zjm!4oP-v#UphcA*j(NGUd2Fs5``^UzbNFX8UN{pDjl^Sfh-|j!k4oA7V1b~u;7EwN zEs4TlE%WYJw)1@ojX>hj@KCUBXc$rthSDLTba5y&4hcSDa7g4gs4XZ3Dv3w>?_e~N zh{EE~+Bhw++J6DFsSLXR{|Tj1aCA0@Ndoi4V3J&E2rriFS8KMmI7=3nM`BTEmIOQ$ zbQR8EP;n#@nvNoqDKM%QSr>*O>FK~ox>{%$Mh~llpIe38qKZqf#kUB!#Z0`-5#ShXF1rlILGp zm%XAcdqqd;=wPtAFdZ^o8-~%PkziPD8X88zQpqSRicFzkX;8?2*)?H%vN^VF>T=Hi z+HVPdt#a6Oh9@}izrI?Rh5uE6I12_Btg`?2rQ|^K{(k4lfPB>)jzn2r7I-LSSr0TS z^m{ksR|)+`u79KDyU{?>zfs9I7?(}w@ktz-kt>+|f1pFezjL2U^8I_~k#s!_jfw(a zEwNzLFjzVrR0CEUhSs5irPafLxd-$9H_q$)knDfv`FCoH8;Rvg19w>j^goZ~pDFuS zvHW5M{(pvpSl(T~i45^S_4jq`FFP?<$**1D_P%`k^I!oVejZIU7MLjxc<^AxHh~AE zkhLYjh-e}B@Uonxh+4byPjl!CNAL+=!YuC{zp;C~&H(tDnG@_EYd zcO(?rMxC}-o?F5r2 zmuDAL3l3)lucto?scKPEvo^zL6!f=op1(On{J2T|sV&y(n4GLynQ{ZAV>NB*wB!a> y(5T^Q`)3GzbTHEYlW?%iwUgU>E$4zOl&`iOD;v5g0lp>xfTigk!fj)h6aNC6MJyQr diff --git a/res/fg/obstacle1middletop.png b/res/fg/obstacle1middletop.png deleted file mode 100644 index ab81cf33e6819f6ae33bbb284ce9384073faf8dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4917 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 diff --git a/res/fg/obstacle1rightbottom.png b/res/fg/obstacle1rightbottom.png deleted file mode 100644 index 63f74fe08d36a043fcde6dea190dafe4ff76a636..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5039 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 G9Q-d?oLuez diff --git a/res/fg/obstacle1righttop.png b/res/fg/obstacle1righttop.png deleted file mode 100644 index 334a6be8b8affcecafc68fb05d977ca7aafcbc67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 diff --git a/res/fg/rock1top.png b/res/fg/rock1top.png deleted file mode 100644 index 4273738f589a77362b9835b52e614d0b4f58f843..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4905 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 aszV&-z?7889My%>-^p&9?QLtXBmV*@4HD@9 diff --git a/res/fg/rock2bottom.png b/res/fg/rock2bottom.png deleted file mode 100644 index 0fec024738d039b2f2910c066b2d4e1c0f4a05f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4907 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 d9-flC@1B0>*v$Q?wuSrO&T5_67{{=L-8x;Tm diff --git a/res/fg/rock2top.png b/res/fg/rock2top.png deleted file mode 100644 index 8cef8c172bcc8019cbdda2fbda3be93ecf545bf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4911 zcmb_f2{@G9+kc1>$r2L9G$@rZi!sbFWbC25OfQ8p8wRtO8EauAWhs>{TcOBS*&;t*@4oNfxzF-M+3q$M7gZ1i06^T* z!o&_NA_~JGu@mgxrm6i~ykIl-L4E7yv}A=*GsjTsw0D#M0ClgT!JmFq9?| z04$=;*}D_%hvo1yJ(C2hNPdD9%T87VVn>MK6X_SEti&Pw)(FSB|^eh@OLJ|#G)oo2?BldW1mOC-dRDRz9z;_0AO|q9qZR!2(?|` z@J19+T?1T-sp%vD*^&T?Ba0FSP@=$SHZMgGPy+xbCB^j;d`|&Dj~2IQ1>pBgbw&`V zP`BSMxbq^gb4!Cv6!3H{;CS|;Obk%$3aB@niR20trva{US&a#R>nDJJZkrr+g`_;- zdO=dmUO;3TxO>{%^fMr$C7^yHp(x;)gY)KQdjR-cN{x9Nmp~L|ZoXEt$=T&bK&Gya z@nzeNqpOb&3*HbJqR|?Jp49^JS}Op)nV$(?qIu>uR<9DL_foeDcep(7tHMG|^U?9b4Qqszr24|e%21^V9DS!PlF>eC zhDu|-nhO*D)-jS>W8RYUZBLk6)!dM#i#9)wi&ho2Op-Zk@ijgwv}{x&x!MbGZ3|gB zO>nZUYFIgXRufYEj;}T<2)yy{J(Axdxe`FG43GDh01$I&UpIMd05Ut{WHti)^->XH ziR0;yU%SE=Od1%xR#9knir%_(7H(@ixu4jUtVP^IZGX5DA+4qCo$RDsSB!!AL&V*8@~gCJyb+pp4+tdz z8XMv%k4wmx1q<&flwdBes|uSUt8^R^jJgZ$6H+{)xA`>UEJRfUsimRj@vSB}6oQeMOxhm&gikkazI>Q>f;)NQE4*X`I6Pp_LK z*J;T%iZ=!gVh1UMda_B;S40n*W|tCj_UG(-d$U1oZ$UwR!SxZrw!>|rZ5In1_L{fm zdAfP(Yln4l%00_pd-}K5weA~PJCZe$GLkd0stukmK|ihCh+aUOC`2gCqnqiIWr!qX z%tPtYKg&G#4eeXuE&VdR$vwBks-w50s`Fy1LaG+}qV@#3PmpQOsLz|o?G3PTJSbU?Zx&Np3iRPOc^P*Pe0$?-jm&ZVbS7vCM9Rx z)%e0PtD)-Vdg3&3CjWkZt^FzMTSYM=`-jcmX|{CdzRc0Plv}hubL;b$SN(UhOfoKh z%E`EN$MkE$QnA2e*QBr-*O+_saQDhBA5XgXB?hcA@XYg)_sB!P^6FsdGO0{-d*0o= zNAJ!co07fKy{l_0y8~Kl?yA;M^DV<41=|;FYe%>7(&)LvPFmbD`Lc31n49t7{=vf& zhbLA}9G9~e+Y@6dr!A)gvrKY+%zJz;sr|C;j;)2nLeIj&7kTAn>Ceg+y|98uVSv6I4HNvUft^4TZOIK_A0h=afJE${Kt@|!5)|9tj8L=QWllWlmt)R zQo2?4d0$l7bmPbrdQv9fMS#H=YFaw5El@njDJVBkc|4?_@=0X|J2;UvROeKu_c~^7 z<*eMi-#mS`X{vDi&?xIo#z1eMp+cWbv1*?+1c^{*+xKm{t#q)yXy{b4U&<|SKXXYH zbyVK=cb3I_i}fpELgFc#O0jSHH$KNc!@{y88zj0neo=4K_x_{fRDbs8;?E*5X z9~eO%UzR4LP9&eWWWCFcJm`~u4DHf&CMP5DY@141lI)|P^*3N$H$8|-szr~@N{8I9 zZ|@LIxnM=la=tkFI3>~k+=QkMZpPz$(0O!`S4rEzRLrW0#fdvE1V^azv)irg;ewpt z$JJ*)xWsDg+23>fet>CzbXcOm4vEVbuIxHEWgix76nO7_8?x}F=#;2~+;q`u$LF@$ zcB=53WiNt1eDpo)8|T~oKDVg%_7b-wZ>;~JxZaVzm&;+2;+6|7fF zCELqK{w&|)`+RNpruY8U-P^hXgU_~Kt?Le|vhoYHN zFU37zI|j~n&P4V08c6f97u9DxUQ1ju9M!GE{rTzy8qQQ=STcqgC%ryk4dw$5r5$=% zqRa?=6?*@($&_VNJT2EFS9Fg}db1(k&&<#5jdw%m(saZJiRRk#Rh?2jEx`uw7HY+o z);IeG`Jcc2&S$Jf?Yh-NI2V51+2{7NS8rQ=N4Mr?#QN&_>m2mG(G}D*wcqJU<9Yjb zd{M@&{zI?t+blKhxIXx5=+Mz71EN5tUh&bjr zA5#XcZ$Ex8J2z>^U3_YZGv8#dCzt6^y{Zlq_6#6PX_Ud z0h)&l4D2RjzQFYkI9AX0I}{zPGNYKUI?!-%_rjlFcFngfwQC)?ek$T5J|uq5ZGkbS z_rZTv54YDpBytX+dw%}RLdkgi+uVvLMj6Vxsk^Ng)~!gMSU6GZo3ni9q*&P506@?d z0N@`5fG=PZ{~ZAMA^>2-6##I_0I;5&e)A7~umfRhO*93|H6k)94p3V!0#sRF4;5-8 zFSCclV{TJpo9TNw<9Xh;k{C5Qit4b}IVi}tUjDK!IA%55VjmX(#MUi80zhiIJOHe$ zp%Wc>jyBdf3X7phqO!;|%>V`)L<4}nVE~&%@uKk{WSTpjiHClwx&wvKsd%V^whh9D zZA|l^TLf`v_CdRelprq(mI^gAfanL{KmrDhM}h<}yqR2F03P~{7YEjto8eH%Hwe!Q z4>ejg2ywKrg&4CqG>DES5=KEF5D*=#CY3}cQOINs2nvBh!VzdV5)DHja9UU#8V&jJ zgM#KbR5zTRiP;Zh;2R$5!Q-)UaJav}zox&ICX3?^M`E#9I06MnpNTvM3 zv3)t--;7f!aGE!bL1Xf`AQt%x3(90;^9%l4S_b16n#(iw13mf?+i%faVj!Cax1(`c zz8nh8)DN_%^3yT42aCtzda(XY9KX7MMZ?A!b7&+Ui$i3wynoJ=?N1g6N=p*~QMVyc z=*(r_ZOe9k4568jcr-i|oHrBg(6_!?mp-Ls{V+z5{He0ykr%Hz@#!B2*73s}1kvb~n-d@_ zij6MC)(maYavEYo9eJitsg+@h&6xet!_q=jucF(VJUt`TGN<>I-CJ})-w=?2#1d22 zsJn~^?|dq)zIywad$D=LopJ{FOE|US?Us3`z8sDoZF$(pK*aqK=hNO=WheRGe6Mj> zPK_hM%btcj(p^0rK9?o5OFgP9RVI8>gV26Cf>=wt9jO^uTOp_+B&cx3qM#lgTe1%r zv~l5|n@%hj7oR^p>4^;x~vJo?R&J lG@sctv;NP`E??J&)~^aIJ0WgnynF|+G~I1-mEd~hzW_?e7PbHY diff --git a/res/font.png b/res/font.png index b78a4ff3f1f726d1e6340eda578cd4606dd6b2a6..198c08287fcb83412892f9013f44c2eae32f2b12 100644 GIT binary patch delta 1479 zcma)+XH*gh0LM{Oa8X)jr8&y$FvAle6$?j3?vY_AMTfhgh8yjG^wJ;|ab&r2mAT5C zn3UwDSz2k@sgw&_I1+JT8F1aZPj{d0>+k(O{NMY%_g~v}S%+n`&(O;aiva)tv;0MB zWQryH;4WQ##$nqvTQ>>k=M0vqyOh14 z5Nlw9Q9y`Uh&d8r1+xf11;LQPRw$Uie;^WuLc!rbkQu@s71%TaoB(3}kGb0*ItCLL zV;z4cI0C)f+|1k@X7=wD5lW^xP%w=K&)(4q04NMNAF;>!rgZzJ-5aw88x5YpEy-x4 zKq8SeI5a!!k`X6){BWLZ#>}@F`FLBVB$;Z5MD-?o9nX~X^!SW*-@5>-7PLF{+rBBa zykBcT%yp>!rxPn|f@to?wf3p8LOCO={Wvahy;ez=>7mZ?m{AgN}GhZhPuO<(j#QLrbjy zF_Glmki&irV-(nt(&7#6NS@aj2LhkkR+ zyf`oSojxy!r`{aAX9w-*trjqx@KqK-mKQKL#J17yd9(<{_Xja`T%Y+#Wims^|B^1gv@ z$gw3cuc{~>_;5NjkM&2oYToNkCn5D2jI|I8X%Fx<-dDsPetaEY2C9Mf#nlxQfeSi} zq(t@1ozg1ufL!478R`oooY(4Eqj1TL5k7KyqR@giRYK9BG&yqR6(?3Rs7nZ`fEQIv z=@cthj1-&<4;z`tSBW>QAX+eEr_myJ2g-L3kc;mU*scuzg$_L7lBL4a-llHgQ|%C` zcfJaYI0y5XJD=W9Kd^f=Ke>giAs_W{>onNstlgoh!X2T?@e+poOHG=f6J+9YXq%2(7*x{g;L~qN? zOJq@2+B%ds;Cd_f*)?X}EwNjx@)%0)P`p#gL#*qd07rNp@W@XW6_ItCdL`&}T5j;< zSXv<`cXoryML+5bN~dC3B5Yf?RW*|KaCsq1-t$UlnlqWD@L+O}qJ4jz$*$1kaU9d^ zgKlHd>gQ6Ey+zJ~4Rr5vx%eXVi^Py0b7@&1#?@nS$%Sh<+KCgwEa%!&Y)Vqo)kwbQ z@VeEIUl{NDxZt`-jx^|) z3?|jI``r*OsvM6f{RJ}P%?TH-WBT1}ic?z_ziH6v8y=vggYq>P(9w_(*+m<#`KW6e cU+buHH@i_!YDIVJf7~^|8RK!}-eF?$UpL{%asU7T delta 1852 zcma)-Yd8}M1Au323RV}%)kum<70sKH8M7(n)ze=sm5(X zpal@&-}DsaAF`(r1c<%u#QS&*$)Z)!ZYc?&Mo^M|x()2`uWz`6Gk5O1Q*<(Qab3`rNh> zE*)(viHKzc7VjTHTkGbG#$U`Him~%N4to3PY}#x=H`|eK*7>%lY{m#4-`lL9H3Y6B zfP-b$!kOTLOVRpeg4N$z7e3F@kMYG90vjVW0I>+fV) z>H6evqT7}N`m@T}2|1`3 z^=kKdeB4XvqdnXvj^4R~fDX=c_K1PWGCZxr4 z_}F{J6(!ch<5n-lC%3>#d!OS~f}zb|(;;4}{5r3N0)SmR?WjrrKAnW^)%$wP5~0QX zb>%0~$5WBnaJY~bqY4j_zz-qmLwM~R0=FGE1EiL@TKq2Z2Wxc!Ft4#TN*c|0ZeU`6 zjd>1u*iQ4{p6O^1Ww;4uvo+E^i~|M9L2gbU&)bc6V2$gW%+>c@e|RTAaB}Te8X5{8RIZ&ee| zV4;?!l>-BhmU|Q-E$^mSVdByR8on1qc%YMZ>Z-yZu^DTdtD41UxT-TdIA(z&Gg_3U z{^H!Tl}1PXarin{_`CkVTuWrQ%7lw2Qm39((HMNT>>V=SBJ4g4eNQ z=GtplOqQ+D9nb!wE1LUCXgMS=OJGoYcsXJY@ zB{;cV;sUJ)LZaH9JM1LA?d>UKr}#?Mj2*qewePzBN=nhX8tbOcd)U;0?XchiQ>?{Q z+LP+L03WsR$JG3HY50CILQq!U{c;sbs?GUPzVx!UWn!k4dG0R?9L?+c$Kj-ySVXtV zFUk2-dlM%|h4qsj_{B|A#}|Xvv;A}V8ktsb2#u;$8DZO5BLsfDK=G{3+CJXb=E#B^ z9)`pW#~efRyavD2M|8XTV_^U?N$uEgrf%lbB>#tacmm^Xu(x7$|pfQy9 z3+dp131)tX-{^jq%kq^kf?UVQyN1xM5Q-G!_& z);}J^7eY#s(8t{7XBg%Wml`G3XRq%iQUN@}LaC`AtlC#ehw+fxK^vYPml%G!4cZy- znAf(xj~)7E7k>#3X%hUBvE}|k`^lG3()+h1hnU@2IBZ28w~7RK%grx{j@}=O49+~0 zaoyiW5O<^BOt>4rjnIUPTalgIEyodPKCS%-=g|s*hSu;v*8(DtBhW*J@ zSklPEUDUw~Jkt%&w)Cs%R8Ma=5!lspyLo+ zC;P$yi_%Zb@{%sp%;L>m5ar_ZyCss=Bib6lTyCGXhkJde^zx=x>ehj&?gp{fQ;9Mw zs=KXrsitK-9C7sTN46(veZr2{xBg&)7IvE|W%(5IzS8!phpQl2qq{z}`?(4>8(vzG znkP9?(WE{8UH$0CY8KUdJz;TGw0`Ajri6ccC;Lb%GD3DJ4QR#Qr=2rh8NApiW8qvS z)yr4bW;}m*Z`gfP(MBq(F2{3eQgzt%*RbUC3y}DaQu)qROG-K^<$FCppe2+--+4{Z za)mw1WX!q2vg`959OPO78lmF@&G0<29w=U14eQUW75auc1DD5x4ghN1qB*7VX?DVW l+9!|!Ydh8ha;HH84PWzZ+5eC diff --git a/res/player/hitbox.png b/res/player/hitbox.png new file mode 100644 index 0000000000000000000000000000000000000000..15027e9ee09820e3e9a8e02a00993d22f9c676d6 GIT binary patch literal 4579 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 literal 0 HcmV?d00001 diff --git a/res/player/nitori.png b/res/player/nitori.png deleted file mode 100644 index 87fa106caea9226d29e0f7600edb6ca73e8d815f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4702 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

9eH+}#GgT?B+J2|ty1l$j%(3UWsjc01 z@*668T2jyR=f%w0jR4bmp_xg;Fgd>|J 2) bgPosXF[y] = fix16Sub(bgPosXF[y], BG_SPEED); - if(bgPosXF[y] <= -BG_SIZE_F) bgPosXF[y] = fix16Add(bgPosXF[y], BG_SIZE_F); - bgPosX[y] = fix16ToInt(bgPosXF[y]); - } + bgPosF = fix16Sub(bgPosF, BG_SPEED); + if(bgPosF <= BG_LIMIT) bgPosF = fix16Sub(bgPosF, BG_LIMIT); + bgPos = fix16ToInt(bgPosF); } // loop void loadBg(){ - VDP_setScrollingMode(HSCROLL_TILE, VSCROLL_PLANE); drawBg(); } void updateBg(){ - VDP_setHorizontalScrollTile(BG_A, 0, bgPosX, GAME_H_T, DMA); + VDP_setVerticalScroll(BG_B, bgPos); scrollBg(); } \ No newline at end of file diff --git a/src/bullets.h b/src/bullets.h index 0b28108..1b8ec9a 100644 --- a/src/bullets.h +++ b/src/bullets.h @@ -2,9 +2,13 @@ #define BULLET_OFF 4 #define BULLET_OFF_BIG 8 +#define BULLET_OFF_HUGE 16 +#define BULLET_OFF_P_X 16 +#define BULLET_OFF_P_Y 12 #define BULLET_DIST FIX32(4) #define BULLET_DIST_BIG FIX32(8) +#define BULLET_DIST_HUGE FIX32(16) // lifecycle @@ -16,13 +20,14 @@ void spawnBullet(struct bulletSpawner spawner, void(*updater)){ bullets[i].active = TRUE; bullets[i].pos.x = spawner.x; bullets[i].pos.y = spawner.y; - bullets[i].dist = fix16ToFix32(spawner.big ? BULLET_DIST_BIG : BULLET_DIST); + bullets[i].dist = fix16ToFix32(spawner.huge ? BULLET_DIST_HUGE : (spawner.big ? BULLET_DIST_BIG : BULLET_DIST)); bullets[i].speed = spawner.speed; bullets[i].angle = spawner.angle; bullets[i].player = spawner.player; bullets[i].clock = 0; bullets[i].dead = FALSE; bullets[i].big = spawner.big; + bullets[i].huge = spawner.huge; for(u8 j = 0; j < COUNT_INT; j++){ bullets[i].bools[j] = spawner.bools[j]; bullets[i].ints[j] = spawner.ints[j]; @@ -31,17 +36,18 @@ void spawnBullet(struct bulletSpawner spawner, void(*updater)){ if(spawner.vel.x && spawner.vel.y){ bullets[i].vel.x = spawner.vel.x; bullets[i].vel.y = spawner.vel.y; - if(bullets[i].vel.x > 0 && !bullets[i].player) bullets[i].vel.x = -bullets[i].vel.x; + if(bullets[i].vel.y < 0 && !bullets[i].player && bullets[i].pos.y < player.pos.y) bullets[i].vel.y = -bullets[i].vel.y; } else { bullets[i].vel.x = fix16Mul(cosFix16(spawner.angle), spawner.speed); bullets[i].vel.y = fix16Mul(sinFix16(spawner.angle), spawner.speed); } bullets[i].updater = updater; bullets[i].image = SPR_addSprite(spawner.image, - fix16ToInt(fix16Sub(bullets[i].pos.x, spawner.big ? BULLET_OFF_BIG : BULLET_OFF)), - fix16ToInt(fix16Sub(bullets[i].pos.y,spawner.big ? BULLET_OFF_BIG : BULLET_OFF)), + fix16ToInt(fix16Sub(bullets[i].pos.x, FIX16(spawner.player ? BULLET_OFF_P_X : (spawner.huge ? BULLET_OFF_HUGE : (spawner.big ? BULLET_OFF_BIG : BULLET_OFF))))), + fix16ToInt(fix16Sub(bullets[i].pos.y, FIX16(spawner.player ? BULLET_OFF_P_Y : (spawner.huge ? BULLET_OFF_HUGE : (spawner.big ? BULLET_OFF_BIG : BULLET_OFF))))), TILE_ATTR(PAL1, 0, 0, 0)); - // SPR_setDepth(bullets[i].image, 4); + if(spawner.light) SPR_setAnim(bullets[i].image, 1); + SPR_setDepth(bullets[i].image, spawner.top ? 3 : 4); } } @@ -62,19 +68,23 @@ void updateBulletVel(s16 i){ // collision -#define BULLET_LIMIT FIX16(-BULLET_OFF) +#define BULLET_LIMIT FIX16(0 - BULLET_OFF) #define BULLET_LIMIT_W FIX16(GAME_W + BULLET_OFF) #define BULLET_LIMIT_H FIX16(GAME_H + BULLET_OFF) -#define BULLET_LIMIT_BIG FIX16(-BULLET_OFF_BIG) +#define BULLET_LIMIT_BIG FIX16(0 - BULLET_OFF_BIG) #define BULLET_LIMIT_W_BIG FIX16(GAME_W + BULLET_OFF_BIG) #define BULLET_LIMIT_H_BIG FIX16(GAME_H + BULLET_OFF_BIG) +#define BULLET_LIMIT_HUGE FIX16(0 - BULLET_OFF_HUGE) +#define BULLET_LIMIT_W_HUGE FIX16(GAME_W + BULLET_OFF_HUGE) +#define BULLET_LIMIT_H_HUGE FIX16(GAME_H + BULLET_OFF_HUGE) + static void collideBullet(s16 i){ - if(bullets[i].pos.x < (bullets[i].big ? BULLET_LIMIT_BIG : BULLET_LIMIT) || - bullets[i].pos.x > (bullets[i].big ? BULLET_LIMIT_W_BIG : BULLET_LIMIT_W) || - bullets[i].pos.y < (bullets[i].big ? BULLET_LIMIT_BIG : BULLET_LIMIT) || - bullets[i].pos.y > (bullets[i].big ? BULLET_LIMIT_H_BIG : BULLET_LIMIT_H)){ + if(bullets[i].pos.x < (bullets[i].huge ? BULLET_LIMIT_HUGE : (bullets[i].big ? BULLET_LIMIT_BIG : BULLET_LIMIT)) || + bullets[i].pos.x > (bullets[i].huge ? BULLET_LIMIT_W_HUGE : (bullets[i].big ? BULLET_LIMIT_W_BIG : BULLET_LIMIT_W)) || + bullets[i].pos.y < (bullets[i].huge ? BULLET_LIMIT_HUGE : (bullets[i].big ? BULLET_LIMIT_BIG : BULLET_LIMIT)) || + bullets[i].pos.y > (bullets[i].huge ? BULLET_LIMIT_H_HUGE : (bullets[i].big ? BULLET_LIMIT_H_BIG : BULLET_LIMIT_H))){ killBullet(i); } } @@ -89,8 +99,8 @@ static void updateBullet(s16 i){ collideBullet(i); SPR_setPosition( bullets[i].image, - fix16ToInt(fix16Sub(bullets[i].pos.x, bullets[i].big ? BULLET_OFF_BIG : BULLET_OFF)), - fix16ToInt(fix16Sub(bullets[i].pos.y, bullets[i].big ? BULLET_OFF_BIG : BULLET_OFF))); + fix16ToInt(fix16Sub(bullets[i].pos.x, FIX16(bullets[i].player ? BULLET_OFF_P_X : (bullets[i].huge ? BULLET_OFF_HUGE : (bullets[i].big ? BULLET_OFF_BIG : BULLET_OFF))))), + fix16ToInt(fix16Sub(bullets[i].pos.y, FIX16(bullets[i].player ? BULLET_OFF_P_Y : (bullets[i].huge ? BULLET_OFF_HUGE : (bullets[i].big ? BULLET_OFF_BIG : BULLET_OFF)))))); bullets[i].clock++; } diff --git a/src/chrome.h b/src/chrome.h index ed33640..94aab5d 100644 --- a/src/chrome.h +++ b/src/chrome.h @@ -5,25 +5,21 @@ // frame static void loadFrame(){ - VDP_loadTileSet(frame.tileset, CHROME_I, DMA); - VDP_fillTileMapRect(BG_A, TILE_ATTR_FULL(PAL2, 1, 0, 0, CHROME_I), 0, 0, GAME_W_T, 3); + // VDP_loadTileSet(frame.tileset, CHROME_I, DMA); + // VDP_fillTileMapRect(BG_A, TILE_ATTR_FULL(PAL2, 1, 0, 0, CHROME_I), 0, 0, GAME_W_T, 4); } // score -#define SCORE_X 4 -#define SCORE_Y 2 -#define SCORE_LENGTH 8 +#define SCORE_X 1 +#define SCORE_Y 1 +#define SCORE_LENGTH 9 u32 lastScore; char scoreStr[SCORE_LENGTH]; static void loadScore(){ - VDP_drawText("HI", 1, 1); - VDP_drawText("00000000", SCORE_X, 1); - VDP_drawText("sc", 1, 2); - intToStr(score, scoreStr, SCORE_LENGTH); - VDP_drawText(scoreStr, SCORE_X, SCORE_Y); + VDP_drawText("00000000", SCORE_X, SCORE_Y); } // static void updateScore(){ @@ -36,37 +32,35 @@ static void loadScore(){ // } -// zone +// time -#define ZONE_X 28 -#define ZONE_Y 1 -#define ZONE_LABEL_X 23 +#define TIME_Y 1 +#define TIME_X 27 -static void loadZone(){ - VDP_drawText("ZONE", ZONE_LABEL_X, ZONE_Y); - VDP_drawText("001", ZONE_X, ZONE_Y); +static void loadTime(){ + VDP_drawText("1:58", TIME_X, TIME_Y); } // heat -#define HEAT_X 28 -#define HEAT_Y 2 -#define HEAT_LABEL_X 23 +#define RANK_X 28 +#define RANK_Y 2 +#define RANK_LABEL_X 25 -static void loadHeat(){ - VDP_drawText("heat", HEAT_LABEL_X, HEAT_Y); - VDP_drawText("100", HEAT_X, HEAT_Y); +static void loadRank(){ + // VDP_drawText("RANK 1", RANK_LABEL_X, RANK_Y); + // VDP_drawText("100", RANK_X, HEAT_Y); } // loop void loadChrome(){ - loadFrame(); + // loadFrame(); loadScore(); - loadZone(); - loadHeat(); + loadTime(); + // loadRank(); } void updateChrome(){ diff --git a/src/enemies.h b/src/enemies.h index 3926f6d..5b4c008 100644 --- a/src/enemies.h +++ b/src/enemies.h @@ -68,7 +68,7 @@ static void updateEnemy(s16 i){ killEnemy(i); enemies[i].suicide(i); } else { - if(!enemies[i].seen && enemies[i].pos.x <= fix16Add(FIX16(GAME_W), enemies[i].off.x)){ + if(!enemies[i].seen && enemies[i].pos.y >= fix16Sub(0, enemies[i].off.y)){ enemies[i].seen = TRUE; SPR_setVisibility(enemies[i].image, VISIBLE); } diff --git a/src/foreground.h b/src/foreground.h deleted file mode 100644 index 5d0b257..0000000 --- a/src/foreground.h +++ /dev/null @@ -1,159 +0,0 @@ -// foreground - -#define FG_I 576 -#define FG_W 64 -#define OBSTACLE_COUNT 24 - -#define FG_SPEED FIX16(1.75) -#define FG_SPEED_NORM FIX16(1.75 * 0.707) - -struct obstacle { - bool active, top; - Vect2D_f16 pos, size; - s16 startX; -}; -struct obstacle obstacles[OBSTACLE_COUNT]; - -s16 currentFg; -SpriteDefinition* currentTopImage; -SpriteDefinition* currentBottomImage; - -// draw - -#define CEIL_Y 3 -#define FLOOR_Y 24 - -static void drawFg(){ - switch(currentFg){ - case 0: - VDP_loadTileSet(rock1Top.tileset, FG_I, DMA); - VDP_loadTileSet(rock1Bottom.tileset, FG_I + 16, DMA); - break; - case 1: - VDP_loadTileSet(rock2Top.tileset, FG_I, DMA); - VDP_loadTileSet(rock2Bottom.tileset, FG_I + 16, DMA); - break; - } - - - for(u16 x = 0; x < FG_W; x++){ - if(x % 4 == 0){ - for(s16 i = 0; i < 4; i++){ - for(s16 j = 0; j < 4; j++){ - VDP_setTileMapXY(BG_B, TILE_ATTR_FULL(PAL2, 1, 0, 0, FG_I + i + 4 * j), x + i, CEIL_Y + j); - VDP_setTileMapXY(BG_B, TILE_ATTR_FULL(PAL2, 1, 0, 0, FG_I + 16 + i + 4 * j), x + i, FLOOR_Y + j); - } - } - } - } -} - -// obstacle - -#define OBS_CEIL_Y 3 -#define OBS_FLOOR_Y 20 -#define OBS_X 32 - -#define OBS_TOP_Y FIX16(56) -#define OBS_BOTTOM_Y FIX16(160) - -s16 fgPos, obsX; - -#define OBS_I FG_I + 32 - -SpriteDefinition* obstacleImage; -s16 obstacleI; - -static void spawnObstacle(bool top, s16 offset, u8 type){ - s16 i = -1; - for(s16 j = 0; j < OBSTACLE_COUNT; j++) if(!obstacles[j].active && i == -1) i = j; - if(i > -1){ - // obsX = OBS_X; - obsX = OBS_X + (fgPos != 0 ? (-fgPos / 8) : 0); - obstacles[i].active = TRUE; - 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(32); - obstacles[i].size.y = FIX16(32); - 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); - } -} - -#define OBSTACLE_MOD FIX16(8) -#define OBSTACLE_LIMIT_X FIX16(-64) - -static void killObstacle(s16 i){ - obstacles[i].active = FALSE; - VDP_clearTileMapRect(BG_B, obstacles[i].startX, obstacles[i].top ? OBS_CEIL_Y + 4 : OBS_FLOOR_Y, 4, 4); - for(s16 h = 0; h < 4; h++){ - for(s16 j = 0; j < 4; j++){ - if(obstacles[i].top) VDP_setTileMapXY(BG_B, TILE_ATTR_FULL(PAL2, 1, 0, 0, FG_I + h + 4 * j), obstacles[i].startX + h, CEIL_Y + j); - else VDP_setTileMapXY(BG_B, TILE_ATTR_FULL(PAL2, 1, 0, 0, FG_I + 16 + h + 4 * j), obstacles[i].startX + h, FLOOR_Y + j); - } - } -} - -static void collideObstacle(s16 i){ - collideObstacleWithPlayer(i); -} - -static void updateObstacle(s16 i){ - obstacles[i].pos.x = fix16Sub(obstacles[i].pos.x, FG_SPEED); - obstacles[i].pos.x <= OBSTACLE_LIMIT_X ? killObstacle(i) : collideObstacle(i); -} - - -// update - -#define FG_SIZE 32 -#define FG_LIMIT FIX16(-512) - -#define FG_SIZE_F 40 - -s16 fgPosX[GAME_H_T]; -fix16 fgPosXF[GAME_H_T]; - -static void scrollFg(){ - for(u8 y = 0; y < GAME_H_T; y++){ - if(y > 2){ - fgPosXF[y] = fix16Sub(fgPosXF[y], FG_SPEED); - if(fgPosXF[y] <= FG_LIMIT) fgPosXF[y] = 0; - fgPosX[y] = fix16ToInt(fgPosXF[y]); - } - } - fgPos = fgPosX[3]; -} - -void nextFg(){ - VDP_clearTileMapRect(BG_B, 0, OBS_CEIL_Y + 4, FG_W, 17); - currentFg++; - drawFg(); -} - - -// loop - -void loadFg(){ - drawFg(); -} - -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); -} \ No newline at end of file diff --git a/src/global.h b/src/global.h index 69b926f..9bd840f 100644 --- a/src/global.h +++ b/src/global.h @@ -1,5 +1,7 @@ // globals +#define NORM 0.707 + #define GAME_W_T 32 #define GAME_H_T 28 diff --git a/src/main.c b/src/main.c index d2c3539..facc4f5 100644 --- a/src/main.c +++ b/src/main.c @@ -8,7 +8,7 @@ #include "controls.h" #include "start.h" #include "background.h" -#include "foreground.h" +// #include "foreground.h" #include "bullets.h" #include "player.h" #include "enemies.h" @@ -22,18 +22,15 @@ static void loadInternals(){ JOY_init(); JOY_setEventHandler(&updateControls); SPR_init(127, 0, 0); - VDP_setPalette(PAL1, nitori.palette -> data); - VDP_setPalette(PAL2, wall1.palette -> data); - VDP_setPalette(PAL3, font.palette -> data); VDP_loadFont(font.tileset, DMA); - VDP_setTextPalette(3); + VDP_setPalette(PAL1, fairyYellow.palette -> data); + VDP_setTextPalette(1); } void loadGame(){ started = TRUE; loadBg(); loadChrome(); - loadFg(); loadPlayer(); } @@ -43,7 +40,6 @@ static void updateGame(){ updateStage(); updateBullets(); updateBg(); - updateFg(); updateChrome(); clock++; if(clock >= CLOCK_LIMIT) clock -= CLOCK_LIMIT; diff --git a/src/player.h b/src/player.h index a8d0a12..74a278e 100644 --- a/src/player.h +++ b/src/player.h @@ -1,10 +1,13 @@ // player -#define PLAYER_OFF FIX16(16) -#define PLAYER_INIT_X FIX16(32) -#define PLAYER_INIT_Y FIX16(124) +#define PLAYER_OFF_X FIX16(24) +#define PLAYER_OFF_Y FIX16(20) +#define PLAYER_INIT_X FIX16(GAME_W / 2) +#define PLAYER_INIT_Y FIX16(GAME_H - 40) -#define SHOT_INTERVAL 15 +#define HITBOX_OFF FIX16(4) + +#define SHOT_INTERVAL 12 // spawn @@ -13,60 +16,43 @@ static void spawnPlayer(){ player.pos.x = PLAYER_INIT_X; player.pos.y = PLAYER_INIT_Y; player.shotClock = SHOT_INTERVAL; - player.image = SPR_addSprite(&nitori, - fix16ToInt(fix16Sub(player.pos.x, PLAYER_OFF)), - fix16ToInt(fix16Sub(player.pos.y, PLAYER_OFF)), + player.image = SPR_addSprite(&sunny, + fix16ToInt(fix16Sub(player.pos.x, PLAYER_OFF_X)), + fix16ToInt(fix16Sub(player.pos.y, PLAYER_OFF_Y)), TILE_ATTR(PAL1, 0, 0, 0)); + player.hitboxImage = SPR_addSprite(&hitbox, + fix16ToInt(fix16Sub(player.pos.x, HITBOX_OFF)), + fix16ToInt(fix16Sub(player.pos.y, HITBOX_OFF)), + TILE_ATTR(PAL1, 0, 0, 0)); + SPR_setDepth(player.image, 6); + SPR_setDepth(player.hitboxImage, 1); } -#define PLAYER_SPEED FIX16(2.5) -#define PLAYER_SPEED_NORM FIX16(1.768) +#define PLAYER_SPEED FIX16(3) +#define PLAYER_SPEED_NORM FIX16(3 * NORM) // collision -#define PLAYER_LIMIT_X FIX16(16) -#define PLAYER_LIMIT_W FIX16(240) -#define PLAYER_LIMIT_Y FIX16(16) -#define PLAYER_LIMIT_H FIX16(208) - -#define PLAYER_LIMIT_Y_HORI FIX16(72) -#define PLAYER_LIMIT_H_HORI FIX16(176) +#define PLAYER_LIMIT_X FIX16(0) +#define PLAYER_LIMIT_W FIX16(GAME_W) +#define PLAYER_LIMIT_Y FIX16(0) +#define PLAYER_LIMIT_H FIX16(GAME_H) static void checkPlayerBounds(){ if(player.pos.x < PLAYER_LIMIT_X) player.pos.x = PLAYER_LIMIT_X; else if(player.pos.x > PLAYER_LIMIT_W) player.pos.x = PLAYER_LIMIT_W; - if(player.pos.y < PLAYER_LIMIT_Y_HORI) player.pos.y = PLAYER_LIMIT_Y_HORI; - else if(player.pos.y > PLAYER_LIMIT_H_HORI) player.pos.y = PLAYER_LIMIT_H_HORI; -} - -void collideObstacleWithPlayer(s16 i){ - if( - obstacles[i].pos.x < fix16Add(player.pos.x, PLAYER_OFF) && - fix16Add(obstacles[i].pos.x, obstacles[i].size.x) > fix16Sub(player.pos.x, PLAYER_OFF) && - obstacles[i].pos.y < fix16Add(player.pos.y, PLAYER_OFF) && - fix16Add(obstacles[i].pos.y, obstacles[i].size.y) > fix16Sub(player.pos.y, PLAYER_OFF) - ){ - if(obstacles[i].pos.x > player.pos.x) player.pos.x = fix16Sub(fix16Sub(obstacles[i].pos.x, FG_SPEED), PLAYER_OFF); - // else if(fix16Add(obstacles[i].pos.x, obstacles[i].size.x) > fix16Sub(player.pos.x, PLAYER_OFF)) player.pos.x = fix16Add(fix16Add(obstacles[i].pos.x, obstacles[i].size.x), PLAYER_OFF); - else if(obstacles[i].pos.y > player.pos.y) player.pos.y = fix16Sub(obstacles[i].pos.y, PLAYER_OFF); - else if(fix16Add(obstacles[i].pos.y, obstacles[i].size.y) > fix16Sub(player.pos.y, PLAYER_OFF)) player.pos.y = fix16Add(fix16Add(obstacles[i].pos.y, obstacles[i].size.y), PLAYER_OFF); - checkPlayerBounds(); - } + if(player.pos.y < PLAYER_LIMIT_Y) player.pos.y = PLAYER_LIMIT_Y; + else if(player.pos.y > PLAYER_LIMIT_H) player.pos.y = PLAYER_LIMIT_H; } // movement - -s16 playerFrame; - static void movePlayer(){ - playerFrame = 0; if(ctrl.left || ctrl.right || ctrl.up || ctrl.down){ if(ctrl.left || ctrl.right){ if(ctrl.up || ctrl.down){ player.vel.x = ctrl.left ? -PLAYER_SPEED_NORM : PLAYER_SPEED_NORM; player.vel.y = ctrl.up ? -PLAYER_SPEED_NORM : PLAYER_SPEED_NORM; - playerFrame = ctrl.up ? 2 : 1; } else { player.vel.x = ctrl.left ? -PLAYER_SPEED : PLAYER_SPEED; player.vel.y = 0; @@ -74,17 +60,14 @@ static void movePlayer(){ } else if(ctrl.up){ player.vel.x = 0; player.vel.y = -PLAYER_SPEED; - playerFrame = 2; } else if(ctrl.down){ player.vel.x = 0; player.vel.y = PLAYER_SPEED; - playerFrame = 1; } if(player.vel.x != 0) player.pos.x = fix16Add(player.pos.x, player.vel.x); if(player.vel.y != 0) player.pos.y = fix16Add(player.pos.y, player.vel.y); checkPlayerBounds(); } - SPR_setFrame(player.image, playerFrame); } @@ -93,13 +76,14 @@ static void movePlayer(){ // shoot #define PLAYER_BULLET_SPEED FIX16(16) -#define PLAYER_BULLET_ANGLE 0 +#define PLAYER_BULLET_ANGLE 768 +#define PLAYER_BULLET_OFF FIX16(8) static void spawnPlayerBullet(){ struct bulletSpawner spawner = { .x = player.pos.x, - .y = player.pos.y, - .image = &smallWhiteBullet, + .y = fix16Sub(player.pos.y, PLAYER_BULLET_OFF), + .image = &playerBullet, .speed = PLAYER_BULLET_SPEED, .angle = PLAYER_BULLET_ANGLE, .player = TRUE @@ -126,8 +110,11 @@ void updatePlayer(){ movePlayer(); shotPlayer(); SPR_setPosition(player.image, - fix16ToInt(fix16Sub(player.pos.x, PLAYER_OFF)), - fix16ToInt(fix16Sub(player.pos.y, PLAYER_OFF))); + fix16ToInt(fix16Sub(player.pos.x, PLAYER_OFF_X)), + fix16ToInt(fix16Sub(player.pos.y, PLAYER_OFF_Y))); + SPR_setPosition(player.hitboxImage, + fix16ToInt(fix16Sub(player.pos.x, HITBOX_OFF)), + fix16ToInt(fix16Sub(player.pos.y, HITBOX_OFF))); player.clock++; if(player.clock >= CLOCK_LIMIT) player.clock -= CLOCK_LIMIT; } \ No newline at end of file diff --git a/src/stage.h b/src/stage.h index dfff2b1..7b59aca 100644 --- a/src/stage.h +++ b/src/stage.h @@ -1,94 +1,379 @@ // stage -#define SPAWN_MID 124 +/* + +sine from left +sine from right +big middle +sine from left, big right +sine from right, big left +big middle +swarm +big from left and right +swarm, big right +swarm, big left + +midboss + +big from left and right +big from right and left +big from left, small formation +big from right, small formation +big from left, small formation +big from right, small formation + +midboss + +final boss at 30 seconds left + +*/ + +#define SPAWN_MID 128 // groups -static void groupOne(s16 off, bool firesAll){ +static void waveSine(bool right){ struct enemySpawner spawner = { - .angle = 512, - .speed = FIX16(1), - .x = GAME_W + 20, - .y = SPAWN_MID + off, - .image = &fairy1, - .offX = 20, + .angle = 256, + .speed = FIX16(0.8), + .x = GAME_W / 5 * (right ? 3 : 2), + .y = -16, + .image = right ? &fairyRed : &fairyBlue, + .offX = 16, .offY = 16 }; - spawner.fixes[0] = FIX16(spawner.y); - spawner.fixes[1] = FIX16(8); - spawner.fixes[2] = FIX16(8); - spawner.fixes[3] = FIX16(0.25); + spawner.fixes[0] = FIX16(spawner.x); + spawner.fixes[1] = FIX16(32); + spawner.fixes[2] = FIX16(64); + spawner.fixes[3] = FIX16(0.08); + spawner.bools[0] = right; 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 && enemies[i].bools[0]){ + enemies[i].pos.x = fix16Sub(enemies[i].fixes[0], fix16Mul(sinFix16(enemies[i].fixes[1]), enemies[i].fixes[2])); + enemies[i].fixes[1] = enemies[i].bools[0] ? fix16Add(enemies[i].fixes[1], enemies[i].fixes[3]) : fix16Sub(enemies[i].fixes[1], enemies[i].fixes[3]); + } + spawnEnemy(spawner, updater, EMPTY); +} + +static void waveBig1(){ + struct enemySpawner spawner = { + .angle = 256, + .speed = FIX16(0.6), + .x = GAME_W / 2, + .y = -16, + .image = &fairyGreen, + .offX = 16, + .offY = 16 + }; + void updater(s16 i){ + if(enemies[i].clock == 60){ + struct bulletSpawner spawner = { + .x = enemies[i].pos.x, + .y = enemies[i].pos.y, + .image = &bigBullet, + .angle = 128, + .speed = FIX16(1.5), + .big = TRUE + }; + for(u8 j = 0; j < 5; j++){ + spawnBullet(spawner, EMPTY); + spawner.angle += 64; + } + } + } + spawnEnemy(spawner, updater, EMPTY); +} + +static void waveBig2(bool left){ + struct enemySpawner spawner = { + .angle = 256, + .speed = FIX16(0.6), + .x = left ? GAME_W / 5 - 16 : GAME_W / 5 * 4 + 16, + .y = -16, + .image = left ? &fairyGreen : &fairyYellow, + .offX = 16, + .offY = 16 + }; + spawner.bools[0] = left; + void updater(s16 i){ + if(enemies[i].clock >= 60 && enemies[i].clock < 180 && enemies[i].clock % 15 == 0){ + if(enemies[i].clock == 60){ + velPos.x = player.pos.x; + velPos.y = player.pos.y; + } + struct bulletSpawner spawner = { + .x = enemies[i].pos.x, + .y = enemies[i].pos.y, + .speed = FIX16(1.5), + .image = &smallBullet, + .light = enemies[i].clock % 30 == 0, + .top = TRUE + }; + spawner.vel = hone(enemies[i].pos, velPos, spawner.speed, 48); + spawnBullet(spawner, EMPTY); + } else if(enemies[i].bools[0] && enemies[i].clock == 61){ + struct bulletSpawner spawner = { + .x = enemies[i].pos.x, + .y = enemies[i].pos.y, + .image = &bigBullet, + .angle = 64, + .speed = FIX16(1.25), + .big = TRUE + }; + for(u8 j = 0; j < 4; j++){ + spawnBullet(spawner, EMPTY); + spawner.angle += 64; + } + } + } + spawnEnemy(spawner, updater, EMPTY); +} + +static void waveBig3(){ + struct enemySpawner spawner = { + .angle = 256, + .speed = FIX16(0.6), + .x = GAME_W / 2, + .y = -16, + .image = &fairyGreen, + .offX = 16, + .offY = 16 + }; + void updater(s16 i){ + if(enemies[i].clock >= 30 && enemies[i].clock <= 90 && enemies[i].clock % 30 == 0){ struct bulletSpawner spawner = { .x = enemies[i].pos.x, .y = enemies[i].pos.y, - .image = &smallRedBullet, - .angle = 512, .speed = FIX16(1.5) }; - spawner.vel = hone(enemies[i].pos, player.pos, spawner.speed, 0); + if(enemies[i].clock == 60){ + spawner.image = &smallBullet; + spawner.angle = 96; + } else { + spawner.image = &bigBullet; + spawner.big = TRUE; + spawner.angle = 128; + } + for(u8 j = 0; j < (enemies[i].clock == 60 ? 6 : 5); j++){ + spawnBullet(spawner, EMPTY); + spawner.angle += 64; + } + } + } + spawnEnemy(spawner, updater, EMPTY); +} + +static void waveSwarm(bool right, bool color){ + struct enemySpawner spawner = { + .angle = 256, + .speed = FIX16(1.25), + .x = random() % (GAME_W / 2 - 64), + .y = -16, + .image = color ? &fairyRed : &fairyBlue, + .offX = 16, + .offY = 16 + }; + spawner.x += right ? (GAME_W / 2) : 64; + spawnEnemy(spawner, EMPTY, EMPTY); +} + +static void waveBig4(bool right, bool second){ + struct enemySpawner spawner = { + .angle = 256, + .speed = FIX16(0.6), + .x = right ? (GAME_W / 4 * 3 + 24) : (GAME_W / 4 - 24), + .y = -16, + .image = right ? &fairyYellow : &fairyGreen, + .offX = 16, + .offY = 16 + }; + spawner.bools[0] = right; + spawner.bools[1] = second; + void updater(s16 i){ + if(enemies[i].clock == 40){ + struct bulletSpawner spawner = { + .x = enemies[i].pos.x, + .y = enemies[i].pos.y, + .image = &bigBullet, + .big = TRUE, + .speed = FIX16(1.25), + .angle = 32, + .light = enemies[i].bools[0] + }; + if(enemies[i].bools[0]) spawner.angle = 512 - spawner.angle; + for(u8 j = 0; j < 5; j++){ + spawnBullet(spawner, EMPTY); + spawner.angle += enemies[i].bools[0] ? -64 : 64; + } + } else if(enemies[i].clock >= 60 && enemies[i].clock < 150 && enemies[i].clock % 10 == 0 && enemies[i].bools[1]){ + struct bulletSpawner spawner = { + .x = enemies[i].pos.x, + .y = enemies[i].pos.y, + .image = &smallBullet, + .speed = FIX16(2), + .light = !enemies[i].bools[0] + }; + if(enemies[i].clock == 60){ + velPos = hone(enemies[i].pos, player.pos, spawner.speed, 0); + enemies[i].fixes[0] = velPos.x; + enemies[i].fixes[1] = velPos.y; + } + spawner.vel.x = enemies[i].fixes[0]; + spawner.vel.y = enemies[i].fixes[1]; + // spawner.vel = velPos; spawnBullet(spawner, EMPTY); } } - for(u8 j = 0; j < 3; j++){ - spawner.bools[0] = j == 2 || firesAll; - spawnEnemy(spawner, updater, EMPTY); - spawner.x += 44; - } + spawnEnemy(spawner, updater, EMPTY); } +// bosses + +static void waveMidboss1(){ + struct enemySpawner spawner = { + .angle = 256, + .speed = FIX16(1), + .x = GAME_W / 2, + .y = -16, + .image = &fairyGreen, + .offX = 16, + .offY = 16 + }; + void updater(s16 i){ + if(enemies[i].bools[0]){ + + // ring + if(enemies[i].clock % 90 == 0){ + struct bulletSpawner spawner = { + .x = enemies[i].pos.x, + .y = enemies[i].pos.y, + .image = &bigBullet, + .big = TRUE, + .speed = FIX16(1), + .angle = 80 + random() % 32, + .light = TRUE + }; + for(u8 j = 3; j < 15; j++){ + if(j % 3 < 2) spawnBullet(spawner, EMPTY); + spawner.angle += 32; + } + } + + // puke + else if(enemies[i].clock % 20 == 0){ + struct bulletSpawner spawner = { + .x = FIX16(enemies[i].clock % 180 < 90 ? 32 : GAME_W - 32), + .y = FIX16(40), + .image = &bigBullet, + .big = TRUE, + .speed = FIX16(1.75) + }; + velPos.x = spawner.x; + velPos.y = spawner.y; + spawner.vel = hone(velPos, player.pos, spawner.speed, 32); + spawnBullet(spawner, EMPTY); + } + + + } else if(!enemies[i].bools[0] && enemies[i].clock > 0 && enemies[i].clock % 30 == 0) { + enemies[i].speed = fix16Sub(enemies[i].speed, FIX16(0.25)); + if(enemies[i].speed <= 0){ + enemies[i].speed = 0; + enemies[i].bools[0] = TRUE; + enemies[i].clock = -1; + } + updateEnemyVel(i); + } + } + spawnEnemy(spawner, updater, EMPTY); +} // loop +#define OBS_INTERVAL 15 + s16 stageClock, - nextClock, - currentWave; + nextClock; + +s16 currentWave = 42; + static void updateWaves(){ if(stageClock == nextClock){ - switch(currentWave){ - case 0: - for(s16 i = 0; i < 6; i++) - for(s16 j = 0; j < 2; j++) spawnObstacle(j == 0 ? TRUE : FALSE, 256 - i * 32, i == 5 ? 2 : 1); - groupOne(0, FALSE); - nextClock += 180; - break; - case 1: - for(s16 i = 0; i < 6; i++) - spawnObstacle(FALSE, 0 - i * 32, i == 0 ? 0 : (i == 5 ? 2 : 1)); - groupOne(-24, FALSE); - nextClock += 180; - break; - case 2: - for(s16 i = 0; i < 6; i++) - spawnObstacle(TRUE, 0 - i * 32, i == 0 ? 0 : (i == 5 ? 2 : 1)); - groupOne(24, FALSE); - nextClock += 180; - break; - case 3: - groupOne(0, FALSE); - nextClock += 180; - break; - case 4: - nextFg(); - break; + + + // sine from left + if(currentWave < 6){ + waveSine(FALSE); + nextClock += currentWave == 5 ? 90 : 40; } + + // sine from right + else if(currentWave < 12){ + waveSine(TRUE); + nextClock += currentWave == 11 ? 90 : 40; + } + + // big middle + else if(currentWave == 12){ + waveBig1(); + nextClock += 120; + } + + // sine from left, big right + else if(currentWave < 18){ + waveSine(FALSE); + if(currentWave == 14) waveBig2(FALSE); + nextClock += currentWave == 17 ? 90 : 40; + } + + // sine from right, big left + else if(currentWave < 24){ + waveSine(TRUE); + if(currentWave == 20) waveBig2(TRUE); + nextClock += currentWave == 23 ? 90 : 40; + } + + // big middle + else if(currentWave == 24){ + waveBig3(); + nextClock += 180; + } + + // swarm (8) + else if(currentWave < 32){ + waveSwarm(currentWave % 2 == 0, currentWave % 4 < 2); + nextClock += 30; + } + + // big left and right + else if(currentWave < 34){ + waveBig4(currentWave == 32, FALSE); + nextClock += currentWave == 32 ? 60 : 120; + } + + // swarm (4), big right + else if(currentWave < 38){ + waveSwarm(FALSE, currentWave % 2 < 1); + if(currentWave == 35) waveBig4(TRUE, TRUE); + nextClock += currentWave == 37 ? 60 : 30; + } + + // swarm (4), big left + else if(currentWave < 42){ + waveSwarm(TRUE, currentWave % 2 < 1); + if(currentWave == 39) waveBig4(FALSE, TRUE); + nextClock += currentWave == 41 ? 60 : 30; + } + + else if(currentWave == 42){ + waveMidboss1(); + } + currentWave++; } } - - - - // case 0: groupOne(-32, FALSE); break; - // case 180: groupOne(32, FALSE); break; - // case 360: groupOne(0, TRUE); break; - - void updateStage(){ updateWaves(); stageClock++; diff --git a/src/structs.h b/src/structs.h index deac91b..d0f704e 100644 --- a/src/structs.h +++ b/src/structs.h @@ -9,19 +9,18 @@ struct bulletSpawner { Vect2D_f16 vel; s16 angle; SpriteDefinition* image; - bool big, player; + bool big, player, huge, light, top; bool bools[COUNT_INT]; s16 ints[COUNT_INT]; fix16 fixes[COUNT_INT]; }; struct bullet { - bool active, player; + bool active, player, dead, big, huge; fix16 speed; fix32 dist; Vect2D_f16 pos, vel; s16 angle, clock; Sprite* image; - bool dead, big; void (*updater)(s16); bool bools[COUNT_INT]; s16 ints[COUNT_INT]; @@ -35,6 +34,7 @@ struct bullet bullets[BULLET_COUNT]; struct playerStruct { Vect2D_f16 pos, vel; Sprite* image; + Sprite* hitboxImage; s16 clock, invincibleClock, shotClock; }; struct playerStruct player;