Clear weapon list before redraw

Better descriptions of new procedures and fix for bug in drawmountains (C64)
This commit is contained in:
Pecusx
2023-06-13 10:56:52 +02:00
parent acec79fee7
commit 54c627b3b5
7 changed files with 57 additions and 17 deletions
+23 -7
View File
@@ -193,13 +193,13 @@ ClearPlot
.proc drawmountains
;--------------------------------------------------
mwa #0 xdraw
mwa #mountaintable modify
mwa #mountaintable modify ; mountaintable pointer
mva #1 color
drawmountainsloop
jsr DrawMountainLine
jsr DrawMountainLine ; draws column of mountains (one pixel wide)
inw modify
inw xdraw
inw xdraw ; naxt column
cpw xdraw #screenwidth
bne drawmountainsloop
rts
@@ -217,20 +217,20 @@ NotLower
dey
bpl @-
sta temp2
inc temp2 ; this is our minimum
inc temp2 ; this is our minimum (in one byte wide - 8 columns)
bit ClearSky
bpl NoClearSky
; Clear Sky
mwa #0 ydraw
jsr plot.MakePlot
jsr plot.MakePlot ; after plot we have: (xbyte),y - addres of screen byte
@ lda #$ff
sta (xbyte),y
adw xbyte #screenBytes
adw xbyte #screenBytes ; next line
inc ydraw
lda ydraw
cmp #screenheight
beq NoClearSky
cmp temp2
cmp temp2 ; our minimum height od sky
bne @-
NoClearSky
MinCalculated
@@ -274,6 +274,22 @@ MinCalculated
bne @-
NotFillBytes
.ELSE
bit ClearSky
bpl NoClearSky
; Clear Sky
ldy #0
lda (modify),y
sta ydraw
sty ydraw+1
sty color
clearline
jsr plot.MakePlot
dec ydraw
lda ydraw
cmp #$ff
bne clearline
mva #1 color
NoClearSky
ldy #0
lda (modify),y
cmp #screenheight
+21
View File
@@ -343,6 +343,7 @@ AfterPurchase
; in xbyte there is the address of the line that
; is being processed now
mwa #ListOfWeapons xbyte
jsr ClearLists ; fast lists clear
ldx #$00 ; index of the checked weapon
stx HowManyOnTheListOff ; amounts of weapons (shells, bullets) in both lists
stx HowManyOnTheListDef
@@ -1015,6 +1016,26 @@ NoArrowDown
sty MoreDowndl+1
rts
.endp
;--------------------------------------------------
.proc ClearLists
;--------------------------------------------------
ldy #<ListOfWeapons
lda #0
sta temp2
lda #>ListOfWeapons
sta temp2+1
Go lda #$0
loop sta (temp2),y
iny
bne @+
inc temp2+1
@ cpy #<ListOfDefensiveWeaponsEnd
bne loop
ldx temp2+1
cpx #>ListOfDefensiveWeaponsEnd
bne loop
rts
.endp
; -----------------------------------------------------
.proc EnterPlayerNames
;entering names of players
+13 -6
View File
@@ -184,6 +184,13 @@ ClearPlot
mva #1 color
drawmountainsloop
jsr DrawMountainLine
inw modify
inw xdraw
cpw xdraw #screenwidth
jne drawmountainsloop
rts
DrawMountainLine
.IF FASTER_GRAF_PROCS = 1
; calculate lower point in one screen byte
lda xdraw
@@ -200,14 +207,12 @@ NotLower
sta temp2
inc temp2 ; this is our minimum
MinCalculated
.ENDIF
ldy #0
lda (modify),y
cmp #screenheight
beq NoMountain
sta ydraw
sty ydraw+1
.IF FASTER_GRAF_PROCS = 1
; there was Drawline proc
lda #screenheight
sec
@@ -274,6 +279,12 @@ MinCalculated
bne @-
NotFillBytes
.ELSE
ldy #0
lda (modify),y
cmp #screenheight
beq NoMountain
sta ydraw
sty ydraw+1
; there was Drawline proc
drawline
jsr plot.MakePlot
@@ -284,10 +295,6 @@ drawline
; end of Drawline proc
.ENDIF
NoMountain
inw modify
inw xdraw
cpw xdraw #screenwidth
jne drawmountainsloop
rts
.endp
;--------------------------------------------------
-4
View File
@@ -1328,13 +1328,11 @@ NoClearTanks
jsr plot
.IF TARGET >= 800
.IF FASTER_GRAF_PROCS = 1
lda FastSoilDown
beq @+
jmp SoilDownTurbo.NoClearTanks
@
.ENDIF
.ENDIF
; First we look for highest pixels and fill with their coordinates
; both tables
@@ -1378,13 +1376,11 @@ FoundPeek1
; main loop starts here
MainFallout2
.IF TARGET = 800
.IF FASTER_GRAF_PROCS = 1
lda CONSOL
and #%00000001 ; START KEY
bne NoFastDown
jmp SoilDownTurbo.NoClearTanks
NoFastDown
.ENDIF
.ENDIF
mwa RangeLeft xdraw
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.