diff --git a/games/peasant/Makefile b/games/peasant/Makefile index 219149ac..fc4a9079 100644 --- a/games/peasant/Makefile +++ b/games/peasant/Makefile @@ -75,6 +75,7 @@ qload.o: qload.s qboot.inc \ hgr_input.s \ hgr_tables.s \ hgr_text_box.s \ + text/word_list.s \ clear_bottom.s \ hgr_hgr2.s \ gr_offsets.s \ diff --git a/games/peasant/hgr_text_box.s b/games/peasant/hgr_text_box.s index dd0e5c82..dc285526 100644 --- a/games/peasant/hgr_text_box.s +++ b/games/peasant/hgr_text_box.s @@ -77,6 +77,8 @@ disp_put_string_loop: ldy #0 lda (OUTL),Y beq disp_put_string_done + bmi disp_use_lookup + cmp #13 beq disp_end_of_line @@ -105,7 +107,14 @@ disp_put_string_done: rts - +disp_use_lookup: + and #$7f + tax + lda text_offset_table,X + jsr hgr_put_char_cursor + inc CURSOR_X + jsr inc_outl + jmp disp_put_string_loop ;============================ ; like above, but don't save @@ -117,3 +126,5 @@ hgr_text_box_nosave: lda #1 sta skip_box_save_smc+1 rts + +.include "text/word_list.s" diff --git a/games/peasant/qload.inc b/games/peasant/qload.inc index cc7ffe43..157ab2b0 100644 --- a/games/peasant/qload.inc +++ b/games/peasant/qload.inc @@ -3,7 +3,7 @@ sector_write =$0c63 requested_sector =$0d17 decompress_lzsa2_fast =$0de6 getsrc_smc =$0edc -hgr2 =$16fd +hgr2 =$184c hgr_make_tables =$15da hgr_put_string =$0ee9 save_bg_1x28 =$1421 @@ -11,9 +11,9 @@ restore_bg_1x28 =$1442 hgr_draw_sprite_1x28 =$13ba input_buffer =$15b2 hgr_text_box =$1650 -hgr_text_box_nosave =$16c4 +hgr_text_box_nosave =$16d7 hgr_partial_restore =$1530 -clear_bottom =$16d2 +clear_bottom =$1821 hgr_input =$1558 hgr_partial_save =$1501 draw_box =$126b @@ -23,13 +23,13 @@ invert_smc1 =$0f61 disp_put_string_cursor =$1696 hgr_put_char_cursor =$0f15 vgi_simple_rectangle =$12ec -peasant_text =$1d59 -save_menu =$17b0 -load_menu =$17a5 -location_names_l =$1adc -location_names_h =$1afb -wait_until_keypress =$1d1b -random16 =$1d24 +peasant_text =$1ea8 +save_menu =$18ff +load_menu =$18f4 +location_names_l =$1c2b +location_names_h =$1c4a +wait_until_keypress =$1e6a +random16 =$1e73 hposn_high = $BA00 hposn_low = $BB00 driveoff = $A22 diff --git a/games/peasant/text/word_list.s b/games/peasant/text/word_list.s new file mode 100644 index 00000000..9e07ad33 --- /dev/null +++ b/games/peasant/text/word_list.s @@ -0,0 +1,149 @@ +text_offset_table: +.byte word_already-word_table ;DIALOG_ALREADY = $80 +.byte word_cottage-word_table ;DIALOG_COTTAGE = $81 +.byte word_peasant-word_table ;DIALOG_PEASANT = $82 +.byte word_theres-word_table ;DIALOG_CAPITAL_THERES = $83 +.byte word_trogdor-word_table ;DIALOG_CAPITAL_TROGDOR = $84 + +.byte word_little-word_table ;DIALOG_LITTLE = $85 +.byte word_youre-word_table ;DIALOG_YOURE = $86 +.byte word_Youre-word_table ;DIALOG_CAPITAL_YOURE = $87 + +.byte word_about-word_table ;DIALOG_ABOUT = $88 +.byte word_cant-word_table ;DIALOG_CANT = $89 +.byte word_dont-word_table ;DIALOG_DONT = $8A +.byte word_there-word_table ;DIALOG_THERE = $8B +.byte word_There-word_table ;DIALOG_CAPITAL_THERE = $8C + +.byte word_baby-word_table ;DIALOG_BABY = $8D +.byte word_dead-word_table ;DIALOG_DEAD = $8E +.byte word_from-word_table ;DIALOG_FROM = $8F +.byte word_have-word_table ;DIALOG_HAVE = $90 +.byte word_here-word_table ;DIALOG_HERE = $91 +.byte word_into-word_table ;DIALOG_INTO = $92 +.byte word_its-word_table ;DIALOG_ITS = $93 +.byte word_Its-word_table ;DIALOG_CAPITAL_ITS = $94 +.byte word_just-word_table ;DIALOG_JUST = $95 +.byte word_like-word_table ;DIALOG_LIKE = $96 +.byte word_says-word_table ;DIALOG_SAYS = $97 +.byte word_some-word_table ;DIALOG_SOME = $98 +.byte word_that-word_table ;DIALOG_THAT = $99 +.byte word_That-word_table ;DIALOG_CAPITAL_THAT = $9A +.byte word_this-word_table ;DIALOG_THIS = $9B +.byte word_with-word_table ;DIALOG_WITH = $9C +.byte word_your-word_table ;DIALOG_YOUR = $9D + +.byte word_all-word_table ;DIALOG_ALL = $9E +.byte word_and-word_table ;DIALOG_AND = $9F +.byte word_are-word_table ;DIALOG_ARE = $A0 +.byte word_but-word_table ;DIALOG_BUT = $A1 +.byte word_for-word_table ;DIALOG_FOR = $A2 +.byte word_get-word_table ;DIALOG_GET = $A3 +.byte word_got-word_table ;DIALOG_GOT = $A4 +.byte word_him-word_table ;DIALOG_HIM = $A5 +.byte word_his-word_table ;DIALOG_HIS = $A6 +.byte word_not-word_table ;DIALOG_NOT = $A7 +.byte word_now-word_table ;DIALOG_NOW = $A8 +.byte word_old-word_table ;DIALOG_OLD = $A9 +.byte word_one-word_table ;DIALOG_ONE = $AA +.byte word_out-word_table ;DIALOG_OUT = $AB +.byte word_see-word_table ;DIALOG_SEE = $AC +.byte word_the-word_table ;DIALOG_THE = $AD +.byte word_The-word_table ;DIALOG_CAPITAL_THE = $AE +.byte word_was-word_table ;DIALOG_WAS = $AF +.byte word_you-word_table ;DIALOG_YOU = $B0 +.byte word_You-word_table ;DIALOG_CAPITAL_YOU = $B1 + +.byte word_an-word_table ;DIALOG_AN = $B2 +.byte word_at-word_table ;DIALOG_AT = $B3 +.byte word_be-word_table ;DIALOG_BE = $B4 +.byte word_do-word_table ;DIALOG_DO = $B5 +.byte word_go-word_table ;DIALOG_GO = $B6 +.byte word_he-word_table ;DIALOG_HE = $B7 +.byte word_He-word_table ;DIALOG_CAPITAL_HE = $B8 +.byte word_in-word_table ;DIALOG_IN = $B9 +.byte word_is-word_table ;DIALOG_IS = $BA +.byte word_it-word_table ;DIALOG_IT = $BB +.byte word_It-word_table ;DIALOG_CAPITAL_IT = $BC +.byte word_my-word_table ;DIALOG_MY = $BD +.byte word_no-word_table ;DIALOG_NO = $BE +.byte word_No-word_table ;DIALOG_CAPITAL_NO = $BF +.byte word_of-word_table ;DIALOG_OF = $C0 +.byte word_on-word_table ;DIALOG_ON = $C1 +.byte word_or-word_table ;DIALOG_OR = $C2 +.byte word_so-word_table ;DIALOG_SO = $C3 +.byte word_to-word_table ;DIALOG_TO = $C4 +.byte word_up-word_table ;DIALOG_UP = $C5 + + +word_table: +word_already: .byte "already" +word_cottage: .byte "cottage" +word_peasant: .byte "peasant" +word_theres: .byte "There's" +word_trogdor: .byte "Trogdor" +word_little: .byte "little" +word_youre: .byte "you're" +word_Youre: .byte "You're" +word_about: .byte "about" +word_cant: .byte "can't" +word_dont: .byte "don't" +word_there: .byte "there" +word_There: .byte "There" +word_baby: .byte "baby" +word_dead: .byte "dead" +word_from: .byte "from" +word_have: .byte "have" +word_here: .byte "here" +word_into: .byte "into" +word_its: .byte "it's" +word_Its: .byte "It's" +word_just: .byte "just" +word_like: .byte "like" +word_says: .byte "says" +word_some: .byte "some" +word_that: .byte "that" +word_That: .byte "That" +word_this: .byte "this" +word_with: .byte "with" +word_your: .byte "your" +word_all: .byte "all" +word_and: .byte "and" +word_are: .byte "are" +word_but: .byte "but" +word_for: .byte "for" +word_get: .byte "get" +word_got: .byte "got" +word_him: .byte "him" +word_his: .byte "his" +word_not: .byte "not" +word_now: .byte "now" +word_old: .byte "old" +word_one: .byte "one" +word_out: .byte "out" +word_see: .byte "see" +word_the: .byte "the" +word_The: .byte "The" +word_was: .byte "was" +word_you: .byte "you" +word_You: .byte "You" +word_an: .byte "an" +word_at: .byte "at" +word_be: .byte "be" +word_do: .byte "do" +word_go: .byte "go" +word_he: .byte "he" +word_He: .byte "He" +word_in: .byte "in" +word_is: .byte "is" +word_it: .byte "it" +word_It: .byte "It" +word_my: .byte "my" +word_no: .byte "no" +word_No: .byte "No" +word_of: .byte "of" +word_on: .byte "on" +word_or: .byte "or" +word_so: .byte "so" +word_to: .byte "to" +word_up: .byte "up"