summaryrefslogtreecommitdiff
path: root/library/LuaTypes.cpp
diff options
context:
space:
mode:
authorAlexander Gavrilov2012-03-25 19:12:59 +0400
committerAlexander Gavrilov2012-03-25 19:12:59 +0400
commit1d81cb56ba1410b630f365fb5b1a949ea373c638 (patch)
treed7b00cc4101c43967ad4f051b5ed5704e0794d4a /library/LuaTypes.cpp
parent0412aaebe4266d9d1ed07ac4d6083ba360b90a45 (diff)
downloaddfhack-1d81cb56ba1410b630f365fb5b1a949ea373c638.tar.gz
dfhack-1d81cb56ba1410b630f365fb5b1a949ea373c638.tar.bz2
dfhack-1d81cb56ba1410b630f365fb5b1a949ea373c638.tar.xz
Make enum attributes accessible through the lua wrapper.
TODO: make them completely read-only.
Diffstat (limited to 'library/LuaTypes.cpp')
-rw-r--r--library/LuaTypes.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/library/LuaTypes.cpp b/library/LuaTypes.cpp
index c4b58b00..536bcd72 100644
--- a/library/LuaTypes.cpp
+++ b/library/LuaTypes.cpp
@@ -110,6 +110,20 @@ void df::bool_identity::lua_write(lua_State *state, int fname_idx, void *ptr, in
field_error(state, fname_idx, "boolean or number expected", "write");
}
+void df::ptr_string_identity::lua_read(lua_State *state, int fname_idx, void *ptr)
+{
+ auto pstr = (char**)ptr;
+ if (*pstr)
+ lua_pushstring(state, *pstr);
+ else
+ lua_pushnil(state);
+}
+
+void df::ptr_string_identity::lua_write(lua_State *state, int fname_idx, void *ptr, int val_index)
+{
+ field_error(state, fname_idx, "raw pointer string", "write");
+}
+
void df::stl_string_identity::lua_read(lua_State *state, int fname_idx, void *ptr)
{
auto pstr = (std::string*)ptr;