peasant: hook up some more dialog

This commit is contained in:
Vince Weaver 2021-10-23 21:14:29 -04:00
parent 344827d0a0
commit d1e12097e6
10 changed files with 131 additions and 437 deletions

View File

@ -265,6 +265,7 @@ PEASANT1: peasant1.o
peasant1.o: peasant1.s zp.inc inventory.inc \
parse_input.inc \
peasant1_actions.s DIALOG_PEASANT1.LZSA dialog_peasant1.inc \
kerrek_actions.s \
sprites/peasant_sprites.inc sprites/inventory_sprites.inc \
graphics_peasantry/graphics_peasant1.inc \
graphics_peasantry/priority_peasant1.inc \
@ -318,6 +319,7 @@ PEASANT4: peasant4.o
peasant4.o: peasant4.s zp.inc inventory.inc \
parse_input.inc \
peasant4_actions.s DIALOG_PEASANT4.LZSA dialog_peasant4.inc \
kerrek_actions.s \
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 \

View File

@ -0,0 +1,31 @@
;=======================
;=======================
;=======================
; Kerrek
;=======================
;=======================
;=======================
kerrek_verb_table:
.byte VERB_LOOK
.word kerrek_look-1
.byte 0
;=================
; look
;=================
kerrek_look:
lda CURRENT_NOUN
cmp #NOUN_NONE
beq kerrek_look_at
jmp parse_common_look
kerrek_look_at:
ldx #<kerrek_look_at_message
ldy #>kerrek_look_at_message
jmp finish_parse_message

View File

@ -894,6 +894,7 @@ noun_lookup:
.byte "TROGDOR",NOUN_TROGDOR|$80
.byte "WATERFALL",NOUN_WATERFALL|$80
.byte "WATER",NOUN_WATER|$80
.byte "IN WELL",NOUN_IN_WELL|$80
.byte "WELL",NOUN_WELL|$80
.byte "WINDOW",NOUN_WINDOW|$80
.byte "WOMAN",NOUN_WOMAN|$80

View File

@ -245,15 +245,15 @@ map_priority_hi:
verb_tables_low:
.byte <gary_verb_table ; 0 -- gary the horse
.byte <gary_verb_table ; 1 -- top footprints
.byte <gary_verb_table ; 2 -- wishing well
.byte <kerrek_verb_table ; 1 -- top footprints
.byte <wishing_well_verb_table ; 2 -- wishing well
.byte <yellow_tree_verb_table ; 3 -- leaning tree
.byte <waterfall_verb_table ; 4 -- waterfall
verb_tables_hi:
.byte >gary_verb_table ; 0 -- gary the horse
.byte >gary_verb_table ; 1 -- top footprints
.byte >gary_verb_table ; 2 -- wishing well
.byte >kerrek_verb_table ; 1 -- top footprints
.byte >wishing_well_verb_table ; 2 -- wishing well
.byte >yellow_tree_verb_table ; 3 -- leaning tree
.byte >waterfall_verb_table ; 4 -- waterfall

View File

