summaryrefslogtreecommitdiff
path: root/src/lua_core.c
diff options
context:
space:
mode:
authorjussi2023-10-15 22:31:17 +0300
committerjussi2023-10-15 22:31:17 +0300
commit95be0403e69b3047a0375cf965dedca0ad876409 (patch)
treeebfc72f0e5ad7c193e679a0744443b367902c09a /src/lua_core.c
parent7af7e7003131e182efb30bac8c1ff06ac1d667d6 (diff)
downloadreilua-enhanced-95be0403e69b3047a0375cf965dedca0ad876409.tar.gz
reilua-enhanced-95be0403e69b3047a0375cf965dedca0ad876409.tar.bz2
reilua-enhanced-95be0403e69b3047a0375cf965dedca0ad876409.zip
Argumets stored in RL.arg array.
Diffstat (limited to 'src/lua_core.c')
-rw-r--r--src/lua_core.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/lua_core.c b/src/lua_core.c
index 15dfe70..c254a9d 100644
--- a/src/lua_core.c
+++ b/src/lua_core.c
@@ -1007,18 +1007,32 @@ static void cursorEnterInputEvent( GLFWwindow* window, int enter ) {
lua_pop( L, -1 );
}
-bool luaInit() {
+bool luaInit( int argn, const char **argc ) {
state->luaState = luaL_newstate();
+ lua_State *L = state->luaState;
- luaL_openlibs( state->luaState );
+ luaL_openlibs( L );
- if ( state->luaState == NULL ) {
+ if ( L == NULL ) {
TraceLog( LOG_WARNING, "%s", "Failed to init Lua" );
return false;
}
defineGlobals();
+ /* Set arguments. */
+ lua_getglobal( L, "RL" );
+ lua_newtable( L );
+ lua_setfield( L, -2, "arg" );
+ lua_getglobal( L, "RL" );
+ lua_getfield( L, -1, "arg" );
+
+ for ( int i = 0; i < argn; i++ ) {
+ lua_pushstring( L, argc[i] );
+ lua_rawseti( L, -2, i + 1 );
+ }
+ lua_pop( L, -1 );
+
return true;
}