raze/polymer/eduke32/build/include/lunatic.h
helixhorned 3bcdc5acb8 Lunatic reorganization part 2: split into engine and editor/game parts.
On the engine side (functions starting with L_), there are now the basic
parts like state creation and running code from strings and files.
The game and editor can add to that by e.g. loading whatever they please
into the state. Their functions start with El_ and Em_, respectively.
The Lua scripts still reside in source/lunatic, even for the common ones.
This is because they will be embedded into the binaries as bytecode or
compressed source eventually, so their location on disk will be irrelevant.

git-svn-id: https://svn.eduke32.com/eduke32@3148 1a8010ca-5511-0410-912e-c29ae57300e0
2012-11-10 20:59:00 +00:00

29 lines
717 B
C

/* The Lunatic Interpreter, part of EDuke32. Common, engine-side stuff. */
#ifndef ENGINE_LUNATIC_H_
#define ENGINE_LUNATIC_H_
#include <lua.h>
typedef struct
{
char *name;
lua_State *L;
} L_State;
// -- functions --
// helpers taking the lua_State directly:
void L_SetupDebugTraceback(lua_State *L);
void L_CheckAndRegisterFunction(lua_State *L, void *regkeyaddr);
int L_CreateState(L_State *estate, const char *name, void (*StateSetupFunc)(lua_State *));
void L_DestroyState(L_State *estate);
int L_RunOnce(L_State *estate, const char *fn);
int L_RunString(L_State *estate, char *buf, int dofreebuf);
static inline int L_IsInitialized(const L_State *estate) { return (estate->L != NULL); }
#endif