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; }
cAnimation* cMesh::GetAnimationFromName(const tString& asName) { int lIdx = GetAnimationIndex(asName); if(lIdx >= 0) { return mvAnimations[lIdx]; } else { return NULL; } }