Fix serialization issues related to sequence node/track (#214) (#247)

* Fix serialization issues related to sequence node/track
This commit is contained in:
chiyenteng
2021-04-22 17:42:06 -07:00
committed by GitHub
parent 9ca7408929
commit bac334a244
73 changed files with 801 additions and 442 deletions
@@ -179,23 +179,41 @@ bool CScreenFaderTrack::SetActiveTexture(int index)
}
//////////////////////////////////////////////////////////////////////////
template<>
inline void TAnimTrack<IScreenFaderKey>::Reflect(AZ::SerializeContext* serializeContext)
static bool ScreenFaderTrackVersionConverter(
AZ::SerializeContext& serializeContext,
AZ::SerializeContext::DataElementNode& rootElement)
{
serializeContext->Class<TAnimTrack<IScreenFaderKey> >()
->Version(2)
->Field("Flags", &TAnimTrack<IScreenFaderKey>::m_flags)
->Field("Range", &TAnimTrack<IScreenFaderKey>::m_timeRange)
->Field("ParamType", &TAnimTrack<IScreenFaderKey>::m_nParamType)
->Field("Keys", &TAnimTrack<IScreenFaderKey>::m_keys)
->Field("Id", &TAnimTrack<IScreenFaderKey>::m_id);
if (rootElement.GetVersion() < 3)
{
rootElement.AddElement(serializeContext, "BaseClass1", azrtti_typeid<IAnimTrack>());
}
return true;
}
template<>
inline void TAnimTrack<IScreenFaderKey>::Reflect(AZ::ReflectContext* context)
{
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
{
serializeContext->Class<TAnimTrack<IScreenFaderKey>, IAnimTrack>()
->Version(3, &ScreenFaderTrackVersionConverter)
->Field("Flags", &TAnimTrack<IScreenFaderKey>::m_flags)
->Field("Range", &TAnimTrack<IScreenFaderKey>::m_timeRange)
->Field("ParamType", &TAnimTrack<IScreenFaderKey>::m_nParamType)
->Field("Keys", &TAnimTrack<IScreenFaderKey>::m_keys)
->Field("Id", &TAnimTrack<IScreenFaderKey>::m_id);
}
}
//////////////////////////////////////////////////////////////////////////
void CScreenFaderTrack::Reflect(AZ::SerializeContext* serializeContext)
void CScreenFaderTrack::Reflect(AZ::ReflectContext* context)
{
TAnimTrack<IScreenFaderKey>::Reflect(serializeContext);
TAnimTrack<IScreenFaderKey>::Reflect(context);
serializeContext->Class<CScreenFaderTrack, TAnimTrack<IScreenFaderKey> >()
->Version(1);
}
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
{
serializeContext->Class<CScreenFaderTrack, TAnimTrack<IScreenFaderKey>>()
->Version(1);
}
}