aboutsummaryrefslogtreecommitdiff
path: root/common/lua/ltm.h
diff options
context:
space:
mode:
authorNipun Garg2019-03-09 02:41:35 +0530
committerEugene Sandulenko2019-08-13 10:18:02 +0200
commitc1f029c6dcd606b3dbe8e3952ac55f89968ab6c4 (patch)
tree251016525019b20ca6c41a95d4a584483724daee /common/lua/ltm.h
parentf019afa94a4638e6132551a570ce3b1d67b62b54 (diff)
downloadscummvm-rg350-c1f029c6dcd606b3dbe8e3952ac55f89968ab6c4.tar.gz
scummvm-rg350-c1f029c6dcd606b3dbe8e3952ac55f89968ab6c4.tar.bz2
scummvm-rg350-c1f029c6dcd606b3dbe8e3952ac55f89968ab6c4.zip
COMMON: Move Lua into Common and make it into...
an engine feature
Diffstat (limited to 'common/lua/ltm.h')
-rw-r--r--common/lua/ltm.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/common/lua/ltm.h b/common/lua/ltm.h
new file mode 100644
index 0000000000..1b89683ef3
--- /dev/null
+++ b/common/lua/ltm.h
@@ -0,0 +1,54 @@
+/*
+** $Id$
+** Tag methods
+** See Copyright Notice in lua.h
+*/
+
+#ifndef ltm_h
+#define ltm_h
+
+
+#include "lobject.h"
+
+
+/*
+* WARNING: if you change the order of this enumeration,
+* grep "ORDER TM"
+*/
+typedef enum {
+ TM_INDEX,
+ TM_NEWINDEX,
+ TM_GC,
+ TM_MODE,
+ TM_EQ, /* last tag method with `fast' access */
+ TM_ADD,
+ TM_SUB,
+ TM_MUL,
+ TM_DIV,
+ TM_MOD,
+ TM_POW,
+ TM_UNM,
+ TM_LEN,
+ TM_LT,
+ TM_LE,
+ TM_CONCAT,
+ TM_CALL,
+ TM_N /* number of elements in the enum */
+} TMS;
+
+
+
+#define gfasttm(g,et,e) ((et) == NULL ? NULL : \
+ ((et)->flags & (1u<<(e))) ? NULL : luaT_gettm(et, e, (g)->tmname[e]))
+
+#define fasttm(l,et,e) gfasttm(G(l), et, e)
+
+LUAI_DATA const char *const luaT_typenames[];
+
+
+LUAI_FUNC const TValue *luaT_gettm (Table *events, TMS event, TString *ename);
+LUAI_FUNC const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o,
+ TMS event);
+LUAI_FUNC void luaT_init (lua_State *L);
+
+#endif