summaryrefslogtreecommitdiff
path: root/movieobjects/dmeanimationlist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'movieobjects/dmeanimationlist.cpp')
-rw-r--r--movieobjects/dmeanimationlist.cpp68
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;
+}