From 09651f163a02990ae8316c11ad6a128d2f9255d3 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Thu, 25 Aug 2022 13:54:15 +0200 Subject: [PATCH] Memory optimizations --- ai.asm | 15 +++++++-------- scorch.xex | Bin 50997 -> 50987 bytes 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ai.asm b/ai.asm index f502537..8043da9 100644 --- a/ai.asm +++ b/ai.asm @@ -324,7 +324,7 @@ NoUseDefensive ; use defensives like Tosser jsr TosserDefensives ; now select best target - mva #$00 PreferHumansFlag + lda #$00 ; no prefer humans jsr FindBestTarget3 sty TargetTankNr ; aiming @@ -365,7 +365,7 @@ HighForce ; use defensives like Tosser jsr TosserDefensives ; now select best target - mva #$00 PreferHumansFlag + lda #$00 ; no prefer humans jsr FindBestTarget3 sty TargetTankNr ; aiming @@ -405,7 +405,7 @@ HighForce ; use defensives like Tosser jsr TosserDefensives ; now select best target - mva #$ff PreferHumansFlag + lda #100 ; prefer humans jsr FindBestTarget3 sty TargetTankNr ; aiming @@ -440,9 +440,11 @@ HighForce .proc FindBestTarget3 ; find target with lowest energy ; X - shooting tank number +; A - 100 - prefer humans , 0 - equality :) ; returns target tank number in Y and ; direcion of shoot in A (0 - left, >0 - right) ;---------------------------------------------- + sta PreferHumansFlag jsr MakeLowResDistances lda #202 sta temp2 ; max possible energy @@ -458,15 +460,12 @@ loop01 lda eXistenZ,y beq skipThisPlayer - bit PreferHumansFlag - bpl NoPreferHumans lda skilltable,y beq ItIsHuman - lda #100 + lda PreferHumansFlag ItIsHuman -NoPreferHumans clc - adc Energy,y ; if robotank energy=energy+100 + adc Energy,y ; if robotank energy=energy+100 (100 or 0 from PreferHumansFlag) cmp temp2 ; lowest bcs lowestIsLower sta temp2 diff --git a/scorch.xex b/scorch.xex index 2cfffa2ac3336a104b2211205285b3e6011674ce..d89d0ce2b00ac5123a124348d26a4f022a45c7a5 100644 GIT binary patch delta 10285 zcma)i31Aad{(p|%91Z0P(3TMqDZ*M^z^YsxD+RKMipXt*wlu}26-irYYq%a%=(H)r z)k-AHn<+EUV7ln;MvPRY&{U2Ath*?Eytq%e?N|7=DqLxzVG+@ zzW2)qWyWn~Mqk$R`m!B!pAQ<^PvT2VKY4ojkC#@ixOcQHy7=8j+FUENafaN{EH)_`uDQ-Lg@ zXJj1)@MsPUpeo)0G|-o-DEg`ow@?hAZ72rNAu0|HO2yHaTK@Pfa15Y$Y)m#agJlw&9n4==F%+g!qQCMZAC3js3Y!4cIbNRazRbII)Ez

E?XKtop@|(*%b9u6mBkQob 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 BTQ~p! delta 10186 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