Пример #1
0
void StarContainer::SearchDelStar(int index,int type)
{
	int x , y , dx , dy , tIndex;
	x = getArrayX( index );
	y = getArrayY( index );

	// left
	dx = x - 1;
	tIndex = getArrayIndex( dx , y);
	if( IsInMap( dx , y ) && IsMatchType( m_pStars[dx][y]->GetType() , type ) && IsNotInList(tIndex) )
		openList->push_back( tIndex );

	// right
	dx = x + 1;
	tIndex = getArrayIndex( dx , y);
	if( IsInMap( dx , y ) && IsMatchType(m_pStars[dx][y]->GetType() , type )  && IsNotInList(tIndex) )
		openList->push_back( tIndex );

	// top
	dy = y - 1;
	tIndex = getArrayIndex( x , dy); 
	if( IsInMap( x , dy ) && IsMatchType(m_pStars[x][dy]->GetType() , type )  && IsNotInList(tIndex) )
		openList->push_back( tIndex );

	// buttom
	dy = y + 1;
	tIndex = getArrayIndex( x , dy); 
	if( IsInMap( x , dy )  && IsMatchType(m_pStars[x][dy]->GetType() , type)  && IsNotInList(tIndex) )
		openList->push_back( tIndex );

	closeList->push_back( index );

	if( openList->size() == 0 )  return;

	index = openList->back();
	openList->pop_back();

	SearchDelStar(index,type);
}
Пример #2
0
bool CChangeGroup::ShouldAcceptChangeIntoGroup(int iType)
{
	switch (m_iChangeType)
	{
	case DV_STYLE_UNITIALIZED:
	case DV_STYLE_MATCH:
		return true;

	case DV_STYLE_CHANGED_TEXT:
		return IsInsertOrDelete(iType) && !m_bSeenMatchAfterChange;
	case DV_STYLE_INSERTION:
	case DV_STYLE_DELETION:
		return IsInsertOrDelete(iType);

	case DV_STYLE_INSERTEDCOMMENT:
	case DV_STYLE_DELETEDCOMMENT:
	case DV_STYLE_COMMENT:
		return IsCommentType(iType);
	case DV_STYLE_CHANGED_COMMENT:
		if (IsCommentType(iType))
		{
			if (IsMatchType(iType))
				return true;

			return !m_bSeenMatchAfterChange;
		}
		return false;


	case DV_STYLE_FORMAT_CHANGE:
	case DV_STYLE_MOVESOURCE:
	case DV_STYLE_MOVEDESTINATION:
		return (iType==m_iChangeType);
	case DV_STYLE_STYLECHANGE_TEXT:
		 if (iType == DV_STYLE_STYLECHANGE_TEXT || iType == DV_STYLE_MATCH)
		 {
			 return true;
		 }
		 return false;

	case DV_STYLE_STYLECHANGE_LABEL:
		return (iType == DV_STYLE_STYLECHANGE_TEXT);
	}
	
	return false;
}
Пример #3
0
void CChangeGroup::UpdateType(int iType)
{
	switch (m_iChangeType)
	{
	case DV_STYLE_UNITIALIZED:
		m_iChangeType = iType;
		break;

	case DV_STYLE_COMMENT:
	case DV_STYLE_MATCH:
		m_iChangeType = iType;

	case DV_STYLE_DELETION:
	case DV_STYLE_INSERTION:
	case DV_STYLE_MOVESOURCE:
	case DV_STYLE_MOVEDESTINATION:
		{
			m_iOrigChangeType = m_iChangeType;			
			if (iType!=m_iChangeType)
				m_iChangeType=DV_STYLE_CHANGED_TEXT;
			break;
		}

	case DV_STYLE_INSERTEDCOMMENT:
	case DV_STYLE_DELETEDCOMMENT:
		{
			m_iOrigChangeType = m_iChangeType;			
			if ((iType!=m_iChangeType)&&IsCommentType(iType))
				m_iChangeType=DV_STYLE_CHANGED_COMMENT;
			break;
		}

	case DV_STYLE_CHANGED_COMMENT:
	case DV_STYLE_CHANGED_TEXT:
		if (IsMatchType(iType))
			m_bSeenMatchAfterChange = true;
		break;

	default:
		break;
	}
}