void UCrowdManager::UnregisterAgent(const ICrowdAgentInterface* Agent) { #if WITH_RECAST FCrowdAgentData* AgentData = ActiveAgents.Find(Agent); if (DetourCrowd && AgentData) { RemoveAgent(Agent, AgentData); } #endif ActiveAgents.Remove(Agent); }
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(); }
void Agents::ReceivedRemoveAgent(unsigned int agentId) { // Remove the Agent RemoveAgent(agentId); }