SoilDown optimization - 63 bytes saved
This commit is contained in:
+23
-29
@@ -1263,20 +1263,37 @@ drawmountainsloop
|
|||||||
beq NoMountain
|
beq NoMountain
|
||||||
sta ydraw
|
sta ydraw
|
||||||
sty ydraw+1
|
sty ydraw+1
|
||||||
jsr DrawLine
|
; jsr DrawLine
|
||||||
|
; there was Drawline proc
|
||||||
|
lda #screenheight
|
||||||
|
sec
|
||||||
|
sbc ydraw
|
||||||
|
sta tempbyte01
|
||||||
|
jsr plot.MakePlot
|
||||||
|
; after plot we have: (xbyte),y - addres of screen byte; X - index in bittable (number of bit)
|
||||||
|
; jmp IntoDraw ; jumps inside Draw routine
|
||||||
|
; because one pixel is already plotted (and who cares? :) )
|
||||||
|
@
|
||||||
|
lda (xbyte),y
|
||||||
|
and bittable2,x
|
||||||
|
sta (xbyte),y
|
||||||
|
;IntoDraw
|
||||||
|
adw xbyte #screenBytes
|
||||||
|
dec tempbyte01
|
||||||
|
bne @-
|
||||||
|
; end of Drawline proc
|
||||||
NoMountain
|
NoMountain
|
||||||
inw modify
|
inw modify
|
||||||
inw xdraw
|
inw xdraw
|
||||||
cpw xdraw #screenwidth
|
cpw xdraw #screenwidth
|
||||||
bne drawmountainsloop
|
bne drawmountainsloop
|
||||||
rts
|
rts
|
||||||
|
/*
|
||||||
;--------------------------------------------------
|
;--------------------------------------------------
|
||||||
drawmountainspixel
|
drawmountainspixel ; never used ?
|
||||||
;--------------------------------------------------
|
;--------------------------------------------------
|
||||||
mwa #0 xdraw
|
mwa #0 xdraw
|
||||||
mwa #mountaintable modify
|
mwa #mountaintable modify
|
||||||
|
|
||||||
|
|
||||||
drawmountainspixelloop
|
drawmountainspixelloop
|
||||||
ldy #0
|
ldy #0
|
||||||
lda (modify),y
|
lda (modify),y
|
||||||
@@ -1287,8 +1304,8 @@ drawmountainspixelloop
|
|||||||
inw xdraw
|
inw xdraw
|
||||||
cpw xdraw #screenwidth
|
cpw xdraw #screenwidth
|
||||||
bne drawmountainspixelloop
|
bne drawmountainspixelloop
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
*/
|
||||||
.endp
|
.endp
|
||||||
;--------------------------------------------------
|
;--------------------------------------------------
|
||||||
.proc SoilDown2
|
.proc SoilDown2
|
||||||
@@ -1761,31 +1778,8 @@ ClearPlot
|
|||||||
eor #$ff
|
eor #$ff
|
||||||
and bittable,x
|
and bittable,x
|
||||||
rts
|
rts
|
||||||
.endp;--------------------------------------------------
|
|
||||||
.proc DrawLine
|
|
||||||
;--------------------------------------------------
|
|
||||||
mva #0 ydraw+1
|
|
||||||
lda #screenheight
|
|
||||||
sec
|
|
||||||
sbc ydraw
|
|
||||||
sta tempbyte01
|
|
||||||
jsr plot.MakePlot
|
|
||||||
;rts
|
|
||||||
jmp IntoDraw ; jumps inside Draw routine
|
|
||||||
; because one pixel is already plotted
|
|
||||||
|
|
||||||
@
|
|
||||||
lda (xbyte),y
|
|
||||||
and bittable2,x
|
|
||||||
sta (xbyte),y
|
|
||||||
IntoDraw
|
|
||||||
adw xbyte #screenBytes
|
|
||||||
dec tempbyte01
|
|
||||||
bne @-
|
|
||||||
rts
|
|
||||||
.endp
|
.endp
|
||||||
|
;--------------------------------------------------
|
||||||
; ------------------------------------------
|
|
||||||
.proc TypeChar
|
.proc TypeChar
|
||||||
; puts char on the graphics screen
|
; puts char on the graphics screen
|
||||||
; in: CharCode
|
; in: CharCode
|
||||||
|
|||||||
+7
-7
@@ -103,7 +103,7 @@
|
|||||||
.zpvar Counter .byte ;temporary Counter for outside loops
|
.zpvar Counter .byte ;temporary Counter for outside loops
|
||||||
.zpvar ExplosionRadius .word ;because when adding in xdraw it is double byte
|
.zpvar ExplosionRadius .word ;because when adding in xdraw it is double byte
|
||||||
.zpvar ResultY .byte
|
.zpvar ResultY .byte
|
||||||
.zpvar FallDown2 .byte
|
; .zpvar FallDown2 .byte
|
||||||
.zpvar xcircle .word
|
.zpvar xcircle .word
|
||||||
.zpvar ycircle .word
|
.zpvar ycircle .word
|
||||||
.zpvar vy .word
|
.zpvar vy .word
|
||||||
@@ -643,7 +643,7 @@ ShootNow
|
|||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta FallDown1
|
sta FallDown1
|
||||||
sta FallDown2
|
; sta FallDown2
|
||||||
jsr Explosion
|
jsr Explosion
|
||||||
|
|
||||||
continueMainRoundLoopAfterSeppuku
|
continueMainRoundLoopAfterSeppuku
|
||||||
@@ -658,9 +658,9 @@ AfterExplode
|
|||||||
mva #1 Erase
|
mva #1 Erase
|
||||||
jsr drawtanks
|
jsr drawtanks
|
||||||
mva #0 Erase
|
mva #0 Erase
|
||||||
lda FallDown2
|
; lda FallDown2
|
||||||
beq NoFallDown2
|
; beq NoFallDown2
|
||||||
jsr SoilDown2
|
jsr SoilDown2 ; allways
|
||||||
|
|
||||||
NoFallDown2
|
NoFallDown2
|
||||||
;here tanks are falling down
|
;here tanks are falling down
|
||||||
@@ -812,7 +812,7 @@ NoPlayerNoDeath
|
|||||||
sta RangeRight
|
sta RangeRight
|
||||||
sta RangeRight+1
|
sta RangeRight+1
|
||||||
sta FallDown1
|
sta FallDown1
|
||||||
sta FallDown2
|
; sta FallDown2
|
||||||
mwa #screenwidth RangeLeft
|
mwa #screenwidth RangeLeft
|
||||||
|
|
||||||
; We are randomizing the weapon now.
|
; We are randomizing the weapon now.
|
||||||
@@ -920,7 +920,7 @@ NotNegativeShieldEnergy
|
|||||||
.proc Seppuku
|
.proc Seppuku
|
||||||
lda #0
|
lda #0
|
||||||
sta FallDown1
|
sta FallDown1
|
||||||
sta FallDown2
|
;sta FallDown2
|
||||||
sta ydraw+1
|
sta ydraw+1
|
||||||
; get position of the tank
|
; get position of the tank
|
||||||
ldx TankNr
|
ldx TankNr
|
||||||
|
|||||||
BIN
Binary file not shown.
+29
-28
@@ -17,6 +17,7 @@
|
|||||||
pha
|
pha
|
||||||
lda ExplosionRoutines,x
|
lda ExplosionRoutines,x
|
||||||
pha
|
pha
|
||||||
|
; inc FallDown2
|
||||||
rts
|
rts
|
||||||
ExplosionRoutines
|
ExplosionRoutines
|
||||||
.word babymissile-1 ;Baby_Missile___;_00
|
.word babymissile-1 ;Baby_Missile___;_00
|
||||||
@@ -61,7 +62,7 @@ tracer
|
|||||||
; ------------------------
|
; ------------------------
|
||||||
.proc babymissile
|
.proc babymissile
|
||||||
mva #sfx_baby_missile sfx_effect
|
mva #sfx_baby_missile sfx_effect
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #11 ExplosionRadius
|
mva #11 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jmp xmissile
|
jmp xmissile
|
||||||
@@ -69,7 +70,7 @@ tracer
|
|||||||
; ------------------------
|
; ------------------------
|
||||||
.proc missile ;
|
.proc missile ;
|
||||||
mva #sfx_baby_missile sfx_effect
|
mva #sfx_baby_missile sfx_effect
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #17 ExplosionRadius
|
mva #17 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jmp xmissile
|
jmp xmissile
|
||||||
@@ -77,7 +78,7 @@ tracer
|
|||||||
; ------------------------
|
; ------------------------
|
||||||
.proc babynuke
|
.proc babynuke
|
||||||
mva #sfx_nuke sfx_effect
|
mva #sfx_nuke sfx_effect
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #25 ExplosionRadius
|
mva #25 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jmp xmissile
|
jmp xmissile
|
||||||
@@ -85,7 +86,7 @@ tracer
|
|||||||
; ------------------------
|
; ------------------------
|
||||||
.proc nuke
|
.proc nuke
|
||||||
mva #sfx_nuke sfx_effect
|
mva #sfx_nuke sfx_effect
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #30 ExplosionRadius
|
mva #30 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jmp xmissile
|
jmp xmissile
|
||||||
@@ -93,7 +94,7 @@ tracer
|
|||||||
; ------------------------
|
; ------------------------
|
||||||
.proc leapfrog
|
.proc leapfrog
|
||||||
mva #sfx_baby_missile sfx_effect
|
mva #sfx_baby_missile sfx_effect
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #17 ExplosionRadius
|
mva #17 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jsr xmissile
|
jsr xmissile
|
||||||
@@ -163,7 +164,7 @@ EndOfLeapping
|
|||||||
.endp
|
.endp
|
||||||
; ------------------------
|
; ------------------------
|
||||||
.proc mirv ; the whole mirv is performed by Flight routine
|
.proc mirv ; the whole mirv is performed by Flight routine
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
; ------------------------
|
; ------------------------
|
||||||
@@ -171,7 +172,7 @@ EndOfLeapping
|
|||||||
mva #sfx_baby_missile sfx_effect
|
mva #sfx_baby_missile sfx_effect
|
||||||
mwa xtraj+1 xtrajfb
|
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)
|
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
|
; inc FallDown2
|
||||||
;central Explosion
|
;central Explosion
|
||||||
mva #21 ExplosionRadius
|
mva #21 ExplosionRadius
|
||||||
jsr CalculateExplosionRange0
|
jsr CalculateExplosionRange0
|
||||||
@@ -229,7 +230,7 @@ NoWallsInFunky
|
|||||||
.endp
|
.endp
|
||||||
; ------------------------
|
; ------------------------
|
||||||
.proc deathshead
|
.proc deathshead
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #30 ExplosionRadius
|
mva #30 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
|
|
||||||
@@ -285,7 +286,7 @@ NoLowerCircle
|
|||||||
; ------------------------
|
; ------------------------
|
||||||
.proc napalm
|
.proc napalm
|
||||||
mva #sfx_napalm sfx_effect
|
mva #sfx_napalm sfx_effect
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #(napalmRadius+4) ExplosionRadius ; real radius + 4 pixels (half characrer width)
|
mva #(napalmRadius+4) ExplosionRadius ; real radius + 4 pixels (half characrer width)
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
mva #0 ExplosionRadius ; in this weapon - flag: 0 - napalm, 1 - hotnapalm
|
mva #0 ExplosionRadius ; in this weapon - flag: 0 - napalm, 1 - hotnapalm
|
||||||
@@ -294,7 +295,7 @@ NoLowerCircle
|
|||||||
; ------------------------
|
; ------------------------
|
||||||
.proc hotnapalm
|
.proc hotnapalm
|
||||||
mva #sfx_napalm sfx_effect
|
mva #sfx_napalm sfx_effect
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #(napalmRadius+4) ExplosionRadius ; real radius + 4 pixels (half characrer width)
|
mva #(napalmRadius+4) ExplosionRadius ; real radius + 4 pixels (half characrer width)
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
mva #1 ExplosionRadius ; in this weapon - flag: 0 - napalm, 1 - hotnapalm
|
mva #1 ExplosionRadius ; in this weapon - flag: 0 - napalm, 1 - hotnapalm
|
||||||
@@ -359,7 +360,7 @@ CharOffTheScreen
|
|||||||
dec magic
|
dec magic
|
||||||
jpl RepeatNapalm
|
jpl RepeatNapalm
|
||||||
; after napalm
|
; after napalm
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
;now we must check tanks in range
|
;now we must check tanks in range
|
||||||
ldx NumberOfPlayers
|
ldx NumberOfPlayers
|
||||||
dex
|
dex
|
||||||
@@ -407,32 +408,32 @@ EndNurnedCheckLoop
|
|||||||
.endp
|
.endp
|
||||||
; ------------------------
|
; ------------------------
|
||||||
.proc babyroller
|
.proc babyroller
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #11 ExplosionRadius
|
mva #11 ExplosionRadius
|
||||||
jmp xroller
|
jmp xroller
|
||||||
.endp
|
.endp
|
||||||
; ------------------------
|
; ------------------------
|
||||||
.proc roller ;
|
.proc roller ;
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #21 ExplosionRadius
|
mva #21 ExplosionRadius
|
||||||
jmp xroller
|
jmp xroller
|
||||||
.endp
|
.endp
|
||||||
; ------------------------
|
; ------------------------
|
||||||
.proc heavyroller
|
.proc heavyroller
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #30 ExplosionRadius
|
mva #30 ExplosionRadius
|
||||||
jmp xroller
|
jmp xroller
|
||||||
.endp
|
.endp
|
||||||
; ------------------------
|
; ------------------------
|
||||||
.proc riotbomb
|
.proc riotbomb
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #17 ExplosionRadius
|
mva #17 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jmp xriotbomb
|
jmp xriotbomb
|
||||||
.endp
|
.endp
|
||||||
; ------------------------
|
; ------------------------
|
||||||
.proc heavyriotbomb
|
.proc heavyriotbomb
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #29 ExplosionRadius
|
mva #29 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jmp xriotbomb
|
jmp xriotbomb
|
||||||
@@ -441,7 +442,7 @@ EndNurnedCheckLoop
|
|||||||
.proc babydigger
|
.proc babydigger
|
||||||
mva #sfx_digger sfx_effect
|
mva #sfx_digger sfx_effect
|
||||||
mva #0 sandhogflag
|
mva #0 sandhogflag
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #13 DigLong
|
mva #13 DigLong
|
||||||
mva #1 diggery ; how many branches (-1)
|
mva #1 diggery ; how many branches (-1)
|
||||||
jmp xdigger
|
jmp xdigger
|
||||||
@@ -450,7 +451,7 @@ EndNurnedCheckLoop
|
|||||||
.proc digger ;
|
.proc digger ;
|
||||||
mva #sfx_digger sfx_effect
|
mva #sfx_digger sfx_effect
|
||||||
mva #0 sandhogflag
|
mva #0 sandhogflag
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #13 DigLong
|
mva #13 DigLong
|
||||||
mva #3 diggery ; how many branches (-1)
|
mva #3 diggery ; how many branches (-1)
|
||||||
jmp xdigger
|
jmp xdigger
|
||||||
@@ -459,7 +460,7 @@ EndNurnedCheckLoop
|
|||||||
.proc heavydigger
|
.proc heavydigger
|
||||||
mva #sfx_digger sfx_effect
|
mva #sfx_digger sfx_effect
|
||||||
mva #0 sandhogflag
|
mva #0 sandhogflag
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #13 DigLong
|
mva #13 DigLong
|
||||||
mva #7 diggery ; how many branches (-1)
|
mva #7 diggery ; how many branches (-1)
|
||||||
jmp xdigger
|
jmp xdigger
|
||||||
@@ -583,7 +584,7 @@ DiggerCharacter
|
|||||||
.proc babysandhog
|
.proc babysandhog
|
||||||
mva #sfx_sandhog sfx_effect
|
mva #sfx_sandhog sfx_effect
|
||||||
mva #char_sandhog_offset sandhogflag
|
mva #char_sandhog_offset sandhogflag
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #13 DigLong
|
mva #13 DigLong
|
||||||
mva #1 diggery ; how many branches (-1)
|
mva #1 diggery ; how many branches (-1)
|
||||||
jmp xdigger
|
jmp xdigger
|
||||||
@@ -592,7 +593,7 @@ DiggerCharacter
|
|||||||
.proc sandhog
|
.proc sandhog
|
||||||
mva #sfx_sandhog sfx_effect
|
mva #sfx_sandhog sfx_effect
|
||||||
mva #char_sandhog_offset sandhogflag
|
mva #char_sandhog_offset sandhogflag
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #13 DigLong
|
mva #13 DigLong
|
||||||
mva #3 diggery ; how many branches (-1)
|
mva #3 diggery ; how many branches (-1)
|
||||||
jmp xdigger
|
jmp xdigger
|
||||||
@@ -601,35 +602,35 @@ DiggerCharacter
|
|||||||
.proc heavysandhog
|
.proc heavysandhog
|
||||||
mva #sfx_sandhog sfx_effect
|
mva #sfx_sandhog sfx_effect
|
||||||
mva #char_sandhog_offset sandhogflag
|
mva #char_sandhog_offset sandhogflag
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #13 DigLong
|
mva #13 DigLong
|
||||||
mva #5 diggery ; how many branches (-1)
|
mva #5 diggery ; how many branches (-1)
|
||||||
jmp xdigger
|
jmp xdigger
|
||||||
.endp
|
.endp
|
||||||
; ------------------------
|
; ------------------------
|
||||||
.proc dirtclod
|
.proc dirtclod
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #12 ExplosionRadius
|
mva #12 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jmp xdirt
|
jmp xdirt
|
||||||
.endp
|
.endp
|
||||||
; ------------------------
|
; ------------------------
|
||||||
.proc dirtball
|
.proc dirtball
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #22 ExplosionRadius
|
mva #22 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jmp xdirt
|
jmp xdirt
|
||||||
.endp
|
.endp
|
||||||
; ------------------------
|
; ------------------------
|
||||||
.proc tonofdirt
|
.proc tonofdirt
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #31 ExplosionRadius
|
mva #31 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jmp xdirt
|
jmp xdirt
|
||||||
.endp
|
.endp
|
||||||
; ------------------------
|
; ------------------------
|
||||||
.proc dirtcharge
|
.proc dirtcharge
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #61 ExplosionRadius
|
mva #61 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jmp ofdirt
|
jmp ofdirt
|
||||||
@@ -637,7 +638,7 @@ DiggerCharacter
|
|||||||
; ------------------------
|
; ------------------------
|
||||||
.proc riotcharge
|
.proc riotcharge
|
||||||
mva #sfx_riot_blast sfx_effect
|
mva #sfx_riot_blast sfx_effect
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #31 ExplosionRadius
|
mva #31 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jmp cleanDirt
|
jmp cleanDirt
|
||||||
@@ -645,7 +646,7 @@ DiggerCharacter
|
|||||||
; ------------------------
|
; ------------------------
|
||||||
.proc riotblast
|
.proc riotblast
|
||||||
mva #sfx_riot_blast sfx_effect
|
mva #sfx_riot_blast sfx_effect
|
||||||
inc FallDown2
|
; inc FallDown2
|
||||||
mva #61 ExplosionRadius
|
mva #61 ExplosionRadius
|
||||||
jsr CalculateExplosionRange
|
jsr CalculateExplosionRange
|
||||||
jmp cleanDirt
|
jmp cleanDirt
|
||||||
|
|||||||
Reference in New Issue
Block a user