diff options
Diffstat (limited to 'movieobjects/dmeanimationlist.cpp')
| -rw-r--r-- | movieobjects/dmeanimationlist.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/movieobjects/dmeanimationlist.cpp b/movieobjects/dmeanimationlist.cpp new file mode 100644 index 0000000..0540884 --- /dev/null +++ b/movieobjects/dmeanimationlist.cpp @@ -0,0 +1,68 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// An element that contains a list of animations +// +//============================================================================= +#include "movieobjects/dmeanimationlist.h" +#include "datamodel/dmelementfactoryhelper.h" +#include "movieobjects/dmeclip.h" + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + + +//----------------------------------------------------------------------------- +// Expose this class to the scene database +//----------------------------------------------------------------------------- +IMPLEMENT_ELEMENT_FACTORY( DmeAnimationList, CDmeAnimationList ); + + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CDmeAnimationList::OnConstruction() +{ + m_Animations.Init( this, "animations" ); +} + +void CDmeAnimationList::OnDestruction() +{ +} + + +//----------------------------------------------------------------------------- +// Adds, removes animations +//----------------------------------------------------------------------------- +int CDmeAnimationList::AddAnimation( CDmeChannelsClip *pAnimation ) +{ + return m_Animations.AddToTail( pAnimation ); +} + +void CDmeAnimationList::RemoveAnimation( int nIndex ) +{ + m_Animations.Remove( nIndex ); +} + + +//----------------------------------------------------------------------------- +// Sets the transform +//----------------------------------------------------------------------------- +void CDmeAnimationList::SetAnimation( int nIndex, CDmeChannelsClip *pAnimation ) +{ + m_Animations.Set( nIndex, pAnimation ); +} + + +//----------------------------------------------------------------------------- +// Finds an animation by name +//----------------------------------------------------------------------------- +int CDmeAnimationList::FindAnimation( const char *pAnimName ) +{ + int nCount = m_Animations.Count(); + for ( int i = 0; i < nCount; ++i ) + { + if ( !Q_stricmp( m_Animations[i]->GetName(), pAnimName ) ) + return i; + } + return -1; +} |