From e18c9714fd1009ea9ce2f33013e9877e1e9cb174 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Fri, 19 Aug 2022 13:17:14 +0200 Subject: [PATCH] First attempt at mobile tanks --- constants.asm | 14 ++--- definitions.asm | 4 +- scorch.asm | 9 +++ scorch.xex | Bin 50756 -> 51090 bytes variables.asm | 1 + weapons.asm | 162 ++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 181 insertions(+), 9 deletions(-) diff --git a/constants.asm b/constants.asm index 1beb554..9fffd44 100644 --- a/constants.asm +++ b/constants.asm @@ -285,7 +285,7 @@ WeaponPriceH ; weapons prices (tables with prices of weapons) .by >price_Battery________ .by >price_Bal_Guidance___ .by >price_Horz_Guidance__ - .by >price_Vert_Guidance__ + .by >price_Floating_Tank__ .by >price_Lazy_Boy_______ .by >price_Parachute______ .by >price_StrongParachute @@ -351,7 +351,7 @@ WeaponPriceL .by %h;u|Kn&dv{LP@_z2~F*HF*^jc|? z`6uq$oO6xbgQK{~Be|U;S+5O~Og886k&1zoaj%b6;>btb#6>85#Qk%W(w$M6^)z?? zxT?mc&=GOT9?`o;beqn6EDqcwW_>JLLiKuOy%^diF8NsWZeuUa`$RXVC8MpmS#W`{b>wGf68#^KnzE3YP%X- zqXMr@nI>Dw-Rf2`lGZ7t;aOX+yN^FFMJrZ}Q!Xc4Ad@ZYZY7b4wPiF~8jO6svD)b^ z_P4iWXg@(+1_XjeChyUIm(I#}E!D*eIvkzAW~RMqm(dm<^T#!zS`+pqU1ar|~a z_wV@_wjEVvA$KVR;`S}zCO;o?ijjfbWrbB`C~%LBRlDsCU#WHD9?Hd_o8#=ZC+^{H z9>?AApjzyYIOFUfq+ku-c;q<1(ok`m6=`g0H4L5R!Lzjpx6JCZUKAKH&^61l{g zK!5m%$Q_whSr)~ydA@uwavRR+X*xX3_K5Xac0g7;x&SCi5w!581+$_8&2lz`FND*S6*I^7=+C9#*^D zwsRx~t9+RsdONSr<0XD2k!(>@_J;rL{yF?y@HAiKuUY1g>Tk1iKHkBVP*}$Ci)De7 zu{K>Jo9C}z=C_2VP)9s*g{D)7f#g|3GiXOV$p^gxK9}-OQ(ac&E`A>Df}c-8Cu2}J zJ@{jw?xzZ_K{q|dv{MWlweC>i3cq))-&+OK`Np>8p5@LHVyIcP%s;`*F0@Z{7+`yl zde;fjo$%cW(QHJYBVuKlrEZT1s5N`Ux{m?1=3~*m{DkN;ggVZ{rdZVz;_n?|0DU?{ zHn40UNI@0G2V;jiu6KbF2ev>OobH-Toxz{@@f45~C_j<%lW5v_I()(- zZ~K+Ayh9=_Y~paWqq%OQCn%ZxDI<+n%-#sa*EbNx`wLahdQZcBb|}ew(r1c^AD}VE zF_?eah&c~;F%y>AWc~%i4o{Ov-nYj*uCR9czyY+hW^?JWW5@Wu+H#B5_TKEk?7NuP z>8q)mONGy;4>jH^3ULo{ak;`(4?RC-l$dGa($_JE&zaT%xO%qjiKEm|>U~daZ%NdC zv{M5cfu#Dz;E$;5d@u4;dJeoNMvfPoe`-gAaQGq4sru_zXbEbKzg`Hosc%P1>rry= zmj!q*c?CRJ=oZ>M1d}c_j5c#Ln2INwP>VLZK695YW{Uw{w{SU&xQYdO<=k;xv|e@l zn@jzXGGWR3}0XlT= zv4j>wzu`nJY1qB`e4}TJLe$_3a)xzKK*)Z6c4GkbNe@?Q(CiJxRw5^^fPOP5DPxemUIC0y=k0&0P`0K>WC*L^vp2?3+ zc1(U@vg(|iH<>JyoB$CqklSh8ZsLA{gnTbs&Nv3fT~7`KS))R1bNkXiEpNg z6H0*8&^QF|&Lq|cpya;Y21#SwCjFlomN3{qoVTKrRRy;JNa{jlmvWaSKCd+Rs;czU$?th|xERJ9KZ8`E3?OF=fC)ZJsI7 zk&3=RJ<*q#u`Xn-19Yxz3#TZ(Srp5^MN!#q9k5=k)vrHg+@ zQVn6sb!jvWy`GzJ`ES&pgN_+DqqV#*FU|LxmCQ^u5X2EPD2p_E-#;6`(0YhJyU9DD9 z?O|1-^-aP1WoMHWQdt~vDJdxd7LNZVa&7p|NYC&ck+kp#gyq&qA{YW@&N6Dd0U`9E zdl3O@SAh6O@c2b#Sb!B4>|qy|v#6>Jj*{(=-oHpdlZk z2~%cW_5>4?iKOWw*}2j8D`{j4n@nfOD&|<6*z^4S)-f6fj2$7tB@*pFsgJ1*9zUsvH;S zuFlCLt7}&=-0}f)vf4qr#qk}8(nt&JXaSX1hbu8rR)x<*E|*t9qSXznYFB{?%@B-- z&@F#J`1dGAbgR<4Wkm+Gp<5ehL_4L)E#^d+OAEFaj7W<)S&6gE@1UdwAuQQpJ1y+a z8EBq6uJT`O#>PdG3cu#YyM*6z{(kT4%ul^R)z>lc)i*Hlp~Q>S1g0;lBl#c>wcWzh zCKNt7$=RuMCVRx#kT2(ZRzaQ}T#ifiQq8pcO}g7l)i)`Yj0Dt#VHUQT4=^4-!X*4- zn5PGL(O{4553yxLa5py^T)}27Q^P;%4;Er=3nx3ZwAjw^Fyf$MzrD*|@)LWwhju%7 zIhQyz*&(k7i!3D0&meMSXa_x6lJK9!>mj} zfb8CdZnp7LyWry(ma4MDh@LqbKCAUOJcPnl3<#vr0o|kRRROAWFE5JAiO=> za_7>;2%h0B5#6#TWg}7xI#sBa&DW0*a--RbwF*G-I*TzN*5A2wF+yM1GVQgMiBMCPVLFyW&B%xP|{5{27~Y?DO>;#^(93kk6?eQ-?Y2GH7cD zgx*TF!JIy)S{n35wuXjKRP@7emHNpCSXNj-SK(&?om225qC>as2g|*++y`b9&BvL27x}-2)PJP-|(&L)Es{=@1JA<)PLOszYy- z@&BgsR{kiJxACoPk!+(hIrrbx-N&LHr8!@aFVt3=vybdk+i1>yvVZtdI=qz*Z=+4x z0nj<1c2FU8?oH1B4bfh*mm&I;e991gMn3xkqR*}Bm$da$78D<%t)KA-g_~*X=g{1+ z&uQjWR{7KKY?OQ|f7W3jpUI!&`*U+@R3-X!EO^wS?gyjLGxU+OpT{s9q&WxpgF1o% z7Ws?$<0<(<-Zy^&CHv(4^CwcWUp_E@5`_?7F|D^St$)q5egs-)BT>jkg0PV&Vk5B( z3u9MhcNqjHy=GHps=OnTpe9I~iMx5Gd{BD|tec0SXJ#4@Azn&A@9^K;{bUz8Bw5@$eK1BMsV=a z^*grPV-?JkTo5CmYjnC`@ObFGGh~nt@dv2fjA|=H)i;Qcw!;7*HhXNI=~ZP;IE?c% z^Ws@~iAlM`HwzOaK|+5T4=eJnV>aXsG7Iu7 z#;WhzsB1QI$^$&>6dvO)N+u zPTN(FoiDQq8FP)%h!|>s>E2-hhy#I%2fdhY^%(#O?|Rjxx&kS>K@V3whQABBh_?9* z3?X6RCBsNqgjrGRv39Viv4FeAhW;1#>x0TT7zd4KYED3ECzH{@OdQAv0`(um%kzn4 zmWF1t0l|puMJj=vc{D81{Xa_qBxGaW%{LBc;OjX>2cs%>KXV zOO^lPHrSh*%s(T*K`H59$^+zUZiDdXvjd$YDGUsmVHjF2+xtFEK?*4Bp&!d2@Al

- zRp-%N&ro-&irRS$gq<=xO?N%d+H&cx=a9QqpQA7?P=R&X^~IX&Ig=kt?c8AJ%t$wE z6caF;Je%zSG#bjt=1^i8dAD}6T^*#sSkl(NE2`Z;+tvNE$gkM-*>Rwy*!WDN@;Clw zqmsqW8Ik!mvJ<9bqm(9`X!(xO(aQGa24i`gkx%*b-Yi&vrnr-jQ45w*5 zc5fEVpX>0fB2l|+{bunn5ko{YZ#_eFs3ffyDp5csJhvasws&UD45w-)+kjcFM#kzx~ z{JUaJnOOH#DPJzuEEnr^f$MaEg+U8OBoQ$sWeE|5nF|IRH;Y2ig7MCcBJ_>Kb0TLf zu|2@HMf&zAD(kt;Qnb`oCYRwP>z{Vt0-W`pS1t62ZWxPfHWs&FER-vTZDe`s0XWKp z>7`{Wf8x`#K}bIX)K53iV~!M%$CV+CP#u~mu4&0?Z`_`&or*^Lp?Z-t;INkLR8EnV zN)~yIduE<;7b#T!L5y@`BY^Y2nya8`t`*5?tWfNti$Q9r98;m zgvJ+!IH#4925!T=Dvw1jbo3`HW#TZ9*FqLlhxYSiC$RhaEAgH}oBX8mB5%zG+keSc ze&dbo&6Hi`sbfZ2$BeSlQ@dHG>g%HzJcW(h2Wvme9_&U)1H&G74!ce-6e#z_dmb-@ zo38Mg5t z=4^Y4LG^57m9r&nD3~wSf%O`QlL*OBqt2Bqj`aF3gUMF;%Z_vi1B5Ub2sK9<6URe@ zE6Fo`-aQ*u#%iq{mt}U_HCGZQEgs;!&^tgAxDpUO{69J80#DLz zhwISY4?kaOFKSRqFx5w3s&AOb-7}A}{KSe8IKPy2CxL@xxQP`bqHdyY1@<2}QEXIP zs9Qcy>U7YVbVzewAsTKC2#pZd&yzG`MmA8jD=vJuBu73gpC{Qy%+=j)!aU*1m-{*A zNs+iFy&Y6nj_|%VA_{YSzNF5V!rk;Jd%gs|&~dk3iF`vc7>`x~2x(Ll!`)K}RU~OjBVsV^rsVYN-*D3mhcU~TR-9%BB?W8>v;JvZJDLYLL9WO-~_G2kLNVjk2 zOTuq2-!jM{tjU#%&0qTrSSWI(7K4_yJwB4M%OPNExj+!czcM%@26I%+l~{cu>iJyB z7YBIHO6bmB$0C|KY}r=5@_^Ijmn--@zl=2^z#J5!JUA%Cc}gP@YCSlpH4>qC`&sP= zt1NW%;Pctx6Y;ABeq=BT{iLFX_-j2G+59%YO8hA)miaC}Q53`cJU^*c^ZjHU_iNs9 z0s^~;U)yV6U*r$D-sB7Xp&#Dl3;oV^JP}m7-ozn=?D-C81-aroAYOqx4(7rSy1PQ=il+WO~*I+k8kwb2ISgtwDpPn3BTFT?R`f61osQM74StqOXIj|gkAn2dje$gq|9A#Q8NNYd`yw0xvwa%Uj0iJLtHB}=bzUO;>1|Cx3tl^B6b;g7M~@V0iK!LJqCxo>fV&X^i`UTS9yNPS+~#fy;} zNQ0tco{IWBRVo=j;w5zv8KST&TFU+Zon;W)Dqf(o4qeMeDCeG7H|PJRX4ZurS$u-% zt-Q{!Ohi^*B&*lg`PpfGSq!~m;ytj9y5A63z$fig*2IKBT+yFji+D>nuR!gpjO=!= zM{I0K)_y>zH=QB^mbXO3^WP=?g9N+l{Fx~+o@~Rx9n43$?qV(2dgUsXOIQE-eD#y( zYz*Kqp4e5cL(g&AbIKwXcK!Wa2&`PgZhmYT%|c+LAdKWq-0f;G`hL0~5{_!gXNc;j zx`;((YsTQJM_xZ?&a<;e`{JrYa|DmaXNvk=cwLVNj;T9tN0i~JL{xpuL!=_osc;~U zVzHTltVDAfML?BI$xhbZ>*DtQti5-vePEY%-_@!^aC$tm1C305CY$Zq?THaA0bs3B zI~BXkqOXFuRE1kHN*Zj7CUE3AtPnH-V$7i7(Kw4{o95_Nk&H*$cm`!FVmCaae++C= zFcF~1ZWDR~766)w^S<2VG}m#X#%UX%J^kV$RIF!%Q?Td{4xaYTpezJ1ptK34QvbQq z(BSEeGnOT(W!Nx=dX_m1-sw6d=SDP#^&0zE{o7FOHE``M-)leFl^5W}1UT0S5fqNB z@EPQaaMDVg^LWB@g*WqUGrxTfH!QQW6^_3v8%y_=ELs;R=by_$QcI6Dl?AcD7-22D z?7_SuR*0@KX1ngf%Tb$N>shlf3qBu9RzsH3jo+6AsfF z{{Zy6oq#}tta$^=n(tKB#j2lSvXuIT5rq~b9#abkvnaX@?!40&*E|*5DcCC;i|b|z z!s^016C}!4Qel7L*wH?0S@T8bs4F#`Cb6`tg@&zAC=2m3rLNeS5Kg6SAC(| zqWWkzqYmI|EhGx|xr9{P_Pij>Ay*lbUlhtozuo|e2Z*dBR41%UVCO&&E)@PjCODsa z(IUT{Q%l~KgE<>W5V$hpwO;aD(7O-o6U7oHkrlQ#UPP6Esuig6psIpF#%X4YEabdS z^5qpdZ;%4p_7|=4>#YLHZ?vu;1q{Z>U_3c%kTb2wSxfS4M**{@)r0cd)(R`h8}^Q9 zPB|{YfRE#pcEY4FNCx*nPS?bZcOemWyIhcYtA0?d4a1gSU)0&Xi|s|0Yec#{mTmsq zLO{2@g`-8E?5k&ojc?V<5tD7)i^6Y346D{d%P(rxNvR7jo?jg(b_bb;?xU0}oNaS5c6#%35mx;_c}`m0sT6`YJ^E zC(3y!t58qAT7{%F3b+H36JU+#kMq}@S4lp9F*?*MI9zBS;GTv%@o`eJbt63-YBh^ zPLB_l)(@AkC2x%0c^hOwZU}Q9caNu2E0QuD=_mzRk_iPpkHj|cpV{w$^F>X)OY4iA z4H7(NTnL##kwq8^KFDG6Rg?KE#5tpJcF)eq+sdlS*tImAk+bMMB5FfIuaydymkb`T zeDRhyN-g|@IHwu`f>kC=yp(xP!aCK*%iZ z=d4)di^EMd@Qnl{7b_u*_}q@9QHP1R*v%sacTO;v=ML~2JlgjNOuAOJxnOsBX!s@u z+gX9-SBGrVuK{#ce;0*|a|z+nL7C@qM*(!Ra&`2Gl1C|89mRp7U@5!OiB6!}kk{a1 z4A~WpSL_sgzx;(7$I-mdlc885ss z0jwa*)(`o^ZbtH9v^UJf*7k}osm{mOZ;aeh|4t;K*nBec@nHe_%p))=EeQq|Hb!tu z2={{HyjYP~G7)BvC^SH|I{}z^tKJAELergSgsZARQkAVeSrLnFz_E@UddIt1N7HeI zC3ocy!zL{eq9JR_Bs1Cey$ni__i_a`!myhHP{YPTcGSD?Wu_6mPpYmw76t1Pol{UE zGz7Fl>+-AmpTR0nNnS&j9muM#3^zuS^!)lpmoS*;dd8YrlU|L%9L)E+#t7E)`V%TIbVLOORc=a;f|M z$b0{1d~xI-V8|QZ8N8wJ9~fPa7qg|pr43+G-~t3o50m^_4{P#Z^5nQ!Wa?O&GSq*>48>t`cY7I9o3{K?{&1aFwZeAo4o@;ct&H&gcB z=oZOg_Iy<&UonRk$KSy29cH9gx3{;K50$u~i=wN*O8t_|YjVEN;905OAVoM_w7gzw zJq&zmhSd5MP~r(%*CN|?gJgTsX+e8VtUc#kyU(3KV^ZYlcH|1*6-nMbRMK9x z9b0M#hGR4op@a{8LrHn)7a9nirXK$M6+#v#2@_wv%xS~KB!zMwA#!0x5??he+}ctw(Jkf0hm?;gQ8lbLoW<9u&|?Jxg&@ zTIO+kS}w=!X&PU1jDCBJMh1ed0}-nA0cQukp=KQA|3VM^g2XjATyvTVCtl5%{bQL< zM|Nc-RfA4)ZJ|!YUR$W+x665BW!IdsV@Y9E{+6!5wS{BOjws>bM{soCXl>2suajT^ zwokyF-nC1nW%qTG;BsGaPa7$bOC4{KQtW9<#++T#M^etN8Hla^_ZGRtkxWY5#j|`Z=Qp#EgjjuPl_;Arn)rTTiEIZu@Vl`L8Ny(msg^Hf+1!Z0aIi zwA?9TdMu6B-V(2AcAqA!tr#$7?l?PKImu^M0ne%ba)abyea8YGvf{!ZR(0|LcV_{c zI2|zF_jgsbm(qYM`rJ^)Mt&e5aSILKaL-bX$qBB{ik z46P4hH{9M3(H~AE+TYexAUrBuhlLQ=4BwMoyvHx+@fChKpBMagU&6V}5UIGg;z zG`2Sioamn1{*DAME-zL2u^{1cQwO`Q7>=Fm`P^nkYzBxe#cyZael3laZ%6q-y{ycNQu_lj z?r&r93jzGx1^W>E;sqNK{OHBU71w$qzp`KX*ttT&1)PMtX;~y)7RHVpiwm}nWIpKE zQe(w2NhmR5Y){xNc)BL&w=7yfn1sU^%{U%3w=e;X5D+7rKK8uIx{{jn+~WMwinX+7 z|Eq4e<&M9P#SSbyFnFc!=GtMNNQwm~V;((I%<2<@2}&l`P@PXOlvLVQn;NLBERLoBfsVUANhIQ@>ZCNybX5J$`rq>-2k>2cupIEKHlH5I7jAzAS^WMr8ve(W5 z!&&UqI}zN(5DbkW=w+?Tp}*%)An6-Jl5R!Y&w5o1QB!3a!^F160^1s|5HeTw7VcUV zkN+vKa&?)A#H-TyJA8v+snbfKo*V&+sM}Kt{da2m{8ck{4-Q;ylD*nuZhtW@1K*ID zTzRnglesi9v}P{F9;UuoV{^IwP_Ul`#_mW6`-15(PutODR+MpX2Bw-oRyw2oGdufd z{Gq=)Ww+bkurhL)?doD?83|-7!uxH<-G2N3M%vvkN-BK0TPOWkag>!9X}!BM^501Z zQ$R&0?d?h${Mhv{HXb*D^ca_227+hph{wGbIG1J$3E@cdaTUm(Qr*-PGM9`FrI(Dh z4=h<-va{qr_;+3Db*29)v1683V15(NYU}~)O8838Uwq|}Cu|c-0v9!`E{}|HG}C!I9-zPk5#qzZPRR zDvV?mP63?oA?#?$8a&PYrKDk%b{q-fRm`)n37+0rYsZ#|!NM<;5LDKVvr=E^8;Ir{daa^i%?rUoUo3?yqO6P{%dWY@N z=U?$w*B$xh_bZ0pKI+LAT`S(*b@*iZ@G*}QU+B~Jg!Jr5PZY1J4S!`y>e1(_>xSO+ zr^zoZC8e)#-r8{J#D9M8d;2|8Us|TrZmJ7?*!ELu=J;6)i&xaXcgQqs?BnhYhfWy> zUz;_4mTP77^BVhb`gineRhQ4|b06XGddp2~W1rVA_`K2i@y0%HMn4-<-|lCOC*lTC z$f&)^6xbFJ9_pS;&+TAsewm%PTX7eB^U;#h=mvZgdp z+Yvq!yfIMQ>TU7Y{@Z&LYpb^%%a8Y4B+tEu0E<5k$Q|tXqQiYf+cDd_>mu=rA@Y^a zSldzESldC46?ITUWD}yU?ltsm`{8f>+TTMhe)3J|sGoehrQPX2)9$bRhJ26v&m$sf z!9RH;esDK7V=2(A$J^tkHGa}wo{uYz=4sgD=j(;Rzd#EOy9k~K6+aujl zh7JXDwnQc(UVt3$^7omkOyur0th{?2&T6``b`+eu*V&$02aPpl{<6go$oz?$Ut^nE z11=Ero$}Wn@x}+piAFq=10({5Y=J=S3GZEjMtqy~@80@%X23gAf0?F#Um5Tv1L7K1 z2-H;syw?YODX170fa16SgiG;S0^Z-8eunO^0f)hx8c zehjZ)kA7F@^o*(~-=72i|d2Sb|gn9>n z9QsKgaLOO3GgOmP^2v;}KwW--IKPum^(zQ??+=8o2_TCTr}Yp0hF@e43s|;XA6WDn zSoGJeW9-{rQ4e1e*z(uF_8#t=Ln8y`A*-9M0sP?ot^l~kZ7FMjF>?Zpk;oP+6YI7> zC^LW~WN0R2379RRQ~pS=K!^)imRuQt7Tk%eogHSVSw86<9mselk|6(J`&A7^{Fa;_ zEK6<+gh#lOU~=~dliC z&Z7VN`vbgTZ+YBab#h?+0|DN+x7@T>y)Ur-!2ln>w>)95Iwi1vYGC8B%@3vj53m|h AbpQYW delta 16215 zcmbt*349bq_WvBY2#^e-FdTtK0S%%C6d6SbB5EKbhZl#}AOtcfK|DbXldD6n4w-bg z9qAhBo^(jVL;=mpaEJ++EMOZ^Zp`kQ{E|hnRa|6O;s33kAq3R@{XU=n5T?7TUcGwn z)vH&p-m58JY5ugt?Ei6^DM|R?+_V;xYgVdk5XPz*frf{-sWItt$OHuli2|O%!rK9x9 zU?!wW4UK_SLT0Yu$rZ}X7c+$cxx%|<(RtX-j;HebkHqU86HhaDi>yP|f!C2W2C- zL}J#xh-up=6$d61f+42x6~_E>V1%FzVD{xm#V9cL$x4@|V1Km>(`^wZ-C}gupMQ`U zn9B5dQn^RcTt){5(lG(czl30t78^`fyD^g-7=#%>zt1iZn2+ZG+38gR^ZCq8#i1VQ zFN(*tyYN25%N}Grsht!^JgAwOrEiPHtOso77gNT~%z`%?Ek8+~{Nn0g1vN@4UhB~W z*A;BuNbm-UGaDXmw49TBu{)`VDg`Z)cE1jNTT8@}x&}1@I$C1iKM_+?YLg(PE7CiA zuOvsYJC)d`;N4{xf-n1j=0;1^HYp^n^cV38qWHXGCV832v&GdewCVh(zqrLFSp$*8 z8Np@+x)P^>&9()4koE{R2jk^(4B-Y5omY80H-G@+K!R}+2L|K)=PPTg+{`vz(J0X) zgrG_73Wa)5@}x?h8Bmln_NoU7+aOe;&jx``Bb^8~SHk>w{w1J}sn3>; zAPYl-(t~E=|Ao6G0MI}xaFRN$3?{ktI!8s)P64%$u zHq#};Y)oO!KP)HNxpO9OglzE;g0FYLm}fJQFL@-=Xla*Yxah;OnM+Wq$r!{fHet2H zP|SsvHd_7-6@ZP2V*la@+giSQ)_};z3#-!$`OjwcGU4$*vxeRD%SIuVi#^O))so(- zIsxQZ)z){#cY}-;GkG!>dD#9mf7k3+CSBN=WM<;4sL^N4Rq2)KRq6KUzwsK1JPU=k z<|y^N!)u`P5?$BeKaaYO_k8yz_pyb7cDBIsOB)(^Z8qb2R;sH|Bb8^QI^N%^I6|f8 zP%1kr@~~oJ1*}-$8{yPZti`}-;Z&30?}jIuP>VK)zMhko(G3BwJDJ`~nTfCHm9tWr zP`z@$bZU&G#g#=}93$ChOg^oD1JdE@M7P%vfN9$%w0+Z{{!Hybxz~`-2et{PwhP*z zvVp8Su${JxZqIgsS~+*%1p$1Z{DRQRw|!HtHi^92=z!T$;+uk(wCjWCH4E%oVlpgS zf;X%59!c$`EHx#@2jjJ<%Gz4DMU7VSOzP)yH?K8+CwlS&p1!>YEMr%gTOpNMnrfe! z%ADe#dHP0d!PrI%Am3n=8a@1%jdT@yFXack2Eor5svv-Xbo^f7qMtYaV%K%91GtyTP76b>-BxQ{S3iJe^Ecrq)jVd}{kt z^Ynhx@0^}Gea7^;(>J)LFP=^TtEW5UNOouILAfj2$Ry9Pzwv0e+@qr$p||(BraZ8t z9O@r}XWn>JEKboUEWE8RrMpr(Tl~=O`MZ>%UUskCjooQ;DI95!Fcke(0b{wq-brzK(!o5$FV#0kuY>G=Cej8CrNxOmDP9T6A z^j?27a3^-a2ul0pNUnxj;~mr*v%65W8!y3!VEz~Te+G{Ru8?pgM0uZZMMU|4aK%K~ zM!>JKop7Z@c0mZ>8WIQNT`9-<1ibO+p&Fw4(0vC1;c`gGGG>6eZwg3b9+_ejv)XTB zv;3y|Z1ldW$tq?!A7Zo0Os&6b>eS07=Ct3$|NGhA(P5Ol^|^$O_xql^vp>)p*hYK) z6uFB&^>O-CgGto!#m^0k-pabgZ0CFY&gZ6@R=W7^j+v@oxZ>DV;od)dZbQ+Z5#OgG~ z#_B|&S5cx-z1|kM4Ldx#2S!2pfWf|WniX}N|$^cWEt}Zvh1jLg@t@sm>mt_ z`pA$lF&EuJ6Eu!aR>@XnxG>ezi2dOw zU?ImymC6K(%~KwbSXP-RvH4K56?7iGbRNBQ9=&uPy<#4Bt5;;X;a)MHyUi=E;BNQI zCZNpX<_pZpSAcZBFy%>-@dTNo|JmgGzI%eOm11S0aT4r+axUzrCLYrM@PR--9Y4Vrp5t#5Gl-q^3%Pr4o*X# z*IVma>%_Xc#;1sI;F!-l1_xZ)l$lf@_!2!fMuJ=-@7-o{5kt!e6RZEVANIRIx zfv=Pc4*1#g`ae&Zql~CJBM#>7$K^P7CtX2X*)`P0uxkZF%^Gef!FGwi-?gwgdAZsH z2Zs{PRCb>YaP3A^g#@YI%8XjhAD#EGYt(Y_5H(0_wy3f>;^%BGwVklKbb}BKG6s_| zlvP}lmW6TGre(8hYt~TQ;xS8%vYvD?a_ixuvCUAPp+sC8d=JZGO>nDrgSbXD)vv8z zQ?mv{s0M!oIBmWLVL}Kax^2?CeXk|7qFXD*Kqvm=w7y-}6Sf)dG`r9K5575VfMr(d zroYi8Y1E?g{?1%l&d1H4@X#aF5KSSvs|XeZQ+?b1)7hG?Ge)Up;@C zt3$k$P0duFBj&i*fb@M#ZksNc?GDDc)VT23@HD)fdn8Av)8YX~u)8`Mv|J7i zz=ci|n4a^n9QEjfexOF-9*GWx!!K0BxD<|>z0Z@uQVcU^MsOt_!i-=w9_&oGY;oFS z!FUv2odJgnA&B^y!Du{p&Ik^|W6#Xsa6F!$861Mg#+ku!c)UN;{_vBR9lU7j;Mos7 zNgX^24_&B5vsi1PC&SucAAgcme6b1V+5^(s z2c~ziyP;0`M2&;o*j<660xJ4oy2eQCUThoGU3);H?wV_&1b+?P_P}8axpVCHN-O+G z*d{j|Nf@Vc_@AG<{V{OmfP0?)DYS+-+(%#ac-sY#ux`V&<#8%WkyUPB> zEHH_JJiBFYRbWaHx0Z;zxK%{l&8-IM+#2GI$yiIudRdiKB<(BqD`hoFJHj4O){wNL z?9tm-k=s|3+t-jr^%zDy21BP=WkU-9Wdnc93qxH08_FiOiK6_1{eq%A%pSf5<(D?4 zgtUA?U15&29OmEvmy(t*A<^OaB0dqSBY?l4q<+ zAxMV&A*ZyX9Hyt3q#eTqQ3MHA@vB9b1okWO$RYz_kBCPX83}t-JhsS0z)l&R4L6+) zp3X)EW`oX99-SeU&QLy`p%vH=J5NHV$#Idv+mpJ9`?N@92W%qK3U^&yfRQc3(K9Iy zh~OwiqIdBAvOZ!Kds571PhpREj5>;s(;efu{rFRW)vYK;g2A##lq~mAIaji?^#XZzg{Y9v1r2G9?0DSc{ws{H{jz^sg#iLG97KX<*SrTmGNx1GO zaqu`b_>_fTzNou#Ghedkj`;A_kJyjC`}2*9`nu>rkDmCbnF)CaSD->`2{Xt+_#OU& zc#xQ1{ffP^U|k(6cAqd0>tzQ)e{Td-$@4T- zB+neGMxOaZ{L1qJ5s!FYBH~fcYeYQec@yi#?{)Z+0rcHAS*2JV#*>{1*DC~&3@+`zpW0$vsZUQSneIF=`e&-LC*rFrCR z9#Qg0Fp^qJE{|-v;vr(h+?b&sO3&PEUw$3 zZR?+dO@RTE_p>>8%cboWyuhBJH;yLrsRuK9x!v;Yl`>tGVY?afhamx2M3kF|i+Vh$ zp{0T3;7vr0QU;KNHsqeAw>njH>hpc;(Q;Ql^RW4++ndHMOj_Q-7hE`3b_da zro7?WoK3g4F&&pPI_EK8>1+d7O&6HqbD2|5_NM3YRy|s1 zXvk}*wh3NCt+NpMvD%D6q{wK@^!w_2gxXgM@8&KF)%OauOA9$OsUCyOKp~ebRNp7m zmK1VMp?a)P>n`NR3)SO? zC}!IVdn|S6b;mx$>}5AURBA02i;;Kv%pp9FJmeM8LXPN$xk#pSF%okj_Zyx@vlt0T zvqAOZlI2lcd@=^o^Hadu*NYzgyp^J>7$@ASfKgc2Jg%)_PmFpl}ux57v%A5o;-?Wy@pb&x3rHp-yMkMAi9>cO~n{6=`DF0XG_L__aw`0oQb}f zlO=a8@{vU)YE&(=NN~k+Y&|pY1<7p{^PGLzRU+#&u&V=& zB_N@wgx!y!g}!oxJI_8lO@6&&h+jJmK~=Vvs_Z6r%?_O;3}JBRHS8IrUJ%_-a<-mg zH(tiBj~AHD2@&o&c`!NUf;q}Pw7kG_!793)73>bN+{v*Y3Q;vXD3)I8`Qd%NdU)=H z*8AJOUiCVqpI41htX}qneQ%o52hXDBB!Aaxt9M;9IcxQ*U8?(d*Ts0x_VMz4mL|ln zpC_I;*x&0nbN#*O#=DmG;~h&AOlWp3wLuXq11ZWI^u;L{jx`glTf?3t^8l}J2>Wr^D;g7M2C)(q|3Hm~n zz)?T%BqIm<`(IHwC5`HJVY&_jF#)uhD&xIS#!%af9c?2w%%>{kq9TadbfUJI*jFyV zGsY_wSJM3Tg~k#rN2uh5q7tmglD=O4pUe6~ceFEV4|>=cfl%{!|Id}RsQUhj4YStl zSQg8ygS=864kwp8A)d#>olKqB5N3)B0kos$J-Y*LP*~njN}X1$s>DzXYutCN{>a zMK|oR(1|_J$Lqh4cOqnv^+wD(8gJ1Xp(Ou!^CnY2FCX*P%yIp_S{zm3Ti84VQrSlJ zM+EEQk`b(nPxihejK|z)5#D`5a%pUGN!Mhk7_GIn_ekn;u)mjo_pJoi)pi4tKq5Po zvfkvp%Eq)gU{rL�~Ja<=4xFFal#?1m?ZKoL}grXYPuz$i0cW`9MMx2Bcza$bi&V zz$*qCIeNQoQ3b^80~Org4h1NQ@6+; zE({LWZVN_hiO}(Tq1uz6;&Xy`saw%eGdAjdK*_4Hp4DSR{mu^XDg(U1F1o`wzzbS| z?2ulGb9G7#xCzw(3h_V`gI&tHpkQn7(z(snPTMTB#p=A$A{C>;GeY2vnK#~S6m))n zbOdIXc*2Eq4sT3AD1?&%iIodoz8&D@Cufcv*spxuKyQKN?}7pQ%0O?kL5(fu8;@?!aSz*~Xb zJz+My;Lz0o(Nd&;4Nk$umWyum27#j_A-cv5bx-LkeIy1;sJzQ z*aPxl?s-Wrn#;|V;Dx7ADa@BbFm*46VM4`4i=mXkTUF}LBWX#G7YLmVOqI>-R*D$D z*Ahv-Q%CoQ*!aJ?ZggEW_6>gye9h1ugZvl#;V$)C)noNOHP6Aki<~c|Y2p>GU11<) zu=ilHpxw&W%gjYpQQ8%e@MJGRKHgwNBud;80;nCD!Mo5QZ_+0=V`Y>Zm#Qp zlQQi>qwELZ*Oe~BoFk?zuxqz0lxTXnIE-F4a}VIIMeP=N956}y<cf$9NN|!J>OXOwLADeL5H-=*3(n3`V^^FbijoEi`A*tRZ zv|i;RhomGJLh`A~r|#Oi|7_%^=Jav(eknagFjfWnm%H79Ib?QWblq;)psq;g7bCYH z5+5}N-QeYvJK;l7r_I2wLh~N#&;14d9BuFU`}PC0y*}JNpi{eWlhUu;<#wl6Hc;`I z?H3pCiPEqGfV2knT=*V_z6s)P5H57caqv35k<92N*dV--V50{KruY%0(?c7e=Tr6( zL_&KIx*>MKGxSHnrum})8dGLQZ-mPMpqiPfZ#KFtwalng^?gWBk9R}FdVn()d;TE* z&z>GMI~X*ev>l}}(&f@H|IdjRt(m(DJ&`2vX`$2L>8e9AWl=iC$S7gccF2Y*kAZ1x z{z3i4A>RxuR?e2o8q3QJTOk;5izT`OSqgVBf&VtwKKI=vxE7e4EHm8rWbE8KHKBGk z$GtobfnD9tlwS>d%y4Px?F4ESu^DvsFW2kVnnP`TjeFf2<6z#AO{^a$cj1nV1K0e9 zyn%DB2HH=7a7hWXT-Jdf@+cq2@#DCPaonnL7!4BbkMpb68(=YLlld#KT>zpWH0V|k z7%W#zgzv{rNSXHn><6Gf>;MEB1cK{nAb7vLIb3}srt&cbqoB zCU5&~jKquVAnH^X!@zgw=eh;qQ-xzwLqY8g<$NnUCh`fwJxTbX`IA!~#rZa;C7<0a z=C-V0tL=}z3Y4@mzafa`zrrY z{*9);yvm=j$pH2(_oU z5mSLXOQILM+Iwt;eadU7;!#zBDmSXiDWp-gSVcZ<15#xbY45PP_LpC?i5psYl;3Ho zKoAu$CJN(DTgPUJtAnOX%&exh9#m;>y{L2YoV9teD>Ved4EB#Nc-!|`q%lt77TICAmZmv zdZlhA0Y;mswp4Nq{>{Q6u1JE#iIq%m9U8b(ggZ^+^i2Mg z)PGu)QzSFB1aRvj3H*Z7L^(~?btPxNCR@HHIIcH@u4xUlW&$wVVhcu zrDA%M3W;6nzIz3AXdtDKpIbC2VcfEvQwr%~dCG4>IH5o)#uY$jr3+wyAVqgYPbfkv zI;Ds|S@f6*t9?XqzmbcV*^`zri$f++;0t4mgU_wXGYsHcvtHI&!Bv|J|z_dgIQ z&!%^6y0STV%|#4ICjr3q+4WhJDu-;+*$rCCVs(x`3&{-@nww3yrwIFrYFTsTkYZqZ&J#cBVq!lDb%u7>*S;l0*FIWO_klLDZkrZa zVEHj=&hXjfrKh1oYBcmIXwq<%1@~Ev9&AB0DhMry*EyT0V*r?Rr``x60$p8bgdr+N zFqv*P<20+Tui=jEddKm!qxtMp1R5xQ5;Ut(;EZOK!5D5}zlo8+?hSI5V5Hd1m5{;* zc{E*F_$C#I-lv-`JL>i799@=A6a)mc{GFvY_T37z{~o&$?QS8B^ppdn?wsIeYe+yqBRkA7nY zw654Ua@-!b+a7$I|4-=<*C3)sidhF4QuY_^qyIBLBl|I^@dWq#Z_WD{Q|$I&;Y@U? z36vM4^3mvKb86hQ$&Gc?+eHJ*q5G<>9w^egA?+1i*$1ysplF-Lk0IeRZzE@_2cmWU zZPd}Y#s7=dISnT8I5k+uh`a%BFqW}Rw@nb()AV`2zxy&{MEzG5lv`+6g)H;`{P5N!a+I!1`v z3zQvuhggu5-b{{dMj#s$u9FBq)}5Fx7wO}OS&7kA7$>GCPanillc(c%h}o0Htc8;& zvw2d^&d$I!d6O=U9aBP;H&<@3wd8O|v5;K$<*snoPVtpPM+tw(-LLmrwooi`zRMQj zBwIM?(z^XfVXpg(l$YP&`VjNIZZ|2g{P16eB<9%KqpNfY>2yOn+PoWPC|74v~znkimWjdquo_$s6t2PduMtV?FORKvo}; zvHJ;vnt0t!#(sv^f=+z5;dpi2p)8TKNF1-0NXknR41@{qi|PAhwh+=QvWkVy;noh( z7`*11!r_Z0OT;jIy2N8Z+}{3-$eM==$+MgA$$URoNPVaZ(f^zB#LWn_TqBvg{!B7| zAc2qo8r1_~zJ@Q6Eapzkg~}Zq#)m^^ZOsv?>JWDEZG6I{S*Z?~b8H0A30O}g;ozBM zV@t=L9r&lfR$?P(_cGsQ(`B=s1fMFi+Hlc;F55`BK-o^XKsYV0C;XI(o9>-bgv|S1 z07c5%Y@r(nY!gr)VZUGry9w6`)LvGRUOXT`02>lQV1GM@-&}DscGmhz^&>Hhn;?nV z+yj!B!%dVNLgeMp4_p3F`FuD1FS^(DhUT?8Vk-*@YER^()E>`Cp>any&D@kb47mex zKh7=4tI6xmI@xw=jc}pmLNJb=h$=64a3I~n-7g_-|BM9NHQ-qZry5+-H{+T<^V=jx z;6W)NRZ5s4X}9B*U%cuD*Zq<$kSeuDdTG{-3MoNY-UT^C*YI>6k_iWA3C3 zn!q5Y__s+{MAmtzg)hIEQ&hg*dtKifZykB>gvmH}1qb;13nOY=ZY|b|Oqp8`57YWc zf25p*jZ{C78ZmH$|7RH8f!Ji>NsKSpGeYYL9?t8%)&ejTBi7j|&$EA$`+oyu1hyoB zFs@ z{|oMsVcf1iKtA&S2f4Tlnk4Rq8g-B)<=~ejJXVbdr^ZiENxkIfW2U8V@Q1S2rPrPG_pxFrI3t6C zKOV|!U!8A588<+n$dT+SSEzqdNB_iY`j^EXx?iearS-6XnNJlXlHCP|d-vJ^KUH0W{Yo^Ay0wCHXyz19N5+aAHu zD`mLT0uEtkU&5spM{HGNW8jk&DS^E!QXJ}v$py;_D)H|a{#6z@Dqm#FvHDr}TAT`N z$CPYx-}5M^J#RM_RQ|4EGN(=2R9=fzqPrHU#B!R~*?{{WJ{TlVG11F+2NCm*o(45ma|IZBC)%Dje z2)E;>UkG(x-A+4V+}Kb(H4_8$emcV6cWBZ_q8;$L(uYBxrWJhZ2D#fEi?@D%$6_x& z@4e@J$85aB8#gB7`+j^IKFHpFRb!xJ$SPHg7ub>4>?_BoAx&Ur|0NL7qja>-1~#+`g8LN2X_C9xSE~>0)4_@@&R$0^H zX_jjK$MX%gP){3n8PB%}8hZ>r>Sr7i+i7m1y{upBKkXk@@zb{Vb#3-uYCHX{q)rGl zOYE7zHxm2p&Nk^{n^bd#{Q);~$7*r@Q65dgn3EHi1CfsMGRWllKj2UNAyM<3lbX%y zHn?UVRdG-I?6WrqleK8eJG=R) z2*DBiBmMfRVeKi4uPhef>MRTrxZVfkqU(pm_=Iy(WvxMG&xt=K##Pql_}K5nbA57s zp2vNG!9HyeHt@cIU-4_;;XdomTYSq_QwnQ0Q}XR^SDzm2+j*aFPxrDBfr&oL(6y&* zKK$5vybo044x!CQiTNIcvD!|X4{Y7#3nclF2!><=R-ema4V;s-o|OT{XU**IgA~f5 z*0x(9X7NW)iZAgcEmHi+{-5fACRx*dvS!}p3yv*|hH^dblaniJzO!cjDtV^)=w5 YPx`osrqakJQCjbBd diff --git a/variables.asm b/variables.asm index 86ab9c4..f9adf2e 100644 --- a/variables.asm +++ b/variables.asm @@ -197,6 +197,7 @@ FallingSoundBit .DS 1 PreviousFall .DS 1 EndOfTheFallFlag .DS 1 ; in case of the infinite fall ;Parachute .DS 1 ; are you insured with parachute? +FloatingAlt .DS 1 ; floating tank altitude ;---------------------------------------------------- ;Flight ;variables for 5 missiles (used for mirv) diff --git a/weapons.asm b/weapons.asm index f97358d..4de618c 100644 --- a/weapons.asm +++ b/weapons.asm @@ -2414,6 +2414,168 @@ InverseScreenByte rts .endp +; ------------------------------------------------- +.proc TankFlying +; ------------------------------------------------- +; This routine is run from inside of the main loop +; and replaces Shoot and Flight routines +; X and TankNr - index of flying tank +; ------------------------------------------------- + ; Let's designate the flight altitude. + mva #17 FloatingAlt ; for testing + mwa #mountaintable temp + + ; now animate Up +TankGoUp + lda ytankstable,x + cmp FloatingAlt + beq ReachSky + ; first erase old tank position + mva #1 Erase + jsr DrawTankNr + mva #0 Erase + dec ytankstable,x + ; then draw tank on new position + jsr DrawTankNr + jsr WaitOneFrame + jmp TankGoUp +ReachSky + ; check keyboard/joy and move tank left/right - code copied from BeforeFire +;keyboard reading +; KBCODE keeps code of last keybi +; SKSTAT $ff - nothing pressed +; $FB - any key +; $f7 - shift +; $f3 - shift+key + +notpressed + lda SKSTAT + cmp #$ff + jeq checkJoy + cmp #$f7 ; SHIFT + jeq checkJoy + + lda kbcode + and #%00111111 ; CTRL and SHIFT elimination + + cmp #28 ; ESC + bne @+ + jsr AreYouSure + bit escFlag + bpl notpressed + ;---esc pressed-quit game--- + rts +@ +jumpFromStick + cmp #$6 + jeq pressedLeft + cmp #$7 + jeq pressedRight + cmp #$21 + jeq pressedSpace + jmp notpressed +checkJoy + ;------------JOY------------- + ;happy happy joy joy + ;check for joystick now + lda JSTICK0 + and #$0f + cmp #$0f + beq notpressedJoy + tay + lda joyToKeyTable,y + jmp jumpFromStick +notpressedJoy + ;fire + lda TRIG0S + jeq pressedSpace + mva #$ff pressTimer ; stop counting frames + jmp notpressed + + +pressedRight + ; first erase old tank position + mva #1 Erase + jsr DrawTankNr + mva #0 Erase + lda XtankstableH,x + cmp #>(screenwidth-10) ; tank width correction +2 + bne @+ + lda XtankstableL,x + cmp #<(screenwidth-10) ; tank width correction +2 +@ bcs RightScreenEdge + inc XtankstableL,x + sne:inc XtankstableH,x +RightScreenEdge + mva #25 AngleTable,x + ; then draw tank on new position + jsr DrawTankNr + jsr WaitOneFrame + jmp ReachSky + +pressedLeft + ; first erase old tank position + mva #1 Erase + jsr DrawTankNr + mva #0 Erase + lda XtankstableH,x + cmp #0 + bne @+ + lda XtankstableL,x + cmp #2 ; 2 pixles from left edge +@ bcc LeftScreenEdge + dec XtankstableL,x + lda XtankstableL,x + cmp #$ff + sne:dec XtankstableH,x +LeftScreenEdge + mva #155 AngleTable,x + ; then draw tank on new position + jsr DrawTankNr + jsr WaitOneFrame + jmp ReachSky + +pressedSpace + ;================================= + ;we shoot here!!! + jsr WaitForKeyRelease + mva #1 Erase + jsr DrawTankNr + mva #0 Erase + lda XtankstableL,x + and #%11111110 ; correction for PM + sta XtankstableL,x +GoDown + mwa #mountaintable temp + clc + lda temp + adc XtankstableL,x + sta temp + lda temp+1 + adc XtankstableH,x + sta temp+1 + adw temp #4 ; center of the tank + ldy #0 + lda (temp),y + sta FloatingAlt +FloatDown + lda ytankstable,x + cmp FloatingAlt + beq OnGround + ; first erase old tank position + mva #1 Erase + jsr DrawTankNr + mva #0 Erase + inc ytankstable,x + ; then draw tank on new position + jsr DrawTankNr + jsr WaitOneFrame + jmp FloatDown +OnGround + + rts +.endp + ; ------------------------------------------------- .proc CheckCollisionWithTank ; -------------------------------------------------