//------------------------------------------------------------------------ void CItem::OnEnterThirdPerson() { EnableHiddenSkinning(false); AttachToHand(true); AttachArms(false, false); SetViewMode(eIVM_ThirdPerson); /* if(m_stats.mounted) { ICharacterInstance* pChar = GetOwnerActor()?GetOwnerActor()->GetEntity()->GetCharacter(0):NULL; if(pChar) pChar->HideMaster(0); }*/ }
//------------------------------------------------------------------------ void CItem::OnEnterFirstPerson() { //Prevent FP model to show up when activating AI/Physics in editor if(gEnv->IsEditor() && gEnv->IsEditing()) return; EnableUpdate(true, eIUS_General); EnableHiddenSkinning(true); SetViewMode(eIVM_FirstPerson); AttachToHand(false); AttachArms(true, true); RestoreLayers(); /* if(m_stats.mounted) { ICharacterInstance* pChar = GetOwnerActor()?GetOwnerActor()->GetEntity()->GetCharacter(0):NULL; if(pChar) pChar->HideMaster(1); }*/ }
//------------------------------------------------------------------------ void CItem::CheckViewChange() { CActor *pOwner = GetOwnerActor(); if(m_stats.mounted) { bool fp = pOwner?!pOwner->IsThirdPerson():false; if(fp!=m_stats.fp) { if(fp || !(m_stats.viewmode&eIVM_FirstPerson)) OnEnterFirstPerson(); else if(!fp) AttachArms(false, false); } m_stats.fp = fp; return; } if(!pOwner) return; if(!pOwner->IsThirdPerson()) { if(!m_stats.fp || !(m_stats.viewmode&eIVM_FirstPerson)) OnEnterFirstPerson(); m_stats.fp = true; } else { if(m_stats.fp || !(m_stats.viewmode&eIVM_ThirdPerson)) OnEnterThirdPerson(); m_stats.fp = false; } }