diff --git a/constants.asm b/constants.asm index fb4fbb1..b45672f 100644 --- a/constants.asm +++ b/constants.asm @@ -5,11 +5,14 @@ ;=================================================================================== ;==========================CONSTANT TABLES, do not erase!=========================== ;=================================================================================== -TankColoursTable .BYTE $5a,$dc,$88,$26,$a8,$02 +TankColoursTable .BYTE $88,$cc,$38,$1c,$6a,$02 +TankStatusColoursTable .BYTE $82,$c2,$32,$12,$62,$02 dliColorsBack - :10 .by $04,$02 + :10 .by $02,$00 dliColorsFore - .by $0e + .by $0a +TextBackgroundColor = $02 ; REAL constans - use: LDA #TextBackgroundColor +TextForegroundColor = $0c CashOptionL ;(one zero less than on the screen) .by 0,<200,<500,<800,<1000 CashOptionH diff --git a/grafproc.asm b/grafproc.asm index d0bfb38..85bce0f 100755 --- a/grafproc.asm +++ b/grafproc.asm @@ -1175,7 +1175,7 @@ DrawLine .proc sec sbc ydraw sta tempbyte01 - jsr plot + jsr plot.MakePlot ;rts jmp IntoDraw ; jumps inside Draw routine ; because one pixel is already plotted @@ -1261,29 +1261,21 @@ CopyMask ldx ybit beq MaskOK00 MakeMask00 - clc ; INVERSE - ror mask1 + lsr mask1 ; INVERSE ror mask2 - clc ; INVERSE - ror mask1+1 + lsr mask1+1 ; INVERSE ror mask2+1 - clc ; INVERSE - ror mask1+2 + lsr mask1+2 ; INVERSE ror mask2+2 - clc ; INVERSE - ror mask1+3 + lsr mask1+3 ; INVERSE ror mask2+3 - clc ; INVERSE - ror mask1+4 + lsr mask1+4 ; INVERSE ror mask2+4 - clc ; INVERSE - ror mask1+5 + lsr mask1+5 ; INVERSE ror mask2+5 - clc ; INVERSE - ror mask1+6 + lsr mask1+6 ; INVERSE ror mask2+6 - clc ; INVERSE - ror mask1+7 + lsr mask1+7 ; INVERSE ror mask2+7 sec ; INVERSE ror char1 diff --git a/scorch.asm b/scorch.asm index eb25c8b..af8dcfd 100644 --- a/scorch.asm +++ b/scorch.asm @@ -3,7 +3,7 @@ ;--------------------------------------------------- ;by Tomasz 'pecus' Pecko and Pawel 'pirx' Kalinowski ;Warsaw 2000,2001,2002,2003,2009,2012,2013 -;Miami 2022 +;Miami&Warsaw 2022 ;you can contact us at pecus@poczta.fm or pirx@5oft.pl ;home page of this project is https://github.com/pkali/scorch_src @@ -151,10 +151,12 @@ START ; for the round #1 shooting sequence is random MainGameLoop - VDLI DLIinterrupt ; jsr SetDLI + VDLI DLIinterruptText ; jsr SetDLI for text (purchase) screen jsr CallPurchaseForEveryTank + VDLI DLIinterruptGraph ; jsr SetDLI for graphics (game) screen + mwa #dl dlptrs lda dmactls and #$fc @@ -395,7 +397,7 @@ DoNotFinishTheRound mva #1 color ;to display flying point - lda TankColoursTable,x + lda TankStatusColoursTable,x sta colpf2s ; set color of status line lda SkillTable,x @@ -784,8 +786,8 @@ deletePtr = temp jsr WeaponCleanup - mva #$2 colpf2s - mva #12 colpf3s + mva #TextBackgroundColor colpf2s + mva #TextForegroundColor colpf3s mva #>WeaponFont chbas ;parameter for old plot (unPlot) max 5 points @@ -819,16 +821,16 @@ SetunPlots lda #$10 ; P/M priorities (bit 4 joins missiles) sta gtictls jsr PMoutofScreen - lda #$50 ; temporary colours of sprites under tanks + lda TankColoursTable ; temporary colours of sprites under tanks sta $2c0 - lda #$30 + lda TankColoursTable+1 sta $2c1 - lda #$70 + lda TankColoursTable+2 sta $2c2 - lda #$90 + lda TankColoursTable+3 sta $2c3 - LDA #$B0 - STA COLPF3S + LDA TankColoursTable+4 + STA COLPF3S ; WHAT THE FUCK ???? !!!! ???? mva #0 hscrol @@ -867,7 +869,7 @@ ClearResults rts .endp -DLIinterrupt .proc +DLIinterruptGraph .proc pha phy ldy dliCounter @@ -889,6 +891,15 @@ DLIinterrupt .proc rti .endp +DLIinterruptText .proc + pha + sta WSYNC + mva #TextBackgroundColor colpf2 + mva #TextForegroundColor colpf3 + pla + rti +.endp + VBLinterrupt .proc pha phx diff --git a/scorch.xex b/scorch.xex index b07755f..02a6f97 100644 Binary files a/scorch.xex and b/scorch.xex differ diff --git a/textproc.asm b/textproc.asm index 31f5aa9..f70562a 100755 --- a/textproc.asm +++ b/textproc.asm @@ -228,7 +228,7 @@ AfterManualPurchase jsr PMoutofScreen ldx tankNr - lda TankColoursTable,x + lda TankStatusColoursTable,x sta colpf2s ; we are clearing list of the weapons diff --git a/weapons.asm b/weapons.asm index 2225850..885927b 100755 --- a/weapons.asm +++ b/weapons.asm @@ -949,11 +949,13 @@ FillHole adw xdraw #mountaintable tempXROLLER lda (tempXROLLER),y sta ydraw + beq ToHighFill ; if we filled all playfield (very rare but possible) dec ydraw ; one pixel up +ToHighFill lda ydraw sta (tempXROLLER),y ;mountaintable update mva #1 color - jsr plot + jsr plot.MakePlot .nowarn dew FillCounter cpw FillCounter #0 jne RepeatFill @@ -1151,6 +1153,7 @@ NotThrough90DegreesRight jmp BeforeFire pressedTAB + mva #sfx_purchase sfx_effect ldx TankNr inc ActiveWeapon,x lda ActiveWeapon,x