summaryrefslogtreecommitdiff
path: root/data/stdlib.cfg
diff options
context:
space:
mode:
authorxolatile2025-07-16 23:08:07 +0200
committerxolatile2025-07-16 23:08:07 +0200
commitc79e16f394a027db7cc5b6d1ea1e27da0b24bbb6 (patch)
treef9a22cc38000a8a7a348ed100c11a6c071c187e7 /data/stdlib.cfg
parent7256502afa0babe60fcafbd2888cd3e33c3f9b6b (diff)
downloadxolatile-badassbug-c79e16f394a027db7cc5b6d1ea1e27da0b24bbb6.tar.xz
xolatile-badassbug-c79e16f394a027db7cc5b6d1ea1e27da0b24bbb6.tar.zst
Data files, broken...
Diffstat (limited to 'data/stdlib.cfg')
-rw-r--r--data/stdlib.cfg59
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 ]