From d5c1e1e397ba519108d96cda16e1f257495443d8 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Tue, 28 Jun 2022 09:02:58 +0200 Subject: [PATCH 01/18] Battery activation bug If you had a different defensive weapon, its energy was gone. --- scorch.xex | Bin 40862 -> 40862 bytes textproc.asm | 6 ++++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/scorch.xex b/scorch.xex index f02f07a053b95421b907b28e10755fa37b39dd30..97066979802ff0f0191619ce0d6cb8726ad67407 100644 GIT binary patch delta 66 zcmbQYpK0EHrVXjl#)>BmE{NPcIQs(sO4(lb*((|59-KY5cJ>D;AidM28_3*yroMI4 W-b?kZn>TKD;AieiYee0&Zm+D(L WZ`@?@l5yguoi5!#xy>`8*<1i=&LVpN diff --git a/textproc.asm b/textproc.asm index 8b79b17..e632d29 100644 --- a/textproc.asm +++ b/textproc.asm @@ -803,7 +803,11 @@ NotBattery beq DefActivationEnd NotWhiteFlag NoDeactivateWhiteFlag + ; activate new defensive sta ActiveDefenceWeapon,x + ; set defensive energy + lda DefensiveEnergy,y + sta ShieldEnergy,x DecreaseDefensive ; decrease number of defensives lda TanksWeaponsTableL,x @@ -815,8 +819,6 @@ DecreaseDefensive sbc #1 sta (weaponPointer),y - lda DefensiveEnergy,y - sta ShieldEnergy,x DefActivationEnd jmp WaitForKeyRelease ; rts From 4a32abdc83d58886669c7dde83efe8f34efad498 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Tue, 28 Jun 2022 20:01:24 +0200 Subject: [PATCH 02/18] New method of checking the tank falling direction. New table "SlideLeftTable" (8 bytes) instead "WhereToSlideTable" (256 bytes) But procedure is not optimal - we need to write a new version. And now, falling diagonally doesn't take any more energy. --- constants.asm | 274 ++------------------------------------------------ scorch.asm | 3 + scorch.xex | Bin 40862 -> 40651 bytes weapons.asm | 57 +++++++++-- 4 files changed, 59 insertions(+), 275 deletions(-) diff --git a/constants.asm b/constants.asm index 88d91f0..e39389b 100644 --- a/constants.asm +++ b/constants.asm @@ -210,270 +210,16 @@ disktance ;tanks distance ; this table is for deciding where a tank should slide ; accordingly to what is below the tank -; there are 3 bits used here -; bit 0 - go down -; bit 1 - go left -; bit 2 - go right -; position in the table equals to bit pattern of soil below tank - -WhereToSlideTable - ; we have 3 bits, when set: 2 - go left, 1 - go right, 0 - go down - .BY %001 ; 00000000 - .BY %101 ; 00000001 - .BY %100 ; 00000010 - .BY %100 ; 00000011 - .BY %100 ; 00000100 - .BY %100 ; 00000101 - .BY %100 ; 00000110 - .BY %100 ; 00000111 - .BY %000 ; 00001000 - .BY %000 ; 00001001 - .BY %000 ; 00001010 - .BY %000 ; 00001011 - .BY %100 ; 00001100 - .BY %000 ; 00001101 - .BY %000 ; 00001110 - .BY %000 ; 00001111 - .BY %000 ; 00010000 - .BY %000 ; 00010001 - .BY %000 ; 00010010 - .BY %000 ; 00010011 - .BY %000 ; 00010100 - .BY %000 ; 00010101 - .BY %000 ; 00010110 - .BY %000 ; 00010111 - .BY %000 ; 00011000 - .BY %000 ; 00011001 - .BY %000 ; 00011010 - .BY %000 ; 00011011 - .BY %000 ; 00011100 - .BY %000 ; 00011101 - .BY %000 ; 00011110 - .BY %000 ; 00011111 - .BY %010 ; 00100000 - .BY %000 ; 00100001 - .BY %000 ; 00100010 - .BY %000 ; 00100011 - .BY %000 ; 00100100 - .BY %000 ; 00100101 - .BY %000 ; 00100110 - .BY %000 ; 00100111 - .BY %000 ; 00101000 - .BY %000 ; 00101001 - .BY %000 ; 00101010 - .BY %000 ; 00101011 - .BY %000 ; 00101100 - .BY %000 ; 00101101 - .BY %000 ; 00101110 - .BY %000 ; 00101111 - .BY %010 ; 00110000 - .BY %000 ; 00110001 - .BY %000 ; 00110010 - .BY %000 ; 00110011 - .BY %000 ; 00110100 - .BY %000 ; 00110101 - .BY %000 ; 00110110 - .BY %000 ; 00110111 - .BY %000 ; 00111000 - .BY %000 ; 00111001 - .BY %000 ; 00111010 - .BY %000 ; 00111011 - .BY %000 ; 00111100 - .BY %000 ; 00111101 - .BY %000 ; 00111110 - .BY %000 ; 00111111 - .BY %010 ; 01000000 - .BY %000 ; 01000001 - .BY %000 ; 01000010 - .BY %000 ; 01000011 - .BY %000 ; 01000100 - .BY %000 ; 01000101 - .BY %000 ; 01000110 - .BY %000 ; 01000111 - .BY %000 ; 01001000 - .BY %000 ; 01001001 - .BY %000 ; 01001010 - .BY %000 ; 01001011 - .BY %000 ; 01001100 - .BY %000 ; 01001101 - .BY %000 ; 01001110 - .BY %000 ; 01001111 - .BY %000 ; 01010000 - .BY %000 ; 01010001 - .BY %000 ; 01010010 - .BY %000 ; 01010011 - .BY %000 ; 01010100 - .BY %000 ; 01010101 - .BY %000 ; 01010110 - .BY %000 ; 01010111 - .BY %000 ; 01011000 - .BY %000 ; 01011001 - .BY %000 ; 01011010 - .BY %000 ; 01011011 - .BY %000 ; 01011100 - .BY %000 ; 01011101 - .BY %000 ; 01011110 - .BY %000 ; 01011111 - .BY %010 ; 01100000 - .BY %000 ; 01100001 - .BY %000 ; 01100010 - .BY %000 ; 01100011 - .BY %000 ; 01100100 - .BY %000 ; 01100101 - .BY %000 ; 01100110 - .BY %000 ; 01100111 - .BY %000 ; 01101000 - .BY %000 ; 01101001 - .BY %000 ; 01101010 - .BY %000 ; 01101011 - .BY %000 ; 01101100 - .BY %000 ; 01101101 - .BY %000 ; 01101110 - .BY %000 ; 01101111 - .BY %000 ; 01110000 - .BY %000 ; 01110001 - .BY %000 ; 01110010 - .BY %000 ; 01110011 - .BY %000 ; 01110100 - .BY %000 ; 01110101 - .BY %000 ; 01110110 - .BY %000 ; 01110111 - .BY %000 ; 01111000 - .BY %000 ; 01111001 - .BY %000 ; 01111010 - .BY %000 ; 01111011 - .BY %000 ; 01111100 - .BY %000 ; 01111101 - .BY %000 ; 01111110 - .BY %000 ; 01111111 - .BY %011 ; 10000000 - .BY %000 ; 10000001 - .BY %000 ; 10000010 - .BY %000 ; 10000011 - .BY %000 ; 10000100 - .BY %000 ; 10000101 - .BY %000 ; 10000110 - .BY %000 ; 10000111 - .BY %000 ; 10001000 - .BY %000 ; 10001001 - .BY %000 ; 10001010 - .BY %000 ; 10001011 - .BY %000 ; 10001100 - .BY %000 ; 10001101 - .BY %000 ; 10001110 - .BY %000 ; 10001111 - .BY %000 ; 10010000 - .BY %000 ; 10010001 - .BY %000 ; 10010010 - .BY %000 ; 10010011 - .BY %000 ; 10010100 - .BY %000 ; 10010101 - .BY %000 ; 10010110 - .BY %000 ; 10010111 - .BY %000 ; 10011000 - .BY %000 ; 10011001 - .BY %000 ; 10011010 - .BY %000 ; 10011011 - .BY %000 ; 10011100 - .BY %000 ; 10011101 - .BY %000 ; 10011110 - .BY %000 ; 10011111 - .BY %010 ; 10100000 - .BY %000 ; 10100001 - .BY %000 ; 10100010 - .BY %000 ; 10100011 - .BY %000 ; 10100100 - .BY %000 ; 10100101 - .BY %000 ; 10100110 - .BY %000 ; 10100111 - .BY %000 ; 10101000 - .BY %000 ; 10101001 - .BY %000 ; 10101010 - .BY %000 ; 10101011 - .BY %000 ; 10101100 - .BY %000 ; 10101101 - .BY %000 ; 10101110 - .BY %000 ; 10101111 - .BY %000 ; 10110000 - .BY %000 ; 10110001 - .BY %000 ; 10110010 - .BY %000 ; 10110011 - .BY %000 ; 10110100 - .BY %000 ; 10110101 - .BY %000 ; 10110110 - .BY %000 ; 10110111 - .BY %000 ; 10111000 - .BY %000 ; 10111001 - .BY %000 ; 10111010 - .BY %000 ; 10111011 - .BY %000 ; 10111100 - .BY %000 ; 10111101 - .BY %000 ; 10111110 - .BY %000 ; 10111111 - .BY %010 ; 11000000 - .BY %000 ; 11000001 - .BY %000 ; 11000010 - .BY %000 ; 11000011 - .BY %000 ; 11000100 - .BY %000 ; 11000101 - .BY %000 ; 11000110 - .BY %000 ; 11000111 - .BY %000 ; 11001000 - .BY %000 ; 11001001 - .BY %000 ; 11001010 - .BY %000 ; 11001011 - .BY %000 ; 11001100 - .BY %000 ; 11001101 - .BY %000 ; 11001110 - .BY %000 ; 11001111 - .BY %000 ; 11010000 - .BY %000 ; 11010001 - .BY %000 ; 11010010 - .BY %000 ; 11010011 - .BY %000 ; 11010100 - .BY %000 ; 11010101 - .BY %000 ; 11010110 - .BY %000 ; 11010111 - .BY %000 ; 11011000 - .BY %000 ; 11011001 - .BY %000 ; 11011010 - .BY %000 ; 11011011 - .BY %000 ; 11011100 - .BY %000 ; 11011101 - .BY %000 ; 11011110 - .BY %000 ; 11011111 - .BY %010 ; 11100000 - .BY %000 ; 11100001 - .BY %000 ; 11100010 - .BY %000 ; 11100011 - .BY %000 ; 11100100 - .BY %000 ; 11100101 - .BY %000 ; 11100110 - .BY %000 ; 11100111 - .BY %000 ; 11101000 - .BY %000 ; 11101001 - .BY %000 ; 11101010 - .BY %000 ; 11101011 - .BY %000 ; 11101100 - .BY %000 ; 11101101 - .BY %000 ; 11101110 - .BY %000 ; 11101111 - .BY %000 ; 11110000 - .BY %000 ; 11110001 - .BY %000 ; 11110010 - .BY %000 ; 11110011 - .BY %000 ; 11110100 - .BY %000 ; 11110101 - .BY %000 ; 11110110 - .BY %000 ; 11110111 - .BY %000 ; 11111000 - .BY %000 ; 11111001 - .BY %000 ; 11111010 - .BY %000 ; 11111011 - .BY %000 ; 11111100 - .BY %000 ; 11111101 - .BY %000 ; 11111110 - .BY %000 ; 11111111 +; values in table mean that tank is moving to the left +SlideLeftTable + .BY %00000001 + .BY %00000010 + .BY %00000011 + .BY %00000100 + .BY %00000101 + .BY %00000110 + .BY %00000111 + .BY %00001100 EndOfTheBarrelX ; right angles from 0 (vertically up) to 90 (horizontally to the right) diff --git a/scorch.asm b/scorch.asm index 56d0084..00967db 100644 --- a/scorch.asm +++ b/scorch.asm @@ -73,6 +73,9 @@ .zpvar dd .word .zpvar di .word .zpvar dp .word + ;---------------------------- + .zpvar UnderTank1 .byte + .zpvar UnderTank2 .byte ;---------------------------- .zpvar weaponPointer .word .zpvar dliCounter .byte diff --git a/scorch.xex b/scorch.xex index 97066979802ff0f0191619ce0d6cb8726ad67407..af6e5a80238edb31a147fb951452a24680244a60 100644 GIT binary patch delta 14833 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 diff --git a/weapons.asm b/weapons.asm index 963ae92..83ff4f8 100644 --- a/weapons.asm +++ b/weapons.asm @@ -1388,23 +1388,58 @@ TankFallsX ; time in our lives! Tada! It opens a new chapter!!! sta ydraw ; +; lda #0 +; sta UnderTank1 ; byte under tank +; sta UnderTank2 ; byte under tank reversed (for simple check right direction) lda #08 - sta mask2 ; Loop Counter + sta temp ; Loop Counter ByteBelowTank jsr point beq EmptyPoint2 sec + ror UnderTank2 + sec bcs ROLPoint2 EmptyPoint2 clc + ror UnderTank2 + clc ROLPoint2 - rol mask1 + rol UnderTank1 inw xdraw - dec mask2 + dec temp bne ByteBelowTank - ldx mask1 - lda WhereToSlideTable,x - sta IfFallDown ; taking directions of falling down from the table + ldx #0 + lda UnderTank1 + bne NotDown + inx ; set bit 0 - go down +NotDown + stx IfFallDown + ; now we must check falling direction + ldx #7 ; SlideLeftTable length -1 (from 0 to 7) +@ lda SlideLeftTable,x + cmp UnderTank1 + beq SetLeftBit + cmp UnderTank2 + beq SetRightBit + dex + bpl @- + bmi NoLeftOrRight +SetLeftBit + lda IfFallDown + ora #%100 ; set bit 2 - go left + bne @+ +SetRightBit + lda IfFallDown + ora #%010 ; set bit 1 - go right +@ sta IfFallDown + cpx #0 + bne InfinityLoopFix + ora #%001 ; temporary fix!!! for %10000000 and %00000001 + sta IfFallDown +InfinityLoopFix +NoLeftOrRight + lda IfFallDown ; taking directions of falling down from the table bne ItStillFalls ; Tank falling down already finished, but it is not sure that ; the horizontal coordinate is even. @@ -1433,11 +1468,11 @@ ItStillFalls beq NoFallingDown ldx TankNr jsr DecreaseEnergyX - lda IfFallDown - and #6 - bne FallDiagonally - ldx TankNr - jsr DecreaseEnergyX +; lda IfFallDown +; and #%110 +; bne FallDiagonally +; ldx TankNr +; jsr DecreaseEnergyX FallDiagonally NoFallingDown ParachutePresent From 45836412077fa5b4d9800cc226aa2653dedf8cea Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sat, 2 Jul 2022 00:47:56 +0200 Subject: [PATCH 03/18] Completly new tank falling procedure (70bytes saved!) And now the tank loses 2 units of energy per pixel (vertical only) --- scorch.xex | Bin 40651 -> 40561 bytes weapons.asm | 279 ++++++++++++++++++++-------------------------------- 2 files changed, 106 insertions(+), 173 deletions(-) diff --git a/scorch.xex b/scorch.xex index af6e5a80238edb31a147fb951452a24680244a60..afee46120d3aeba449d66e43ab04b08512f775e4 100644 GIT binary patch delta 13498 zcmb_j3tUvy)}I;Ph&r0-h$08e$}*)Sn=A!E=o#sw0Vb3;>PUR|}P)wrf5cle2 z?r#&gq={_ckYW;wxJ4O?S@aXGZWSQ#yf|60aQ&un?kB5}34y z#O5DC*4c@71o7WM*4<9LH?Wr@<4Gx}MPuy9BvRVnj+dV&g@Aq@&wv~|CMYIg;kD7a zR~<%zVUEw!+rOm-U;U;j*NXAP(VnhEVs^!}+k3A3#Ia%8xrzwj@t6^Ff#i6iEbvYz z-nqm(k0>X+FAycnn?sbxyeo)e_O2$JHr2Zkb2MTl+{@2!F{`-ypW{CI3pa2I_sJT4 znL@GCXUe-*U*B93G&eL_&+fC-*g_pzc%${4Q$1g9TepCC7Z9g9h$l^Lo>D7#9YmCP zFv^*qbmUFmRqRhBLeXyjbfSeh?wkZkmQepxUfgei;DU)<-*w!r8QcsPcX)*w^KoFX z7Q;Qc9I_9ZosQax+{FxT)}6^~PH=(H+Aw8&jW+r1@_#bukS9;d-DZo;#2k>J%g zef6A{BDtt(2+=xZuTa!Yu_6L%fpA4ie9?-@w#-FIX_$@Aj4jYQSOcX)!A}ztuG9(;8n^i;>uUcl2F96vCyKc&z9T#GRX`Vvi*BVrb)=L`)f&SxR8qp zH;DU)_%1OdqNIs$GeNw=CK{d?=v{NRvTkl6cUMT+PERbJL;RD7Eo%gMvW< zO>;KBX@NDzOB2#mSPSj z*%ecpm*_Zcz}W%ZHXxR>rw;_Ar^XK9(|K{9MV-Kl?^@J}y!f6)oy3dpThz(C_@TvF zk*b)EC2JNOsCMcd`I6W5lDGOLZ~IH$k>18&nDrZ{vOqhom?{;U;8uuGw%zS+ach>A zGPx|^)52wUV5IhM@Eq?`!o@*8<&yXb756iVmr%|=MY+y`gP_D=E+tv)uvCOAR_}up zzaGG;_dY?DOWt`>^4%%-%!M{xs4x}cu$?#-shtA_7=}pUzm%XjQwH65EDL7A=ct$p z`|#*-XU6u7op09N%U3-v`R-1iA5W66iLIWMn_v(5?=6JivUwB`&tyBqoLo$kYlB-mD9J$C{l`B<;)ZWa0F$mf1T}GIFa{D=g#h}eeL&x1X1g5{g`kZBW??CThWM$pr zLM=+ovuOWR;wo$<@zRoUL$B-bFwL(p`Dz@do!!R>d#xWYtfEA!8aJDdC+)|n(nCB( zxksFi8TTm>*ecf5r@JdW)HU$eU5VXYzd+<>+$R_P;%1ugEUfoZp=jnb>dK&MGZp!% z6zUaE>}o1)jSy35P1u1n%H91SGmK89HzPmEsWbJ*2>u>DtJ3o_dRVNpoj*gqjI z%%ti#DlVfTW|mVmjkcP^Cn=N1wFc_dxq!NNU%*%(7+y-znMI+RVg`Gi#$KlnPb{@e zyCi~3lXy23$MaOpq~bkPT}H)mR9#LX0`*BMrWs;^Ah0b=7Cm(t7#lU?z5`3C_A*Fh zQ77XqvhQpu;3E@j!zn%u@P+3-ESQSEHU{6Ei0t5y#_>tBizo zjbQ#Ok)n(tIa_QXa*h}va<14&sln>G8=y&h%D8X$u^17mBxalE-!>C1!~ zeKn!}dZbgRzaEJ&WXd)*F0^6S>f6^}p>66aPhJLHswB^TqF}yishUiUpH!!=3_C2~}IDkga}4g&g$+6>`;9Dr`{y zMTI=|-&7FP@2QZlwo%N`iNr3rE0Op=fc5`0l`#_+yB56fB;5P+*#YMxd<(hjCp&Ri zej@DpU9z(MCxXA~Po(J>E&Wf0sicISDEWyPBcbk-fG?p+HYC^S4Zi>}+cLv+G27r> z2@tcr)xyLqY=i<1dur)!^+%#Tpk8225=|iW&ei#xn0a_a738qV7-^E%~*kE ztiZ|r>3*dbVA%0>3ESkjoJ_B<-Dj%ZCVohy>SY6@*vW%NvyrX=AvbSBa7NRIBxos} zWCvKQS;#H!l&E$am-@WApGXf*9y#S_W$st(eUjTv(awD0!k z%DI6{!Ry;k5&Tt85wU~J?7$`bGimEE#Lx<_{J=5XGFOv}6H~V{iT;PE?F{}u5F0kI zbMLT2BfIwQvQDE<$Tha?&dx2vN~L*IM_KSFnL5PmlGLdKrr`t(U8@EWmL2$k90(Hi z2NE#Bdkf+LC46PJ6Gr8izMAf(86KMvv%z80b?5qwL8FYg?Wi-*QyZ=;c4x#4aoY&@ zk0&7FbL9*Vv1Z*W$(7+WFP8q1F_d2cE-tQS>Kp$H|FAU7vGM`KIW(q46MU_}S&D_* zSo#sr9C?3|-?Fk`>aD=Qnk1bHB0)HnD@fpy*7N9UVnw6|{}LF$4*}RQ+^Q4d*(88U z{*sNF!35AZ68ND&j|#b&ft`>Fh95@k+zkf56kq@{T+_fK29O*A8lcmK_H-?l;_jY*14v!x2cXgfih^IYL()2|BOgX~R zP&~*SP7>g>-dG*%RTP{exI|hU7KvB?YJwJqrc}+XD`h&t!uW2ixI>7YEx>#>1!lr@JNwP87H(p-v1#SI4niB9+||X*lB8`<*yk z%<^FRa4JSnF_MB?#PVZ;(SbXI;eoMQSbHS%;o#$GtJFw}@GW9j5tsBJQ2f{oHG*oR zfpd9yXv^ebjg)A?&COdIjI=L)-Ch%JTl~81hS!X9xZkZc?<$gC(S1uCML=S~S$e>2_R2(;pLY+zl@U(0y8)LxS|0?b`k26iL*{$918G5<9VA*q zc&#Rem&WkI+9PO}EC%bcP!qL4WYDViI8@c+&__KE1*LbEMeC&OtH(nIGK6z;uMO_7boZr{zQs33}o9qnu;k@yn{jo*li%>3LAQ5(2>(< z^;BBYOs&`23tMGG&JQ=ccQd7ACZF+zhyTlLaVAxv#WScnjfxJYz4y|JXxB_yI@qSp zpjn_k8veb5W?_;Ps@_YpFx4G&S&sUbjN6_rqC?pJ0OrdXjVCaK-4ib3mFdxVgfs$6WIZs%ns-j=EmXB=CMO7utS^A z4(&#`Fqdy92D-O7i)zto3B}2Yd|chh6YX}O=r>0y4FpOf(6WwUM1N@sRA7d|5pb-0 zNIkvSrY>}`n0r&1#}*AJxb_;ICc znC}NW2it>$m>#yW9ff89pKbD4f~Fm!YGn~Tqy^<=j6Y=aD@Ory;5W3Lc2uz6tCP5Ml!6k!9KN{`QB`WIrdEQ+}*!l8uTD5inlIAHM9 z+lNB+y#1Npc?U72^Kwk%yu&bs_h#B?Jz&F7=0b5W8^jDrY#7fQu%;B+x=>7D1Fa@; zC>y}@Mlc18260FT9yio)4i6XErC4%2Yx*n2Jj!qiFjms*a+82;HoV zqSd3QcGv&yFhbw`H$(3o-p6eID7tPClLPOMqw6>(3x6NFZWxosA3BNP@ir>n&Lj-4 zG#hWpaX4mrTsNs%?0QEpxX#@anqbgvo(V|A&22ks0Jgg(FVZ0;fu`69|HjXqr zv$eoRfZPYiolAe-as1KlHm2&lpF<%M1jEkESQ~)Y9S<~i$NNkG#U(%VYPg`v0}moO z{wV%l$p;282B$&C43QLAY*AM0wzEhgZv#iB0p@CWC{)}`E5ez;BT#EdW>Z|vJn&Z{ zgBs?&noHfCz}Hj!p?nfc?PDw8cT9LT8rDN^wqLIUo!`BLJahVZ9|@@F{xXd>&-vxD5`cDvOMGVKyN8yl_PHSD`d zdriT03VP66B;cXH`&hL1F5?CCo&GU7*oI3vOkUG2x!p)|vI4>k9N+rf(n+o1^|>|U zneUQ@V_lyEWsymJcFire%;-v9_cYLH`5?PA{zS=6(g^9DVIjp?7Ehfc@&@rdaq2nJ z-A-WITf-}X)M_%2YMQs(GOes9Gt^Uhu;#5_pD{gQh6p6<7!^MN`K)iKSWi^Go-p-Q zKOlkB(pV)GV^~@}vCG+QfP4>-ZGe2AsPF5(IeJ**9n$nZQp4)or0G3U8mFT7Z3e>X z6Yr9ydN#I?G<|@yF-SvRYCWrEut)_y^>lLR!Z>?|pV4@Btfhes71(?CaG3oI@FRkZ+ z!NmFrbiwF|)cRBpCP$k+{$`K$?TgJG1{I}UgHANi348M@hFN!<7UobN$6Hmir=g*E z2&roERG8|X;8E(UvoGOM?$dXnz3Mwp-IKid5~(`jse76iUnW(pp1L)>_`RpBBkWqMALivFn;WQjfVw=E2gfb7u~*!C7W?wMg!j^^W={5OWy| zGiq6qXYM_`UVDSCf5L8nPiduGgq*}~{~I1pcKV5iebHKnVni*dP>NqrlrF_Dsj@}b zqNEF3xmPlkVM3mAryw9*@-ZzrNb}wPZ35P~b>YsU5jK*%sv^p-rF++;qGY(sU5Co& z06~kaL)~+(P!r}bZ#vyHc@6uLwDYnXdk=I*(cDQ&Rw7$qD`M6(Jp>Qfhp~KXpr>sLkSj) z?|aD3+lZB8RIk;Q)@M3QXfUo}U$S<_$HI}5i;E9YZsd}XPKG%yW&}oHr5%d`%nQUL zPBS|Ly@LHvn;08NLf^Q>&^`9hJ_O-l&jW|3H9=p5W9A~(U>@}$YOuxYd|`lrUfXVT zAEa6`R#AYdF%s&;(xR|R)~S9*ZJE8B4$+zzJIJ*5#?k-?vRLA$bedVjf)bQrV$T%i zPO(>tY9mlV>k^Co8&C+htb5AZy}DrmIqcwO5{$zhz6bZS zVV{-l;YSB)&H3U()G$i=D0Ud5H|e8M9~;BckB=nw#ug+i^*B%W2txHCDh+>hqy>+M z9!;=(My2N-O-%TV2E!{p@r@~oNhyv^fjU)4zEpc_pX8V(Kmm_6<)k#*>n!n}Cx_HeQQA zr(Kq@V%U*2g~nB!;HQPvpHs~;JQXDRpHQ;#I2Ii|RPs4>Jik;oc=PO!Z{aXEsHl-}nhN`K{#ILA& zL~r$Dts_)Ds<$Fp>nQbw)qO?XTTnE0`piuDy}r1DXt0auw;`fB;#c%WpScUu+NbX| z{jTjlz&0@6REN0SUAG4%=jt=%{`WUaL*^%0@IaxLe}8jqEQ%&dYO@=$wYj+r83(r* zESJl~9~dlB&^Fo4JTllnxMNC#Al152v$Y6P!M;n{DZ4DS_7qQ+`@fdNQ|12qH;WzY z+k(^O>Zx*Me>%#AvZ~YN%!}j15kB>Fd2FmLD_Aa|qM!9cIWH*c$#P*g_sI+Gr^^lY znogH%?<0Lsoan1c^r;CxkQw4*o(I56MybCOZ z80ms;2X4`#Fcr$Z*b?zlF=9xoNS-Wj`>IpO(jzw#yb{5qwV9pFS8NSRV zEY^d?!k38`FL{(OF^nYv!ijQ*apt-D+Pmh#3)8$5*MS>+2-=4E4E7wZEMtUMUi0(N{cn4zw zcU=PFji8OeMPpDI-3=ULz#tI;{|(t@$k`DZeTDJ5kt7eo;Y?2l+3~6ANU{BlMD!Q5 zvMxJYDA4-bTV=g93@v57IG(`)IJIjA)r-}tJ7DotpLE~CyY2=PPjrudOBq*lyEBoiB2b@M+lG~gw?3On)Zxr@8C@XrNCeove z;xUF~FayYL&J!x-oMu5#93MR;iHnAs!=#!;@z($%91wD4gc7kkVh=pAInt3u_wiXz z+vMs+HA1!g*G09$U)9rOc(`_ryaS?#0hM1CB)LM^?AZ1+x+HXMMwc61Wen1+S#7ek z2vNGcdC^P42FHItZI@}Yg!W6#n~}8xjD^9t7kPwixoi<~X^yV}qFr@p&U*=15-&DlI!u@hX?g>t*D#chs{I$&{yM#u2$q$dMWQV4jt;eqBj32`>tz zs8I^9LWg~LksetRKj`GjmKSZZFEd*3$-9Da$+7lkAHH1M<@ju+RJx=;?_0^8TzRzs z-)Tedq8E{GyNH-oU{%INuL`-MnIc1ojt!!Pf@3@So6(QXR&?q;Ka*wy4?Q_dHfEL` zu^_LAhEDd?PO=#~-4}m@F8Y5#*Fd}qT`6nn3SK7OJp>hoMr#K&ZW|T1GZW>ZFm>!> zg{aDp@B!9I-1S-;?t1NnP2EP?j}MKlm}B6)kzsaLgG=0F>WXdlskUwrUUOHe`D!kBSWu?#u9 zBTjs5gs-TIkP>Mr+Ev8n>cEFM%*&li*!Af(X^wTP**WiN9By{99p_fzU{}_$Qw_+j zVghm)sNF=e4R~{{bS!gdW=6+4bhl(yhw|kL$a}$@N`>?5IL>xVMZu zH+1E)tPW}=U$2s?mJMblo$lt)iNBZ}bK`czR|^zO&4Z zLedXPIO~%7EVuE{dcDqz?o&qhTB9=G)!nAxqZJS^x)~f!07}+5`?FzaT4ROW8r1JE zo58?D2V7Q->$5Ga zpxvOIxV+1Yqram?|Ju>uU(RWI7v(THyJ;UOeJl6|=INf2|GhcQ;{C`J)_MaU){H8? zAKtv#?GzE(2;T! zgp%qPDat%r&)Ph32~B9ob>}(${=D88r=bBXbqV#(qq2xER^<|Wv04#cHJg4vn+At~ zjl&O8tv@(9{D2i%g45ziVnb|pj7u@(J!CcVx@ z1Q*V9QP&zea|LxhOJ_bsUC+^(PgB?PbmmIxT1#g>LtQV>nX9PlFLdT=>RLzbuJzQF zPhC89ZKSSj>MEeF9O~LcUAfd%NL?GKtBAVtsH>Q|1nLqIiN3^4S8wG~MU;0v^$yI3 znLb-#g6Ldy+I<^ZUT*cNBYY?mTkw7hd!H_Bg0u?RTJPwR zgsCE|cGHMkeAe)r@e|V<^zkKfK2?HVCIaso%HTOeHjUPUawWD$>C`W&_tX8IS4bn} zx1{l#t8Uaj3N2;Ctv+kmW$Q88`I7K-I_}R<5Im)9v77yq-JZ8dfwjdMySuT`&#lYw zC$7tIj$Ai$-RaBz;EK?uiXu^Fi8dA{4)iG;`$RhopJ;POr?NZkLV1G8mk{R*4#TT0 zGa@-M@NlU`*##`S-{fnJ@Z$3lKF-(5J}Yqq*0HONmG|M;m7y5Qiu=BrUd(zV0vlM4 znsuSp9yasBU(XD#j!wldYlbQk?}c*z3gR{S;7fbsd@TFqW*O`_Krr6_7CHPDsY$Tcy+wY0iy*MS1^-cC^YrP{@v&uQv^d!3 zn7-Z)sPp<@udcyqQ5Y+*z6nMHCj6&^n3~g7gMGH=rS**E5sYOs6V~6Duq@)B!M+gB zS7T3_|IC1gYu9J^Yu0Bt-&x;_zwxp^&dR#agy7V=xdJwDfFP71$0tb0@4*Y+TwezH zN%ij18cb_Bh;dpadDD7uRp>CU`J(Fm8cfIt(GXvNocGV+2+DE#o+egxu@bmgp ztH$-?_y2G@%sOD~{N;ZscyViG-9J7*A9-!+)Q6tUmtJ}A3KlDElJ^NfcaL9x| zEiG2|9XuZF+0Q<|V3)tG_g%A{{048;`-O#tMO{DAjhp&PV>iXdm2~~Q_@Xp(Q-b8$ i)bkp*yDao0b^g5W-gHYuc!y^Iao^wX^+P3Rd;c#7$%9P* delta 13680 zcmb_@3wRVow*SoJ9Ud7T!te-bP|>&{1c^AJK%zVX4B??7py;qXBxtho6j1EEIs}rA znKTIL>cJ+`Asy1}MA^$fcb)sWtHDgxV5{q{?p|Eah!M{({=+n@Y4-=1bT0Gtv&XlK&HfBgI5g!> z7O!I}#ObA?!(Sxsst~C2geVmYHnqwUNgv3!^lFINtQkggo0NUlQ< zsuob;wb_0`W5r;Y>yz}Z2P9Ljp>x$+_${KVD_xC5@2aKNyF_k3d%J$ADgtyYdPHAf zc~DeWdyk0TdeM7QRNK8Di)xtn@1pvoHz2B3@B1R7&+&eaKAJHS=7-J9>MhK%?acUH z%!t{{#OIA+a;0wBQn06h!l_(`G+eQ7n;^j*EI95eqEKn|gL6oCai(^C11+hHL!Dhu4>*whQ zbgkj{$I$R!)M3zsp|q1?Fv1U24r#XktF2TirJTdjQ>kn0Lzt(s#WEDvr_rv5Wi=AC zTI`2`Ddm>~n|v4eMRMI@8B!Yq!z*MJ3QL&FTNQyTVQE`v(8m|c4u7|p70%`QBS@Bo z%X9ksk&bXK9~~C(BMCo>m>N;jcn1N?5d9nx!QG-EGM5K=A*~gHxGp>d*;;-OeV6!)BCs!s{AH2GOLq5T2Vlh9xZjmQ9mb{tq_I%kqD; zX@^+;ZJYKg%fD-LSItl@XH#?=HdKb>Etb4Zk~iAx&G34Qz0JWe`{!HEx7x4~)c)v8 zP2tbms=`&f_jQ6_8i97+Bx<+!q>yrd>I3yyP2X2p_F}WOpN-TnfddRfB=>*RAfKs# z?-mRTWO_fEpBrOzE!kD-t1`!i> zWPQ#0+V!rdzNFlD7~C(qt1MKBQCOtDe*@U}QRF$|`E-XE>@2olYDY^E#;bT*whL(w zB(R(1#(jE(wn=Ujd~MoR^J@#f%0E#ASRZ8{tdIZi;+glc3H=|7X9A+HKb~j;6m4$i zuB})FpNo#H6`V)=iar}XL8d(J>gS^Vg_^<@GmmU_P00A{bJ6~hn%wgVc_I5uQ}`;2 zA4chIvHcsmdFkdWs;IIQ3I4amGw+DOvE>Pz$Nvt+P(0puL~5Tr{+%KQgYTWfxM_Ec zf$1NnZMP-H1>%B{H4Sg=)uXgRoBn~?zsgazMRgv|VfO34i;lSHle zdafk%HIh?Bv>6i59wt~`TSTW;Njf6&+G4iNqw5)!77Xd>yb@TUmX$1Nu5&85I{?>m4oKnVOtx{KbW zc8jl~udmV9d5H<-wz=Irq_pt+34f3!+S`PGg=p^({s7S$2~?n+BD`p-1&YA5P+bf# zbYM=@{Dr6gNc6*C@h)*w*+R2`J&bd0{z9jc+i@$G>$9E819cD7q2y-G=5otzZP!4B z?`Mp+ZV|?&jloI)sd0uIJn52ftzOhK^w2BqDfHU2Kpr%3;;DMDf*xF?4uuqu&1I-< z0DlJ^{dnS9<+@2rSZ@pZzn&<{Y*KRhaYV`EZzW1Te;ZK>_}j_x@kGh>-U+Zb1z@ie zU~d{}ws$ad7tnFyWTE5K?jVjVTWqW;8>sdsTJ@n$|D8B&K<-b$^n!!y6PLr!-bu1T zKpYJz#(}dtg-MKZ>~a$H;7`Lzg--lV5@;%qP~Qd2HFQB@6z6dQ*6J~Fz>o@Z0G**5 zoE9krr-c)z1sHGzdov*6`r2mu7pLza5HBUnb8}VOsPL^=~3#BTOv%I(n;+fny_1p=^Mtg=KPtTJ=@y+nifK}ErC@q ztwRsO_ltW$Jy-yZqQYL~=h0O@pSUWQ7)G;(9{M}d3%Ek_)aU4_e>uI7D^e{T7M9x$ z?9C$PJ59oTr%Rac2PMq+Ly}U+&y*C7pCu_p{A@|t&Ciik8#-aw=Rnj>v^0s!)zT#{ zPkT_}^0kK~u0We9afR9}iQ}}{5?7?nk1p zI2$3aVQ!n{#%5Vc=<)l9OJRW^iIBWuxDY#Q)MVPy+rZ@) z76j+Fj3q%^`AjF!I;>oNX^%$rNlfJqjUmFaS;?~>qb6h-H6hEX30Z-a$>nl+>bs`T zNiiS8Zq=4yw`$9=TeTI~t<-wbV~rjavPEqY-kUXYYB{k-YqccC%GbjGfwu&vV~KJw z;KhDD5NHYxQx0JK2TvWSKLFWui!TC7f>YHbFtdlPe$~K=4l-@PYCG72GYFE}qp&_1 zqDL5PDIi9*IM}`N zE_%!>*1tNHujB{1gST}pAo!;(Abcjt%*46(80pM3)zAU2{Pa{wKYTO2xY2b6)#zNJ zWl;RNP#Y$&XYMdV$-Q%T4bX&f`R0_}+cRYtsjza+L>nGubH-Sk1Z~dnx!3_O?$qWH zJ?!*+a(W)o=97R0-rGDpun1pU;)YSV(N{CPG}B`UQ!#@e|pW7I@5Zu`s~7@#K_ z3%e&`hPpS2Od<`im&lY3vF4DiLQaO;`j+s1#yB>B;PC4Ebop+%!9Oeyb8ULqbPmmK z@d>#C*nqKc8_VAVnXB*-<)obkQzru>d}9qRhy>wO2E;(OKH#(WMLQxj_?MsneF(vc z<_?1iOFIEp%HL_L6+(dga}jmjVq)rfV8_+(c4BNW%?Y zSKCE@J3?11JPQI(yfced1;0RW3r6Vb?sm~0p-${;`o?ThyBB1Ne5Pmw{Jo%sBEL`+ z#?DJ%7s&`qL-8PWIK=>?$6<7^S5a_^;1cQmF-W}n-xu+PrXvL6_PIwy9RUgJ4wKN) z0Z+*|JK!sY4iETC^z?wkBwHMC;$S;G@Zw-QDp>fGA9#E*aH1eZJ8`2KYxMx#;+1rZ zi`e3r`>P1@sO3TTPZItq!n+BiMJzuh7#+Ab7#^6ahjkgSYr{VnOW2NR&cmGC8H{wU zd&B7qcdUEEG5&RPo1OBodTW(Md0n@*m#rjKQU3c18eb2_G`I~^^cNgX zHxO$Gq{l(~dMw2V$3mLF%n0M51M@(qQ6+U+Jb^R>BtWw1&zjut+G_HmBEPT&UA;__ z6_Q*{l8=&R{UZ>S6Rnm68RQQj4i7e+20ESwHlF1KNWk#=jiq?qT7EroS|!{6AgXS{4UX>wRVD?Qz+kP;Pc~|C~p{ z_P8WRXM?6wWUSnasu1Te&JG z#eQhN%?Y_W2BQh#_F|H>nAoQ|0Lr=zpz^S;#l-brj~f7rLjlnLV$zas)gyt{l4kV{ zG+0o4g9V_Wak|xRXD1^2!^Dj8jh$$?kjy^~FA{qnRtKpyBLJo|ij@I+9#QaO`sswK zI%qBc+QQ;MC~W0f_&!ILVU7IcanVjpe%Qz01p5I_*xO(OHHn0tA($(KAG9AF5Ei4S zN*aLBu8c?@hsYXq_Ac$KDjbW@yNa$r?>fSQ#QO}v((^t?*PVAOU3A`^bj5jDbm1*T z)OXr}rmQvmHrj|DUZBl*=3-1`q+<>LJZ4CQk^*XTLP=3Il+CH?F55%8_7H6k2}BrXWe+*Nhv@hHzimdWcYh()z3bwW4*x2$ zYb%Dhiul)&T|22R{LheGEY-#@+KG^{gz%+Q!|-o&@s`pb+sufe)9?juI5Z-_J&;x& z0fZ8w0cVIFl~e*$`(!-q$t;%l-=DnRX{YT-=u=w@YJ}R)P%o71a7|y?_l>T4PWn)= z1;x-kGt~hk>MekbdJD1zsBjm?-HeuD$qvv#CDT{p-}Q2!OSHlLFepPTIU1!@)O(yX zCMhgn#JRw^868RDe=Q?y8cslZ7u zJsN*biNHm=wTS^y@s_h6anEvkOX8UEs zIWPd~qlh8^MH*v3CYj{%c(hD1w;Mpu74ZFKB4{N4dY|Qoj3bl>s8i2Aa z0NUQkEg#ulc2#VK5*N`JWibuVme8p0Vd6HDuC;DZIy=HCQAdc#*Lu*AWxtNiN4}Fk z-fBh$4k1nUREZx0_SyF%iJ3sO1Y;FzV@O~|d8|4EZ5UbtaVoi;z#I+CPGH6pEgs<` zR6Ux|j}fFLp1`I$NXuwa-d_XMK~ZSIV-#sgplu^b%NXM857y8Z`hmh|=mRG`eHDKm zIq5~?R|R9>@kL;*c}}=%(0GpJPWUgf-0$j7xU~d55E&eJ{CT0^(aG#Kk$L3T%3O|*XuIZZ&MKIr&1@v|ACe}-uPud6c* ztSEg5fcO9qX6GoHDRF;2%oX)(yw%MRo0>|ui*;#Ym8IcL7PZ3$=O0+q4~<#qs!JCe zPO<#I#kvQ@hCi|V4`SUzVuQ}|v&FiZV#CKQ|GZc?OKkWX%g+&o?4{G9W{9z|yJm<& z{nD}4ZNf)OGskQ~C`1c&k<68sTnVcY#F+y#i(|r!#~xsfVjhI*Zt+D!L z#e+Bvx5u7uzp86i*i6PAC;wMcnV?$odnM%`p99 z(nJZC*}^AF!4cm~l=PumiloPANfIEg_tt0==*!--DZYMnNmAu`(v^hfx(QO{XsK(0 zBy=x}x7V-MlBJeOk}r&(B!N;$TJE%=Eou2EA#Zs+yGgV&lq-#E+F?XKJx_xDo8C&% z|1Hx<#r1S)vcwcW9a@)RuB#b=B#bt5U4S}-c=Xq;?!ds{P!v3-2F3z*U>#O0edzCk zad5!tWXT?H48m2jmVQv@I$1KsVhy>_Kv8e$GQkrhJq4pEM%QQw0Wq{FjFJMiNs=Qg zt|eLW#W=yHBMw6YBG_VxDbidkj{(K2xAOy1)qDAYsoEyG3^zP&;uuWTM%wrQ&-S#s zu5G1@XCXL2naNVadE)Y|qc5YS>XI5-f4^MMVas4WUf#%I)AVg>NBxN%=Qz)az?$-K zb+zY2sj;-tW5H_5ZlK8yrnX&#Ch^6BDa=A(lHOk(O(R`efY-+&;vagZOGHc_Z-l?5 zTNWINXT!$5@X-3YtUqBG7qG(&c8S6Mn8VRhFskV-JDtP#CP==^rOA?Mn2c7;Fk0_4 zTBDN8X5sMT32~T$6txk1>H&^Bo-7IPKb~yEqx~1O#sTiabhs0GBwRG1K+8+crCqK>a~tlx1Z7Xnx}HS|H9tmcT2i0 zaRykh?P@L_XQP9EF1uTDeYD;%dL%256r2!<3MRtdPQ^-{ixs;nkgER{ltF8=K?4!) zN%KxgGwHe}OWI^95M%gklO+fVW~U7x7H~9%VS<2!j4nO{G37DZWL9!^#9Z6x?4XTy zGy$)#rMd(FZw5BpUTX8S)U-r47}r1_-Z;@5wcDT0^?aN+?gO~1qW%A1aTK?+Fds4B zOqTS1^`4kqkEhsvF(sznlPC;$auAy;CEp|66^Jd5=!oq~m74X=T7TJw$|+K@{U6#C zsika#K2EFLz)z91dyTK5^y^+pa~fZf^vfy9VGUCx&wi9^-LjR=(7@E|msqnX8iuxSjSoqC#aUS z72G~$pOL2!;BgKGN^C4@IO>d64+3;+YXw)Kc=&m;Qo+xs43H70ma|Dnd@6x;$^QHH z@e5@Cv3-1|3|p{J))vS}Ic3URMcqP~I(!UYBx?(0^q4(Q=4w<+_I#OBHJ8lQG813y zS}2=>wJenNw~=Tl-67ZQkhSM2m+jzE??Gxdnex~PYV8F|`yy!JPwZx8aB!d@E1cgc zBQSeG?%E-{3ZJ1>K33LPnSW7cp3lLH11PMlKE^*U!>Qg*f9<3KztDrlKGTa8qI2h9 z=?8wLN1-c}n5mnBeCX8-HH!)823l_sk*p^4BKuhEV6fYdTu3{Joasy+)tAsU84T}|Z^Z?3W6 z9cn*%x#_;283VdxMMJghHFHvC&WR0@sCWGgwLy3z9jZ5=qxGG#Tv?6d4nWp}$8%+R zH=v}K0+%Pkyo*G`xYg7jNSwj8Nbgqn8j+IUETus?#3rdUTn!`|g7oCfJM!iDe>~)%@;88zT z2f)=OZ?=mKtBUx+>4wu_x;pC6kY5H*in4IK?lW)Mx#2p4>`ufK|TWh z8`9U%t1HxcB@4u#iz%Zp*z|O;ojxiZnYJs)Y^O>!4S&n!iuGa64#oIlg%4H_8~Er3 z?IH%FUBV?D?R(+E>ih0TpTF+y4r`SP@mMbahNI7sjS4xk?z-(_al^>)tgYm7m5Q|@m*=_(;zM{^IQwzU z&ceOSm7^NU9mQgn@gi8C9%*xJ7UG{C&Q98V>ZntBts|OyO{sRa${pd3wXbp2uJ1Q7 zuFW@#|J@Ei*S?H&+%km394%+AJ<8?tj}z210Vv>~p!Gl};H`iI*a4scd5pB0bb#bh z)jUqzz<7ctE!XTc_#VBE@5?{I7w{YSnsj}9d)W#@*8hg>7QGP!MSy1ec`VIyg#V6a z?fykz^60IIsG9e1)9X7N?RqDUcD>!9og=&ME&yg_H*Pm}eMhwKNM!`+0?EG!y;#*~ zUJ*-h>;i9!b2S1bqi(Sy4qv{o&mssu60hO|!6+;0AGwY4In5~OBajzBDq%2gmh_{g zs&A<l{7}!gUZiKH*P^@rx|Qz#0p_NsJKnWq zD>i&h1B<;6%-&i9avP{3MbZhdzaSK4jf>oxi^Ba*;ds_h!o@xh7DP{-|CC2Rr-ok#>ZyU@c436k&qt_M3*A^8W6g{guP|dtwYxf*6c(n+^F3*!5DhER}3L>PhdYv z?@>mstxb@gag6-*20V&lG_OJP7}h}()+3NHbRhd;R1HTMc|hYchV!B=>s9U$`a*t@ z*7*8SQ{eG>Jg(sLZM1;iq_~X$}uJKOey4u&q#epy^ce?kie9(Bt)wZ{{mwii^ zueX>6a=&39Us3X9i)X(UB*Ae`t&?=|WWse;TcL=wzsL{BDRAE^i z@xM+u-mej^%>O2-@t+i$vd6KjcPiLXN*>24g^5vo2bs;SD_j@)IZ}AMjvT~A*6Mtk zeJlhy@{b%>cD#e2^rH``FXaC~;>Q(u3SGDFG(M)?g%40^e<0qIMB#BCRw=`M*sAcl zI`T~&366mnpT17?VUXlg%}(@zkml1jk;?O*B$X$H9XWTg9YiUd&25-BuO`&7(QT;H z==wsVM|XXp(HRbn>jv->q`)3muyR}h)l-4m z<+iq-wkE8cN}aadAm{apR`Q)4QMHDa{VY{7MjKp{*+g=5k{KX5ACSyulJgpXB_NICDNBIcG`ErzGcdlJhr`^99NIJIVPUlJnmr z=Sz}vhUB!8oX<#38_D?x$@vPEQHdI`IJLVf%KHiNp2c#x$W~dP<0dlg6M`HVUUf3< zEMALyHPptn!*BkZTiY!MBj6kFmbD@oHFq1{aYPr%^GwB2b-ZjSYd@4_sS2y#lf=pP z@VoFQCJr6qhV)sY2E9~EUY$^Uh7(?W?iQ?p8x&NFC_bd19{r^Llzx6v56${}p}{5X zmhEBJjL`h<9i}jO<9#@HL$UJgigh0Pqj)L@VJh3)v9-<3{++ur{5y7KxQlny>{|Fz z-(Q>|`W*f%8ZT^;VK+9*Dnsv(hv5!6^VuAF7Cs`!uaM){$-&$4>d1;ni43eLx2e^j za{5=u9TB+e;vc+D?x6QxT(`bNk3@QnK)AATIQy08ihYS1p9DwNG1||XANKEsM6L`XxElT|7XNQy-@JMAaQ8DSn%^e7j=baq+GV44U~l8xD6|#Z z|AX353;qv8jPF9-HrcVG^Cc>B5*67>Rr4lQjSZ>^iF|YEUjNTOHh=iHFaBwFFl+8i zai(P$GtiIC@W-+l?h)*IHt(9h?wW>4MZq}@^&BQ}Bga)BU&sl_71HEJV+DLrq0v)* zhf@)7F|`Oc+gmF_DMV8*4d;Yyn-fNjVox2=yWF_Oasas^jKhj?B={~cqgcVW`SE@k z#ZA!}#gZg>y>ATLGHob}E5a)`Y~0t-_?Is_g0>-vcR%d@P37S?J~-QXWpvV%dD#W~ zY8t=n9)ADQ&3g|0zVSk&WBP)p+5HXvx8M8Z%-PnjqmonaPh0%#mKQ6Ox;I)ne;ANF z?Ww1q`OW6-((ymGg^iprecsbK6%AilhR?|o>i+Z7GZ!P{ORoJR{Iz&M|5Cp1kMM2r q2qAXQ0Ac7J`>=}MKSJ-Hef!?Hch9dP!ZXE Date: Sat, 2 Jul 2022 11:29:18 +0200 Subject: [PATCH 04/18] Falling sfx only if Tank really falls --- scorch.xex | Bin 40561 -> 40579 bytes variables.asm | 2 +- weapons.asm | 11 ++++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/scorch.xex b/scorch.xex index afee46120d3aeba449d66e43ab04b08512f775e4..0309e8a57bb7bc09d648016a88746c45469cd4bb 100644 GIT binary patch delta 13478 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 uU3`wO=A(jwg2J9Z(% Date: Sat, 2 Jul 2022 11:34:53 +0200 Subject: [PATCH 05/18] Small parachute bug in falling procedure --- scorch.xex | Bin 40579 -> 40586 bytes weapons.asm | 6 +++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/scorch.xex b/scorch.xex index 0309e8a57bb7bc09d648016a88746c45469cd4bb..bd8213250d684a48b12f7d7da0b1bf444ab5633d 100644 GIT binary patch delta 13497 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 Ve<3X*Jf5Ty&%&ewC8g&Q{~y3wE!O}5 delta 13346 zcmb_@349bq_WvB2Tm&-Q19CK=>jpvykTv50B+3zBvV6H^BoB(9n~RhDg$w zNrNy|47QPu>6ng*p!~AGon3ybNQT{Di@NIW!n%G;NR(v96L44ff2(_vpyK}h{60U| z&2&}0_v+QFSFhetZV%hGgl!EEXW1?W4{XT#oAu_5d$nX)|C)2GWxt&qox}ZRrD_o^ z?{Y8B;(mK0H|8cb@UChR%D6Ros#Sc8aDUtY2>f1{rP{bbbGa9OU7tygg)LI(nlv6? zqvnz6Gl?raofOU^q3I;-CWSLe$jv@ZE+Q42o`|uNOG(8LH$J{w8Uy-n5d-q;L4i?jirz=;D$K zbvPL12L9SpGOM~gJede(wc!;+w|lZ@LXa{IFXP2GZD9+Ej^?f`ur-vesgSoXJTBH=oDFNjo^ zomxS-H*VWs20muU+>&+LYb1IT8edcK8_JEHTUST)`0BDfAsMo`WKXqkXw=T#`nXai zgp56ZbZJ|eQr415^skhVP}WPa%7L{&xS~enMAhP2SD=v!yNmZFm+D`!24t<_uLueM zSsemN7(!c5qK+^`Iq;bC%eHc*oKcR$Oy!<2H({T4B*_q5uSC20$Z9-rwd50#Ybwr1 z9&Y$rOqA=AWN>XP44>dtDk|Kn)58 z3AC&w6^_oe#A$=_tsvX^yy`MncphPZ^GJ9m1Dr|L)_OrewuD#qA|$)DwdA{%qy~s9 ziMM-mge}EU*ja6XgNR{&WSG*KsOMvk%+I5elL@ZhMvEZdmC&i z*60|wYUzBL7&x84X#j2~5F6R=D{WETvKIHE$Im))6S*tH;_2{{$D?YvXuf6|z(}Z3&-Fy1t=m zAMp#y<$FEz7pe|y73=EX+Z7k<8usI^(Y;+iK;-5xRLXvEG2Qw&toK@>Y{7C`a3|Hy zQjuRqpwzf-prEh2a!kR9P$r%Mr z0IG3^8#I|pcvdayUV7}4%@q6WR*)MFn2}68(4ZR^se`};c#AW{)>r&HGbg8r=U&fc zM(jN!nE(4o3FeUE7ym+(BJr<8DHi`mlr7>(Qh$ml{?JG04z;5@6h(LF986FLH}__? zPTVYPo!Z}VLT$;(CU3yno@Uhtxx*jfvH^Oyope}0!SjK~73M#}g=BW(YG^lX%C<}{ zEx}b7C72<6j$Ik&NH|I&%@q#yDEd5uZca-O0&euR222_WS9oGMLWT55yfo* z0>YNRiL1MQDo*YFQd^Coow z6Kdk+g!#k{WF{0$J%U7i-Fpfz$%#5p&Q`a#XVi! zQ0TgXF?&I@F)g=KPjHE0G;7$UzwvyrP-5Qt0=xCkpWh;ERV^JBUf2fc3D{Wi9L0X0 zr`YdrDfatcR4EbvO%*}>jw)Nl3sl)AUZkoGlW^G&0!gOYIV$+I^HeC(zNJF3_Ae@I z(f&<^674%G2-*cIY}GDO%+QU*F1YU_@jnCW|7a?6CT_$g@ctU%-n)k#aNZ%W=B}LO z#bN13+4Z~e;jVrZ|7!hc%NMlbpH-F}GHu_{FE$eE{sQnaRsE1$w>SJG#O(6f4Kcgm zT?r7gyTiuBENp`UWEL$EpHb0Ft5WAVVZ;WUa~fG z1-iKcFL&!=wI5*E@%0P4m6Rf1NZ2D=8h48y5~**VOX@Rg_!KtMGawX~Y>Ccq`H)0y z6*Juc>#z#N<=qn1Cv%H8Y9C0q&zdwlm1&fdX;govQ3Ifuf?p_7kD4wg159Na}=>{eqpg=|s%(w}Axzb=nD6Sb8z$ttdd`vYeQL_Z|To=6DCb$7%c9ir^U z^7p*CyKy&I(=81S$Ot}_U*cwuxa)9~Yr}Zkp6=29+6Tm$0LA=(=njJ*>qt_quKbnE z7h?{nOg$+})PbhBWr`#6;{{no2Zfl1@^ub&)4;<_Dvzg7vbuQM=EsahrTXbNiuVB`|;=18`%w!yv-5NdT4kS2k(|6F?6V zIG#XHi20R~{g4NS??kZN3kF9NU;r|G(a3TWNQnUrHE3OsNmxd#3Wc*E(!@8HcyIJ$ zM6)1-sV2+B=};&24xKTF)QdOA6EU6`5q?is0ud7=ZXU-c$_PVa@gH+ANrcl=u{hYL z1UNx(f%Fut5uf301T74$py0OG9ir+mFj%*Y#;yu@M#fzM-zaujz&~QQ1so*V;)2r# zTM>ZQ23t|d!-sr3(2xYD30%n3i(#nfLUyJXvopN}XBs>InsKIvP;n>~UF;qiOu;Q; z_iLhwk?d$(|5$>4G@HB6JKLLYCy2#%Mdx{RB82S(q*?r1})e#KOf zximtAJ%xQq6aw6OY1w>^XK1=Zw!zG^>9X}J@V$E0VJJ51g282zfhA^XF-ejQ4H$3G z3B67{zqwsbX!^YP$ScvzBL||6Qs)<$_oNS@58jDMbqC}WU1WsS*3cnhNG%kG)e(nK z{d$09PMu|pf*oT}U@;(bF%SbrU2f3mh#_`Z7-9}Xw08}qhv6Ui!J9Ev&J1BNoyw&j9Z=>LN0z0v@s5qO7b13$i*?6H? z*wXJ#nz5YLFQYroQs-dz_6`N%@SUxJTBdo-kTbsU6YlhjUaCP=@1ojrD&Eah^d4H3 zSm317=3|oCRJ(`fW2!kc<1U(UH_f<*9@F0eQXbV-(kO>e-ax>w z0ghh-8ozlIK!BV}#d%bmPt`l!oy%zL&tPFL<$=Xm0OCA@h53xa4_NTPtS_RSfLX+Z z)(IHI7E5TShlLkzZ658cCk%f+3v%XD&BJ~@)R|(+J04p+XN60<*;wk$OxA3vh*cKy zG#~6Qq%Lh1%|{Mn7S(3cd?Ya-kU2CTS&TVU%cJ>7V?YqMvQu~)JB7EiQ+NmS&2TbH z*vS;w$=u3L<~H~xmu@H9=bmlmsh+6GECuGe7tRu|PXUT?FD#~!NQDC}=QWJz50ASB zOgpZ3PsuVZkqsv?K9U(9eb^1Zc%yQ;%k=-_9q@*GPlkiCqW0k?4= z4R4OCG8{UXE?635xr|tp?I<(@_-vDtSknzrb+E7;(t>gzDrJV%!>_mlI`Wg2T&5;H zoMTXewE-oZZIFSOmQZHiu~&!$*gUY^7GtKx6tMuC$_Tn)-&bQYo_bc?Q56Rz3=Lx% z7#hVe_|P~C)eHTS>0M|dQ@YR;rg5QcOcA<)9&;XdVaT^y%wU6YL zlh{CqMa*IY_`McP0i#*WjA8sLhH;&V(JW4mVO)drZ=hVyY)&jcsm2m3RTp>U(ym;p z<IvyL0n|AaKh6wjH!t1& zeFvJ2Be%|MEwB;wj$?k|EgL=GtmtiHs_siT7WY6f?95!}0uZ~%fyOR!*#c19eE)&T&EAa34`Cx;&%rh`BVzfVmtVst-5NsyHTa2MP$8 zY>La82mX8Z0n{+><=o}oth|x8k0ps%z8+hFgwd^!$J`N?N=KsHIH2rGG@T0Mt<5S4 z4k@dJpuWROEMC>gB750V?x0mqz}@HGkWSt*ns-q3Hu&@08~4Ef?;B4i2Lb^tp3c39 z&SS@%r<)J|Qh!CoZ3=QwTO`$?z9(1&_YPwPPQ#%eA2A~dhTtOq3o8DZC`I{S zQt^GF@$VC+z1p8iWJX1@Is;=^+WW+<_&WjlE+9Jr`5w{UGu&_Vu*Tb@Juysf!loEE7l<`4DUH<9Q-&3bS!Yt zTZ2KB7Y>GB=7m=q4|=uHdL%yDuYQuW_qM5g2H{dxa{rxIZ&Z;YsrrDf45DR_NP^ym zqDltwEWJ0L?;^Pgt>VU!>l_+ zw|jnnFTU!|2AiA9GfCaKV3nn51CR1ulY1kN5}vUOU3KS!O`CbKp45FCY}&$$2T0w& zf=#8ocp+H#?_iV2i<3y*cfqDgUc4BTwl19(e>Rw$TzFQBEFEjjkj^Y!Fls!!UsfuM z=U(0Hd4DB>Dsx?Cc}lwD_8WMkoCZxl&Fp_Wtx?L5W~dDx4F>(W?ahZ1^{-SjEz zJVQ~96g#Q9OW3963eR${`qZn05;a>8kOBFG?r5c317TIb5^GlPFH0X!GB;Eug!SCe zV>3_%tPV7xn3*Q%@l7aY`h*6%$66x|x+9%e1<>aDuB#5XloH<+!Y)PdS%hc9KGq*j z6EG*{@(f!IYR$dW*giI~ecT^tJZMZR4^b_FlIFu>^z%vpTMu+b(b`SXm?J!Fs~i_7 zftjh4?eT$MR7$_UBVq9^!a=3dw^evmj&D53XbjQMrk`fk*dn&k=&&=VsXj<+r+Sk1 z2}O^mWVP1HKDK|9+0du%6B?|eU7ujMu9XJgrCqJk&}E}ieXF!K+R}mRU+kdTC(`C+ zBP8##k=9mxUCWOrPL7crY-p@(`LK>gQ<@KF>fgvL@QAy=yp3`>_s0~{?zxZ`Nyj?l z?~5=G5I-rp)f?#-9fV@Tb&)aXTX-K7kNxOJK{(p?cpG(&G*;m8u3-)4O}9~#Dc;}; z0}OOp(IpwWWSXD5^9CLn*0$GwN_AV>43HSouKMxwQDXGn9iLK9*;>QU-6BoDYdHTY zjarWx!wD70yRYEi+nJn<>W4a`HGp{9+FFU6 zLO`_1N~LHABt~moN`QG`FnVyo)Mi0y450XG6Qt6^7xgdQiqz3pjFZEkOQJ&#ui7cb z%Q)i+vgVMH)`^#e%DM!Zd2XCIUDguh?!2IZ6Gy2-LOiIK?!nZ^Lpo*9hD6rgKUW#DE37ajthE1Z7Pg??Y0I7LQ;HC67K zEPHNvfK|@2Wi4A4vt({k0X|#+$(B)-oFv0L<}=yfDU9Q(-C)@d^nk?>T?J6=$OJtB zQ=x8)4PhzA3wf$ts5d4sSWriqH2*WnH|zDcz3L#L+Hfd%JkYQT)j!3h<>yfBVX~K< zpUcUg`8TVhcF)jXdpXO4<|1Z7Ix&iu$V>Z*wp<8CC*qz|uY_eFhGjsJ2vQ{CWmg=% zTJ6Ig5q-{J_{+nnyj9F5n9kgl*u1mNeX@ZQ_2d75eOWwINr1=dC_CJ;dQ{l028BKK zZkg5K%X%>INWmUTBnr>mn3~4jX*1f)1%CV!6w6l=^tAxJec8Pe>`&% z2NSqKLs%j2r`O&y4?dXY%`Q0ZmJz6B%O-msf4(`wt8e^xfu8IK)K@Rx{mx~(tIK{X zlcr%?#R0j7gJ3!|P%_i|g1^KZU7YV8Po~s)o*nCDql|OC6&5VDF%TS@3zLI|-IuE- ziI3-^h?KdCvo4bsuNug&Fl3V1LlWYdk}FQl6|-{1U$JR%tBpih5p^-yC1OyW+6$ay z!XVuMKMjdvNY)b@eboo#Aj!M}N|KukveR>sNBa&bO-?<_ZiUyUWJ?ttCQ@Qq(F4s^^q6 zf6X}SU}^oD;R68>2LPqUp*m_EFTvkhEA3sgkmnzADfMd_gnH%WHI2f{S^`ar(+4X1 zuo=(6{yr~AN|mtFqdtT#30*tU6+l-dgS6^Smm;k}9IotKvsc*SX?e)4&{hfUy{$Wu zmjjHA!35R>1;0|ch6qKT&jAyJiT5j{wUQT#(kBpSa#sq=4znuaq6J8@^+hhsj$#uF z=dV|`WM-RHO??vLG~)s=VsHqq`0YT&@ZPx4h{_QfmiIAJVxC(b29>sbs8>CwJa#R_M6nA%$^7GKC_Au@B~1G3v*4FpKbvP=V5-@FFx;*7`}q?!RJq+#_wzxD?r! zD9B26G$k|H-74d~S+%D_T5$hR{*{NhxJND*zvIIq2^C`HT4B6R9g6H zF(8A72(G_cs@2k9m~;WpLPKaM3p?z z-|-ryXqFn#hasFtcs~HIG+rkt1HH(Yd4Y=ik)u25#S0-keJVrBqphsEjLr2GUe7R3 z)<@V?8M5e}XC7rIysvq#*`f9%KkDvKYMR)224qjM07(jzTO4cynx%cdaq$!VsDV$B zj{2^&R!e7mBW}3zF)w%JV@Q5_)w_SH+@KDKU9Yj*l_hOZ`1o8}w{Bz-c<*VAyXglr zV`5x`cvtWiiQ13L>}+?~&1X1x2^YY&cNfOr4CtS$ajZ+y*SXT5@J4|a-CvsBo6K5z zPj{z^XC{E|{{Xk7my9{gv<)-$jXn73CKjv4kJy9)GOL5Aei*Qj@T|ci%Ido!&CvuS zAGS~0^1v8AHq1thUeMWvQ~0boiPHTXB}YHW+imQ+VYz#$?HcTpC#hx_;LP9Z^&^crEs4!zVAQU$S*jS((MQ1*1laXADF<>%d z?21x!2^(tkMQs%;ejR(4KR{CWVp+C+VHGWEL#G*v>F;6>(&(7iPHi))wFXz1yy`RG8?W& zE~JKf{{4gt5c%B@`8^PODjZc-KnTU%vNURae$@IBkH1LuGSB8GVv2#uF}Eb=b7SE6 z;9V0l9p{kw+p(I4*HJ+X!p9>kL9n}q~KsFMS`G|q$P;Y)7ip(CHKYt zzrUn@HQj@!q1DAKnOFjJq!R^UNB#2@6&$^9V~Mztj{Hk;pu}@>qtTf5F&eic0HBLm?;O4^(6pu95)8KlkvS2*_JRS+n z7S_$1R}-7qm^LqiVZDm<-h_w5q4%L$E7&&8W_Tx`KT(nITqxcpFwU@5}6 z&%Zyv^xXO(JQG$o&(YNj{IsByE-0b}Ptyg(v|u}3u!R@oU^gvz4$3@nXBYlSKv|q9ov%N=}`A{xy$yiW3yYjvO`@a$h zMo6i%&6`|%>{xh8VP1H0VV*aq&|8?Wx%Yp#3G_MQb3|Pvj%R`21X<uEb)Pjjc{ zu$wDI9yvfBIZBRRg-@5ykr^Mkv%;oU1IryAAa^+M=mQlTxr03b@%*)rU0|#v59h5C zB~4b4mmB&qOEDVQ!1DZ|FxGmB&Aj@@GlQ#BbMVKRr#(kPDKbiPp#d^{<x zzjNNad3XouOB6F?&x*}%K%F-R`}GXYO~6>G^EGAyE%@&Nk{Z6Q%aC0gmCcOhbjGrk z3G25^ST=Fu2sy^{<=B%(Ju>vp*Ei>d|FAjF`}SszzxI;jVjzI(WJ}k5oc_(vd*L)krPiN#=CC>29rzCGbosG^x@vkBqjyBfb2H3xAs*SrKo^ z@gKJ292mdh#zFiC_JqM>(>xCq?jXcz_*czTcW>bswG*{-_Y<1O5K z=&djNO~_sPNTK#S{Ts*V?3*8Y^vRNnU3)?={J!nXm* Date: Sat, 2 Jul 2022 08:20:32 -0400 Subject: [PATCH 06/18] laser update --- scorch.xex | Bin 40586 -> 40489 bytes weapons.asm | 44 ++++++++++++++++++++------------------------ 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/scorch.xex b/scorch.xex index bd8213250d684a48b12f7d7da0b1bf444ab5633d..62ee25954a2eebd747c1265f222438f739c96c07 100644 GIT binary patch delta 13595 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 delta 13706 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 Ke?-y6r2hqute2Vq diff --git a/weapons.asm b/weapons.asm index 83fd3af..5e0f802 100644 --- a/weapons.asm +++ b/weapons.asm @@ -536,35 +536,31 @@ DiggerCharacter lda #$00 sbc #$00 sta ybyte+1 + mva #0 drawFunction + mwa xdraw LaserCoordinate mwa ydraw LaserCoordinate+2 mwa xbyte LaserCoordinate+4 mwa ybyte LaserCoordinate+6 - mva #sfx_lightning sfx_effect - jsr draw - mva #0 color - mwa LaserCoordinate xdraw - mwa LaserCoordinate+2 ydraw - mwa LaserCoordinate+4 xbyte - mwa LaserCoordinate+6 ybyte - mva #sfx_lightning sfx_effect - jsr draw - mva #1 color - mwa LaserCoordinate xdraw - mwa LaserCoordinate+2 ydraw - mwa LaserCoordinate+4 xbyte - mwa LaserCoordinate+6 ybyte - mva #sfx_lightning sfx_effect - jsr draw - mva #0 color - mwa LaserCoordinate xdraw - mwa LaserCoordinate+2 ydraw - mwa LaserCoordinate+4 xbyte - mwa LaserCoordinate+6 ybyte - mva #sfx_lightning sfx_effect - jsr draw + + mva #51 yc ; laser blink counter +@ + lda yc + and #$01 + sta color + mwa LaserCoordinate xdraw + mwa LaserCoordinate+2 ydraw + mwa LaserCoordinate+4 xbyte + mwa LaserCoordinate+6 ybyte + mva #sfx_lightning sfx_effect + mva #sfx_lightning sfx_effect + jsr draw + + dec:lda yc + bpl @- + mva #1 color mwa LaserCoordinate xdraw mwa LaserCoordinate+2 ydraw @@ -1795,7 +1791,7 @@ Loopi ; we check if it is MIRV and if so, jump to MIRV routine ldx TankNr lda ActiveWeapon,x - cmp #6 ; MIRV + cmp #ind_MIRV___________ ; MIRV jeq MIRVdownLoop StillUp From 279a47b29f2406aa6890b315809484a2efc1be66 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sat, 2 Jul 2022 14:47:27 +0200 Subject: [PATCH 07/18] Dead tanks don't fall :) Lonely parachute bug. --- scorch.asm | 9 ++++++--- scorch.xex | Bin 40586 -> 40591 bytes 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/scorch.asm b/scorch.asm index 00967db..6efeb07 100644 --- a/scorch.asm +++ b/scorch.asm @@ -488,12 +488,15 @@ AfterExplode NoFallDown2 ;here tanks are falling down mva tankNr tempor2 - mva #0 TankNr + mvx #0 TankNr TanksFallDown + lda eXistenZ,x + beq NoExistNoFall jsr TankFalls - inc:lda TankNr - cmp NumberOfPlayers +NoExistNoFall + inc:ldx TankNr + cpx NumberOfPlayers bne TanksFallDown mva tempor2 TankNr missed diff --git a/scorch.xex b/scorch.xex index bd8213250d684a48b12f7d7da0b1bf444ab5633d..3534ac2479ae7f6cdbf5f3006e05a7978256ff58 100644 GIT binary patch delta 13827 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 J-qOp7{|8s&{lx$P From 011364cbebbcab9b0670a1d64ef26f9025579550 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sat, 2 Jul 2022 15:07:01 +0200 Subject: [PATCH 08/18] Parachute is only shown if tank is really falling --- scorch.xex | Bin 40591 -> 40591 bytes weapons.asm | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scorch.xex b/scorch.xex index 3534ac2479ae7f6cdbf5f3006e05a7978256ff58..3c3aa444a0e8806c7639e5c0cca676d1a8e8a1b6 100644 GIT binary patch delta 18 ZcmeC*%hbP@X@jK?^GW6ln{9l8g8)eE2T=e3 delta 18 ZcmeC*%hbP@X@jK?vnJz*%{D&4K>$Ra2G0Nh diff --git a/weapons.asm b/weapons.asm index 83fd3af..2acd29f 100644 --- a/weapons.asm +++ b/weapons.asm @@ -1531,8 +1531,8 @@ EndOfFCycle jsr DrawTankNr ; ew have TankNr in X (I hope :) ) ; checking is parachute present and if so, draw it lda Parachute - and #01 - beq DoNotDrawParachute + cmp #3 ; parachute and falling + bne DoNotDrawParachute ; here we draw parachute ldx TankNr jsr DrawTankParachute From e9a59b1475975a5a8cc2f81e3758393a896fde9e Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 3 Jul 2022 00:02:06 -0400 Subject: [PATCH 09/18] sensible angles work! --- constants.asm | 156 ++++++++++++++++++++++++-------------------------- grafproc.asm | 13 +---- scorch.asm | 8 +-- scorch.xex | Bin 40489 -> 40282 bytes textproc.asm | 39 +++++++------ weapons.asm | 114 ++++++++++++++++++------------------ 6 files changed, 161 insertions(+), 169 deletions(-) diff --git a/constants.asm b/constants.asm index e39389b..98d315e 100644 --- a/constants.asm +++ b/constants.asm @@ -70,32 +70,6 @@ pmtableH .by >(pmgraph+$700) .by >(pmgraph+$300) ;----------- -; this table changes Angle to the appropriate tank character -BarrelTableL - .by $02,$02,$02,$02,$02,$02,$02,$02 - .by $04,$04,$04,$04,$04,$04,$04,$04 - .by $06,$06,$06,$06,$06,$06,$06,$06,$06 - .by $08,$08,$08,$08,$08,$08,$08,$08 - .by $0a,$0a,$0a,$0a,$0a,$0a,$0a,$0a - .by $0c,$0c,$0c,$0c,$0c,$0c,$0c,$0c,$0c - .by $0e,$0e,$0e,$0e,$0e,$0e,$0e,$0e - .by $10,$10,$10,$10,$10,$10,$10,$10 - .by $12,$12,$12,$12,$12,$12,$12,$12,$12 - .by $14,$14,$14,$14,$14,$14,$14,$14 - .by $16,$16,$16,$16,$16,$16,$16,$16 -BarrelTableR - .by $2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c - .by $2a,$2a,$2a,$2a,$2a,$2a,$2a,$2a - .by $28,$28,$28,$28,$28,$28,$28,$28,$28 - .by $26,$26,$26,$26,$26,$26,$26,$26 - .by $24,$24,$24,$24,$24,$24,$24,$24 - .by $22,$22,$22,$22,$22,$22,$22,$22,$22 - .by $20,$20,$20,$20,$20,$20,$20,$20 - .by $1e,$1e,$1e,$1e,$1e,$1e,$1e,$1e - .by $1c,$1c,$1c,$1c,$1c,$1c,$1c,$1c,$1c - .by $1a,$1a,$1a,$1a,$1a,$1a,$1a,$1a - .by $18,$18,$18,$18,$18,$18,$18,$18 - sintable .by 0 .by 4 @@ -221,67 +195,89 @@ SlideLeftTable .BY %00000111 .BY %00001100 +;----------------------------------------------------------- +; this table changes Angle to the appropriate tank character +BarrelTable + + .by $2C,$2C,$2C,$2C,$2C,$2C,$2C,$2C,$2A,$2A, + .by $2A,$2A,$2A,$2A,$2A,$2A,$28,$28,$28,$28, + .by $28,$28,$28,$28,$28,$26,$26,$26,$26,$26, + .by $26,$26,$26,$24,$24,$24,$24,$24,$24,$24, + .by $24,$22,$22,$22,$22,$22,$22,$22,$22,$22, + .by $20,$20,$20,$20,$20,$20,$20,$20,$1E,$1E, + .by $1E,$1E,$1E,$1E,$1E,$1E,$1C,$1C,$1C,$1C, + .by $1C,$1C,$1C,$1C,$1C,$1A,$1A,$1A,$1A,$1A, + .by $1A,$1A,$1A,$18,$18,$18,$18,$18,$18,$18, + ;.by $18, + + .by $16,$16,$16,$16,$16,$16,$16,$16,$14,$14, + .by $14,$14,$14,$14,$14,$14,$12,$12,$12,$12, + .by $12,$12,$12,$12,$12,$10,$10,$10,$10,$10, + .by $10,$10,$10,$0E,$0E,$0E,$0E,$0E,$0E,$0E, + .by $0E,$0C,$0C,$0C,$0C,$0C,$0C,$0C,$0C,$0C, + .by $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$08,$08, + .by $08,$08,$08,$08,$08,$08,$06,$06,$06,$06, + .by $06,$06,$06,$06,$06,$04,$04,$04,$04,$04, + .by $04,$04,$04,$02,$02,$02,$02,$02,$02,$02, + .by $02, + EndOfTheBarrelX - ; right angles from 0 (vertically up) to 90 (horizontally to the right) - .by 4,4,4,4,4,4,4,4,4,4,4 - .by 5,5,5,5,5,5,5,5,5,5 - .by 6,6,6,6,6,6,6,6,6 - .by 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7,7,7,7,7 + ; right angles from 0 (horizontally right) to 90 (up) - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0 ; not used + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,6,6,6,6,6,6,6,6,6, + .by 5,5,5,5,5,5,5,5,5,5, + .by 4,4,4,4,4,4,4,4,4,4, + ;.by 4, - ; left angles from 90 (horizontally to the left) to 1 (vertically up) - .by 0,0,0,0,0,0,0,0,0,0,0,0,0,0 - .by 0,0,0,0,0,0,0,0,0,0,0,0,0 - .by 0,0,0,0,0,0,0,0,0,0 - .by 0,0,0,0,0,0,0,0,0 - .by 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - .by 1,1,1,1,1,1,1,1,1 - .by 2,2,2,2,2,2,2,2,2,2 - .by 3,3,3,3,3,3,3,3,3,3,3 + ; left angles from 90 (vertical) to 180 (horizontally left) + .by 3,3,3,3,3,3,3,3,3,3, + .by 3,2,2,2,2,2,2,2,2,2, + .by 2,1,1,1,1,1,1,1,1,1, + .by 0,0,0,0,0,0,0,0,0,0, + .by 0,0,0,0,0,0,0,0,0,0, + .by 0,0,0,0,0,0,0,0,0,0, + .by 0,0,0,0,0,0,0,0,0,0, + .by 0,0,0,0,0,0,0,0,0,0, + .by 0,0,0,0,0,0,0,0,0,0, + .by 0 EndOfTheBarrelY - ; right angles from 0 (vertically up) to 90 (horizontally to the right) - .by 7,7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 - .by 6,6,6,6,6,6,6,6,6 - .by 5,5,5,5,5,5,5,5,5,5 - .by 4,4,4,4,4,4,4,4,4,4,4,4,4 - .by 4,4,4,4,4,4,4,4,4,4,4,4,4,4 ; one pixel Up for fix problems with colision check -; .by 3,3,3,3,3,3,3,3,3,3,3,3,3,3 +; right angles from 0 (horizontally right) to 90 (up) - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0,0,0,0,0,0,0 ; not used - .by 0,0,0,0 ; not used + ; one pixel Up for fix problems with colision check + ;.by 3,3,3,3,3,3,3,3,3,3,3,3,3,3 + .by 4,4,4,4,4,4,4,4,4,4, + .by 4,4,4,4,4,4,4,4,4,4, + .by 4,4,4,4,4,4,4,5,5,5, + .by 5,5,5,5,5,5,5,6,6,6, + .by 6,6,6,6,6,6,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + ;.by 7, + +; left angles from 90 (vertical) to 180 (horizontally left) + + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,7,7,7,7,7, + .by 7,7,7,7,7,6,6,6,6,6, + .by 6,6,6,6,5,5,5,5,5,5, + .by 5,5,5,5,4,4,4,4,4,4, + .by 4,4,4,4,4,4,4,4,4,4, + .by 4,4,4,4,4,4,4,4,4,4, + .by 4, + ; one pixel Up for fix problems with colision check + ;.by 3,3,3,3,3,3,3,3,3,3,3,3,3,3 - ; left angles from 90 (horizontally to the left) to 1 (vertically up) -; .by 3,3,3,3,3,3,3,3,3,3,3,3,3,3 - .by 4,4,4,4,4,4,4,4,4,4,4,4,4,4 ; one pixel Up for fix problems with colision check - .by 4,4,4,4,4,4,4,4,4,4,4,4,4 - .by 5,5,5,5,5,5,5,5,5,5 - .by 6,6,6,6,6,6,6,6,6 - .by 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7 - .by 7,7,7,7,7,7,7,7,7,7,7 ;------------------------------------------------- TanksNamesDefault diff --git a/grafproc.asm b/grafproc.asm index 218498e..1a55c8b 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -619,19 +619,8 @@ SkipRemovigPM lda AngleTable,x - bmi AngleToLeft01 - lda #90 - sec - sbc AngleTable,x tay - lda BarrelTableR,y - jmp CharacterAlreadyKnown -AngleToLeft01 - sec - sbc #(255-90) - tay - lda BarrelTableL,y -CharacterAlreadyKnown + lda BarrelTable,y sta CharCode DrawTankNrX ldx tanknr diff --git a/scorch.asm b/scorch.asm index 00967db..f445b6e 100644 --- a/scorch.asm +++ b/scorch.asm @@ -1079,9 +1079,9 @@ UsageLoop bcs RandomizeAngle - sta temp - lda #90 ; CARRY=0 here - sbc temp + ;sta temp + ;lda #90 ; CARRY=0 here + ;sbc temp rts .endp @@ -1347,7 +1347,7 @@ font4x4 ins 'artwork/font4x4s.bmp',+62 ;---------------------------------------------- TankFont - ins 'artwork/tanks.fnt' + ins 'artwork/tanksv2.fnt' ;---------------------------------------------- icl 'variables.asm' ;---------------------------------------------- diff --git a/scorch.xex b/scorch.xex index 62ee25954a2eebd747c1265f222438f739c96c07..18c2910b6b3908cc75b1ecb1d18fcc3fc53d6485 100644 GIT binary patch delta 14880 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 delta 14963 zcmbVz3w#tsw)Z^p7Lq{$2M}o#(71qcVR3vxP#y^kK}GO^x}$(g^d>%55m4wPq%kJx zkjbFXRSYu|(;*$wApv}3WdvMa0 zSekfDvIoDBR)i(*H&XDhwBnfLJrhKTD+p9r*a==Lpa*KQbWa#yb@g zu<+Sz+pe}qVXO0t$(@86qV-Q#28ahFXXj)k1_CIiYHyvd?Z`;&OnEd9L~sNzko-|n z7I-bhn?$?=h|=aAM-;2~7NR`ry^bhm?-;^q)4h{Ov#lAO;U4@exBIVL{8BFeWp26!%!5yYMis`DJcQ8fVSs+)u0V z2SQhA@!W`~p#HGg<*dJpJD0}wn`0C!i-JxPN(m=~CTV@R(~p80*TjB1Kj9_L;{uV& zqQe%#Etp$T1UZiSxHFmR!z6qc3Y3Z)D0fYI&Amj6sVrLWod#W;H?Hai8n$vjEs=`^ zuRiYm=d~8eMSDM!w3D(|DC(tH9*w?0x#Aq+k5f$cC$r}ezSL^ZOeoM!vI2Ci;&&W0 z{FyQkn$VRtfP|xiP~{cPwjWxHsrRYOuCcS~flow}{*Efb1V3x zlxe~Qg9i2{lG5moL}IgG?(r5 zkt!g@5m)!%2&*u_j}TpCAs6yOS~CQ3p1KRN?R}8coe}2}K+hxM{X~3#B+eyc=NZ3$ zI=`TI#T*{)P)r?jiH_3&oO!_Q0OI}Z{Qx82dG^+!{MnV_E{popN^!SE{r5`oeT(|@ zO7ZU&^_P|6hZa})B*kGkHA`!mTo&?aQL;PKs(lBc5BQWQ@e`lYC5lvB$y7d#a*k=r2n$w%(g(bh z6!D~`JW8>7Z4^J3VcB~JQ>Dv0fO>AaZQLD6m`^{In+mbq+K$9%XFvj`Ax3yd35yvr z2p^CX6AXjjSw0;W;^A*xY3tJ}-fD>EYXD+wNkXcg9~`*~mES}j`De2t#ER`nC3bO5E&FJupFle`wTDR>KM z8G|Jn97kHNBXxc7MiXk$=Hd#T#~hhN?3oVNl$aFPM6Ya(s!mGNH3hRddBpbLb~zi)0szRemC>j ztY2pRI5UcOUhW+2oaS6OYvruG-VJ^n(1Hl^=*1kqa;I&Ww}JxRpjR6Rw+ zYiLB6YpHsMw41~cl&NTdfq7{uurPc51@sRBa}<^QNQ$)}n%K9Qea=W8R%%J_V%;{0 zKM?Upq7J9xNupju#ZyGRmO=&U2r8a2)B;6dSeP#Q>N+q6>R84;j%oo=7)eMVPP=K{UE+Aim0P7`uUEv@I(dQMFm6~(YT!%~O9TmW77Idr;g zS~x9tcXvPX$+$&6yC=z4vl+}#rXtLuuVyR#AqnKGCak`%C@|}nPn?fAFVSM{X#xKW zkz$P|IY-PPa;}(5n z=n8QL^;02F4Nzf~T26(0^$jWrY6TTm zt1<o0k-WuOw9;Be-Q!h{bi8nVZy!iXSN2T{R_DfQ(b`HPS{>P?77bE z1b@}-Wbb-f`ak8Sl4-Q9WIHihBGo5!`brM^)$Loq1SQxrt-2EI@YMt;!O?CJZh#hq zS1>m-FZP+T|LSkX!X>w2&7t$A=-RzX%7AA45q$?NHg1|NrwGCF@= zPmTU)Mt@w~4|fkz5&^{4+9+Y2oSW$t*85HM>qMS-o|$u{r((*GaThcQdHJitGxzc& zY$=`M09dsqbKUF^k9cB4*zGCIu2G5X>>a*JS*DuNy*4M9NqNtt37N^G1 zc(WJ>rwc9`IPpYYAM)~8cI!f;!UN@XP|f;1>+07*Y|T^`4gJBDyA)C2ZPd}82y?AK zYXutvsULb}i^Zf{NwjF45vzz-%=WA}<{2`7cp7zXzDK#j7@=u{=_R{w7B}mvCXk$l}z)Sh+4_uH$lA^?eoTYY|lWSS83D45>-y6`;%Vla6PK^5$vagD$3JICuI#%I@Ieh26F4&KY9Yx(mG~7kwI0Z zp^iLuN{biOqQUZ9SkbO~>xS$^Bb&WLY^2G!kES#<6?Xyn`& zW<(E27xur@3gHYd*-!zB(9v};5()61`O=So=e+j5^9T;t$>78c_xd^#>eBii9)mRi zOEHGI+#nDEaG<%JQPG(IDCHll(F`GgJ&C{}2X<`4-wsuTnJmgf2r=}4@kQ{^0S73< zNe|68pyUYDl{&F=(+K?9Pzn}?2?un1bG5GU*M{oBYZ|ddD>wGG95-5&u30sbSR?6i zk)A455>+Wu;-N!)%1|Uav1E>ZPMJ`57Ds9v>?0>?-Kh?7S`zv_jViJ5)ZnLSeb9Y; z2FDPT&}5ret$Cy0VBnbU&J30KOU|+BlFo|ICd&1@<&f zaB~BedydQ)#xpc6+HYZ-3i#cu4Z-&X`wZg-nb-ycCh-;&u!Dh+HBXt3NP_?4{#{0)5ktgHzX|O)h&mwj5(p zU8b4&rs6h&K^1=?7*+8c!BC4o5sbC?ZzlPEw!wZ!#N$NlAQ*7Axe0l~szehVYo@hb zq{K^Y1003zvT?YsW>b)DR!ls+f}R{PhN_seR;rq*7{%slG%b(Ij-jPj*;U?3vq1hk zqDIjyFgZ@tXqp999b~MPj*X&YqiM7D36MI88b`w%q9i&z-a0tmIyBy$1VDiNA0mc{ z_&re`a&&Z&>faTChYSz_DF3620K~8^!uO2AMIxNQ4)r7H01VDVr%4B3a1=U2I!+L* zB8M6#9rx+@-?KB>_e4Fx-Y1BykD+g7gFEKi)gK7!>JLoUJnJjYR;Nf7#6Lys>USgy z;UOsGILShM2ny*SSqKny5VezJAwmR2{KS^yzu9v9g)PT(SdMIo=CdU#uqC>hEzwut zqn$sT7Yy@As>P|(D37W09y`5he*}uYot-A3P-!$uwh4^r#p_-LrWJmT^M(i2TGqUU z$x+ATsAsOt>80}j!7bt$a*tnB(?-Iv1(=b}-1!(toJ=8@)j4Xujr~+Nvx$F4czMX7 zy`ZnaD6uwT*0vDc9*s^oU>o6pTm2?zBpWb_tdyTgvE%n_(6wRUbH&Z{s8r~nLa z)Swf4C!4hx)b33+*CpyC7`#pbwUK_hlrBey9uhFZ1Nyquomnnz3G-)R!eDU_Kr~Ly z7*Wg&;IlE_!Uos@RkgDy0Tls;Hy z`pG*LB~Zi85Dn^~)Y51Gv=bFDS7@=L+W~4D$K!1qi|KvKqZghWSUb`d%+>-M2lNnD z3U_v?bHl^EWw7erjU#73D2A<>TkQa18#>U~hVC~36kGZ=7vp07Va=Xh3OuM}!^8M{ zp&UjVJOmvxLQ-G{sj_;vgPo4@S8*gA_?N;%V&`j89>o+MjoeHMV{w6b;4gV>0yXfx zl;_`@@X%8t5eJ#2LNF9?mVa6j@k>~i0yzkMfwC>pa4vchP*|ia&Gf9jd$VLg2*0U# zGbvw+lMDBx=czfv_{~I_i=zqma=YDX4N31pWplIb+ooODYg-lUrXYuD zi+ly9?^3p+moZV`pSyycIT(evbD6r*yWDO>eObO`CRT4_Ug?zfsK&gyiR@sUidEg1 zi@EX$Y0RnngFQ2@ir3u>R9ZgBDIMHa@-S(J@@m<^XA3(B*0CdJJ#pzl<7yW$9qmz7 zKx#J`NOeco+cRyfCNok~`bpi}zg}W`%ns+Ito2lU8RWAhDz1QWSfS5e^<@&8RGOen zLL0iaf;i-y4nQskWCtK$BI--Ji;fyrc#-UV39)i@3E8`xl=e|kyM%$Tbj~uecLi%( zO7^~tI66o}U+M~$`eCOhxYjeYP?cYQ}Jg~%|@x* z)G(MwX0*XEj7N4_4S zC`+FH^X`cCN(l)oyprdEdBe>IJ{*!_ts3-29c!6_4Z4XLQU+{drpF-OlT& zN=$W;`BNpdN-jdsr8<};Nja0-ns&u$Cl%xHf`qPEMv>_iJydy3cukosyw1(fR7MK< z%FTj+cu*lNDWa?0!Px@(n6a>;XtXA!JYOCg)FykEOhSgW(%pbW@yGdEOas!yNkW~~ zY0mJJ-#?n4Er2$+Ewj>Xm-91+2(QUPrb&1`n8fOXALoN7csX}20JWxGYHT1I*g#ge z>$mGn{R0(~JHKhyaP6$@#@GX$Q8af`)OiGV3jQc}KI}}H-x}i{Rpy!XKrDY&*e;i4 z3c{QInELIE#z5`#XpzDko5W%o9&}u!T7R{KYVm3zMUC@@g=!J|C_IugV)Ri}X|bsYTj{ARO+yubA3~>Ya1OEMf)bX%|yNEMAuj4GeTZ zr%_!*wG{NO0IbmxsYI7!(R)^@uA%nKq`k$oF5Uq$?Mdhw06`XAETQRU5gi(;j1>Eh zS8f&)$EzBfn@vv`Fgj7Cku}~f^4+b~=eM#MH5-(m z-K6zVu7XL|?;L2uad_|F;v_gk4`r3?R0tm}JQ(kWk6*=SFU$Jvy2SxGjG&W*`(O;0 z({OClE*l%ekBVsB+2UeqSS!61BaGJT_14%zquG--e^?TRAf2KtlZzO@r@gOO z?F+8+h?{-E__bn<4>mycshfQW4b}LBvKrOLygp9+#;2;jgamt5l~2Hpi7ds(3yNCp z6RJ7!rB2mnh__euX@5t!q4;xO&F4P#Q%2@9kg0bg`a6~p`2y(bAs=wR1TMS_+#(TQ zvZFpTO8mly*H5w>VT(^~@rhshxKFe2VFyTyPkB@P)Ti(w|CtZ|^%qRy zL)~C4PxgRC5Z}wf+z$Ogiv=sB!!aZ*ntCoxu?n?116>5=1B2%8liX9Q?RP2tg-YES zK|CG-o66skvhqKn*dt`GIRB|6pYeMtu{{N!a&eVU8=aT}?L;V^r!SSzy%kb;47OOM z8OA}~Z)ydoc2RSQNs|z`e|a$ z&)bpC!uc62zAY(M@m&cX)DB6h{hhw|@WBV0dB?N%9rodn*Wxq8bB?7~iF@aRCM`sopL9Wikv9?nW_9r1TJiQvNtu95-1UKUw?}V}`wMC=McFJA;cu zBT|>$T$OkO1_25M&;~l% zWxdqG3kAwbaUz2Q@T49N>Rj|nod?UN;tEv30>^ET;_=>QLYY|i_f){D^!mK95uevp z^O;o8u(Z(g?*-$cw-Rw1@r+wIW4ekHOWx7dLbbf==qtiz=bUH2omH+rnup3)j;<0m z%ejpLLby4N`K5MMWdUObkaIL&sFHJ!3WDOy_k6JM+8f_}My?hrW6W(7cG zSTJBk0ZXomR-&t;H^Z?_e9kj)Q3gNqS-V`js7|Prw=Aj`wg50WO1nbdh*5$ulmmiC zE*I81XFrQ7531Ip%8jZr25Hu8cGxrXdgQ-6%|AlC3kb3m&9;-6uCu9lH#21SP#8pZ1tYfVBiw;I0gpiI zfJdOU+11%}MQI)&rAJs)^KPo%O{E2-6DapkcCW0_xI8z^z5=uv%((@~1|eOMgi@XL z@B)HD@;MZ6mgObw6PJD)fCVJ9K?oussBk&1v1Aftp=L2*(y2IuHrrZUa#0#?s}&*8 z(ppqm#CV;=6(i;&ClR*EdQF=1PcJYl(bq5y%q}?Vo`+eeYG5`2kUc31ghr6|@L}Fda zqnFNoc-)!&V_24nTj$xIIW!)9=qX*Bb&&)R02?XpUA%yWvTquNIcT@)cb0N-!O@M; z@4l6=$E|&@L|ss2-1)=psM{qqo2Bx$3E_`6Vo> z{UXeT9ibYw;!$9Zp)!bUJd5E7ZU@MX*xxV>(-Gvmcpmcnn++Rm@?!USwI z?wJ}A%ei}(A)zMc>|IJq-wwYCKD{jG{T@%V7*8RtH}qlMjm7bB^v!OskOv_&PVX)< z@o07ndG&7A<}TKg^DOb@N&2sWd@oleyh)9xu*J{3s3S&lW4ZzzSVy6_x-<4ntZ326 zX7o(`GF&?QO}1ikv$t8y(BDbbZEbBOvnZGTykR0=(=U{~F6a48?$^`|8otJ%&ZHgb zbTOmjq#ZLTsNy4(Qg1#we1J!?3>dzqXg zM)ASz_N%7!g2{N2$x6IB+%mtG<-GWIAo*RK!|eavVJ(OL!3i{ zDX!5Dpc16|DJz+uj$2dHgeParsETmb`9`?L)#vLhUG@1oH*6ml^x!v80iBcgNKPKp z*D9sSaWqd%qnI(yN0vtj^_;-@R$*Tn)!JQhf$%E83u9g#RX8g0&n~~3nI*g`7iPXD z6#8T9Urq0lCg2*5G!e(Z?^$b{@G8PY-EE^VgQT&n?IJlZ)U=%EXpgPd)g0uRmeJer z!i-Tgdo0bkj%MFTGp?uEDKsOQX5U0JZlKwJq#1vp+2d%&Xqr8qW{jcPf1-};2{d~m z&AyptPomilnw?6sZ=uX!cZ`VK*>KmZWr*$9gAF z??hPc(|oxJIvz#um_QLb!{=Cf$3%P<^k|3$!Q!+pUFuO^nB5FI>Qle*A?0kr_kXkR z8HVDRIy!V^t%b5o<<|OFNB_6a7Ig!j_#`mIo$-lO3458Aykik%do`02Jj0$DfH`oH zf~s-Gk0_{HKjVK(KfkGmX6>U$=SCm(*{tXF&?xtG)3fcFTd>%+D3n zyTkux|HZ_`sW0OykEgPT`O6;^h3{%WN@8O0X>#akQa9Am@HF}5X@bbWA9(y%jRwzrr)HQ~R7#MhmwIq0)5o4JySJerAYW~$l2 zRAYf^A|hW}x~+eEzxlwIUmvsCxkcBfI8xK}5y)Jb7F@hC&Gq8SJuClp-XB+0!x|wx zy&*}!0Dhb=lp&rdco0j38@;x%4Bn`x(Or5Sf*ZK|`i&&7Jz5qCF&cVlm@RltKX>)u zWh?ir(>h(aWwH*TBy_}#jtr|i#VzyP_}7Oot85+hL}e?b8#Zk4y#Ci!^DU7lD)Pj1 zKXH)SRT@x3_TW4`>AtIgd{H(!gz z+WUCES~A9S<%>f-^u;7gR1`2~c-Fi)f7_I$XA=39iu!KT$0x45c6{pe4A---l-9qu z_jFgk8z;`3zr1j5)&KkIM9j5!KJtRJegC&V54v{F!X+CvH@5t6<&fbwOt@|0UFnO8 z%cPB4Fd$)TLcc%EeDJAa8f*;h-T&E7eYh!)EiKwm)%a2P%G5_+kU#uB!G7~?a~Hl; zXgo#wGt7A5xA?qA?0G!LUKu=k&6+i(7d=R|bw6ds<1wCXTtT&Yz!^NdOeRw*dw%Zv zbQm71=U=aWnrO1G?7DMASJ$_>XwKdCe&MT@s2b^G$$d|M&jPXEl>v7k$CSh6q?&f+ zI<-(&aurR3PC3g>Rw`48DStHRk<>6{_2-ktw`ntvHA z{J;DK+E4zd`rYEkvggG$Bg_?^4QmEXkPEBocZSZ@jj5`C*L%cYAM}3Xhox)tBMExk zk9epl&~_wBJ0$N!h(y>~I;3@%b8Cg?yEQ|2zjkNvh+o(p{KhZ5zoX56uFYS+Tlf$+ z_~78y{m~otH`VW+k-QQlbYk5gGoJVmf8`I8!`_qrBUWv@ViO+-I48-WN#P-=-W85d zxZwtHcm7-f3itqJe9Ipq{ua+_Q2d~RcRpT$t~RIqw8IogIm6v6J8zf46vq0bzrMj6 z6%ZPm@Qw=zd%!;}P*vaPy*qJumF0QR|-va?;@b=<=4?#>Tl*Huws8T5xJ}9>a z;{xFm!uvr8wR=aO0MipXA~dm|P}BMrTc9){90z9hK(K!R)S-u@p(p)S4W>7QX1OUj zv8o|2ApBi!9<(apy*m&b5#W(+F>8H;Kl|+~u4l42XH*^@5!m4f?CM*3Q!q7P8@0Y= zd;tGV^7a4(#cjv&0mi=(vIu*2j1QnIDS_bV05S(qLC_ws*@Gwj;VY_wT)@8KssK7( z8neFL26f6!-YJ3PXTs5P$Qh~(hW++Mp~vhiQUaknN|CaHK+2@5`oG&({OtES1I;N` z=U1|NU!d>YK;LJOWG^(S24T%U8*xsdv`!I9Vjs$P-g{d?+J*O10~i2YDS>; Y-hdc&pd|W$Iy+E1C$Mcn+3AG;1+63XBme*a diff --git a/textproc.asm b/textproc.asm index e632d29..cac0e40 100644 --- a/textproc.asm +++ b/textproc.asm @@ -1205,7 +1205,7 @@ CheckNextLevel .proc displaydec ;decimal (word), displayposition (word) ;-------------------------------------------------- ; displays decimal number as in parameters (in text mode) -; leading zeores are removed +; leading zeroes are removed ; the range is (0000..9999 - two bytes) ldy #3 ; there will be 4 digits @@ -1907,33 +1907,36 @@ NoShieldEnergy ldx TankNr lda AngleTable,x bmi AngleToLeft - lda #$7f ; (tab) character - sta textbuffer+40+25 - lda #0 ;space - sta textbuffer+40+22 - lda #90 - sec - sbc AngleTable,x + + lda AngleTable,x sta decimal + ;lda #$7f ; (tab) character + ;sta textbuffer+40+25 + lda #0 ;space + ;sta textbuffer+40+22 + sta decimal+1 ; angle is single byte, but displayed with displaydec (word) routine + ;lda #90 + ;sec + ;sbc AngleTable,x tay - lda BarrelTableR,y + lda BarrelTable,y sta CharCode bne AngleDisplay ;like jmp, because code always <>0 AngleToLeft - sec - sbc #(255-90) + ;sec + ;sbc #(255-90) sta decimal tay - lda BarrelTableL,y + lda BarrelTable,y sta CharCode - lda #$7e ;(del) char - sta textbuffer+40+22 - lda #0 ;space - sta textbuffer+40+25 + ;lda #$7e ;(del) char + ;sta textbuffer+40+22 + ;lda #0 ;space + ;sta textbuffer+40+25 AngleDisplay - mwa #textbuffer+40+23 displayposition - jsr displaybyte + mwa #textbuffer+40+21 displayposition + jsr displaydec ;========================= ;display Wind diff --git a/weapons.asm b/weapons.asm index 5e0f802..e67e9ac 100644 --- a/weapons.asm +++ b/weapons.asm @@ -202,11 +202,8 @@ FunkyBombLoop lda random sta Force mva #1 Force+1 - ;Angle randomization Range: (-16..+16) - lda random - lsr - and #%00011111 - scc:eor #$ff + ;Angle randomization Range: (70-110 degrees) + randomize 70 110 sta Angle lda #0 @@ -544,7 +541,7 @@ DiggerCharacter mwa xbyte LaserCoordinate+4 mwa ybyte LaserCoordinate+6 - + mva #sfx_lightning sfx_effect mva #51 yc ; laser blink counter @ lda yc @@ -555,7 +552,6 @@ DiggerCharacter mwa LaserCoordinate+4 xbyte mwa LaserCoordinate+6 ybyte mva #sfx_lightning sfx_effect - mva #sfx_lightning sfx_effect jsr draw dec:lda yc @@ -1175,34 +1171,34 @@ CTRLPressedDown bmi ForceGoesZero jmp BeforeFire -pressedLeft +pressedRight mva #sfx_set_power_2 sfx_effect ldx TankNr dec AngleTable,x lda AngleTable,x - cmp #$ff ; if angle goes through 0 we clear the barrel - bne NotThrough90DegreesLeft - mva #$2e CharCode - jsr DrawTankNr.drawtankNrX -NotThrough90DegreesLeft - cmp #(255-91) + ;cmp #180 ; if angle goes through 180 we clear the barrel + ;bne NotThrough90DegreesLeft + ;mva #$2e CharCode ; TODO: change + ;jsr DrawTankNr.drawtankNrX +;NotThrough90DegreesLeft + cmp #255 ; -1 jne BeforeFire - lda #90 + lda #180 sta AngleTable,x jmp BeforeFire -pressedRight +pressedLeft mva #sfx_set_power_2 sfx_effect ldx TankNr INC AngleTable,x lda AngleTable,x - bne NotThrough90DegreesRight - mva #$30 CharCode ; if angle goes through 0 we clear the barrel - jsr DrawTankNr.drawtankNrX -NotThrough90DegreesRight - cmp #91 + ;bne NotThrough90DegreesRight + ;mva #$30 CharCode ; if angle goes through 0 we clear the barrel + ;jsr DrawTankNr.drawtankNrX +;NotThrough90DegreesRight + cmp #181 jne BeforeFire - lda #(255-90) + lda #0 sta AngleTable,x jmp BeforeFire @@ -1606,8 +1602,8 @@ ThereWasNoParachute ; Angle(byte) 128=0, 255=maxright, 0=maxleft ;-------------------------------------------------- ;g=-0.1 -;vx=Force*sin(Angle) -;vy=Force*cos(Angle) +;vx=Force*cos(Angle) +;vy=Force*sin(Angle) ; ;:begin ;ytraj=ytray-vy @@ -1617,6 +1613,9 @@ ThereWasNoParachute ;plot xtraj,ytraj - there is clearing in plot ;goto begin + + + ; smoke tracer :) ldy #0 ldx TankNr @@ -1644,45 +1643,41 @@ RepeatFlight sta ydraw+1 ;vx calculation + ;vx = sin(90-Angle) for Angle <=90 + ;vx = -sin(Angle-90) for 90 < Angle <= 180 aslw Force ;Force = Force * 2 - ;sin(Angle) + ;cos(Angle) (but we use sin table only so some shenanigans happen) ldx Angle stx LeapFrogAngle ; we will need it later ;Angle works like this: - ;0 'degrees' is straight up - ;90 'degrees' is horizontally right - ;255 is straight up (same as 0) - ;255-90 (165) horizontally left + ;0 'degrees' is horizontally right + ;90 'degrees' is straight up + ;180 horizontally left - bpl FlightRight + ; (we have to set goleft used in rolling weapons) + + cpx #91 + bcc angleUnder90 - ;and if the highest bit is set then - ;Flight to LEFT - ;calculate Angle with this formula: - ;Angle=90-(Angle-165) - - sec - txa - sbc #165 ;(Angle-165) - sta temp - lda #90 - sbc temp ;90-(Angle-165) - ;and we have rady angle here ... and we go LEFT! - tax - sta Angle - - ; and now we contine as if nothing happened - ; (but we have goleft set to 1!!!) + ;over 90 mva #1 goleft - bne @+ + sec + txa ; lda # Angle + sbc #90 + tax + jmp @+ -FlightRight +angleUnder90 mva #0 goleft -@ - lda sintable,x ;sin(Angle) - sta Multiplee ;sin(Angle)*Force + sec ; X = 90-Angle + lda #90 + sbc Angle + tax +@ + lda sintable,x ; cos(X) + sta Multiplee ; *Force mwa Force Multiplier lda #$0 sta Multiplier+2 @@ -1721,18 +1716,27 @@ DoNotAdd .endr @ ;======vy - lda #0 ;cos(Angle) + ;vy = sin(Angle) for Angle <=90 + ;vy = sin(180-Angle) for 90 < Angle <= 180 + + lda #0 sta vy sta vy+1 sta vy+2 ;-- - lda #90 + ldx Angle + cpx #91 + bcc YangleUnder90 + + lda #180 sec sbc Angle tax + +YangleUnder90 lda sintable,x - sta Multiplee ;cos(Angle)*Force + sta Multiplee ;sin(Angle)*Force mwa Force Multiplier lda #$0 sta Multiplier+2 From 00099f4c2732176bceabf273e0288593acc792d7 Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 3 Jul 2022 00:09:23 -0400 Subject: [PATCH 10/18] tank font fix --- artwork/{tanks.fnt => tanksv2.fnt} | Bin 1024 -> 1024 bytes 1 file changed, 0 insertions(+), 0 deletions(-) rename artwork/{tanks.fnt => tanksv2.fnt} (81%) diff --git a/artwork/tanks.fnt b/artwork/tanksv2.fnt similarity index 81% rename from artwork/tanks.fnt rename to artwork/tanksv2.fnt index 8c0e93d07456729b98c9399b9b83875d0359e408..d06950ec34829b81c22b7aeacc4938f227bb8efc 100644 GIT binary patch delta 51 zcmZqRXyBNzLv#laFaUuA2>khfRTc;sCZ4^@CsFs`Nk!uS^G2X# delta 51 zcmZqRXyBNzL-Yp_9AIEzZ~%cn|F6me0rSMOSNRwu>i#>a{Qv*F5h&ZZc>`kr697gz B6?Oms From 7bd71053742e0b7ae74d36a44b640839e5d0e7f7 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sun, 3 Jul 2022 15:16:58 +0200 Subject: [PATCH 11/18] AI uses defensives --- ai.asm | 76 ++++++++++++++++++++++++++++++++++++++++++++------ constants.asm | 16 +++++++++++ scorch.asm | 4 +++ scorch.xex | Bin 40287 -> 40425 bytes 4 files changed, 87 insertions(+), 9 deletions(-) diff --git a/ai.asm b/ai.asm index 74db4ea..d3549c7 100644 --- a/ai.asm +++ b/ai.asm @@ -150,7 +150,47 @@ loop .endp ;---------------------------------------------- Poolshark .proc - + ; defensives + ldx TankNr + ; address of weapons table (for future use) + lda TanksWeaponsTableL,x + sta temp + lda TanksWeaponsTableH,x + sta temp+1 + ; if low energy ten use battery + lda Energy,x + cmp #30 + bcs EnoughEnergy + ; lower than 30 units - check battery + ldy #ind_Battery________ + lda (temp),y + beq NoBatteries + ; we have batteries - use one + clc + sbc #1 + sta (temp),y + lda #99 + sta Energy,x +NoBatteries +EnoughEnergy + ; use best defensive :) + ; first check check if any is in use + lda ActiveDefenceWeapon,x + bne DefensiveInUse + ldy #64 ;the last defensive weapon +@ + dey + cpy #ind_Battery________ ;first defensive weapon (White Flag nad Battery - never use) + beq NoUseDefensive + lda (temp),y + beq @- + tya + ; activate defensive weapon + sta ActiveDefenceWeapon,x + lda DefensiveEnergy,y + sta ShieldEnergy,x +NoUseDefensive +DefensiveInUse firstShoot ;find nearest tank neighbour jsr MakeLowResDistances @@ -321,27 +361,45 @@ SorryNoPurchase ;---------------------------------------------- ShooterPurchase .proc - mva #4 tempXroller; number of purchases to perform - + ; first try to buy defensives + mva #2 tempXroller; number of offensive purchases to perform ldx TankNr -loop +@ + randomize 49 55 + jsr TryToPurchaseOnePiece + dec tempXroller + bne @- + + ; and now offensives + mva #4 tempXroller; number of offensive purchases to perform + ldx TankNr +@ randomize 1 14 jsr TryToPurchaseOnePiece dec tempXroller - bne loop + bne @- rts .endp ;---------------------------------------------- PoolsharkPurchase .proc - mva #8 tempXroller; number of purchases to perform - + ; first try to buy defensives + mva #3 tempXroller; number of offensive purchases to perform ldx TankNr -loop +@ + randomize 49 61 + jsr TryToPurchaseOnePiece + dec tempXroller + bne @- + + ; and now offensives + mva #8 tempXroller; number of purchases to perform + ldx TankNr +@ randomize 1 30 jsr TryToPurchaseOnePiece dec tempXroller - bne loop + bne @- rts .endp diff --git a/constants.asm b/constants.asm index 98d315e..d016510 100644 --- a/constants.asm +++ b/constants.asm @@ -542,6 +542,22 @@ PurchaseMeTable ;weapons good to be purchased by the robot dta 0 ;"----------------" ; 45 dta 0 ;"----------------" ; 46 dta 0 ;"----------------" ; 47 + dta 0 ;"White Flag " ; 48 + dta 1 ;"Battery " ; 49 + dta 0 ;"Bal Guidance " ; 50 + dta 0 ;"Horz Guidance " ; 51 + dta 0 ;"Vert Guidance " ; 52 + dta 0 ;"Lazy Boy " ; 53 + dta 1 ;"Parachute " ; 54 + dta 1 ;"Strong Parachute" ; 55 + dta 1 ;"Mag Deflector " ; 56 + dta 1 ;"Shield " ; 57 + dta 1 ;"Force Shield " ; 58 + dta 1 ;"Heavy Shield " ; 59 + dta 0 ;"Super Mag " ; 60 + dta 1 ;"Auto Defense " ; 61 + dta 0 ;"Fuel Tank " ; 62 + dta 0 ;"Nuclear Winter " ; 63 ;------------------------------------------------- diff --git a/scorch.asm b/scorch.asm index e4c6429..c8cf91b 100644 --- a/scorch.asm +++ b/scorch.asm @@ -311,12 +311,16 @@ SettingEnergies jsr SetMainScreen jsr ColorsOfSprites + lda #0 + sta colpf2s ; status line "off" + sta colpf1s jsr drawmountains ;draw them jsr drawtanks ;finally draw tanks mva #0 TankSequencePointer ;---------round screen is ready--------- + mva #TextForegroundColor colpf1s ; status line "on" rts .endp diff --git a/scorch.xex b/scorch.xex index 8fa205c9931525cd22db3f5e404a7bbbffb8052d..e0eca409da9d648926f9224b416754ca8cdc6114 100644 GIT binary patch delta 14035 zcmbVz31AdO_V*mQ3CVCeAdyC7H7i0`IYtnHl_P;BoZ`XZD2EJ?a0n_2bV$-%N#jg9 z99_*Y*+7SMNM|Pygt*Rvx?mL-h6B5_TeU0s3oFZq7eGf4n(|NDIb(%tor zdiAR6)jNv6y>4mxoyEUqsAaKqbnVcO%rjO^WX?OaRX+V+OyzU*+01B@m}j0E2?%&^?@alxPSNn?wxe{ zb(ddyq(ZU>4oVySlJ}q#*e`9Yki7fp%crkNZbpv-?9(?ScTWdietaW>^y6z3iQWHe z)dVWM*4t_{uN1Pfe;wEIlpGd~$xwR;MH1UGPK|*8s;R=e%6IwV0R3udGzUWTh`zw` zHA!9QeM|DbCwb3H>Sgb@l4|u{lhg&?FD2FNZI+lzlf13yqaK4{COpq*&oiID$Sl~v z+&>Xrov{d~EzEN-7$fEj)kJ(cOHBDwjq$!Gh0JyJwkxMBetV=rkE-WvSDo5wpMB#e zlJ^tIsfp6r#gf|wZla|2hSbdK%h}x%$_fK}B)*^`@Rp=o*^KefY>XV3$e~XtGSrtj zxPf^nor%h3Hm=m-KM3~G*a;?O1sC3un0b#KEPxz}kGba3`jAjMKIY28Jee7kQQ4K~F=YjNy)opb zN!I4cAuIFY3rYd+Ej4W^2w>D!rt_S}g0h0IcT4&=ikC0wU<>_YM9{a;jg-WxCi}AN zZp3Z1yArnP-_dtyU&HTjq4PhhJ)sUmbLXW{H09i_-u7){p;CAjoTISj3fV!AV&-

