Inventory selection
This commit is contained in:
parent
23c7c3b2d4
commit
3144b7c9fb
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 127 B |
BIN
SpriteBank00.bin
BIN
SpriteBank00.bin
Binary file not shown.
|
@ -63,8 +63,6 @@ beginGameplay:
|
||||||
jsr clipTerrain
|
jsr clipTerrain
|
||||||
jsl renderTerrainSpans
|
jsl renderTerrainSpans
|
||||||
|
|
||||||
jsr renderInventory
|
|
||||||
|
|
||||||
gameplayLoop:
|
gameplayLoop:
|
||||||
jsr syncVBL
|
jsr syncVBL
|
||||||
BORDER_COLOR #$0
|
BORDER_COLOR #$0
|
||||||
|
@ -145,9 +143,10 @@ gameplayLoopProjectiles:
|
||||||
gameplayLoopProjectilesSkip:
|
gameplayLoopProjectilesSkip:
|
||||||
jsr updateProjectileCollisions
|
jsr updateProjectileCollisions
|
||||||
|
|
||||||
; lda turnRequested
|
lda inventoryDirty
|
||||||
; beq gameplayLoopVictoryCondition
|
beq gameplayLoopVictoryCondition
|
||||||
; jsr endTurn
|
stz inventoryDirty
|
||||||
|
jsr renderInventory
|
||||||
|
|
||||||
gameplayLoopVictoryCondition:
|
gameplayLoopVictoryCondition:
|
||||||
lda gameOver
|
lda gameOver
|
||||||
|
@ -357,6 +356,8 @@ terrainDirty:
|
||||||
.word 1
|
.word 1
|
||||||
projectilesDirty:
|
projectilesDirty:
|
||||||
.word 1
|
.word 1
|
||||||
|
inventoryDirty:
|
||||||
|
.word 1
|
||||||
activePlayer:
|
activePlayer:
|
||||||
.word 0
|
.word 0
|
||||||
currentPlayer:
|
currentPlayer:
|
||||||
|
|
BIN
gscats.2mg
BIN
gscats.2mg
Binary file not shown.
18
input.s
18
input.s
|
@ -38,6 +38,8 @@ kbdScan:
|
||||||
beq kbdScanESC
|
beq kbdScanESC
|
||||||
cmp #(127 + $80)
|
cmp #(127 + $80)
|
||||||
beq kbdScanDEL
|
beq kbdScanDEL
|
||||||
|
cmp #(9 + $80)
|
||||||
|
beq kbdScanTab
|
||||||
|
|
||||||
kbdScanDone:
|
kbdScanDone:
|
||||||
BITS16
|
BITS16
|
||||||
|
@ -113,6 +115,22 @@ kbdScanDEL:
|
||||||
sta paused
|
sta paused
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
kbdScanTab:
|
||||||
|
BITS16
|
||||||
|
ldy currentPlayer
|
||||||
|
PLAYERPTR_Y
|
||||||
|
lda playerData+PD_CURRWEAPON,y
|
||||||
|
inc
|
||||||
|
cmp #INVENTORY_ITEMS
|
||||||
|
bne kbdScanTab_store
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
kbdScanTab_store:
|
||||||
|
sta playerData+PD_CURRWEAPON,y
|
||||||
|
inc inventoryDirty
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
breakpoint:
|
breakpoint:
|
||||||
.word 0
|
.word 0
|
||||||
|
|
||||||
|
|
20
inventory.s
20
inventory.s
|
@ -81,6 +81,20 @@ renderInventoryItem:
|
||||||
clc
|
clc
|
||||||
jsr DrawSpriteBank
|
jsr DrawSpriteBank
|
||||||
|
|
||||||
|
; Render selection
|
||||||
|
ldy currentPlayer
|
||||||
|
PLAYERPTR_Y
|
||||||
|
lda playerData+PD_CURRWEAPON,y
|
||||||
|
cmp renderInventoryItemIndex
|
||||||
|
bne renderInventoryItem_unselected
|
||||||
|
|
||||||
|
ply
|
||||||
|
phy
|
||||||
|
lda #8
|
||||||
|
clc
|
||||||
|
jsr DrawSpriteBank
|
||||||
|
|
||||||
|
renderInventoryItem_unselected:
|
||||||
lda renderInventoryItemIndex
|
lda renderInventoryItemIndex
|
||||||
beq renderInventoryItem_abort ; First item shows no counter
|
beq renderInventoryItem_abort ; First item shows no counter
|
||||||
|
|
||||||
|
@ -94,10 +108,10 @@ renderInventoryItem:
|
||||||
jsr DrawSpriteBank
|
jsr DrawSpriteBank
|
||||||
|
|
||||||
; Render counter
|
; Render counter
|
||||||
ldy renderInventoryItemIndex
|
lda renderInventoryItemIndex
|
||||||
|
asl
|
||||||
|
tay
|
||||||
lda (PARAML1),y
|
lda (PARAML1),y
|
||||||
xba
|
|
||||||
and #$00ff
|
|
||||||
sta PARAML0
|
sta PARAML0
|
||||||
jsr intToString
|
jsr intToString
|
||||||
|
|
||||||
|
|
7
player.s
7
player.s
|
@ -21,8 +21,9 @@ playerData:
|
||||||
.byte 8,"SPROCKET " ; Name
|
.byte 8,"SPROCKET " ; Name
|
||||||
.word 1 ; Base Sprite
|
.word 1 ; Base Sprite
|
||||||
.word 0,5,0,0,0,0,0,0 ; Inventory
|
.word 0,5,0,0,0,0,0,0 ; Inventory
|
||||||
|
.word 0 ; Current weapon
|
||||||
|
|
||||||
.repeat 90
|
.repeat 88
|
||||||
.byte 0 ; Padding to 256-byte boundary
|
.byte 0 ; Padding to 256-byte boundary
|
||||||
.endrepeat
|
.endrepeat
|
||||||
|
|
||||||
|
@ -40,8 +41,9 @@ playerData:
|
||||||
.byte 8,"TINKER " ; Name
|
.byte 8,"TINKER " ; Name
|
||||||
.word 0 ; Base Sprite
|
.word 0 ; Base Sprite
|
||||||
.word 0,5,0,0,0,0,0,0 ; Inventory
|
.word 0,5,0,0,0,0,0,0 ; Inventory
|
||||||
|
.word 0 ; Current weapon
|
||||||
|
|
||||||
.repeat 90
|
.repeat 88
|
||||||
.byte 0 ; Padding to 256-byte boundary
|
.byte 0 ; Padding to 256-byte boundary
|
||||||
.endrepeat
|
.endrepeat
|
||||||
|
|
||||||
|
@ -51,6 +53,7 @@ PD_ANGER = 136
|
||||||
PD_NAME = 138
|
PD_NAME = 138
|
||||||
PD_BASESPRITE = 148
|
PD_BASESPRITE = 148
|
||||||
PD_INVENTORY = 150
|
PD_INVENTORY = 150
|
||||||
|
PD_CURRWEAPON = 166
|
||||||
PD_SIZE = 256
|
PD_SIZE = 256
|
||||||
|
|
||||||
.macro PLAYERPTR_Y
|
.macro PLAYERPTR_Y
|
||||||
|
|
|
@ -2,16 +2,18 @@
|
||||||
|
|
||||||
|
|
||||||
DrawSpriteBank :
|
DrawSpriteBank :
|
||||||
ASL ; A=Sprite Number ($0000-$0007)
|
ASL ; A=Sprite Number ($0000-$0008)
|
||||||
TAX ; Y=Target Screen Address ($2000-$9D00)
|
TAX ; Y=Target Screen Address ($2000-$9D00)
|
||||||
LDA SpriteBankNum,X ; Relative Sprite Number Table
|
LDA SpriteBankNum,X ; Relative Sprite Number Table
|
||||||
JMP (SpriteBankBank,X) ; Bank Number Table
|
JMP (SpriteBankBank,X) ; Bank Number Table
|
||||||
|
|
||||||
SpriteBankNum :
|
SpriteBankNum :
|
||||||
.dbyt $0100,$0000,$0500,$0200,$0300,$0700,$0400,$0600
|
.dbyt $0100,$0000,$0500,$0200,$0300,$0700,$0400,$0600
|
||||||
|
.dbyt $0800
|
||||||
|
|
||||||
SpriteBankBank :
|
SpriteBankBank :
|
||||||
.addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00
|
.addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00
|
||||||
|
.addr SpriteBankBank00
|
||||||
|
|
||||||
SpriteBankBank00 :
|
SpriteBankBank00 :
|
||||||
JSL $AA0000
|
JSL $AA0000
|
||||||
|
|
Loading…
Reference in New Issue