HRESULT CAnimationInstance::InitializeInstance( LPD3DXANIMATIONCONTROLLER pAnimationController, double dCurrentTime )
{
	unsigned int uiTrackCounter;
	unsigned int uiNumTracks;

	if( pAnimationController != NULL)
	{
		m_pAnimationController = pAnimationController;
		uiNumTracks = m_pAnimationController->GetMaxNumTracks();
		
		for( uiTrackCounter = 0; uiTrackCounter < uiNumTracks; uiTrackCounter++)
		{
			m_pAnimationController->SetTrackEnable( uiTrackCounter, false);
		}

		m_dwAnimIndexIdle = GetAnimationIndex("Loiter");
		m_dwAnimIndexWalk = GetAnimationIndex("Walk");
		m_dwAnimIndexJog = GetAnimationIndex("Jog");
		
		if( m_dwAnimIndexIdle == ANIM_INDEX_FAIL || m_dwAnimIndexWalk == ANIM_INDEX_FAIL || m_dwAnimIndexJog == ANIM_INDEX_FAIL)
			return E_FAIL;
		else
		{
			m_dTimeCurrent = dCurrentTime;
			m_pAnimationController->AdvanceTime( m_dTimeCurrent, NULL);
			return S_OK;
		}
	}
	return E_FAIL;
}
Exemple #2
0
	cAnimation* cMesh::GetAnimationFromName(const tString& asName)
	{
		int lIdx = GetAnimationIndex(asName);
		if(lIdx >= 0)
		{
			return mvAnimations[lIdx];
		}
		else
		{
			return NULL;
		}
	}