summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/cluautil.cc
diff options
context:
space:
mode:
authorRobert Vollmert <rvollmert@gmx.net>2009-10-21 11:31:49 +0200
committerRobert Vollmert <rvollmert@gmx.net>2009-10-21 11:36:17 +0200
commit7974b1cb0ff0b1d4e20550a3bc731b5c7df7ed10 (patch)
treeca6bf748c7b6d0156e7c43310c846b97e3f43c00 /crawl-ref/source/cluautil.cc
parent3ab7bb0a81e4d519d8ce6a8f44199cf70d243b0e (diff)
downloadcrawl-ref-7974b1cb0ff0b1d4e20550a3bc731b5c7df7ed10.tar.gz
crawl-ref-7974b1cb0ff0b1d4e20550a3bc731b5c7df7ed10.zip
Move more macros and functions to cluautil.cc.
Diffstat (limited to 'crawl-ref/source/cluautil.cc')
-rw-r--r--crawl-ref/source/cluautil.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/crawl-ref/source/cluautil.cc b/crawl-ref/source/cluautil.cc
index 291b717a21..13f5ab7267 100644
--- a/crawl-ref/source/cluautil.cc
+++ b/crawl-ref/source/cluautil.cc
@@ -58,3 +58,20 @@ void clua_push_dgn_event(lua_State *ls, const dgn_event *devent)
clua_new_userdata<const dgn_event *>(ls, DEVENT_METATABLE);
*de = devent;
}
+
+
+void luaopen_setmeta(lua_State *ls,
+ const char *global,
+ const luaL_reg *lua_lib,
+ const char *meta)
+{
+ luaL_newmetatable(ls, meta);
+ lua_setglobal(ls, global);
+
+ luaL_openlib(ls, global, lua_lib, 0);
+
+ // Do <global>.__index = <global>
+ lua_pushstring(ls, "__index");
+ lua_pushvalue(ls, -2);
+ lua_settable(ls, -3);
+}