mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-27 02:31:00 +00:00
peasant: more work on inventory
This commit is contained in:
parent
138a2e4bbc
commit
971aa1c147
@ -44,23 +44,29 @@ hgr_text_box:
|
||||
adc #0
|
||||
sta OUTH
|
||||
|
||||
;
|
||||
;
|
||||
;
|
||||
; fallthrough
|
||||
|
||||
;=======================
|
||||
; disp_put_string
|
||||
; OUTL:OUTH has co-ords followed by string
|
||||
; CR (13) goes to next line
|
||||
disp_put_string:
|
||||
ldy #0
|
||||
lda (OUTL),Y
|
||||
sta CURSOR_X
|
||||
sta SAVED_X
|
||||
|
||||
jsr inc_outl
|
||||
lda (OUTL),Y
|
||||
sta CURSOR_Y
|
||||
jsr inc_outl
|
||||
jsr inc_outl
|
||||
lda (OUTL),Y
|
||||
sta CURSOR_Y
|
||||
jsr inc_outl
|
||||
|
||||
disp_one_line:
|
||||
|
||||
disp_put_string_loop:
|
||||
ldy #0
|
||||
lda (OUTL),Y
|
||||
beq disp_put_string_done
|
||||
ldy #0
|
||||
lda (OUTL),Y
|
||||
beq disp_put_string_done
|
||||
cmp #13
|
||||
beq disp_end_of_line
|
||||
|
||||
|
@ -5,7 +5,113 @@
|
||||
;=====================
|
||||
show_inventory:
|
||||
|
||||
;====================
|
||||
; draw text box
|
||||
|
||||
lda #0
|
||||
sta BOX_X1H
|
||||
lda #14
|
||||
sta BOX_X1L
|
||||
lda #20
|
||||
sta BOX_Y1
|
||||
|
||||
lda #1
|
||||
sta BOX_X2H
|
||||
lda #5 ; ?
|
||||
sta BOX_X2L
|
||||
lda #135
|
||||
sta BOX_Y2
|
||||
|
||||
jsr hgr_partial_save
|
||||
|
||||
jsr draw_box
|
||||
|
||||
;===================
|
||||
; draw main text
|
||||
|
||||
lda #<inventory_message
|
||||
sta OUTL
|
||||
lda #>inventory_message
|
||||
sta OUTH
|
||||
|
||||
jsr disp_put_string
|
||||
|
||||
; left column
|
||||
|
||||
lda #28
|
||||
sta CURSOR_Y
|
||||
|
||||
ldy #0
|
||||
left_column_loop:
|
||||
|
||||
lda #4
|
||||
sta CURSOR_X
|
||||
|
||||
tya
|
||||
pha
|
||||
|
||||
clc
|
||||
lda left_item_offsets,Y
|
||||
adc #<item_strings
|
||||
sta OUTL
|
||||
lda #0
|
||||
adc #>item_strings
|
||||
sta OUTH
|
||||
|
||||
jsr disp_one_line
|
||||
|
||||
lda CURSOR_Y
|
||||
clc
|
||||
adc #8
|
||||
sta CURSOR_Y
|
||||
|
||||
pla
|
||||
tay
|
||||
iny
|
||||
cpy #8
|
||||
bne left_column_loop
|
||||
|
||||
; extra for riches
|
||||
|
||||
|
||||
;================
|
||||
; right column
|
||||
|
||||
lda #28
|
||||
sta CURSOR_Y
|
||||
|
||||
ldy #0
|
||||
right_column_loop:
|
||||
|
||||
lda #23
|
||||
sta CURSOR_X
|
||||
|
||||
tya
|
||||
pha
|
||||
|
||||
clc
|
||||
lda right_item_offsets,Y
|
||||
adc #<item_strings
|
||||
sta OUTL
|
||||
lda #0
|
||||
adc #>item_strings
|
||||
sta OUTH
|
||||
|
||||
jsr disp_one_line
|
||||
|
||||
lda CURSOR_Y
|
||||
clc
|
||||
adc #8
|
||||
sta CURSOR_Y
|
||||
|
||||
pla
|
||||
tay
|
||||
iny
|
||||
cpy #8
|
||||
bne right_column_loop
|
||||
|
||||
|
||||
jsr wait_until_keypress
|
||||
|
||||
rts
|
||||
|
||||
@ -20,50 +126,101 @@ show_inventory:
|
||||
.byte "Hit return to go back to list",0
|
||||
|
||||
; first is only printed if have in inventory, though still can
|
||||
.byte "Press return for description",0
|
||||
.byte "Press ESC or Backspace to exit",0
|
||||
inventory_message:
|
||||
.byte 5,106," Press return for description",13
|
||||
.byte "Press ESC or Backspace to exit",0
|
||||
|
||||
;====================
|
||||
; Inventory Strings
|
||||
;====================
|
||||
|
||||
.byte "????",0
|
||||
unknown_string:
|
||||
.byte "???",0
|
||||
|
||||
left_item_offsets:
|
||||
.byte (item_arrow-item_strings)
|
||||
.byte (item_baby-item_strings)
|
||||
.byte (item_kerrek_belt-item_strings)
|
||||
.byte (item_chicken_feed-item_strings)
|
||||
.byte (item_funbow-item_strings)
|
||||
.byte (item_monster_mask-item_strings)
|
||||
.byte (item_pebbles-item_strings)
|
||||
.byte (item_pills-item_strings)
|
||||
|
||||
right_item_offsets:
|
||||
.byte (item_robe-item_strings)
|
||||
.byte (item_soda-item_strings)
|
||||
.byte (item_meatball_sub-item_strings)
|
||||
.byte (item_super_trinket-item_strings)
|
||||
.byte (item_troghelmet-item_strings)
|
||||
.byte (item_trogshield-item_strings)
|
||||
.byte (item_trogsword-item_strings)
|
||||
.byte (item_impossible-item_strings)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
item_strings:
|
||||
|
||||
item_arrow:
|
||||
.byte "arrow",0
|
||||
item_baby:
|
||||
.byte "baby",0
|
||||
item_kerrek_belt:
|
||||
.byte "kerrek belt",0
|
||||
item_chicken_feed:
|
||||
.byte "chicken feed",0
|
||||
.byte "SuperTime FunBow TM",0
|
||||
item_funbow:
|
||||
.byte "SuprTime FunBow TM",0 ; should be Super, makes column too wide
|
||||
item_monster_mask:
|
||||
.byte "monster maskus",0
|
||||
item_pebbles:
|
||||
.byte "pebbles",0
|
||||
item_pills:
|
||||
.byte "pills",0
|
||||
item_riches:
|
||||
.byte "riches",0
|
||||
item_robe:
|
||||
.byte "robe",0
|
||||
item_soda:
|
||||
.byte "soda",0
|
||||
item_meatball_sub:
|
||||
.byte "meatball sub",0
|
||||
item_super_trinket:
|
||||
.byte "super trinket",0
|
||||
item_troghelmet:
|
||||
.byte "TrogHelmet",0
|
||||
item_trogshield:
|
||||
.byte "TrogShield",0
|
||||
item_trogsword:
|
||||
.byte "TrogSword",0
|
||||
;.byte "???",0
|
||||
item_impossible:
|
||||
.byte "???",0
|
||||
item_shirt:
|
||||
.byte "shirt",0
|
||||
|
||||
; arrow
|
||||
arrow_description:
|
||||
.byte "Boy, you sure know how to pick",13
|
||||
.byte "em! This arrow's kinda pointy even!!",0
|
||||
|
||||
; baby
|
||||
baby_description:
|
||||
.byte "Awww! Peasant babies are",13
|
||||
.byte "adorable. No wonder they fetch",13
|
||||
.byte "such a pretty penny on the black",13
|
||||
.byte "market.",0
|
||||
|
||||
; kerrek belt
|
||||
kerrek_belt_description:
|
||||
.byte "Phew! This thing stinks like all",13
|
||||
.byte "getout. Why couldn't the Kerrek",13
|
||||
.byte "have kidnapped a hot wench or",13
|
||||
.byte "something that you coulda saved?",0
|
||||
|
||||
; chicken feed
|
||||
chicken_feed_description:
|
||||
.byte "Woah! Gold nuggets! Oh",13
|
||||
.byte "wait...This is just chicken",13
|
||||
.byte "feed. Crap.",0
|
||||
|
@ -8,7 +8,7 @@ parse_input:
|
||||
|
||||
parse_copy:
|
||||
cmp #'C'
|
||||
bne parse_look
|
||||
bne parse_inventory
|
||||
|
||||
; want copy
|
||||
lda #NEW_FROM_DISK
|
||||
@ -20,6 +20,14 @@ parse_copy:
|
||||
jmp done_parse_message
|
||||
|
||||
|
||||
parse_inventory:
|
||||
cmp #'I'
|
||||
bne parse_look
|
||||
|
||||
jsr show_inventory
|
||||
|
||||
jmp restore_parse_message
|
||||
|
||||
parse_look:
|
||||
cmp #'L'
|
||||
bne parse_talk
|
||||
@ -73,6 +81,9 @@ finish_parse_message:
|
||||
|
||||
jsr wait_until_keypress
|
||||
|
||||
|
||||
restore_parse_message:
|
||||
|
||||
jsr hgr_partial_restore
|
||||
|
||||
done_parse_message:
|
||||
|
@ -173,6 +173,8 @@ peasant_text:
|
||||
|
||||
.include "parse_input.s"
|
||||
|
||||
.include "inventory.s"
|
||||
|
||||
.include "score.s"
|
||||
|
||||
.include "keyboard.s"
|
||||
|
@ -177,6 +177,8 @@ peasant_text:
|
||||
|
||||
.include "parse_input.s"
|
||||
|
||||
.include "inventory.s"
|
||||
|
||||
.include "keyboard.s"
|
||||
|
||||
.include "wait_a_bit.s"
|
||||
|
@ -180,6 +180,8 @@ peasant_text:
|
||||
|
||||
.include "parse_input.s"
|
||||
|
||||
.include "inventory.s"
|
||||
|
||||
.include "keyboard.s"
|
||||
|
||||
.include "wait_a_bit.s"
|
||||
|
@ -124,8 +124,8 @@ INVENTORY_1 = $A0
|
||||
INV1_MONSTER_MASK = $20
|
||||
INV1_PEBBLES = $40
|
||||
INV1_PILLS = $80
|
||||
|
||||
INVENTORY_2 = $A1
|
||||
INV2_RICHES = $01
|
||||
INV2_ROBE = $02
|
||||
INV2_SODA = $04
|
||||
INV2_MEATBALL = $08
|
||||
@ -133,10 +133,12 @@ INVENTORY_2 = $A1
|
||||
INV2_TROGHELM = $20
|
||||
INV2_TROGSHIELD = $40
|
||||
INV2_TROGSWORD = $80
|
||||
INVENTORY_3 = $A2
|
||||
INV3_MAP = $01
|
||||
INV3_SHIRT = $02
|
||||
INV2_IMPOSSIBLE = $01
|
||||
|
||||
INVENTORY_3 = $A2
|
||||
INV3_RICHES = $01
|
||||
INV3_SHIRT = $02
|
||||
INV3_MAP = $04
|
||||
|
||||
INVENTORY_1_GONE = $A3 ; had item, but now it's gone
|
||||
INVENTORY_2_GONE = $A4
|
||||
|
Loading…
Reference in New Issue
Block a user