Better set PM width (prepare to new Game Over screen)

This commit is contained in:
Pecusx
2022-08-02 14:40:12 +02:00
parent 91d5172fe2
commit cd41f59175
3 changed files with 74 additions and 26 deletions
+38 -25
View File
@@ -178,21 +178,8 @@ MainGameLoop
jsr RmtSongSelect jsr RmtSongSelect
jsr DisplayResults jsr DisplayResults
;check demo mode jsr DemoModeOrKey
ldx numberOfPlayers
dex
checkForHuman ; if all in skillTable other than 0 then switch to DEMO MODE
lda skillTable,x
beq peopleAreHere
dex
bpl checkForHuman
; no people, just wait a bit
pause 150
jmp noKey
peopleAreHere
jsr getkey
noKey
ldx NumberOfPlayers ldx NumberOfPlayers
dex dex
CalculateGains CalculateGains
@@ -244,8 +231,10 @@ skipzeroing
bpl CalculateGains bpl CalculateGains
lda GameIsOver lda GameIsOver
jne START beq NoGameOverYet
;jsr GameOverScreen
jmp START
NoGameOverYet
inc CurrentRoundNr inc CurrentRoundNr
lda #$0 lda #$0
sta dmactls ; issue #72 sta dmactls ; issue #72
@@ -269,9 +258,8 @@ skipzeroing
lda #song_ingame lda #song_ingame
jsr RmtSongSelect jsr RmtSongSelect
jsr SetPMWidth
lda #0 lda #0
sta sizep0 ; P0-P1 widths
sta sizep0+1
sta colpf2s ; status line "off" sta colpf2s ; status line "off"
sta colpf1s sta colpf1s
@@ -928,13 +916,7 @@ SetunPlots
; sta dmactls ; sta dmactls
lda #$03 ; P/M on lda #$03 ; P/M on
sta pmcntl sta pmcntl
lda #$00 jsr SetPMWidth
sta sizep0 ; P0-P3 widths
sta sizep0+1
sta sizep0+2
sta sizep0+3
lda #%01010101
sta sizem ; all missiles, double width
lda #%00100000 ; P/M priorities (multicolor players on) lda #%00100000 ; P/M priorities (multicolor players on)
sta gtictls sta gtictls
jsr PMoutofScreen jsr PMoutofScreen
@@ -974,6 +956,17 @@ ClearResults
rts rts
.endp .endp
;-------------------------------------------------- ;--------------------------------------------------
.proc SetPMWidth
lda #$00
sta sizep0 ; P0-P3 widths
sta sizep0+1
sta sizep0+2
sta sizep0+3
lda #%01010101
sta sizem ; all missiles, double width
rts
.endp
;--------------------------------------------------
.proc DLIinterruptGraph .proc DLIinterruptGraph
;sta dliA ;sta dliA
;sty dliY ;sty dliY
@@ -1393,6 +1386,26 @@ getkeyend
bne WaitForKeyRelease bne WaitForKeyRelease
rts rts
.endp .endp
;--------------------------------------------------
.proc DemoModeOrKey
;--------------------------------------------------
;check demo mode
ldx numberOfPlayers
dex
checkForHuman ; if all in skillTable other than 0 then switch to DEMO MODE
lda skillTable,x
beq peopleAreHere
dex
bpl checkForHuman
; no people, just wait a bit
pause 150
jmp noKey
peopleAreHere
jsr getkey
noKey
rts
.endp
;-------------------------------------------------- ;--------------------------------------------------
.proc RmtSongSelect .proc RmtSongSelect
BIN
View File
Binary file not shown.
+36 -1
View File
@@ -1832,11 +1832,46 @@ FinishResultDisplay
lda #%00111110 ; normal screen width, DL on, P/M on lda #%00111110 ; normal screen width, DL on, P/M on
sta dmactls sta dmactls
lda #%00100100 ; playfield before P/M lda #%00100100 ; playfield before P/M
sta gtictls sta gtictls
jsr SetPMWidth
jsr ColorsOfSprites jsr ColorsOfSprites
mva #0 colpf1s mva #0 colpf1s
mva #TextForegroundColor colpf2s mva #TextForegroundColor colpf2s
VDLI DLIinterruptGameOver ; jsr SetDLI for Game Over screen VDLI DLIinterruptGameOver ; jsr SetDLI for Game Over screen
; make text and color lines for each tank
; ldx NumberOfPlayers ;we start from the highest (best) tank
; dex ;and it is the last one
; stx ResultOfTankNr ;in TankSequence table
; ldy #0 ;witch line we are coloring
;FinalResultOfTheNextPlayer
; ldx ResultOfTankNr ;we are after a round, so we can use TankNr
; lda TankSequence,x ;and we keep here real number if the tank
; tax
; stx TankNr ;for which we are displaying results
; lda TankStatusColoursTable,x
; sta GameOverColoursTable,y
; ;
; iny
; dec ResultOfTankNr
; beq FinalResultOfTheNextPlayer
;MakeBlackLines
; cpy #$06
; beq AllLinesReady
; lda #0 ; black line color for rest of tanks
; sta GameOverColoursTable,y
; iny
; bne MakeBlackLines
;AllLinesReady
ldx #(MaxPlayers-1)
MakeAllTanksVisible
lda #99
sta eXistenZ,x
lda #0
sta ActiveDefenceWeapon,x
dex
bpl MakeAllTanksVisible
; start music and animations
lda #song_game_over lda #song_game_over
jsr RmtSongSelect jsr RmtSongSelect
; initial tank positions randomization ; initial tank positions randomization