/apps/twnlua: report error on loading

This commit is contained in:
veclavtalica 2025-01-26 08:48:59 +03:00
parent b0e718876a
commit 7a403c766e
2 changed files with 28 additions and 20 deletions

View File

@ -136,10 +136,6 @@ void game_tick(void) {
lua_pop(state->L, 2); lua_pop(state->L, 2);
/* binding */ /* binding */
// lua_register(state->L, "sprite", b_sprite);
// lua_register(state->L, "rectangle", b_rectangle);
// lua_register(state->L, "text", b_text);
bindgen_load_twn(state->L); bindgen_load_twn(state->L);
/* now finally get to running the code */ /* now finally get to running the code */
@ -149,14 +145,23 @@ void game_tick(void) {
if (lua_pcall(state->L, 0, 0, 0) != LUA_OK) { if (lua_pcall(state->L, 0, 0, 0) != LUA_OK) {
log_critical("%s", lua_tostring(state->L, -1)); log_critical("%s", lua_tostring(state->L, -1));
lua_pop(state->L, 1); lua_pop(state->L, 1);
} else
state->loaded_successfully = true;
} else {
/* got some sort of error, it should be pushed on top of the stack */
SDL_assert(lua_isstring(state->L, -1));
log_critical("Error loading /scripts/game.lua entry: %s", luaL_tolstring(state->L, -1, NULL));
lua_pop(state->L, 1);
} }
}
free(game_buf); free(game_buf);
/* from this point we have access to everything defined in lua */ /* from this point we have access to everything defined in lua */
} }
State *state = ctx.udata; State *state = ctx.udata;
if (state->loaded_successfully) {
bindgen_build_context(state->L); bindgen_build_context(state->L);
lua_getglobal(state->L, "ctx"); lua_getglobal(state->L, "ctx");
if (!lua_isnoneornil(state->L, -1)) { if (!lua_isnoneornil(state->L, -1)) {
@ -174,6 +179,7 @@ void game_tick(void) {
lua_getglobal(state->L, "ctx"); lua_getglobal(state->L, "ctx");
bindgen_upload_context(state->L); bindgen_upload_context(state->L);
}
} }

View File

@ -3,9 +3,11 @@
#include <lua.h> #include <lua.h>
#include <stdbool.h>
typedef struct State { typedef struct State {
lua_State *L; lua_State *L;
bool loaded_successfully;
} State; } State;