37#define IRIS_DECLARE_COMMON() \
39 static const UE::Net::FReplicationStateDescriptor sReplicationStateDescriptor; \
40 static const UE::Net::FReplicationStateMemberDescriptor sReplicationStateDescriptorMemberDescriptors[]; \
41 static const UE::Net::FReplicationStateMemberSerializerDescriptor sReplicationStateDescriptorMemberSerializerDescriptors[]; \
42 static const UE::Net::FReplicationStateMemberTraitsDescriptor sReplicationStateDescriptorMemberTraitsDescriptors[]; \
43 static const UE::Net::FReplicationStateMemberFunctionDescriptor sReplicationStateDescriptorMemberFunctionDescriptors[]; \
44 static const UE::Net::FReplicationStateMemberTagDescriptor sReplicationStateDescriptorMemberTagDescriptors[]; \
45 static const UE::Net::FReplicationStateMemberReferenceDescriptor sReplicationStateDescriptorMemberReferenceDescriptors[]; \
46 static const UE::Net::FReplicationStateMemberDebugDescriptor sReplicationStateDescriptorMemberDebugDescriptors[]; \
47 UE::Net::FReplicationStateHeader InternalReplicationState; \
48 UE::Net::FNetBitArrayView::StorageWordType ChangeMask[UE::Net::Private::CalculateWordCountForChangeMask(sReplicationStateChangeMaskDescriptors)] = { }; \
51 void SetDirty(const UE::Net::FReplicationStateMemberChangeMaskDescriptor& Bits) { UE::Net::FNetBitArrayView Mask(&ChangeMask[0], sReplicationStateDescriptor.ChangeMaskBitCount); UE::Net::Private::MarkDirty(InternalReplicationState, Mask, Bits);} \
52 bool IsDirty(const UE::Net::FReplicationStateMemberChangeMaskDescriptor& Bits) const { const UE::Net::FNetBitArrayView Mask(const_cast<UE::Net::FNetBitArrayView::StorageWordType*>(&ChangeMask[0]), sReplicationStateDescriptor.ChangeMaskBitCount); return Mask.GetBit(Bits.BitOffset); } \
54 static const UE::Net::FReplicationStateDescriptor* GetReplicationStateDescriptor() { return &sReplicationStateDescriptor; }
56#define IRIS_ACCESS_BY_VALUE(MemberName, MemberType, MemberIndex) \
57void Set##MemberName(MemberType Value) { if (MemberName != Value) { SetDirty(sReplicationStateChangeMaskDescriptors[MemberIndex]); } MemberName = Value; } \
58MemberType Get##MemberName() const { return MemberName; } \
59bool Is##MemberName##Dirty() const { return IsDirty(sReplicationStateChangeMaskDescriptors[MemberIndex]); }
61#define IRIS_ACCESS_BY_REFERENCE(MemberName, MemberType, MemberIndex) \
62void Set##MemberName(const MemberType& Value) { if (MemberName != Value) { SetDirty(sReplicationStateChangeMaskDescriptors[MemberIndex]); } MemberName = Value; } \
63const MemberType& Get##MemberName() const { return MemberName; } \
64bool Is##MemberName##Dirty() const { return IsDirty(sReplicationStateChangeMaskDescriptors[MemberIndex]); }
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_ARRAY_COUNT(array)
Definition UnrealTemplate.h:212
static constexpr uint32 CalculateRequiredWordCount(uint32 BitCount)
Definition NetBitArray.h:1414
Definition NetworkVersion.cpp:28
U16 Index
Definition radfft.cpp:71