diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-11-20 18:53:40 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-11-20 18:53:40 +0000 |
commit | f1d9756f8c577019f9446fbf22cec49d41babd28 (patch) | |
tree | f37ea2ea8086aa331978e151e336bb9c77cc97b4 /crawl-ref/source/clua.cc | |
parent | 683599a4fa6300d6517c0f75d60c028bd62136cc (diff) | |
download | crawl-ref-f1d9756f8c577019f9446fbf22cec49d41babd28.tar.gz crawl-ref-f1d9756f8c577019f9446fbf22cec49d41babd28.zip |
Spadework for ziggurats and other multilevel portal vaults.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7520 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/clua.cc')
-rw-r--r-- | crawl-ref/source/clua.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/crawl-ref/source/clua.cc b/crawl-ref/source/clua.cc index 7fb7a310a7..c0c6e6845f 100644 --- a/crawl-ref/source/clua.cc +++ b/crawl-ref/source/clua.cc @@ -2946,3 +2946,33 @@ void lua_datum::cleanup() lua_settable(lua, LUA_REGISTRYINDEX); } } + +#define LUA_CHECK_TYPE(check) \ + lua_stack_cleaner clean(lua); \ + push(); \ + return check(lua, -1) + +bool lua_datum::is_table() const +{ + LUA_CHECK_TYPE(lua_istable); +} + +bool lua_datum::is_function() const +{ + LUA_CHECK_TYPE(lua_isfunction); +} + +bool lua_datum::is_number() const +{ + LUA_CHECK_TYPE(lua_isnumber); +} + +bool lua_datum::is_string() const +{ + LUA_CHECK_TYPE(lua_isstring); +} + +bool lua_datum::is_udata() const +{ + LUA_CHECK_TYPE(lua_isuserdata); +} |