From d12102ad6054d17a3aa3f5cf4801eb3627bde9c3 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Tue, 28 Mar 2023 19:07:04 +0200 Subject: [PATCH] Code cleanup and optimization --- definitions.asm | 1 + scorch.asm | 30 ++++++++++-------------------- scorch.bin | Bin 32768 -> 32768 bytes scorch.xex | Bin 49297 -> 49285 bytes variables.asm | 12 ++++++------ 5 files changed, 17 insertions(+), 26 deletions(-) diff --git a/definitions.asm b/definitions.asm index 3bc3872..140f45a 100644 --- a/definitions.asm +++ b/definitions.asm @@ -145,6 +145,7 @@ last_defensive_____ = ind_Spy_Hard_______ last_real_defensive = ind_Bouncy_Castle__ number_of_offensives = last_offensive_____ - first_offensive____+1 number_of_defensives = (last_defensive_____ - first_defensive____+1) +number_of_weapons = number_of_offensives + number_of_defensives ;-------------------------------- ; names of RMT instruments (sfx) ;-------------------------------- diff --git a/scorch.asm b/scorch.asm index 8ab60be..919ca90 100644 --- a/scorch.asm +++ b/scorch.asm @@ -1152,13 +1152,13 @@ B0 DEY ;-------------------------------------------------- .proc WeaponCleanup; ; cleaning of the weapon possesion tables -; 99 of Baby Missles(index==0), all other weapons=0) +; 99 of Baby Missles and White Flags, all other weapons=0) ;-------------------------------------------------- - ldx #$3f ; TODO: maxweapons + ldx #(number_of_weapons - 1) @ lda #$0 cpx #ind_White_Flag_____ ; White Flag bne @+ - lda #99 + lda #99 @ sta TanksWeapon1,x sta TanksWeapon2,x sta TanksWeapon3,x @@ -1166,7 +1166,7 @@ B0 DEY sta TanksWeapon5,x sta TanksWeapon6,x dex - beq setBmissile + beq setBmissile ; Baby Missile (index=0) bpl @-1 rts setBmissile @@ -1261,7 +1261,7 @@ MakeTanksVisible rts .endp ;---------------------------------------------- -.proc RandomizeSequence0 +/* .proc RandomizeSequence0 ldx #0 @ txa sta TankSequence,x @@ -1269,7 +1269,7 @@ MakeTanksVisible cpx #MaxPlayers bne @- rts -.endp +.endp */ ;-------------------------------------------------- .proc RandomizeSequence ; in: NumberOfPlayers @@ -1326,20 +1326,10 @@ UsageLoop ; X is not changed ;---------------------------------------------- - ;valid angle values are ((256-90)..255) and (0..90) - ;it means that values 91..165 must be elliminated... - ;so, lets randomize someting between 0 and 180 - ;and substract this value from 90 + ; lets randomize someting between 0 and 180 lda RANDOM - cmp #180 bcs RandomizeAngle - - - ;sta temp - ;lda #90 ; CARRY=0 here - ;sbc temp - rts .endp ;---------------------------------------------- @@ -1437,10 +1427,10 @@ BarrelPositionIsFine ; I think I will go for a stupid bubble sort... ; it is easy to test :) ; -; Results are in ResultsTable, in SortedTable we want to +; Results are in ResultsTable, in TankSequence (Sorted Table) we want to ; have numbers of tanks from the worst to the best. ; in other words, if ResultsTable=(5,4,65,23,3,6) -; the SortedTable=(4,1,0,5,3,2) +; the TankSequence=(4,1,0,5,3,2) ; let's assume initially the TankSequence=(0,1,2,3,4,5) ldx #0 @@ -1533,7 +1523,7 @@ SetRandomWalls .endp ;-------------------------------------------------- .proc GetKey ; waits for pressing a key and returns pressed value in A -; when [ESC] is pressed, escFlag is set to 1 +; when [ESC] is pressed, escFlag is set ;-------------------------------------------------- jsr WaitForKeyRelease @ diff --git a/scorch.bin b/scorch.bin index 2d21de0b2b72e46e625e2127caf2b6582b55024b..c3889da1cd3c56a72b1782f42494478f9c213bdd 100644 GIT binary patch delta 7615 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 W{Y=mLBy$w>SR6HC$G!EQ%>MzgJL9+j delta 7475 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 delta 7493 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 qPk1@~K`