diff --git a/entity.jor b/entity.jor index 1a2bd7d..801536d 100755 --- a/entity.jor +++ b/entity.jor @@ -58,3 +58,5 @@ array frames 14 defsingle {chair} 15 defsingle {pete-bed} 16 defsingle {horse} +17 defsingle {mary} +18 defsingle {phone} diff --git a/footer.jor b/footer.jor index 688609f..9a7313d 100755 --- a/footer.jor +++ b/footer.jor @@ -25,13 +25,16 @@ var text-color WHITE text-color ! : textxy ( s x y ) rot drop drop else drop break then more ; + +: canchooseleft ichoose @ 0 > ; +: canchooseright ichoose @ cchoose @ 1 - < ; + +: displaychoice + clear + canchooseleft if s" <" 6 20 textxy then + canchooseright if s" >" 38 20 textxy then + getchoice drop slowtext ; + +: navchoice ( -- done ) + 0 begin suspend + ^LEFT key-pressed canchooseleft and if drop 1 -1 ichoose +! then + ^RIGHT key-pressed canchooseright and if drop 1 1 ichoose +! then + ^ENTER key-pressed if drop 2 then + dup until 1 - ; + +: choose ( gen -- ) + ' choosegen redefine countchoosegen 0 ichoose ! + textleftchoice clear show-footer + begin displaychoice navchoice until + getchoice swap drop execute ; + : character ( iportrait color ) create , , does> dup @ text-color ! cell + @ draw-portrait ; @@ -75,6 +110,7 @@ var texttimer 1 MAGENTA character mary 2 BROWN character chuck 3 YELLOW character jeanne +4 LGRAY character phone : noone WHITE text-color ! s" " dup dup dup 8 portraity 16 portraity 24 portraity 32 portraity ; diff --git a/game.prj b/game.prj index f55542b..0020605 100755 Binary files a/game.prj and b/game.prj differ diff --git a/petehous.jor b/petehous.jor index 49740ed..579d375 100755 --- a/petehous.jor +++ b/petehous.jor @@ -3,15 +3,20 @@ 16 5 N ' {pete-table} defentity table 15 5 N ' {chair} defentity chair 7 6 N ' {pete-bed} defentity bed +10 9 N ' {phone} defentity e_phone table :touch pete say" Yesterday's breakfast is still\on the table." say" Maybe the day before's too." ;entity chair :touch pete say" I've had my morning coffee\already." ;entity bed :touch pete say" I'm not tired yet." ;entity +e_phone :touch phone + :| s" [don't pick up]" :| pete say" Hmm... no answer." |; yield + s" Hey Pete, what's up?" :| pete say" Not much, old friend!" |; yield + done |; choose ;entity :noname reset-level - :| table yield chair yield bed yield done |; ' entities redefine + :| table yield chair yield bed yield e_phone yield done |; ' entities redefine :| touch-begin 16 10 2= dup if player move-entity 12 8 pete.jor queue-level diff --git a/portrait.tif b/portrait.tif index d8eee3a..8569e05 100755 Binary files a/portrait.tif and b/portrait.tif differ diff --git a/sprite.tif b/sprite.tif index ebdcc42..c29941a 100755 Binary files a/sprite.tif and b/sprite.tif differ