diff --git a/Atari/gr_basics.asm b/Atari/gr_basics.asm index b4fa13f..37c5dc1 100644 --- a/Atari/gr_basics.asm +++ b/Atari/gr_basics.asm @@ -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 diff --git a/Atari/textproc.asm b/Atari/textproc.asm index 9253538..6c8c2de 100644 --- a/Atari/textproc.asm +++ b/Atari/textproc.asm @@ -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 + sta temp2+1 +Go lda #$0 +loop sta (temp2),y + iny + bne @+ + inc temp2+1 +@ cpy #ListOfDefensiveWeaponsEnd + bne loop + rts +.endp ; ----------------------------------------------------- .proc EnterPlayerNames ;entering names of players diff --git a/C64/gr_basics.asm b/C64/gr_basics.asm index 3a8ac39..42fa27f 100644 --- a/C64/gr_basics.asm +++ b/C64/gr_basics.asm @@ -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 ;-------------------------------------------------- diff --git a/grafproc.asm b/grafproc.asm index c9d0677..0cc8f70 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -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 diff --git a/scorch.bin b/scorch.bin index 1987f62..f2ed384 100644 Binary files a/scorch.bin and b/scorch.bin differ diff --git a/scorch.xex b/scorch.xex index 59ff16b..643af36 100644 Binary files a/scorch.xex and b/scorch.xex differ diff --git a/scorchC64.prg b/scorchC64.prg index 23e65d3..566f783 100644 Binary files a/scorchC64.prg and b/scorchC64.prg differ