From 328a147225d310c8e2cc94670c070621930f863f Mon Sep 17 00:00:00 2001 From: Pecusx Date: Fri, 16 Dec 2022 12:39:52 +0100 Subject: [PATCH] Magic of the "." key :) --- ai.asm | 2 +- scorch.bin | Bin 32768 -> 32768 bytes scorch.xex | Bin 49329 -> 49343 bytes weapons.asm | 55 ++++++++++++++++++++++++++++++++++------------------ 4 files changed, 37 insertions(+), 20 deletions(-) diff --git a/ai.asm b/ai.asm index 27f2671..c607b48 100644 --- a/ai.asm +++ b/ai.asm @@ -617,7 +617,7 @@ RepeatAim lda #ind_Baby_Missile___ sta ActiveWeapon,x ; now we have initial valuses - mva #$ff TestFlightFlag + mva #%11000000 TestFlightFlag ; check targeting direction lda tempor2 jne AimingLeft diff --git a/scorch.bin b/scorch.bin index 3cb45e95938b91ce33d95f6bc1e71c38c0830457..95b04863e8b145a269f71f0de007d27cc32a5072 100644 GIT binary patch delta 1914 zcmZux4Nz3q73S^_i~PL>kt{^;E@E+Yk<~#YB(S1Y*!7`=p8!G9t+6E7HKvPIY)eGL z(`6eGIk3C3KTRDT-Dg9xac8u2T#Hs2A8JEv(Q(F-j!h~yGrCPRYSU`ZF4lCKzBhBf zbHDSwbI-l+oZHbM>FAL7*CddYur^`2MCO3@gjL^~KEy6qPlJ)s+bcwQdYJ4h%2Cs8 z!qAg;8f%`)V`zQgvxMUexfyV02oiENu$EpWbCnKC2I!$pulv~cO=9juilF7Z&T@+U z8F(&hBPk2mv$o2TiifykLH`gJm=2Gv!QwzlPJ$exWN8H{@dYmC4aJh0Kx@%zLjDjq z@%$VK8HP*6XX5YJ_*0=oA(8XbTyT|WNiLi(sU&wGO`lD4P@>NyUTD&f&DPn4D9+E8 zbO^IJZ$z&P6s%N}IGvsSv{T5y06N%Ix{K%n*Gma`9_f)zAvH`#ta(qZ;u&k@J|PJs zJ>j35nMHh{TK&63Uq2=$e|IyLY%oz>;O^=gg8MM6X_73?b||HEn~k6A)5t@)PK_*7 z?9@mmr0nIcVdiu3FcJlUeY`ih3-`g7p>T5p=F!f#b>bd$F4J8%k&0vq zeBq+;L8NFRjtkYf5_uo|qxyxptNR2gw#yMueG1LD;GKcV(u4i%D}a%zYThFNk856g zc3r7UhF@w67c1Tp9B2i%N_UWMPjq?Z>u z%12g!qE3_DebSSH@Xs@kz;7D?M*5YMFtBiCX{Gh%;f#PdU zb`E@8pOqZ3g(!OF@H=N2S~frnK;DqIfc1#cemUNjHcaxH8c!iVcxxHNHKZ3WJMiNa zo^Odd@RJl;QbqsIhnt@Ue^*8eJ^UcH9M5|!3}wOJ@KyXM=iuMM!eL!_uby~W%bXl2 z*xk*9J?Lh8}mvhK{NN?20b`IdQtWnFbE)_r7^0j1dV@}e3S2!yIiSk^6e>SFJ^Q3Ov_Clsxka2C{ zGbecFjQ<|ZbdR-7+%^rF!=xI?MNdc}`fFikn1jCiZ{45gx;!%Q)lu zPcXR~luas$+#Oid6hCWs^S0JK-TlA1KK)Q0KYKv|Tf5`!-jipq+?6V+enZ37o}m*L zrWIL5uk5nFcY11CrCD0n+~Iux@|EkK{q4(#k7Ts0qNZUBccA~5r_NpcOLWrwZ&&}Y zeGk{wee8NDWodb%xvk$ldQ-V%O~tmuAO2?Q##gcGV$ajZ>xJXZ&%njzXJNW|Zb16l qmy%;!-j|Zi@WIx;m>Plmf`5=!3+vuUQ@k#Cyy+wDf$zW3pY(4tw=2g0 delta 1999 zcmZux4Ny~87Ut%Me|SN&8d$(f1R*vwuv)5E{-mLhJ}~7+KyZj?t#nh}4LcUJ3S;{q z1VQ9z5(#0e!^`s8TB8}YtQ)3oE#pINQ@7N0w&Oy_oyA&d>gu>|ZP=S&>+a6JH*>#x z&iU?l|IR(_?Sl4pfm0oYRzp$LGlCz?uqSHmvgw0#N*O*AXf6F*kiCye{zCGhZWdAa zv>Au%Z>T6-?fP5P8469g1`{{|^0oQaq4zZM=^iPkWQMH8nE21Z zYI!}%cbVm{iDI%G%qchLU|ci)w%MKKlBPz9iHcmw3DHs4WtAfwmAaa<3lX~FI=kj) z0_1=zIe(0tF|lLbXfB#@;$>jVRib5ZF;|ObAT}=6>qH2}D2vjRmbp;rg-wp*6%k`WCmy?+)~q{M5^t@8x%JF+}OH zfAzc-h=Hu|ljx&|$-=~MZ^43fI;?QrE38ChA0_IIf@C&+L?QO3TNNU2j#VM>2;g@(=s~pS_?&!Qgu#xvj9D3&uf}Wcgp<&I-Dvlix=ee>U<)0*kwNhJde2 zk;eV5y0ZCXi*K9i42fg5oJ}#0Z%| zG^ycHk{$>MJqsEjWO5}lPLN&x{~$x=VOId7dPNzEtXCW>F;2_dOw zqP#+%i6Rc{F?*-yPk>wOm-mx`2x$o+d4xBfkYIr(71SDu@KL7@>NS}W(PRnCu-iZ} zEDUPoGR86@V=p%Si7~KzQw-D0Ui!@748=3>xkiuFQ1IeS1wN=69#l}Ct|x6*&_W-G0xcd0Toy_Zk%`i&E%E0F+hme!E0%_%EI51_m3 zS<-$~wvQxy(Yk`LDYIK9A>8ZGw{8zvWwbUePJO^VM=_h+A_>#TUSc-0mzgbOwlRDZ zwAyTu`T(tlUTp(XyJoc^Xkl9a#DwG_zFcvvW%y&RiW$dg5L%v;WijLI*L7}VBx7*D z6vZ^3G?dI8H0W@O1-Du8RjbaS@4Y}B3+m8+bAj^8-73nPfV-ig{3+B8-Q}q$9$e)c zB0eD%g5hxAZ@74nRjgg$Fgx_*nGCs~p?Ik$>1!?<^c5vbwTI|8;c@PTjQI2JCN zdLFh{EfP7**a*g|1X2kcRYr1xs`U_h-rO@t>97YT*5`>cEybf55M8ZEUT=Bb5@Nk* z{mzCP9C#8s|EyQ7|IOJ@t9ttX zaJKxU^R@_Q+Sy_9WLeg3ps*Uw)_xy3$5`0CB%#zcQj*6uD5=u}tJuj~VzLo2vy=E9 zZb(I5NUBqael$U|#@X>nlFaAplGemMSSbw^O)|HFXq z>*L~mwjZP6kK;i^6%z%Y&6T+^GOVp(n|@bk@5#yOyFPJbqDo!1u>Kq_#rmGsI+|Z-j3ekvtu9s zbuK(Uhu*$(*WP`d?@r!|T3%53@~?Xjk4}Z9<`!-1f9Hd1f4L`&%d$WDhTz;*8GODq z4(@DCa7DawUjWXgkW;U|FGL&R#A}B_OF8B)`_I@icyW7d$R^G{6gRrl^~>#tWBv^i CdRxf= diff --git a/scorch.xex b/scorch.xex index d17166d33a698bec3b1b1ff8129564a1170bcfe3..604f17a5dba2c68e592d6c4732c70c339752a49f 100644 GIT binary patch delta 2011 zcmZux4Nz3q73S_Pe~a=KBnCERxgZ3I2ODu* z=&W>gUoJu$C0wghpai<%z~F+C2H{K~T8t)M?4S!xnaDwNOj}S1Z7`)Go_b9>g_@&& z(?^T=b}@u_S*J;iB<@)UUh*7FMp1k_yOD^A5P_$EsjES}RQP*@9s_tW5f=yHSuN?V zwth}?9TsCC(mdWix0|(5%b|B|&2wfs48%8PIUEFUmXksBTI5U+ITkq$gvla54uV?b6cBG&Sap4GwIYL& znLv~WzV(ZK+w<((^}UA@6kzYQh%>|q9Koqkfz>G|c(W+BWEJ}iO#Cjj%fQ$_oi;LT zviUz4I$*j-4GeJP8UMmjBcq9cb}=$QhjRq2YryvPth*8rV5}GgNvAFM(?QF9^onH( z=$SOLA$^_C!pKSfa0p;w0?KI%0|3tD0@vrNBHmBjK}rZvl7Qk@j^3kC+K|3P;POp` zn`grbi4$)v65uFyC0kanhjci4pYzLEaTZ zs)X~O8NCs>gyuFHP#^U+-awhOt?4CbvD;1QsE8(7S0X!o%DN=2GF-UkSK|FO?6Zx+ z04WvDlCs_jhLrc-Vn{_QR~fX?<~@t(^kH4fah)a*Uf-zGu(zy`&$VD{u$)ym19!k# zgE}3vW=8N3sU#-bf`()K8s_nD+W*AcHQ)x(sz0QP2hSA zFi&pZ!;Bo~PaYHBp;ucAl0Ix@C+Ls88tw`9X>4onp_5oS-rE_|p8h%FryVIspf@`nMK9Bb z93|>57rx$sqaFBF+Th4Sm*{Cn;(c8%{jZI`t+TXr9*NbaEL)ZHL;;?l-#VTT2ks^Z zTSwW>l-OBa48hr*jprEL*NMBRsWUsN-zA56LuV&IAB?@p@!y<_o!MFchf{Gk&YLPM zxP)$)KS6*w#Qk)cb85i=;e`FrBK=PI4X@%enGEL|VdU#jG9reO-vG9oPe&EBjn7cs z=!EScQ2L$m!pN?BlskNS%q?*12DfgnVn`SoVR`znEBUdKh8}}neQbExSH|c0O8Go} zB|pZ;xN_j#4R4N1?;%wM1qH;|kpcJlbaA(FZO*fSGWIRn?0Rio123vbb+F9=I{yC9-|j3*T~qwJ?dbV`C=;@t zEGF&lbC>eDbNCd#%S@!N)!K&=sCUTIk85`#fs3@Z-}X**xEcqR(jU yJFQF4isYv7uY^I-^}W_Nqzxp?$glOewehtVwejx{YimYCms{IECapbD9rJHKK#j2g delta 1964 zcmZux4OCO-8RkpEk3_g2l%H7O3u2KO0k_g39ILikes;%nXr*?}2(&9(dbFWu#r358 z%&R29o4}XklHXd)jk!Z=^maS4Hm+NR^8-UL^-oqhM5 z?|FZo?|t9<-uJt|@0B0vm4`0Wp{V$A-OeQBB0p++2(=Mo)7l3f9ij`HaBh6RIV2=_ ztyIaGjJLF3APTEE{FLr|1%;1^SDQYf(BtB%pB$E zR3wTsFFl6P_e5+clp!Tq)&0l$4QBp$G+jt%LfA~wdNjyPYI@eA24e0hK`aUN6w1DF zkVwx&7V8iam=Nvm5#}+z_yJZ7_NtMRbPgpKq>-KM1KAriCD~~S+RFw+<0R%55-&M^i%y>@{xJDG95}{ z{9!%C@FahrIFI3idHg#ae_`~z)RD<_@+beS52fG+vSC1n0_6C>B~(Zb?Ar#@BWFv| zI!s=dyQ;NCO2433d>51qcKHec@S>bc1ufaKHsp=sD-3hABKIkwGU?dZR?tO z>$q@U29Rq=+Mof7G7m0M1uWq^6tg|7$Y5IelS~``F4GR_j^iY9YOqETu+Rab9NH!e zSjgb>S)_aDYL;2zTwWG zUW?5fzC4Vpo!WqoJwc5m?9p90K}Czh6;!kUUm-JODY`;ZY)hai%WYefl?3t&_|gkP zOwT8WZDk9TTtEjG!xyfir0j_Lb74RE+}2q18ykI@{Cf(MgRu!z*ybiM?rOF#gP!!- zSKj}sO_0Og8u7Mdu%WO*RQB~BHBt5 z@``symcb(^n66mE5j30%UB?EZ_GRZAJd<5Q(mhXM%mcOv>GkEry%}GGl~n5gFo?mY zTG$S}IdAG+e*(nD5TRW>>Pwr~J#qTI3$xd9YwKFtf3DwcAANoL;#Uh7RW-Nn==QyK z?AC@TF+8=gW5B~1t2iI;DJ-%a~|Iq0h8HFp?Z0YFnc;m|#U*wTs0of9) z$nxJ?{M{vbgR_a~ZDM}SwnP+|zwraB$ Nry8FT>kfBi{tM8#Z`uF= diff --git a/weapons.asm b/weapons.asm index 0e36ab0..d216af9 100644 --- a/weapons.asm +++ b/weapons.asm @@ -1124,8 +1124,10 @@ ContinueToCheckMaxForce2 jsr WaitOneFrame ; best after drawing a tank - - + bit TestFlightFlag + bpl @+ + jsr Shoot.AfterOffensiveText +@ ;keyboard reading ; KBCODE keeps code of last keybi ; SKSTAT $ff - nothing pressed @@ -1204,6 +1206,7 @@ NoSpyHard jsr WaitForKeyRelease jmp BeforeFire @ + ldx TankNr ; for optimize cmp #$80|@kbcode._up jeq CTRLPressedUp cmp #$80|@kbcode._down @@ -1229,6 +1232,10 @@ jumpFromStick jeq pressedM cmp #@kbcode._S ; $3e ; S jeq pressedS + .IF TARGET = 800 + cmp #34 ; dot key :) + jeq pressedDot + .ENDIF jmp notpressed checkJoy ;------------JOY------------- @@ -1258,7 +1265,7 @@ pressedUp ;force increaseeee! - ldx TankNr + ;ldx TankNr ; optimized inc ForceTableL,x bne CheckingMaxForce inc ForceTableH,x @@ -1282,7 +1289,7 @@ FurtherCheckMaxForce jmp BeforeFire CTRLPressedUp - ldx TankNr + ;ldx TankNr ; optimized lda ForceTableL,x clc adc #10 @@ -1300,7 +1307,7 @@ pressedDown mva #sfx_set_power_1 sfx_effect - ldx TankNr + ;ldx TankNr ; optimized dec ForceTableL,x lda ForceTableL,x cmp #$ff @@ -1317,7 +1324,7 @@ ForceGoesZero CTRLPressedDown mva #sfx_set_power_1 sfx_effect - ldx TankNr + ;ldx TankNr ; optimized sec lda ForceTableL,x sbc #10 @@ -1328,7 +1335,7 @@ CTRLPressedDown jmp BeforeFire pressedRight - ldx TankNr + ;ldx TankNr ; optimized lda pressTimer spl:mva #0 pressTimer ; if >128 then reset to 0 cmp #25 ; 1/2s @@ -1345,7 +1352,7 @@ pressedRight jmp BeforeFire CTRLPressedRight - ldx TankNr + ;ldx TankNr ; optimized mva #sfx_set_power_2 sfx_effect mva #1 Erase jsr DrawTankNr.BarrelChange @@ -1361,7 +1368,7 @@ CTRLPressedRight pressedLeft - ldx TankNr + ;ldx TankNr ; optimized lda pressTimer spl:mva #0 pressTimer ; if >128 then reset to 0 cmp #25 ; 1/2s @@ -1379,7 +1386,7 @@ pressedLeft jmp BeforeFire CTRLPressedLeft - ldx TankNr + ;ldx TankNr ; optimized mva #sfx_set_power_2 sfx_effect mva #1 Erase jsr DrawTankNr.BarrelChange @@ -1395,7 +1402,7 @@ CTRLPressedLeft pressedTAB mva #sfx_purchase sfx_effect - ldx TankNr + ;ldx TankNr ; optimized lda ActiveWeapon,x cmp #last_offensive_____ ; the last possible offensive weapon bne ?notlasttofirst @@ -1413,7 +1420,7 @@ pressedTAB CTRLpressedTAB mva #sfx_purchase sfx_effect - ldx TankNr + ;ldx TankNr ; optimized lda ActiveWeapon,x cmp #first_offensive____ ; #0 bne ?notfirsttolast @@ -1444,6 +1451,12 @@ pressedS jsr WaitForKeyRelease jmp BeforeFire +pressedDot + lda TestFlightFlag + eor #%10000000 + sta TestFlightFlag + jsr WaitForKeyRelease + jmp BeforeFire pressedSpace ;================================= @@ -1469,6 +1482,8 @@ fire ;with much more separate blocks, but you know - ;- do not touch it if it works... + mva #0 TestFlightFlag + ;the latest addition to this routine is ;displaying offensive texts! @@ -1481,7 +1496,8 @@ RandomizeOffensiveText ldy TankNr mva #$ff plot4x4color jsr DisplayOffensiveTextNr - + +AfterOffensiveText mva #0 LaserFlag ; $ff - Laser ldx TankNr lda ActiveWeapon,x @@ -1499,6 +1515,8 @@ NotStrongShoot sta Force lda ForceTableH,x sta Force+1 + bit TestFlightFlag + bmi AfterStrongShoot mva #sfx_shoot sfx_effect AfterStrongShoot lda AngleTable,x @@ -1517,7 +1535,6 @@ AfterStrongShoot sta ytraj+2 sta xtraj sta ytraj - sta TestFlightFlag ; checking if the shot is underground (no Flight but Hit :) ) tay ; A=0 ! @@ -1538,7 +1555,9 @@ ShotUnderGround ;-------------------------------------------------- .proc Flight ; Force(byte.byte), Wind(0.word) ; Angle(byte) 128=0, 255=maxright, 0=maxleft -; if TestFlightFlag is set ($ff) ne real flight - hit test only (for AI) +; if 7bit and 6bit of TestFlightFlag is set no real flight - hit test only (for AI) +; 7bit - fast, test flight +; 6bit - invisible bullet ;-------------------------------------------------- ;g=-0.1 ;vx=Force*cos(Angle) @@ -1553,8 +1572,6 @@ ShotUnderGround ;goto begin- - - ; smoke tracer :) ldy #0 ldx TankNr @@ -1820,7 +1837,7 @@ SkipCollisionCheck mwa ytraj+1 ydraw bit TestFlightFlag - bmi NoUnPlot + bvs NoUnPlot lda tracerflag bne NoUnPlot @@ -1834,7 +1851,7 @@ Hit mwa XHit xdraw mwa YHit ydraw bit TestFlightFlag - bmi EndOfFlight + bvs EndOfFlight jsr unPlot EndOfFlight mwa xdraw xcircle ; we must store for a little while