summaryrefslogtreecommitdiff
path: root/src/luaconsole.c
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2011-05-30 15:22:39 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-05-30 15:22:39 (GMT)
commit79a27c2c90823f1f9212d80c6b2d63cde620855c (patch)
tree04ed2d7542c57446467483447bee6fafea64fbc2 /src/luaconsole.c
parent5dcc3dbb44f1c721a4adbee3db2dd8b5542e870e (diff)
downloadpowder-79a27c2c90823f1f9212d80c6b2d63cde620855c.zip
powder-79a27c2c90823f1f9212d80c6b2d63cde620855c.tar.gz
Basics for Lua
Diffstat (limited to 'src/luaconsole.c')
-rw-r--r--src/luaconsole.c61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/luaconsole.c b/src/luaconsole.c
new file mode 100644
index 0000000..4c21613
--- /dev/null
+++ b/src/luaconsole.c
@@ -0,0 +1,61 @@
+#ifdef LUACONSOLE
+#include <luaconsole.h>
+
+lua_State *l;
+void luacon_open(){
+ const static struct luaL_reg tptluaapi [] = {
+ {"test", &luatpt_test},
+ {NULL,NULL}
+ };
+
+
+ l = lua_open();
+ luaL_openlibs(l);
+ luaL_openlib(l, "tpt", tptluaapi, 0);
+}
+int luacon_step(){
+ //Nothing here yet
+ return 0;
+}
+int luacon_keypress(char key){
+ //Nothing here yet
+ return 0;
+}
+int luacon_eval(char *command){
+ return luaL_dostring (l, command);
+}
+void luacon_close(){
+ lua_close(l);
+}
+int process_command_lua(pixel *vid_buf, char *console, char *console_error)
+{
+ int commandret;
+ char console2[15];
+ char console3[15];
+ char console4[15];
+ char console5[15];
+ //sprintf(console_error, "%s", console);
+ if (console && strcmp(console, "")!=0 && strncmp(console, " ", 1)!=0)
+ {
+ sscanf(console,"%14s %14s %14s %14s", console2, console3, console4, console5);
+ if (strcmp(console2, "quit")==0)
+ {
+ return -1;
+ } else {
+ commandret = luacon_eval(console);
+ if (commandret)
+ strcpy(console_error,"failed to execute code.");
+ }
+ }
+ return 1;
+}
+//Being TPT interface methods:
+int luatpt_test(lua_State* l)
+{
+ int testint = 0;
+ testint = luaL_optint(l, 1, 0);
+ printf("Test successful, got %d\n", testint);
+ return 1;
+}
+
+#endif