diff options
Diffstat (limited to 'src/script.c')
-rw-r--r-- | src/script.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/script.c b/src/script.c index adf402b..78165b0 100644 --- a/src/script.c +++ b/src/script.c @@ -8,6 +8,7 @@ #include <random.h> #include <serial.h> #include <stack.h> +#include <keypad.h> int script_puts(interpreter *it); int script_gets(interpreter *it); @@ -17,6 +18,7 @@ int script_ppos(interpreter *it); int script_line(interpreter *it); int script_color(interpreter *it); int script_rand(interpreter *it); +int script_getkey(interpreter *it); void script_loadlib(interpreter *it) { @@ -28,6 +30,7 @@ void script_loadlib(interpreter *it) inew_cfunc(it, "line", script_line); inew_cfunc(it, "color", script_color); inew_cfunc(it, "rand", script_rand); + inew_cfunc(it, "getkey", script_getkey); } int script_puts(interpreter *it) @@ -118,3 +121,16 @@ int script_rand(interpreter *it) free(v); return 0; } + +int script_getkey(interpreter *it) +{ + variable *v = (variable *)malloc(sizeof(variable)); + v->valtype = INTEGER; + INT(v) = keypad_get(); + v->svalue = 0; + isetstr(v); + iret(it, v); + free(v->svalue); + free(v); + return 0; +} |