summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/clua.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2008-11-20 18:53:40 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2008-11-20 18:53:40 +0000
commitf1d9756f8c577019f9446fbf22cec49d41babd28 (patch)
treef37ea2ea8086aa331978e151e336bb9c77cc97b4 /crawl-ref/source/clua.cc
parent683599a4fa6300d6517c0f75d60c028bd62136cc (diff)
downloadcrawl-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.cc30
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);
+}