summaryrefslogtreecommitdiff
path: root/library/DataStaticsFields.cpp
diff options
context:
space:
mode:
authorAlexander Gavrilov2012-03-20 13:56:29 +0400
committerAlexander Gavrilov2012-03-20 13:56:29 +0400
commit6c661bcaa907952f3ffdc4ff546ec88cfcc36d72 (patch)
treeeeb3b20f6b32cb95c036f4a33701b30020afc0bd /library/DataStaticsFields.cpp
parentdbbd9acfad8d5994f321840e3d695fe8a67ac315 (diff)
downloaddfhack-6c661bcaa907952f3ffdc4ff546ec88cfcc36d72.tar.gz
dfhack-6c661bcaa907952f3ffdc4ff546ec88cfcc36d72.tar.bz2
dfhack-6c661bcaa907952f3ffdc4ff546ec88cfcc36d72.tar.xz
Add support for primitive type fields in lua wrapper.
Diffstat (limited to 'library/DataStaticsFields.cpp')
-rw-r--r--library/DataStaticsFields.cpp40
1 files changed, 21 insertions, 19 deletions
diff --git a/library/DataStaticsFields.cpp b/library/DataStaticsFields.cpp
index a9d2f312..22ce9b6d 100644
--- a/library/DataStaticsFields.cpp
+++ b/library/DataStaticsFields.cpp
@@ -14,30 +14,32 @@
#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 NUMBER_IDENTITY_TRAITS(type) \
+ number_identity<type> identity_traits<type>::identity;
+
+ NUMBER_IDENTITY_TRAITS(char);
+ NUMBER_IDENTITY_TRAITS(int8_t);
+ NUMBER_IDENTITY_TRAITS(uint8_t);
+ NUMBER_IDENTITY_TRAITS(int16_t);
+ NUMBER_IDENTITY_TRAITS(uint16_t);
+ NUMBER_IDENTITY_TRAITS(int32_t);
+ NUMBER_IDENTITY_TRAITS(uint32_t);
+ NUMBER_IDENTITY_TRAITS(int64_t);
+ NUMBER_IDENTITY_TRAITS(uint64_t);
+ NUMBER_IDENTITY_TRAITS(float);
+
+ bool_identity identity_traits<bool>::identity;
+ stl_string_identity identity_traits<std::string>::identity;
+ pointer_identity identity_traits<void*>::identity;
+ stl_ptr_vector_identity identity_traits<std::vector<void*> >::identity;
+
+#undef NUMBER_IDENTITY_TRAITS
}
#define TID(type) (&identity_traits< type >::identity)
#define FLD(mode, name) struct_field_info::mode, #name, offsetof(CUR_STRUCT, name)
-#define GFLD(mode, name) struct_field_info::mode, #name, 0
+#define GFLD(mode, name) struct_field_info::mode, #name, (size_t)&df::global::name
#define FLD_END struct_field_info::END
// Field definitions