diff options
| author | Alexander Gavrilov | 2012-03-25 19:12:59 +0400 |
|---|---|---|
| committer | Alexander Gavrilov | 2012-03-25 19:12:59 +0400 |
| commit | 1d81cb56ba1410b630f365fb5b1a949ea373c638 (patch) | |
| tree | d7b00cc4101c43967ad4f051b5ed5704e0794d4a /library/LuaTypes.cpp | |
| parent | 0412aaebe4266d9d1ed07ac4d6083ba360b90a45 (diff) | |
| download | dfhack-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.cpp | 14 |
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; |
