diff options
| author | Alexander Gavrilov | 2012-03-20 13:56:29 +0400 |
|---|---|---|
| committer | Alexander Gavrilov | 2012-03-20 13:56:29 +0400 |
| commit | 6c661bcaa907952f3ffdc4ff546ec88cfcc36d72 (patch) | |
| tree | eeb3b20f6b32cb95c036f4a33701b30020afc0bd /library/DataStaticsFields.cpp | |
| parent | dbbd9acfad8d5994f321840e3d695fe8a67ac315 (diff) | |
| download | dfhack-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.cpp | 40 |
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 |
