diff options
Diffstat (limited to 'data/stdlib.cfg')
| -rw-r--r-- | data/stdlib.cfg | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/data/stdlib.cfg b/data/stdlib.cfg new file mode 100644 index 0000000..46e2517 --- /dev/null +++ b/data/stdlib.cfg @@ -0,0 +1,59 @@ +// console language standard library + +// creates a macro whose body is a format string +// i.e. macro greet [ say Hi, %1! ] +macro = [ + $arg1 = (concat [format [@@arg2]] (loopconcat i $numargs [concatword " $arg" (+ $i 1)])) +] + +// binds a key so that it will toggle a variable +// i.e. bindvar 9 thirdperson +togglevar = [ + set $arg1 (= $$arg1 0) + if (= $$arg1 0) [echo $arg1 OFF] [echo $arg1 ON] +] +bindvar = [ + if (>= $numargs 3) [ + bind $arg1 [if (@arg3) [togglevar @@arg2]] + ] [ + bind $arg1 [togglevar @arg2] + ] +] +bindvarquiet = [ + bind $arg1 [set @arg2 (= $@arg2 0)] +] + +// same as above, but only binds for edit mode +editbindvar = [ + if (>= $numargs 3) [ + editbind $arg1 [if (@arg3) [togglevar @@arg2]] + ] [ + editbind $arg1 [togglevar @arg2] + ] +] +editbindvarquiet = [ + editbind $arg1 [set @arg2 (= $@arg2 0)] +] + +// binds a key so that it will set a modifier while held down +bindmod = [ + bind $arg1 [set @arg2 1; onrelease [set @@arg2 0]] +] + +// same as above, but only binds for edit mode +editbindmod = [ + editbind $arg1 [set @arg2 1; onrelease [set @@arg2 0]] +] + +quine = [ echo (format "quine = [%1]" $quine) ] + +loadsky = [ + skybox $arg1 + if (> $numargs 1) [ + spinsky $arg2 + ] [ + if (!=f $spinsky 0) [spinsky 0] + ] +] + +mapmsg = [ maptitle $arg1 ] |
