From 1c2aac5b5ad54b3fa83f960197bcb306fb122941 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 20 Oct 2021 12:12:13 -0400 Subject: [PATCH] peasant: hook up text in hay bale level --- games/peasant/parse_input.s | 3 + games/peasant/peasant2.s | 4 +- games/peasant/peasant2_actions.s | 140 +++++++++++++++++++++++++++++++ games/peasant/text/peasant2.inc | 15 +++- games/peasant/tokens.inc | 7 +- 5 files changed, 162 insertions(+), 7 deletions(-) diff --git a/games/peasant/parse_input.s b/games/peasant/parse_input.s index 943b9c8e..615da6cf 100644 --- a/games/peasant/parse_input.s +++ b/games/peasant/parse_input.s @@ -688,6 +688,8 @@ verb_lookup: .byte "WHY",VERB_WHY|$80 .byte "YES",VERB_YES|$80 .byte "ATTACK",VERB_ATTACK|$80 +.byte "HUG",VERB_HUG|$80 +.byte "HIDE",VERB_HIDE|$80 .byte $00 @@ -895,6 +897,7 @@ noun_lookup: .byte "WOMAN",NOUN_WOMAN|$80 .byte "RIVER",NOUN_RIVER|$80 .byte "STONE",NOUN_STONE|$80 +.byte "IN HAY",NOUN_IN_HAY|$80 .byte $00 diff --git a/games/peasant/peasant2.s b/games/peasant/peasant2.s index 170b14ec..4f74b7d5 100644 --- a/games/peasant/peasant2.s +++ b/games/peasant/peasant2.s @@ -262,14 +262,14 @@ map_priority_hi: .byte >knight_priority_lzsa ; 9 -- knight verb_tables_low: - .byte river_stone_verb_table ; 5 -- haystack + .byte >hay_bale_verb_table ; 5 -- haystack .byte >river_stone_verb_table ; 6 -- puddle .byte >river_stone_verb_table ; 7 -- archery .byte >river_stone_verb_table ; 8 -- river diff --git a/games/peasant/peasant2_actions.s b/games/peasant/peasant2_actions.s index 6bff3c27..3aeef709 100644 --- a/games/peasant/peasant2_actions.s +++ b/games/peasant/peasant2_actions.s @@ -1,5 +1,141 @@ ;.include "tokens.inc" + ;======================= + ;======================= + ;======================= + ; Thay Hay Bale + ;======================= + ;======================= + ;======================= + +hay_bale_verb_table: + .byte VERB_ENTER + .word hay_bale_enter-1 + .byte VERB_GET + .word hay_bale_get-1 + .byte VERB_JUMP + .word hay_bale_jump-1 + .byte VERB_HIDE + .word hay_bale_hide-1 + .byte VERB_HUG + .word hay_bale_hug-1 + .byte VERB_LOOK + .word hay_bale_look-1 + .byte VERB_STEAL + .word hay_bale_steal-1 + .byte VERB_TAKE + .word hay_bale_take-1 + .byte 0 + + + ;================ + ; get + ;================ +hay_bale_get: +hay_bale_steal: +hay_bale_take: + lda CURRENT_NOUN + + cmp #NOUN_HAY + beq hay_get_hay + + ; else "probably wish" message + + jmp parse_common_get + +hay_get_hay: + ldx #hay_get_hay_message + jmp finish_parse_message + + ;================= + ; look + ;================= + +hay_bale_look: + + lda CURRENT_NOUN + + cmp #NOUN_HAY + beq hay_look_at_hay + cmp #NOUN_IN_HAY + beq hay_look_in_hay + cmp #NOUN_TREE + beq hay_look_at_tree + cmp #NOUN_FENCE + beq hay_look_at_fence + + + cmp #NOUN_NONE + beq hay_look_at + + jmp parse_common_look + +hay_look_at: + ldx #hay_look_message + jmp finish_parse_message + +hay_look_at_hay: + ldx #hay_look_at_hay_message + jmp finish_parse_message + +hay_look_in_hay: + ldx #hay_look_in_hay_message + jmp finish_parse_message + +hay_look_at_tree: + ldx #hay_look_at_tree_message + jmp finish_parse_message + +hay_look_at_fence: + ldx #hay_look_at_fence_message + jmp finish_parse_message + + + ;=================== + ; enter hay + ;=================== + +hay_bale_enter: +hay_bale_jump: +hay_bale_hide: + + lda CURRENT_NOUN + + cmp #NOUN_HAY + beq enter_hay + + jmp parse_common_unknown + +enter_hay: + ldx #hay_enter_hay_clean_message + jmp finish_parse_message + + ;=================== + ; hug tree + ;=================== + +hay_bale_hug: + + lda CURRENT_NOUN + + cmp #NOUN_TREE + beq hug_tree + + jmp parse_common_unknown + +hug_tree: + ldx #hay_hug_tree_message + jmp finish_parse_message + + ;======================= ;======================= @@ -95,6 +231,10 @@ river_stone_swim: 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 diff --git a/games/peasant/text/peasant2.inc b/games/peasant/text/peasant2.inc index 0816fbb9..06c6324f 100644 --- a/games/peasant/text/peasant2.inc +++ b/games/peasant/text/peasant2.inc @@ -7,29 +7,35 @@ .byte "Drat. The winds are heavy on all but a couple of key screens... looks like you're no longer in stealth mode.",0 ; + look +hay_look_message: .byte "Well, there's that big bale",13 .byte "of hay over there.",0 ; + look hay +hay_look_at_hay_message: .byte "It reminds you of a warm,",13 .byte "safe place where as a child",13 .byte "you'd hide.",0 ; + look in hay +hay_look_in_hay_message: .byte "You search and search",13 .byte "through the haystack.",13 .byte "Nope. No needles.",0 ; + look tree +hay_look_at_tree_message: .byte "It's Arbor Day, Charlie",13 .byte "Brown!",0 ; + look fence (merge with others?) +hay_look_at_fence_message: .byte "A standard peasant fence.",13 .byte "Trogdor makes milk's meat",13 .byte "outta these things.",0 ; + enter hay / jump in hay / hide in hay (not muddy) +hay_enter_hay_clean_message: .byte "Not right now, man. You're",13 .byte "feeling fairly clean given",13 .byte "you just bathed 3",13 @@ -38,16 +44,19 @@ ; + enter hay / jump in hay (muddy but not nearby) .byte "Who do you think you are, MJ? Try from a little closer.",0 -; + enter hay / jump into hay +; + enter hay / jump into hay (muddy) .byte "You've not known much better than a roll in the hay alone.",0 .byte "You leap in the hay like a two years old boy. Uh oh. The hay sticks to your muddy body. You're a walking hay bale! Just like that one guy from that one show!",0 ; + hug tree (walks to it) +hay_hug_tree_message: .byte "To every thing, turn, turn,",13 .byte "turn. There is a season,",13 .byte "turn, turn, turn.",0 -; + get hay +; + get/steal/take hay +; although only "get" says the "probably wish you could get" message non-hay +hay_get_hay_message: .byte "Who do you think you are?",13 .byte "Some kind of Thy",13 .byte "Dungeonman? You don't need",13 @@ -208,7 +217,7 @@ river_look_at_rock_message: .byte "rock down. It is a rock of",13 .byte "ages. Still a-rollin.",0 -; + swim river/water +; + swim river/water/rock/stone river_swim_message: .byte "Peasants can't swim. Like,",13 .byte "it's illegal.",0 diff --git a/games/peasant/tokens.inc b/games/peasant/tokens.inc index 07447fb9..f5f627e1 100644 --- a/games/peasant/tokens.inc +++ b/games/peasant/tokens.inc @@ -70,7 +70,9 @@ VERB_WHY = 68 VERB_YES = 69 VERB_HELP = 70 VERB_ATTACK = 71 -VERB_ALL_DONE = 72 ; not a verb, but indicating end, must be last +VERB_HUG = 72 +VERB_HIDE = 73 +VERB_ALL_DONE = 74 ; not a verb, but indicating end, must be last NOUN_NONE = 0 ; @@ -171,5 +173,6 @@ NOUN_WINDOW = 94 NOUN_WOMAN = 95 NOUN_RIVER = 96 NOUN_STONE = 97 +NOUN_IN_HAY = 98 ; -NOUN_UNKNOWN = 98 +NOUN_UNKNOWN = 99