peasant: more work on inventory

This commit is contained in:
Vince Weaver 2021-08-31 15:46:22 -04:00
parent 971aa1c147
commit 4f6f22391a
3 changed files with 57 additions and 19 deletions

View File

@ -129,6 +129,9 @@ escape_handler:
lda #1 lda #1
sta MAP_Y sta MAP_Y
lda #$AA
sta INVENTORY_1
rts rts

View File

@ -5,6 +5,10 @@
;===================== ;=====================
show_inventory: show_inventory:
lda #0
sta INVENTORY_X
sta INVENTORY_Y
;==================== ;====================
; draw text box ; draw text box
@ -36,12 +40,15 @@ show_inventory:
jsr disp_put_string jsr disp_put_string
;===============
; left column ; left column
lda #28 lda #28
sta CURSOR_Y sta CURSOR_Y
ldy #0 ldy #0
lda #1
sta INVENTORY_MASK
left_column_loop: left_column_loop:
lda #4 lda #4
@ -50,12 +57,25 @@ left_column_loop:
tya tya
pha pha
lda INVENTORY_MASK
and INVENTORY_1
beq left_questionmarks
left_have_item:
clc clc
lda left_item_offsets,Y lda left_item_offsets,Y
adc #<item_strings adc #<item_strings
sta OUTL sta OUTL
lda #0 lda #0
adc #>item_strings adc #>item_strings
jmp left_print_item
left_questionmarks:
lda #<unknown_string
sta OUTL
lda #>unknown_string
left_print_item:
sta OUTH sta OUTH
jsr disp_one_line jsr disp_one_line
@ -65,6 +85,8 @@ left_column_loop:
adc #8 adc #8
sta CURSOR_Y sta CURSOR_Y
asl INVENTORY_MASK
pla pla
tay tay
iny iny
@ -74,6 +96,8 @@ left_column_loop:
; extra for riches ; extra for riches
;================ ;================
; right column ; right column

View File

@ -17,13 +17,12 @@ MASK = $2E
MASK_COUNTDOWN = $2F MASK_COUNTDOWN = $2F
PEASANT_PRIORITY = $30 PEASANT_PRIORITY = $30
PEASANT_X = $60
PEASANT_Y = $61
PEASANT_DIR = $62 INVENTORY_MASK = $60
PEASANT_DIR_UP = 0 INVENTORY_X = $61
PEASANT_DIR_RIGHT = 1 INVENTORY_Y = $62
PEASANT_DIR_LEFT = 2
PEASANT_DIR_DOWN = 3
CURSOR_X = $63 CURSOR_X = $63
CURSOR_Y = $64 CURSOR_Y = $64
FRAME = $65 FRAME = $65
@ -36,9 +35,7 @@ PEASANT_YADD = $6B
GAME_OVER = $6C GAME_OVER = $6C
NEW_LOCATION = $FF NEW_LOCATION = $FF
NEW_FROM_DISK = $01 NEW_FROM_DISK = $01
MAP_X = $6D
MAP_Y = $6E
MAP_LOCATION = $6F
; pt3 player registers ; pt3 player registers
AY_REGISTERS = $70 AY_REGISTERS = $70
@ -77,7 +74,21 @@ DONE_SONG = $8B
APPLEII_MODEL = $8C APPLEII_MODEL = $8C
ESC_PRESSED = $8D ESC_PRESSED = $8D
GAME_STATE_0 = $90 ;=======================
; savegame state
;=======================
PEASANT_X = $90
PEASANT_Y = $91
PEASANT_DIR = $92
PEASANT_DIR_UP = 0
PEASANT_DIR_RIGHT = 1
PEASANT_DIR_LEFT = 2
PEASANT_DIR_DOWN = 3
MAP_X = $93
MAP_Y = $94
MAP_LOCATION = $95
GAME_STATE_0 = $96
BABY_IN_WELL=$00 BABY_IN_WELL=$00
TURN_WELL_CRANK=$00 TURN_WELL_CRANK=$00
TALK_TO_MENDELEV=$00 TALK_TO_MENDELEV=$00
@ -126,14 +137,14 @@ INVENTORY_1 = $A0
INV1_PILLS = $80 INV1_PILLS = $80
INVENTORY_2 = $A1 INVENTORY_2 = $A1
INV2_ROBE = $02 INV2_ROBE = $01
INV2_SODA = $04 INV2_SODA = $02
INV2_MEATBALL = $08 INV2_MEATBALL = $04
INV2_TRINKET = $10 INV2_TRINKET = $08
INV2_TROGHELM = $20 INV2_TROGHELM = $10
INV2_TROGSHIELD = $40 INV2_TROGSHIELD = $20
INV2_TROGSWORD = $80 INV2_TROGSWORD = $40
INV2_IMPOSSIBLE = $01 INV2_IMPOSSIBLE = $80
INVENTORY_3 = $A2 INVENTORY_3 = $A2
INV3_RICHES = $01 INV3_RICHES = $01