virtual void ProcessEvent( EFlowEvent event,SActivationInfo* pActInfo ) { switch (event) { case eFE_Initialize: { CreateView(); return; } break; case eFE_Activate: { if (IsPortActive(pActInfo, EIP_Enable)) { if (m_pView == NULL) CreateView(); if (m_pView == NULL) return; if (pActInfo->pEntity == NULL) return; SViewParams params; params.justActivated = true; params.fov = DEG2RAD(GetPortFloat(pActInfo, EIP_FOV)); params.blend = GetPortBool(pActInfo, EIP_Blend); params.blendFOVOffset = DEG2RAD(GetPortFloat(pActInfo, EIP_BlendFOVOffset)); params.blendFOVSpeed = GetPortFloat(pActInfo, EIP_BlendFOVSpeed); params.blendPosOffset = GetPortVec3(pActInfo, EIP_BlendPosOffset); params.blendPosSpeed = GetPortFloat(pActInfo, EIP_BlendPosSpeed); params.blendRotSpeed = GetPortFloat(pActInfo, EIP_BlendRotSpeed); params.blendRotOffset = Quat::CreateRotationXYZ(static_cast<Ang3>(GetPortVec3(pActInfo, EIP_BlendRotOffset))); m_pView->SetCurrentParams(params); m_pView->LinkTo(pActInfo->pEntity); m_pViewSystem->SetActiveView(m_pView); } else if (IsPortActive(pActInfo, EIP_Disable)) { if (m_pLocalPlayerView) m_pViewSystem->SetActiveView(m_pLocalPlayerView); } else if (IsPortActive(pActInfo, EIP_FOV)) { SViewParams params; params.fov = DEG2RAD(GetPortFloat(pActInfo, EIP_FOV)); m_pView->SetCurrentParams(params); } } break; } }