summaryrefslogtreecommitdiff
path: root/library/DataStaticsFields.cpp
diff options
context:
space:
mode:
authorAlexander Gavrilov2012-03-19 20:12:27 +0400
committerAlexander Gavrilov2012-03-19 20:12:27 +0400
commitdbbd9acfad8d5994f321840e3d695fe8a67ac315 (patch)
tree77d31425a26f6e4afd8a3b0c1a029c5ca78a9add /library/DataStaticsFields.cpp
parent296d3a0af306a5247048ed4f38b2bc72eb582d89 (diff)
downloaddfhack-dbbd9acfad8d5994f321840e3d695fe8a67ac315.tar.gz
dfhack-dbbd9acfad8d5994f321840e3d695fe8a67ac315.tar.bz2
dfhack-dbbd9acfad8d5994f321840e3d695fe8a67ac315.tar.xz
Export the type tree with enum keys to lua.
Diffstat (limited to 'library/DataStaticsFields.cpp')
-rw-r--r--library/DataStaticsFields.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/library/DataStaticsFields.cpp b/library/DataStaticsFields.cpp
index 0e6e9957..a9d2f312 100644
--- a/library/DataStaticsFields.cpp
+++ b/library/DataStaticsFields.cpp
@@ -13,6 +13,27 @@
#pragma GCC diagnostic ignored "-Winvalid-offsetof"
+namespace df {
+#define ATOM_IDENTITY_TRAITS(type) \
+ primitive_identity identity_traits<type>::identity(sizeof(type));
+
+ ATOM_IDENTITY_TRAITS(char);
+ ATOM_IDENTITY_TRAITS(int8_t);
+ ATOM_IDENTITY_TRAITS(uint8_t);
+ ATOM_IDENTITY_TRAITS(int16_t);
+ ATOM_IDENTITY_TRAITS(uint16_t);
+ ATOM_IDENTITY_TRAITS(int32_t);
+ ATOM_IDENTITY_TRAITS(uint32_t);
+ ATOM_IDENTITY_TRAITS(int64_t);
+ ATOM_IDENTITY_TRAITS(uint64_t);
+ ATOM_IDENTITY_TRAITS(bool);
+ ATOM_IDENTITY_TRAITS(float);
+ ATOM_IDENTITY_TRAITS(std::string);
+ ATOM_IDENTITY_TRAITS(void*);
+
+#undef ATOM_IDENTITY_TRAITS
+}
+
#define TID(type) (&identity_traits< type >::identity)
#define FLD(mode, name) struct_field_info::mode, #name, offsetof(CUR_STRUCT, name)