Display dynamic->static optimizations

This commit is contained in:
Pecusx
2022-09-16 17:54:56 +02:00
parent 2a83fa962d
commit 9c5c701ca1
5 changed files with 36 additions and 52 deletions
+3 -10
View File
@@ -28,23 +28,16 @@ OptionsHere
OptionsScreenEnd
;-----------------------------------------------
NameScreen
dta d" Enter names of players "
NameScreen2
dta d" Tank 01 Name:"
NameAdr
dta d" "
dta d" Human/Atari (difficulty level) "
dta d" "
NameScreen4
dta d" "
NamesOfLevels
dta d" HUMAN Moron Shooter "
dta d" Poolshark Tosser Chooser "
dta d" Spoiler Cyborg Unknown "
dta d" "
dta d"Tab"*
dta d" - Player/Difficulty level "
dta d" "
dta d"Return"*
dta d" - Proceed "
;---------------------------------------------------
textbuffer
; 0123456789012345678901234567890123456789
+30 -5
View File
@@ -9,9 +9,23 @@
OptionsScreen
dta d"Welcome to Scorch v. "
build ; 4 bytes from scorch.asm (fancy method) :)
dta d" (un)2000-2022"
dta d" (un)2000-2022"
dta d" Please select option with cursor keys "
dta d" and press (Return) to proceed "
; 0123456789012345678901234567890123456789
;-----------------------------------------------
NameScreen
dta d" Enter names of players "
NameScreen3
dta d" Human/Atari (difficulty level) "
NameScreen5
dta d" "
dta d"Tab"*
dta d" - Player/Difficulty level "
dta d" "
dta d"Return"*
dta d" - Proceed "
;-----------------------------------------------
MoreUp
dta d" "
dta 92,92,92
@@ -132,12 +146,23 @@ NameDL
.byte $70
.byte $47
.word DifficultyTitle
.byte $70,$70
.byte $70,$70 ; 16 empty lines
.byte $42
.word NameScreen
.byte $30
.byte $02,$30+$80,$02
.byte $10,$02,$02,$02,$30,$02,$02
.byte $30 ; 4 empty lines
.byte $42
.word NameScreen2
.byte $30+$80 ; 4 empty lines + DLI
.byte $42
.word NameScreen3
.byte $10 ; 2 empty lines
.byte $42
.word NameScreen4
.byte $02,$02
.byte $30 ; 4 empty lines
.byte $42
.word NameScreen5
.byte $02
.byte $41
.word NameDL
; -------------------------------------------------
+2 -7
View File
@@ -77,7 +77,6 @@
.zpvar Counter .byte ;temporary Counter for outside loops
.zpvar ExplosionRadius .word ;because when adding in xdraw it is double byte
.zpvar ResultY .byte
; .zpvar FallDown2 .byte
.zpvar xcircle .word
.zpvar ycircle .word
.zpvar vy .word
@@ -620,8 +619,6 @@ ShootNow
lda HitFlag ;0 if missed
beq missed
lda #0
; sta FallDown2
jsr Explosion
continueMainRoundLoopAfterSeppuku
@@ -647,8 +644,8 @@ NoExistNoFall
dex
bpl TanksFallDown
mvx tempor2 TankNr
missed
missed
; TODO: IS IT OK??? possibly a fix here needed for #56
ldy WeaponDepleted
bne @+
@@ -782,7 +779,6 @@ NoPlayerNoDeath
;cleanup of the soil fall down ranges (left and right)
sta RangeRight
sta RangeRight+1
; sta FallDown2
mwa #screenwidth RangeLeft
; We are randomizing the weapon now.
@@ -889,11 +885,10 @@ NotNegativeShieldEnergy
;---------------------------------
.proc Seppuku
lda #0
;sta FallDown2
sta ydraw+1
; get position of the tank
ldx TankNr
lda #0 ; turn off defense weapons when hara-kiring
; lda #0 ; turn off defense weapons when hara-kiring
sta ActiveDefenceWeapon,x
sta ShieldEnergy,x
jsr SetupXYdraw
BIN
View File
Binary file not shown.
+1 -30
View File
@@ -17,7 +17,6 @@
pha
lda ExplosionRoutines,x
pha
; inc FallDown2
rts
ExplosionRoutines
.word babymissile-1 ;Baby_Missile___;_00
@@ -62,35 +61,30 @@ tracer
; ------------------------
.proc babymissile
mva #sfx_baby_missile sfx_effect
; inc FallDown2
mva #11 ExplosionRadius
jmp xmissile
.endp
; ------------------------
.proc missile ;
mva #sfx_baby_missile sfx_effect
; inc FallDown2
mva #17 ExplosionRadius
jmp xmissile
.endp
; ------------------------
.proc babynuke
mva #sfx_nuke sfx_effect
; inc FallDown2
mva #25 ExplosionRadius
jmp xmissile
.endp
; ------------------------
.proc nuke
mva #sfx_nuke sfx_effect
; inc FallDown2
mva #30 ExplosionRadius
jmp xmissile
.endp
; ------------------------
.proc leapfrog
mva #sfx_baby_missile sfx_effect
; inc FallDown2
mva #17 ExplosionRadius
jsr xmissile
@@ -143,7 +137,6 @@ EndOfLeapping
.endp
; ------------------------
.proc mirv ; the whole mirv is performed by Flight routine
; inc FallDown2
rts
.endp
; ------------------------
@@ -151,7 +144,6 @@ EndOfLeapping
mva #sfx_baby_missile sfx_effect
mwa xtraj+1 xtrajfb
sbw ytraj+1 #$05 ytrajfb ; funky missiles start point goes 5 pixel UP to prevent multiple explosion at one point if tank is hit (4 pixels tank height + 1)
; inc FallDown2
;central Explosion
mva #21 ExplosionRadius
jsr CalculateExplosionRange0
@@ -198,7 +190,6 @@ NoWallsInFunky
.endp
; ------------------------
.proc deathshead
; inc FallDown2
mva #30 ExplosionRadius
mva #sfx_nuke sfx_effect
SaveDrawXY
@@ -250,7 +241,6 @@ NoLowerCircle
; ------------------------
.proc napalm
mva #sfx_napalm sfx_effect
; inc FallDown2
mva #(napalmRadius+4) ExplosionRadius ; real radius + 4 pixels (half characrer width)
jsr CalculateExplosionRange
mva #0 ExplosionRadius ; in this weapon - flag: 0 - napalm, 1 - hotnapalm
@@ -259,7 +249,6 @@ NoLowerCircle
; ------------------------
.proc hotnapalm
mva #sfx_napalm sfx_effect
; inc FallDown2
mva #(napalmRadius+4) ExplosionRadius ; real radius + 4 pixels (half characrer width)
jsr CalculateExplosionRange
mva #1 ExplosionRadius ; in this weapon - flag: 0 - napalm, 1 - hotnapalm
@@ -324,7 +313,6 @@ CharOffTheScreen
dec magic
jpl RepeatNapalm
; after napalm
; inc FallDown2
;now we must check tanks in range
ldx NumberOfPlayers
dex
@@ -372,32 +360,27 @@ EndNurnedCheckLoop
.endp
; ------------------------
.proc babyroller
; inc FallDown2
mva #11 ExplosionRadius
jmp xroller
.endp
; ------------------------
.proc roller ;
; inc FallDown2
mva #21 ExplosionRadius
jmp xroller
.endp
; ------------------------
.proc heavyroller
; inc FallDown2
mva #30 ExplosionRadius
jmp xroller
.endp
; ------------------------
.proc riotbomb
; inc FallDown2
mva #17 ExplosionRadius
jsr CalculateExplosionRange
jmp xriotbomb
.endp
; ------------------------
.proc heavyriotbomb
; inc FallDown2
mva #29 ExplosionRadius
jsr CalculateExplosionRange
jmp xriotbomb
@@ -406,7 +389,6 @@ EndNurnedCheckLoop
.proc babydigger
mva #sfx_digger sfx_effect
mva #0 sandhogflag
; inc FallDown2
mva #13 DigLong
mva #1 diggery ; how many branches (-1)
jmp xdigger
@@ -415,7 +397,6 @@ EndNurnedCheckLoop
.proc digger ;
mva #sfx_digger sfx_effect
mva #0 sandhogflag
; inc FallDown2
mva #13 DigLong
mva #3 diggery ; how many branches (-1)
jmp xdigger
@@ -424,7 +405,6 @@ EndNurnedCheckLoop
.proc heavydigger
mva #sfx_digger sfx_effect
mva #0 sandhogflag
; inc FallDown2
mva #13 DigLong
mva #7 diggery ; how many branches (-1)
jmp xdigger
@@ -548,7 +528,6 @@ DiggerCharacter
.proc babysandhog
mva #sfx_sandhog sfx_effect
mva #char_sandhog_offset sandhogflag
; inc FallDown2
mva #13 DigLong
mva #1 diggery ; how many branches (-1)
jmp xdigger
@@ -557,7 +536,6 @@ DiggerCharacter
.proc sandhog
mva #sfx_sandhog sfx_effect
mva #char_sandhog_offset sandhogflag
; inc FallDown2
mva #13 DigLong
mva #3 diggery ; how many branches (-1)
jmp xdigger
@@ -566,35 +544,30 @@ DiggerCharacter
.proc heavysandhog
mva #sfx_sandhog sfx_effect
mva #char_sandhog_offset sandhogflag
; inc FallDown2
mva #13 DigLong
mva #5 diggery ; how many branches (-1)
jmp xdigger
.endp
; ------------------------
.proc dirtclod
; inc FallDown2
mva #12 ExplosionRadius
jsr CalculateExplosionRange
jmp xdirt
.endp
; ------------------------
.proc dirtball
; inc FallDown2
mva #22 ExplosionRadius
jsr CalculateExplosionRange
jmp xdirt
.endp
; ------------------------
.proc tonofdirt
; inc FallDown2
mva #31 ExplosionRadius
jsr CalculateExplosionRange
jmp xdirt
.endp
; ------------------------
.proc dirtcharge
; inc FallDown2
mva #61 ExplosionRadius
jsr CalculateExplosionRange
jmp ofdirt
@@ -602,7 +575,6 @@ DiggerCharacter
; ------------------------
.proc riotcharge
mva #sfx_riot_blast sfx_effect
; inc FallDown2
mva #31 ExplosionRadius
jsr CalculateExplosionRange
jmp cleanDirt
@@ -610,7 +582,6 @@ DiggerCharacter
; ------------------------
.proc riotblast
mva #sfx_riot_blast sfx_effect
; inc FallDown2
mva #61 ExplosionRadius
jsr CalculateExplosionRange
jmp cleanDirt
@@ -1893,7 +1864,7 @@ MagDeflector
bit random ; left or right deflection ?
bpl RightDeflection
LeftDeflection
sbw XHit #18 ; 18 pixels to right and explode...
sbw XHit #18 ; 18 pixels to left and explode...
bit XHit+1 ; if off-screen ...
bpl EndOfMagDeflector ; hit of course but we need RTS
adw XHit #36 ; change to right :)