* Fix serialization issues related to sequence node/track
This commit is contained in:
@@ -100,23 +100,41 @@ int CTimeRangesTrack::GetActiveKeyIndexForTime(const float time)
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
template<>
|
||||
inline void TAnimTrack<ITimeRangeKey>::Reflect(AZ::SerializeContext* serializeContext)
|
||||
static bool TimeRangesTrackVersionConverter(
|
||||
AZ::SerializeContext& serializeContext,
|
||||
AZ::SerializeContext::DataElementNode& rootElement)
|
||||
{
|
||||
serializeContext->Class<TAnimTrack<ITimeRangeKey> >()
|
||||
->Version(2)
|
||||
->Field("Flags", &TAnimTrack<ITimeRangeKey>::m_flags)
|
||||
->Field("Range", &TAnimTrack<ITimeRangeKey>::m_timeRange)
|
||||
->Field("ParamType", &TAnimTrack<ITimeRangeKey>::m_nParamType)
|
||||
->Field("Keys", &TAnimTrack<ITimeRangeKey>::m_keys)
|
||||
->Field("Id", &TAnimTrack<ITimeRangeKey>::m_id);
|
||||
if (rootElement.GetVersion() < 3)
|
||||
{
|
||||
rootElement.AddElement(serializeContext, "BaseClass1", azrtti_typeid<IAnimTrack>());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
template<>
|
||||
inline void TAnimTrack<ITimeRangeKey>::Reflect(AZ::ReflectContext* context)
|
||||
{
|
||||
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
|
||||
{
|
||||
serializeContext->Class<TAnimTrack<ITimeRangeKey>, IAnimTrack>()
|
||||
->Version(3, &TimeRangesTrackVersionConverter)
|
||||
->Field("Flags", &TAnimTrack<ITimeRangeKey>::m_flags)
|
||||
->Field("Range", &TAnimTrack<ITimeRangeKey>::m_timeRange)
|
||||
->Field("ParamType", &TAnimTrack<ITimeRangeKey>::m_nParamType)
|
||||
->Field("Keys", &TAnimTrack<ITimeRangeKey>::m_keys)
|
||||
->Field("Id", &TAnimTrack<ITimeRangeKey>::m_id);
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void CTimeRangesTrack::Reflect(AZ::SerializeContext* serializeContext)
|
||||
void CTimeRangesTrack::Reflect(AZ::ReflectContext* context)
|
||||
{
|
||||
TAnimTrack<IBoolKey>::Reflect(serializeContext);
|
||||
TAnimTrack<ITimeRangeKey>::Reflect(context);
|
||||
|
||||
serializeContext->Class<CTimeRangesTrack, TAnimTrack<ITimeRangeKey> >()
|
||||
->Version(1);
|
||||
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
|
||||
{
|
||||
serializeContext->Class<CTimeRangesTrack, TAnimTrack<ITimeRangeKey>>()
|
||||
->Version(1);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user