Added victory sequence

This commit is contained in:
blondie7575 2024-02-01 09:53:38 -07:00
parent b10eaa850f
commit f532287345
15 changed files with 65 additions and 8 deletions

BIN
Art/040Pee.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

BIN
Art/040Pee.xcf Normal file

Binary file not shown.

BIN
Art/041Pee.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 B

BIN
Art/041Pee.xcf Normal file

Binary file not shown.

BIN
Art/042Pee.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

BIN
Art/042Pee.xcf Normal file

Binary file not shown.

BIN
Art/043Pee.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

BIN
Art/043Pee.xcf Normal file

Binary file not shown.

BIN
Art/044Pee.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

BIN
Art/044Pee.xcf Normal file

Binary file not shown.

Binary file not shown.

View File

@ -154,6 +154,16 @@ renderAnimationLoop:
jsr delayMedium
; On last frame, freeze if needed
lda renderAnimationFreezeFrame
beq renderAnimationContinue
inx
cpx PARAML0
beq renderAnimationDone
dex
renderAnimationContinue:
; Restore background
phx
ldy SCRATCHL2
@ -168,12 +178,36 @@ renderAnimationLoop:
bne renderAnimationLoop
renderAnimationDone:
stz renderAnimationFreezeFrame
rts
renderAnimationSkip:
plx
bra renderAnimationDone
renderAnimationFreezeFrame:
.word 0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; renderAnimationFreeze
;
; Plays an entire animation statelessly, and freezes on the last frame
;
; Y = Base sprite index
; X = Number of frames
; A = Animation size (use constants above)
; PARAML0 = Pointer to X,Y (16 bits each, Y is bottom relative)
;
; Trashes A,X,Y,PARAML0,PARAML1,PARAML2,SCRATCHL2
;
renderAnimationFreeze:
pha
lda #1
sta renderAnimationFreezeFrame
pla
jmp renderAnimation
; Jump tables for various animation sizes
protectionRoutines:

View File

@ -33,6 +33,7 @@ beginGameplay:
; Generate, compile, and clip terrain
stz mapScrollPos
stz leftScreenEdge
stz mapScrollRequested
lda #160-GAMEOBJECTWIDTH/4-2
sta rightScreenEdge
jsr generateTerrain
@ -331,7 +332,7 @@ endTurnWrap:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; endGame
;
; Handles someone winning
; Handles someone winning. Assumes "someone" is current player
;
endGame:
SAVE_AXY
@ -351,6 +352,25 @@ endGameRender:
lda #2
jsl renderStringFar
; Play pee animation under loser (non-current player)
lda currentPlayer
eor #1
tay
PLAYERPTR_Y
lda playerData+GO_POSX,y
sta endGamePeePos
lda playerData+GO_POSY,y
dec
dec
sta endGamePeePos+2
lda #endGamePeePos
sta PARAML0
ldy #40
ldx #5
lda #ANIMATION_SIZE_16x16
jsr renderAnimationFreeze
; Wait for keypress
jsr kbdWaitForAnyKey
lda #1
sta quitRequested
@ -358,6 +378,8 @@ endGameRender:
RESTORE_AXY
rts
endGamePeePos:
.word 0,0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; scrollMap

View File

@ -134,7 +134,6 @@ playerCreateInit:
sta playerData+PD_TREATS,y
lda #0
sta playerData+PD_ANGER,y
lda #0
sta playerData+PD_CURRWEAPON,y
lda #1
sta playersDirty

View File

@ -2,17 +2,18 @@
DrawSpriteBank :
ASL ; A=Sprite Number ($0000-$0027)
ASL ; A=Sprite Number ($0000-$002C)
TAX ; Y=Target Screen Address ($2000-$9D00)
LDA SpriteBankNum,X ; Relative Sprite Number Table
JMP (SpriteBankBank,X) ; Bank Number Table
SpriteBankNum :
.dbyt $0C00,$0B00,$2000,$1800,$1A00,$1F00,$2600,$2400
.dbyt $1D00,$1E00,$2300,$2700,$1100,$1500,$1600,$2500
.dbyt $2200,$2100,$1C00,$1B00,$0D00,$1200,$0600,$0000
.dbyt $0300,$0400,$1000,$1300,$0E00,$0900,$0800,$0700
.dbyt $0200,$0100,$0500,$0F00,$1400,$0A00,$1900,$1700
.dbyt $0D00,$0900,$2000,$1800,$1A00,$1F00,$2600,$2400
.dbyt $1D00,$1E00,$2300,$2C00,$1100,$1500,$1600,$2500
.dbyt $2200,$2100,$1C00,$1B00,$0E00,$1200,$0600,$0000
.dbyt $0300,$0400,$1000,$1300,$0C00,$0B00,$0A00,$0700
.dbyt $0100,$0200,$0500,$0F00,$1400,$0800,$1900,$1700
.dbyt $2B00,$2A00,$2900,$2800,$2700
SpriteBankBank :
.addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00
@ -20,6 +21,7 @@ SpriteBankBank :
.addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00
.addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00
.addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00
.addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00
SpriteBankBank00 :
JSL $AA0000