1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
5 //#include <CrySchematyc2/AggregateTypeId.h>
6 //#include <CrySchematyc2/IEnvRegistry.h>
7 //#include <CrySchematyc2/IEnvTypeDesc.h>
8 //#include <CrySchematyc2/Deprecated/DocUtils.h>
9 #include <CrySchematyc2/Script/IScriptFile.h>
13 // Script structure value.
14 // #SchematycTODO : Does we really need to derive from IAny or should we create a CScriptAny utility class?
15 ////////////////////////////////////////////////////////////////////////////////////////////////////
16 class CScriptStructureValue
: public IAny
20 CScriptStructureValue(const IScriptStructure
* pStructure
);
21 CScriptStructureValue(const CScriptStructureValue
& rhs
);
24 virtual CTypeInfo
GetTypeInfo() const override
;
25 virtual uint32
GetSize() const override
;
26 virtual bool Copy(const IAny
& rhs
) override
;
27 virtual IAny
* Clone(void* pPlacement
) const override
;
28 virtual IAnyPtr
Clone() const override
;
29 virtual bool ToString(const CharArrayView
& str
) const override
;
30 virtual GameSerialization::IContextPtr
BindSerializationContext(Serialization::IArchive
& archive
) const override
;
31 virtual bool Serialize(Serialization::IArchive
& archive
, const char* szName
, const char* szLabel
) override
;
32 virtual IAnyExtension
* QueryExtension(EAnyExtension extension
) override
;
33 virtual const IAnyExtension
* QueryExtension(EAnyExtension extension
) const override
;
34 virtual void* ToVoidPtr() override
;
35 virtual const void* ToVoidPtr() const override
;
38 void Serialize(Serialization::IArchive
& archive
);
42 typedef std::map
<string
, IAnyPtr
> FieldMap
; // #SchematycTODO : Replace map with vector to preserve order!
46 const IScriptStructure
* m_pStructure
; // #SchematycTODO : Wouldn't it be safer to reference by GUID?