mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-29 00:31:52 +00:00
peasant: hook up inn
This commit is contained in:
parent
b7db1a2e0b
commit
bef6200f28
@ -31,13 +31,15 @@ peasant.dsk: QBOOT QLOAD VID_LOGO TITLE INTRO \
|
||||
$(DOS33_RAW) peasant.dsk 25 0 PEASANT3 0 0
|
||||
$(DOS33_RAW) peasant.dsk 30 0 PEASANT4 0 0
|
||||
|
||||
peasant_side2.dsk: WBOOT2 COPY_CHECK TROGDOR ENDING CLIFF GAME_OVER INSIDE
|
||||
peasant_side2.dsk: WBOOT2 COPY_CHECK TROGDOR ENDING \
|
||||
CLIFF GAME_OVER INSIDE INN
|
||||
cp $(EMPTY_DISK)/empty.dsk peasant_side2.dsk
|
||||
$(DOS33_RAW) peasant_side2.dsk 0 0 WBOOT2 0 1
|
||||
$(DOS33_RAW) peasant_side2.dsk 1 0 COPY_CHECK 0 0
|
||||
$(DOS33_RAW) peasant_side2.dsk 3 0 GAME_OVER 0 0
|
||||
# $(DOS33_RAW) peasant_side2.dsk 4 0 MAP 0 0
|
||||
$(DOS33_RAW) peasant_side2.dsk 5 0 INSIDE 0 0
|
||||
$(DOS33_RAW) peasant_side2.dsk 10 0 INN 0 0
|
||||
$(DOS33_RAW) peasant_side2.dsk 19 0 TROGDOR 0 0
|
||||
$(DOS33_RAW) peasant_side2.dsk 24 0 ENDING 0 0
|
||||
$(DOS33_RAW) peasant_side2.dsk 29 0 CLIFF 0 0
|
||||
@ -398,6 +400,25 @@ inside.o: inside.s zp.inc inventory.inc \
|
||||
peasant_move.s score.s inventory.s loadsave_menu.s
|
||||
ca65 -o inside.o inside.s -l inside.lst
|
||||
|
||||
###
|
||||
|
||||
INN: inn.o
|
||||
ld65 -o INN inn.o -C $(LINKER_SCRIPTS)/apple2_6000.inc
|
||||
|
||||
inn.o: inn.s zp.inc inventory.inc \
|
||||
parse_input.inc \
|
||||
inn_actions.s DIALOG_INN.LZSA dialog_inn.inc \
|
||||
graphics_inn/graphics_inn.inc sprites/peasant_sprites.inc \
|
||||
graphics_inn/priority_inn.inc \
|
||||
sprites/inventory_sprites.inc \
|
||||
draw_box.s hgr_rectangle.s hgr_font.s hgr_input.s \
|
||||
hgr_1x28_sprite_mask.s hgr_1x5_sprite.s hgr_save_restore.s \
|
||||
wait_a_bit.s draw_peasant.s hgr_text_box.s \
|
||||
keyboard.s new_map_location.s \
|
||||
peasant_move.s score.s inventory.s loadsave_menu.s
|
||||
ca65 -o inn.o inn.s -l inn.lst
|
||||
|
||||
|
||||
|
||||
###
|
||||
|
||||
@ -543,9 +564,13 @@ dialog_inn: dialog_inn.o
|
||||
dialog_inn.o: dialog_inn.s text/inn.inc
|
||||
ca65 -o dialog_inn.o dialog_inn.s -l dialog_inn.lst
|
||||
|
||||
|
||||
###
|
||||
|
||||
dialog_inn.inc: generate_all_symbols dialog_inn
|
||||
./generate_all_symbols -a 0xd000 dialog_inn.lst > dialog_inn.inc
|
||||
|
||||
####
|
||||
|
||||
DIALOG_CLIFF.LZSA: dialog_cliff
|
||||
$(LZSA) -r -f2 dialog_cliff DIALOG_CLIFF.LZSA
|
||||
|
||||
|
@ -171,8 +171,10 @@ POINTS IMPLEMENTED: (in order of implementation)
|
||||
+ 1 (get pebbles)
|
||||
+ 1 (get feed)
|
||||
+ 5 (give riches)
|
||||
+ 5 (give baby) [inn]
|
||||
+ 3 (get room)
|
||||
======
|
||||
21 points
|
||||
29 points
|
||||
|
||||
|
||||
deaths implemented
|
||||
|
43
games/peasant/graphics_inn/Makefile
Normal file
43
games/peasant/graphics_inn/Makefile
Normal file
@ -0,0 +1,43 @@
|
||||
|
||||
PNG2RLE = ../../../utils/gr-utils/png2rle
|
||||
PNG2GR = ../../../utils/gr-utils/png2gr
|
||||
PNG2HGR = ../../../utils/hgr-utils/png2hgr
|
||||
LZSA = ~/research/lzsa/lzsa/lzsa
|
||||
B2D = ../../../utils/bmp2dhr/b2d
|
||||
|
||||
all: graphics_inn.inc \
|
||||
priority_inn.inc
|
||||
|
||||
###
|
||||
|
||||
graphics_inn.inc: \
|
||||
inside_inn.lzsa
|
||||
echo "inside_inn_lzsa: .incbin \"inside_inn.lzsa\"" > graphics_inn.inc
|
||||
|
||||
###
|
||||
|
||||
inside_inn.lzsa: inside_inn.hgr
|
||||
$(LZSA) -r -f2 inside_inn.hgr inside_inn.lzsa
|
||||
|
||||
inside_inn.hgr: inside_inn.png
|
||||
$(PNG2HGR) inside_inn.png > inside_inn.hgr
|
||||
|
||||
###
|
||||
|
||||
priority_inn.inc: \
|
||||
todo_priority.lzsa
|
||||
echo "inside_inn_priority_lzsa: .incbin \"todo_priority.lzsa\"" > priority_inn.inc
|
||||
|
||||
####
|
||||
|
||||
todo_priority.lzsa: todo_priority.gr
|
||||
$(LZSA) -r -f2 todo_priority.gr todo_priority.lzsa
|
||||
|
||||
todo_priority.gr: todo_priority.png
|
||||
$(PNG2GR) todo_priority.png todo_priority.gr
|
||||
|
||||
####
|
||||
|
||||
clean:
|
||||
rm -f *~ graphics_inn.inc priority_inn.inc *.lzsa *.gr *.hgr
|
||||
|
BIN
games/peasant/graphics_inn/inside_inn.png
Normal file
BIN
games/peasant/graphics_inn/inside_inn.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.8 KiB |
BIN
games/peasant/graphics_inn/todo_priority.png
Normal file
BIN
games/peasant/graphics_inn/todo_priority.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.7 KiB |
305
games/peasant/inn.s
Normal file
305
games/peasant/inn.s
Normal file
@ -0,0 +1,305 @@
|
||||
; Peasant's Quest
|
||||
|
||||
; Inn Graphics
|
||||
|
||||
; a lot happens at the Inn
|
||||
|
||||
; by Vince `deater` Weaver vince@deater.net
|
||||
|
||||
; with apologies to everyone
|
||||
|
||||
.include "hardware.inc"
|
||||
.include "zp.inc"
|
||||
|
||||
.include "qload.inc"
|
||||
.include "inventory.inc"
|
||||
.include "parse_input.inc"
|
||||
|
||||
LOCATION_BASE = LOCATION_INSIDE_INN ; index starts here (27)
|
||||
|
||||
inside_inn:
|
||||
|
||||
lda #0
|
||||
sta LEVEL_OVER
|
||||
sta FRAME
|
||||
|
||||
jsr hgr_make_tables ; necessary?
|
||||
jsr hgr2 ; necessary?
|
||||
|
||||
; decompress dialog to $D000
|
||||
|
||||
lda #<inn_text_lzsa
|
||||
sta getsrc_smc+1
|
||||
lda #>inn_text_lzsa
|
||||
sta getsrc_smc+2
|
||||
|
||||
lda #$D0
|
||||
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
; update score
|
||||
|
||||
jsr update_score
|
||||
|
||||
|
||||
;=============================
|
||||
;=============================
|
||||
; new screen location
|
||||
;=============================
|
||||
;=============================
|
||||
|
||||
new_location:
|
||||
lda #0
|
||||
sta LEVEL_OVER
|
||||
|
||||
;==========================
|
||||
; load updated verb table
|
||||
;==========================
|
||||
|
||||
; setup default verb table
|
||||
|
||||
jsr setup_default_verb_table
|
||||
|
||||
|
||||
; we are INSIDE so locations 24...26 map to 0...2
|
||||
|
||||
lda MAP_LOCATION
|
||||
sec
|
||||
sbc #LOCATION_BASE
|
||||
tax
|
||||
|
||||
lda verb_tables_low,X
|
||||
sta INL
|
||||
lda verb_tables_hi,X
|
||||
sta INH
|
||||
jsr load_custom_verb_table
|
||||
|
||||
;=====================
|
||||
; load bg
|
||||
|
||||
; we are INSIDE so locations 24...26 map to 0...2
|
||||
|
||||
lda MAP_LOCATION
|
||||
sec
|
||||
sbc #LOCATION_BASE
|
||||
tax
|
||||
|
||||
lda map_backgrounds_low,X
|
||||
sta getsrc_smc+1
|
||||
; sta last_bg_l
|
||||
lda map_backgrounds_hi,X
|
||||
sta getsrc_smc+2
|
||||
; sta last_bg_h
|
||||
|
||||
lda #$40
|
||||
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
|
||||
; we are INSIDE so locations 24...26 map to 0...2
|
||||
|
||||
lda MAP_LOCATION
|
||||
sec
|
||||
sbc #LOCATION_BASE
|
||||
tax
|
||||
|
||||
lda map_priority_low,X
|
||||
sta getsrc_smc+1
|
||||
lda map_priority_hi,X
|
||||
sta getsrc_smc+2
|
||||
|
||||
lda #$20
|
||||
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
jsr gr_copy_to_page1
|
||||
|
||||
; put peasant text
|
||||
|
||||
lda #<peasant_text
|
||||
sta OUTL
|
||||
lda #>peasant_text
|
||||
sta OUTH
|
||||
|
||||
jsr hgr_put_string
|
||||
|
||||
; put score
|
||||
|
||||
jsr print_score
|
||||
|
||||
;====================
|
||||
; save background
|
||||
|
||||
lda PEASANT_X
|
||||
sta CURSOR_X
|
||||
lda PEASANT_Y
|
||||
sta CURSOR_Y
|
||||
|
||||
;=======================
|
||||
; draw initial peasant
|
||||
|
||||
jsr save_bg_1x28
|
||||
|
||||
jsr draw_peasant
|
||||
|
||||
game_loop:
|
||||
|
||||
jsr move_peasant
|
||||
|
||||
inc FRAME
|
||||
|
||||
jsr check_keyboard
|
||||
|
||||
;=====================
|
||||
; level specific
|
||||
;=====================
|
||||
|
||||
lda MAP_LOCATION
|
||||
cmp #LOCATION_INSIDE_INN
|
||||
bne skip_level_specific
|
||||
|
||||
exit_inside_inn:
|
||||
; check if leaving
|
||||
|
||||
lda PEASANT_Y
|
||||
cmp #$95
|
||||
bcc skip_level_specific
|
||||
|
||||
; we're exiting, print proper message
|
||||
|
||||
; lda INVENTORY_2
|
||||
; and #INV2_TRINKET
|
||||
; bne after_trinket_message
|
||||
|
||||
; lda INVENTORY_2_GONE
|
||||
; and #INV2_TRINKET
|
||||
; bne after_trinket_message
|
||||
|
||||
|
||||
;before_trinket_message:
|
||||
; ldx #<inside_cottage_leaving_message
|
||||
; ldy #>inside_cottage_leaving_message
|
||||
; jsr finish_parse_message
|
||||
; jmp done_trinket_message
|
||||
|
||||
;after_trinket_message:
|
||||
; ldx #<inside_cottage_leaving_post_trinket_message
|
||||
; ldy #>inside_cottage_leaving_post_trinket_message
|
||||
; jsr finish_parse_message
|
||||
|
||||
done_trinket_message:
|
||||
|
||||
; put outside door
|
||||
lda #$9
|
||||
sta PEASANT_X
|
||||
lda #$69
|
||||
sta PEASANT_Y
|
||||
|
||||
; stop walking
|
||||
lda #0
|
||||
sta PEASANT_XADD
|
||||
sta PEASANT_YADD
|
||||
|
||||
|
||||
; move back
|
||||
|
||||
lda #LOCATION_OUTSIDE_INN
|
||||
jsr update_map_location
|
||||
|
||||
|
||||
skip_level_specific:
|
||||
|
||||
lda LEVEL_OVER
|
||||
bmi oops_new_location
|
||||
bne level_over
|
||||
|
||||
|
||||
; delay
|
||||
|
||||
lda #200
|
||||
jsr wait
|
||||
|
||||
|
||||
jmp game_loop
|
||||
|
||||
oops_new_location:
|
||||
jmp new_location
|
||||
|
||||
|
||||
;========================
|
||||
; exit level
|
||||
;========================
|
||||
level_over:
|
||||
|
||||
rts
|
||||
|
||||
|
||||
.include "draw_peasant.s"
|
||||
|
||||
.include "gr_copy.s"
|
||||
|
||||
.include "new_map_location.s"
|
||||
.include "peasant_move.s"
|
||||
|
||||
.include "score.s"
|
||||
|
||||
;.include "parse_input.s"
|
||||
|
||||
.include "keyboard.s"
|
||||
|
||||
.include "wait.s"
|
||||
.include "wait_a_bit.s"
|
||||
|
||||
.include "graphics_inn/graphics_inn.inc"
|
||||
.include "graphics_inn/priority_inn.inc"
|
||||
|
||||
.include "version.inc"
|
||||
|
||||
;.include "inventory.s"
|
||||
|
||||
|
||||
|
||||
|
||||
; moved to QLOAD
|
||||
|
||||
;.include "decompress_fast_v2.s"
|
||||
;.include "hgr_font.s"
|
||||
;.include "draw_box.s"
|
||||
;.include "hgr_rectangle.s"
|
||||
;.include "hgr_1x28_sprite_mask.s"
|
||||
;.include "hgr_1x5_sprite.s"
|
||||
;.include "hgr_partial_save.s"
|
||||
;.include "hgr_input.s"
|
||||
;.include "hgr_tables.s"
|
||||
;.include "hgr_text_box.s"
|
||||
;.include "clear_bottom.s"
|
||||
;.include "hgr_hgr2.s"
|
||||
;.include "wait_keypress.s"
|
||||
;.include "loadsave_menu.s"
|
||||
|
||||
|
||||
|
||||
map_backgrounds_low:
|
||||
.byte <inside_inn_lzsa
|
||||
|
||||
map_backgrounds_hi:
|
||||
.byte >inside_inn_lzsa
|
||||
|
||||
map_priority_low:
|
||||
.byte <inside_inn_priority_lzsa
|
||||
|
||||
map_priority_hi:
|
||||
.byte >inside_inn_priority_lzsa
|
||||
|
||||
verb_tables_low:
|
||||
.byte <inside_inn_verb_table
|
||||
|
||||
verb_tables_hi:
|
||||
.byte >inside_inn_verb_table
|
||||
|
||||
|
||||
|
||||
inn_text_lzsa:
|
||||
.incbin "DIALOG_INN.LZSA"
|
||||
|
||||
.include "inn_actions.s"
|
414
games/peasant/inn_actions.s
Normal file
414
games/peasant/inn_actions.s
Normal file
@ -0,0 +1,414 @@
|
||||
.include "tokens.inc"
|
||||
|
||||
;=======================
|
||||
;=======================
|
||||
;=======================
|
||||
; Inside Inn
|
||||
;=======================
|
||||
;=======================
|
||||
;=======================
|
||||
|
||||
inside_inn_verb_table:
|
||||
.byte VERB_LOOK
|
||||
.word inside_inn_look-1
|
||||
.byte VERB_TALK
|
||||
.word inside_inn_talk-1
|
||||
.byte VERB_GIVE
|
||||
.word inside_inn_give-1
|
||||
.byte VERB_USE
|
||||
.word inside_inn_give-1
|
||||
.byte VERB_GET
|
||||
.word inside_inn_get-1
|
||||
.byte VERB_ASK
|
||||
.word inside_inn_ask-1
|
||||
.byte VERB_RING
|
||||
.word inside_inn_ring-1
|
||||
.byte VERB_SLEEP
|
||||
.word inside_inn_sleep-1
|
||||
.byte VERB_OPEN
|
||||
.word inside_inn_open-1
|
||||
.byte 0
|
||||
|
||||
;=================
|
||||
; look
|
||||
;=================
|
||||
|
||||
inside_inn_look:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_PILLOW
|
||||
beq inn_look_at_pillow
|
||||
cmp #NOUN_NOTE
|
||||
beq inn_look_at_paper
|
||||
cmp #NOUN_PAPER
|
||||
beq inn_look_at_paper
|
||||
cmp #NOUN_PAINTING
|
||||
beq inn_look_at_painting
|
||||
cmp #NOUN_DUDE
|
||||
beq inn_look_at_man
|
||||
cmp #NOUN_GUY
|
||||
beq inn_look_at_man
|
||||
cmp #NOUN_MAN
|
||||
beq inn_look_at_man
|
||||
cmp #NOUN_WINDOW
|
||||
beq inn_look_at_window
|
||||
cmp #NOUN_PILLOW
|
||||
beq inn_look_at_pillow
|
||||
cmp #NOUN_RUG
|
||||
beq inn_look_at_rug
|
||||
cmp #NOUN_CARPET
|
||||
beq inn_look_at_rug
|
||||
cmp #NOUN_BED
|
||||
beq inn_look_at_bed
|
||||
cmp #NOUN_MATTRESS
|
||||
beq inn_look_at_bed
|
||||
cmp #NOUN_BELL
|
||||
beq inn_look_at_bell
|
||||
cmp #NOUN_DESK
|
||||
beq inn_look_at_desk
|
||||
|
||||
cmp #NOUN_NONE
|
||||
beq inn_look_at
|
||||
|
||||
jmp parse_common_look
|
||||
|
||||
inn_look_at:
|
||||
ldx #<inside_inn_look_message
|
||||
ldy #>inside_inn_look_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_look_at_window:
|
||||
ldx #<inside_inn_look_window_message
|
||||
ldy #>inside_inn_look_window_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_look_at_man:
|
||||
ldx #<inside_inn_look_man_message
|
||||
ldy #>inside_inn_look_man_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_look_at_painting:
|
||||
ldx #<inside_inn_look_painting_message
|
||||
ldy #>inside_inn_look_painting_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_look_at_paper:
|
||||
ldx #<inside_inn_look_paper_message
|
||||
ldy #>inside_inn_look_paper_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_look_at_pillow:
|
||||
ldx #<inside_inn_look_pillow_message
|
||||
ldy #>inside_inn_look_pillow_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_look_at_rug:
|
||||
ldx #<inside_inn_look_rug_message
|
||||
ldy #>inside_inn_look_rug_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_look_at_bed:
|
||||
ldx #<inside_inn_look_bed_message
|
||||
ldy #>inside_inn_look_bed_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_look_at_bell:
|
||||
ldx #<inside_inn_look_bell_message
|
||||
ldy #>inside_inn_look_bell_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_look_at_desk:
|
||||
ldx #<inside_inn_look_desk_message
|
||||
ldy #>inside_inn_look_desk_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
;=================
|
||||
; talk
|
||||
;=================
|
||||
|
||||
inside_inn_talk:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_NONE
|
||||
beq inn_talk_man
|
||||
cmp #NOUN_MAN
|
||||
beq inn_talk_man
|
||||
cmp #NOUN_GUY
|
||||
beq inn_talk_man
|
||||
cmp #NOUN_DUDE
|
||||
beq inn_talk_man
|
||||
|
||||
jmp parse_common_talk
|
||||
|
||||
inn_talk_man:
|
||||
ldx #<inside_inn_talk_man_message
|
||||
ldy #>inside_inn_talk_man_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;=================
|
||||
; give
|
||||
;=================
|
||||
|
||||
inside_inn_give:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_BABY
|
||||
beq inn_give_baby
|
||||
|
||||
jmp parse_common_give
|
||||
|
||||
inn_give_baby:
|
||||
|
||||
lda INVENTORY_1
|
||||
and #INV1_PILLS ; check if have pills
|
||||
bne inn_give_baby_have_pills
|
||||
|
||||
lda INVENTORY_1
|
||||
and #INV1_BABY
|
||||
bne inn_give_baby_have_baby
|
||||
|
||||
inn_give_baby_no_baby:
|
||||
ldx #<inside_inn_give_baby_before_message
|
||||
ldy #>inside_inn_give_baby_before_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_give_baby_have_baby:
|
||||
ldx #<inside_inn_give_baby_message
|
||||
ldy #>inside_inn_give_baby_message
|
||||
jsr partial_message_step
|
||||
|
||||
; add 5 points to score
|
||||
|
||||
lda #5
|
||||
jsr score_points
|
||||
|
||||
; get pills
|
||||
|
||||
lda INVENTORY_1
|
||||
ora #INV1_PILLS
|
||||
sta INVENTORY_1
|
||||
|
||||
ldx #<inside_inn_give_baby2_message
|
||||
ldy #>inside_inn_give_baby2_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_give_baby_have_pills:
|
||||
|
||||
ldx #<inside_inn_give_baby_already_message
|
||||
ldy #>inside_inn_give_baby_already_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;=================
|
||||
; get
|
||||
;=================
|
||||
|
||||
inside_inn_get:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_ROOM
|
||||
beq inn_get_room
|
||||
cmp #NOUN_PAPER
|
||||
beq inn_get_paper
|
||||
cmp #NOUN_NOTE
|
||||
beq inn_get_paper
|
||||
cmp #NOUN_PARCHMENT
|
||||
beq inn_get_paper
|
||||
cmp #NOUN_PAINTING
|
||||
beq inn_get_painting
|
||||
cmp #NOUN_RUG
|
||||
beq inn_get_rug
|
||||
cmp #NOUN_CARPET
|
||||
beq inn_get_rug
|
||||
cmp #NOUN_DOING_SPROINGS
|
||||
beq inn_get_doing
|
||||
cmp #NOUN_PILLOW
|
||||
beq inn_get_pillow
|
||||
cmp #NOUN_BELL
|
||||
beq inn_get_bell
|
||||
cmp #NOUN_BED
|
||||
beq inn_get_bed
|
||||
|
||||
jmp parse_common_get
|
||||
|
||||
inn_get_room:
|
||||
|
||||
lda INVENTORY_2
|
||||
and #INV2_ROBE ; check if have robe
|
||||
bne inn_get_room_have_robe
|
||||
|
||||
inn_get_room_no_robe:
|
||||
ldx #<inside_inn_get_room_no_robe_message
|
||||
ldy #>inside_inn_get_room_no_robe_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_get_room_have_robe:
|
||||
ldx #<inside_inn_get_room_message
|
||||
ldy #>inside_inn_get_room_message
|
||||
jsr partial_message_step
|
||||
|
||||
; add 3 points to score
|
||||
|
||||
lda #3
|
||||
jsr score_points
|
||||
|
||||
ldx #<inside_inn_get_room2_message
|
||||
ldy #>inside_inn_get_room2_message
|
||||
jsr partial_message_step
|
||||
|
||||
ldx #<inside_inn_get_room3_message
|
||||
ldy #>inside_inn_get_room3_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_get_paper:
|
||||
ldx #<inside_inn_get_paper_message
|
||||
ldy #>inside_inn_get_paper_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_get_painting:
|
||||
ldx #<inside_inn_get_painting_message
|
||||
ldy #>inside_inn_get_painting_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_get_rug:
|
||||
ldx #<inside_inn_get_rug_message
|
||||
ldy #>inside_inn_get_rug_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_get_doing:
|
||||
ldx #<inside_inn_get_doing_message
|
||||
ldy #>inside_inn_get_doing_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_get_pillow:
|
||||
ldx #<inside_inn_get_pillow_message
|
||||
ldy #>inside_inn_get_pillow_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_get_bell:
|
||||
ldx #<inside_inn_get_bell_message
|
||||
ldy #>inside_inn_get_bell_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_get_bed:
|
||||
ldx #<inside_inn_get_bed_message
|
||||
ldy #>inside_inn_get_bed_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
;=================
|
||||
; ask about
|
||||
;=================
|
||||
|
||||
inside_inn_ask:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_FIRE
|
||||
beq inn_ask_about_fire
|
||||
cmp #NOUN_NED
|
||||
beq inn_ask_about_ned
|
||||
cmp #NOUN_ROBE
|
||||
beq inn_ask_about_robe
|
||||
cmp #NOUN_SMELL
|
||||
beq inn_ask_about_smell
|
||||
cmp #NOUN_TROGDOR
|
||||
beq inn_ask_about_trogdor
|
||||
|
||||
inn_ask_about_unknown:
|
||||
ldx #<inside_inn_ask_about_unknown_message
|
||||
ldy #>inside_inn_ask_about_unknown_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_ask_about_fire:
|
||||
ldx #<inside_inn_ask_about_fire_message
|
||||
ldy #>inside_inn_ask_about_fire_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_ask_about_ned:
|
||||
ldx #<inside_inn_ask_about_ned_message
|
||||
ldy #>inside_inn_ask_about_ned_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_ask_about_robe:
|
||||
ldx #<inside_inn_ask_about_robe_message
|
||||
ldy #>inside_inn_ask_about_robe_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_ask_about_smell:
|
||||
ldx #<inside_inn_ask_about_smell_message
|
||||
ldy #>inside_inn_ask_about_smell_message
|
||||
jmp finish_parse_message
|
||||
|
||||
inn_ask_about_trogdor:
|
||||
ldx #<inside_inn_ask_about_trogdor_message
|
||||
ldy #>inside_inn_ask_about_trogdor_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
;=================
|
||||
; ring
|
||||
;=================
|
||||
|
||||
inside_inn_ring:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_BELL
|
||||
beq inn_ring_bell
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
inn_ring_bell:
|
||||
ldx #<inside_inn_ring_bell_message
|
||||
ldy #>inside_inn_ring_bell_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;=================
|
||||
; sleep
|
||||
;=================
|
||||
|
||||
inside_inn_sleep:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_BED
|
||||
beq inn_sleep_bed
|
||||
cmp #NOUN_NONE
|
||||
beq inn_sleep_bed
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
inn_sleep_bed:
|
||||
ldx #<inside_inn_sleep_bed_message
|
||||
ldy #>inside_inn_sleep_bed_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;=================
|
||||
; open
|
||||
;=================
|
||||
|
||||
inside_inn_open:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_DOOR
|
||||
beq inn_open_door
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
inn_open_door:
|
||||
ldx #<inside_inn_open_door_message
|
||||
ldy #>inside_inn_open_door_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.include "dialog_inn.inc"
|
@ -924,6 +924,10 @@ noun_lookup:
|
||||
.byte "WOMAN",NOUN_WOMAN|$80
|
||||
.byte "GOLD",NOUN_GOLD|$80
|
||||
.byte "MONEY",NOUN_MONEY|$80
|
||||
.byte "CARPET",NOUN_CARPET|$80
|
||||
.byte "BED",NOUN_BED|$80
|
||||
.byte "MATTRESS",NOUN_MATTRESS|$80
|
||||
.byte "PARCHMENT",NOUN_PARCHMENT|$80
|
||||
.byte $00
|
||||
|
||||
|
||||
|
@ -216,7 +216,7 @@ track_array:
|
||||
.byte 4, 6, 9,1 ; VID_LOGO, TITLE, INTRO, COPY_CHECK
|
||||
.byte 15,20,25,30 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4
|
||||
.byte 19,24, 3,29 ; TROGDOR, ENDING, MUSIC, CLIFF
|
||||
.byte 3,14,13,30 ; GAME_OVER, INVENTORY, PARSE_INPUT, INN
|
||||
.byte 3,14,13,10 ; GAME_OVER, INVENTORY, PARSE_INPUT, INN
|
||||
.byte 5 ; INSIDE
|
||||
.byte 0, 0, 0, 0, 0 ; SAVE1, SAVE2, SAVE3
|
||||
.byte 0 ; disk detect
|
||||
|
@ -5,13 +5,13 @@
|
||||
; want to load this to address $90
|
||||
|
||||
;
|
||||
.byte LOAD_INSIDE ; WHICH_LOAD = $90
|
||||
.byte LOAD_INN ; WHICH_LOAD = $90
|
||||
.byte 15 ; PEASANT_X = $91
|
||||
.byte 128 ; PEASANT_Y = $92
|
||||
.byte PEASANT_DIR_UP ; PEASANT_DIR = $93
|
||||
.byte 0 ; MAP_X = $94
|
||||
.byte 0 ; MAP_Y = $95
|
||||
.byte LOCATION_INSIDE_LADY; MAP_LOCATION = $96
|
||||
.byte LOCATION_INSIDE_INN; MAP_LOCATION = $96
|
||||
.byte $00 ; GAME_STATE_0 = $97
|
||||
.byte $00 ; GAME_STATE_1 = $98
|
||||
.byte $00 ; GAME_STATE_2 = $99
|
||||
|
@ -6,37 +6,104 @@
|
||||
.byte "You need to get out of there before that smelly octogenarian gets back.",0
|
||||
|
||||
; + look
|
||||
inside_inn_look_message:
|
||||
.byte "What a dump! Only one bed",13
|
||||
.byte "and no minibar? The",13
|
||||
.byte "Innkeeper stands behind a",13
|
||||
.byte "desk and there's a door",13
|
||||
.byte "that's closed.",0
|
||||
|
||||
; + look (night)
|
||||
.byte "It's still dark out. The grimey old Innkeeper is gone and he left the pantry open.",0
|
||||
|
||||
; + look window
|
||||
inside_inn_look_window_message:
|
||||
.byte "Check it out! There's a",13
|
||||
.byte "Peasantry out there!",0
|
||||
|
||||
; + look man
|
||||
inside_inn_look_man_message:
|
||||
.byte "He's an older peasant with",13
|
||||
.byte "big cotton swabs stuffed up",13
|
||||
.byte "his nose. Oh wait. Those",13
|
||||
.byte "are nose hairs. Grody.",0
|
||||
|
||||
; + look painting
|
||||
inside_inn_look_painting_message:
|
||||
.byte "It's a painting of dogs",13
|
||||
.byte "playing 'Magic: The",13
|
||||
.byte "Nerdening.'",0
|
||||
|
||||
; + look paper / note / parchment
|
||||
inside_inn_look_paper_message:
|
||||
.byte "It says, ",34,"Note to self:",13
|
||||
.byte "Wave arms wildly!",34,0
|
||||
|
||||
; + look pillow
|
||||
inside_inn_look_pillow_message:
|
||||
.byte "If you sleep in that bed,",13
|
||||
.byte "you're NOT putting your",13
|
||||
.byte "head on that nasty pillow.",0
|
||||
|
||||
; + look pot (after getting a room)
|
||||
.byte "It's full of horse grease. I guess that sounds useful.",0
|
||||
|
||||
; + look rug
|
||||
inside_inn_look_rug_message:
|
||||
.byte "Maybe that used to be a",13
|
||||
.byte "magic carpet. But it's sure",13
|
||||
.byte "a cat pee-stained carpet",13
|
||||
.byte "now.",0
|
||||
|
||||
; + look bed
|
||||
inside_inn_look_bed_message:
|
||||
.byte "Is that just a fitted sheet",13
|
||||
.byte "over a slab of concrete?",0
|
||||
|
||||
; + look bell
|
||||
inside_inn_look_bell_message:
|
||||
.byte "Tis broked.",0
|
||||
|
||||
; + look desk (man there)
|
||||
inside_inn_look_desk_message:
|
||||
.byte "There's a broken bell and",13
|
||||
.byte "a piece of parchment on",13
|
||||
.byte "there. And some crazy old",13
|
||||
.byte "guy behind it.",0
|
||||
|
||||
; + look (night)
|
||||
.byte "It's still dark out. The grimey old Innkeeper is gone and he left the pantry open.",0
|
||||
|
||||
; + look desk (night?)
|
||||
.byte "There's a broken bell and",13
|
||||
.byte "a piece of parchment on",13
|
||||
.byte "there.",0
|
||||
|
||||
; + look candle (after getting a room)
|
||||
.byte "That candle's not at all on fire.",0
|
||||
|
||||
; + talk man
|
||||
inside_inn_talk_man_message:
|
||||
.byte 34,"If you're interested in",13
|
||||
.byte "staying the night, just",13
|
||||
.byte "type 'get a room.'",34,0
|
||||
|
||||
; + give baby (before you get the baby)
|
||||
; + give/use baby (before you get the baby)
|
||||
inside_inn_give_baby_before_message:
|
||||
.byte "You have no baby nor any",13
|
||||
.byte "immediate prospects.",0
|
||||
|
||||
; +5 POINTS
|
||||
; + give/use baby (by desk)
|
||||
inside_inn_give_baby_message:
|
||||
.byte 34,"Well lookit that little guy!",34," says the Innkeeper. ",34,"You want a treat, do ya? What do babies like?",34," He fishes around in his pockets.",0
|
||||
|
||||
inside_inn_give_baby2_message:
|
||||
.byte 34,"Um, how bout my medication!",34," You grab the bottle of pills before he can force them on the baby. ",34,"Hey, those were for him!",34,0
|
||||
|
||||
; + give baby (when you already have the pills)
|
||||
; + give/use baby (when you already have the pills)
|
||||
inside_inn_give_baby_already_message:
|
||||
.byte "You already milked that fogey for all the pills he's worth.",0
|
||||
|
||||
; + get a room (without robe)
|
||||
; + get a room (without robe) (do you need to be wearing it?)
|
||||
inside_inn_get_room_no_robe_message:
|
||||
.byte 34,"I only serve peasants",13
|
||||
.byte "here, fancypants!",34," barks",13
|
||||
.byte "the old guy. ",34,"Where's your",13
|
||||
@ -44,10 +111,50 @@
|
||||
|
||||
; +3 POINTS
|
||||
; + get room (with robe)
|
||||
inside_inn_get_room_message:
|
||||
.byte 34,"Okay, youngster,",34," says the decrepit old person. ",34,"Just bed on down for the night and I'm sure I'll remember to collect the fee come morning.",34,0
|
||||
inside_inn_get_room2_message:
|
||||
.byte "Night falls like a bad power point presentation.",0
|
||||
inside_inn_get_room3_message:
|
||||
.byte "What an uncomfortable bed! You sleep for maybe 20 minutes before the extreme pain in your spine forces you to get up.",0
|
||||
|
||||
; + get paper
|
||||
inside_inn_get_paper_message:
|
||||
.byte "Naw, it might be important",13
|
||||
.byte "to that wrinkly old loon.",0
|
||||
|
||||
; + get painting ; WIKI IS WRONG
|
||||
inside_inn_get_painting_message:
|
||||
.byte "Weird. It's actually just",13
|
||||
.byte "painted right onto the",13
|
||||
.byte "wall. Like, the frame and",13
|
||||
.byte "everything.",0
|
||||
|
||||
; + get rug
|
||||
inside_inn_get_rug_message:
|
||||
.byte "You're not touching that",13
|
||||
.byte "thing. Too many",13
|
||||
.byte "questionable stains on it.",0
|
||||
|
||||
; + get doing-sproings
|
||||
inside_inn_get_doing_message:
|
||||
.byte "That's the worst thing",13
|
||||
.byte "anyone has ever tried to",13
|
||||
.byte "type in this game. Ever.",0
|
||||
|
||||
; + get pillow
|
||||
inside_inn_get_pillow_message:
|
||||
.byte "Not a chance. There's even",13
|
||||
.byte "more questionable stains",13
|
||||
.byte "on that pillow than there",13
|
||||
.byte "are on that rug.",0
|
||||
|
||||
; + get bell
|
||||
inside_inn_get_bell_message:
|
||||
.byte "You can't. It looks like",13
|
||||
.byte "it's been somehow olded to",13
|
||||
.byte "the desk.",0
|
||||
|
||||
; + get a room (when on fire)
|
||||
.byte 34,"Board of Peasant Health says I can't serve any folk that's on fire. Nothing personal. Well, I mean, I don't like you much anyway.",34,0
|
||||
|
||||
@ -56,8 +163,8 @@
|
||||
.byte "You reach way up to the top shelf.",0
|
||||
.byte "Oh great! Now you can't see a thing and your head is covered in highly flammable horse grease. You better get out of here before that disgusting old man comes back.",0
|
||||
|
||||
; + get bell (after getting a room)
|
||||
.byte "You can't. It looks like it's been somehow olded to the desk.",0
|
||||
; + get pot (if you already have it)
|
||||
.byte "You already have a nice greasy swab of it on the corner of your hood.",0
|
||||
|
||||
; + get candle (at night)
|
||||
.byte "It seems like you should be able to do that, doesn't it? Sorry. No dice.",0
|
||||
@ -65,57 +172,43 @@
|
||||
; + get grease (at night, already have it)
|
||||
.byte "You already have a nice greasy swab of it on the corner of your hood.",0
|
||||
|
||||
; + get old man rub (in the inn ?? when)
|
||||
; + get old man rub (in the inn ?? when) (after getting pills?)
|
||||
.byte "You disgust me.",0
|
||||
|
||||
; + get paper
|
||||
.byte "Naw, it might be important",13
|
||||
.byte "to that wrinkly old loon.",0
|
||||
|
||||
; + get painting ; WIKI IS WRONG
|
||||
.byte "Weird. It's actually just",13
|
||||
.byte "painted right onto the",13
|
||||
.byte "wall. Like, the frame and",13
|
||||
.byte "everything.",0
|
||||
|
||||
; + get pot (if you already have it)
|
||||
.byte "You already have a nice greasy swab of it on the corner of your hood.",0
|
||||
|
||||
; + get rug
|
||||
.byte "You're not touching that",13
|
||||
.byte "thing. Too many",13
|
||||
.byte "questionable stains on it.",0
|
||||
|
||||
; + (exiting inn with pot on head)
|
||||
.byte "Phew! You discard the big black pot and wipe the horse grease from your eyes. The hood of your robe is still covered in highly flammable horse grease, though.",0
|
||||
|
||||
; + ask about fire
|
||||
inside_inn_ask_about_fire_message:
|
||||
.byte 34,"I've always preferred",13
|
||||
.byte "being on fire at night.",13
|
||||
.byte "Looks prettier and keeps",13
|
||||
.byte "the butterflies away.",34,0
|
||||
|
||||
; + ask about naked ned
|
||||
inside_inn_ask_about_ned_message:
|
||||
.byte 34,"He used to be such a nice,",13
|
||||
.byte "clothed young man. Wonder",13
|
||||
.byte "what he's done with all his",13
|
||||
.byte "old clothes?",34,0
|
||||
|
||||
; + ask about robe
|
||||
inside_inn_ask_about_robe_message:
|
||||
.byte 34,"I wear my robe hood-down",13
|
||||
.byte "so it's easier to trim my",13
|
||||
.byte "ear hairs. If you need a",13
|
||||
.byte "robe, maybe try someone",13
|
||||
.byte "that's not using theirs.",34,0
|
||||
|
||||
|
||||
; + ask about smell
|
||||
inside_inn_ask_about_smell_message:
|
||||
.byte 34,"Well, if you don't stink,",13
|
||||
.byte "maybe find something that",13
|
||||
.byte "does and wear it. Like a",13
|
||||
.byte "dead carcass or summat.",34,0
|
||||
|
||||
; + ask about trogdor
|
||||
inside_inn_ask_about_trogdor_message:
|
||||
.byte 34,"Are you talking about that",13
|
||||
.byte "young green boy that lives",13
|
||||
.byte "up the street? He's always",13
|
||||
@ -123,10 +216,12 @@
|
||||
.byte "eating my customers.",34,0
|
||||
|
||||
; + ask about (unknown)
|
||||
inside_inn_ask_about_unknown_message:
|
||||
.byte 34,"I don't know nothing about",13
|
||||
.byte "no whatever you just said.",34,0
|
||||
|
||||
; + ring bell
|
||||
inside_inn_ring_bell_message:
|
||||
.byte "Instead of ringing or",13
|
||||
.byte "dinging, it just goes",13
|
||||
.byte "'DUNG.'",0
|
||||
@ -135,73 +230,16 @@
|
||||
.byte "It seems like you should be able to do that, doesn't it? Sorry. No dice.",0
|
||||
|
||||
; + open door (before getting room)
|
||||
inside_inn_open_door_message:
|
||||
.byte 34,"That's the pantry,",34," says",13
|
||||
.byte "the Innkeeper. ",34,"Employees",13
|
||||
.byte "only.",34,0
|
||||
|
||||
; + sleep/sleep on bed (man is there)
|
||||
; + get bed, sleep/sleep on bed (man is there)
|
||||
inside_inn_get_bed_message:
|
||||
inside_inn_sleep_bed_message:
|
||||
.byte "You probably want to talk",13
|
||||
.byte "to that stinky old guy over",13
|
||||
.byte "there about that.",0
|
||||
|
||||
; + get doing-sproings
|
||||
.byte "That's the worst thing",13
|
||||
.byte "anyone has ever tried to",13
|
||||
.byte "type in this game. Ever.",0
|
||||
|
||||
; + get pillow
|
||||
.byte "Not a chance. There's even",13
|
||||
.byte "more questionable stains",13
|
||||
.byte "on that pillow than there",13
|
||||
.byte "are on that rug.",0
|
||||
|
||||
; + look man
|
||||
.byte "He's an older peasant with",13
|
||||
.byte "big cotton swabs stuffed up",13
|
||||
.byte "his nose. Oh wait. Those",13
|
||||
.byte "are nose hairs. Grody.",0
|
||||
|
||||
; + look painting
|
||||
.byte "It's a painting of dogs",13
|
||||
.byte "playing 'Magic: The",13
|
||||
.byte "Nerdening.'",0
|
||||
|
||||
; + look paper
|
||||
.byte "It says, ",34,"Note to self:",13
|
||||
.byte "Wave arms wildly!",34,0
|
||||
|
||||
; + look pillow
|
||||
.byte "If you sleep in that bed,",13
|
||||
.byte "you're NOT putting your",13
|
||||
.byte "head on that nasty pillow.",0
|
||||
|
||||
; + look pot (after getting a room)
|
||||
.byte "It's full of horse grease. I guess that sounds useful.",0
|
||||
|
||||
; + look rug
|
||||
.byte "Maybe that used to be a",13
|
||||
.byte "magic carpet. But it's sure",13
|
||||
.byte "a cat pee-stained carpet",13
|
||||
.byte "now.",0
|
||||
|
||||
; + look bed
|
||||
.byte "Is that just a fitted sheet",13
|
||||
.byte "over a slab of concrete?",0
|
||||
|
||||
; + look bell
|
||||
.byte "Tis broked.",0
|
||||
|
||||
; + look candle (after getting a room)
|
||||
.byte "That candle's not at all on fire.",0
|
||||
|
||||
; + look desk (man there)
|
||||
.byte "There's a broken bell and",13
|
||||
.byte "a piece of parchment on",13
|
||||
.byte "there. And some crazy old",13
|
||||
.byte "guy behind it.",0
|
||||
|
||||
; + look desk (night?)
|
||||
.byte "There's a broken bell and",13
|
||||
.byte "a piece of parchment on",13
|
||||
.byte "there.",0
|
||||
|
||||
|
@ -185,5 +185,10 @@ NOUN_WISH = 104
|
||||
NOUN_ARMS = 105
|
||||
NOUN_GOLD = 106
|
||||
NOUN_MONEY = 107
|
||||
NOUN_CARPET = 108
|
||||
NOUN_BED = 109
|
||||
NOUN_MATTRESS = 110
|
||||
NOUN_PARCHMENT = 111
|
||||
|
||||
;
|
||||
NOUN_UNKNOWN = 108
|
||||
NOUN_UNKNOWN = 112
|
||||
|
Loading…
Reference in New Issue
Block a user