9RvRSYk-;#EumlfCpeu*Obr9cHm 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 UKRRlK^s3~U(f#OB;Y#xV1@ByA7ytkO delta 13951 zcmbVz349bq_WvB2TqI;5fFlrSZlV#Ra*QGnl$+sjQISI(1ze*hhzlqh(mAFvkaWnT zahWQeBpd9I4(XT(>SovZ{SXOc@&mR7bwvfa5)w7pL2*6yqx` zy?XWP)vI?DZGSa=@fTC=bK^~)dG@X!f6{p0s##p4Q*9~HzT--N&z|jE*=+9q#}$KU z_>ilf$-R3IH|$>4@u6Z6^10P>6r;F@aEsRi0#EZS#l*$W<)%DS6GNJOpL?W|iKFpg`$6ih)ks?luMBk~~Nznj1UVgqk1oU$f19Fty zqZojN*Cy*eHJ${_j!&j{Xf()L{9L8K7)cx*)0J>ApctyWEhVjIMrl8kTX-O1M2rQJ zNkm!YwG;15;+;>FR&Od%%-*#`dBpoLQHpn2crGcv>5KIM?j5xm;LUD;tBV% z6GSTVPumH%=z-Vs!N;Id?(0;wm;~nF;{z%lr`)i))p#8270W)`a zqns~z%MDxdeVDbGGd$RmUy=WH4AK4}dxiXNvgH;`2oe^zlCns}z}ucm-%5(iw$$i6 z?J|3Zz*YQCg_u8920$FTH8z^z8Kd$!s%KDjGIeSRszPqYZ+hS?QEdp^-|+JRF5+;$*}>{-YNu%Qi_Xw*cLCYm)dOcO1d7_NyC zno~WLDegC^hcm_ZOlo7Mc)+CkGsX8!YE!0o*yJpqrWnp7YbIqC@BN&52fylF`KtG| zSG}LV>K*)AQ^0IJ>r_^07ZgLK5-zwEA{2Yv?iROZYAKeB{iRx%?1sL71qLEZl`t`? zRJkI)PsM#~Eix!K1(pWeM2W#zO0sy_R34^Sy|XBOO@~eJE~d&A?|j;1ZBwM#lgG|5 z&nmZIf6s)<{Zww)hHcq;CS3ag#9%_gg+D6+apCJ2A`)|l0V%t$d^Rk}$_vgpo;k0- zU4J~Yx+PQEJ2{1qB+2p7mE{J-kaXUYZ06#2=~$e3*OQe`Rz2x>^a3LvtCRoUS#DsW zj({rH{u7PeA6wk7yHCcFKzp9`hgS4#!Q5pxQ~A%Ffb#FF{gFKdiJ_Q<9cn~r!w$`& z^5LZoQf-SG75t3ESJ5Z31nVX5fc5gNC8t(l6Z=xhsfS5z44&vhEBc(=@7F_tHV|9t za>1>>#GVcA09O?E%LbyIQ<8-|j$iLcnsa&sv7S)Ib$((JT@xx_VDQ1HEhVjN-(P0? zc1tl#g5+CDPCY~d!-|FqZr?);LUwx}BFw(IeZ2{0i0|H{MQXiJtR0snt;q@VB~6`j z!w8%v1JoBxiE;k8KzL>S{advN)n(E?P-4n$g^^$za4$?r;Lmy3Mk+Uy)jABjy0;}X zMBlEMS_X-(^39k#$9M1CIZk1&XYQW4|26l6xm)K6^JdR?%?a`-~0Vu3z%9H&Yz@fhW~2&d!Ag!zXIO`XI-h}@S8<@{^T&%^A1c~Zz7Tfri@<~ts|!J2D)4aZL8_I3#0tvhpoEqIh6HEt zmkaH3R@(?6tJZWV8`zz#HaRPGmXK9sYU$b92`gDs62cg^bX&?Gm;sQ{eGZ*IQxJz~ zai<(YuWZ!NYp1rHUBqA#n5>{qXBR2`z!CU7qw86$_*Z7%{z4p&Ij+-V?&`t#S0hCP zyW}kKZ6arj?+`gh{48Cb@rlFc?NBWdmOsZ;ZwmbhTBpnrkx=|o}BGB;>5`E-&K3oG5JNMFB59y^@RHC zo=&0uy2lcfDO<3Z(1PvLmv4Z`2iGt7*}2DqUsFP$f4WcU12%eSpM!KabwZ(O5M%Zi z@ibe}FNnkbJKacEGXG@L(>a1G=%5J9LHUu(6}BjbHUlrb4Cn|ftoR|tdVfT*-XBw} z_ur}P5R1nlpsjx-;jA9Um$GyAu5D=~JLp4LF{581T_D$fYm~d+!WqZ+5wwg+_j zgq_yEtn2ua;IH~6IeLs1{iEDam_b_$za+t)Q1drBeI*O?>h!H&f)H$}W?cw2xM>1} zU~e-CH$e)*%g~Q^*FIULwh?WK+R8}R&R367dwVO8jM352m2irsf85)jPn_wfT*Rf$ z+;4#6nm7~AmevQO?SWIqxi&mmr5L<9WE*0NF^htmT8U-?>*l{D2cAhT*p=~eDEClK z*K9O6GHjtS{~nVKPDu++$vK$&cCpeMKy16M6n4tlsjms1GDF=?@hu|lPrX5Ud&ZzU zuIdnST)BbyN8cg=Q_&1Nz}k#LPC=)HwcEIZFR1&76gD%FAF>!~@DVTY+-V~45j*kNi1b{MmM>|A2DzRaM20|kuPz@=wRw&1DT z$yiZGQfs6-l|~uGsc@~}hhe0*i0tvd#$)I0^sfvIkat2fo^MvCS3OI_b7bK;9JgPQ z_H#jTwIMh-c8qF&x}N-;82WQ2`BOywoWY-hc(K?$)_GjlLicD4wh1|yGuC%f=lWu* zQq=5QO?ccjd&py53c=POU}DU=cS5MxQM)&(rx7$B`+^)hP1G-l-vHnX zaV$hj2_uEzc=398X^uWi{Dq)0?|%PwJht8Mug1gtK;kri@4ym&96lbt-ye?0`}g}J z@YsF7e;6K9AK?8-cz$uee-s`G5BR6zk^F#T(UMNTFoOAoj<=UE$B-c?SA=)aEx%)B z5#l@k8*6W?$p7VGNaUAQY$rxu;|Uj;!CcS{4vGMukkP}i6VY&x`JyAhbBwsZ2f<-F z83fJnpC2avD_ZR7Rm6&T7Opfg*O>81HT)W=+Op0vGzv<&j{f|v9s<>`#CKRbIhPh1Y9&Y zXj%-WidWw%f-iL0DJIavS5s~T@6{7%=y}0yi8yyE7Nt`^WUYJJ1!ITGP&gv2}Fa-OGLN5K_&kEdh{UpwN&JD4NK9x2k1l9Z;5sX$n=b^ zafHBjMhb53oOEd($1^m|Qf6Z32Zo!Z4Z{0XM+zGZEU~i$gG8C|f%6J9HjuS9gIc?rQ;_zlq}11$NDnR+kS z(K`heB{QGL?N15V?4Z#WLTocI#1w{T?)a8qmxC9-SsScRnC*C;&DQJ~`Jg^w$fCcJ zRc2&^m@5^d@TO}ov~}czy1Xj#gV-^;gmq=qCkHHZxBM_j=-3=Dv8Li3EPxQlQ>?U@tj89&QE(o?cJMGN4yWP>iuGpan2;mn_MS+` zO`37qj!8TsKlcs_GFsj}~(=f_#s!pb97;6L_cPAZp7acd5Hfbk-G?J=QX@EmMM2E*y z2gg%~#&aYE5FkfUaWoajF!sP(gtE{6o1F07tT0Z1IZEdQ_@i}B#xO$Ha55HAR}yUp z3__w?XggpK2#urdV_7U@S4Y$KZG_>EVIkQVs*YvPvD6w9lshxKXII$NM4HB94v9?Y zY|03&Zl-CN#m&^F4x?$v2SF~wX&Mqjkjn^~hK$e%s*a>-NC`n6$!u5N#&+c$Y*&tF zo+Eaui|tf_?bI!7r@jo&tmm@!Ty9=nLA6LVgC!N;WU-reJ5cl!>=x?x7g_LSoydq@ zyZsrW8Lo_D$TIZ;J8qkqH`BtrnTyPuIrxJ7A9zCibzPzAAv6$?S1^P+HmtyUA~FSI zX2-x4R`#o^iEV%>ffxODZG*lO!^8{0eJVB+-7Fd@Rrv!rO0eye! z{wvpiBXeP4%3yhrF$@OISW##O@YxzS6MWhsD#YzP6z3v>IrM@CoT-kb(2?J?>={g3 zpmo^Kpakm!O4#F2KMXmJGINi$La4&VxtXRK^pS3%2v&kBs*hB*8e^?sW0mt^&_eHb z1X$jm2vEFN2vpA-#`Mk`#gxw5n`xXk9z%F-$l@Kdp(}N@7|l8{LLBSHvmfR(oVKkN zd$A4-WMv(A_6JkIXcS{Y7=1z*1E`&6D2-xl2&Hcb)f?<2+E*pT@!45Qbu9q1Aij#eKCobRf zLmK_W#f@%L&zf_?B5bj%P*fyGY6b#6Ngh+MfGnG5{u;UV2?qvc@`c))^+Ofnln zHxIo0?;<5o!?@RT_PZ+_tPrAaKRCXu_JO5JqAEtZ3!b(-mcgg0rOj1q3VHBhuz2L;15rc>vJ}_sFA2b;O<{x4GSJ^&FXd z1&vKj){Bk%$7*jXI8{LnYKsB|)VGGktZy(@K;7xHWMLJKWifHhz2bHwlgkP$^Rasy za*AfOg*D{VPGzxh3U+lvHgrWI4Oz7}+fpMddEL!Gqv>E)(ZJTiV$uZRU0|_JGmHIN zSd@8@IQ2wul@pluwy;VdwHbm)wap$|s+F~*hFXeF)V}lUEv9GeY;soGF)F?Z@@apg z;$EWidv)zq-z5HNMbXMM^kHgyiCxZW2V^ZE+W}ce)H>ZOM+^H<$;%f2-o`5M3d7eJiZei>wo=n!owOPw0Jb) z1C6jhyV1>>V>Gj4*<*OCKH-_$*jNxlsz3CU8|p7+qC#5#bta0W`m%IXf8?pZlqqf_ z)gOE6|CuRnC)I!V)c-3}{M1wZiKpJci@iwoNl(3n7eDhzqaU0Sal#WFz4?Skdg{Sp z#%QVF!G-p4=3b*38P1K(bgX+EfnRW9E%|ajt5+cX!K%Y$)31^PXO{Xd9nR~uOzevH z*;#RrR?7Lv%2fGwc}Uju*2evj+GQme?x5l;Hd2&=ML$(u5nfTI3xDJmr7EKYmoiBZ zkTBX$3*Vz#+&;mD+26DJ_57r8lDxh=!lzC5Zk&b^Y=yfXm1K)c3$I5Vd8Vt@>@eOV z?OU3}3og*+cBfXjZL%wMknoBuq#A@j`ew3rpT&hSF_vTRDo|_erpDI1o~`-o?z(;Y zpk)ITgWJ`(f0*{8?1q{Eol!J)Qq;%redj6*bGu-Yip$L5?$O24qYp*=?p9%+T%0Nh zZl04e6 zAKlgOQBq4g-lNi=A4;&ASE&c+(FR&;78@uqrJ>6P6)#ILp?l~uJ0DK093$Fa*Y7gJ z$vhf}Y22Tz{j-c^!b+YfI6%2ip9pEI+41unJrXZlqlf8u#Arq+YoH%$Gk591dfOU3 zbZ=Xu9R}e*?6CvXnxN0Y@zZMd!4Am-G{_aNvxN=@+P@>%{2tYkF^N13jh;{=W)^`- zvPQLm+EU|=9-y^Rc93a{!^{8(vY6pPI@c&-LJ7(!F?PH%N$fpd4JS~}cb^Et=tPwU z)_J$cclMU_>}86x2$Uep1GGL5Df%baOD(O)uVhybew^vTK7ua(XmMdHb?<#!-M&qN z%e~LPx+qLp<=$7It2IXa=y67_caR(`at47U@x_BEtcU+LEk+p(Q?K7W(1szZ?{_MP zAi7RqjVxY-*A^IvXT4=BUb}~^+o#(gki!b*kU$L9uojML<9;h!!z1s}+8+xJ(4hU& zd$Gdk9jo_7><@NJ%U2AI!xAJb4cJe23qs8SD&?&hXTsypD-ui%RQmghp$QE%5LW(C z*~G%A@deT2p-tsd*))4wpX8{cfQVl?oWFXLL&b4qF>J;qi-KpHj)N+gKUsI=ylre~1Q*O?o#*n~>t2 zm=Xl(I84>U)E}jLbcZSU0p2ma5&9bmj)P4ALiQP-{-~lTeAwHfdiL4dSf7>k*iyTD z5Hla9-p@T{(+t~~xl_ldB=Ui{diL<{@&qU7^nH}u`Egml1mP@?^hNVHu;Y1Hj;OB> zQ|ax8hw+VcoS)w0k1n#bMRznJE^V*!ox#-!nrHn&ZK6ldq-w*}uTsS(s{W7u)sKDs z4^@xoU*YWQ2rV<$H&OR1s5U#xj7<2w8?Pc7=puS9L{vv?qGQU8U6|HBedGJ}A8>>1 z#({=m!-B?@l1*DXt8*<#5YY6&#|i;=S$SH zB}f>ZD-nvT&zCSCkP`=%s^?3hqit!YO9Wh)Nc*CM7ZmkOiBQEYf2reqNszsx=S#Hr zk%TCSEv=3%ReP0!OiU?rjF6if$B6VU6)M%ZQs7!kg(~mB$RLK#0l`6c*$CSd`?p+Fw<2u1Uc&ZC5g!pC} zblZQk7J;Eq0>_fDbn4G@6thsH51_N4xPvtRJ;_5g+6PXhpHQK@CP>I5jZ^VkT>jxd zq1eS_H#`3+Cm-{NDgtIl-P2A^SR0(g3`i$Lv4^}=jUN5f6SxJZC@je^E7hILlxMzavWCADftA88&x_Br#0gn}>3j38R zyHF+Z2%egLrR;h`eisHVg_yk;JTlLmoXWbLiPKu~*?1;W`}Xzx`umuJgGGja(~ik{ zFj@FF1I2caViqrX;3R$HQ7-(Oxp$3&7p8e<(vI~jMaUOl8f4EgkWCRiJdVX*P0;bd zQ_9%uH_y6mb4C8U8KnL@m)Li@?mPtD9Vl7QH-k6DTxRU=ESE9t{r{fTlK6renae{Q|@p#^@3njUWCggMbbn%Yq;`r&}1U4>? zyaYrj0UHxuBsx*V>|_A+bQokV;Km^*4beJ6y^9!o8*o>LC8$GkudIJNTgcO*@Ev?r zZkW;quI6JdY60w-T1X_i%03xbk9Um)U1emJb~V73bUU*VA!pWE9YgZ!YqmeI8LuPV*L_O3rP5S=i&a{aMVDHEwCnLF3EKxxyYfyFoxYH><%_WK++x z$3@nP$1a?P4r zp+d zYeKH$ckAr(tIZO=Uu)ihG#_A0492~N2w8IR8YBT78v%oQKE7#lF(Uh<2x5)yXl2P~ zR+e475IMV8q}I%+ys_-SWH~o^Qm{;{-HNbJKLzxV9siu&Z`Fw^iEzgpE&s?$B<#ysIrz*d znYjKzoPY?h%;xq@I^Eq@(cS(VbkTkd-5_2!-7d1yJHKDcOT#id&eW zdYQuDv1=9)l}B)Y?Hio33nhef0Oe)MZiY1kFTM@6 zZ3b-y^9vz*ks=OXwdT`=AYqXB3qBC2@1Es}V*c+;!VXcdL35ZkVAlt?INH0)5J-CnISP~ZDH%j7#;UbovZ==l~_!f(`Cdp3DtAxeUmNrOzw*+<_%l}*k%T0@H73B1)k?3n?4_ozx>w>k~w z3&)h_b;MBaPnV&cU44tJ{lS)s4KL;}h0oS+#_{ZTq8Yl+o<`B7KjW%eTU!frDK~b# zO}C)0=od=|cBI>rzy+WSB#Tv36aor`Gyfrma*ji+2>Fiqxogk}O-!&XvEmAqh-WE}%%d>M@ zfz=CF()87I;lnh24PE#MO@D$ee3YjDo~H|)H2q1s@G+X6N*6v()1RUXSJCvRsXhG} zn!cW(>Kxd=VtU+DFE>D#E9sPHDAHYcT}`K~$7^1vC>}Dk2(56AKXs~uN(1b!&!AFuU@0og zCcNLs-scHhA<=D293#4fWhgh-ZB4qd)EagZexl+qAntmvr%J%fq~u*K-Sq5WEb}#z zsY0}Vjbz6EhGc$Q08QGF(6o{Um0Ha`<`(?!nxNG1Y`k%dbn@9z%)$o)7GEODVlkYBk`bi}$L_+LaTlID zHJhDyttAN^B?&*31V-W2mTE~3_b)FpDHXu7`#MV6EMDAQ>HAYj8@sdOSh$%Th3xu( zw0+$T{7b|!VKcKTLv5*h*f^_yJq~y{H5d4pV(HIVqFc1be+qewGO${hN9G&x{@O z=FP*E(bPyWy43Nv&31tOsQ32n>YN*azC7#O%s?7&H#n;HyXxpt+a_BkV>yYjY-FN& zmx;y%(S%sOK6h{aB|WP8dSeFY|F&hbsioa3C4DP>mo_~WdsZ*T=> z*Uxle0WB_}7`Z_~LS7JV^NxmMc%M>(yJ!rO6}Znj5Et;9i$m$cpj_$μQfzY0sT z3dI*3!8?%}!bFUi$dI_&@3>i+hjwZmPFynS(KD2FNHu?0+3WMcD_{G3Fntw2d;70H zX4(7grcYw|eP5iv^owQef@M!_-0b?}Zr`Dcm(90Kn7w9ww!3zJ(`n-kWA9$}g0$yv zUq&R{zG&H2T7CTNzv2@Y+_%*E%)0fP_*V}!{_VqNL!@=|ohh>)%ijK{10Q_*uPf$= znB;pNd~s*Zd&f`z%QSky#vOY;`*}>t!nAeyv~DZ=*%taq2tM Date: Sun, 3 Jul 2022 15:34:23 +0200 Subject: [PATCH 12/18] AI decreases defensive weapon used --- ai.asm | 28 ++++++++++++++++------------ scorch.xex | Bin 40425 -> 40430 bytes 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/ai.asm b/ai.asm index d3549c7..c922c33 100644 --- a/ai.asm +++ b/ai.asm @@ -9,7 +9,7 @@ ; greeeting to myself 10 years older in 2013-11-09... still no idea ;---------------------------------------------- -MakeLowResDistances .proc +.proc MakeLowResDistances ; create low precision table of positions ; by dividing positions by 4 @@ -30,7 +30,7 @@ loop .endp ;---------------------------------------------- -ArtificialIntelligence .proc ; +.proc ArtificialIntelligence ; ; A - skill of the TankNr ; returns shoot energy and angle in ; ForceTable/L/H and AngleTable @@ -56,7 +56,7 @@ AIRoutines .word Poolshark-1 ;Unknown ;---------------------------------------------- -Moron .proc +.proc Moron ldx TankNr jsr RandomizeAngle sta NewAngle @@ -66,7 +66,7 @@ Moron .proc rts .endp ;---------------------------------------------- -Shooter .proc +.proc Shooter ldx TankNr lda PreviousAngle,x @@ -149,7 +149,7 @@ loop rts .endp ;---------------------------------------------- -Poolshark .proc +.proc Poolshark ; defensives ldx TankNr ; address of weapons table (for future use) @@ -189,6 +189,10 @@ EnoughEnergy sta ActiveDefenceWeapon,x lda DefensiveEnergy,y sta ShieldEnergy,x + ; decrease in inventory + clc + sbc #1 + sta (temp),y NoUseDefensive DefensiveInUse firstShoot @@ -280,7 +284,7 @@ AngleTable ; 16 bytes ;ba w $348b L$3350 .by 16,24,32,40,48,56,64,72 .endp ;---------------------------------------------- -PurchaseAI .proc ; +.proc PurchaseAI ; ; A - skill of the TankNr ; makes purchase for AI opponents ; results of this routine are not visible on the screen @@ -307,12 +311,12 @@ PurchaseAIRoutines .word PoolsharkPurchase-1 ;UnknownPurchase ;---------------------------------------------- -MoronPurchase +.proc MoronPurchase ;Moron buys nothing rts - +.endp ;------- -TryToPurchaseOnePiece .proc +.proc TryToPurchaseOnePiece ; A - weapon number, better it will be in range(1,32) ; TankNr in X tay @@ -360,7 +364,7 @@ SorryNoPurchase ;---------------------------------------------- -ShooterPurchase .proc +.proc ShooterPurchase ; first try to buy defensives mva #2 tempXroller; number of offensive purchases to perform ldx TankNr @@ -380,9 +384,9 @@ ShooterPurchase .proc bne @- rts - .endp +.endp ;---------------------------------------------- -PoolsharkPurchase .proc +.proc PoolsharkPurchase ; first try to buy defensives mva #3 tempXroller; number of offensive purchases to perform ldx TankNr diff --git a/scorch.xex b/scorch.xex index e0eca409da9d648926f9224b416754ca8cdc6114..47955ceb63c0a67fa3b5a38814040153e715767f 100644 GIT binary patch delta 12556 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 VH#st5t+-os&gymO3V$`>e*v(8o+|(V delta 12559 zcmbVy349aP_J5W(T_|l>4N74Ew?0{lA_S040a;>MR76>fER_Hah@hatl#+o$J2mMP z+POnWUnQkeJAEm8)d((N(`Rv9c<-qnd5BV|&(=IQ;P-yg|MyPP7I68!&z~hTcRA;t zd+s^so@H8IH#EI&2&@^VUwYu#VQ2LTt9|NEOx4rMYGM9xOB!0A$T}{Md1i{N=kF!V zg0-@aKFyP51H(*Zrmd{rCDsQs1@G`Q7H@q5;@C>j65K0p42a&nVsMYRu~PKzp)X$? z7Tt^*kFhV_5Zyhkc=_dx=%il`(@C~H_scp!;kDj;Q1OakqwOCPTAq-wsO}T2C->kB zMO(`R*+d(y{;OUDfXi?*K+L^Y<~eA%u%nzKi-H6+0 zaU|xdKhk&bQ^D^KIH|wMJ;4r*ai_&_EXCZd-uy#jzCXVKh+`l@`L@9i;4BJO`M|vn zuC_eG`eYM;mBf!i!`)XxYXU#-++jM~9+2uU_S|1XGD4 zhRY5PAPyb3*&0kEO)*>!7Tm&H2|toV*dmYThf{8hAXq1@Zzv^jsiO9S?aZX9GOJ0H zVPgI%G5CgP$vQ;^D0oH30g=uNh`~xauTorA zX$O3%E?CzwKhdh35`U=^D*#s~+S^Wu+k!(*B^t@x=3p92K&~E?*bEavTthDsxXkw; znBJ4{Hxb@Kl6#QBJ%8huZbcvNXO(r$J%|R<43M4xZ3f&;^l72+bZMQ+>s8*M@rG_YFEayEPvdfOknx949fj1|F%JSfaTvYC=*%!J%hb$oUA*Wt{R|DnUc3$ z@-|A|+jo02cYDis*N2VfFYWST^=nyIA-g$`EOLb<9#5l3H8d9b3qw9N#_tK0tN#K4 zg+4ik7kqLn|B%FwrDtK1m}xK~{h=pv64sK_`5z5sF|ygK68!uX^m{)ea;x{WaR2CG z_k934`=2u14yfYAvnKU2Fu*LBxTA8I&)5sRg`%v3Q7Bzl_8_do{IBg(N~Y{RTx(;i z?85%h6WBsAy<1{MnNHRX%o5X$Ov)=75Mz90S;ex-Wws~3rr3)$?3e6iI?CQSh;QI$ zbaphhdiHugEf&Mgx#r6kF|rl=^?Rt8e{RRD(80hJ`s4%(V&sYxkMBg08mq8w-w7em zs0fi}AzJQ#_yrgwe-R8)@QV0Fv#6SaKZsvk5CchgVhFt$vomYgLTFk=i{lB-qr?(C zPk6$NJLPJtsGgJ4xm+fHt!?C#Gp(ZeV|j2}6Psw?P}vw=5O(ZK@gi0AAE~ZxErb~m zf?tYXoD;+S+R5AIeE(mV!dz*)jbGtkm?ROjjDP>0as3ItYNKjo5`rI67uF4x?qhBzNNHN=$dV z?NWvui}RyhT{^mAqFudy-PO0F>jpsPQieb8hP&#M=WuN;uwYRYICA)@QIY{^~ ziE@bW=SY;8uZVJ#H0k)S3FSwR239;qNE@E&KzddLr>>dncpYn}Kfc9CUjZl6rF!Gv^_?OiLK~oVr0Lb}*5G8^O#lyO;CO+-cHU+QvXgOtMLKblWN7!(wsa;f&a!b1 z!3x2JxY)2ra1II8xnt$`&}ZxSP+A=4v7+z1Co%^JDIvvJ49nnh$so8~=HPAt0&dHW zDWGs!Wxe^_sYwLnr5kNWZ5q>AYOK;s7RT_c<%G-iZw~2UwX;K`0$`Ca@X$yTs)vPf6Ss zWs$_Wl*JOqDN7`7tFlzWA{34ZtvU%n^E(jDC@6aaEVFw9=;=+Em!72R7hAf789vF5 z`D+QiF*~hkSxfLwSxXw`O78EJx8Hsj(ui=-ov9G8%8-5W?usDnw6D)9* zI55H5WZ=@k1#TPUBeZH+rSdFMA6C{-)Pd>BT*=zJ20;46#KekVlF;(N?Stw>wF{8n zO90_nx2#gud6UQvcT!b4nYnDqID6jM&{ZTZs^?MhLbux><5E z=1^T~oEEq^SZN&bmxOjhpNd1b zG=_Wni&ewPl9R`;&SvxIN4?V!RRfBBNcDvBVq)xfx5;SPdiX zNRaiGtU7{D>eiVg+tFEaw+PEk5`_5I+tl+bH0H5YD>Un(4=3cWB#^VJm83BnD{jtJ zFPzNr=Y(3rx3;Vx_@}HO{7RCs5?9hX(!4UlmL~Yur{+rPpMQ%_b}XGqIs7zHGU@!M z!A2bCH77Z!{V1>LjP!9i*fLIVMB54C%;FzR*N+uOKG^rM_5-J!4jU+`o?@^L>Tqy_ zvW%$4Qx0-!8BrW0q=Tom3=c@;jM;YR|BY^y=1^(QmGGAb$Mr`PcE%p+tfm29$5je$ zyG15<5jebBFi%;oKO?+2r9XQC0p8VSD#3*}_-k&Xt|XD#Bmp^3#Wz++2<8|Qu> zV7Bx}{71|*7CI8@73im7K{N*^?}8X=RXd+)7R`vW;O_wf@X-lY3^!>=Sh@&irGHLG z^&kS^ts?wFoE#mK4b}u_)ky z)^Z!wZeQMW#{Qsh^PTKpZEjjk+_&k~MKWmu;V@nbY_qrM&qF=`4nVv^)I z_#^N})FkW&ufb*!EeyR)KxDgPa+t`yKw#A|61Cd!Q8cp+FC}WX;i*u=4OgX9XMz6& zOW}b71yfPT!kzoj6G(vjqREFH!;r;8RHctll|BlU#^LtXl;1&c}-02$Pj0&#)?4OnLwUT+$)&3>#j zuJ+EH6Z^yICk}*TbIsqUKRNIvvib=uq{f0b;hB_Gn4B8nly?Au<$sB&qcJW0p3&N9 zJe+wgM5b{Wz2QBf@nMSHS&k%V--qN81@T-9yeU z)l|hiyN3V)uT&{Kt#luT!=NdER z1z6gM@N`o3b!>hG!Qt^i>K5~F5*#W2n&vUTPRaF9b$pfZRfJav4wl+&jUXnLa3_Sjs2pdmlee2i2EZ_VaU5(UEf4pH7B{JT^rPmr>B z=Skx3ZBf{FNEYzFN|bj=7FMYu$_bK%wG=Y=9WwY`GWZ0kS3d?&HBstFm_gXB&Bs%l zj;A&o&uW56nE4mN2MAw7$pdY1@0;IXS246!1jT)ltr_cSwoD|`^2`An%&!QZ_j#+|$0ZgY` zM!ax{WMLPFh(&poWFhSUzEqJc2lg=8V|pb({+WFhkae!NE2?{%tvL8^XlLj9;p zx~NKWR3*1kmD~pBjTLe3OZjyf!^po?Q*NN8G-IG5(#=W{nUIm zrvG!)ZG+8%xj|xzhJ%Oci9#{}PtSN2ZCb&qCWOW;0lOd_hz#kKYx~b*kdfat;U+19 z5BdyDFgd^k9f$Z~$)kkYb)40P^Eq@K7;T-l(h=&9M?_RxsdNd}I!~}xSquv)^n!?k z#OtCU-t7dU=PjUe=M|{Xc}u9odA-zvmLUi_WxkEkR6|CABp9xNka-1>7CB2FY51u)Cj<* z%*I=K64Xo!DaWG)Y`7L;fjue;uj`{?Db&4~hYG*&3A@mOg9;M&5JPsIw?Q>sBjiXkLrF_g8j$nd8dLFoT&2!IUW z?WTaeCPe7SnA6O-lO9hrekFyc2Lr;H>!QsYoZR8?q! zg=VDfTIgM>%U?mt*28mWRyZ@!}RRYRt*S=jz?H+BV)ABCHa5rpuaSCXL~k4ITa zrnaIJb1&2#zf;{W<0=Ja$SRWGkXb8LMiW`(J`x(|PL#)C3|kvRtp4m~%p8T8&6qiwD5DXYf!m`9ZHyodqfsDHhLeU- z#GRy|cQ~CwYXc)m!x%bdB@OqHKoU@cU&874sa>jz#4`)T-~!S7=G6t-tT?qBI?+HUY|K6kQ{W`rJ(*A8 zt!jZ-SC_v_tXe3R>1v;1QA(>Fk;$T*rkz4d)stfF3YPCqs_bIzYL@Rss-6;S*RlK( zv1*Z6`vS}F6ss1CwI~WK6>gg|*0exOOx(CYaLnniFB0e207+=aNTo9C91eq=M%xjy z$##4(aMg9-qK8PAb3W_tNsd^qHrpmYRo!MdX2tIk3;-+E} z%8X3Xu*xU+&co#U+6P~~c95R!47$&RDw|Z>6$#%=`Z7u?&#R!d;w#5okY|X?71jlb z?$9_(&A|<=F3-Wx5_gQe*mIE0*F+C1o?ArmB}eeV5SoZBacTr9bT%|pO_F=V*lNXM zwI9Oa?q4J!j6+(PCaNM1Qut;(YhT_DU#VlsnuD6=0~^jHiG-7IDx;)uT-|ZA`tu#7 zy7#9`fh+koDPlIXVH_HU@1%$J{xoe=czhm{j1x$gPe9`DsIBQdv^n`{PLf82tZr8MpX-2`G7L+4uD5@9i zxJxumX_`zG&GVxf4@^-F8&ZlvG37 zI4|bQ+4wyhAO56Zrtr!9TiKaXSYNMof=Bm`_YNOlFjKPKy{u)Hq|A~+37YRSOJasP z(0NMhg!ILOl1LXOAr*;cD8Ze8hP5f-+A(Vr9W&Dri=$%%(d8`3n<khuUAc?BE}flt;BzciMVXQs!ta6K&0rN{zLTNS>Xj z1lmjWWw>LKXJ3aj+>Z2I6sZRIh;)0Yz8%usrE9nDJ$l|`>2^--@;qi(M5@gNcqd-&U;X3)t@iq3jH2_na^LyJ1`TY6&AmTIzuo`@Py<# zPN?yq;%MN6+~ck44_3d>)R|xI3qB_BD}2F_z^|l*^emsU!iNOPN*`BPmF1%j6vOZJ zDOtY6L`&8(ABXaFmcz$#va;OARWeV%*plVbh%0Ky@~Q72R?jc?RTcY`ofOS3psDd7 zA2paFDFL`5`T$D+i`y9${ik2Fpx+V0m-rCTh`yF$pY5yVv|8l#DPA8>e9Ygn@M6If zuTTD8ey2}nd3Ki%PH73HSZteiW_kOxDB!UyNOR~eH4aOmSV=Ga)jnjYWFuFtEufJA ze*!qO`9DT^vReJnE_dh3wac8vM+|zd{P(DAj!^l>7~6^LAm_iOHp&6*a|a z<1V6A$DWN>f7qK>`#JR*aI|n5o{w%8PQ%Uo^Z3Yze^G?z@scPz|6uR!>)?gTTXWW_ zJwC)kUSEVf+Z}X^7?EqP-5JiS-ejHtLjyCKIYCa~pPzt=jJk-? z9~1t)s9Vh2;E52wIJFb*qEtBSVGG*ni+jyPqz;D%$yRX7*6w0q#a4U{K{KyWR#w!e z=Ww}d0@{&Rc})9kr3a`}dcrCx7C~G*aui?|wNnq_qevcW?|@0@aQWh*E}y+>mzY~? z6_S<=i&;bXXN8GNrt7l=_mb}Yv*5CCMSZT)zwP`M?p6Qh6C5o;o^ZJ>N)}CrW(g;k zWSH<8gV&pvt_0k+rD^!BSvml}r5LqW5oHbV1zL--qW?Vl(bCqI=B{>c(9rI?4(-cheh2T%zrq^K&N%v`YQxi)JNsON0;eJ4 ztY9Tk%e@!EcFH8&y8O*fjnIVM+%DQLG%rurHwt}L4DLUi%Ek!fMl1+DwVK5UE#sjz z@8G=32*J7H0d^#k`u^+&D{&tQAHvN43y3)OaC@*+2nmrIZ|J?iko*uW9eBK44)fgx zmC?vUp$x+wE~myr$2|F3?MzEFM84K)^r8^Br!iYdUm14|4RUy&5~7*SY0qnTqNxcj zM{0#YgyI92Ee<>6E{PsZCkcHxASxxQhD*>#e&WfbMM-S0`AllaF;)) zROi{LBunA`R;82FoFI*)c#@>%L>c&u*P1HP3eSd6Y+KEkIjKuw?b?hdT#fPf*dmj5J3Fr)NS1J1L3NyjoV41x#>M}Wq;|>ixNHkH zXpJ$w&;XS3PvSjI{5-y9^B3T2wz8P2dh%^O3HQOepQ=RdiKRdND^ZiN`lp{E?GQXo zMEz-@lk-oY!ta{QEuS{6BD%1)Y;@818ke@By~d?2hT1FV@`EhDD=m)yT~N&KlCz*o z4rR<1xz2h%hmWTfRNIIbqKIg~dne~|8)6!{Q}M!4XK!{8x81+Pv6I_T8dtM@YODA& zY@&FT`>pAMru{On3YV2&=Rd`88BXPEnj0?p1 z9m%*zoMDpDM4bO-NyazC`8~<_7jgbTGQK6wA4x_tasEWC&Yy|%Dsf&S&Q{{QOq@E& zd4)LjlJkFv(;zwjL!3s*`M<;&BRPK|&RDqkyQz|<$gO2@-k*v0Dg@zDnGU>cBx8Oi z2;=eELdIOhYi=7S<{BEgi*P$WvnzgIm{#HaK4q^D1uX;KU!m{Qxb0x*4$2NiV^$HE zr7JVmY#;cF&m8k7{7Fc`g7}c}Dv`rp$|Y}$@Tb+ie>I?4X+kQY`Q7*gxesO^RY1Q>wQhJs9^_Pz9w4Ew$0l}EiVd? zLcuc@HkR1#-$*S(UyI{a%$Jw^dKDB_zj+Wpy{F)7NADUR3J%`&KDaSnmyZVF9-3(@ zEM;9xcE}oUZmLWyj|p9~w@^(4~_0z@FLm zlHAG(<$2Ugc{eZoKrOPMV}nD;r$a~})ml4*{4#_fn7RueA{R}YHVvO=IpX;upRLy> zD`s8M29w(dr^aC{*L)be4C(OcT|(fesv@6d!=g=mEKB5pbi;be);B0y4Pa|@!yS9L zc5nM%d%OOl&(3{gwlH_5TgOjHtgNpOW^bAjWH(K*7i{`sQ!?A}*IrROjtf6nd(4GM zl67%~$eeHjvL;-Szvx7vD%|;O=bn4<(dqfZXc8sD%-U9$F#Xv+)7+a*7OO3C3|EYR z8}#cze@fsdCem+5>=GRqih;5119E&@KLzMZ`-KC~&NpS2H{PCEexS$N*SoP}9a%5t zzP$hMU;U_yOJ;^XIP;lJ{E=fHes{IgEu*GAvMle<`%ivlNWJ&*wVr)%eEL%gYloa&Hnc@&Co#uENW?{q%(gYH|n1#;g=y7Cp1N KAGpL{O8I{p%$+#^ From 2a5595f3c94167a6c9e8ac906289c509b6740838 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sun, 3 Jul 2022 16:43:43 +0200 Subject: [PATCH 13/18] New AI tank - Toosser and angle bugfixex --- ai.asm | 51 ++++++++++++++++++++++++++++++++++++++++++++------- scorch.asm | 8 +------- scorch.xex | Bin 40430 -> 40479 bytes 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/ai.asm b/ai.asm index c922c33..1c0cdba 100644 --- a/ai.asm +++ b/ai.asm @@ -49,7 +49,7 @@ AIRoutines .word Moron-1 .word Shooter-1 ;Shooter .word Poolshark-1 ;Poolshark - .word Poolshark-1 ;Toosser + .word Toosser-1 ;Toosser .word Poolshark-1 ;Chooser .word Poolshark-1 ;Spoiler .word Poolshark-1 ;Cyborg @@ -77,10 +77,9 @@ AIRoutines lda PreviousAngle,x clc adc #5 - bmi @+ - cmp #90 + cmp #180 bcc @+ - lda #(-90) + lda #0 @ sta NewAngle @@ -174,6 +173,10 @@ loop NoBatteries EnoughEnergy ; use best defensive :) + ; but not allways + randomize 1 3 + cmp #1 + bne NoUseDefensive ; first check check if any is in use lda ActiveDefenceWeapon,x bne DefensiveInUse @@ -280,9 +283,43 @@ loop ;---------------------------------------------- AngleTable ; 16 bytes ;ba w $348b L$3350 - .by 178,186,194,202,210,218,226,234 - .by 16,24,32,40,48,56,64,72 - .endp + .by 106,114,122,130,138,146,154,162 + .by 18,26,34,43,50,58,66,74 +.endp +;---------------------------------------------- +.proc Toosser + ldx TankNr + ; address of weapons table + lda TanksWeaponsTableL,x + sta temp + lda TanksWeaponsTableH,x + sta temp+1 + ; use best defensive :) + ; allways + ; first check check if any is in use + lda ActiveDefenceWeapon,x + bne DefensiveInUse + ldy #64 ;the last defensive weapon +@ + dey + cpy #ind_Battery________ ;first defensive weapon (White Flag nad Battery - never use) + beq NoUseDefensive + lda (temp),y + beq @- + tya + ; activate defensive weapon + sta ActiveDefenceWeapon,x + lda DefensiveEnergy,y + sta ShieldEnergy,x + ; decrease in inventory + clc + sbc #1 + sta (temp),y +DefensiveInUse +NoUseDefensive + ; Toosser is like Poolshark but allways uses defensives + jmp Poolshark +.endp ;---------------------------------------------- .proc PurchaseAI ; ; A - skill of the TankNr diff --git a/scorch.asm b/scorch.asm index c8cf91b..8a2807f 100644 --- a/scorch.asm +++ b/scorch.asm @@ -1142,14 +1142,8 @@ LimitForce .proc MoveBarrelToNewPosition jsr DrawTankNr ldx TankNr - lda AngleTable,x - clc - adc #90 ;shift angle to the positive values - sta temp lda NewAngle - clc - adc #90 - cmp temp + cmp AngleTable,x beq BarrelPositionIsFine bcc rotateLeft ; older is bigger rotateRight;older is lower diff --git a/scorch.xex b/scorch.xex index 47955ceb63c0a67fa3b5a38814040153e715767f..0f017cc42fe1f356952ff10fa9f5d3c7ed0b09da 100644 GIT binary patch delta 13928 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ⓈU}R72E^^^F;orv zn3Q}YsC4_9Rv)@gF)cl!*bBWuSq|8Azl zvx`=F*+0cAuOvD4Mt5R)eSNTO^W5P6&2!yvZT@KU%Ud?R^70n*4|a>s=ZF)DdY@R! z(#E5Hm18&0ZMb>P{c{f6?#ldwEB%At@rQ@w)sY$#I#`Hn%D{03EB(zexH1xa$KRuw z-6(M_+QN206!)cqbq;Kkm36+a#X4E%Erehr$7%i6v&KPq^>NPhAyxL`(dbQd;GElQ9A+_3XD#Hfgrci1 zqIxtG(Y!vOcv{Zk(cxZzytJ$ROv}LGwrs{#9H}&qh0%Y`3*TFV`ofgpN^)u?sT%C8 zSxNr0lHicwcKoM`?epf%!!6L%c(LB^8up44P*;r3?(Ll^ap=pjzr`~)EV%ERP<64Q z-tXA7`V}UGkxU3yCh6ZZNk>7_5g~NUtMhzUuYbvtTSNjk4Y>LCyC%$-cisGdZekO# zb#2~aEdN`t%ncrTWv=_ruk_+)cKYKkt9ecc&#AeX4edFUEfnFPQILWsC2m8XKA*_S z_VY!Nvqp0rYQ{?QHVmCt`%3Ljy%l@?P8>HGvc7`FC^&gHjb?blIxXCjg`t_Er`wza?axw0f zG1Ko~n~}TckN?y3zx|y{*1T4J^z_#~`lmedOwr!oooMdXvmZBd^qBEemw9qt+pZk0 z(;Kf?;)YFM^rXjo;CJu7cl1~|s_%q{(=&_q{O(VU-Nrqzh6cZ|biZTt{72U1nm>8Q zk92=dpT7BG+fPCJ&ugzqTXHyQcTSfs-XilylB5GwId{fH2jnBN_x|1oE{T_V{2$SH B@B9D& delta 13979 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 IcqRV-0OGi19RL6T From 3fb83583c3a029ec631bd3ba09a3310af833bbc3 Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 3 Jul 2022 13:22:44 -0400 Subject: [PATCH 14/18] AI fix and optimization --- ai.asm | 73 ++++++++++++++++++++------------------------------- grafproc.asm | 8 +++--- scorch.asm | 14 +++------- scorch.xex | Bin 40479 -> 40432 bytes 4 files changed, 36 insertions(+), 59 deletions(-) diff --git a/ai.asm b/ai.asm index 1c0cdba..883e3d4 100644 --- a/ai.asm +++ b/ai.asm @@ -42,6 +42,13 @@ loop pha lda AIRoutines,x pha + + ldx TankNr ; common values used in AI routines + ; address of weapons table (for future use) + lda TanksWeaponsTableL,x + sta temp + lda TanksWeaponsTableH,x + sta temp+1 rts .endp ;---------------- @@ -57,7 +64,6 @@ AIRoutines ;---------------------------------------------- .proc Moron - ldx TankNr jsr RandomizeAngle sta NewAngle mwa #80 RandBoundaryLow @@ -68,7 +74,6 @@ AIRoutines ;---------------------------------------------- .proc Shooter - ldx TankNr lda PreviousAngle,x ora PreviousEnergyL,x ora PreviousEnergyH,x @@ -94,36 +99,30 @@ AIRoutines firstShoot ; compare the x position with the middle of the screen + lda xTanksTableH,x + cmp #>(screenwidth/2) + bne @+ lda xTanksTableL,x - sta temp - lda xTanksTableH,x - sta temp+1 - cpw temp #(screenwidth/2) - bcs tankIsOnTheRight - - lda RANDOM - and #$1F - clc - adc #5 + cmp #<(screenwidth/2) +@ bcc tankIsOnTheRight + ; enemy tank is on the left + randomize 95 125 sta NewAngle - jmp forceNow + bne forceNow + tankIsOnTheRight - lda RANDOM - and #$1F - clc - adc #(-85) - ;lda #-45 - sta NewAngle + randomize 55 85 + sta NewAngle forceNow mwa #100 RandBoundaryLow mwa #800 RandBoundaryHigh - ldx TankNr ;this is possibly not necessary + ;ldx TankNr ;this is possibly not necessary jsr RandomizeForce endo - ldx TankNr ;this is possibly not necessary + ;ldx TankNr ;this is possibly not necessary jsr RandomizeForce.LimitForce lda NewAngle sta PreviousAngle,x @@ -134,14 +133,10 @@ endo ; choose the best weapon - lda TanksWeaponsTableL,x - sta temp - lda TanksWeaponsTableH,x - sta temp+1 ldy #32 ;the last weapon loop dey - lda (temp),y + lda (temp),y ; this is set up before calling the routine, has address of TanksWeaponsTable beq loop tya sta ActiveWeapon,x @@ -150,19 +145,13 @@ loop ;---------------------------------------------- .proc Poolshark ; defensives - ldx TankNr - ; address of weapons table (for future use) - lda TanksWeaponsTableL,x - sta temp - lda TanksWeaponsTableH,x - sta temp+1 ; if low energy ten use battery lda Energy,x cmp #30 bcs EnoughEnergy ; lower than 30 units - check battery ldy #ind_Battery________ - lda (temp),y + lda (temp),y ; has address of TanksWeaponsTable beq NoBatteries ; we have batteries - use one clc @@ -180,12 +169,12 @@ EnoughEnergy ; first check check if any is in use lda ActiveDefenceWeapon,x bne DefensiveInUse - ldy #64 ;the last defensive weapon + ldy #ind_Nuclear_Winter_+1 ;the last defensive weapon @ dey cpy #ind_Battery________ ;first defensive weapon (White Flag nad Battery - never use) beq NoUseDefensive - lda (temp),y + lda (temp),y ; has address of TanksWeaponsTable beq @- tya ; activate defensive weapon @@ -195,7 +184,7 @@ EnoughEnergy ; decrease in inventory clc sbc #1 - sta (temp),y + sta (temp),y ; has address of TanksWeaponsTable NoUseDefensive DefensiveInUse firstShoot @@ -203,7 +192,7 @@ firstShoot jsr MakeLowResDistances mva #$ff temp2 ; min possible distance - ldx TankNr + ;ldx TankNr ldy NumberOfPlayers dey @@ -264,7 +253,7 @@ forceNow jsr RandomizeForce endo - ldx TankNr ;this is possibly not necessary + ;ldx TankNr ;this is possibly not necessary ; choose the best weapon @@ -288,12 +277,6 @@ AngleTable ; 16 bytes ;ba w $348b L$3350 .endp ;---------------------------------------------- .proc Toosser - ldx TankNr - ; address of weapons table - lda TanksWeaponsTableL,x - sta temp - lda TanksWeaponsTableH,x - sta temp+1 ; use best defensive :) ; allways ; first check check if any is in use @@ -304,7 +287,7 @@ AngleTable ; 16 bytes ;ba w $348b L$3350 dey cpy #ind_Battery________ ;first defensive weapon (White Flag nad Battery - never use) beq NoUseDefensive - lda (temp),y + lda (temp),y ; has address of TanksWeaponsTable beq @- tya ; activate defensive weapon diff --git a/grafproc.asm b/grafproc.asm index 1a55c8b..e974b02 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -609,13 +609,13 @@ DrawNextTank ldx tankNr ; let's check the energy lda eXistenZ,x - bne SkipRemovigPM ; if energy=0 then no tank + bne SkipHidingPM ; if energy=0 then no tank ; hide P/M lda #0 sta hposp0,x jmp DoNotDrawTankNr -SkipRemovigPM +SkipHidingPM lda AngleTable,x @@ -731,11 +731,11 @@ tankflash_loop sne:mva #1 fs ; finish it mva #1 Erase ldx TankNr - jsr DrawTankNr.SkipRemovigPM ; it's necessary becouse DrawTankNr skips tanks with no energy ! + jsr DrawTankNr.SkipHidingPM ; it's necessary becouse DrawTankNr skips tanks with no energy ! PAUSE 2 mva #0 Erase ldx TankNr - jsr DrawTankNr.SkipRemovigPM + jsr DrawTankNr.SkipHidingPM PAUSE 2 dec fs jne tankflash_loop diff --git a/scorch.asm b/scorch.asm index 8a2807f..3715f18 100644 --- a/scorch.asm +++ b/scorch.asm @@ -380,6 +380,7 @@ DoNotFinishTheRound mva #0 noDeathCounter mva #sfx_seppuku sfx_effect + jsr DisplaySeppuku jmp Seppuku @@ -751,6 +752,9 @@ NotNegativeShieldEnergy sta ydraw+1 ; get position of the tank ldx TankNr + lda #0 ; turn off defense weapons when hara-kiring + sta ActiveDefenceWeapon,x + sta ShieldEnergy,x lda xtankstableL,x sta xdraw lda xtankstableH,x @@ -1148,20 +1152,10 @@ LimitForce bcc rotateLeft ; older is bigger rotateRight;older is lower inc angleTable,x - bne MoveBarrelToNewPosition - - mva #$30 CharCode ; if angle goes through 0 we clear the barrel - jsr DrawTankNr.drawtankNrX - jmp MoveBarrelToNewPosition rotateLeft dec angleTable,x - bpl MoveBarrelToNewPosition - mva #$2e CharCode - jsr DrawTankNr.drawtankNrX - jmp MoveBarrelToNewPosition - BarrelPositionIsFine rts diff --git a/scorch.xex b/scorch.xex index 0f017cc42fe1f356952ff10fa9f5d3c7ed0b09da..d23d26735133e27cf864fdbb6925bbfe846b2f72 100644 GIT binary patch delta 14059 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 delta 14080 zcmbVz31AdO*8fZeYKi_}5XsccTKU)2#HZHEEw(?_D{E`@pSL`Sf#~|0(wD;Iz5igHNg!(Q=Gy zn9aRAlN);v0~}K=LNWJLx@r}lA>87%z`)Z!M~&hJWpLAerN&$3YdbMUzu=GIL5LpF7g(N= z)g|5wvNwi!dl9wGn@m)j_jaN_?oA@9)jNuCU(EH6C(ZU|jD?%DhO1n|eexoA-+J!0 zIq0e}N<0|FJ@$ezV4+0qjZb%lrC@e0VqHb1M1gEL7eHJlilruXLf&d0%y zdyoC@49Q%P8%(N-KffSzi|*f33^_jYaevR!7Ljl|K0H(`r`+g_+H|7FRu%8?PKIKx zm}9M+hHYH)3rexz^;Z07PMO8N1+L27elK9=fpj}TEz#^d1H8Zhs07rF?aLxiX;>>SY+gNiq8>T zOtPYd+~7kb%Od1CgHMq5XdxdRZWMEf_#83SqD~i|W!lIl=qP!3s9)fGbwf-MHz{I% zQL{>-N$?xlksVE7ZNW2gmc`4Tk)eT>Xi^r_5l!q-FvkmWQF>LeBiJf4#8x?Yf+3!e zpRRF(L4_rFsRuvNsYR22Uy`dqcS&}4&5*DWv%HuXA`5wt7t&fGh%0IqWNTSS0vE*j z1lX=QL|j0`OwxBg8SA>nZ#EQbc!X26bj&9PO^1t!F3@&>ZUK8{f?g_`cw@#3ym%l= zdyyA^8>PL(i@%G~*74%|QQFJAcqq#4pQc()r0P*vVmqn#&(u3?r}xpF-km$Wf8N;~ zw%PycR+s3fR72O_I2r+bZ=#}oT;b!^us zMDHGk-x7pdx`DKvIn2xYS+@2zm19{;!5heN2MLcT8!mW)4u+z5ybi*AlqYyZ#<=i( zL~fPZPL=B)DU#moh6~dAeH6MJ9vC_ww!=pyPlK0A@>@%>UkuV-ic0Pm>KBf!ZWvgk z$7uyo`iE+7zoWECHYgK#;JYJO`gy>^-x%!luiPnqnXMbYr6S<6RQ9YwSdXzfu@okg z#G2sTjP&4~jC6Nl2F<9;_-)3qjFNeU^XARpoMHa?c>c-xo%1^uSTZlpk8@q`y4{uG zdTK%50=i)Tg7^6aA1)Y>`IiL@bxfvPje)^*mQ%HtSW3A>x2q$wyQzOqQ*;Dt@DH1Y z_cV3!iV$)gnM(2Zw$5gr?J7?T#hK?x&UZwUsCbUR{+nc{)Q#R3q&V+;N~^QU}h4m|gB@Z1=;MQkVH8KT`l#lI2FLB+3# zHkd*O+7K#sntFjIFfU9QeGDa-Gu4rKWDwOWz+ot5Lr^2r04Ia3wj7Sbwkkq)kJY7NXZpnAWEM2B2n_i zmx!`aTu16&CQ7b%J(|4*X!e$%*}D}EvYm4+z*yN{$A+rCLL6C9iHW9cpejnX>I0p@ z_1OME9xT8dgM;fcmm|op#};WeVzVkRw!qD)TymUaLkU3-!L8Uk(Mhm`gqq4?)I(@< z-LN1zPVhLqo1Qv%})He#7R7<;s7d8X?kc|1>N-^KtDCYZhiuvA7l>%`GRRmF{$|jLe zWwS^rHc)hOr?6Mqo6Po9Z7UUWwQW?$(_W`SzP6nT8?_x&D9~go2pXZnCXG^b!sxj7 zo@)f5{e75bgp~gtEmyt{@+>0U>L=J5jHy`4O_=QlehpzexOH`B4Z&ZnhP0H@vcLN+ zrITq}X$>(Uk>+m<{%S79)fGa&0wp-IY=#mXh{gmc!Py=q@X&&=8TRqsb5GZ3D$y5f z)r@suzE(<|9n~PRCMG6Uv)K3U@R-oV@O7a{;l80Mh=ZNsSP18OV;o3Ws}p7; z#?t$v_h$%LZhrph8r9;RNs4f;xOJhq$kjxq!0z!pvbr^2k80fr`4zl0Zfwl&9-fZS zhRr+_a>eM)G3w?R-Q0Kgs(pdOmftX8yONjX6?Rlu>bHx}6Y00}9a812A$ME_5b_H) zhUd3DPr^}Uvz$O{w+i_sT^iTNafe>g)=Gb$bt^yOURcE&%nQ^qFQ73mPzU1@a)mtg zkQvA_>^HFBv|21UO~ZoI>agIL6J*;H^Y|4O6#}S`%b{#vmJ13O2;2zf_iA#M*13lCDZLoquVx7Tln)Vd{rxQvB#22<(X*^Wma z4Rfu)X$4OcqrbM6*yCVxYl$9XaAge%s@0KwiJ*}MypyS`?&sa?v_&L z4CZ$me#sh6DDe|mXsw^L=Ays6LjB9ed?g>z$>`4A1b?;NMD&wPKXF1U9ez_W?Fjyl zlu~{7wKU~M$2*yhy+qr|@V!tZX7$PmP3fA^D;teAAs++AMBddkk(j!(b5gBqr7?4d z|Dt=|nXbc8OjOTyC=Uy%W}UW+=(Zz1a%30Ld?aK+u(%5knCk3BZg`IGM}|gBXvT-; zc@g2EVPV0!as1bdL+5e8{CY79(B8Y^82Pz7)JIQ7pFO)Z=A%*OUVRdCP~~H+a1LI) z7IB_y;NnmzxGcCY^co)GeW6-BV(&-9*EhU4)DIu-`$DmJG~O4A!=vWD&~xA#EKm=N{y0>3Q!Wh3L!-Bc-ym2%_@ z>cX1>ok8Api;dF(Gkh@C^6-VbA(Ow~9AAa^~7+orV+1L3kZ(3F;&G}(}RFM1M=b8TSUJTY_2>zW9NX6j2ArIY3cYpj%Q?g zOhpviCeYno`cS-IwR5n}AQIa$&`ClRKCn%JkM{}UN`J5-uHo_ggKvgY555(SDYSo+ z`b5f`WaY!?RF8q4!uJ{p2dj6nsWtCI1Y6*nM4tq-)H`PxP>5rO0p&`$5$bqC)58uY zc(g|d+bxW6IwQ1ozD2OgAxp@n4`TzC4$L3SW2`pU%?}vEg(j|7b1ST@3tP2n72Yg( z3$}Xm1BSM6d^Bi#8~Qa&(HI)2Y(3gT7m>X&O(-<><#@zx-KylKzKlJ@w5VRXwTUnJ zoM1-9ZwaPUJWDXoVwhl}#jly%huD7kS0a8v#FGTG&2}pxU)b39J2Lh>sXIqXC3@nK zvOW;-5^)x_KV0Kl@LwRohx%~GIZ_jRI9L1^(O|I`iFTfd|6rE-PvVcy`4=f0=Fs?y zBpdwyO0<8FZ1nO4(f&!Y(bq{b_97Yk4>IgrhTZ9R@z020ESwHlC*l zkbrrbh^<8Yl8Fb|;?#Z4AD4vh5e1Tf^0Xld=vxg*zGRHPCrKMNq%))gI5_@vkPhJB z)YC~i+6dN?Q)?w1^9=eg+4<{BqP4MS8?pB`_0F8`sYe`IJ4VbC9HXFgHe?*5z9QKe z#aG0k{gq@R*8{zLL9&tTfnH9MY-D>*673YpM!E<32(vZ$HCvP4vNd@YYm%+g0=7;C zwoW&(b-Eeh*p<_I)pYYisUELQrZA!X?4YLK0TN^X>L8&|Sq#4H6ByI)FMbV#HUuoL z5f5p57+7I)R53aBvY6%2OUi!|@9@{!#%n((;kd$*&xz}$M=+l_hC(o#E9ntC`&HA- z7QmG7%OR)!ys-|W#XS+$UfQ$x!SJ-2#0coq$tEb#et@*(P%2Obt=R) z;1LJUS{Rbifmgd`yPSm zd4JFB&KqJz=RLwK&U=)((vNX0JmLT-YpK}Gfau{542hL_1DGG0gjk$4T9B zqTl_0TZ}OG;KwA)+gz^49l`x%Lx|}i_zu}{gsCF<9@%h|Y2!ayi4f*5L_EQq03zjF zyruTWGBXa@)A0pv*dJoRJv6;61_*y48gK^aaeT^OfNQ@K5Bpe{ck1I;9|;&3g$U+z zL5;Kcdn}?2z2uS}?fFJmU0ZVGxCh0sH8arxB(|-CjP2?b7NBBZAK6XIU$LKqE$G5F z@W$V(}_%ed_EAk)i=DD$z359XK6 zYL7mcADGGxzSFU~59YyU7L$Xyf!iE>R(!P)Y@jjf_qk<5+DaFZW+-tFJMSp$q*ukx zlzWLAnPOS5af8y?9?gi_EhbUm^bSXs{VFy`18@IusTpZH9FMX~skj>KvtOekzlLaQ z3@g@FlhCxXM0FZq7}^@*RB}6jxe}Niz+6SNRYq)%7WR=%T2>(|u02ayR+6&b8d{%a zD6B^F9BEm@U^%2^H8SR44Sk^>D2yGO5NE&c7SoYES8j5L6Ob2(fvtJ=xvK#@%nSR1 zAMwKe`h9L~xE_iP_pSRty5;_n{A2#P>VXnVRH-#e?29s}*erAEFE~^=janQIKi73O z%UZLHgHJ1}Qq8jKTX(3h-secOZ2zNy&l+O&{&mgr=aL+hWczO}Nd{J&J^+pQKqLIn zUVs^HZ{6m4^cQ%mmE`oMrjo;Q?N-@uY1q!AB-*f(M^)6Amd@I3a>H(3oJVS3mm8{h zaUrSQE;qcvi$t#7AvXkg@dLS5mK*l-B9;0-Ff~?^6B9Q`()|yNv^GmGJ&@^a#7TzL z8)LcZS6yqL#Np2zR%@|R%xV}&bg)`*Mdnpn;Ox?+2S)NnwGwM%BP+`m&}yX^37MMU z5?Rij(bjYzUO%gvM;;V-#X^e8uegP(+k|cE4B>TdQI%nsctk3-g=o5XpezgSLntHgg8E;@SzQZ@ z{d~$s3Kwn>^J#eSnT=E*s1;B>LCd9RagA82<*}Ed6RCk-wYgMIr=7U~*XB`qCGE^J zI=@9IK;l+tL!B*NJqUG87K9Vi!#I2|(ei1FKm)NhQJ`9`r2p65);# zIo8?rhT&IOK1rwH-c1Km_3tWJK5X~$l6=Y?Umh`Io6C}69Mmh98K-zWdh1qLF={*g z!V`_N{F!CO$^OhT{SX+3`y9!q_9SC$u759OA8Z%Rr>0bVfJp@aL%qJ!Y|f*4Dh5}G zt^tWOV#IM6JZsbh>d5NXl1~E(POxe3XR-iW46uM^SVasdNgX5hNmK6<`=)7)%x>RX z4rX0)s0SHvvdDKqcV7u*Hnk9(pyPbnkdDOta`v*4RuxyXO9&Uw6<~qEOfT*)z#8ju z3Xb}H>&6S7eW9gg(drV=6KE1&Jeb0*gvRN;)nV8Rj9Uo$ z2pswc9-m2Y_)cPt>^OrIN%`a65on-e+!d7>egZa{pEz|Hp;%4NF3#pn6|1cf?p(cyFIm^$|GHKIM>NTAUiseh> zaDtpR-Ec79sJVD8*+jejv470*(M7kKkwH>0qo{5Z)uWQ9fk&H~i{B^W!^cWDQP(X` z8*Vl%H9tCp-$cXKW&@1g#!vT7m~NtUZl>C18cHxC#LX1)fbNLV2y>5z#AXwakiy1i zD4{F?AI|oKD`C!d2D3AWBdZ63Gx%oe-6>Z{OCB3=+Y;Fvkvk|9cq1QYjT;hfe|+#A z9y|T}Je*F#na$Gf$42snbnF&-YbdcSraiHY# zSVXmA<7*)MDyCYA@fFLyN@#_xp@@36p?2-Aurg)$Exd|pxSQ!05vB%V5xuFx+D&Qi zf8BtA*AKeEF?fij0oegh!$U+UuiN7bu9BX9e57@iRQ&i*e%02*MAU}VX{SAcN41_V z7s?fnxXY)Mi#}iiTFv|@0!;W(go0|5Ak}+NBaafK!ULD}Z=H(N-bbwP1w~2R?F(L( zL_fRKQR&lm`;ct%`-Jk^N*{|LIq_4UR_RMjbY$=H3Ajp;?ep=1s#W-e8t$=IIxBsK za9dj{efs-IVU)D^YFm8T2aL^Ou&MVTuQ!%4IRbL+4?fW9phbj&+a-^^;y`;=w0Oja zgWex}oh?4sCo5QO@u*Kb>JxPzcQ_j_4xk+MsdtDU_zL>+}!Z>Oi5&2xxd*sIdxFKPKg< z|Ab?=kUir3r;_}MZ>++$weJ}>SNNPch*{81gyR+Z(#mKHk;6a3?yDYvE07IWpuWxI zlf`R}IDE6(i(La7_!DDLd8>F-MtA0{MEX5x&Qla5K~=<rN?~g z5>!%TVMpCDAGai5R9(M4d0HDjn@+^*-|i`H=ug-0sH>X(cSf0YVd$5yBx zU%UCcYc^LEzdM;U>=(rAW*Cu$879HV%$N>Q7z?zqzPsb2NO*Kk+Vy0Tb*A+0lN^7} zSmFYlS-*OZ{L~D1A6%JYib(C|1D)J4L%ef_m^MQk&-%h1n1r)T*un7P0Yt5{t5Y?> z#6hkDA>Sy%)ai;q7cr5><9y5#+J>%g-9oDymgftFdIB2ES9MA^x;7v3Yc6;&EmIPf z+&vLQPj+_&^JH8e>~4Vj=!tvdB5|*~_OM*okRx4Kk``S}L{&;%I)6|l4mbIyHwiV$ z#?zaHH(cXaVvv=RXX#LYkW*&x+|va@wUT#Q5LDN4>32&tflC5aG^mv77&WFQ<_!d~VQIj!g-^t-awv7n0z#eg%VqV#FM*dFtq)LkLG5sE z%5FhY{K8h(xK(J9(6kjz9yFCROsj5pDAF>NjFqj+b_yF^_pfp)^t6QUou{`VDOf4} zcG&=a9a?30@?3?$ljo%zlI@9|)hsj3O11Z9BBj>{nKv7Xax8f;N!gfsmsvX2Z^voS zaP!8AAL`5h&{H;~=k#gh0B`^;*=r`?T%WB1m)2dV>-iMlK?T*vT~iM3fj2p^QjwVi zLY~6pg|w__cdf$cYeE^yv%+53WrbEFl`S7?Es<)MJNQ+r8}~Yu%Jz7nQmJyDu4s>T zEUOf%ToYGwC9AKMEpR)~y6iP1?`n~$5?E<<*awv^Eq=Vd>6Z95m$W}*V?|p)~$D7>(<*G+HAVv!F*uKi&-*r4%OyR`61E? zlDU*+1P+?_;f6alfH%Xr^bjgRs8#gCSHSl9Lj)hmm+)a;H9P7y>isPLpbs{)5!d0O z$`b??sC$?&)2KL|HrtQ8aZ`%jGezm4>x$`F+#+IeZVX}jq1U3jVxGrhHWx11yXz6i zd!Vkvv_17@C08g=@&uu(_(Y6k&l(haFB*dPODS2S;e~#lHEc3@-p!Hckz;kMkN;S8 zL%lAtdqy@-RxL%fWu5egtfT};-TgHx`-f6sm&09(XRrv4Or}`c?Kbls5-urvFyCFb z3K~87*J|`tO=b-nfUndT1JK>@t%)f;v0{+5TzX*zx2T7aiNq`oef5dldBVam3gVH= z4CU)^pl5{_br?LDS9skJ64w&8g_^=~M&fOt)V5+o{|J~tjMj2#$TLHE`y6CmV4~Sr zat^$*WsDCNt{I-rl;Y`VG$suKLhxhk%$^U=)w2GHeeysO~4h3#6xyl2JOHK0GpY#V>%UQ zvX@Y5;AW&oW>MGbmmI*z?!w6K#@JDo7K00yv*7)@bZ68Kb5T2tKXMP%i(O}5jLi5I zolA+?Lq{TR!KE$c6fPifSZblcSSpA?D-}wEc3K_8b=$ewBY4lcuBD_DB*%$U=p12r z!ScwzJq2|Zx&zm9tMXYgvH4FV|1<9is?0a%vt!X9S*&bJ8s5!_pEn~FdrJ2KM&S;vMM03W_ z%o}OWO*C^j&AFLoax~`_nmK~zB-6~1H0M^DIf~}oMx8k+G$)Pb{EX&|r#WM3&IFos zJI%R^=A_abC(Rj0bMB@&chH=PH0Ms5GYJRFoy>>zQ!o4DyeZV11}}Y{_gkRjVRT9g zMXC$0qv@11ycTwAh~=!}^-tZ}XTC7I=<}IR`_zZ(aunV_Vej)y#W8i9G?cX!%Ch)v z^;=Rt@!6wq#ZN*%bcl=JX;ck+nU=hxkrdmK#REOyS*l8oD-#O*WJ?x+2k(ZG| zd#gLKrnxy-y*@p-cYV71SL^?@{*?{uUVUYQ`3HN-7jwl)M7>vRWGBQ!K9yrP=KJ>;Rd!Tvik%G z_sUU$jaEFNia=lHmWG2CRIUjdB42N?ewY5RU&!>gx%f3KU7JL_)jm`by>&iB*WP!0 zEKlWO`SS7#uCU${{wMo?Bao8s0U)9e-59V}i~~5)fkeBUZg_0+6*vDxPu@v0MO7Y%6N2sAk^BMz`a`>&W37D$m0I9J>3bF5qO zDpNuVQ-YN#|6Qj1C@4Rogq~qtIo=hkU(PQoC;sb(jJ)lRi8JS2J^r5_nQQ$9!y7b|VX5>V0 z)AmzY*?PJhDa+nHf;NnoTx*8k(fDfPcD)l(!*-;bBD(JvILDdoZXDzzfN@aAR0fc| zYi_VMO8eJ5ny~ZF!yeuFXG(XzHDv9758&7OD(io9u&vMFTPIAJ^}tgbHtpT_e#g1E zF=;b?zB0FH*Khx)?O%hPi=TO|=FstP`VG!__}TK^zdqXDr~eIH%DA+9Zd*1r>d+#4Q9F7_^@xh$D@?F3FU2C5S_dP>{Ut0S9Y~1{ZR~4B* z#m0}cxbXTxC1Tf4Y4^`-uSt9%C+#Zi)yq?E{z#Ja)|-X5$3*+(gR Date: Sun, 3 Jul 2022 14:01:51 -0400 Subject: [PATCH 15/18] Shooter fix --- ai.asm | 18 ++++++++++++++---- scorch.xex | Bin 40432 -> 40443 bytes 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ai.asm b/ai.asm index 883e3d4..0c5678c 100644 --- a/ai.asm +++ b/ai.asm @@ -80,11 +80,21 @@ AIRoutines beq firstShoot lda PreviousAngle,x + cmp #90 + bcs shootingLeftAtThisMomentOfTime + ; shooting right at this moment of time + sec + sbc #5 + cmp #10 + bcs @+ ;not smaller than 10 + bcc firstShoot ; GET THE aim againg + +shootingLeftAtThisMomentOfTime + clc adc #5 - cmp #180 - bcc @+ - lda #0 + cmp #170 ; maximum shooter angle + bcs firstShoot @ sta NewAngle @@ -93,7 +103,7 @@ AIRoutines sbc #5 sta ForceTableL,x lda PreviousEnergyH,x - sbc #0 + sbc #0 sta ForceTableH,x jmp endo diff --git a/scorch.xex b/scorch.xex index d23d26735133e27cf864fdbb6925bbfe846b2f72..a3206e30406849e52469b301c9f371f000cf4765 100644 GIT binary patch delta 12651 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 From 176548947440c3dbfb2bc765c9bdf3d73e4b6308 Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 3 Jul 2022 14:36:16 -0400 Subject: [PATCH 16/18] weapon price balance --- constants.asm | 18 +++++++++--------- definitions.asm | 38 +++++++++++++++++++------------------- scorch.xex | Bin 40443 -> 40443 bytes variables.asm | 2 +- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/constants.asm b/constants.asm index d016510..87140ed 100644 --- a/constants.asm +++ b/constants.asm @@ -429,18 +429,18 @@ WeaponPriceL WeaponUnits .by 10 ;Baby_Missile___ .by 5 ;Missile________ - .by 3 ;Baby_Nuke______ + .by 2 ;Baby_Nuke______ .by 1 ;Nuke___________ .by 2 ;LeapFrog_______ - .by 2 ;Funky_Bomb_____ - .by 3 ;MIRV___________ + .by 3 ;Funky_Bomb_____ + .by 2 ;MIRV___________ .by 1 ;Death_s_Head___ .by 10 ;Napalm_________ .by 2 ;Hot_Napalm_____ .by 20 ;Tracer_________ .by 10 ;Smoke_Tracer___ - .by 10 ;Baby_Roller____ - .by 5 ;Roller_________ + .by 5 ;Baby_Roller____ + .by 3 ;Roller_________ .by 2 ;Heavy_Roller___ .by 5 ;Riot_Charge____ .by 2 ;Riot_Blast_____ @@ -452,9 +452,9 @@ WeaponUnits .by 10 ;Baby_Sandhog___ .by 5 ;Sandhog________ .by 2 ;Heavy_Sandhog__ - .by 10 ;Dirt_Clod______ - .by 5 ;Dirt_Ball______ - .by 2 ;Ton_of_Dirt____ + .by 5 ;Dirt_Clod______ + .by 3 ;Dirt_Ball______ + .by 1 ;Ton_of_Dirt____ .by 4 ;Liquid_Dirt____ .by 2 ;Dirt_Charge____ .by 10 ;Earth_Disrupter @@ -481,7 +481,7 @@ WeaponUnits .by 5 ;Horz_Guidance__ .by 5 ;Vert_Guidance__ .by 2 ;Lazy_Boy_______ - .by 8 ;Parachute______ + .by 3 ;Parachute______ .by 2 ;StrongParachute .by 2 ;Mag_Deflector__ .by 3 ;Shield_________ diff --git a/definitions.asm b/definitions.asm index 703aa1b..e01b886 100644 --- a/definitions.asm +++ b/definitions.asm @@ -23,27 +23,27 @@ price_Napalm_________ = $ffff ;496 ;_8 price_Hot_Napalm_____ = $ffff ;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____ = 330 ;_15 -price_Riot_Blast_____ = 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_Baby_Roller____ = 211 ;_12 +price_Roller_________ = 244 ;_13 +price_Heavy_Roller___ = 326 ;_14 +price_Riot_Charge____ = 230 ;_15 +price_Riot_Blast_____ = 241 ;_16 +price_Riot_Bomb______ = 259 ;_17 +price_Heavy_Riot_Bomb = 272 ;_18 +price_Baby_Digger____ = 136 ;_19 +price_Digger_________ = 176 ;_20 +price_Heavy_Digger___ = 207 ;_21 +price_Baby_Sandhog___ = 158 ;_22 price_Sandhog________ = 191 ;_23 -price_Heavy_Sandhog__ = 305 ;_24 +price_Heavy_Sandhog__ = 223 ;_24 price_Dirt_Clod______ = 104 ;_25 price_Dirt_Ball______ = 130 ;_26 price_Ton_of_Dirt____ = 171 ;_27 -price_Liquid_Dirt____ = 530 ;_28 -price_Dirt_Charge____ = 581 ;_29 +price_Liquid_Dirt____ = 330 ;_28 +price_Dirt_Charge____ = 343 ;_29 price_Earth_Disrupter = $ffff ;430 ;_30 price_Plasma_Blast___ = $ffff ;274 ;_31 -price_Laser__________ = 577 ;_32 +price_Laser__________ = 277 ;_32 price______________33 = 0 price______________34 = 0 price______________35 = 0 @@ -67,10 +67,10 @@ price_Vert_Guidance__ = $ffff ;_52 price_Lazy_Boy_______ = $ffff ;_53 price_Parachute______ = 234 ;_54 price_StrongParachute = 1000 ;_55 -price_Mag_Deflector__ = 245 ;_56 -price_Shield_________ = 112 ;_57 -price_Force_Shield___ = 268 ;_58 -price_Heavy_Shield___ = 375 ;_59 +price_Mag_Deflector__ = 745 ;_56 +price_Shield_________ = 224 ;_57 +price_Force_Shield___ = 1100 ;_58 +price_Heavy_Shield___ = 628 ;_59 price_Super_Mag______ = $ffff ;_60 price_Auto_Defense___ = 512 ;_61 price_Fuel_Tank______ = $ffff ;_62 diff --git a/scorch.xex b/scorch.xex index a3206e30406849e52469b301c9f371f000cf4765..df1e4e97336174964b576316e58baba979cd88fa 100644 GIT binary patch delta 187 zcmeypo9Xv%rVWCX^$ZM*Km^24z{vRjKY|An{0{^S%uEa{O#hkwGczRQPdK1@BJltJ zH08@*+@5`87UZ Date: Sun, 3 Jul 2022 22:35:47 -0400 Subject: [PATCH 17/18] tosser upgr and deathshead fix --- ai.asm | 50 +++++++++++++++++++++++++++++++++++++++----------- scorch.xex | Bin 40443 -> 40557 bytes weapons.asm | 22 +++++++++++++++++++++- 3 files changed, 60 insertions(+), 12 deletions(-) diff --git a/ai.asm b/ai.asm index 0c5678c..a8e3f72 100644 --- a/ai.asm +++ b/ai.asm @@ -56,7 +56,7 @@ AIRoutines .word Moron-1 .word Shooter-1 ;Shooter .word Poolshark-1 ;Poolshark - .word Toosser-1 ;Toosser + .word Tosser-1 ;Tosser .word Poolshark-1 ;Chooser .word Poolshark-1 ;Spoiler .word Poolshark-1 ;Cyborg @@ -271,7 +271,7 @@ endo sta temp lda TanksWeaponsTableH,x sta temp+1 - ldy #32 ;the last weapon + ldy #ind_Laser__________ ;the last offensive weapon loop dey lda (temp),y @@ -286,13 +286,13 @@ AngleTable ; 16 bytes ;ba w $348b L$3350 .by 18,26,34,43,50,58,66,74 .endp ;---------------------------------------------- -.proc Toosser +.proc Tosser ; use best defensive :) ; allways ; first check check if any is in use lda ActiveDefenceWeapon,x bne DefensiveInUse - ldy #64 ;the last defensive weapon + ldy #ind_Nuclear_Winter_+1 ;the last defensive weapon @ dey cpy #ind_Battery________ ;first defensive weapon (White Flag nad Battery - never use) @@ -334,7 +334,7 @@ PurchaseAIRoutines .word MoronPurchase-1 .word ShooterPurchase-1 ;ShooterPurchase .word PoolsharkPurchase-1 ;PoolsharkPurchase - .word PoolsharkPurchase-1 ;ToosserPurchase + .word TosserPurchase-1 ;TosserPurchase .word PoolsharkPurchase-1 ;ChooserPurchase .word PoolsharkPurchase-1 ;SpoilerPurchase .word PoolsharkPurchase-1 ;CyborgPurchase @@ -349,6 +349,7 @@ PurchaseAIRoutines .proc TryToPurchaseOnePiece ; A - weapon number, better it will be in range(1,32) ; TankNr in X + ; DOES NOT CHANGE X tay lda PurchaseMeTable,y beq SorryNoPurchase @@ -399,16 +400,16 @@ SorryNoPurchase mva #2 tempXroller; number of offensive purchases to perform ldx TankNr @ - randomize 49 55 + randomize ind_Battery________ ind_StrongParachute jsr TryToPurchaseOnePiece dec tempXroller bne @- ; and now offensives mva #4 tempXroller; number of offensive purchases to perform - ldx TankNr + ;ldx TankNr @ - randomize 1 14 + randomize ind_Battery________ ind_Heavy_Roller___ jsr TryToPurchaseOnePiece dec tempXroller bne @- @@ -421,19 +422,46 @@ SorryNoPurchase mva #3 tempXroller; number of offensive purchases to perform ldx TankNr @ - randomize 49 61 + randomize ind_Battery________ ind_Auto_Defense___ jsr TryToPurchaseOnePiece dec tempXroller bne @- ; and now offensives mva #8 tempXroller; number of purchases to perform - ldx TankNr + ;ldx TankNr @ - randomize 1 30 + randomize ind_Missile________ ind_Dirt_Charge____ jsr TryToPurchaseOnePiece dec tempXroller bne @- rts .endp +;---------------------------------------------- +.proc TosserPurchase + + ; what is my money level + ldx TankNr + lda MoneyH,x ; money / 256 + sta tempXroller ; perform this many purchase attempts + ; first try to buy defensives + mva #3 tempXroller; number of defensive purchases to perform +@ + randomize ind_Battery________ ind_Auto_Defense___ + jsr TryToPurchaseOnePiece + dec tempXroller + bne @- + + ; and now offensives + lda MoneyH,x ; money / 256 + asl ;*2 + sta tempXroller ; perform this many purchase attempts +@ + randomize ind_Missile________ ind_Dirt_Charge____ + jsr TryToPurchaseOnePiece + dec tempXroller + bne @- + + rts +.endp diff --git a/scorch.xex b/scorch.xex index df1e4e97336174964b576316e58baba979cd88fa..78536c942d036df7848ca80bc150f7f622f50466 100644 GIT binary patch delta 14805 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 E7msx>Z2$lO delta 14715 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 diff --git a/weapons.asm b/weapons.asm index 7d34b7f..c17543b 100644 --- a/weapons.asm +++ b/weapons.asm @@ -232,16 +232,22 @@ NoExplosionInFunkyBomb mva #31 ExplosionRadius jsr CalculateExplosionRange - mva #sfx_nuke sfx_effect + mva #sfx_nuke sfx_effect + SaveDrawXY jsr xmissile + UnSaveDrawXY sbw xdraw #35 jsr CalculateExplosionRange mva #sfx_nuke sfx_effect + SaveDrawXY jsr xmissile + UnSaveDrawXY adw xdraw #70 jsr CalculateExplosionRange mva #sfx_nuke sfx_effect + SaveDrawXY jsr xmissile + UnSaveDrawXY sbw xdraw #35 ; sbw ydraw #35 @@ -249,18 +255,32 @@ NoExplosionInFunkyBomb cpw ydraw #screenHeight bcs NoUpperCircle mva #sfx_nuke sfx_effect + SaveDrawXY jsr xmissile + UnSaveDrawXY NoUpperCircle adw ydraw #70 ;jsr CalculateExplosionRange cpw ydraw #screenHeight bcs NoLowerCircle mva #sfx_nuke sfx_effect + SaveDrawXY jsr xmissile + UnSaveDrawXY NoLowerCircle mva #sfx_silencer sfx_effect rts .endp +.proc SaveDrawXY + mwa xdraw tempXROLLER + mwa ydraw modify + rts +.endp +.proc UnSaveDrawXY + mwa tempXROLLER xdraw + mwa modify ydraw + rts +.endp ; ------------------------ .proc babyroller inc FallDown2 From bb70b2495a83b9d7982769947bab2025714fbc7e Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 3 Jul 2022 23:35:06 -0400 Subject: [PATCH 18/18] buld 146 --- README.md | 26 +++++++++++++++++++++++--- ai.asm | 2 +- lib/macro.hea | 3 +++ scorch.asm | 4 ++-- scorch.xex | Bin 40557 -> 40557 bytes 5 files changed, 29 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 05586f0..28898ee 100644 --- a/README.md +++ b/README.md @@ -47,20 +47,40 @@ With the advent of fujinet (https://fujinet.online/) we are thinking about makin ## Changes: +###### Build 146 +2022-07-03 +Super heavy rewrite build. +Not much changed visually since the last build, but really large parts of the code were rewritten, optimized and improved. A fresh swath of buggies certainly introduced, too. +- completely new tank falling routine by @Pecusx - over 300 bytes saved, complexity reduced, more just energy deduction when falling. +- silly angle system rewritten to a proper, primary school angling. BTW - I had to dig into 8th grade trig to make it work. About 200 bytes saved, complexity reduced. Next build will have improved angle speed UI. I will also allow for an easier improvement of tank visuals. +- Weapon price and quantity balance - this is our honest attempt to make game more fun. We'll accept any critique and improvement proposals. +- New AI opponent - Tosser! Not much better than Poolshark, but still beats sharks most of the time. +- AI opponents can purchase defensive weapons what makes playing against AI somewhat more challenging. +- Improved Laser. It is still not ideal, but better. Still hard to aim :] +- Few small parachute related bugs fixed +- Death's Head bug fix + +Issues closed: +- https://github.com/pkali/scorch_src/issues/87 Angles are reasonable now. PROFIT!!! + + ###### Build 145 2022-06-26 Possibly last round of weapon additions! + @Pecusx added - working White Flag -- it is a way to give up while not making opponents richer! - Battery - a must for every tank with low energy. - Strong Parachute - like a normal parachute, but stronger (it has energy and can work more than once) - Nuclear Winter - a quick and efficient solution to global worming, err, warning, WARMING! + @mikerro added new SFX and in-game-tunes. - Pressing [S] turns on/off SFX (when aiming). Pressing [M] turns on/off in-game tunes. + Tickets closed: -- https://github.com/pkali/scorch_src/issues/54 - holding joystick up or down longer speeds up force change. It makes playing with joystick much nicer. -- https://github.com/pkali/scorch_src/issues/76 - a beginning of visual tweaks by Adam -- infinite defensive weapons purchase bug fixed, to chagrin of some... +- https://github.com/pkali/scorch_src/issues/54 - holding a joystick up or down speeds up force change. It makes playing with a joystick much nicer. +- https://github.com/pkali/scorch_src/issues/76 - a beginning of visual tweaks by @6502adam +- infinite defensive weapons purchase bug fixed, to the chagrin of some... ###### Build 144 2022-06-19 diff --git a/ai.asm b/ai.asm index a8e3f72..695f520 100644 --- a/ai.asm +++ b/ai.asm @@ -409,7 +409,7 @@ SorryNoPurchase mva #4 tempXroller; number of offensive purchases to perform ;ldx TankNr @ - randomize ind_Battery________ ind_Heavy_Roller___ + randomize ind_Missile________ ind_Heavy_Roller___ jsr TryToPurchaseOnePiece dec tempXroller bne @- diff --git a/lib/macro.hea b/lib/macro.hea index 6181aa6..4e29ec5 100644 --- a/lib/macro.hea +++ b/lib/macro.hea @@ -104,6 +104,9 @@ .macro randomize ;usage: randomize floor ceiling ;returns (in A) a random .byte between "floor" and "ceiling" + .if :2 < :1 + .error "floor higher than ceiling" + .endif ?rand lda random cmp #:1 ;floor diff --git a/scorch.asm b/scorch.asm index 3715f18..4283fed 100644 --- a/scorch.asm +++ b/scorch.asm @@ -36,7 +36,7 @@ ;we decided it must go in 'English' to let other people work on it .macro build - dta d"145" ; number of this build (3 bytes) + dta d"146" ; number of this build (3 bytes) .endm icl 'definitions.asm' @@ -1362,7 +1362,7 @@ MODUL equ $b000 ;address of RMT module TheEnd .ECHO 'TheEnd: ',TheEnd .if TheEnd > PMGraph + $300 - .error memory conflict + .error "memory conflict" .endif ;---------------------------------------------- diff --git a/scorch.xex b/scorch.xex index 78536c942d036df7848ca80bc150f7f622f50466..3f09126827e97435baafca6de99a948cc1e5ce82 100644 GIT binary patch delta 32 ocmaF6hw1GerU`|NVv`w#!Z)5&(qt6d{6_PJCnMwLqs1$<0NbGq@Bjb+ delta 32 ocmaF6hw1GerU`|NqLUeg!Z)5&(qt6f{6_PJC!^u!qs1$<0NkAo9smFU