dos33fsprogs/games/peasant/peasant1_actions.s

1230 lines
21 KiB
ArmAsm

.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_kick_stump
;================
; climb
;================
gary_jump:
gary_climb:
lda CURRENT_NOUN
cmp #NOUN_FENCE
beq gary_climb_fence
jmp parse_common_unknown
gary_climb_fence:
lda GAME_STATE_0
and #GARY_SCARED
beq gary_climb_fence_there
gary_climb_fence_gone:
ldx #<gary_climb_fence_gone_message
ldy #>gary_climb_fence_gone_message
jmp finish_parse_message
gary_climb_fence_there:
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:
lda GAME_STATE_0
and #GARY_SCARED
beq gary_feed_horse_there
jmp parse_common_unknown
gary_feed_horse_there:
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:
lda GAME_STATE_0
and #GARY_SCARED
beq get_flies_there
jmp parse_common_get
get_flies_there:
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 gary_kick_stump
jmp parse_common_unknown
kick_gary:
lda GAME_STATE_0
and #GARY_SCARED
beq kick_gary_there
jmp gary_scare_horse_gone
kick_gary_there:
ldx #<gary_kick_horse_message
ldy #>gary_kick_horse_message
jsr partial_message_step
; this kills you
lda #LOAD_GAME_OVER
sta WHICH_LOAD
lda #NEW_FROM_DISK
sta LEVEL_OVER
ldx #<gary_kick_horse_message2
ldy #>gary_kick_horse_message2
jmp finish_parse_message
kick_flies:
lda GAME_STATE_0
and #GARY_SCARED
beq kick_flies_there
jmp parse_common_unknown
kick_flies_there:
ldx #<gary_kick_flies_message
ldy #>gary_kick_flies_message
jmp finish_parse_message
gary_kick_stump:
ldx #<gary_kick_stump_message
ldy #>gary_kick_stump_message
jmp finish_parse_message
;=================
; look
;=================
gary_look:
lda GAME_STATE_0
and #GARY_SCARED
beq gary_look_pre_scare
gary_look_post_scare:
lda CURRENT_NOUN
cmp #NOUN_FENCE
beq gary_look_at_fence_post
cmp #NOUN_STUMP
beq gary_look_at_stump
cmp #NOUN_NONE ; same
beq gary_look_at
jmp parse_common_look
gary_look_at_fence_post:
ldx #<gary_look_fence_after_scare_message
ldy #>gary_look_fence_after_scare_message
jmp finish_parse_message
;=================
; pre scare
gary_look_pre_scare:
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
; look at
gary_look_at:
ldx #<gary_look_message
ldy #>gary_look_message
jmp finish_parse_message
; look at fence
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
;===================
; wear mask
;===================
gary_wear:
lda CURRENT_NOUN
cmp #NOUN_MASK
beq wear_mask
jmp parse_common_unknown
wear_mask:
; if no have mask, unknown
; otherwise, same as if we did "scare gary"
lda INVENTORY_1
and #INV1_MONSTER_MASK
bne gary_scare_horse
jmp parse_common_unknown
;================
; scare
;================
gary_scare:
lda CURRENT_NOUN
cmp #NOUN_GARY
beq gary_scare_horse
cmp #NOUN_HORSE
beq gary_scare_horse
jmp parse_common_unknown
gary_scare_horse:
lda GAME_STATE_0
and #GARY_SCARED
bne gary_scare_horse_gone
lda INVENTORY_1
and #INV1_MONSTER_MASK
beq gary_scare_horse_nomask
gary_scare_horse_mask:
ldx #<gary_scare_message
ldy #>gary_scare_message
jsr partial_message_step
; get points
lda #2
jsr score_points
lda GAME_STATE_0
ora #GARY_SCARED
sta GAME_STATE_0
; TODO: break fence
ldx #<gary_scare_message2
ldy #>gary_scare_message2
jmp finish_parse_message
gary_scare_horse_nomask:
jsr random16
and #$3 ; 0..4
beq gary_scare_try2
cmp #$1
beq gary_scare_try3
gary_scare_try1:
ldx #<gary_scare_horse_message1
ldy #>gary_scare_horse_message1
jmp finish_parse_message
gary_scare_try2:
ldx #<gary_scare_horse_message2
ldy #>gary_scare_horse_message2
jmp finish_parse_message
gary_scare_try3:
ldx #<gary_scare_horse_message3
ldy #>gary_scare_horse_message3
jmp finish_parse_message
gary_scare_horse_gone:
ldx #<gary_gone_message
ldy #>gary_gone_message
jsr partial_message_step
ldx #<gary_gone_message2
ldy #>gary_gone_message2
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:
lda GAME_STATE_0
and #GARY_SCARED
beq pet_horse_there
jmp parse_common_unknown
pet_horse_there:
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:
lda GAME_STATE_0
and #GARY_SCARED
beq ride_horse_there
jmp parse_common_unknown
ride_horse_there:
ldx #<gary_ride_horse_message
ldy #>gary_ride_horse_message
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_talk_stump
cmp #NOUN_NONE
beq gary_talk_horse
jmp parse_common_talk
gary_talk_horse:
lda GAME_STATE_0
and #GARY_SCARED
beq gary_talk_there
jmp parse_common_talk
gary_talk_there:
ldx #<gary_talk_message
ldy #>gary_talk_message
jmp finish_parse_message
gary_talk_stump:
jmp gary_kick_stump
;=======================
;=======================
;=======================
; Kerrek
;=======================
;=======================
;=======================
.include "kerrek_actions.s"
;=======================
;=======================
;=======================
; Wishing Well
;=======================
;=======================
;=======================
wishing_well_verb_table:
.byte VERB_CLIMB
.word well_climb-1
.byte VERB_GET
.word well_get-1
.byte VERB_LOOK
.word well_look-1
.byte VERB_MAKE
.word well_make-1
.byte VERB_PUT
.word well_put-1
.byte VERB_STEAL
.word well_get-1
.byte VERB_TAKE
.word well_get-1
.byte VERB_TALK
.word well_talk-1
.byte VERB_THROW
.word well_throw-1
.byte VERB_TURN
.word well_turn-1
.byte VERB_USE
.word well_use-1
.byte VERB_DROP
.word well_use-1
.byte VERB_DEPLOY
.word well_use-1
.byte 0
;=================
; look
;=================
well_look:
lda CURRENT_NOUN
cmp #NOUN_IN_WELL
beq well_look_in_well
cmp #NOUN_WELL
beq well_look_at_well
cmp #NOUN_TREE
beq well_look_at_tree
cmp #NOUN_CRANK
beq well_look_at_crank
cmp #NOUN_BUCKET
beq well_look_at_bucket
cmp #NOUN_NONE
beq well_look_at
jmp parse_common_look
well_look_at:
ldx #<well_look_at_message
ldy #>well_look_at_message
jmp finish_parse_message
well_look_at_well:
ldx #<well_look_at_well_message
ldy #>well_look_at_well_message
jsr partial_message_step
lda INVENTORY_1
and #INV1_MONSTER_MASK
bne well_look_had_mask
ldx #<well_look_at_well_message2
ldy #>well_look_at_well_message2
well_look_had_mask:
jmp finish_parse_message
well_look_at_crank:
lda INVENTORY_1_GONE
and #INV1_PEBBLES ; see if pebbles are gone (in bucket)
beq crank_no_pebbles
ldx #<well_look_at_crank_pebbles_message
ldy #>well_look_at_crank_pebbles_message
jmp finish_parse_message
crank_no_pebbles:
ldx #<well_look_at_crank_message
ldy #>well_look_at_crank_message
jmp finish_parse_message
; look in well
well_look_in_well:
lda INVENTORY_1
and #INV1_MONSTER_MASK
bne look_in_well_after_mask
look_in_well_before_mask:
ldx #<well_look_in_well_message
ldy #>well_look_in_well_message
jmp finish_parse_message
look_in_well_after_mask:
ldx #<well_look_in_well_message2
ldy #>well_look_in_well_message2
jmp finish_parse_message
; look at tree
well_look_at_tree:
ldx #<well_look_at_tree_message
ldy #>well_look_at_tree_message
jmp finish_parse_message
; look at bucket
well_look_at_bucket:
ldx #<well_look_at_bucket_message
ldy #>well_look_at_bucket_message
jmp finish_parse_message
;================
; make
;================
well_make:
lda CURRENT_NOUN
cmp #NOUN_WISH
beq well_make_wish
jmp parse_common_unknown
well_make_wish:
ldx #<well_make_wish_message
ldy #>well_make_wish_message
jmp finish_parse_message
;================
; climb
;================
well_climb:
lda CURRENT_NOUN
cmp #NOUN_BUCKET
beq well_climb_bucket
cmp #NOUN_WELL
beq well_climb_well
cmp #NOUN_IN_WELL
beq well_climb_well
jmp parse_common_climb
well_climb_bucket:
ldx #<well_climb_bucket_message
ldy #>well_climb_bucket_message
jmp finish_parse_message
well_climb_well:
ldx #<well_climb_well_message
ldy #>well_climb_well_message
jmp finish_parse_message
;================
; get
;================
well_get:
lda CURRENT_NOUN
cmp #NOUN_BUCKET
beq well_get_bucket
jmp parse_common_get
well_get_bucket:
ldx #<well_get_bucket_message
ldy #>well_get_bucket_message
jmp finish_parse_message
;================
; talk
;================
well_talk:
lda CURRENT_NOUN
cmp #NOUN_WELL
beq well_talk_well
jmp parse_common_unknown
well_talk_well:
ldx #<well_talk_message
ldy #>well_talk_message
jmp finish_parse_message
;================
; use
;================
well_use:
lda CURRENT_NOUN
cmp #NOUN_PEBBLES
beq well_use_pebbles
cmp #NOUN_STONE
beq well_use_pebbles
cmp #NOUN_ROCK
beq well_use_pebbles
cmp #NOUN_BABY
beq well_use_baby
jmp parse_common_unknown
well_use_pebbles:
ldx #<well_use_pebbles_message
ldy #>well_use_pebbles_message
jmp finish_parse_message
well_use_baby:
ldx #<well_use_baby_message
ldy #>well_use_baby_message
jmp finish_parse_message
;================
; throw
;================
well_throw:
lda CURRENT_NOUN
cmp #NOUN_BABY
beq well_throw_baby
jmp parse_common_unknown
well_throw_baby:
; first see if have baby
lda INVENTORY_1
and #INV1_BABY
beq well_throw_baby_none
; next see if still have baby
lda INVENTORY_1_GONE
and #INV1_BABY
bne well_throw_baby_none
well_throw_baby_have:
ldx #<well_throw_baby_have_message
ldy #>well_throw_baby_have_message
jmp finish_parse_message
well_throw_baby_none:
ldx #<well_throw_baby_none_message
ldy #>well_throw_baby_none_message
jmp finish_parse_message
;================
; turn
;================
well_turn:
lda CURRENT_NOUN
cmp #NOUN_CRANK
beq well_turn_crank
jmp parse_common_unknown
well_turn_crank:
; check if close enough
lda PEASANT_X
cmp #25
bcs well_turn_crank_too_far
; we are close enough
; check in baby in
lda GAME_STATE_0
and #BABY_IN_WELL
bne well_turn_crank_baby_in
; check if have mask
lda INVENTORY_1
and #INV1_MONSTER_MASK
bne well_play_with_well
; check if pebbles in
lda INVENTORY_1_GONE
and #INV1_PEBBLES
bne well_turn_crank_pebbles_in
; check if you have pebbles but not put in yet
; lda INVENTORY_1
; and #INV1_PEBBLES
jmp well_turn_crank_pebbles_not_in
well_play_with_well:
lda GAME_STATE_0
and #BUCKET_DOWN_WELL
bne well_bucket_go_up
well_bucket_go_down:
lda GAME_STATE_0
eor #BUCKET_DOWN_WELL
sta GAME_STATE_0
ldx #<well_bucket_down_message
ldy #>well_bucket_down_message
jmp finish_parse_message
well_bucket_go_up:
lda GAME_STATE_0
eor #BUCKET_DOWN_WELL
sta GAME_STATE_0
ldx #<well_bucket_up_message
ldy #>well_bucket_up_message
jmp finish_parse_message
well_turn_crank_baby_in:
ldx #<well_turn_crank_baby_message
ldy #>well_turn_crank_baby_message
jsr partial_message_step
; get points
lda #2
jsr score_points
; get sub
lda INVENTORY_2
ora #INV2_MEATBALL_SUB
sta INVENTORY_2
; take baby from well
lda GAME_STATE_0
and #<(~BABY_IN_WELL)
sta GAME_STATE_0
ldx #<well_turn_crank_baby2_message
ldy #>well_turn_crank_baby2_message
jmp finish_parse_message
well_turn_crank_pebbles_in:
ldx #<well_turn_crank_pebbles_message
ldy #>well_turn_crank_pebbles_message
jsr partial_message_step
; get mask
lda INVENTORY_1
ora #INV1_MONSTER_MASK
sta INVENTORY_1
ldx #<well_turn_crank_pebbles2_message
ldy #>well_turn_crank_pebbles2_message
jmp finish_parse_message
well_turn_crank_pebbles_not_in:
ldx #<well_turn_crank_no_pebbles_message
ldy #>well_turn_crank_no_pebbles_message
jmp finish_parse_message
;=====================
; turn crank, too far
well_turn_crank_too_far:
lda INVENTORY_1
and #INV1_MONSTER_MASK
beq well_turn_crank_too_far_before_mask
well_turn_crank_too_far_after_mask:
ldx #<well_turn_crank_too_far_after_message
ldy #>well_turn_crank_too_far_after_message
jmp finish_parse_message
well_turn_crank_too_far_before_mask:
ldx #<well_turn_crank_too_far_message
ldy #>well_turn_crank_too_far_message
jmp finish_parse_message
;================
; put
;================
; need special support for object
; put baby (in well, in bucket)
; put pebbles (in well, in bucket?)
well_put:
lda CURRENT_NOUN
cmp #NOUN_BABY
beq well_put_baby
cmp #NOUN_PEBBLES
beq well_put_pebbles
cmp #NOUN_STONE
beq well_put_pebbles
cmp #NOUN_ROCK
beq well_put_pebbles
well_put_anything_else:
ldx #<well_put_anything_message
ldy #>well_put_anything_message
jmp finish_parse_message
;=============
; put baby
well_put_baby:
jsr get_noun_again
lda CURRENT_NOUN
cmp #NOUN_BUCKET
beq well_put_baby_in_bucket
cmp #NOUN_WELL
beq well_put_baby_in_well
cmp #NOUN_IN_WELL
beq well_put_baby_in_well
; put general message
ldx #<well_put_baby_message
ldy #>well_put_baby_message
jmp finish_parse_message
;=================
; baby in bucket
well_put_baby_in_bucket:
lda INVENTORY_1
and #INV1_BABY
beq well_put_baby_in_bucket_no_baby
well_put_baby_in_bucket_yes_baby:
lda PEASANT_X
cmp #25
bcc well_put_baby_bucket_close_enough
ldx #<well_put_baby_in_bucket_too_far_message
ldy #>well_put_baby_in_bucket_too_far_message
jmp finish_parse_message
well_put_baby_bucket_close_enough:
; see if have sub
lda INVENTORY_2
and #INV2_MEATBALL_SUB
bne well_put_baby_in_bucket_already_done
; actually do it
lda #3
jsr score_points
; put baby in bucket
lda GAME_STATE_0
ora #BABY_IN_WELL
sta GAME_STATE_0
ldx #<well_put_baby_in_bucket_message
ldy #>well_put_baby_in_bucket_message
jmp finish_parse_message
well_put_baby_in_bucket_already_done:
ldx #<well_put_baby_in_bucket_already_done_message
ldy #>well_put_baby_in_bucket_already_done_message
jmp finish_parse_message
well_put_baby_in_bucket_no_baby:
ldx #<well_put_baby_none_message
ldy #>well_put_baby_none_message
jmp finish_parse_message
;=================
; baby in well
well_put_baby_in_well:
; check if have baby
; first check if gone
lda INVENTORY_1_GONE
and #INV1_BABY
bne well_put_baby_in_well_but_gone
; next check if we have baby
lda INVENTORY_1
and #INV1_BABY
beq well_put_baby_in_well_but_gone
well_put_baby_in_well_but_have:
ldx #<well_put_baby_in_well_message
ldy #>well_put_baby_in_well_message
jmp finish_parse_message
well_put_baby_in_well_but_gone:
ldx #<well_put_baby_none_message
ldy #>well_put_baby_none_message
jmp finish_parse_message
;=============
; put pebbles
well_put_pebbles:
jsr get_noun_again
lda CURRENT_NOUN
cmp #NOUN_BUCKET
beq well_put_pebbles_in_bucket
cmp #NOUN_WELL
beq well_put_pebbles_in_well
cmp #NOUN_IN_WELL
beq well_put_pebbles_in_well
; put general message
ldx #<well_put_pebbles_message
ldy #>well_put_pebbles_message
jmp finish_parse_message
well_put_pebbles_in_bucket:
; check if have pebbles
; first check if gone
lda INVENTORY_1_GONE
and #INV1_PEBBLES
bne well_put_pebbles_in_bucket_but_gone
; next check if we have them
lda INVENTORY_1
and #INV1_PEBBLES
bne well_put_pebbles_in_bucket_have_them
well_put_pebbles_in_bucket_no_pebbles:
ldx #<well_put_pebbles_in_bucket_before_message
ldy #>well_put_pebbles_in_bucket_before_message
jmp finish_parse_message
well_put_pebbles_in_bucket_but_gone:
ldx #<well_put_pebbles_in_bucket_gone_message
ldy #>well_put_pebbles_in_bucket_gone_message
jmp finish_parse_message
well_put_pebbles_in_bucket_have_them:
; add 2 points to score
lda #2
jsr score_points
; mark pebbles as gone
lda INVENTORY_1_GONE
ora #INV1_PEBBLES
sta INVENTORY_1_GONE
ldx #<well_put_pebbles_in_bucket_message
ldy #>well_put_pebbles_in_bucket_message
jmp finish_parse_message
;=========================
; pebbles in well
well_put_pebbles_in_well:
; check if have pebbles
; first check if gone
lda INVENTORY_1_GONE
and #INV1_PEBBLES
bne well_put_pebbles_in_well_but_gone
; next check if we have them
lda INVENTORY_1
and #INV1_PEBBLES
beq well_put_pebbles_in_well_but_gone
well_put_pebbles_in_well_but_have:
ldx #<well_put_pebbles_in_well_message
ldy #>well_put_pebbles_in_well_message
jmp finish_parse_message
well_put_pebbles_in_well_but_gone:
ldx #<well_put_pebbles_in_well_gone_message
ldy #>well_put_pebbles_in_well_gone_message
jmp finish_parse_message
;=======================
;=======================
;=======================
; Yellow Tree
;=======================
;=======================
;=======================
yellow_tree_verb_table:
.byte VERB_LOOK
.word yellow_tree_look-1
.byte 0
;=================
; look
;=================
yellow_tree_look:
lda CURRENT_NOUN
cmp #NOUN_TREE
beq yellow_tree_look_tree
cmp #NOUN_COTTAGE
beq yellow_tree_look_cottage
cmp #NOUN_NONE
beq yellow_tree_look_at
jmp parse_common_look
yellow_tree_look_at:
ldx #<yellow_tree_look_message
ldy #>yellow_tree_look_message
jmp finish_parse_message
yellow_tree_look_cottage:
ldx #<yellow_tree_look_cottage_message
ldy #>yellow_tree_look_cottage_message
jmp finish_parse_message
yellow_tree_look_tree:
ldx #<yellow_tree_look_tree_message
ldy #>yellow_tree_look_tree_message
jmp finish_parse_message
;=======================
;=======================
;=======================
; waterfall
;=======================
;=======================
;=======================
waterfall_verb_table:
.byte VERB_CLIMB
.word waterfall_climb-1
.byte VERB_LOOK
.word waterfall_look-1
.byte VERB_SWIM
.word waterfall_swim-1
.byte 0
;=================
; climb
;=================
waterfall_climb:
lda CURRENT_NOUN
cmp #NOUN_CLIFF
beq waterfall_climb_cliff
jmp parse_common_unknown
waterfall_climb_cliff:
ldx #<waterfall_climb_cliff_message
ldy #>waterfall_climb_cliff_message
jmp finish_parse_message
;=================
; look
;=================
waterfall_look:
lda CURRENT_NOUN
cmp #NOUN_TREE
beq waterfall_look_tree
cmp #NOUN_WATERFALL
beq waterfall_look_waterfall
cmp #NOUN_NONE
beq waterfall_look_at
jmp parse_common_look
waterfall_look_at:
ldx #<waterfall_look_at_message
ldy #>waterfall_look_at_message
jmp finish_parse_message
waterfall_look_tree:
ldx #<waterfall_look_tree_message
ldy #>waterfall_look_tree_message
jmp finish_parse_message
waterfall_look_waterfall:
ldx #<waterfall_look_waterfall_message
ldy #>waterfall_look_waterfall_message
jmp finish_parse_message
;=================
; swim
;=================
waterfall_swim:
lda CURRENT_NOUN
cmp #NOUN_WATER
beq waterfall_swim_water
cmp #NOUN_WATERFALL
beq waterfall_swim_water
cmp #NOUN_NONE
beq waterfall_swim_water
jmp parse_common_unknown
waterfall_swim_water:
ldx #<waterfall_swim_message
ldy #>waterfall_swim_message
jmp finish_parse_message
.include "dialog_peasant1.inc"