39 lines
1.0 KiB
C++
39 lines
1.0 KiB
C++
#ifndef CSTRUCTPROPERTY_H
|
|
#define CSTRUCTPROPERTY_H
|
|
|
|
#include "IProperty.h"
|
|
|
|
class CStructProperty : public IProperty
|
|
{
|
|
friend class IProperty;
|
|
|
|
public:
|
|
// Must be a valid type for TPropertyRef
|
|
typedef void* ValueType;
|
|
|
|
protected:
|
|
CStructProperty(EGame Game)
|
|
: IProperty(Game)
|
|
{}
|
|
|
|
public:
|
|
virtual EPropertyType Type() const;
|
|
virtual void PostInitialize();
|
|
virtual uint32 DataSize() const;
|
|
virtual uint32 DataAlignment() const;
|
|
virtual void Construct(void* pData) const;
|
|
virtual void Destruct(void* pData) const;
|
|
virtual bool MatchesDefault(void* pData) const;
|
|
virtual void RevertToDefault(void* pData) const;
|
|
virtual void SetDefaultFromData(void* pData);
|
|
virtual const char* HashableTypeName() const;
|
|
virtual void Serialize(IArchive& rArc);
|
|
virtual void SerializeValue(void* pData, IArchive& Arc) const;
|
|
virtual void InitFromArchetype(IProperty* pOther);
|
|
virtual bool ShouldSerialize() const;
|
|
|
|
inline static EPropertyType StaticType() { return EPropertyType::Struct; }
|
|
};
|
|
|
|
#endif
|