1
This commit is contained in:
163
mdlobjects/dmeboneflexdriver.cpp
Normal file
163
mdlobjects/dmeboneflexdriver.cpp
Normal file
@ -0,0 +1,163 @@
|
||||
//===== Copyright (c) 1996-2009, Valve Corporation, All rights reserved. ====
|
||||
//
|
||||
// Dme version of QC $BoneFlexDriver
|
||||
//
|
||||
//===========================================================================//
|
||||
|
||||
|
||||
// Valve includes
|
||||
#include "datamodel/dmelementfactoryhelper.h"
|
||||
#include "mdlobjects/dmeBoneFlexDriver.h"
|
||||
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
|
||||
//===========================================================================//
|
||||
// CDmeBoneFlexDriverControl
|
||||
//===========================================================================//
|
||||
//-----------------------------------------------------------------------------
|
||||
// Expose this class to the scene database
|
||||
//-----------------------------------------------------------------------------
|
||||
IMPLEMENT_ELEMENT_FACTORY( DmeBoneFlexDriverControl, CDmeBoneFlexDriverControl );
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
void CDmeBoneFlexDriverControl::OnConstruction()
|
||||
{
|
||||
m_sFlexControllerName.Init( this, "flexControllerName" );
|
||||
m_nBoneComponent.Init( this, "boneComponent" );
|
||||
m_flMin.InitAndSet( this, "min", 0.0f );
|
||||
m_flMax.InitAndSet( this, "max", 1.0f );
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
void CDmeBoneFlexDriverControl::OnDestruction()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
int CDmeBoneFlexDriverControl::SetBoneComponent( int nBoneComponent )
|
||||
{
|
||||
// Range [STUDIO_BONE_FLEX_TX, STUDIO_BONE_FLEX_RZ]
|
||||
m_nBoneComponent = clamp( nBoneComponent, 0, 5 );
|
||||
return m_nBoneComponent.Get();
|
||||
}
|
||||
|
||||
|
||||
//===========================================================================//
|
||||
// CDmeBoneFlexDriver
|
||||
//===========================================================================//
|
||||
//-----------------------------------------------------------------------------
|
||||
// Expose this class to the scene database
|
||||
//-----------------------------------------------------------------------------
|
||||
IMPLEMENT_ELEMENT_FACTORY( DmeBoneFlexDriver, CDmeBoneFlexDriver );
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
void CDmeBoneFlexDriver::OnConstruction()
|
||||
{
|
||||
m_sBoneName.Init( this, "boneName" );
|
||||
m_eControlList.Init( this, "controlList" );
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
void CDmeBoneFlexDriver::OnDestruction()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
CDmeBoneFlexDriverControl *CDmeBoneFlexDriver::FindOrCreateControl( const char *pszControlName )
|
||||
{
|
||||
CDmeBoneFlexDriverControl *pDmeBoneFlexDriverControl = NULL;
|
||||
|
||||
for ( int i = 0; i < m_eControlList.Count(); ++i )
|
||||
{
|
||||
pDmeBoneFlexDriverControl = m_eControlList[i];
|
||||
if ( !pDmeBoneFlexDriverControl )
|
||||
continue;
|
||||
|
||||
if ( !Q_stricmp( pszControlName, pDmeBoneFlexDriverControl->m_sFlexControllerName.Get() ) )
|
||||
return pDmeBoneFlexDriverControl;
|
||||
}
|
||||
|
||||
pDmeBoneFlexDriverControl = CreateElement< CDmeBoneFlexDriverControl >( "", GetFileId() ); // Nameless
|
||||
if ( !pDmeBoneFlexDriverControl )
|
||||
return NULL;
|
||||
|
||||
pDmeBoneFlexDriverControl->m_sFlexControllerName = pszControlName;
|
||||
m_eControlList.AddToTail( pDmeBoneFlexDriverControl );
|
||||
|
||||
return pDmeBoneFlexDriverControl;
|
||||
}
|
||||
|
||||
|
||||
//===========================================================================//
|
||||
// CDmeBoneFlexDriverList
|
||||
//===========================================================================//
|
||||
//-----------------------------------------------------------------------------
|
||||
// Expose this class to the scene database
|
||||
//-----------------------------------------------------------------------------
|
||||
IMPLEMENT_ELEMENT_FACTORY( DmeBoneFlexDriverList, CDmeBoneFlexDriverList );
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
void CDmeBoneFlexDriverList::OnConstruction()
|
||||
{
|
||||
m_eBoneFlexDriverList.Init( this, "boneFlexDriverList" );
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
void CDmeBoneFlexDriverList::OnDestruction()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
CDmeBoneFlexDriver *CDmeBoneFlexDriverList::FindOrCreateBoneFlexDriver( const char *pszBoneName )
|
||||
{
|
||||
CDmeBoneFlexDriver *pDmeBoneFlexDriver = NULL;
|
||||
|
||||
for ( int i = 0; i < m_eBoneFlexDriverList.Count(); ++i )
|
||||
{
|
||||
pDmeBoneFlexDriver = m_eBoneFlexDriverList[i];
|
||||
if ( !pDmeBoneFlexDriver )
|
||||
continue;
|
||||
|
||||
if ( !Q_stricmp( pszBoneName, pDmeBoneFlexDriver->m_sBoneName.Get() ) )
|
||||
return pDmeBoneFlexDriver;
|
||||
}
|
||||
|
||||
pDmeBoneFlexDriver = CreateElement< CDmeBoneFlexDriver >( "", GetFileId() ); // Nameless
|
||||
if ( !pDmeBoneFlexDriver )
|
||||
return NULL;
|
||||
|
||||
pDmeBoneFlexDriver->m_sBoneName = pszBoneName;
|
||||
m_eBoneFlexDriverList.AddToTail( pDmeBoneFlexDriver );
|
||||
|
||||
return pDmeBoneFlexDriver;
|
||||
}
|
Reference in New Issue
Block a user