[CherryPick][LYN-2738] Fix Reflect functions of IAnimSequence and CAnimSequence (#103)
* [CherryPick][LYN-2738] Fix Reflect functions of IAnimSequence and CAnimSequence (#85)
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
#include <AzCore/Component/EntityId.h>
|
||||
#include <AzCore/Math/Crc.h>
|
||||
#include <AzCore/Math/Quaternion.h>
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
|
||||
#include <Range.h>
|
||||
#include <AnimKey.h>
|
||||
@@ -914,9 +915,18 @@ struct IAnimStringTable
|
||||
*/
|
||||
struct IAnimSequence
|
||||
{
|
||||
AZ_RTTI(IAnimSequence, "{A60F95F5-5A4A-47DB-B3BB-525BBC0BC8DB}")
|
||||
AZ_RTTI(IAnimSequence, "{A60F95F5-5A4A-47DB-B3BB-525BBC0BC8DB}");
|
||||
AZ_CLASS_ALLOCATOR(IAnimSequence, AZ::SystemAllocator, 0);
|
||||
|
||||
static const int kSequenceVersion = 4;
|
||||
static const int kSequenceVersion = 5;
|
||||
|
||||
static void Reflect(AZ::ReflectContext* context)
|
||||
{
|
||||
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context); serializeContext != nullptr)
|
||||
{
|
||||
serializeContext->Class<IAnimSequence>();
|
||||
}
|
||||
}
|
||||
|
||||
//! Flags used for SetFlags(),GetFlags(),SetParentFlags(),GetParentFlags() methods.
|
||||
enum EAnimSequenceFlags
|
||||
|
||||
@@ -823,20 +823,37 @@ void CAnimSequence::SetId(uint32 newId)
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void CAnimSequence::Reflect(AZ::SerializeContext* serializeContext)
|
||||
static bool AnimSequenceVersionConverter(
|
||||
AZ::SerializeContext& serializeContext,
|
||||
AZ::SerializeContext::DataElementNode& rootElement)
|
||||
{
|
||||
serializeContext->Class<CAnimSequence>()
|
||||
->Version(4)
|
||||
->Field("Name", &CAnimSequence::m_name)
|
||||
->Field("SequenceEntityId", &CAnimSequence::m_sequenceEntityId)
|
||||
->Field("Flags", &CAnimSequence::m_flags)
|
||||
->Field("TimeRange", &CAnimSequence::m_timeRange)
|
||||
->Field("ID", &CAnimSequence::m_id)
|
||||
->Field("Nodes", &CAnimSequence::m_nodes)
|
||||
->Field("SequenceType", &CAnimSequence::m_sequenceType)
|
||||
->Field("Events", &CAnimSequence::m_events)
|
||||
->Field("Expanded", &CAnimSequence::m_expanded)
|
||||
->Field("ActiveDirectorNodeId", &CAnimSequence::m_activeDirectorNodeId);
|
||||
if (rootElement.GetVersion() < 5)
|
||||
{
|
||||
rootElement.AddElement(serializeContext, "BaseClass1", azrtti_typeid<IAnimSequence>());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void CAnimSequence::Reflect(AZ::ReflectContext* context)
|
||||
{
|
||||
IAnimSequence::Reflect(context);
|
||||
|
||||
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context); serializeContext != nullptr)
|
||||
{
|
||||
serializeContext->Class<CAnimSequence, IAnimSequence>()
|
||||
->Version(IAnimSequence::kSequenceVersion, &AnimSequenceVersionConverter)
|
||||
->Field("Name", &CAnimSequence::m_name)
|
||||
->Field("SequenceEntityId", &CAnimSequence::m_sequenceEntityId)
|
||||
->Field("Flags", &CAnimSequence::m_flags)
|
||||
->Field("TimeRange", &CAnimSequence::m_timeRange)
|
||||
->Field("ID", &CAnimSequence::m_id)
|
||||
->Field("Nodes", &CAnimSequence::m_nodes)
|
||||
->Field("SequenceType", &CAnimSequence::m_sequenceType)
|
||||
->Field("Events", &CAnimSequence::m_events)
|
||||
->Field("Expanded", &CAnimSequence::m_expanded)
|
||||
->Field("ActiveDirectorNodeId", &CAnimSequence::m_activeDirectorNodeId);
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -154,7 +154,7 @@ public:
|
||||
return m_nextTrackId++;
|
||||
}
|
||||
|
||||
static void Reflect(AZ::SerializeContext* serializeContext);
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
private:
|
||||
void ComputeTimeRange();
|
||||
|
||||
Reference in New Issue
Block a user