bool ZActor::ProcessMotion(float fDelta) { if (!m_pVMesh) return false; m_pVMesh->Frame(); rvector pos = m_Position; rvector dir = m_Direction; dir.z = 0; rmatrix world; MakeWorldMatrix(&world,rvector(0,0,0), dir,rvector(0,0,1)); rvector MeshPosition ; MeshPosition = pos; MakeWorldMatrix(&world,pos,dir,rvector(0,0,1)); m_pVMesh->SetWorldMatrix(world); UpdatePosition(fDelta); if(IsActiveModule(ZMID_LIGHTNINGDAMAGE)==false) { if (m_pVMesh->isOncePlayDone()) { m_Animation.Input(ZA_ANIM_DONE); } } return true; }
void ZModuleContainer::ActiveModule(int nID, bool bActive) // 특정 모듈을 (비)활성화 시킨다 { // 활성화 시킨다 if(bActive) { if(IsActiveModule(nID)) return; // 이미 활성화 되어있다 ZMODULEMAP::iterator i = m_Modules.find(nID); if(i!= m_Modules.end()) { i->second->OnActivate(); m_ActiveModules.insert(ZMODULEMAP::value_type(nID,i->second)); } }else{ // 비활성화 시킨다 ZMODULEMAP::iterator i = m_ActiveModules.find(nID); if(i==m_ActiveModules.end()) return; // 이미 비활성화 되어있다 i->second->OnDeactivate(); m_ActiveModules.erase(i); } }