PrimeWorldEditor/src/Core/Resource/Script/Property/CStructProperty.h

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