mirror of
https://github.com/pkali/scorch_src.git
synced 2026-05-21 06:39:46 +02:00
Good Game Over animation
This commit is contained in:
+10
-2
@@ -94,10 +94,18 @@ dl ; MAIN game display list
|
||||
.word dl
|
||||
;-----------------------------------------------
|
||||
GameOverDL
|
||||
.byte $70,$70,$70,$70,$70,$70,$70,$20
|
||||
.byte $70,$70,$70,$40
|
||||
.byte $4f ; 1 line
|
||||
.word display+(40*72)
|
||||
:28 .byte $0f ; 28 lines
|
||||
.byte $0f+$80
|
||||
.byte $4f ; 1 line
|
||||
.word display+(40*32)
|
||||
:31 .byte $0f ; 31 lines
|
||||
:30 .byte $0f ; 30 lines
|
||||
.byte $0f+$80 ; 1 line
|
||||
.byte $4f ; 1 line
|
||||
.word display+(40*72)
|
||||
:7 .byte $0f ; 7 lines
|
||||
.byte $70
|
||||
.byte $41
|
||||
.word GameOverDL
|
||||
|
||||
+21
@@ -994,6 +994,27 @@ ClearResults
|
||||
rti
|
||||
.endp
|
||||
;--------------------------------------------------
|
||||
.proc DLIinterruptGameOver
|
||||
;sta dliA
|
||||
;sty dliY
|
||||
pha
|
||||
lda dliCounter
|
||||
bne @+
|
||||
lda #%00100000 ; playfield after P/M
|
||||
STA WSYNC
|
||||
sta gtictl
|
||||
inc dliCounter
|
||||
pla
|
||||
rti
|
||||
@
|
||||
lda #%00100100 ; playfield before P/M
|
||||
STA WSYNC
|
||||
sta gtictl
|
||||
inc dliCounter
|
||||
pla
|
||||
rti
|
||||
.endp
|
||||
;--------------------------------------------------
|
||||
.proc DLIinterruptText
|
||||
;sta dliA
|
||||
pha
|
||||
|
||||
BIN
Binary file not shown.
+10
-19
@@ -1834,12 +1834,14 @@ FinishResultDisplay
|
||||
jsr ClearScreen
|
||||
jsr ClearPMmemory
|
||||
mwa #GameOverDL dlptrs
|
||||
lda #%00111110 ; normal screen width, DL on, P/M on
|
||||
lda #%00111110 ; normal screen width, DL on, P/M on
|
||||
sta dmactls
|
||||
lda #%00100100 ; playfield before P/M
|
||||
sta gtictls
|
||||
jsr ColorsOfSprites
|
||||
mva #0 colpf1s
|
||||
mva #TextForegroundColor colpf2s
|
||||
VDLI DLIinterruptText.DLIinterruptNone ; jsr SetDLI for text screen without DLIs
|
||||
VDLI DLIinterruptGameOver ; jsr SetDLI for Game Over screen
|
||||
; initial tank positions randomization
|
||||
ldx #(MaxPlayers-1) ;maxNumberOfPlayers-1
|
||||
@
|
||||
@@ -1855,26 +1857,15 @@ AllTanksFloatingDown
|
||||
lda Ytankstable,x
|
||||
; cmp #32 ; tank over screen - not visible
|
||||
cmp #80 ; tank under screen - new tank randomize
|
||||
bne TankOnScreen
|
||||
beq TankUnderScreen
|
||||
cmp #72 ; tank under screen but.... parachute
|
||||
bcs DrawOnlyParachute
|
||||
bcc TankOnScreen
|
||||
TankUnderScreen
|
||||
jsr RandomizeTankPos
|
||||
TankOnScreen
|
||||
jsr DrawTankNr
|
||||
; now we must clear sprites over and under our banner
|
||||
lda pmtableL,x
|
||||
sta xbyte ; sprite position in RAM
|
||||
lda pmtableH,x
|
||||
sta xbyte+1
|
||||
lda #0
|
||||
ldy #PMOffsetY ; start on top position
|
||||
@ sta (xbyte),y
|
||||
iny
|
||||
cpy #PMOffsetY+32 ; banner begin - end zeroing sprites
|
||||
bne @-
|
||||
ldy #PMOffsetY+64 ; banner end - start zeroing again
|
||||
@ sta (xbyte),y
|
||||
iny
|
||||
cpy #PMOffsetY+80 ; end of zeroing sprites
|
||||
bne @-
|
||||
DrawOnlyParachute
|
||||
jsr DrawTankParachute
|
||||
ldx TankNr
|
||||
dex
|
||||
|
||||
Reference in New Issue
Block a user