diff options
Diffstat (limited to 'src/lua_core.c')
| -rw-r--r-- | src/lua_core.c | 20 |
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; } |
