diff options
author | Robert Vollmert <rvollmert@gmx.net> | 2009-10-21 11:31:49 +0200 |
---|---|---|
committer | Robert Vollmert <rvollmert@gmx.net> | 2009-10-21 11:36:17 +0200 |
commit | 7974b1cb0ff0b1d4e20550a3bc731b5c7df7ed10 (patch) | |
tree | ca6bf748c7b6d0156e7c43310c846b97e3f43c00 /crawl-ref/source/cluautil.cc | |
parent | 3ab7bb0a81e4d519d8ce6a8f44199cf70d243b0e (diff) | |
download | crawl-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.cc | 17 |
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); +} |