From 9201497d29d6b3d18685a244ff77fa148d2252aa Mon Sep 17 00:00:00 2001 From: Pecusx Date: Wed, 31 May 2023 14:20:28 +0200 Subject: [PATCH] Weapon lists code optimization --- Atari/textproc.asm | 26 ++++++-------------------- scorch.bin | Bin 32768 -> 32768 bytes scorch.xex | Bin 56623 -> 56606 bytes 3 files changed, 6 insertions(+), 20 deletions(-) diff --git a/Atari/textproc.asm b/Atari/textproc.asm index 79bae28..09814c9 100644 --- a/Atari/textproc.asm +++ b/Atari/textproc.asm @@ -339,28 +339,12 @@ AfterPurchase lda whichList bne PositionDefensive - -; calculate positionOnTheList from the activeWeapon (offensives) - ldx tankNr - lda activeWeapon,x - ldy #0 -@ - cmp IndexesOfWeaponsL1,y - beq ?weaponfound - iny - cpy #(last_offensive - first_offensive )+1 ; maxOffensiveWeapons - bne @- - ; not found apparently? - ; TODO: check border case (the last weapon) - ldy #0 - beq ?weaponFound ; jmp + jsr calcPosOffensive + jmp ?weaponFound PositionDefensive jsr calcPosDefensive - ?weaponFound - ; weapon index in Y - sty positionOnTheList jsr _MakeOffsetDown ; set list screen offset ; Here we have all we need @@ -914,7 +898,7 @@ DefActivationEnd cmp IndexesOfWeaponsL2,y beq ?weaponfound iny - cpy #(last_defensive - first_defensive )+1 ; maxDefensiveWeapon + cpy #number_of_defensives ; maxDefensiveWeapon bne @- ; not found apparently? ; TODO: check border case (the last weapon) @@ -927,8 +911,10 @@ DefActivationEnd rts .endp +;-------------------------------------------------- .proc calcPosOffensive ; calculate positionOnTheList from the activeWeapon (defensives) +;-------------------------------------------------- ldx tankNr lda ActiveWeapon,x beq ?noWeaponActive @@ -937,7 +923,7 @@ DefActivationEnd cmp IndexesOfWeaponsL1,y beq ?weaponfound iny - cpy #(last_offensive - first_offensive ) ; maxOffensiveWeapon + cpy #number_of_offensives ; maxOffensiveWeapon bne @- ; not found apparently? ; TODO: check border case (the last weapon) diff --git a/scorch.bin b/scorch.bin index b5193bbd6698732778cda2d1dce122b1ef31d48a..9491f304e9b512edd2e0d0d913367484ae9e0e23 100644 GIT binary patch delta 5609 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 GpZ^Ezu0^o` delta 5614 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 L_Ox;HVc-7)K|fFf diff --git a/scorch.xex b/scorch.xex index 6a1331a19650d97983e478d7fed116ea4f01bc20..45c8e66b18c77dc7561a4324da98df94aafe9ee7 100644 GIT binary patch delta 5661 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 Xnt*o(G&?Sf=6X%fweIGN*<=0%c*L*V