summaryrefslogtreecommitdiff
path: root/public/mdlobjects
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /public/mdlobjects
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'public/mdlobjects')
-rw-r--r--public/mdlobjects/dmeblankbodypart.h28
-rw-r--r--public/mdlobjects/dmebodygroup.h43
-rw-r--r--public/mdlobjects/dmebodygrouplist.h43
-rw-r--r--public/mdlobjects/dmebodypart.h45
-rw-r--r--public/mdlobjects/dmeboneflexdriver.h74
-rw-r--r--public/mdlobjects/dmebonemask.h44
-rw-r--r--public/mdlobjects/dmebonemasklist.h43
-rw-r--r--public/mdlobjects/dmeboneweight.h34
-rw-r--r--public/mdlobjects/dmecollisionmodel.h54
-rw-r--r--public/mdlobjects/dmehitbox.h46
-rw-r--r--public/mdlobjects/dmehitboxset.h33
-rw-r--r--public/mdlobjects/dmelod.h45
-rw-r--r--public/mdlobjects/dmelodlist.h47
-rw-r--r--public/mdlobjects/dmemdllist.h38
-rw-r--r--public/mdlobjects/dmesequence.h41
-rw-r--r--public/mdlobjects/dmesequencelist.h42
-rw-r--r--public/mdlobjects/mdlobjects.cpp31
-rw-r--r--public/mdlobjects/mdlobjects.h30
18 files changed, 761 insertions, 0 deletions
diff --git a/public/mdlobjects/dmeblankbodypart.h b/public/mdlobjects/dmeblankbodypart.h
new file mode 100644
index 0000000..fb99152
--- /dev/null
+++ b/public/mdlobjects/dmeblankbodypart.h
@@ -0,0 +1,28 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// A blank body part
+//
+//===========================================================================//
+
+#ifndef DMEBLANKBODYPART_H
+#define DMEBLANKBODYPART_H
+
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "mdlobjects/dmebodypart.h"
+
+
+//-----------------------------------------------------------------------------
+// A blank body part
+//-----------------------------------------------------------------------------
+class CDmeBlankBodyPart : public CDmeBodyPart
+{
+ DEFINE_ELEMENT( CDmeBlankBodyPart, CDmeBodyPart );
+};
+
+
+#endif // DMEBLANKBODYPART_H
diff --git a/public/mdlobjects/dmebodygroup.h b/public/mdlobjects/dmebodygroup.h
new file mode 100644
index 0000000..c6cc6d7
--- /dev/null
+++ b/public/mdlobjects/dmebodygroup.h
@@ -0,0 +1,43 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Dme version of a body groups. Each body group contains a list
+// of LOD lists which are the various options to switch in for that part
+// of the body
+//
+//===========================================================================//
+
+#ifndef DMEBODYGROUP_H
+#define DMEBODYGROUP_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "datamodel/dmelement.h"
+#include "datamodel/dmattributevar.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward Declarations
+//-----------------------------------------------------------------------------
+class CDmeBodyPart;
+class CDmeLODList;
+
+
+//-----------------------------------------------------------------------------
+// A class representing a body group. Each element of the body parts array
+// is an option that can be switched into that part of the body.
+//-----------------------------------------------------------------------------
+class CDmeBodyGroup : public CDmElement
+{
+ DEFINE_ELEMENT( CDmeBodyGroup, CDmElement );
+
+public:
+ // Finds a body part by name
+ CDmeLODList *FindBodyPart( const char *pName );
+
+ CDmaElementArray< CDmeBodyPart > m_BodyParts;
+};
+
+
+#endif // DMEBODYGROUP_H
diff --git a/public/mdlobjects/dmebodygrouplist.h b/public/mdlobjects/dmebodygrouplist.h
new file mode 100644
index 0000000..6f35f1d
--- /dev/null
+++ b/public/mdlobjects/dmebodygrouplist.h
@@ -0,0 +1,43 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Dme version of a list of body groups. Each body group contains a list
+// of LOD lists which are the various options to switch in for that part of the body
+//
+//===========================================================================//
+
+#ifndef DMEBODYGROUPLIST_H
+#define DMEBODYGROUPLIST_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "datamodel/dmelement.h"
+#include "datamodel/dmattributevar.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward Declarations
+//-----------------------------------------------------------------------------
+class CDmeBodyGroup;
+class CDmeLODList;
+
+
+//-----------------------------------------------------------------------------
+// A class representing a list of body groups
+//-----------------------------------------------------------------------------
+class CDmeBodyGroupList : public CDmElement
+{
+ DEFINE_ELEMENT( CDmeBodyGroupList, CDmElement );
+
+public:
+ CDmeBodyGroup *FindBodyGroup( const char *pName );
+
+ // Gets the 'main' body part (used for compilation)
+ CDmeLODList *GetMainBodyPart();
+
+ CDmaElementArray< CDmeBodyGroup > m_BodyGroups;
+};
+
+
+#endif // DMEBODYGROUPLIST_H
diff --git a/public/mdlobjects/dmebodypart.h b/public/mdlobjects/dmebodypart.h
new file mode 100644
index 0000000..453bb46
--- /dev/null
+++ b/public/mdlobjects/dmebodypart.h
@@ -0,0 +1,45 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Body part base class
+//
+// Body parts can be either:
+//
+// * A list of LODs (DmeLODList)
+// * empty (DmeBlankBodyPart)
+//
+//===========================================================================//
+
+#ifndef DMEBODYPART_H
+#define DMEBODYPART_H
+
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "datamodel/dmelement.h"
+#include "datamodel/dmattributevar.h"
+#include "mdlobjects/dmelod.h"
+
+
+//-----------------------------------------------------------------------------
+// A generic body part
+//-----------------------------------------------------------------------------
+class CDmeBodyPart : public CDmElement
+{
+ DEFINE_ELEMENT( CDmeBodyPart, CDmElement );
+
+public:
+ // Returns the number of LODs in this body part, can be 0
+ virtual int LODCount() const { return 0; }
+
+ // Returns the root LOD. This is the one with the switch metric 0
+ virtual CDmeLOD *GetRootLOD() { return NULL; }
+
+ // Returns the shadow LOD
+ virtual CDmeLOD *GetShadowLOD() { return NULL; }
+};
+
+
+#endif // DMEBODYPART_H
diff --git a/public/mdlobjects/dmeboneflexdriver.h b/public/mdlobjects/dmeboneflexdriver.h
new file mode 100644
index 0000000..2f0d1c8
--- /dev/null
+++ b/public/mdlobjects/dmeboneflexdriver.h
@@ -0,0 +1,74 @@
+//===== Copyright (c) 1996-2009, Valve Corporation, All rights reserved. ====
+//
+// Dme version of QC $boneflexdriver
+//
+//===========================================================================
+
+
+#ifndef BONEFLEXDRIVER_H
+#define BONEFLEXDRIVER_H
+
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+// Valve includes
+#include "mdlobjects/dmemdllist.h"
+
+
+//-----------------------------------------------------------------------------
+// The control for a DmeBoneFlexDriver
+//-----------------------------------------------------------------------------
+class CDmeBoneFlexDriverControl : public CDmElement
+{
+ DEFINE_ELEMENT( CDmeBoneFlexDriverControl, CDmElement );
+
+public:
+ // Sets the bone component to be in the range [STUDIO_BONE_FLEX_TX, STUDIO_BONE_FLEX_RZ]
+ int SetBoneComponent( int nBoneComponent );
+
+ CDmaString m_sFlexControllerName; // Name of flex controller to drive
+ CDmaVar< int > m_nBoneComponent; // Component of bone to drive flex controller, StudioBoneFlexComponent_t
+ CDmaVar< float > m_flMin; // Min value of bone component mapped to 0 on flex controller
+ CDmaVar< float > m_flMax; // Max value of bone component mapped to 1 on flex controller (inches if T, degress if R)
+
+};
+
+
+//-----------------------------------------------------------------------------
+// $QC boneflexdriver
+//-----------------------------------------------------------------------------
+class CDmeBoneFlexDriver : public CDmeMdlList
+{
+ DEFINE_ELEMENT( CDmeBoneFlexDriver, CDmeMdlList );
+
+public:
+ virtual CDmAttribute *GetListAttr() { return m_eControlList.GetAttribute(); }
+
+ CDmeBoneFlexDriverControl *FindOrCreateControl( const char *pszControlName );
+
+ CDmaString m_sBoneName; // Name of bone to drive flex controller
+ CDmaElementArray< CDmeBoneFlexDriverControl > m_eControlList; // List of flex controllers to drive
+
+};
+
+
+//-----------------------------------------------------------------------------
+// A list of DmeBoneFlexDriver elements
+//-----------------------------------------------------------------------------
+class CDmeBoneFlexDriverList : public CDmeMdlList
+{
+ DEFINE_ELEMENT( CDmeBoneFlexDriverList, CDmeMdlList );
+
+public:
+ virtual CDmAttribute *GetListAttr() { return m_eBoneFlexDriverList.GetAttribute(); }
+
+ CDmeBoneFlexDriver *FindOrCreateBoneFlexDriver( const char *pszBoneName );
+
+ CDmaElementArray< CDmeBoneFlexDriver > m_eBoneFlexDriverList;
+};
+
+
+#endif // BONEFLEXDRIVER_H
diff --git a/public/mdlobjects/dmebonemask.h b/public/mdlobjects/dmebonemask.h
new file mode 100644
index 0000000..172e972
--- /dev/null
+++ b/public/mdlobjects/dmebonemask.h
@@ -0,0 +1,44 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// A list of DmeBoneWeight elements, replacing QC's $WeightList
+//
+//===========================================================================//
+
+
+#ifndef DMEBONEMASK_H
+#define DMEBONEMASK_H
+
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "datamodel/dmattributevar.h"
+#include "mdlobjects/dmemdllist.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward Declarations
+//-----------------------------------------------------------------------------
+class CDmeBoneWeight;
+
+
+//-----------------------------------------------------------------------------
+// A class representing a list of bone weights
+//-----------------------------------------------------------------------------
+class CDmeBoneMask : public CDmeMdlList
+{
+ DEFINE_ELEMENT( CDmeBoneMask, CDmeMdlList );
+
+public:
+ virtual CDmAttribute *GetListAttr() { return m_BoneWeights.GetAttribute(); }
+
+private:
+ CDmaElementArray< CDmeBoneWeight > m_BoneWeights;
+ CDmaVar< bool > m_bDefault;
+
+};
+
+
+#endif // DMEBONEMASK_H
diff --git a/public/mdlobjects/dmebonemasklist.h b/public/mdlobjects/dmebonemasklist.h
new file mode 100644
index 0000000..16916c3
--- /dev/null
+++ b/public/mdlobjects/dmebonemasklist.h
@@ -0,0 +1,43 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// A list of DmeBoneMask elements, representing multiple QC $WeightList's
+//
+//===========================================================================//
+
+
+#ifndef DMEBONEMASKLIST_H
+#define DMEBONEMASKLIST_H
+
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "datamodel/dmattributevar.h"
+#include "mdlobjects/dmemdllist.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward Declarations
+//-----------------------------------------------------------------------------
+class CDmeBoneMask;
+
+
+//-----------------------------------------------------------------------------
+// A class representing a list of bone masks
+//-----------------------------------------------------------------------------
+class CDmeBoneMaskList : public CDmeMdlList
+{
+ DEFINE_ELEMENT( CDmeBoneMaskList, CDmeMdlList );
+
+public:
+ virtual CDmAttribute *GetListAttr() { return m_BoneMasks.GetAttribute(); }
+
+private:
+ CDmaElementArray< CDmeBoneMask > m_BoneMasks;
+
+};
+
+
+#endif // DMEBONEMASKLIST_H
diff --git a/public/mdlobjects/dmeboneweight.h b/public/mdlobjects/dmeboneweight.h
new file mode 100644
index 0000000..195d992
--- /dev/null
+++ b/public/mdlobjects/dmeboneweight.h
@@ -0,0 +1,34 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Dme version of a bone weight as in QC $WeightList
+//
+//===========================================================================//
+
+
+#ifndef DMEBONEWEIGHT_H
+#define DMEBONEWEIGHT_H
+
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "datamodel/dmattributevar.h"
+#include "datamodel/dmelement.h"
+
+
+//-----------------------------------------------------------------------------
+// A class representing a bone weight
+//-----------------------------------------------------------------------------
+class CDmeBoneWeight : public CDmElement
+{
+ DEFINE_ELEMENT( CDmeBoneWeight, CDmElement );
+
+public:
+ CDmaVar< float > m_flWeight;
+
+};
+
+
+#endif // DMEBONEWEIGHT_H
diff --git a/public/mdlobjects/dmecollisionmodel.h b/public/mdlobjects/dmecollisionmodel.h
new file mode 100644
index 0000000..ba5d8c2
--- /dev/null
+++ b/public/mdlobjects/dmecollisionmodel.h
@@ -0,0 +1,54 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Dme version of a collision model
+//
+//===========================================================================//
+
+#ifndef DMECOLLISIONMODEL_H
+#define DMECOLLISIONMODEL_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "datamodel/dmelement.h"
+#include "datamodel/dmattributevar.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward Declarations
+//-----------------------------------------------------------------------------
+class CDmeModel;
+class CDmeDag;
+
+
+//-----------------------------------------------------------------------------
+// A class representing an attachment point
+//-----------------------------------------------------------------------------
+class CDmeCollisionModel : public CDmElement
+{
+ DEFINE_ELEMENT( CDmeCollisionModel, CDmElement );
+
+public:
+ CDmaVar< float > m_flMass;
+ CDmaVar< bool > m_bAutomaticMassComputation;
+ CDmaVar< float > m_flInertia;
+ CDmaVar< float > m_flDamping;
+ CDmaVar< float > m_flRotationalDamping;
+ CDmaVar< float > m_flDrag;
+ CDmaVar< float > m_flRollingDrag;
+ CDmaVar< int > m_nMaxConvexPieces;
+ CDmaVar< bool > m_bRemove2D;
+ CDmaVar< bool > m_bConcavePerJoint;
+ CDmaVar< float > m_flWeldPositionTolerance;
+ CDmaVar< float > m_flWeldNormalTolerance;
+ CDmaVar< bool > m_bConcave;
+ CDmaVar< bool > m_bForceMassCenter;
+ CDmaVar< Vector > m_vecMassCenter;
+ CDmaVar< bool > m_bNoSelfCollisions;
+ CDmaVar< bool > m_bAssumeWorldSpace;
+ CDmaString m_SurfaceProperty;
+};
+
+
+#endif // DMECOLLISIONMODEL_H
diff --git a/public/mdlobjects/dmehitbox.h b/public/mdlobjects/dmehitbox.h
new file mode 100644
index 0000000..a9a9ead
--- /dev/null
+++ b/public/mdlobjects/dmehitbox.h
@@ -0,0 +1,46 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Dme version of a hitbox
+//
+//===========================================================================//
+
+#ifndef DMEHITBOX_H
+#define DMEHITBOX_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "movieobjects/dmeshape.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward Declarations
+//-----------------------------------------------------------------------------
+class CDmeDrawSettings;
+struct matrix3x4_t;
+
+
+//-----------------------------------------------------------------------------
+// A class representing an attachment point
+//-----------------------------------------------------------------------------
+class CDmeHitbox : public CDmeShape
+{
+ DEFINE_ELEMENT( CDmeHitbox, CDmeShape );
+
+public:
+ virtual void Draw( const matrix3x4_t &shapeToWorld, CDmeDrawSettings *pDrawSettings = NULL );
+
+ CDmaString m_SurfaceProperty;
+ CDmaString m_Group;
+ CDmaString m_Bone;
+ CDmaVar< Vector > m_vecMins;
+ CDmaVar< Vector > m_vecMaxs;
+ CDmaColor m_RenderColor; // used for visualization
+
+private:
+
+};
+
+
+#endif // DMEHITBOX_H
diff --git a/public/mdlobjects/dmehitboxset.h b/public/mdlobjects/dmehitboxset.h
new file mode 100644
index 0000000..07e1bba
--- /dev/null
+++ b/public/mdlobjects/dmehitboxset.h
@@ -0,0 +1,33 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Dme version of a hitbox set
+//
+//===========================================================================//
+
+#ifndef DMEHITBOXSET_H
+#define DMEHITBOXSET_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "datamodel/dmelement.h"
+#include "datamodel/dmattributevar.h"
+#include "mdlobjects/dmehitbox.h"
+
+
+//-----------------------------------------------------------------------------
+// A class representing an attachment point
+//-----------------------------------------------------------------------------
+class CDmeHitboxSet : public CDmElement
+{
+ DEFINE_ELEMENT( CDmeHitboxSet, CDmElement );
+
+public:
+ CDmaElementArray< CDmeHitbox > m_Hitboxes;
+
+private:
+};
+
+
+#endif // DMEHITBOXSET_H
diff --git a/public/mdlobjects/dmelod.h b/public/mdlobjects/dmelod.h
new file mode 100644
index 0000000..67db706
--- /dev/null
+++ b/public/mdlobjects/dmelod.h
@@ -0,0 +1,45 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Dme version of a lod
+//
+//===========================================================================//
+
+#ifndef DMELOD_H
+#define DMELOD_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "datamodel/dmelement.h"
+#include "datamodel/dmattributevar.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward Declarations
+//-----------------------------------------------------------------------------
+class CDmeModel;
+class CDmeDag;
+class CDmeCombinationOperator;
+
+
+//-----------------------------------------------------------------------------
+// A class representing an attachment point
+//-----------------------------------------------------------------------------
+class CDmeLOD : public CDmElement
+{
+ DEFINE_ELEMENT( CDmeLOD, CDmElement );
+
+public:
+ // NOTE: It may be possible to eliminate the skeleton here
+ // and assume the LOD always uses the root skeleton.
+ CDmaElement< CDmeModel > m_Model;
+ CDmaElement< CDmeDag > m_Skeleton;
+ CDmaElement< CDmeCombinationOperator > m_CombinationOperator;
+ CDmaVar< float > m_flSwitchMetric;
+ CDmaVar< bool > m_bNoFlex;
+ CDmaVar< bool > m_bIsShadowLOD;
+};
+
+
+#endif // DMELOD_H
diff --git a/public/mdlobjects/dmelodlist.h b/public/mdlobjects/dmelodlist.h
new file mode 100644
index 0000000..b5f20d8
--- /dev/null
+++ b/public/mdlobjects/dmelodlist.h
@@ -0,0 +1,47 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Dme version of a list of lods
+//
+//===========================================================================//
+
+#ifndef DMELODLIST_H
+#define DMELODLIST_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "mdlobjects/dmebodypart.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward Declarations
+//-----------------------------------------------------------------------------
+class CDmeLOD;
+
+
+//-----------------------------------------------------------------------------
+// A class representing a list of LODs
+//-----------------------------------------------------------------------------
+class CDmeLODList : public CDmeBodyPart
+{
+ DEFINE_ELEMENT( CDmeLODList, CDmeBodyPart );
+
+public:
+ // Returns the number of LODs in this body part, can be 0
+ virtual int LODCount() const;
+
+ // Returns the root LOD. This is the one with the switch metric 0
+ virtual CDmeLOD *GetRootLOD();
+
+ // Returns the shadow LOD
+ virtual CDmeLOD *GetShadowLOD();
+
+ // NOTE: It may be possible to eliminate the skeleton here
+ // and assume the LOD always uses the root skeleton.
+ CDmaElementArray< CDmeLOD > m_LODs;
+
+};
+
+
+#endif // DMELODLIST_H
diff --git a/public/mdlobjects/dmemdllist.h b/public/mdlobjects/dmemdllist.h
new file mode 100644
index 0000000..aa2bf0b
--- /dev/null
+++ b/public/mdlobjects/dmemdllist.h
@@ -0,0 +1,38 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// A Dme element intended to be a base class for a common pattern of
+// MDLOBJECTS, that is an element which contains simply one attribute
+// of type AT_ELEMENTARRAY
+//
+//===========================================================================//
+
+
+#ifndef DMEMDLLIST_H
+#define DMEMDLLIST_H
+
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "datamodel/dmattributevar.h"
+#include "datamodel/dmelement.h"
+
+
+//-----------------------------------------------------------------------------
+// A base class intended to be used for the common pattern in MDLOBJECTS
+// of an element which is nothing but a container for an array of element
+// attributes
+//-----------------------------------------------------------------------------
+class CDmeMdlList : public CDmElement
+{
+ DEFINE_ELEMENT( CDmeMdlList, CDmElement );
+
+public:
+ virtual CDmAttribute *GetListAttr() { return NULL; }
+
+};
+
+
+#endif // DMEMDLLIST_H
diff --git a/public/mdlobjects/dmesequence.h b/public/mdlobjects/dmesequence.h
new file mode 100644
index 0000000..42fea78
--- /dev/null
+++ b/public/mdlobjects/dmesequence.h
@@ -0,0 +1,41 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Dme representation of QC: $sequence
+//
+//===========================================================================//
+
+#ifndef DMESEQUENCE_H
+#define DMESEQUENCE_H
+
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "datamodel/dmattributevar.h"
+#include "datamodel/dmelement.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------------
+class CDmeDag;
+class CDmeAnimationList;
+
+
+//-----------------------------------------------------------------------------
+// Animation data
+//-----------------------------------------------------------------------------
+class CDmeSequence : public CDmElement
+{
+ DEFINE_ELEMENT( CDmeSequence, CDmElement );
+
+public:
+ CDmaElement< CDmeDag > m_Skeleton;
+ CDmaElement< CDmeAnimationList > m_AnimationList;
+
+};
+
+
+#endif // DMESEQUENCE_H
diff --git a/public/mdlobjects/dmesequencelist.h b/public/mdlobjects/dmesequencelist.h
new file mode 100644
index 0000000..9b56935
--- /dev/null
+++ b/public/mdlobjects/dmesequencelist.h
@@ -0,0 +1,42 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// A list of DmeSequences's
+//
+//===========================================================================//
+
+
+#ifndef DMESEQUENCELIST_H
+#define DMESEQUENCELIST_H
+
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "datamodel/dmattributevar.h"
+#include "mdlobjects/dmemdllist.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward Declarations
+//-----------------------------------------------------------------------------
+class CDmeSequence;
+
+
+//-----------------------------------------------------------------------------
+// A class representing a list of sequences
+//-----------------------------------------------------------------------------
+class CDmeSequenceList : public CDmeMdlList
+{
+ DEFINE_ELEMENT( CDmeSequenceList, CDmeMdlList );
+
+public:
+ virtual CDmAttribute *GetListAttr() { return m_Sequences.GetAttribute(); }
+
+ CDmaElementArray< CDmeSequence > m_Sequences;
+
+};
+
+
+#endif // DMESEQUENCELIST_H
diff --git a/public/mdlobjects/mdlobjects.cpp b/public/mdlobjects/mdlobjects.cpp
new file mode 100644
index 0000000..7a1b26a
--- /dev/null
+++ b/public/mdlobjects/mdlobjects.cpp
@@ -0,0 +1,31 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: See notes below
+//
+//=============================================================================
+
+#include "mdlobjects/mdlobjects.h"
+#include "movieobjects/movieobjects.h"
+
+// YOU MUST INCLUDE THIS FILE INTO ANY PROJECT WHICH USES THE mdlobjects.lib FILE
+// This hack causes the class factories for the element types to be imported into the compiled code...
+
+// MDL types
+USING_ELEMENT_FACTORY( DmeHitbox );
+USING_ELEMENT_FACTORY( DmeHitboxSet );
+USING_ELEMENT_FACTORY( DmeBodyPart );
+USING_ELEMENT_FACTORY( DmeBlankBodyPart );
+USING_ELEMENT_FACTORY( DmeLOD );
+USING_ELEMENT_FACTORY( DmeLODList );
+USING_ELEMENT_FACTORY( DmeCollisionModel );
+USING_ELEMENT_FACTORY( DmeBodyGroup );
+USING_ELEMENT_FACTORY( DmeBodyGroupList );
+USING_ELEMENT_FACTORY( DmeMdlList );
+USING_ELEMENT_FACTORY( DmeBoneWeight );
+USING_ELEMENT_FACTORY( DmeBoneMask );
+USING_ELEMENT_FACTORY( DmeBoneMaskList );
+USING_ELEMENT_FACTORY( DmeSequence );
+USING_ELEMENT_FACTORY( DmeSequenceList );
+USING_ELEMENT_FACTORY( DmeBoneFlexDriverControl );
+USING_ELEMENT_FACTORY( DmeBoneFlexDriver );
+USING_ELEMENT_FACTORY( DmeBoneFlexDriverList );
diff --git a/public/mdlobjects/mdlobjects.h b/public/mdlobjects/mdlobjects.h
new file mode 100644
index 0000000..35f1909
--- /dev/null
+++ b/public/mdlobjects/mdlobjects.h
@@ -0,0 +1,30 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+
+#ifndef MDLOBJECTS_H
+#define MDLOBJECTS_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "mdlobjects/dmehitbox.h"
+#include "mdlobjects/dmehitboxset.h"
+#include "mdlobjects/dmebodypart.h"
+#include "mdlobjects/dmeblankbodypart.h"
+#include "mdlobjects/dmelod.h"
+#include "mdlobjects/dmelodlist.h"
+#include "mdlobjects/dmecollisionmodel.h"
+#include "mdlobjects/dmebodygroup.h"
+#include "mdlobjects/dmebodygrouplist.h"
+#include "mdlobjects/dmemdllist.h"
+#include "mdlobjects/dmeboneweight.h"
+#include "mdlobjects/dmebonemask.h"
+#include "mdlobjects/dmebonemasklist.h"
+#include "mdlobjects/dmesequence.h"
+#include "mdlobjects/dmesequencelist.h"
+#include "mdlobjects/dmeboneflexdriver.h"
+
+#endif // MDLOBJECTS_H