Sources/CryGame C++/Solution1/CryGame/XArea.cpp
//////////////////////////////////////////////////////////////////////////
//	checks for areas in the same group, if entered area is lower priority (areaID) - return false 
//	(don't do enreArea for it)

checks for areas in the same group, if entered area is lower priority (areaID) - return false
(don't do enreArea for it)
checks for areas in the same group if entered area is lower priority ( areaID ) - return false ( don ' t do enreArea for it )
bool	CXAreaMgr::ProceedExclusiveLeave( CXAreaUser& user, unsigned int curIdx )
{
	int	maxArea=FindHighestHostedArea( user.m_HostedAreasIdx, curIdx );
	if( maxArea<0 )
	{
		m_vpAreas[curIdx]->LeaveArea( user );
		return true;
	}
	int maxID = m_vpAreas[maxArea]->GetID();
	if( m_vpAreas[curIdx]->GetID()<maxID )
		return false;
	m_vpAreas[curIdx]->LeaveArea( user );
	if(!m_vpAreas[maxArea]->m_bIsActive)
		m_vpAreas[maxArea]->EnterArea( user );			
	return true;
}
bool CXAreaMgr :: ProceedExclusiveLeave ( CXAreaUser & user , unsigned int curIdx ) { int maxArea = FindHighestHostedArea ( user . m_HostedAreasIdx , curIdx ) ; if ( maxArea < 0 ) { m_vpAreas [ curIdx ] -> LeaveArea ( user ) ; return true ; } int maxID = m_vpAreas [ maxArea ] -> GetID ( ) ; if ( m_vpAreas [ curIdx ] -> GetID ( ) < maxID ) return false ; m_vpAreas [ curIdx ] -> LeaveArea ( user ) ; if ( ! m_vpAreas [ maxArea ] -> m_bIsActive ) m_vpAreas [ maxArea ] -> EnterArea ( user ) ; return true ; }
checks for areas in the same group, if entered area is lower priority (areaID) - return false
(don't do enreArea for it)
checks for areas in the same group if entered area is lower priority ( areaID ) - return false ( don ' t do enreArea for it )
// new area will owerride this one