@ -305,284 +305,99 @@ wear_mask:
.if 0
;=======================
;=======================
;=======================
; Puddle
; Kerrek
;=======================
;=======================
;=======================
puddle_verb_table:
.byte VERB_GET
.word puddle_get-1
.byte VERB_TAKE
.word puddle_take-1
.byte VERB_STEAL
.word puddle_steal-1
.include "kerrek_actions.s"
;=======================
;=======================
;=======================
; Wishing Well
;=======================
;=======================
;=======================
wishing_well_verb_table:
.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
.word well_look-1
.byte VERB_TALK
.word archery_talk-1
.byte VERB_TAKE
.word archery_take-1
.word well_talk-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:
well_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_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_NONE
beq archery_look_at
beq well_look_at
jmp parse_common_look
archery_look_at:
ldx #<archery_look_message
ldy #>archery_look_message
well_look_at:
ldx #<well_look_at_message
ldy #>well_look_at_message
jmp finish_parse_message
archery_look_at_archer:
ldx #<archery_look_at_archer_message
ldy #>archery_look_at_archer_message
well_look_at_well:
ldx #<well_look_at_well_message
ldy #>well_look_at_well_message
jmp finish_parse_message
archery_look_at_target:
ldx #<archery_look_at_target_message
ldy #>archery_look_at_target_message
well_look_at_crank:
ldx #<well_look_at_crank_message
ldy #>well_look_at_crank_message
jmp finish_parse_message
archery_look_at_desk:
ldx #<archery_look_at_desk_message
ldy #>archery_look_at_desk_message
well_look_in_well:
ldx #<well_look_in_well_message
ldy #>well_look_in_well_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
well_look_at_tree:
ldx #<well_look_at_tree_message
ldy #>well_look_at_tree_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?
well_talk:
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
cmp #NOUN_WELL
beq well_talk_well
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
well_talk_well:
ldx #<well_talk_message
ldy #>well_talk_message
jmp finish_parse_message
archery_talk_too_far:
ldx #<archery_talk_far_message
ldy #>archery_talk_far_message
jmp finish_parse_message
.endif
;=======================
;=======================
;=======================

View File

@ -252,14 +252,14 @@ map_priority_hi:
verb_tables_low:
.byte <ned_cottage_verb_table ; 15 -- empty hut
.byte <crooked_tree_verb_table ; 16 -- ned
.byte <crooked_tree_verb_table ; 17 -- bottom footprints
.byte <kerrek_verb_table ; 17 -- bottom footprints
.byte <crooked_tree_verb_table ; 18 -- cottage lady
.byte <crooked_tree_verb_table ; 19 -- crooked tree
verb_tables_hi:
.byte >ned_cottage_verb_table ; 15 -- empty hut
.byte >crooked_tree_verb_table ; 16 -- ned
.byte >crooked_tree_verb_table ; 17 -- bottom footprints
.byte >kerrek_verb_table ; 17 -- bottom footprints
.byte >crooked_tree_verb_table ; 18 -- cottage lady
.byte >crooked_tree_verb_table ; 19 -- crooked tree

View File

@ -313,203 +313,19 @@ puddle_look_at_rock:
ldx #<puddle_get_rock_message
ldy #>puddle_get_rock_message
jmp finish_parse_message
.endif
;=======================
;=======================
;=======================
; Archery
; Kerrek
;=======================
;=======================
;=======================
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
.include "kerrek_actions.s"
.if 0
;=======================

View File

