summaryrefslogtreecommitdiff
path: root/src/luaconsole.c
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2011-06-08 15:30:36 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-06-08 15:30:36 (GMT)
commit3ea25c83b7dc039b23af2eeb4279a046fa0bf259 (patch)
tree2e665e8b179bc44c266c0aa090384bd2ba93fd37 /src/luaconsole.c
parente94ed7bc113c42a3f8541aa6031f38ab6ddf8063 (diff)
downloadpowder-3ea25c83b7dc039b23af2eeb4279a046fa0bf259.zip
powder-3ea25c83b7dc039b23af2eeb4279a046fa0bf259.tar.gz
message_box and input for Lua API, also autorun.lua
Diffstat (limited to 'src/luaconsole.c')
-rw-r--r--src/luaconsole.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/luaconsole.c b/src/luaconsole.c
index 052aa98..091b976 100644
--- a/src/luaconsole.c
+++ b/src/luaconsole.c
@@ -30,6 +30,8 @@ void luacon_open(){
{"delete", &luatpt_delete},
{"register_step", &luatpt_register_step},
{"unregister_step", &luatpt_unregister_step},
+ {"input", &luatpt_input},
+ {"message_box", &luatpt_message_box},
{NULL,NULL}
};
@@ -703,4 +705,45 @@ int luatpt_unregister_step(lua_State* l)
}
return 0;
}
+int luatpt_input(lua_State* l)
+{
+ char *prompt, *title, *result, *shadow, *text;
+ title = mystrdup(luaL_optstring(l, 1, "Title"));
+ prompt = mystrdup(luaL_optstring(l, 2, "Enter some text:"));
+ text = mystrdup(luaL_optstring(l, 3, ""));
+ shadow = mystrdup(luaL_optstring(l, 4, ""));
+
+ if (vid_buf!=NULL)
+ {
+ result = input_ui(vid_buf, title, prompt, text, shadow);
+ lua_pushstring(l, result);
+ free(result);
+ free(title);
+ free(prompt);
+ free(text);
+ free(shadow);
+ return 1;
+ }
+ free(title);
+ free(prompt);
+ free(text);
+ free(shadow);
+ return luaL_error(l, "Screen buffer does not exist");
+}
+int luatpt_message_box(lua_State* l)
+{
+ char *title, *text;
+ title = mystrdup(luaL_optstring(l, 1, "Title"));
+ text = mystrdup(luaL_optstring(l, 2, "Message"));
+ if (vid_buf!=NULL)
+ {
+ info_ui(vid_buf, title, text);
+ free(title);
+ free(text);
+ return 0;
+ }
+ free(title);
+ free(text);
+ return luaL_error(l, "Screen buffer does not exist");;
+}
#endif