mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-16 23:20:43 +00:00
peasant: hook up inn responses
This commit is contained in:
parent
d24902fcdb
commit
be464038f7
@ -264,8 +264,7 @@ PEASANT1: peasant1.o
|
||||
|
||||
peasant1.o: peasant1.s zp.inc inventory.inc \
|
||||
parse_input.inc \
|
||||
peasant1_actions.s \
|
||||
DIALOG_PEASANT1.LZSA dialog_peasant1.inc \
|
||||
peasant1_actions.s DIALOG_PEASANT1.LZSA dialog_peasant1.inc \
|
||||
sprites/peasant_sprites.inc sprites/inventory_sprites.inc \
|
||||
graphics_peasantry/graphics_peasant1.inc \
|
||||
graphics_peasantry/priority_peasant1.inc \
|
||||
@ -283,15 +282,14 @@ PEASANT2: peasant2.o
|
||||
|
||||
peasant2.o: peasant2.s zp.inc inventory.inc \
|
||||
parse_input.inc \
|
||||
peasant2_actions.s \
|
||||
dialog_peasant2.inc DIALOG_PEASANT2.LZSA \
|
||||
peasant2_actions.s DIALOG_PEASANT2.LZSA dialog_peasant2.inc \
|
||||
graphics_peasantry/graphics_peasant2.inc sprites/peasant_sprites.inc \
|
||||
graphics_peasantry/priority_peasant2.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 parse_input.s new_map_location.s \
|
||||
keyboard.s new_map_location.s \
|
||||
peasant_move.s score.s inventory.s loadsave_menu.s
|
||||
ca65 -o peasant2.o peasant2.s -l peasant2.lst
|
||||
|
||||
@ -301,12 +299,14 @@ PEASANT3: peasant3.o
|
||||
ld65 -o PEASANT3 peasant3.o -C $(LINKER_SCRIPTS)/apple2_6000.inc
|
||||
|
||||
peasant3.o: peasant3.s zp.inc inventory.inc \
|
||||
parse_input.inc \
|
||||
peasant3_actions.s DIALOG_PEASANT3.LZSA dialog_peasant3.inc \
|
||||
graphics_peasantry/graphics_peasant3.inc sprites/peasant_sprites.inc \
|
||||
graphics_peasantry/priority_peasant3.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 parse_input.s new_map_location.s \
|
||||
keyboard.s new_map_location.s \
|
||||
peasant_move.s score.s
|
||||
ca65 -o peasant3.o peasant3.s -l peasant3.lst
|
||||
|
||||
@ -316,12 +316,14 @@ PEASANT4: peasant4.o
|
||||
ld65 -o PEASANT4 peasant4.o -C $(LINKER_SCRIPTS)/apple2_6000.inc
|
||||
|
||||
peasant4.o: peasant4.s zp.inc inventory.inc \
|
||||
parse_input.inc \
|
||||
peasant4_actions.s DIALOG_PEASANT4.LZSA dialog_peasant4.inc \
|
||||
graphics_peasantry/graphics_peasant4.inc sprites/peasant_sprites.inc \
|
||||
graphics_peasantry/priority_peasant4.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 parse_input.s new_map_location.s \
|
||||
keyboard.s new_map_location.s \
|
||||
peasant_move.s score.s
|
||||
ca65 -o peasant4.o peasant4.s -l peasant4.lst
|
||||
|
||||
@ -470,6 +472,10 @@ dialog_peasant3.o: dialog_peasant3.s text/peasant3.inc
|
||||
|
||||
###
|
||||
|
||||
dialog_peasant3.inc: generate_all_symbols dialog_peasant3
|
||||
./generate_all_symbols -a 0xd000 dialog_peasant3.lst > dialog_peasant3.inc
|
||||
|
||||
####
|
||||
DIALOG_PEASANT4.LZSA: dialog_peasant4
|
||||
$(LZSA) -r -f2 dialog_peasant4 DIALOG_PEASANT4.LZSA
|
||||
|
||||
@ -481,6 +487,11 @@ dialog_peasant4.o: dialog_peasant4.s text/peasant4.inc
|
||||
|
||||
###
|
||||
|
||||
dialog_peasant4.inc: generate_all_symbols dialog_peasant4
|
||||
./generate_all_symbols -a 0xd000 dialog_peasant4.lst > dialog_peasant4.inc
|
||||
|
||||
####
|
||||
|
||||
DIALOG_INSIDE.LZSA: dialog_inside
|
||||
$(LZSA) -r -f2 dialog_inside DIALOG_INSIDE.LZSA
|
||||
|
||||
|
@ -1,5 +1,9 @@
|
||||
TODO:
|
||||
|
||||
optimizations:
|
||||
+ always load CURERENT_NOUN into A before calling into parsing
|
||||
routines
|
||||
|
||||
+ print warning message on 48k systems that we need at least 64k
|
||||
|
||||
+ more frames in animation for game_over
|
||||
|
@ -42,12 +42,11 @@ peasantry2:
|
||||
|
||||
jsr update_map_location
|
||||
|
||||
|
||||
|
||||
; update score
|
||||
|
||||
jsr update_score
|
||||
|
||||
|
||||
;=============================
|
||||
;=============================
|
||||
; new screen location
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
; Peasantry Part 3 (third line of map)
|
||||
|
||||
; Jhonka, your cottage, w lake, e lake, inn
|
||||
; Jhonka, your cottage, w lake, e lake, inn
|
||||
|
||||
WHICH_PEASANTRY = 2
|
||||
|
||||
@ -17,13 +17,25 @@ WHICH_PEASANTRY = 2
|
||||
.include "inventory.inc"
|
||||
.include "parse_input.inc"
|
||||
|
||||
peasant_quest:
|
||||
peasantry3:
|
||||
|
||||
lda #0
|
||||
sta GAME_OVER
|
||||
sta FRAME
|
||||
jsr hgr_make_tables
|
||||
|
||||
jsr hgr2
|
||||
jsr hgr_make_tables ; necessary?
|
||||
jsr hgr2 ; necessary?
|
||||
|
||||
; decompress dialog to $D000
|
||||
|
||||
lda #<peasant3_text_lzsa
|
||||
sta getsrc_smc+1
|
||||
lda #>peasant3_text_lzsa
|
||||
sta getsrc_smc+2
|
||||
|
||||
lda #$D0
|
||||
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
|
||||
; update map location
|
||||
@ -45,6 +57,23 @@ new_location:
|
||||
lda #0
|
||||
sta GAME_OVER
|
||||
|
||||
|
||||
;==========================
|
||||
; load updated verb table
|
||||
|
||||
; we are PEASANT3 so locations 10...14 map to 0...4
|
||||
|
||||
lda MAP_LOCATION
|
||||
sec
|
||||
sbc #10
|
||||
tax
|
||||
|
||||
lda verb_tables_low,X
|
||||
sta INL
|
||||
lda verb_tables_hi,X
|
||||
sta INH
|
||||
jsr load_custom_verb_table
|
||||
|
||||
;=====================
|
||||
; load bg
|
||||
|
||||
@ -214,3 +243,23 @@ map_priority_hi:
|
||||
.byte >lake_w_priority_lzsa ; 12 -- lake west
|
||||
.byte >lake_e_priority_lzsa ; 13 -- lake east
|
||||
.byte >inn_priority_lzsa ; 14 -- inn
|
||||
|
||||
verb_tables_low:
|
||||
.byte <inn_verb_table ; 10 -- jhonka
|
||||
.byte <inn_verb_table ; 11 -- cottage
|
||||
.byte <inn_verb_table ; 12 -- lake west
|
||||
.byte <inn_verb_table ; 13 -- lake east
|
||||
.byte <inn_verb_table ; 14 -- inn
|
||||
|
||||
verb_tables_hi:
|
||||
.byte >inn_verb_table ; 10 -- jhonka
|
||||
.byte >inn_verb_table ; 11 -- cottage
|
||||
.byte >inn_verb_table ; 12 -- lake west
|
||||
.byte >inn_verb_table ; 13 -- lake east
|
||||
.byte >inn_verb_table ; 14 -- inn
|
||||
|
||||
|
||||
peasant3_text_lzsa:
|
||||
.incbin "DIALOG_PEASANT3.LZSA"
|
||||
|
||||
.include "peasant3_actions.s"
|
||||
|
916
games/peasant/peasant4_actions.s
Normal file
916
games/peasant/peasant4_actions.s
Normal file
@ -0,0 +1,916 @@
|
||||
.include "tokens.inc"
|
||||
|
||||
;=======================
|
||||
;=======================
|
||||
;=======================
|
||||
; Gary the Horse
|
||||
;=======================
|
||||
;=======================
|
||||
;=======================
|
||||
|
||||
gary_verb_table:
|
||||
.byte VERB_BREAK
|
||||
.word gary_break-1
|
||||
.byte VERB_CLIMB
|
||||
.word gary_climb-1
|
||||
.byte VERB_FEED
|
||||
.word gary_feed-1
|
||||
.byte VERB_GET
|
||||
.word gary_get-1
|
||||
.byte VERB_JUMP
|
||||
.word gary_jump-1
|
||||
.byte VERB_KICK
|
||||
.word gary_kick-1
|
||||
.byte VERB_KILL
|
||||
.word gary_kill-1
|
||||
.byte VERB_LOOK
|
||||
.word gary_look-1
|
||||
.byte VERB_PET
|
||||
.word gary_pet-1
|
||||
.byte VERB_PUNCH
|
||||
.word gary_punch-1
|
||||
.byte VERB_SIT
|
||||
.word gary_sit-1
|
||||
.byte VERB_RIDE
|
||||
.word gary_ride-1
|
||||
.byte VERB_SCARE
|
||||
.word gary_scare-1
|
||||
.byte VERB_TALK
|
||||
.word gary_talk-1
|
||||
.byte VERB_WEAR
|
||||
.word gary_wear-1
|
||||
.byte 0
|
||||
|
||||
;================
|
||||
; break
|
||||
;================
|
||||
gary_sit:
|
||||
gary_break:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_STUMP
|
||||
beq gary_sit_stump
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
gary_sit_stump:
|
||||
jmp gary_look_at_stump
|
||||
|
||||
;================
|
||||
; climb
|
||||
;================
|
||||
gary_jump:
|
||||
gary_climb:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_FENCE
|
||||
beq gary_climb_fence
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
gary_climb_fence:
|
||||
ldx #<gary_climb_fence_message
|
||||
ldy #>gary_climb_fence_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
;================
|
||||
; feed
|
||||
;================
|
||||
gary_feed:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_GARY
|
||||
beq gary_feed_horse
|
||||
cmp #NOUN_HORSE
|
||||
beq gary_feed_horse
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
gary_feed_horse:
|
||||
ldx #<gary_feed_horse_message
|
||||
ldy #>gary_feed_horse_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
;================
|
||||
; get
|
||||
;================
|
||||
gary_get:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_FLIES
|
||||
beq gary_get_flies
|
||||
|
||||
; else "probably wish" message
|
||||
|
||||
jmp parse_common_get
|
||||
|
||||
gary_get_flies:
|
||||
ldx #<gary_get_flies_message
|
||||
ldy #>gary_get_flies_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;===================
|
||||
; kick/kill/punch
|
||||
;===================
|
||||
|
||||
gary_kick:
|
||||
gary_kill:
|
||||
gary_punch:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_GARY
|
||||
beq kick_gary
|
||||
cmp #NOUN_HORSE
|
||||
beq kick_gary
|
||||
|
||||
cmp #NOUN_FLIES
|
||||
beq kick_flies
|
||||
|
||||
cmp #NOUN_STUMP
|
||||
beq kick_stump
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
kick_gary:
|
||||
; TODO: this kills you
|
||||
ldx #<gary_kick_horse_message
|
||||
ldy #>gary_kick_horse_message
|
||||
jsr partial_message_step
|
||||
|
||||
ldx #<gary_kick_horse_message2
|
||||
ldy #>gary_kick_horse_message2
|
||||
jmp finish_parse_message
|
||||
|
||||
kick_flies:
|
||||
ldx #<gary_kick_flies_message
|
||||
ldy #>gary_kick_flies_message
|
||||
jmp finish_parse_message
|
||||
|
||||
kick_stump:
|
||||
ldx #<gary_kick_stump_message
|
||||
ldy #>gary_kick_stump_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;=================
|
||||
; look
|
||||
;=================
|
||||
|
||||
gary_look:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_FENCE
|
||||
beq gary_look_at_fence
|
||||
cmp #NOUN_FLIES
|
||||
beq gary_look_at_flies
|
||||
cmp #NOUN_GARY
|
||||
beq gary_look_at_horse
|
||||
cmp #NOUN_HORSE
|
||||
beq gary_look_at_horse
|
||||
cmp #NOUN_STUMP
|
||||
beq gary_look_at_stump
|
||||
|
||||
cmp #NOUN_NONE
|
||||
beq gary_look_at
|
||||
|
||||
jmp parse_common_look
|
||||
|
||||
gary_look_at:
|
||||
ldx #<gary_look_message
|
||||
ldy #>gary_look_message
|
||||
jmp finish_parse_message
|
||||
|
||||
gary_look_at_fence:
|
||||
ldx #<gary_look_fence_message
|
||||
ldy #>gary_look_fence_message
|
||||
jmp finish_parse_message
|
||||
|
||||
gary_look_at_flies:
|
||||
ldx #<gary_look_flies_message
|
||||
ldy #>gary_look_flies_message
|
||||
jmp finish_parse_message
|
||||
|
||||
gary_look_at_gary:
|
||||
gary_look_at_horse:
|
||||
ldx #<gary_look_horse_message
|
||||
ldy #>gary_look_horse_message
|
||||
jmp finish_parse_message
|
||||
|
||||
gary_look_at_stump:
|
||||
ldx #<gary_look_stump_message
|
||||
ldy #>gary_look_stump_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;================
|
||||
; pet
|
||||
;================
|
||||
gary_pet:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_GARY
|
||||
beq gary_pet_horse
|
||||
cmp #NOUN_HORSE
|
||||
beq gary_pet_horse
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
gary_pet_horse:
|
||||
ldx #<gary_pet_horse_message
|
||||
ldy #>gary_pet_horse_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
;================
|
||||
; ride
|
||||
;================
|
||||
gary_ride:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_GARY
|
||||
beq gary_ride_horse
|
||||
cmp #NOUN_HORSE
|
||||
beq gary_ride_horse
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
gary_ride_horse:
|
||||
ldx #<gary_ride_horse_message
|
||||
ldy #>gary_ride_horse_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;================
|
||||
; scare
|
||||
;================
|
||||
gary_scare:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_GARY
|
||||
beq gary_scare_horse
|
||||
cmp #NOUN_HORSE
|
||||
beq gary_scare_horse
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
; FIXME: randomly pick from 3 choices
|
||||
gary_scare_horse:
|
||||
ldx #<gary_scare_horse_message1
|
||||
ldy #>gary_scare_horse_message1
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
|
||||
;================
|
||||
; talk
|
||||
;================
|
||||
gary_talk:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_GARY
|
||||
beq gary_talk_horse
|
||||
cmp #NOUN_HORSE
|
||||
beq gary_talk_horse
|
||||
cmp #NOUN_STUMP
|
||||
beq gary_look_at_stump
|
||||
cmp #NOUN_NONE
|
||||
beq gary_talk_horse
|
||||
|
||||
jmp parse_common_talk
|
||||
|
||||
gary_talk_horse:
|
||||
ldx #<gary_talk_message
|
||||
ldy #>gary_talk_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
;===================
|
||||
; wear mask
|
||||
;===================
|
||||
|
||||
gary_wear:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_MASK
|
||||
beq wear_mask
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
wear_mask:
|
||||
jmp parse_common_unknown
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.if 0
|
||||
;=======================
|
||||
;=======================
|
||||
;=======================
|
||||
; Puddle
|
||||
;=======================
|
||||
;=======================
|
||||
;=======================
|
||||
|
||||
puddle_verb_table:
|
||||
.byte VERB_GET
|
||||
.word puddle_get-1
|
||||
.byte VERB_TAKE
|
||||
.word puddle_take-1
|
||||
.byte VERB_STEAL
|
||||
.word puddle_steal-1
|
||||
.byte VERB_LOOK
|
||||
.word puddle_look-1
|
||||
.byte 0
|
||||
|
||||
|
||||
;================
|
||||
; get
|
||||
;================
|
||||
puddle_get:
|
||||
puddle_steal:
|
||||
puddle_take:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_ROCK
|
||||
beq puddle_get_rock
|
||||
cmp #NOUN_STONE
|
||||
beq puddle_get_rock
|
||||
|
||||
|
||||
; else "probably wish" message
|
||||
|
||||
jmp parse_common_get
|
||||
|
||||
puddle_get_rock:
|
||||
ldx #<puddle_get_rock_message
|
||||
ldy #>puddle_get_rock_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;=================
|
||||
; look
|
||||
;=================
|
||||
|
||||
puddle_look:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_ROCK
|
||||
beq puddle_look_at_rock
|
||||
cmp #NOUN_STONE
|
||||
beq puddle_look_at_rock
|
||||
cmp #NOUN_MUD
|
||||
beq puddle_look_at_mud
|
||||
cmp #NOUN_PUDDLE
|
||||
beq puddle_look_at_mud
|
||||
cmp #NOUN_NONE
|
||||
beq puddle_look_at
|
||||
|
||||
jmp parse_common_look
|
||||
|
||||
puddle_look_at:
|
||||
ldx #<puddle_look_at_message
|
||||
ldy #>puddle_look_at_message
|
||||
jmp finish_parse_message
|
||||
|
||||
puddle_look_at_mud:
|
||||
ldx #<puddle_look_mud_message
|
||||
ldy #>puddle_look_mud_message
|
||||
jmp finish_parse_message
|
||||
|
||||
puddle_look_at_rock:
|
||||
ldx #<puddle_get_rock_message
|
||||
ldy #>puddle_get_rock_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
;=======================
|
||||
;=======================
|
||||
;=======================
|
||||
; Archery
|
||||
;=======================
|
||||
;=======================
|
||||
;=======================
|
||||
|
||||
archery_verb_table:
|
||||
.byte VERB_ASK
|
||||
.word archery_ask-1
|
||||
.byte VERB_GET
|
||||
.word archery_get-1
|
||||
.byte VERB_GIVE
|
||||
.word archery_give-1
|
||||
.byte VERB_HALDO
|
||||
.word archery_haldo-1
|
||||
.byte VERB_LOOK
|
||||
.word archery_look-1
|
||||
.byte VERB_PLAY
|
||||
.word archery_play-1
|
||||
.byte VERB_STEAL
|
||||
.word archery_steal-1
|
||||
.byte VERB_TALK
|
||||
.word archery_talk-1
|
||||
.byte VERB_TAKE
|
||||
.word archery_take-1
|
||||
.byte 0
|
||||
|
||||
|
||||
;================
|
||||
; ask
|
||||
;================
|
||||
archery_ask:
|
||||
|
||||
; TODO
|
||||
|
||||
jmp parse_common_ask
|
||||
|
||||
|
||||
;================
|
||||
; get
|
||||
;================
|
||||
archery_get:
|
||||
archery_steal:
|
||||
archery_take:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_TARGET
|
||||
beq archery_get_target
|
||||
cmp #NOUN_ARROW
|
||||
beq archery_get_arrow
|
||||
|
||||
; else "probably wish" message
|
||||
|
||||
jmp parse_common_get
|
||||
|
||||
archery_get_target:
|
||||
ldx #<archery_get_target_message
|
||||
ldy #>archery_get_target_message
|
||||
jmp finish_parse_message
|
||||
|
||||
archery_get_arrow:
|
||||
ldx #<archery_get_arrow_message
|
||||
ldy #>archery_get_arrow_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;================
|
||||
; give
|
||||
;================
|
||||
archery_give:
|
||||
|
||||
; TODO
|
||||
|
||||
jmp parse_common_give
|
||||
|
||||
;================
|
||||
; haldo
|
||||
;================
|
||||
archery_haldo:
|
||||
|
||||
; TODO
|
||||
|
||||
jmp parse_common_haldo
|
||||
|
||||
|
||||
|
||||
;=================
|
||||
; look
|
||||
;=================
|
||||
|
||||
archery_look:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_DESK
|
||||
beq archery_look_at_desk
|
||||
cmp #NOUN_TARGET
|
||||
beq archery_look_at_target
|
||||
cmp #NOUN_ARCHER
|
||||
beq archery_look_at_archer
|
||||
cmp #NOUN_NONE
|
||||
beq archery_look_at
|
||||
|
||||
jmp parse_common_look
|
||||
|
||||
archery_look_at:
|
||||
ldx #<archery_look_message
|
||||
ldy #>archery_look_message
|
||||
jmp finish_parse_message
|
||||
|
||||
archery_look_at_archer:
|
||||
ldx #<archery_look_at_archer_message
|
||||
ldy #>archery_look_at_archer_message
|
||||
jmp finish_parse_message
|
||||
|
||||
archery_look_at_target:
|
||||
ldx #<archery_look_at_target_message
|
||||
ldy #>archery_look_at_target_message
|
||||
jmp finish_parse_message
|
||||
|
||||
archery_look_at_desk:
|
||||
ldx #<archery_look_at_desk_message
|
||||
ldy #>archery_look_at_desk_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
;================
|
||||
; play
|
||||
;================
|
||||
archery_play:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_GAME
|
||||
beq archery_play_game
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
archery_play_game:
|
||||
ldx #<archery_play_game_message
|
||||
ldy #>archery_play_game_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;================
|
||||
; talk
|
||||
;================
|
||||
archery_talk:
|
||||
|
||||
; only talk if close
|
||||
lda PEASANT_X
|
||||
cmp #23
|
||||
bcc archery_talk_too_far
|
||||
; check Y too?
|
||||
; probably less than $7D?
|
||||
; actual game will walk you in if close
|
||||
; will it work from beind?
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_MAN
|
||||
beq archery_talk_mendelev
|
||||
cmp #NOUN_GUY
|
||||
beq archery_talk_mendelev
|
||||
cmp #NOUN_DUDE
|
||||
beq archery_talk_mendelev
|
||||
cmp #NOUN_MENDELEV
|
||||
beq archery_talk_mendelev
|
||||
cmp #NOUN_ARCHER
|
||||
beq archery_talk_mendelev
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
archery_talk_mendelev:
|
||||
ldx #<archery_talk_mendelev_message
|
||||
ldy #>archery_talk_mendelev_message
|
||||
jsr partial_message_step
|
||||
|
||||
ldx #<archery_talk_mendelev2_message
|
||||
ldy #>archery_talk_mendelev2_message
|
||||
jsr partial_message_step
|
||||
|
||||
; add 1 point to score
|
||||
; make noise
|
||||
; but after the below somehow?
|
||||
|
||||
ldx #<archery_talk_mendelev3_message
|
||||
ldy #>archery_talk_mendelev3_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
archery_talk_too_far:
|
||||
ldx #<archery_talk_far_message
|
||||
ldy #>archery_talk_far_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
|
||||
;=======================
|
||||
;=======================
|
||||
;=======================
|
||||
; River and Stone
|
||||
;=======================
|
||||
;=======================
|
||||
;=======================
|
||||
|
||||
river_stone_verb_table:
|
||||
.byte VERB_GET
|
||||
.word river_stone_get-1
|
||||
.byte VERB_LOOK
|
||||
.word river_stone_look-1
|
||||
.byte VERB_STEAL
|
||||
.word river_stone_steal-1
|
||||
.byte VERB_SWIM
|
||||
.word river_stone_swim-1
|
||||
.byte VERB_TAKE
|
||||
.word river_stone_take-1
|
||||
.byte 0
|
||||
|
||||
|
||||
;================
|
||||
; get
|
||||
;================
|
||||
river_stone_steal:
|
||||
river_stone_take:
|
||||
river_stone_get:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_ROCK
|
||||
beq river_get_rock
|
||||
cmp #NOUN_STONE
|
||||
beq river_get_rock
|
||||
|
||||
; else "probably wish" message
|
||||
|
||||
jmp parse_common_get
|
||||
|
||||
river_get_rock:
|
||||
ldx #<river_get_rock_message
|
||||
ldy #>river_get_rock_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;=================
|
||||
; look
|
||||
;=================
|
||||
|
||||
river_stone_look:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_ROCK
|
||||
beq river_look_at_rock
|
||||
cmp #NOUN_STONE
|
||||
beq river_look_at_rock
|
||||
cmp #NOUN_WATER
|
||||
beq river_look_at_water
|
||||
cmp #NOUN_RIVER
|
||||
beq river_look_at_water
|
||||
cmp #NOUN_NONE
|
||||
beq river_look_at
|
||||
|
||||
jmp parse_common_look
|
||||
|
||||
river_look_at:
|
||||
ldx #<river_look_message
|
||||
ldy #>river_look_message
|
||||
jmp finish_parse_message
|
||||
|
||||
river_look_at_rock:
|
||||
ldx #<river_look_at_rock_message
|
||||
ldy #>river_look_at_rock_message
|
||||
jmp finish_parse_message
|
||||
|
||||
river_look_at_water:
|
||||
ldx #<river_look_at_water_message
|
||||
ldy #>river_look_at_water_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
|
||||
;===================
|
||||
; swim
|
||||
;===================
|
||||
|
||||
river_stone_swim:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_WATER
|
||||
beq river_swim
|
||||
cmp #NOUN_RIVER
|
||||
beq river_swim
|
||||
cmp #NOUN_ROCK
|
||||
beq river_swim
|
||||
cmp #NOUN_STONE
|
||||
beq river_swim
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
river_swim:
|
||||
ldx #<river_swim_message
|
||||
ldy #>river_swim_message
|
||||
jmp finish_parse_message
|
||||
|
||||
;=======================
|
||||
;=======================
|
||||
;=======================
|
||||
; mountain pass
|
||||
;=======================
|
||||
;=======================
|
||||
;=======================
|
||||
|
||||
mountain_pass_verb_table:
|
||||
.byte VERB_ASK
|
||||
.word mountain_pass_ask-1
|
||||
.byte VERB_ATTACK
|
||||
.word mountain_pass_attack-1
|
||||
.byte VERB_BREAK
|
||||
.word mountain_pass_break-1
|
||||
.byte VERB_LOOK
|
||||
.word mountain_pass_look-1
|
||||
.byte VERB_TALK
|
||||
.word mountain_pass_talk-1
|
||||
.byte 0
|
||||
|
||||
|
||||
;================
|
||||
; ask
|
||||
;================
|
||||
mountain_pass_ask:
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_FIRE
|
||||
beq ask_about_fire
|
||||
cmp #NOUN_JHONKA
|
||||
beq ask_about_jhonka
|
||||
cmp #NOUN_KERREK
|
||||
beq ask_about_kerrek
|
||||
cmp #NOUN_NED
|
||||
beq ask_about_ned
|
||||
cmp #NOUN_ROBE
|
||||
beq ask_about_robe
|
||||
cmp #NOUN_SMELL
|
||||
beq ask_about_smell
|
||||
cmp #NOUN_TROGDOR
|
||||
beq ask_about_trogdor
|
||||
|
||||
; else ask about unknown
|
||||
|
||||
ask_about_unknown:
|
||||
ldx #<knight_ask_unknown_message
|
||||
ldy #>knight_ask_unknown_message
|
||||
jmp finish_parse_message
|
||||
|
||||
ask_about_fire:
|
||||
ldx #<knight_ask_fire_message
|
||||
ldy #>knight_ask_fire_message
|
||||
jmp finish_parse_message
|
||||
|
||||
ask_about_jhonka:
|
||||
ldx #<knight_ask_jhonka_message
|
||||
ldy #>knight_ask_jhonka_message
|
||||
jmp finish_parse_message
|
||||
|
||||
ask_about_kerrek:
|
||||
ldx #<knight_ask_kerrek_message
|
||||
ldy #>knight_ask_kerrek_message
|
||||
jmp finish_parse_message
|
||||
|
||||
ask_about_ned:
|
||||
ldx #<knight_ask_ned_message
|
||||
ldy #>knight_ask_ned_message
|
||||
jmp finish_parse_message
|
||||
|
||||
ask_about_robe:
|
||||
ldx #<knight_ask_robe_message
|
||||
ldy #>knight_ask_robe_message
|
||||
jmp finish_parse_message
|
||||
|
||||
ask_about_smell:
|
||||
ldx #<knight_ask_smell_message
|
||||
ldy #>knight_ask_smell_message
|
||||
jmp finish_parse_message
|
||||
|
||||
ask_about_trogdor:
|
||||
ldx #<knight_ask_trogdor_message
|
||||
ldy #>knight_ask_trogdor_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
|
||||
;================
|
||||
; attack
|
||||
;================
|
||||
mountain_pass_break:
|
||||
mountain_pass_attack:
|
||||
lda CURRENT_NOUN
|
||||
cmp #NOUN_SIGN
|
||||
beq attack_sign
|
||||
|
||||
jmp parse_common_unknown
|
||||
|
||||
attack_sign:
|
||||
ldx #<attack_sign_message
|
||||
ldy #>attack_sign_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
;=================
|
||||
; look
|
||||
;=================
|
||||
|
||||
mountain_pass_look:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
|
||||
cmp #NOUN_KNIGHT
|
||||
beq knight_look
|
||||
cmp #NOUN_MAN
|
||||
beq knight_look
|
||||
cmp #NOUN_DUDE
|
||||
beq knight_look
|
||||
cmp #NOUN_GUY
|
||||
beq knight_look
|
||||
|
||||
cmp #NOUN_SIGN
|
||||
beq sign_look
|
||||
cmp #NOUN_TROGDOR
|
||||
beq trogdor_look
|
||||
cmp #NOUN_NONE
|
||||
beq pass_look
|
||||
|
||||
jmp parse_common_look
|
||||
|
||||
knight_look:
|
||||
ldx #<knight_look_message
|
||||
ldy #>knight_look_message
|
||||
jmp finish_parse_message
|
||||
|
||||
pass_look:
|
||||
ldx #<pass_look_message
|
||||
ldy #>pass_look_message
|
||||
jmp finish_parse_message
|
||||
|
||||
sign_look:
|
||||
ldx #<sign_look_message
|
||||
ldy #>sign_look_message
|
||||
jmp finish_parse_message
|
||||
|
||||
trogdor_look:
|
||||
ldx #<trogdor_look_message
|
||||
ldy #>trogdor_look_message
|
||||
jmp finish_parse_message
|
||||
|
||||
|
||||
;===================
|
||||
; talk
|
||||
;===================
|
||||
|
||||
mountain_pass_talk:
|
||||
|
||||
lda CURRENT_NOUN
|
||||
cmp #NOUN_KNIGHT
|
||||
beq talk_to_knight
|
||||
cmp #NOUN_GUY
|
||||
beq talk_to_knight
|
||||
cmp #NOUN_MAN
|
||||
beq talk_to_knight
|
||||
cmp #NOUN_DUDE
|
||||
beq talk_to_knight
|
||||
|
||||
; else, no one
|
||||
jmp parse_common_talk
|
||||
|
||||
talk_to_knight:
|
||||
|
||||
lda GAME_STATE_2
|
||||
and #TALKED_TO_KNIGHT
|
||||
bne knight_skip_text
|
||||
|
||||
; first time only
|
||||
ldx #<talk_knight_first_message
|
||||
ldy #>talk_knight_first_message
|
||||
jsr partial_message_step
|
||||
|
||||
; first time only
|
||||
ldx #<talk_knight_second_message
|
||||
ldy #>talk_knight_second_message
|
||||
jsr partial_message_step
|
||||
|
||||
knight_skip_text:
|
||||
ldx #<talk_knight_third_message
|
||||
ldy #>talk_knight_third_message
|
||||
jsr partial_message_step
|
||||
|
||||
ldx #<talk_knight_stink_message
|
||||
ldy #>talk_knight_stink_message
|
||||
jsr partial_message_step
|
||||
|
||||
ldx #<talk_knight_dress_message
|
||||
ldy #>talk_knight_dress_message
|
||||
jsr partial_message_step
|
||||
|
||||
ldx #<talk_knight_fire_message
|
||||
ldy #>talk_knight_fire_message
|
||||
jsr partial_message_step
|
||||
|
||||
ldx #<talk_knight_fourth_message
|
||||
ldy #>talk_knight_fourth_message
|
||||
|
||||
lda GAME_STATE_2
|
||||
and #TALKED_TO_KNIGHT
|
||||
bne knight_skip_text2
|
||||
|
||||
jsr partial_message_step
|
||||
|
||||
; first time only
|
||||
ldx #<talk_knight_fifth_message
|
||||
ldy #>talk_knight_fifth_message
|
||||
|
||||
lda GAME_STATE_2
|
||||
ora #TALKED_TO_KNIGHT
|
||||
sta GAME_STATE_2
|
||||
|
||||
knight_skip_text2:
|
||||
jmp finish_parse_message
|
||||
.endif
|
||||
|
||||
.include "dialog_peasant1.inc"
|
@ -313,30 +313,36 @@
|
||||
;===================
|
||||
|
||||
; + look
|
||||
outside_inn_look_message:
|
||||
.byte "There's a giant Inn here.",13
|
||||
.byte "It takes up, like, the",13
|
||||
.byte "entire screen.",13
|
||||
.byte "entire screen.",0
|
||||
|
||||
; + look door
|
||||
outside_inn_door_look_message:
|
||||
.byte "Just a door. A door with a",13
|
||||
.byte "note on it.",0
|
||||
|
||||
; + look inn
|
||||
outside_inn_inn_look_message:
|
||||
.byte "Looks okay from out here.",13
|
||||
.byte "But do they have a free",13
|
||||
.byte "breakfast buffet?",0
|
||||
|
||||
; + look sign
|
||||
outside_inn_sign_look_message:
|
||||
.byte "If you can't read that",13
|
||||
.byte "sign, you need to quit",13
|
||||
.byte "playing this game.",0
|
||||
|
||||
; + look window
|
||||
outside_inn_window_look_message:
|
||||
.byte "Check it out! There's an",13
|
||||
.byte "INN in there.",0
|
||||
|
||||
; + look note
|
||||
; + read note (before feed in lake)
|
||||
outside_inn_note_look_message:
|
||||
.byte "It says, ",34,"Gone Fishin",34," just",13
|
||||
.byte "like that grog coozie your",13
|
||||
.byte "cousin got you.",0
|
||||
@ -346,16 +352,19 @@
|
||||
.byte "You open the door and step",13
|
||||
.byte "inside the inn.",0
|
||||
|
||||
; + open door (before old man)
|
||||
; + open {none}/door (before old man)
|
||||
outside_inn_door_open_locked_message:
|
||||
.byte "It's locked fast!",0
|
||||
|
||||
; + knock (closed)
|
||||
; + knock {none}/door (closed)
|
||||
outside_inn_door_knock_locked_message:
|
||||
.byte "No answer.",0
|
||||
|
||||
; + knock (open)
|
||||
.byte "Just open it, man!",0
|
||||
|
||||
; + get note
|
||||
outside_inn_note_get_message:
|
||||
.byte "What is it with you and",13
|
||||
.byte "notes?! No!! ",0
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user