From 47c0154e2b9efae48ec68279ab01b27473870465 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sun, 24 Oct 2021 23:19:14 -0400 Subject: [PATCH] peasant: fix embarassing bug where we were only parsing properly by luck --- games/peasant/parse_input.s | 30 +++++++++++++++--------------- games/peasant/tokens.inc | 6 ++++-- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/games/peasant/parse_input.s b/games/peasant/parse_input.s index 71eb932a..7fabff4f 100644 --- a/games/peasant/parse_input.s +++ b/games/peasant/parse_input.s @@ -619,6 +619,7 @@ inc_verb_ptr_noflo: verb_lookup: .byte "ASK",VERB_ASK|$80 +.byte "ATTACK",VERB_ATTACK|$80 .byte "BOO",VERB_BOO|$80 .byte "BREAK",VERB_BREAK|$80 .byte "BUY",VERB_BUY|$80 @@ -626,6 +627,7 @@ verb_lookup: .byte "CLIMB",VERB_CLIMB|$80 .byte "CLOSE",VERB_CLOSE|$80 .byte "COPY",VERB_COPY|$80 +.byte "CUT",VERB_CUT|$80 .byte "DANCE",VERB_DANCE|$80 .byte "DEPLOY",VERB_DEPLOY|$80 .byte "DIE",VERB_DIE|$80 @@ -639,6 +641,8 @@ verb_lookup: .byte "GO ",VERB_GO|$80 .byte "HALDO",VERB_HALDO|$80 .byte "HELP",VERB_HELP|$80 +.byte "HIDE",VERB_HIDE|$80 +.byte "HUG",VERB_HUG|$80 .byte "INV",VERB_INVENTORY|$80 .byte "JUMP",VERB_JUMP|$80 .byte "KICK",VERB_KICK|$80 @@ -649,6 +653,7 @@ verb_lookup: .byte "LOOK",VERB_LOOK|$80 .byte "MAKE",VERB_MAKE|$80 .byte "MAP",VERB_MAP|$80 +.byte "MOVE",VERB_MOVE|$80 .byte "NO",VERB_NO|$80 .byte "OPEN",VERB_OPEN|$80 .byte "PARTY",VERB_PARTY|$80 @@ -688,10 +693,6 @@ verb_lookup: .byte "WHERE",VERB_WHERE|$80 .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 "MOVE",VERB_MOVE|$80 .byte $00 @@ -803,16 +804,19 @@ end_of_input: noun_lookup: .byte "ARCHER",NOUN_ARCHER|$80 +.byte "ARMS",NOUN_ARMS|$80 .byte "ARROW",NOUN_ARROW|$80 .byte "BABY",NOUN_BABY|$80 .byte "BEADS",NOUN_BEADS|$80 .byte "BELL",NOUN_BELL|$80 .byte "BELT",NOUN_BELT|$80 .byte "BERRIES",NOUN_BERRIES|$80 +.byte "BLEED",NOUN_BLEED|$80 .byte "BOAT",NOUN_BOAT|$80 .byte "BONE",NOUN_BONE|$80 .byte "BOW",NOUN_BOW|$80 .byte "BROOM",NOUN_BROOM|$80 +.byte "BUCKET",NOUN_BUCKET|$80 .byte "BUSH",NOUN_BUSH|$80 .byte "CANDLE",NOUN_CANDLE|$80 .byte "CAVE",NOUN_CAVE|$80 @@ -842,6 +846,7 @@ noun_lookup: .byte "GREEN",NOUN_GREEN|$80 .byte "GROUND",NOUN_GROUND|$80 .byte "GUY",NOUN_GUY|$80 +.byte "IN HAY",NOUN_IN_HAY|$80 .byte "HAY",NOUN_HAY|$80 .byte "HOLE",NOUN_HOLE|$80 .byte "HORSE",NOUN_HORSE|$80 @@ -857,6 +862,7 @@ noun_lookup: .byte "MAN",NOUN_MAN|$80 .byte "MAP",NOUN_MAP|$80 .byte "MASK",NOUN_MASK|$80 +.byte "MENDELEV",NOUN_MENDELEV|$80 .byte "MUD",NOUN_MUD|$80 .byte "NED",NOUN_NED|$80 .byte "NOTE",NOUN_NOTE|$80 @@ -870,7 +876,9 @@ noun_lookup: .byte "PLAGUE",NOUN_PLAGUE|$80 .byte "PLAQUE",NOUN_PLAQUE|$80 .byte "POT",NOUN_POT|$80 +.byte "PUDDLE",NOUN_PUDDLE|$80 .byte "RICHES",NOUN_RICHES|$80 +.byte "RIVER",NOUN_RIVER|$80 .byte "ROBE",NOUN_ROBE|$80 .byte "ROCK",NOUN_ROCK|$80 .byte "ROOM",NOUN_ROOM|$80 @@ -884,6 +892,7 @@ noun_lookup: .byte "SKULL",NOUN_SKULL|$80 .byte "SMELL",NOUN_SMELL|$80 .byte "SODA",NOUN_SODA|$80 +.byte "STONE",NOUN_STONE|$80 .byte "STUFF",NOUN_STUFF|$80 .byte "STUMP",NOUN_STUMP|$80 .byte "SUB",NOUN_SUB|$80 @@ -897,15 +906,8 @@ noun_lookup: .byte "IN WELL",NOUN_IN_WELL|$80 .byte "WELL",NOUN_WELL|$80 .byte "WINDOW",NOUN_WINDOW|$80 -.byte "WOMAN",NOUN_WOMAN|$80 -.byte "RIVER",NOUN_RIVER|$80 -.byte "STONE",NOUN_STONE|$80 -.byte "IN HAY",NOUN_IN_HAY|$80 -.byte "PUDDLE",NOUN_PUDDLE|$80 -.byte "MENDELEV",NOUN_MENDELEV|$80 -.byte "BLEED",NOUN_BLEED|$80 -.byte "BUCKET",NOUN_BUCKET|$80 .byte "WISH",NOUN_WISH|$80 +.byte "WOMAN",NOUN_WOMAN|$80 .byte $00 @@ -1033,7 +1035,7 @@ unknown_loop: sta verb_table+1,X inx inx - cpx VERB_ALL_DONE + cpx #(VERB_ALL_DONE*2) bne unknown_loop ;========================= @@ -1151,5 +1153,3 @@ common_verb_table: .byte VERB_WHY .word parse_common_why-1 .byte 0 - - diff --git a/games/peasant/tokens.inc b/games/peasant/tokens.inc index 637a4855..95148d97 100644 --- a/games/peasant/tokens.inc +++ b/games/peasant/tokens.inc @@ -73,7 +73,8 @@ VERB_ATTACK = 71 VERB_HUG = 72 VERB_HIDE = 73 VERB_MOVE = 74 -VERB_ALL_DONE = 75 ; not a verb, but indicating end, must be last +VERB_CUT = 75 +VERB_ALL_DONE = 76 ; not a verb, but indicating end, must be last NOUN_NONE = 0 ; @@ -181,5 +182,6 @@ NOUN_BLEED = 101 NOUN_IN_WELL = 102 NOUN_BUCKET = 103 NOUN_WISH = 104 +NOUN_ARMS = 105 ; -NOUN_UNKNOWN = 105 +NOUN_UNKNOWN = 106