.include "tokens.inc" ;======================= ;======================= ;======================= ; Ned's Cottage ;======================= ;======================= ;======================= ned_cottage_verb_table: .byte VERB_BREAK .word ned_cottage_break-1 .byte VERB_CLIMB .word ned_cottage_climb-1 .byte VERB_DEPLOY .word ned_cottage_deploy-1 .byte VERB_DROP .word ned_cottage_drop-1 .byte VERB_GET .word ned_cottage_get-1 .byte VERB_JUMP .word ned_cottage_jump-1 .byte VERB_KICK .word ned_cottage_kick-1 .byte VERB_KNOCK .word ned_cottage_knock-1 .byte VERB_LOOK .word ned_cottage_look-1 .byte VERB_MOVE .word ned_cottage_move-1 .byte VERB_OPEN .word ned_cottage_open-1 .byte VERB_PUSH .word ned_cottage_push-1 .byte VERB_PULL .word ned_cottage_pull-1 .byte VERB_PUNCH .word ned_cottage_punch-1 .byte VERB_USE .word ned_cottage_use-1 .byte 0 ;================ ; climb/jump ;================ ned_cottage_jump: ned_cottage_climb: lda CURRENT_NOUN cmp #NOUN_FENCE beq ned_cottage_climb_fence jmp parse_common_unknown ned_cottage_climb_fence: ldx #ned_cottage_climb_fence_message jmp finish_parse_message ;================ ; knock ;================ ned_cottage_knock: lda CURRENT_NOUN cmp #NOUN_BLEED beq ned_cottage_knock_door_bleed cmp #NOUN_DOOR beq ned_cottage_knock_door cmp #NOUN_NONE beq ned_cottage_knock_door jmp parse_common_unknown ned_cottage_knock_door: ldx #ned_cottage_knock_door_message jmp finish_parse_message ned_cottage_knock_door_bleed: lda GAME_STATE_2 and #KNUCKLES_BLEED beq not_bleeding bleeding: ldx #ned_cottage_knock_door_bleed_message2 jmp finish_parse_message not_bleeding: lda GAME_STATE_2 ora #KNUCKLES_BLEED sta GAME_STATE_2 ldx #ned_cottage_knock_door_bleed_message jmp finish_parse_message ;================ ; open ;================ ned_cottage_open: lda CURRENT_NOUN cmp #NOUN_DOOR beq ned_cottage_open_door cmp #NOUN_NONE beq ned_cottage_open_door jmp parse_common_unknown ned_cottage_open_door: ldx #ned_cottage_open_door_message jmp finish_parse_message ;================ ; push/pull ;================ ned_cottage_push: ned_cottage_pull: lda CURRENT_NOUN cmp #NOUN_DOOR beq ned_cottage_push_door jmp parse_common_unknown ned_cottage_push_door: ldx #ned_cottage_push_door_message jmp finish_parse_message ;================ ; get ;================ ned_cottage_get: ned_cottage_move: lda CURRENT_NOUN cmp #NOUN_ROCK beq ned_cottage_rock ; else "probably wish" message jmp parse_common_get ned_cottage_rock: ldx #ned_cottage_get_rock_message jmp finish_parse_message ;================ ; deploy/drop/use baby ;================ ned_cottage_deploy: ned_cottage_drop: ned_cottage_use: lda CURRENT_NOUN cmp #NOUN_BABY beq ned_cottage_baby jmp parse_common_unknown ned_cottage_baby: ldx #ned_cottage_baby_before_message jmp finish_parse_message ;=================== ; break/kick/punch ;=================== ned_cottage_break: ned_cottage_kick: ned_cottage_punch: lda CURRENT_NOUN cmp #NOUN_DOOR beq kick_cottage jmp parse_common_unknown kick_cottage: ldx #ned_cottage_break_door_message jmp finish_parse_message ;================= ; look ;================= ned_cottage_look: lda CURRENT_NOUN cmp #NOUN_FENCE beq ned_cottage_look_at_fence cmp #NOUN_COTTAGE beq ned_cottage_look_at_cottage cmp #NOUN_ROCK beq ned_cottage_look_at_rock cmp #NOUN_HOLE beq ned_cottage_look_at_hole cmp #NOUN_NONE beq ned_cottage_look_at jmp parse_common_look ned_cottage_look_at: ldx #ned_cottage_look_message jmp finish_parse_message ned_cottage_look_at_cottage: ldx #ned_cottage_look_cottage_message jmp finish_parse_message ned_cottage_look_at_fence: ldx #ned_cottage_look_fence_message jmp finish_parse_message ned_cottage_look_at_rock: ldx #ned_cottage_look_rock_message jmp finish_parse_message ned_cottage_look_at_hole: ldx #ned_cottage_look_hole_message jmp finish_parse_message ;======================= ;======================= ;======================= ; Ned Tree ;======================= ;======================= ;======================= ned_verb_table: .byte VERB_CLIMB .word ned_tree_climb-1 .byte VERB_LOOK .word ned_tree_look-1 .byte VERB_TALK .word ned_tree_talk-1 .byte 0 ;================ ; climb ;================ ned_tree_climb: lda CURRENT_NOUN cmp #NOUN_TREE beq ned_tree_climb_tree jmp parse_common_unknown ned_tree_climb_tree: ldx #ned_tree_climb_tree_message jmp finish_parse_message ;================ ; talk ;================ ned_tree_talk: lda CURRENT_NOUN cmp #NOUN_TREE beq ned_tree_talk_tree jmp parse_common_talk ned_tree_talk_tree: ldx #ned_tree_talk_tree_message jmp finish_parse_message ;================= ; look ;================= ned_tree_look: lda CURRENT_NOUN cmp #NOUN_TREE beq ned_tree_look_at_tree cmp #NOUN_NONE beq ned_tree_look_at jmp parse_common_look ned_tree_look_at: ldx #ned_tree_look_at_message jmp finish_parse_message ned_tree_look_at_tree: ldx #ned_tree_look_at_tree_message jmp finish_parse_message ;======================= ;======================= ;======================= ; Kerrek ;======================= ;======================= ;======================= .include "kerrek_actions.s" ;======================= ;======================= ;======================= ; Baby Lady Cottage ;======================= ;======================= ;======================= lady_cottage_verb_table: .byte VERB_LOOK .word lady_cottage_look-1 .byte 0 ;================= ; look ;================= lady_cottage_look: lda CURRENT_NOUN cmp #NOUN_BERRIES beq lady_cottage_look_at_berries cmp #NOUN_BUSH beq lady_cottage_look_at_bushes cmp #NOUN_COTTAGE beq lady_cottage_look_at_cottage cmp #NOUN_DOOR beq lady_cottage_look_at_door cmp #NOUN_NONE beq lady_cottage_look_at jmp parse_common_look lady_cottage_look_at: ldx #lady_cottage_look_at_message jmp finish_parse_message lady_cottage_look_at_cottage: ldx #lady_cottage_look_at_cottage_message jmp finish_parse_message lady_cottage_look_at_door: ldx #lady_cottage_look_at_door_message jmp finish_parse_message lady_cottage_look_at_berries: ldx #lady_cottage_look_at_berries_message jmp finish_parse_message lady_cottage_look_at_bushes: ldx #lady_cottage_look_at_bushes_message jmp finish_parse_message ;======================= ;======================= ;======================= ; burninated / crooked tree ;======================= ;======================= ;======================= crooked_tree_verb_table: .byte VERB_GET .word crooked_tree_get-1 .byte VERB_LIGHT .word crooked_tree_light-1 .byte VERB_LOOK .word crooked_tree_look-1 .byte 0 ;================ ; get ;================ crooked_tree_get: lda CURRENT_NOUN cmp #NOUN_FIRE beq crooked_get_fire cmp #NOUN_LANTERN beq crooked_get_lantern cmp #NOUN_PLAGUE beq crooked_get_plague cmp #NOUN_PLAQUE beq crooked_get_plaque jmp parse_common_get crooked_get_fire: ; only at night jmp parse_common_get crooked_get_lantern: ldx #crooked_tree_get_lantern_message jmp finish_parse_message crooked_get_plague: ldx #crooked_tree_get_plague_message jmp finish_parse_message crooked_get_plaque: ldx #crooked_tree_get_plaque_message jmp finish_parse_message ;================ ; light ;================ crooked_tree_light: lda CURRENT_NOUN cmp #NOUN_LANTERN beq light_lantern jmp parse_common_unknown light_lantern: ldx #crooked_tree_light_lantern_message jmp finish_parse_message ;================= ; look ;================= crooked_tree_look: lda CURRENT_NOUN cmp #NOUN_LANTERN beq crooked_look_lantern cmp #NOUN_STUMP beq crooked_look_stump cmp #NOUN_TREE beq crooked_look_tree cmp #NOUN_NONE beq crooked_look jmp parse_common_look crooked_look: ldx #crooked_look_day_message jmp finish_parse_message crooked_look_lantern: ldx #crooked_look_lantern_message jmp finish_parse_message crooked_look_stump: ldx #crooked_look_stump_message jmp finish_parse_message crooked_look_tree: ldx #crooked_look_tree_message jmp finish_parse_message .include "dialog_peasant4.inc"