From fa79836f77e977e7ca2c5d2c73c476d061250502 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Tue, 4 Apr 2023 12:40:24 +0200 Subject: [PATCH] Code cleanup and optimizations --- grafproc.asm | 4 ++++ scorch.bin | Bin 32768 -> 32768 bytes scorch.xex | Bin 56358 -> 56352 bytes weapons.asm | 29 ++++++++++++++++++++--------- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/grafproc.asm b/grafproc.asm index 70f2ca1..cb9db73 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -5,6 +5,8 @@ ;-------------------------------------------------- .proc draw ;;fuxxing good draw :) +; xdraw,ydraw (word) - coordinates of first point +; xbyte,ybyte (word) - coordinates of last point ;-------------------------------------------------- ;creditz to Dr Jankowski / MIM U.W. ; (xi,yi)-----(xk,yk) @@ -291,6 +293,8 @@ EndOfDraw ;-------------------------------------------------- .proc circle ;fxxxing good circle drawing :) +; xdraw,ydraw (word) - coordinates of circle center +; radius (byte) - radius of circle ;-------------------------------------------------- ;Turbo Basic source ; R=30 diff --git a/scorch.bin b/scorch.bin index b17ab08443033f07650b984678298f71991925e3..ffb3aa92536ee6649ded036e691258a1625c19cf 100644 GIT binary patch delta 2219 zcmZux2~ZSg7UrJ=83cN`6fnZi6&(Q;kBDRu13?a(BOr&0+8S4bCByPrS*JDyf-Q84Sh4n(SIvYhrjqIB-m7{jMtN!=D_rCxA z@BQzntdvz&%KBP7(Gz0woQv*|Z#<`S8|;Pj|7F+m3aMm}QB3{gDh2GGjqZ_-5^xPPL~(yIad@TeOF@W^J$bGwtU(QFmH5 zY0rqR^1~6bdqE`XC;Wm0-?ln_!0sh@vAx*WAShXm9v~wNA{D*{JV1gIY1Bqa6C*+< z7yvfjp%=yjw7<&QXVVKV>=1w0F2_}*C$RwxCM=9Z6D)5pRHEQkR`6$gZI6XuSpOq< z!=VWVTE_~LfqzKq-&i%bRTscBB?^{ll-*o?^a2%7B6D|l;(E?gbsA*zixV$W!wT*q zC0?b5UAU_h9Zhi3JoFAJN}BD{s(YvVta|9e1qu$&l+$Bc!X?c@6NoJ-)^XX@y>Klj zgusPv&Rv4jICyQQuaVH?2$Vw>C0o!O@-(^MtKk4dsBBw{*JLwz0y+I=9NI>nznKqf zZpw`C`&AGR$2je{u-&W~-zvM=&3Av@Ya0;|Yi4i`=}bvO4dmY`>rlUC$)c%fYIt2& zDgTODqqN5uH41xzQ6sa-X|DDtbypgLU3QK1*g;5VYBc&M`6df}Bn6PHTFDj2SdHWYWVBXN0^w>U zPaxmbN?t(j*3#Rn`9KXNQTFj>Ft0eVa2f4i!v{G}2+A?Gh2Bmo(x!zbSBsStx0Moi zQd}8D16u|ua)*86#TQ#Cx{7>}rkRvn4Mw;)&<#6PasUo)rDhJ&$wZMJt^)n1T#+Ae zGt+~9!{xoyxxCcvP7jK3SaNdJ!bFx6>nSP3HV#DflwJO!o&o_DiI^TdS2WoFWeX6- zGQ&LdVIIzRf;R#_+(RGkf$MU?1xI9T3vS5eTcp57Ic+2AjGa)+A7#9Y5P6<)8)?an z#jDT{B!!Mb=Sevoi|&&SI%d4Bo*%Nwv2`2WLB6B&1M(Wc)=-2&EvFyp`2l#QM|#Je zq-93CJ=05(b_cU7a}KhRW0^&$inwQGA`2wQ!+qZXqE#$LSe2ZA$3XQ8W;42l3Sm(i(i+P^xmSg4VWBbY(?9+@l8u2M3(^cAF zrP^KgmhN5ogO##}iLsP@GEOBSxl!?{O^o=*eAWxE+z8W%5u#ZRKQeTcMy#0Wj&B{r zJ78$p-LToYt7Hw}-wLMQO5qq%l^c%Yh-Y3P`7-y7@qYmzw8f(L1cxlin}88$K2DrR zNq#mg6c8paeR9fvD6gLjaGcpuds|AH)6p*I;8pzJ10^-(V&>x~0D6r285|zQtX(uL=rv;jbW$fvJUIXd>BAI1dey_QFDUe-0NLakUY$BQKghn>MnS zg=qZ_KLP1?`UxlX@B0Zd{Vu<*QvBLm*q>uIY}u)+Yieot2?~pv6`z!WHvD}^MGLUAmq$}krU3qO$*+*I_xWP${4 zb0h;nGN`^0{FBML&2|qG?GT27aN5s8!Sz>Quv12QiUWfjc=bKelXCwb_4mbr=sJ1k zSS|i55>>lXvT~VCTbujO{Qdgf9~J&lbMn`en>vnP8oECgJUx!y%o@7S+(dy1MHL^l ziDw?Wsb5Q3wM~EQ@;|QKemMFZjSJ7nDJl$f^JU delta 2115 zcmZuy3s98T73S^(aC!WIn6f-Cg4IP(K{F5%9zs+eKcLGSd~6BvMT&x2GFpLM^9yW* zCB8MZc?9&?P)$~zfaneYj(_f)fD zh7RcH$o|P_hWc0%Jy&^=>y|yiyod~2yhE=qL70qqQ%u?{+BL7p$N>xUOe!JwAUFQc z-gzeOvQ;o~mTCJ~ZOya9J^N5ZI$&*LRMdZ6(rE|Lb8;E_i_9(?h=a-{4IFn zvOpc%$nil>BsjTom%LBoXH@NzaH`XyfB)jbO~!AZNG7v0U}0kbi2?tVSW*efl=VJ+ zn!Rs~dQIKD$slc=n3ZavJtc+&!e~mg-Syv3^4@s95bn~Lt3yg~Y=oyAU~fS{YB(u? z0zDiUt@m!V%Bo^=H>2=kYTt`4|8u0bEjIR!!ak}I%$j2*eS?Qi`fZ~ zWgNv)$56pWV@3^Zl-tB9Ou(C2Mb26s@4*>hENdAAXRmh|#A=`o z+hAKpu#6k%Eyr6bt-)>-=RCLMW1Us*g+6*9E$2AVz(~$2!oa;8KddU(t??4( zHI{+RTX%_=*Wex-4A-_!FTHzabku8}URUNy>TV2A3|2t(IHtul-xLZ7n4Z4^n|0Ns3uPXw3T6z>jnfX!vF z#xjEM80EJ^Np5;jW*e5)cg5#2U@yFGa1@@y@Ih`AnTOfjguvJ~UW`T1hnc4{2k}&R zJ$mdcn+xb@OWs?Uum^d&0%FfP>SWC!+?&T-8_x+o_`r1N=rO3w55i_YmEVY=T~+|D zS9HxijEW9}xgbdz-kvrX1`i4p;py%B+rMhRs{dRc(^20M(|$pAN06MJ7d*{#iiLr} zZ;2ZVmy;kUFN`IhLw8}JEWkj^^t4%zk^ZJ|4N*d5QP8pggKB^EQH{2>v(LwW`RbVX zlnh!8JBx~4k$X+g55Ryo0o7k z_DBxmiv9~^r*p<9YBW-QE(q$PEkc}2Sq9W@Nyn4J0Ykt`rOzI1QRIsWP=({s}B4T;Jl zuXdYn{Kq9Eb?31&rr{gkcs})9=8MPSolifzHT%_~$i+jkwO~itp%z`wmEYeSzsLAT zW^J!MscmU(zj|vvD1KY{5p|DIu*qYy3tsMf_Yb%4NR~!y&NF=f6Qcwl?fx0u-YqA6 xK=#BClV!u65z*!S7saFwF8#92^#IS^H$IXdgv?60%L(4l<3FgkR8*ez{vY#>kFfv% diff --git a/scorch.xex b/scorch.xex index 2ba2279024a54360783b00e989372320ff049c28..31575f83f9d674795f00c9efd62d9676730007c4 100644 GIT binary patch delta 2192 zcmZuy4Nz3q73S_P|AYq!35x=kzu<0`M4-lvia|4Wls=LU2@#zjYtgnWnhN4zvC-_x z6PEISVOd!oKMN1`0ShY&3Q5IrqHoQE~gI*jk#4KDIHrr#+AtaaX@8TGf*jbv#m%L+Z#Et#x$bo0xIUt@XSc zTTjK_4EUYup_sxK^ms^pCy~PIY`yA)0Q6Vet&%|zx^64~;2UosXUZ&MWU?jxmhnNS zY!@5fK%Og19;ePT6Vx;nnA^<^*>80-wmIiqXwS9XZF(X?J>;|IgqVYxMeT}Kttrx! zXlgWi4Xf$W^lAFFL)uYoz?u8n*->K4~P9C+1#45u}&Mxsq!R@s#f&31C}W&G*9H?#{^BUov_M$JpuYm|MKns;MoDLRTwwQfS$#G@@auul8S-pPP_Q&SWOZxGXqB&{tO z$;qjs*DA%O8=N-NH^{ZNShSNYw%L%3nA<=0H#Ncq-P;f1khfG= zP6|4d=rHN+$V7+hO|PIY$p%vt;4@6Skck*gKSx%ZsB=A%C0BIkTOu81nft=a2AO1G zn?WXWh-r(?LQM;+u*xnMmYjsV-Iai@6HOOBeXu@ue}EVV)$<;BIs^QdTrTtjxvCTD9Nt{c?o}oS5VF?=|Ahkr1)M*Z3m!oB>jY0Alun2O;$0yqfLL@w z9FPY(VH=QdbwY~61HYOL3g{zcmJ=db1SL=lzGkqSJ~p+N_A9rPI$idz;8&Su`Uu&^ z$)l8I_75qxh_aVZ?E4fA+xHV2o@C<-K3dgf3a88GLFp41YGm!r?gWEbg(bE`qyy;yyKnD(gVE;*dUxh8?V3NPPkA#TCB+1dLebeEL$W_cL&{BsOT+ImCC zSG~z-oJ92{!2DL97GCdk-&XI>^>%3h2${(X{U4x8(%8QqNy(-DP^i1v{>>6;4J{=h zmK>3^hFsz!NP}f=%~IXuWWX}!GE67BuJD=61YROF15wC8&JVoc8Q+981`HKH5Q_GY zxq+9q?5S7TAH7pGA;M{gp%1Be1;b+BrtbXM>&w#$o8Rdc>g&=#E1eN`)^!q>?eTdI3<)2^{3 z@+X@tHmm8^P2Pq{!z07?b2aC-H(7k9p%|A1f9qq}ih1liV90PZQV`|vCiI9L9p2+B zXK{f6w-_KkWO_IO9jG4(50SGfbzzCNqQ2P_6c+tb(&im$SVNLV_Id&KhJg++5cNn@ zkZZ%cK|ozWY=#CiG4e`WDl2$c-Qmwr2~Pe$hE;N%^GW3DNLWfz)yZJ4E6=U!H^KP+ zPw@{39(=02U4j)X*9mWx>w+hYQ%S*vCz4bnzCa2tDky8SlAD=#XJ(+8ABVI4i}C0I zxp7e@DQt!<8dXrK#!zl1?-^w4Xnf#FqthFArqe2#=$e?JV@T0x)D|nWKb24K>*$C*EE78NHr3Mt`+6sD+m> z#m@L6h(Be0jDuPxiX9JC&{g3u3J&GpAMzg0fDz6!a&jz8>VyY8v_D7r{4aN4ENtzv z@jqPnvAE2*fkq6{%eF7ZUiUt|FZUP6wYq-C?XQ;IJf-r~-Rk1A*3rqiB}s7d8|ep1 zoBMu$``hPV&Nx!hJ~DmVFFfui`-&<}6Zao3{>$4x@cDJhoI{5Tv@B;CzxmmhD-p6S z@8wrDo?|<@Cl|dGyH&?ZYc0dKR@eVH`%u|=VfG*2tciXtGnaijNXK{>`Dok+b&xCL wijb~ngL^t`o`1aWj;hJmLW9>Sp81;lr}Q+bo|Jml^K5I_SdVRB@z6951J delta 2201 zcmZuy4Ny~87Ut#$Bp{C{YKT9%K&V8C{M0J83vRnRi2AHkt+P72NGw`6(6xfPP&%vz zdGb^KuOu-c0RxG7NF)&CXEm%{*4W2V8rkt@+?Cm-Gq$!JH{EWxD^=O^;?~a2_Pv?= zoqNuA&OJHroSTkep<`I+uFOa8dzk#=p(u)o3)Tt529jB@5@nGC1&Zeeo9VPy@q59w ztA!1*v{1^M(U&z3gcQE4$NdGrUueb#1y%UAL}J*IzMQF zA)V$#ky?*O$b^{&T5OwAk*Wt;1aD^}fI3*|bNlPr5N5`HHXy`S@{6_xV1C|~h*CXL zix?>l47-Twr2$qv1u3|t>gjTZUH+X!)>`vo4HYuGMk``8O@e#-T$7YcE09Qd2I;Xb zMJve%*7YdArTuxSq2ia_Y5Vgim6W!p@qwpKu~NuR!Swp)1*Od3 zF_5E^zC*ZnrC{qR@|rD%2s^AOh1fbSMLApHM~OT3<3-ywa9-ir3{*_I&hCPB_G}9J zjI6T7p{<0r$wPmWTwiJY{nmS$B!5K9Kw?gvdmAWk2pQm5%Ga?PHQ4E6!b?ikRr2)+km zSp1~OyE`W1z6jKusEK#@FNG|2By8dX{*Z%A8+35HgAU(OmM|7?9mOg9Vc=Cq1%yxP zC{W;Av(Na2_+kl6iIv?Y z(>6e~8Kpj2NJlo`9U<8oeRWjK(XDX7<_t$h={nVDjO#QS2nwdtMYN z8fgWgTzN?0dD|6+7CvqsACG>B?K^CxU02y%j1NC1H5cMCta^O)n8sTh$rO2a&S#4I ziZ;(R7iqBCfUAu7j#1+%Z17RGkW+=H_I}}`0`cB7DzF^ql9>yuU&?LKc)xnR-Y39Y z-hvxT!zMEpEHyX^mAR=BEHL3FxYz>o@Yoq%I>G26!CXz9kHR@5r#AuZB-eXm3Df&> z#Gir4IPnWdSYG#v)TMV6!mwJr>nSeAkJ%!kbZ=4Qou(TJ->-bThB^6Gy+EF}YS2{g zR-^gkk~?$R*3+yI+RFx=gKr;(+~Akv##VYiflx7hJ;+Sn@5_Vfjq6`5a_Mm+d8vOn z+!lNKtD)vI{bb$;`g$v+fyOEK{8+rfkTa4&e(zB!_Zp5HD5Kx_(75SL>zPdkmt+c> z_8}ML{#y0KIr5Z94aB2#l0L8=JtPGKKZ{7U;1VOY8KER(VnB@!lG%afi&8C`g5t7@ z+7^>-fjoY7`irk@!Br&r;+`-d-!amQN!`Wx1wok&ff@$uW`djO%Ec5#wuK9Ii-S$B z;e+2X{x2tLFlEgTaP~io(;>p?7JDa*ue}SV8fTNj!AGKOGrmj;hmxs5Q-=M`Ev`ZY~ii*q9I&siZAvt(I()`7y}lIqU$9_}w6e+#P< zrEh=pom#!;x6|S^bbev|&_{P4g~TRp{JGZh>>=hcxuoOSL#~V^lh4N@$Twq@NBoC- zVsx5(!JSU3WSM{1{~gP)mVe2;K6xOHLw>o}DwmZ{%4L_w0 ;this is a trick that prevents compiling this file alone ;-------------------------------------------------- .proc Explosion +; xdraw,ydraw (word) - coordinates of explosion center +; TankNr - number of shooting tank +; ActiveWeapon(TankNr) - weapon that tank fires ;-------------------------------------------------- ;cleanup of the soil fall down ranges (left and right) jsr ClearScreenSoilRange @@ -358,29 +361,34 @@ EndNurnedCheckLoop ; ------------------------ .proc babyroller mva #11 ExplosionRadius +GoRoller jmp xroller .endp ; ------------------------ .proc roller ; mva #21 ExplosionRadius - jmp xroller + bne babyroller.GoRoller ; 1 byte saved +; jmp xroller .endp ; ------------------------ .proc heavyroller mva #30 ExplosionRadius - jmp xroller + bne babyroller.GoRoller ; 1 byte saved +; jmp xroller .endp ; ------------------------ .proc riotbomb mva #17 ExplosionRadius +GoRiotBomb jsr CalculateExplosionRange jmp xriotbomb .endp ; ------------------------ .proc heavyriotbomb mva #29 ExplosionRadius - jsr CalculateExplosionRange - jmp xriotbomb + bne riotbomb.GoRiotBomb ; 4 bytes saved - optimization :) +; jsr CalculateExplosionRange +; jmp xriotbomb .endp ; ------------------------ .proc babydigger @@ -932,6 +940,14 @@ ExplodeNow ; -------------------------------------------------- .proc checkRollDirection ; check rolling direction (for roller and other rolling weapons) +; xdraw (word) - X coordinate +; Y coordinate is taken from mountaintable and go to ydraw (word) +; shoot direction is taken from VX+3 +; result: +; HowMuchToFall - direction +; $FF - we are in a hole (flying in missile direction) +; 1 - right, 2 - left +; -------------------------------------------------- ldy #0 adw xdraw #mountaintable tempXROLLER lda (tempXROLLER),y @@ -951,15 +967,12 @@ PositiveVelocity ; 1 - right, 2 - left mva #$ff HowMuchToFall mva ydraw HeightRol - ;mwa #mountaintable tempXROLLER - It's already done !!! - ;adw tempXROLLER xdraw SeekLeft cpw tempXROLLER #mountaintable beq GoRightNow ; "bounce" if we have on left end .nowarn dew tempXROLLER lda (tempXROLLER),y ;fukk! beware of Y value cmp HeightRol - ;bne HowMuchToFallLeft HowMuchToFallLeft bcs GoRightNow mva #1 HowMuchToFall @@ -971,9 +984,7 @@ SeekRight inw tempXROLLER lda (tempXROLLER),y cmp HeightRol - ;bne HowMuchToFallRight HowMuchToFallRight - ; check if up or down bcs HowMuchToFallKnown lda HowMuchToFall bpl ItIsLeftAlready