diff options
Diffstat (limited to 'Runtime/BaseClasses/BitField.h')
-rw-r--r-- | Runtime/BaseClasses/BitField.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Runtime/BaseClasses/BitField.h b/Runtime/BaseClasses/BitField.h new file mode 100644 index 0000000..1ead092 --- /dev/null +++ b/Runtime/BaseClasses/BitField.h @@ -0,0 +1,26 @@ +#ifndef BITFIELD_H +#define BITFIELD_H +#include "Runtime/Serialize/SerializeUtility.h" + +struct BitField +{ + DECLARE_SERIALIZE_OPTIMIZE_TRANSFER (BitField) + UInt32 m_Bits; +}; + +enum { kPreUnity2UnusedLayerMask = 1 << 5 }; + +template<class TransferFunc> +void BitField::Transfer (TransferFunc& transfer) +{ + transfer.SetVersion (2); + transfer.Transfer (m_Bits, "m_Bits", kHideInEditorMask | kGenerateBitwiseDifferences); + + if (transfer.IsOldVersion(1)) + { + if (m_Bits & kPreUnity2UnusedLayerMask) + m_Bits |= 0xFFFF << 16; + } +} + +#endif |