diff --git a/end.jim b/end.jim index f5f1d3b..e31b8c2 100755 Binary files a/end.jim and b/end.jim differ diff --git a/entity.jim b/entity.jim index fd30a7f..0a37bad 100755 Binary files a/entity.jim and b/entity.jim differ diff --git a/entity.jor b/entity.jor index 117ae21..6516177 100755 --- a/entity.jor +++ b/entity.jor @@ -1,9 +1,10 @@ -0 const EVTICK -1 const EVTOUCH -2 const EVUNTOUCH -3 const EVACT -4 const EVDEACT -5 const EVTOG +-1 const EVNOP + 0 const EVTICK + 1 const EVTOUCH + 2 const EVUNTOUCH + 3 const EVACT + 4 const EVDEACT + 5 const EVTOG : world>tile 4 >> swap 4 >> swap ; userword : tile>world 4 << swap 4 << swap ; userword @@ -79,16 +80,12 @@ var entity-defstate : frame ( s n e w ) b, b, b, b, ; array frames -( 0: car ) 3 1 0 2 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 -( 6: jeanne stand ) 30 32 34 36 frame -( 7: jeanne walk ) 31 33 35 37 frame -( 8: boat w/ pete ) 42 41 40 39 frame -( 9: duck ) 44 45 44 45 frame +( 0: gord stand ) 5 7 9 11 frame +( 1: gord walk ) 6 8 10 12 frame +( 2: jaye stand ) 30 32 34 36 frame +( 3: jaye walk ) 31 33 35 37 frame +( 4: duck ) 44 45 44 45 frame +( 5: rexx stand ) 15 16 17 18 frame : sprindex ( dir frame ) 2 << frames + + b@ ; : defstatic ( frame -- ) create b, does> b@ sprindex ; @@ -107,26 +104,15 @@ array frames -1 defsingle {blank} 0 defsingle {gord-sit} -5 defstatic {car-lit} -1 defstatic {gord-stand} -1 2 2 5 defanim {gord-walk} -13 defsingle {pete-table} -14 defsingle {chair} -15 defsingle {pete-bed} -16 defsingle {horse} -3 defstatic {mary} -3 4 2 5 defanim {mary-walk} -6 defstatic {jeanne} -6 7 2 5 defanim {jeanne-walk} -18 defsingle {phone} -38 defsingle {fridge} -43 defsingle {boat} -8 defstatic {boat-pete} -9 defstatic {duck} -46 defsingle {aliem} +0 defstatic {gord-stand} +0 1 2 5 defanim {gord-walk} +2 defstatic {jaye-stand} +2 3 2 5 defanim {jaye-walk} +4 defstatic {duck} 13 14 2 5 defmulti {neut} +5 defstatic {rexx} : sprite-bob ( x y sprindex -- x y sprindex ) - dup 13 >= over 14 <= and if + dup 13 >= over 18 <= and if >rot 2dup + ticks + 40 % 20 < if 1 + then @ objects ! ; and sets the listener of the entity on the stack to the new func ) : chain-listener ( entity xp -- ) swap dup @ , ! ; immediate +: cancel-ev ( ev -- EVNOP ) drop EVNOP ; :noname reset-level diff --git a/jiles.jim b/jiles.jim index 5759fd8..33f429e 100755 Binary files a/jiles.jim and b/jiles.jim differ diff --git a/jiles.jor b/jiles.jor index aaf5e39..98f2729 100755 --- a/jiles.jor +++ b/jiles.jor @@ -37,7 +37,7 @@ array preview 128 allot 0 edittarget = if s" sprite.gfx" else 1 edittarget = if - NIGHT flag@ if + PROG-VIEW flag@ if s" ntiles.gfx" else s" tiles.gfx" diff --git a/job.jim b/job.jim index 04c7b50..1023fd5 100755 Binary files a/job.jim and b/job.jim differ diff --git a/lev00002.jor b/lev00002.jor index 0c1f1db..8b166f4 100755 --- a/lev00002.jor +++ b/lev00002.jor @@ -13,7 +13,7 @@ objects: O 2 6 door d9 4 2 door d10 -end.jor 7 0 exitdoor dx +lev00003.jor 7 0 exitdoor dx ' dx 6 0 scanner sx defer c10 ' c10 5 1 computer cx diff --git a/lev00003.jim b/lev00003.jim index a7e8a9b..3be38ad 100755 Binary files a/lev00003.jim and b/lev00003.jim differ diff --git a/lev00003.jor b/lev00003.jor index ec89ddb..ef6e3a3 100755 --- a/lev00003.jor +++ b/lev00003.jor @@ -3,10 +3,18 @@ objects: O 9 9 door d1 +7 5 door d2 ' d1 7 7 switch b1 -' unconnected 5 7 computer c1 +' d2 0 3 switch b2 + +defer c2 ' c2 5 7 computer c1 +' c1 8 3 computer _c2 ' _c2 ' c2 redefine + +end.jor 0 4 exitdoor dx +' dx 0 5 scanner sx 6 7 N ' {gord-sit} defentity Gord +5 2 S ' {rexx} defentity Rexx : flicker c1 EVTOG entity>do 15 sleep ; @@ -18,38 +26,39 @@ c1 :noname flicker flicker flicker flicker neut say" > HUMAN ASSISTANCE IS\REQUIRED" neut say" > IF HUMAN IS PRESENT\PLEASE RESPOND" - day + human-view flicker flicker flicker flicker gord say" What the..." gord say" Is someone in the terminal?" gord say" > HUMAN IS PRESENT" - night + prog-view neut say" > GREETINGS, HUMAN" neut say" > THIS IS NEUT v0.71.4rc12" neut say" > PLEASE STATE NAME AND\STATUS" - day + human-view gord say" > THIS IS GORD" gord say" v1, I guess." gord say" > LEG IS PINNED UNDER DESK\UNABLE TO MOVE" - night + prog-view neut say" > CAN YOU REACH THE SWITCH\BEHIND YOU?" - day + human-view 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 + 5 sleep b1 EVACT entity>do 15 sleep gord say" > I TURNED IT ON" - night + prog-view neut say" > MY PROGRAMMER THANKS\YOU, GORD" neut say" > WE WILL ASSIST YOU SOON" - day + human-view gord say" > AWAITING YOUR HELP, NEUT" - night + prog-view + cancel-ev then chain-listener ; :noname reset-level O - :| Gord yield done |; ' entities redefine + :| Gord yield Rexx yield done |; ' entities redefine s" lev00003.map" load-map 7 11 tile>world pjaye entity.pos! diff --git a/lev00003.map b/lev00003.map index 35b9a54..3fbba41 100755 Binary files a/lev00003.map and b/lev00003.map differ diff --git a/map.jim b/map.jim index b2645e1..010b830 100755 Binary files a/map.jim and b/map.jim differ diff --git a/map.jor b/map.jor index b966f89..f9d2917 100755 --- a/map.jor +++ b/map.jor @@ -32,6 +32,7 @@ array tileflags ( scanner-off ) NEUTABLE b, ( scanner-on ) NEUTABLE b, ( cracked-wall ) 0 b, +( rexx-pod ) NEUTABLE b, here tileflags - 1 - const MAXTILE diff --git a/ntiles.gfx b/ntiles.gfx index 9af306b..9bc9ffe 100755 Binary files a/ntiles.gfx and b/ntiles.gfx differ diff --git a/sprite.gfx b/sprite.gfx index d9ff815..9417460 100755 Binary files a/sprite.gfx and b/sprite.gfx differ diff --git a/state.jim b/state.jim index 8b6e39f..1230a3c 100755 Binary files a/state.jim and b/state.jim differ diff --git a/state.jor b/state.jor index 55ba69d..7b68213 100755 --- a/state.jor +++ b/state.jor @@ -1,12 +1,6 @@ -0 const JEANNE-ANGRY userword -1 const CHUCK-GONE userword -2 const CHUCK-FOLLOW userword -3 const CHUCK-HOME userword -4 const CHUCK-STOLEN userword -5 const CHUCK-EXPLAINED userword -6 const NIGHT userword +0 const PROG-VIEW userword -7 const FLAG-COUNT +1 const FLAG-COUNT array flags FLAG-COUNT 8 / 1 + allot @@ -16,7 +10,7 @@ array flags FLAG-COUNT 8 / 1 + allot : setflag 1 swap flagsf! ; userword : clearflag 0 swap flagsf! ; userword -: day s" tiles.gfx" loadtiles invalidate-map NIGHT clearflag ; userword -: night s" ntiles.gfx" loadtiles invalidate-map NIGHT setflag ; userword +: human-view s" tiles.gfx" loadtiles invalidate-map PROG-VIEW clearflag ; userword +: prog-view s" ntiles.gfx" loadtiles invalidate-map PROG-VIEW setflag ; userword diff --git a/tiles.gfx b/tiles.gfx index aea55d5..984e837 100755 Binary files a/tiles.gfx and b/tiles.gfx differ