mirror of
https://github.com/pkali/scorch_src.git
synced 2026-05-20 22:34:21 +02:00
Clear weapon list before redraw
Better descriptions of new procedures and fix for bug in drawmountains (C64)
This commit is contained in:
+23
-7
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
;--------------------------------------------------
|
||||
|
||||
@@ -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
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user