From e6ee6a08b764ffa64de68b2a3b536b70611fc2ea Mon Sep 17 00:00:00 2001 From: pkali Date: Sat, 23 Apr 2022 13:18:29 -0400 Subject: [PATCH] pre build. bugfixes + new font --- artwork/weapons_AW4.fnt | Bin 0 -> 1024 bytes constants.asm | 75 ++------------------------------------ definitions.asm | 77 ++++++++++++++++++++++++++++++++++++++++ scorch.asm | 65 ++++++++++++++------------------- scorch.xex | Bin 34091 -> 34101 bytes variables.asm | 6 +++- weapons.asm | 30 ++++++++++++---- 7 files changed, 133 insertions(+), 120 deletions(-) create mode 100644 artwork/weapons_AW4.fnt create mode 100644 definitions.asm diff --git a/artwork/weapons_AW4.fnt b/artwork/weapons_AW4.fnt new file mode 100644 index 0000000000000000000000000000000000000000..4b6ec5ed159fa9306b043d81ba05a0797e1f4ab6 GIT binary patch literal 1024 zcmXX_Pe>F|82{3cJuJh39v(C-9`+!y)Dj|(7=~@|Rv5(g2QylP=1|MFgv6qcaqS>o z3f$-*h+#(~JPJ}M2y^H#bZHMIIY_)i=q3`n$n>_~oAqONzxVt8|68In;vnKwFAOnG zy}c|udhO=?i#ijLFhrgx+~HLj5M|wtn}tt44Lnb$J+;$Ro{jH#c9Hv z6V9@^L8$p?@m>KFA8o9@UnqUj(x zxWpd&;?%ug3z@8?8uq^5{snmz^vs6+zG^nHFZzV|kmJyk{U6(TCl~!+H+PWgfoFA7A+6c`U^o N-(e|qEquXD`VXIDY&8G? literal 0 HcmV?d00001 diff --git a/constants.asm b/constants.asm index eeee2cb..6addc74 100644 --- a/constants.asm +++ b/constants.asm @@ -42,11 +42,6 @@ LineBottom LineEmpty dta d"# #" .byte $ff -LineHeader1 - dta d"# ROUND: " -RoundNrDisplay - dta d" #" - .byte $ff LineHeader2 dta d"# RESULTS #" .byte $ff @@ -288,9 +283,9 @@ costable .by 0 linetableL - :screenheight .by <(display+screenBytes*#) + :screenheight+1 .by <(display+screenBytes*#) linetableH - :screenheight .by >(display+screenBytes*#) + :screenheight+1 .by >(display+screenBytes*#) ;---------------------------- bittable .by $80,$40,$20,$10,$08,$04,$02,$01 @@ -638,72 +633,6 @@ TanksNamesDefault dta d"5th.Tank" dta d"6th.Tank" -;Weapon prices (*10 on screen) -price_Baby_Missile___ = 0 ;_0 -price_Missile________ = 96 ;_1 -price_Baby_Nuke______ = 111 ;_2 -price_Nuke___________ = 144 ;_3 -price_LeapFrog_______ = 192 ;_4 -price_Funky_Bomb_____ = 293 ;_5 -price_MIRV___________ = 456 ;_6 -price_Death_s_Head___ = 337 ;_7 -price_Napalm_________ = 0 ;496 ;_8 -price_Hot_Napalm_____ = 0 ;511 ;_9 -price_Tracer_________ = 102 ;_10 -price_Smoke_Tracer___ = 291 ;_11 -price_Baby_Roller____ = 689 ;_12 -price_Roller_________ = 600 ;_13 -price_Heavy_Roller___ = 592 ;_14 -price_Riot_Charge____ = 0 ;330 ;_15 -price_Riot_Blast_____ = 0 ;341 ;_16 -price_Riot_Bomb______ = 369 ;_17 -price_Heavy_Riot_Bomb = 322 ;_18 -price_Baby_Digger____ = 336 ;_19 -price_Digger_________ = 276 ;_20 -price_Heavy_Digger___ = 253 ;_21 -price_Baby_Sandhog___ = 218 ;_22 -price_Sandhog________ = 191 ;_23 -price_Heavy_Sandhog__ = 305 ;_24 -price_Dirt_Clod______ = 104 ;_25 -price_Dirt_Ball______ = 130 ;_26 -price_Ton_of_Dirt____ = 171 ;_27 -price_Liquid_Dirt____ = 0 ;530 ;_28 -price_Dirt_Charge____ = 581 ;_29 -price_Earth_Disrupter = 0 ;430 ;_30 -price_Plasma_Blast___ = 0 ;274 ;_31 -price_Laser__________ = 577 ;_32 -price______________33 = 0 -price______________34 = 0 -price______________35 = 0 -price______________36 = 0 -price______________37 = 0 -price______________38 = 0 -price______________39 = 0 -price______________40 = 0 -price______________41 = 0 -price______________42 = 0 -price______________43 = 0 -price______________44 = 0 -price______________45 = 0 -price______________46 = 0 -price______________47 = 0 -price_Heat_Guidance__ = 0 ;_48_($30) -price_Bal_Guidance___ = 0 ;_49 -price_Horz_Guidance__ = 0 ;_50 -price_Vert_Guidance__ = 0 ;_51 -price_Lazy_Boy_______ = 0 ;_52 -price_Parachute______ = 1100 ;_53 -price_Battery________ = 0 ;_54 -price_Mag_Deflector__ = 0 ;_55 -price_Shield_________ = 0 ;_56 -price_Force_Shield___ = 0 ;_57 -price_Heavy_Shield___ = 0 ;_58 -price_Super_Mag______ = 0 ;_59 -price_Auto_Defense___ = 0 ;_60 -price_Fuel_Tank______ = 0 ;_61 -price_Contact_Trigger = 0 ;_62 -price______________63 = 0 - WeaponPriceH ; weapons prices (tables with prices of weapons) .by >price_Baby_Missile___ .by >price_Missile________ diff --git a/definitions.asm b/definitions.asm new file mode 100644 index 0000000..5d796f2 --- /dev/null +++ b/definitions.asm @@ -0,0 +1,77 @@ +; @com.wudsn.ide.asm.mainsourcefile=scorch.asm + +screenheight = 200 +screenBytes = 40 +screenwidth = screenBytes*8 ; Max screenwidth = 512!!! +margin = 48 ;mountain drawing Y variable margin +display = $1010 ;screen takes $2K due to clearing routine +MaxPlayers = 6 +maxOptions = 7 ;number of all options +PMOffset = $23 ; P/M to graphics offset + + +;Weapon prices (*10 on screen) +price_Baby_Missile___ = 0 ;_0 +price_Missile________ = 96 ;_1 +price_Baby_Nuke______ = 111 ;_2 +price_Nuke___________ = 144 ;_3 +price_LeapFrog_______ = 192 ;_4 +price_Funky_Bomb_____ = 293 ;_5 +price_MIRV___________ = 456 ;_6 +price_Death_s_Head___ = 337 ;_7 +price_Napalm_________ = 0 ;496 ;_8 +price_Hot_Napalm_____ = 0 ;511 ;_9 +price_Tracer_________ = 102 ;_10 +price_Smoke_Tracer___ = 291 ;_11 +price_Baby_Roller____ = 689 ;_12 +price_Roller_________ = 600 ;_13 +price_Heavy_Roller___ = 592 ;_14 +price_Riot_Charge____ = 0 ;330 ;_15 +price_Riot_Blast_____ = 0 ;341 ;_16 +price_Riot_Bomb______ = 369 ;_17 +price_Heavy_Riot_Bomb = 322 ;_18 +price_Baby_Digger____ = 336 ;_19 +price_Digger_________ = 276 ;_20 +price_Heavy_Digger___ = 253 ;_21 +price_Baby_Sandhog___ = 218 ;_22 +price_Sandhog________ = 191 ;_23 +price_Heavy_Sandhog__ = 305 ;_24 +price_Dirt_Clod______ = 104 ;_25 +price_Dirt_Ball______ = 130 ;_26 +price_Ton_of_Dirt____ = 171 ;_27 +price_Liquid_Dirt____ = 0 ;530 ;_28 +price_Dirt_Charge____ = 581 ;_29 +price_Earth_Disrupter = 0 ;430 ;_30 +price_Plasma_Blast___ = 0 ;274 ;_31 +price_Laser__________ = 577 ;_32 +price______________33 = 0 +price______________34 = 0 +price______________35 = 0 +price______________36 = 0 +price______________37 = 0 +price______________38 = 0 +price______________39 = 0 +price______________40 = 0 +price______________41 = 0 +price______________42 = 0 +price______________43 = 0 +price______________44 = 0 +price______________45 = 0 +price______________46 = 0 +price______________47 = 0 +price_Heat_Guidance__ = 0 ;_48_($30) +price_Bal_Guidance___ = 0 ;_49 +price_Horz_Guidance__ = 0 ;_50 +price_Vert_Guidance__ = 0 ;_51 +price_Lazy_Boy_______ = 0 ;_52 +price_Parachute______ = 1100 ;_53 +price_Battery________ = 0 ;_54 +price_Mag_Deflector__ = 0 ;_55 +price_Shield_________ = 0 ;_56 +price_Force_Shield___ = 0 ;_57 +price_Heavy_Shield___ = 0 ;_58 +price_Super_Mag______ = 0 ;_59 +price_Auto_Defense___ = 0 ;_60 +price_Fuel_Tank______ = 0 ;_61 +price_Contact_Trigger = 0 ;_62 +price______________63 = 0 diff --git a/scorch.asm b/scorch.asm index 23a1a25..25f36f7 100644 --- a/scorch.asm +++ b/scorch.asm @@ -35,6 +35,9 @@ ;and due to being always short of time/energy (to finish the game) ;we decided it must go in 'English' to let other people work on it + icl 'definitions.asm' + + .zpvar xdraw .word = $80 ;variable X for plot .zpvar ydraw .word ;variable Y for plot (like in Atari Basic - Y=0 in upper right corner of the screen) .zpvar xbyte .word @@ -72,15 +75,6 @@ displayposition = modify ;------------------------------- -;constants -screenheight = 200 -screenBytes = 40 -screenwidth = screenBytes*8 ; Max screenwidth = 512!!! -margin = 48 ;mountain drawing Y variable margin -display = $1010 ;screen takes $2K due to clearing routine -MaxPlayers = 6 -maxOptions = 7 ;number of all options -PMOffset = $23 ; P/M to graphics offset icl 'lib/atari.hea' icl 'lib/macro.hea' @@ -92,6 +86,12 @@ PMOffset = $23 ; P/M to graphics offset ;Screen displays go first to avoid crossing 4kb barrier ;----------------------------------------------- icl 'display.asm' + ;---------------------------------------------- + .ALIGN $400 +WeaponFont + ins 'artwork/weapons_AW4.fnt' ; 'artwork/weapons.fnt' + + ;-------------------------------------------------- ; Game Code ;-------------------------------------------------- @@ -590,7 +590,7 @@ PlayerXdeath .proc jsr DisplayOffensiveTextNr - ; calculate position of the explosion (the post-death one?) + ; calculate position of the explosion (the post-death one) ldx TankTempY clc lda xtankstableL,x @@ -604,7 +604,7 @@ PlayerXdeath .proc sbc #4 sta ydraw lda #0 - sta ydraw+1 ; there is 0 left in A, so... + sta ydraw+1 ; there is 0 left in A, so... TODO: bad code above. revisit when transitioning ydraw to byte ;cleanup of the soil fall down ranges (left and right) sta RangeRight @@ -616,14 +616,12 @@ PlayerXdeath .proc ; We are randomizing the weapon now. - ; As we are jumping into the middle of the weapon - ; routine we are preparing the number *2 - - ; - to make it easier and because we are using only - ; first 32 weapons we are doing this with just one AND + ; jumping into the middle of the explosion + ; routine lda random - and #$3e ; range (0-31 number multiplied by 2) - jsr Explosion2 + and #%00011111 ; range 0-31 + jsr ExplosionDirect ; jump to after explosion routines (soil fallout, etc.) ; After going through these routines we are back @@ -1115,9 +1113,7 @@ WaitForKeyRelease .proc rts .endp -;---------------------------------------------- -OffensiveTexts - icl 'artwork/talk.asm' + ;---------------------------------------------- icl 'weapons.asm' ;---------------------------------------------- @@ -1129,35 +1125,26 @@ OffensiveTexts ;---------------------------------------------- icl 'constants.asm' ;---------------------------------------------- - icl 'variables.asm' - - + icl 'artwork/talk.asm' +;---------------------------------------------- font4x4 ins 'artwork/font4x4s.bmp',+62 ;---------------------------------------------- TankFont ins 'artwork/tanks.fnt' -TankFontend - .if TankFontEnd>$9800 +;---------------------------------------------- + icl 'variables.asm' +;---------------------------------------------- +TheEnd + .if TheEnd > PMGraph + $300 .error memory conflict - ;this is to warn if code and P/M graphics - ;overlap! + .endif ;---------------------------------------------- ; Player/missile memory - ORG $9800 -pmgraph + org $b800 +PMGraph -;---------------------------------------------- - ORG $a400 -WeaponFont - ins 'artwork/weapons.fnt' -;---------------------------------------------- -TheEnd - .if TheEnd>$c000 - .error memory conflict - - .endif run START diff --git a/scorch.xex b/scorch.xex index db52fce39549ab3c2f77050df508f905077ef2b3..6754486d0dd5d570764a18e16d1e399afb6e95d8 100644 GIT binary patch delta 13113 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 QQF<}>YMbG_fxGX20df8?u>b%7 delta 12968 zcmbVS31Aden(pqLgg}}@QsFSor9=^f9JUw|2#APnKn79qY79ggNps1Wkjho?UUe#+ zP6LA45CaubA%zKeW!83F6{WL=E$?w05OovDNV2_*v*Ngr{a$q^5EN&23({5Zzuy1; z|9|iO?|4Nt9TrUuv&Wd`lVfwnl=O?RcxHOFDcA9@Emd-)RFje_O*E;uno|C!k5RhS zq!iD{mAA?argEc6>i>ylX!frXj-6>~NViOx zr5L44#8SOZF|haInU?6MV~(sM&He?%`}EY|{K9mLYZe1szn!EP63)MsY}-zJTZ#V} zvaOK#o?#!S%1DJpiv{jfC8-!<#mB|UFww;_Mr7Nct{A|D&t~(>>Ut84uz9Cy=MuqH=ifuL2-{B?uvrWB7v)LsnP8@1 zg5}XImW!EahGnADR+?e?{VdDc#hqa1mjYPhI=zQjq90OQN$>%P9VJSmMN3B3K^F># z-If84`cp)Uu5s=0eNJSTaH!iQ@*%;+gXR)ZM~lG-%YpSemW9EdhkC+*QC$|*&08G> zWnnbwG^vVJ4BSfRX;KlvIpPpF>>DOj@%t_e_nBS=EY(&fm$Ar-M5LAJ_K`_iFv<_J zMK_!OY8#LN7nE;u!!VZ(*7+Jy<30*Zt@tUhuHkReMtA)tH6b-}xmfkJjly5+$v+e;Z``-s1i zaJlYzgPBnr%t=kw0NfXiD{$x{czgfs|_N; z_3W8w?E-|26zy{%EAA7C(^kx=Hn1kdz?TjG?aO8U2^Y3|4tl=GCBY72zHkNvp^1f0qaze=}MHxZq_XB7~jlv+mP+BZt7 zKrG*`vt7(Qtr7Fb%7pHsoi#L9Z|INJ20uC}-$>4$V*?-y(e0JhhV5Q|BRO@H1V>gR zL+PW$*GOcK? zoP5vy*+msT^@BgR{e8rw*$-{l`O^E}M~}WE>*)>ht0y`yCf<6NBX@m1kt%jQ|Jv#Q z_&#VHK4yI81CM5J^Bwk|?np=+mOOf#?eTTHk2Rm_{Cnc{nU2ba_kT>9_2^0}9eTB8 z)~s2xd!FU&>#knUobKoD%g@}apL=>e^Ljt`h96t^<2}u<<1cqe#IoK|;mglST%G^P zthxTBS##|NvKq7gkkyj)W!8%M%jOSRP@PqsRgB+~1?3C&>ZOAVjxKm>!KVxUvf$GF zgBFfkIDO&03m;xso%Iy{s&!4fty&r%YYyt8&l_yr&T8;pIGej!Ha z%$k5mqEanYw@^u;Y95v9sG3iu!<04Xx}G|IQ_EgjLtkErk`A#!qn-_jQYrfs*yp^I zil;~VQMu5U0I)9+U|%x8z8f*Dwp+fvpEVEj5o?{=pK=aUTwF*Q zaEU2KZLrm!K-(k1?oXuc21u}Nx}Wp&3Dgk=Vs=T?r>PyOmXsK7TQWrr{u?RaH&TBx z4VZL~5=H1T*>J&bjb4<;>l?p^I3K(Jk!oakKHru#OO6;#0uoqA_Anex*7!|S~^H_Y? z8zXh!4Cz(s?sI$yIX#U0uLty@y_QYyTOKPEN<;Izz~=X#9xD>IV}jqIjFWDo${J}B z+#!t>;iVfycW!jM ztd0|Tp+rp)g;Mn2>-1FEkQLEc`}j+e$2M zy_-c=?w zEI0@ah@s{fi_(QMKp(}(<+>?=tOJ8xE^l5Hp%kp22|vA%(|Js@c|H~F~aGLFdbv9 zP$(2B?+e9@Dh(Z1osN#HrlaGACNKNd97ZXXMSAq$!3aO}0-Lv$Tm(09E6<^g32cmr!Fb zJt`t>YZqUsift_qV*l$1=QwCq@gZ1jBOk=7>2(5VpiAp_`b}cSA_m%n0PHm`D=_Uk zITHtb>KPr5gZGr;$P{J8_BpAUn0=b9abArq!kcwzC zU_pj&%bumd?~pHsYWSR(qm)}OW6p&zdj34M;U}zsFtvvlKzfoCuxJT-FIQqPb7S7t z;-Ni0{cjSK6az19r_kw&NgTZ#k%=yj&_oAEY(hXjtuLV*vI~r`Y>MB4DF%2eatw^I zY@*M{3>BK{L!A{&nN*rZrP)-O!dem0Ih#VKHlnYAVREVBQJ7-aKHU(&Cl~J9EkKlkB7e*QO z9j!%$zGu@uCg`BUf)UV3X9*4n_XhrQchD=)63}ujj*&;gd&8FKtHxNQ^7^WgEv?v; z=LyUR5t(!%G#Qy*)4GuCVKpvgvOx6FF&5KlPm?W}BiWL=#+5abR`g*O;2lQadBTbV z^qP#mHlkPMI~Rgl!QLK*V#+@E&sC$&qA-;DP)Mghgm#mz;x85B*>YGY>edXdaxKL` z8w#Gjn(;)LQ%@v|^hC0lA_SxYJ;CIuGP!$-KABvGlHViIBllu#^`^e?3o1bU=| zmX8t5*IC7OIkdp5W6{ROX@og%z}s)wCW%xikwSiT$5&dB+?RZ8{h4W~~20a7LryUzv5^PnUp&efl2@D%pU)ey_jkF!@-$>2z zA$zj{ul_L=hDqksO*D56MP3by=dRWB>Mb;P9ZRikeIK;~-O-Ki=tg(wXvQC-eoM4l zf>C${Z{XC`H1`Z)##uvizb4E+Ygq?gOI3ay`&dV9%OP_$?dT@!=q7`vAX~>YUPsje zHuCdqzA3_dqZT7kgnr0{wov3kc@()&KGk!fD+2`xsV9KysTQlYP%H&%m#VEi(QX3^ z^7trFv3wOJ^He6ZkO?hfLW`Nu5*3^gnDlHr9#N+-^i+nvouREj19SDn_Zw4Xy^{uG zNSTwTwi%Bp`eFn==ruH6IWo2|Phf?E&M5u=2gj;q2>W_!dtym-Bpm3w3-;ekee+m< z^3A8Pzi$!qk?&#VAm8K6?!Ihj%Cu4u=k!|XgF^fLTe3eUnV`m5b%>d z?62h*vB7addNj)m`Pev@@5gxik>PW+o|@9?7NJ z9sl=eXTc7)`&YpIwwvsTR34%3zl&~rm|4R=k8XRM*~34dZp&sSu>~Ku0)4R?eX$#T zQAhtW)cuQCsKbo@hgqn@lK#hGB-qlQ&EDD6Htz{5s1WIlihr0Q)I($#UUf3Ov)OQ$ z8W#%52-`qAGzu7l11oO4BL8}QgYA*Wp>tqHh52eQ*tN;Pv1pmkIxWnmr{}O77Q)&z z4oD=Aya#BckCjyhRQ92#VHDt)A?NoBeaq_`zz3T>@;LtYstfQc0~02&T$D)@SUOtS z=n;xbODspTKyWn!_O4gZ>PY4WJ_>u#sZ8)SI}Ze){;P7lE4L7O?;4|_myf3wBi=bge`frVr+XPUJcjltQZ2MDf&z^ zRiA-w*JmIrwd)&jb@pEds=k4PoIE#Kl%kL_=UPN5nyS(897dNY8px=KQ!;>p{Ag;G z3p9dkpRy~O`k3fPpuyZ9*R}y5u=agt5Y;PXZx+tqnM` zlAOMq`0pm>cQ4(oQ^jb507L;mbXXN=MjMaGCHYBw)!$7{oG4pG>gSSbLq^k%JRFTQ zmF3}dM7L~b{XL|~lP7&e>gSQB-FebCr2byg^n9L_Me1#&sVYx;n$+J%n&dobKJjKQ zm>zRCiHqBIH}P&?Fw(S=c$Ed&JdP%!E#GdnWoBD!+1=*_-`SNZ(uh>#4cDjQxCi#o z&oT6kX|(A&u~v3rrC8@rBzy0je)hy$vDyzH+DfD(5hp#;P*Jf9N0sTqG0QV6lqo_f z(k!9cP(DB`A1Ia&68-&3(8w2;9dr$9!oiSKtVK8BSg57AfkD0d?ziyUN~$6~rJP*q zNED9Bg2Nyj0~h35K3GxXVenx+@Rnj$uT+eBQJ?IY3wHvtLeS}q-E=x9x>#jZM6~CI zN@D(rlRb{tfUb0u2*;|T8;^QQPrNlm`|;f1R8bqOUMFgO)B&P2NVIKRrVeBu;+fQj zzV!pdyj}_EySTlWV>s)R}jlq5=2Z`npurg|$yqp!-NIposLNeft z^199tbfBoELJv}=bA*9VE(UrspgKh490@IhM82Vq6=K>Gpj}ADJw`ZF>v!4Pwr`g! zpEB3q0oUvG_RylSgT$sUsLhnaK8#|Gt2Q`;9pnAfQjE}qsgT%%`8zY!o1Z7s?x0O15*363=u0LtNT?=F3(6U zn~`b{#q0tiapKwXBvI*)V4Q?t{9uLUo)y(>m6$XM$0MO2t}-BugMIcUP0|DTyi$nI zvP2QCsvdi)Wk*mSc}Mt1pWksLQPfN+8Q?yv6yo~`=!1f_z0Z|6 zYdgc48HRIQ#?-g~@GT%!(+nc(n`+Xe6h4^H#9qEc5^9^>|5$N%;RkzltiO)A=onm7 z)#n^1dM7R($tQ^uhKe@@;wqxr<2sYXX04;nALZCPOeE&7)L~*vltUY(njO+GQ5~+A z2D8#|Q5~U|qFHH#SQXJUO!OSZ8Irxq$V}cpsh7}TkI-+zLUqPr;*C|t9!~RsfrAEL zHzbiu8fs|5>de!GHBjY|jc$L-eclU;N1E^&_TW&y<-WK$Y?>+=tsbmgjIEVIrRC#`e)+ilW%xBrp*q-WfS z{ta$*y&DHn&$xxk`VHE-YUlH-^>Bzh?MrZD=YELG1UxC=|-oLXjPczQ`1M}7r%NE_v<~o1jAT#RYId@?>A`}cpwAoL}UioLW4c7gOpH40)$3Vhbg=i zHyyT$nXW9cUc}y7l33d$=LVpfIC`C1Vt`7F0cciE=3NJxcN~AVOejfII0fX#5oZ#;lcG_NF4UiY0od9_Ns$`T#&CJQ(<$Ez8>|Fkw zP-6S@YOB1r)r<0Ttvj(%02&jc@hpE914iZYJwlPqu*NDsi*dYA-qTviW5;XknzrY$ z+5Lk2!trXf>G|U?1|w`wt(F-J7-WdIueuG#eH%OPz(S>S8nt5wq967RBCuD^)^M3} ziIyJTv!5y#Lct>BBv(!dFnjTbo{A(43Hpxz6s$F*sZ_qXSh}5U`C~Qn%Vn2asK9ZE za1hbx!-toDd?+8gw$07SK1ZzJlMe*rQ{$|yK3rZoU^~C&y@OV{sy$Yyk`L%WZg~~p z|FXssyY{Lzo1Ft-Ih!7)V=0UYBAqVBs48W!&3`LOttjcAX|y#&)($d2?ol(?@dCe5 zmvFF`1WYnlNMKVA69x$(vap110p6ugog{PHAe+%# zI!E-K(*%?nB2J$pSbnBlLIG^XgG*H5+D$niog39HfLMcP0d&z>jPC;x;gqfzNY z?75t><2)X>JY3jFZFAMQ^t&H86lbfv{X}CapFy)_u4f&;U#PpYzHa+^9lCmL6YJ-o z?AZXuIv4gajoaisX&)6cBOiyAcjbG3wBKY_(N|qqEEpP(g5uIf@5H5+tAPAQ@6x41 z(-+Ugk`x{=V4=_9)6pp$Lcvic)au1sg*sL&7Y-wUirKz;UlxX*L!LU@U)Fn@mX6>} z*m;!;Ta2{g-Qe3-NkcNj*pbcr1K~!g0y__lhXU_6+*DS<4*5KX^!l`62zMMhKD!a< zI-$6+j^XOcbP&6s$=c!-ckKH@0eU% zW$+wTKc&G@R`ny=fq;ORk7>t;6hhToKBj@xh8wZ?{FK`EZs0(Y+f9-iA_2voil}NM zD7MJ9$I|yEY*fUkuNH#me3!{eDNaNta*X%g-#2X zrSK=ITslWsId5KVxL&>1aGkM@rFw<-#!}SfDaCNsOaE)If_e_m{8gfyu(lRU|IS7r zTjHj$G`0*MCzRr1gmBXI@6`K0%ZBme1uBb<3PG%jX{3AoaO>XVl$ig@$rPg^1#JkU z;`Dd#D-3g$D!ol97hBt7>U2AHww4R^BwB^ zH|l(sIzPZ^#V+*{E^jJ^>KLD&`i^6$!3{H*MWrMB6x#*(e1(oUj!&XngAbYGEb_5G z+10~tbTH(KvRkclBa{{PUWtg8YFG+c>#nbHH`Tk3DDGe+(z&>sq(g38k>NLn&Ue*A z?vu6dBeia=t*sbyU?F5#%iPn^d~`v8f3S2*v|i7Yl{yl$^06vwFKYu~(O&z9S_UjB!p zzb?PlwSXWfd0U5kvswMa{SCL7H+yGInbM~Lp=D135`sMOfN5^O5eXqcdg zzkql9a3n0caSm+jzm<*X>_iZ$N~L}U$rGq*=+B0gWUzw4_T!dt=`gEy*{@cMrS)e7 zSC5fS`U>1gCw-#(^5#aBg*1ACKeLOuc1s4oMd=c}HLm(qguLqt&T7KN*mVB|^2G(x zFv8k&fn2;mu<*QD@Rshxr8-;&a>Po{xou@zt)TizNA~YQ-V*~HF~15O0|wll?bGnL z`sdu-mXEhGZO1chjm$`IFe90mk?i%EFjCLX%azI<{r%g`AN}c@znD48xK!(mxw^*CuWh=oBzQOWa}gxFuJ_<8pcTJ8q4> z?baz1#tiiycg&4?!MAV!^T!6RoNV&mz3RjlhKLAm%Grhfe9mCVS;eL1%rO|o zWOika0T&}@PygW@H@v?ASt!R@*BHDbZX5d~Lq*4PsrDHLLt2h=V@?|Af#(WX83?=! z;<uUNM-bCdO0m8Jv!cs3YnUm_uy@#cqR%e8w>*r z2IAMifwCaSV93vbhY9T z98|zwX((rBKh1Aq0&~*9s=uKD=$Y*byay+ZeW+k@7h1L^eGPuml5{i!&-nE8@$9{7 z>aBa(0DVPFnsDw!+{+>A@2cvtlt09S6z5EJ^$S!hkowrdU{{$moI(# z`@eX%O-|xM)>?+;3Uox;m;yYE(l8vxj^)A(Y0>G-_;%*+ zd?3?cWT+MmFoVOG1+3hkOV{NY7&tmVM4w~e;dm=VfkF3I8W5{=Zvm>q4LLmA1woL{ zjH`PG^gZ6v1xB+nY6e`7bSTdBM?mXdVv2;FWq`BN;ame;mzI+eLZrvTAHiDk0`;)~ diff --git a/variables.asm b/variables.asm index f324376..63a418f 100755 --- a/variables.asm +++ b/variables.asm @@ -26,7 +26,11 @@ skilltable ; computer controlled players' skills (1-8), 0 - human (no cleaning ResultLineBuffer dta d" " .byte $ff - +LineHeader1 + dta d"# ROUND: " +RoundNrDisplay + dta d" #" + .byte $ff variablesStart ; zeroing starts here ;-------------- diff --git a/weapons.asm b/weapons.asm index de096dc..97c043b 100755 --- a/weapons.asm +++ b/weapons.asm @@ -12,14 +12,14 @@ Explosion .proc ldx TankNr lda ActiveWeapon,x - asl .endp -Explosion2 .proc +ExplosionDirect .proc + asl tax lda ExplosionRoutines+1,x - pha - lda ExplosionRoutines,x - pha + pha + lda ExplosionRoutines,x + pha rts ExplosionRoutines .word babymissile-1 @@ -115,10 +115,19 @@ VOID pla sta TankNr + + ; this is to fix bug MIRV loops #6 + ; the issue was that after MIRV the flight routine called here + ; was mirving. This happened when a tank dies by MIRV and then + ; leapfrogs + tax + lda #4 ; leapfrog + sta ActiveWeapon,x + + ; it looks like force is divided by 4 here BUT" ; in Flight routine force is multiplied by 2 and left ; so, we have Force divided by 2 here (not accurately) - lsr Force+1 ror Force ;lsr Force+1 @@ -195,6 +204,13 @@ EndOfLeapping pla sta TankNr + ; this is to fix bug MIRV loops #6 + ; the issue was that after MIRV the flight routine called here + ; was mirving. This happened when a tank dies by MIRV and then + ; leapfrogs + tax + lda #5 ; fynkybomb + sta ActiveWeapon,x mva #5 FunkyBombCounter FunkyBombLoop mva #1 tracerflag @@ -677,7 +693,7 @@ rbombLoop PositiveVelocity ; first we look for the left slope ; then righ slope and set the flag - ; $FF - we are in a hole (flighting in missile direction) + ; $FF - we are in a hole (flying in missile direction) ; 1 - right, 2 - left mva #$ff HowMuchToFall mva ydraw HeightRol