From 6a0c3a91e93e3f021d1bef5f82cc5db32088283f Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sun, 31 Jul 2022 22:49:34 +0200 Subject: [PATCH] AI optimisations --- ai.asm | 11 ++++++++--- constants.asm | 2 +- scorch.asm | 14 +++++++------- scorch.xex | Bin 41529 -> 41536 bytes weapons.asm | 6 +++--- 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/ai.asm b/ai.asm index 28a2cfa..dae0703 100644 --- a/ai.asm +++ b/ai.asm @@ -609,11 +609,16 @@ skipThisPlayer lda OptionsTable+2 ; selected gravity asl tay + clc lda AIForceTable,y - sta ForceTableL,x + sta RandBoundaryLow + adc #60 + sta RandBoundaryHigh lda AIForceTable+1,y - sta ForceTableH,x - jsr RandomizeForce.LimitForce + sta RandBoundaryLow+1 + adc #0 + sta RandBoundaryHigh+1 + jsr RandomizeForce lda ForceTableL,x sta Force lda ForceTableH,x diff --git a/constants.asm b/constants.asm index 1892553..6315214 100644 --- a/constants.asm +++ b/constants.asm @@ -20,7 +20,7 @@ CashOptionH GravityTable .by 10,20,25,30,40 MaxWindTable .by 5,20,40,70,99 RoundsTable .by 10,20,30,40,50 -AIForceTable .wo 400,500,650,750,850 ; starting shoot forces for different gravity +AIForceTable .wo 375,470,630,720,820 ; starting shoot forces for different gravity flyDelayTable .by 255,150,75,35,1 seppukuTable .by 255, 45,25,15,9 mountainsDeltaTableH .by 0,1,3,5,7 diff --git a/scorch.asm b/scorch.asm index 1d5309c..0d14218 100644 --- a/scorch.asm +++ b/scorch.asm @@ -744,16 +744,16 @@ ldahashzero NotNegativeEnergy sta Energy,x ;now increase the gain of the shooting tank - phx - ldx TankNr + ; phx + ldy TankNr clc - lda gainL,x + lda gainL,y adc EnergyDecrease - sta gainL,x - lda gainH,x + sta gainL,y + lda gainH,y adc #$00 - sta gainH,x - plx + sta gainH,y + ; plx rts .endp diff --git a/scorch.xex b/scorch.xex index 310e6c9f8fd52fad954d0b3bca8122b90fd94c6a..a8f2aed56f0cdddf2e3349308989ccc526ed8593 100644 GIT binary patch delta 15885 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 H7t;O*9f_!F delta 15866 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