mirror of
https://github.com/Pecusx/scorch_src.git
synced 2026-05-21 14:49:40 +02:00
Better set PM width (prepare to new Game Over screen)
This commit is contained in:
+38
-25
@@ -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
Binary file not shown.
+36
-1
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user