neuttower/cheat.jor
2020-09-06 14:54:08 -04:00

50 lines
1.4 KiB
Plaintext
Executable file

: current-cheatchar ( p -- c )
dup @ swap cell + @ + b@ ;
: cheat create 0 , latest wordname , ,
does> ( c p -- )
>r r@ current-cheatchar = if
1 r@ +!
r@ current-cheatchar 0 = if
0 r@ !
r@ 2 cells + @ execute
then
else
0 r@ !
then rdrop ;
' noclip cheat NTSPISPOPD
:noname :|
disk :|
s" I don't wanna cheat" ' noop yield
s" Jump to level 1" :| hide-footer 1 queue-level |; yield
s" Jump to level 2" :| hide-footer 2 queue-level |; yield
s" Jump to level 3" :| hide-footer 3 queue-level |; yield
s" Jump to level 4" :| hide-footer 4 queue-level |; yield
s" Jump to level 5" :| hide-footer 5 queue-level |; yield
s" Jump to level 6" :| hide-footer 6 queue-level |; yield
done |; choose
|; sched ; cheat NTXYZZY
:noname :|
neut-chuck @ not dup neut-chuck ! if
neut say" Chuck Mode enabled!\* W H I N N Y *"
else
neut say" Chuck Mode disabled.\Beep boop."
then
|; sched ; cheat NTCHUCK
array letterkeys
30 b, 48 b, 46 b, 32 b, 18 b, 33 b, 34 b, 35 b, 23 b, 36 b, 37 b, 38 b, 50 b,
49 b, 24 b, 25 b, 16 b, 19 b, 31 b, 20 b, 22 b, 47 b, 17 b, 45 b, 21 b, 44 b,
: letter-typed
0 0 26 for letterkeys i + b@ key-released if drop i 65 + then next ;
:noname
:| letter-typed dup if
dup NTSPISPOPD
dup NTCHUCK
dup NTXYZZY
then drop |; ' cheat-tick redefine
; ' onload redefine