Game/menu transitions working
- Also cleaned up key mapping - Fixed a bug in VRAM pointer calculation
This commit is contained in:
parent
5eb32268b9
commit
2927cb0c68
|
@ -25,6 +25,7 @@ renderAnimation:
|
|||
|
||||
phx ; Calculate VRAM position
|
||||
jsr vramPtr
|
||||
BREAK
|
||||
cpx #$ffff
|
||||
beq renderAnimationSkip
|
||||
stx SCRATCHL2
|
||||
|
|
|
@ -41,8 +41,12 @@ beginGameplay:
|
|||
|
||||
jsr compileTerrain
|
||||
jsr clipTerrain
|
||||
jsr renderTerrain
|
||||
|
||||
; Set up palette for terrain and players
|
||||
jsr renderInventory
|
||||
jsr renderPlayers
|
||||
|
||||
; Fade in from menu
|
||||
lda #basePalette
|
||||
sta PARAML2
|
||||
jsr paletteFade
|
||||
|
@ -191,7 +195,14 @@ gameplayLoopEndFrame:
|
|||
gameplayLoopEndFrameCont:
|
||||
lda quitRequested
|
||||
beq gameplayLoopContinue
|
||||
jmp quitGame
|
||||
|
||||
; Transition back to menu
|
||||
stz quitRequested
|
||||
lda #skyPalette
|
||||
sta PARAML2
|
||||
jsr paletteFade
|
||||
jmp titleScreen
|
||||
|
||||
gameplayLoopContinue:
|
||||
jmp gameplayLoop
|
||||
|
||||
|
|
41
input.s
41
input.s
|
@ -28,6 +28,7 @@ kbdScanTitle:
|
|||
beq kbdScanEnterTitle
|
||||
cmp #(32 + $80)
|
||||
beq kbdScanSpaceTitle
|
||||
bra kbdScanDebugPiggyback
|
||||
|
||||
kbdScanTitleDone:
|
||||
BITS16
|
||||
|
@ -80,16 +81,16 @@ kbdScanGameplay:
|
|||
beq kbdScanLeftArrow
|
||||
cmp #(21 + $80)
|
||||
beq kbdScanRightArrow
|
||||
cmp #('q' + $80)
|
||||
beq kbdScanQ
|
||||
cmp #('a' + $80)
|
||||
beq kbdScanA
|
||||
cmp #('z' + $80)
|
||||
beq kbdScanZ
|
||||
cmp #('s' + $80)
|
||||
beq kbdScanS
|
||||
cmp #('x' + $80)
|
||||
beq kbdScanX
|
||||
cmp #(11 + $80)
|
||||
beq kbdScanUpArrow
|
||||
cmp #(10 + $80)
|
||||
beq kbdScanDownArrow
|
||||
cmp #(27 + $80)
|
||||
beq kbdScanESC
|
||||
cmp #(',' + $80)
|
||||
beq kbdScanComma
|
||||
cmp #('.' + $80)
|
||||
beq kbdScanPeriod
|
||||
cmp #(' ' + $80)
|
||||
beq kbdScanSpace
|
||||
cmp #(9 + $80)
|
||||
|
@ -107,8 +108,8 @@ kbdScanDebug:
|
|||
sta KBDSTROBE
|
||||
|
||||
kbdScanDebugPiggyback:
|
||||
cmp #(27 + $80)
|
||||
beq kbdScanESC
|
||||
cmp #('`' + $80)
|
||||
beq kbdScanBackQuote
|
||||
cmp #(127 + $80)
|
||||
beq kbdScanDEL
|
||||
cmp #('=' + $80)
|
||||
|
@ -120,7 +121,7 @@ kbdScanDebugPiggyback:
|
|||
; Gameplay Key Handlers
|
||||
;
|
||||
|
||||
kbdScanRightArrow:
|
||||
kbdScanPeriod:
|
||||
BITS16
|
||||
lda mapScrollPos
|
||||
cmp #VISIBLETERRAINWIDTH-VISIBLETERRAINWINDOW
|
||||
|
@ -132,7 +133,7 @@ kbdScanRightArrow:
|
|||
sta mapScrollRequested
|
||||
rts
|
||||
|
||||
kbdScanLeftArrow:
|
||||
kbdScanComma:
|
||||
BITS16
|
||||
|
||||
lda mapScrollPos
|
||||
|
@ -144,32 +145,32 @@ kbdScanLeftArrow:
|
|||
sta mapScrollRequested
|
||||
rts
|
||||
|
||||
kbdScanQ:
|
||||
kbdScanESC:
|
||||
BITS16
|
||||
|
||||
lda #1
|
||||
sta quitRequested
|
||||
rts
|
||||
|
||||
kbdScanA:
|
||||
kbdScanLeftArrow:
|
||||
BITS16
|
||||
lda #2
|
||||
sta angleDeltaRequested
|
||||
rts
|
||||
|
||||
kbdScanZ:
|
||||
kbdScanRightArrow:
|
||||
BITS16
|
||||
lda #-2
|
||||
sta angleDeltaRequested
|
||||
rts
|
||||
|
||||
kbdScanS:
|
||||
kbdScanUpArrow:
|
||||
BITS16
|
||||
lda #1
|
||||
sta powerDeltaRequested
|
||||
rts
|
||||
|
||||
kbdScanX:
|
||||
kbdScanDownArrow:
|
||||
BITS16
|
||||
lda #-1
|
||||
sta powerDeltaRequested
|
||||
|
@ -181,7 +182,7 @@ kbdScanSpace:
|
|||
sta fireRequested
|
||||
rts
|
||||
|
||||
kbdScanESC:
|
||||
kbdScanBackQuote:
|
||||
BITS16
|
||||
lda #1
|
||||
sta breakpoint
|
||||
|
|
|
@ -26,6 +26,7 @@ titleScreen:
|
|||
|
||||
lda #%10000000 ; Set all SCBs to 320, no interrupts, palette 0
|
||||
jsr initSCBs
|
||||
stz leftScreenEdge
|
||||
|
||||
; Copy title screen art from where it was loaded in bank 6
|
||||
; This isn't fast, but doesn't need to be
|
||||
|
@ -120,6 +121,7 @@ titleScreenStillCat2:
|
|||
titleScreenKeyboard:
|
||||
; Check for selection
|
||||
jsr kbdScanTitle
|
||||
jsr kbdScanDebug
|
||||
lda menuActionRequested
|
||||
beq titleScreenMainLoopEndFrame
|
||||
|
||||
|
@ -163,6 +165,11 @@ titleScreenMainLoopEndFrame:
|
|||
jmp titleScreenMainLoop
|
||||
|
||||
titleScreenBeginGame:
|
||||
; Transition to gameplay
|
||||
stz menuActionRequested
|
||||
lda #skyPalette
|
||||
sta PARAML2
|
||||
jsr paletteFade
|
||||
jmp beginGameplay
|
||||
|
||||
titleScreenQuit:
|
||||
|
@ -171,9 +178,9 @@ titleScreenQuit:
|
|||
titleAnimationCounter:
|
||||
.word 0
|
||||
titleAnimationPos0:
|
||||
.word 130,120
|
||||
.word 114,120
|
||||
titleAnimationPos1:
|
||||
.word 208,120
|
||||
.word 192,120
|
||||
animationDelay0:
|
||||
.word CAT_DELAY/2
|
||||
animationDelay1:
|
||||
|
|
Loading…
Reference in New Issue