diff --git a/entity.jim b/entity.jim index bd99fe4..fd30a7f 100755 Binary files a/entity.jim and b/entity.jim differ diff --git a/entity.jor b/entity.jor index 97f8ae6..117ae21 100755 --- a/entity.jor +++ b/entity.jor @@ -80,8 +80,8 @@ var entity-defstate : frame ( s n e w ) b, b, b, b, ; array frames ( 0: car ) 3 1 0 2 frame -( 1: pete stand ) 11 9 7 5 frame -( 2: pete walk ) 12 10 8 6 frame +( 1: gord stand ) 5 7 9 11 frame +( 2: gord walk ) 6 8 10 12 frame ( 3: mary stand ) 17 20 22 24 frame ( 4: mary walk ) 19 21 23 25 frame ( 5: car lights ) 29 27 26 28 frame @@ -106,10 +106,10 @@ array frames does> ( dir a -- ) swap drop lookup-frame ; -1 defsingle {blank} -0 defstatic {car} +0 defsingle {gord-sit} 5 defstatic {car-lit} -1 defstatic {pete-stand} -1 2 2 5 defanim {pete-walk} +1 defstatic {gord-stand} +1 2 2 5 defanim {gord-walk} 13 defsingle {pete-table} 14 defsingle {chair} 15 defsingle {pete-bed} diff --git a/footer.jim b/footer.jim index 0f6600e..ac2cc28 100755 Binary files a/footer.jim and b/footer.jim differ diff --git a/footer.jor b/footer.jor index c8bd8bb..142cebe 100755 --- a/footer.jor +++ b/footer.jor @@ -109,6 +109,7 @@ var cchoose 0 LGREEN character neut userword 3 LBLUE character jaye userword +5 CYAN character gord userword : noone WHITE text-color ! s" " dup dup dup 8 portraity 16 portraity 24 portraity 32 portraity ; userword diff --git a/game.jim b/game.jim index 0ba6b8b..fb0391d 100755 Binary files a/game.jim and b/game.jim differ diff --git a/game.jor b/game.jor index 8dacc77..fa31139 100755 --- a/game.jor +++ b/game.jor @@ -1,7 +1,3 @@ -var MODE-MOVE -var MODE-WAIT - - ( T I C K ) defer party defer entities @@ -151,9 +147,6 @@ var q-level party each follow more else drop then ; -' mode-move MODE-MOVE ! -' tick-debounce MODE-WAIT ! - : draw-entity >r r@ entity.x @ r@ entity.y @ r@ entity.dir @ sprite @@ -288,6 +281,8 @@ does> @ objects ! ; dup SCAN-ON SCAN-OFF handle-onoff SCAN-ON handle-link |; listener! ; +0 const unconnected + ( usage: entity :noname [ ev -- ev ] ... chain-listener ; ONLY works with :noname at top-level interpretation time - not :| |; compiles a reference to the previous listener into the :noname func @@ -297,9 +292,9 @@ does> @ objects ! ; :noname reset-level - MODE-MOVE @ ' tick redefine + ' mode-move ' tick redefine ' full-draw ' draw redefine :| pjaye yield done |; ' party redefine - :| MODE-WAIT @ ' tick redefine |; ' any-job-started redefine - :| MODE-MOVE @ ' tick redefine hide-footer |; ' all-jobs-complete redefine + :| ' tick-debounce ' tick redefine |; ' any-job-started redefine + :| ' mode-move ' tick redefine hide-footer |; ' all-jobs-complete redefine ; ' onload redefine diff --git a/gameboot.jor b/gameboot.jor index b0e2d1d..25533b8 100755 --- a/gameboot.jor +++ b/gameboot.jor @@ -1,7 +1,7 @@ : blah ' seremit task-emit ! ; blah -0 const DEV +1 const DEV s" game.log" open seekend fdeactivate const LOGFILE : emit-log ' fputc LOGFILE withfp ; @@ -31,10 +31,11 @@ s" game.jor" loadfile intern lev00001.jor intern lev00002.jor +intern lev00003.jor intern end.jor :noname loadfile ; checkpoint _loadlevel ' _loadlevel ' loadlevel redefine -lev00001.jor loadlevel +lev00003.jor loadlevel diff --git a/jiles.jim b/jiles.jim index bff5939..5759fd8 100755 Binary files a/jiles.jim and b/jiles.jim differ diff --git a/job.jim b/job.jim index 49aed33..04c7b50 100755 Binary files a/job.jim and b/job.jim differ diff --git a/lev00001.jim b/lev00001.jim index 06cee25..c804687 100755 Binary files a/lev00001.jim and b/lev00001.jim differ diff --git a/lev00002.jor b/lev00002.jor index 26b939e..0c1f1db 100755 --- a/lev00002.jor +++ b/lev00002.jor @@ -16,7 +16,6 @@ objects: O end.jor 7 0 exitdoor dx ' dx 6 0 scanner sx -: unconnected :| 0 |; ; defer c10 ' c10 5 1 computer cx ' cx 5 4 computer _c10 ' _c10 ' c10 redefine defer c8 ' c8 11 4 computer c9 diff --git a/lev00003.jim b/lev00003.jim new file mode 100755 index 0000000..a7e8a9b Binary files /dev/null and b/lev00003.jim differ diff --git a/lev00003.jor b/lev00003.jor new file mode 100755 index 0000000..ec89ddb --- /dev/null +++ b/lev00003.jor @@ -0,0 +1,58 @@ +( L E V 0 0 0 0 3 ) + +objects: O + +9 9 door d1 +' d1 7 7 switch b1 +' unconnected 5 7 computer c1 + +6 7 N ' {gord-sit} defentity Gord + +: flicker c1 EVTOG entity>do 15 sleep ; + +var gord-introduced +c1 :noname + dup EVTOUCH = isneut? and gord-introduced @ not and if + 1 gord-introduced ! + neut say" HUMAN PRESENCE\DETECTED" + flicker flicker flicker flicker + neut say" > HUMAN ASSISTANCE IS\REQUIRED" + neut say" > IF HUMAN IS PRESENT\PLEASE RESPOND" + day + flicker flicker flicker flicker + gord say" What the..." + gord say" Is someone in the terminal?" + gord say" > HUMAN IS PRESENT" + night + neut say" > GREETINGS, HUMAN" + neut say" > THIS IS NEUT v0.71.4rc12" + neut say" > PLEASE STATE NAME AND\STATUS" + day + gord say" > THIS IS GORD" + gord say" v1, I guess." + gord say" > LEG IS PINNED UNDER DESK\UNABLE TO MOVE" + night + neut say" > CAN YOU REACH THE SWITCH\BEHIND YOU?" + day + gord say" Huh? Oh, there is a\switch there on the wall." + gord say" Never thought about what\it connected to." + b1 EVACT entity>do 15 sleep + gord say" > I TURNED IT ON" + night + neut say" > MY PROGRAMMER THANKS\YOU, GORD" + neut say" > WE WILL ASSIST YOU SOON" + day + gord say" > AWAITING YOUR HELP, NEUT" + night + then chain-listener ; + +:noname + reset-level O + + :| Gord yield done |; ' entities redefine + + s" lev00003.map" load-map + 7 11 tile>world pjaye entity.pos! + 6 12 tile>world pneut entity.pos! + +; ' onload redefine diff --git a/lev00003.map b/lev00003.map new file mode 100755 index 0000000..35b9a54 Binary files /dev/null and b/lev00003.map differ diff --git a/map.jim b/map.jim index 8496f87..b2645e1 100755 Binary files a/map.jim and b/map.jim differ diff --git a/portrait.gfx b/portrait.gfx index 8065be3..c1eb0bf 100755 Binary files a/portrait.gfx and b/portrait.gfx differ diff --git a/space b/space deleted file mode 100755 index dc1ec09..0000000 Binary files a/space and /dev/null differ diff --git a/sprite.gfx b/sprite.gfx index 2e52e11..d9ff815 100755 Binary files a/sprite.gfx and b/sprite.gfx differ diff --git a/state.jim b/state.jim index 9a56f1c..8b6e39f 100755 Binary files a/state.jim and b/state.jim differ diff --git a/state.jor b/state.jor index 8097366..55ba69d 100755 --- a/state.jor +++ b/state.jor @@ -19,5 +19,4 @@ array flags FLAG-COUNT 8 / 1 + allot : day s" tiles.gfx" loadtiles invalidate-map NIGHT clearflag ; userword : night s" ntiles.gfx" loadtiles invalidate-map NIGHT setflag ; userword -: {car-drive} NIGHT flag@ if {car-lit} else {car} then ;