diff --git a/boot.jim b/boot.jim index 40999d6..93ad3d2 100755 Binary files a/boot.jim and b/boot.jim differ diff --git a/debug.jim b/debug.jim index c54b916..5af2f12 100755 Binary files a/debug.jim and b/debug.jim differ diff --git a/defs.jim b/defs.jim index 9e55678..4cc3021 100755 Binary files a/defs.jim and b/defs.jim differ diff --git a/end.jim b/end.jim index 19fdf50..707c5b1 100755 Binary files a/end.jim and b/end.jim differ diff --git a/entity.jim b/entity.jim index 9377a76..07a0e17 100755 Binary files a/entity.jim and b/entity.jim differ diff --git a/footer.jim b/footer.jim index 8385e4f..41d3f27 100755 Binary files a/footer.jim and b/footer.jim differ diff --git a/game.jim b/game.jim index 78fb223..7e24001 100755 Binary files a/game.jim and b/game.jim differ diff --git a/game.jor b/game.jor index 0ae7db6..9d99622 100755 --- a/game.jor +++ b/game.jor @@ -124,16 +124,18 @@ var posessed-rexx defer touch-override ( x y -- b ) : rexx-touch ( x y -- b ) - 2dup RUBBLE mapflag? isrexx? and if - tile 3 swap b! invalidate-map 0 - sfx-garbage - else tile b@ REXX-POD = if - move-player - S posessed-rexx @ entity.dir ! - posessed-rexx @ entity>pos Neut entity.pos! - 0 posessed-rexx ! - 1 - else 0 then then ; + 0 >r isrexx? if + 2dup RUBBLE mapflag? if + tile 3 swap b! invalidate-map + sfx-garbage + else tile b@ REXX-POD = if + move-player + S posessed-rexx @ entity.dir ! + posessed-rexx @ entity>pos Neut entity.pos! + 0 posessed-rexx ! + rdrop 1 >r + then then + else drop drop then :| dup EVTOUCH = isjaye? and if responder EVACT entity>do then dup EVTOUCH = isneut? and COMP-ON responder>tile? and if move-player then dup EVHACK = if hacked libb say" nothing interesting on this one." then + COMP-OFF responder>tile? swap dup COMP-ON COMP-OFF handle-onoff - handle-teleport |; listener! ; + handle-teleport + COMP-OFF responder>tile? != if + COMP-OFF responder>tile? if sfx-termoff else sfx-termon then + then |; listener! ; : scanner create-linked-object :| dup EVTOUCH = isneut? and if @@ -439,6 +445,7 @@ does> responder EVACT entity>do then dup EVHACK = if + sfx-libb libb say" that's easy." responder entity>pos Libb entity.pos! hacked @@ -457,6 +464,7 @@ does> move-player responder posessed-rexx ! -100 -100 Neut entity.pos! + sfx-rexx then |; listener! ; 0 const unconnected @@ -487,6 +495,7 @@ Gord @ const gord-listener : chain-gord-listener gord-listener execute ; :noname + ' norm-rexxinst ' rexxinst redefine HASNEUT player.state ! human-view 0 objects ! 0 ticking-objects ! 0 visible-objects ! diff --git a/input.jim b/input.jim index 3a2e5aa..ec6afa8 100755 Binary files a/input.jim and b/input.jim differ diff --git a/jiles.jim b/jiles.jim index e35a220..fad390b 100755 Binary files a/jiles.jim and b/jiles.jim differ diff --git a/job.jim b/job.jim index 0d39e25..1a41319 100755 Binary files a/job.jim and b/job.jim differ diff --git a/jorth.h b/jorth.h index c386d4c..e2d08b8 100755 --- a/jorth.h +++ b/jorth.h @@ -1,7 +1,7 @@ #include -#define MEM_SIZE 33792 +#define MEM_SIZE 40960 #define STACK_SIZE 64 #define RSTACK_SIZE 64 diff --git a/lev00002.jim b/lev00002.jim index a4ccca2..7d93b82 100755 Binary files a/lev00002.jim and b/lev00002.jim differ diff --git a/lev00003.jim b/lev00003.jim index d41a474..48de308 100755 Binary files a/lev00003.jim and b/lev00003.jim differ diff --git a/lev00004.jim b/lev00004.jim index 734163e..8cbd9a2 100755 Binary files a/lev00004.jim and b/lev00004.jim differ diff --git a/lev00005.jim b/lev00005.jim index bdca3df..5eeefd8 100755 Binary files a/lev00005.jim and b/lev00005.jim differ diff --git a/lev00005.jor b/lev00005.jor index 4faf39d..1f34be8 100755 --- a/lev00005.jor +++ b/lev00005.jor @@ -1,5 +1,11 @@ ( L E V 0 0 0 0 5 ) +202 12 128 192 17 244 0 46 9 241 18 0 instrument glitch-inst +202 10 48 0 83 245 0 10 0 221 6 3 instrument drop-inst + +: sfx-glitch glitch-inst 1 loadsfx %F ; +: sfx-dropgarbage :| drop-inst 3 loadsfx %A rest 1 octave ! %A |; SFX send ; + objects: O lazy 60 over 19 9 timedswitch ts @@ -42,17 +48,21 @@ here rubbletiles - 1 - const MAXRUBBLE : touch ( x y -- b ) drop 13 <= isrexx? and posessed-rexx @ Rexx = and if 3 glitchlevel ! + sfx-glitch rexx say" PaRiTy ErrRor!!" + noteoff 0 glitchlevel ! 1 else not-picking-up? can-drop-rubble? and isrexx? and if randomrubble rexx-pos tile b! invalidate-map + sfx-dropgarbage then 0 then ; var first-rexx-touch Rexx :noname + ' sick-rexxinst ' rexxinst redefine dup EVTOUCH = isneut? and first-rexx-touch @ not and if 1 first-rexx-touch ! rexx say" bOSssS..." @@ -61,6 +71,7 @@ Rexx :noname var first-rexx2-touch Rexx2 :noname + ' norm-rexxinst ' rexxinst redefine dup EVTOUCH = isneut? and first-rexx2-touch @ not and if 1 first-rexx2-touch ! neut say" REXX UNIT\PERFORM FULL DIAGNOSTIC SCAN" @@ -79,19 +90,25 @@ d2 :noname move-player W mr 1 glitchlevel ! + :| sick-rexxinst 2 loadsfx 5 sleep + %G 10 sleep %E 10 sleep %C 10 sleep 1 octave ! %G |; SFX send rexx say" daaAiisSyyy, daAAIIsYY..." hide-footer 2 glitchlevel ! W mr W mr + :| sick-rexxinst 2 loadsfx + %A rest rest %B rest rest %C rest rest %A rest rest %C rest rest %G |; + SFX send rexx say" gIVe mE YOur AnSwerR\doOO0OO0o0oooOO..." hide-footer N mr N mr 4 glitchlevel ! 1 quaking ! + sfx-glitch rexx say" uh oh" hide-footer Rexx entity>pos world>tile -1 -1 +pos dup 3 + for dup over 3 + i >rot for i over ( x y ) - tile randomrubble swap b! invalidate-map 1 sleep + tile randomrubble swap b! invalidate-map sfx-splode 1 sleep next drop next drop -100 -100 Rexx entity.pos! 0 glitchlevel ! diff --git a/lev00006.jim b/lev00006.jim index bec9ccb..dffbad6 100755 Binary files a/lev00006.jim and b/lev00006.jim differ diff --git a/lev00006.jor b/lev00006.jor index 5c059bf..7b10f9c 100755 --- a/lev00006.jor +++ b/lev00006.jor @@ -1,4 +1,7 @@ ( L E V E L 0 0 0 0 6 ) +202 0 0 14 99 119 0 9 0 104 119 0 instrument keyinst +: sfx-key ( n -- ) keyinst loadinst 36 + noteon ; + objects: O 2 const ^1 @@ -10,7 +13,7 @@ objects: O ^1 - 1 + dup 10 = if drop 0 then ; : draw-digit ( x n -- ) code-y swap 48 + text-color @ textc ; : code-digit ( code x -- code ) - wait-for-digit swap code-x + over draw-digit swap 10 * + ; + wait-for-digit dup sfx-key swap code-x + over draw-digit swap 10 * + ; : read-code ( -- n ) WHITE text-color ! @@ -58,10 +61,11 @@ var pady-introduced pady say" Another strange program!\My, I'm popular today!" libb say" oh puke. please shut up." runon pady say" How rud" + hacked sfx-libb libb say" > /winnuke 182.556.21.74" pady say" PADYSEC caused a General\Protection Fault in module\MORICON.DLL at 000A:BE3F." libb say" > /open" - drop EVACT hacked + drop EVACT then dup PAD-ON PAD-OFF handle-onoff PAD-ON handle-link |; listener! ; diff --git a/level.jim b/level.jim index 7b106d9..68edf52 100755 Binary files a/level.jim and b/level.jim differ diff --git a/map.jim b/map.jim index 58b6a37..d5f27a0 100755 Binary files a/map.jim and b/map.jim differ diff --git a/map.jor b/map.jor index 69287f9..2ad536c 100755 --- a/map.jor +++ b/map.jor @@ -28,7 +28,7 @@ array tileflags ( 14:chair-brok ) RUBBLE b, ( 15:bookcase ) 0 b, ( 16:bookcase-broke ) RUBBLE b, -( 17:scattered books ) WALKABLE RUBBLE | b, +( 17:scattered books ) WALKABLE b, ( don't want rexx to explode books ) ( 18:plant ) 0 b, ( 19:tipped plant ) RUBBLE b, ( 20:scanner-off ) NEUTABLE ENTITY | b, diff --git a/neuttowr.exe b/neuttowr.exe index d34b68a..ea6c40f 100755 Binary files a/neuttowr.exe and b/neuttowr.exe differ diff --git a/neuttowr.prj b/neuttowr.prj index ecf67a7..0fa410d 100755 Binary files a/neuttowr.prj and b/neuttowr.prj differ diff --git a/save.sav b/save.sav index 5407bf3..ac7ac5f 100755 Binary files a/save.sav and b/save.sav differ diff --git a/sound.jim b/sound.jim index 9770fa9..ad7c171 100755 Binary files a/sound.jim and b/sound.jim differ diff --git a/sound.jor b/sound.jor index 1369ce5..39eed02 100755 --- a/sound.jor +++ b/sound.jor @@ -57,6 +57,7 @@ array semitones : note dup 12 / 8 % swap 12 % cells semitones + @ 440 swap *