GSCats/inventory.s

84 lines
1.3 KiB
ArmAsm
Raw Normal View History

2018-04-20 20:04:39 +00:00
;
; inventory
; Code and data structures related to the weapons inventory and store
;
; Created by Quinn Dunki on 8/13/17
;
2018-06-10 02:29:00 +00:00
INVENTORY_ITEMS = 2
2018-04-20 20:04:39 +00:00
ITEM_WIDTH = 16 ; In pixels
ICON_WIDTH = 8 ; In pixels
ICON_ORIGIN = (ITEM_WIDTH-ICON_WIDTH)/4 ; In bytes
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; renderInventory
;
2018-06-10 02:29:00 +00:00
; Renders inventory for current player
;
; Trashes PARAML0
2018-04-20 20:04:39 +00:00
;
renderInventory:
SAVE_AXY
2018-06-10 02:29:00 +00:00
; Find inventory we need to render
ldy currentPlayer
PLAYERPTR_Y
lda playerData+PD_INVENTORY,y
sta PARAML0
2018-04-20 20:04:39 +00:00
; Compute initial VRAM position
ldy #(8192 + (160*10 + (160*ICON_ORIGIN + ICON_ORIGIN)))
ldx #0
2018-06-10 02:29:00 +00:00
2018-04-20 20:04:39 +00:00
renderInventoryLoop:
jsr renderInventoryItem
tya ; Advance VRAM pointer
clc
adc #ITEM_WIDTH/2
tay
inx
cpx #INVENTORY_ITEMS
bne renderInventoryLoop
RESTORE_AXY
rts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; renderInventoryItem
;
; X = Item index
; Y = VRAM pos
2018-06-10 02:29:00 +00:00
; PARAML0 = Inventory state
2018-04-20 20:04:39 +00:00
;
renderInventoryItem:
SAVE_AXY
phy
phx
2018-06-10 02:29:00 +00:00
lda #2 ; Frame
2018-04-20 20:04:39 +00:00
clc
jsr DrawSpriteBank
plx
2018-06-10 02:29:00 +00:00
; Find projectile type data
txy
PROJECTILETYPEPTR_Y
; Render projectile
lda projectileTypes+PT_FRAME1,y
2018-04-20 20:04:39 +00:00
ply
clc
jsr DrawSpriteBank
RESTORE_AXY
rts
renderInventoryItemParam:
.word 0,20