void UCrowdManager::UnregisterAgent(const ICrowdAgentInterface* Agent)
{
#if WITH_RECAST
	FCrowdAgentData* AgentData = ActiveAgents.Find(Agent);
	if (DetourCrowd && AgentData)
	{
		RemoveAgent(Agent, AgentData);
	}
#endif

	ActiveAgents.Remove(Agent);
}
Esempio n. 2
0
void CArena::MoveAgent(CAgent* pc_agent, TVector2d* pt_new_position)
{
    unsigned int unOldArrayPosition = XYToArrayPosition(pc_agent->GetPosition());
    unsigned int unNewArrayPosition = XYToArrayPosition(pt_new_position); 

    pc_agent->SetPosition(pt_new_position);

    if (unOldArrayPosition != unNewArrayPosition)
    {
        RemoveAgent(pc_agent, unOldArrayPosition);
        AddAgent(pc_agent, unNewArrayPosition);
    }
}
void CSimulator::SimulationStep(unsigned int un_step_number)
{
    m_unCurrentSimulationStep = un_step_number;
    CSimObject::SimulationStep(un_step_number);
        
    m_tDeleteList.sort();
    m_tDeleteList.unique();
    
    for (TAgentListIterator i = m_tDeleteList.begin(); i != m_tDeleteList.end(); i++)
    {
        RemoveAgent(*i);        
        m_pcArena->RemoveAgent(*i);
        delete (*i);
    }
    m_tDeleteList.clear();
}
Esempio n. 4
0
	void Agents::ReceivedRemoveAgent(unsigned int agentId) {
		// Remove the Agent
		RemoveAgent(agentId);
	}