void CreatureManager::Update(float delta)
{
	for (VCharacter::iterator it=m_VEnemyList.begin();it!=m_VEnemyList.end();it++)
	{
		if((*it)->GetDead() == true)
			m_VEnemyDeadList.push_back(*it);
		else
			(*it)->Update(delta);
	}
	for (VCharacter::iterator it=m_VFriendList.begin();it!=m_VFriendList.end();it++)
	{
		if((*it)->GetDead() == true)
			m_VFriendDeadList.push_back(*it);
		else
			(*it)->Update(delta);
	}

	//移除死亡单位
	for (int i=0;i<m_VEnemyDeadList.size();i++)
	{
		RemoveEnemy(m_VEnemyDeadList[i]);
	}
	m_VEnemyDeadList.clear();
	for (int i=0;i<m_VFriendDeadList.size();i++)
	{
		RemoveEnemy(m_VFriendDeadList[i]);
	}
	m_VFriendDeadList.clear();

	if(m_nActionCreatureNum != -1)
	{
		Character* cha = GetEnemy(m_nActionCreatureNum);
		if(cha->GetFinish())
			m_nActionCreatureNum = -1;

		//测试用
		if (cha->GetCamp() == eCamp_Enemy && cha->GetActionStage() == eActionStage_HandleStage)
		{
			m_nActionCreatureNum = -1;
			cha->SetFinish(true);
		}
	}

	SelectCreature();
	UnSelectCreature();
	ShowCreatureInfo();
}
void MergeHeaps(Heap * &H1, Heap * &H2, int &N1 ,int &N2, int Region)
{
	int NewSize = N1 + N2;
	N1 = 0;
	N2 = NewSize;
	Heap *NewHeap = CreateHeap(NewSize);
	while (H1->Count>0)
	{
		Enemy *Temp = RemoveEnemy(H1);
		Temp->Region = Region;
		InsertEnemy(NewHeap, Temp);
	}
	while (H2->Count>0)
	{
		Enemy *Temp = RemoveEnemy(H2);
		InsertEnemy(NewHeap, Temp);
	}
	delete H2->HeapE;
	delete H2;
	H2 = NewHeap;
}