@ -16,6 +16,7 @@
.byte "You strap the Kerrek's belt buckle around your waist. Oh boy. You sure stink now.",0
; + look
kerrek_look_at_message:
.byte "There are large hoof prints in the grass here.",0
; + look (no Kerrek)
@ -23,7 +24,8 @@
; + look (living Kerrek)
; + look footprints/tracks (living Kerrek)
.byte "It's the Kerrek, you moron! Get outta here!",0
.byte "It's the Kerrek, you moron!",13
.byte "Get outta here!",0
; + look footprints/tracks (Kerrek not present)
.byte "If you weren't a simpleton you might think these were Kerrek prints. But since you are a simpleton, you just go, 'Yay! Piggies!' ",0
@ -39,16 +41,25 @@
; + buy kerrek a cold one (in the Kerrek's domain while he's still alive)
; (Warning: This speeds the Kerrek up, so be careful.)
.byte "The kerrek is a teetotaller and is offended by your offer. You've really cheesed him off now.",0
.byte "The kerrek is a teetotaller",13
.byte "and is offended by your",13
.byte "offer. You've really",13
.byte "cheesed him off now.",0
; + make friends with kerrek
.byte "Look, it didn't work for Strongbad and it's not gonna work for you either.",0
.byte "Look, it didn't work for",13
.byte "Strongbad and it's not",13
.byte "gonna work for you either.",0
; + load / save (while he's still alive)
.byte "You can't be fumbling with a floppy while the Kerrek is bearing down on you.",0
.byte "You can't be fumbling with",13
.byte "a floppy while the Kerrek",13
.byte "is bearing down on you.",0
; + kill kerrek (he is there, no bow or arrow)
.byte "With what?! You got no weapons except your butter-knife wit.",0
.byte "With what?! You got no",13
.byte "weapons except your",13
.byte "butter-knife wit.",0
; + kill kerrek (he is there, you have arrow but not bow)
.byte "With what?! You gonna throw that arrow at him?",0
@ -66,10 +77,15 @@
.byte "Eww! No way. That thing's got some serious Kerrek-Brand kooties on it now.",0
; + get kerrek
.byte "Well, he does smell real bad. But he's a bit too big to fit in your pocket.",0
.byte "Well, he does smell real",13
.byte "bad. But he's a bit too big",13
.byte "to fit in your pocket.",0
; + look belt (still alive)
.byte "Yecch. I wouldn't touch that unless it was, like, an important quest item or something.",0
.byte "Yecch. I wouldn't touch",13
.byte "that unless it was, like,",13
.byte "an important quest item or",13
.byte "something.",0
; + look kerrek (immediately after killing him)
.byte "He dead. And the only thing of value on him is his stinky belt buckle.",0
@ -84,7 +100,13 @@
.byte "He dead. He wasn't fat, he was just big boned! Poor pig-man.",0
; + talk kerrek (while he is alive)
.byte "'Me llamo Julio,' you begin... It seems only to further anger the already tempramental Kerrek. That stupid 'Learn Kerrek in 3 Weeks' cassette did nothing for you!",0
.byte 34,"Me llamo Julio,",34," you",13
.byte "begin... It seems only to",13
.byte "further anger the already",13
.byte "tempramental Kerrek. That",13
.byte "stupid ",34,"Learn Kerrek in 3",13
.byte "Weeks",34," cassette did",13
.byte "nothing for you!",0

View File

@ -150,24 +150,29 @@ gary_talk_message:
;=========================
; (Leave the screen after putting the baby in the bucket)
.byte "ice try. Ditch the baby at the bottom of the well, eh? Thought you'd be able to just walk away and it's nothing by mead and wenches from now on, huh? Well guess what? You dead. Thanks for playing.",0
.byte "Nice try. Ditch the baby at the bottom of the well, eh? Thought you'd be able to just walk away and it's nothing by mead and wenches from now on, huh? Well guess what? You dead. Thanks for playing.",0
; + look
well_look_at_message:
.byte "There's a really generic well here. Oh, and apparently it's autumn on this screen.",0
; + look well
well_look_at_well_message:
.byte "Pretty average. You're not a big well person. You're more into bridges. It does have a cute little bucket though. Your dad liked buckets. Oh, and there's a metal crank too. Meemaw loved cranks.",0
; + look crank (before putting pebbles in the bucket)
well_look_at_crank_message:
.byte "It looks rusted in place.",0
; + look crank (after putting pebbles in the bucket)
.byte "That is a bonafide crank. It seems to work now.",0
; + look in well
well_look_in_well_message:
.byte "It's dark and welly in there. Smell like stank too.",0
; + look tree
well_look_at_tree_message:
.byte "That's one orange tree alright.",0
; +2 POINTS
@ -257,6 +262,7 @@ gary_talk_message:
.byte "Riiight, right. Which ones?",0
; + talk well
well_talk_message:
.byte "You yell into the well and enjoy the echo. Keep in mind there are no stereos yet.",0

View File

@ -178,5 +178,6 @@ NOUN_IN_HAY = 98
NOUN_PUDDLE = 99
NOUN_MENDELEV = 100
NOUN_BLEED = 101
NOUN_IN_WELL = 102
;
NOUN_UNKNOWN = 102
NOUN_UNKNOWN = 103