Beispiel #1
0
ActorSet MonsterFSM::getApplicableTargets(void) const
{
	ASSERT(m_Owner!=0, "Owner was NULL");

	ActorSet s = m_Owner->getZone().getObjects().exclude(m_Owner->m_ID).typeFilter<Player>();

	// remove actors that are dead or ghosts
	ActorSet::iterator i = s.begin();
	while(i != s.end())
	{
		ActorSet::iterator nextIterator = i;
		++nextIterator;

		const Player &player = dynamic_cast<const Player&>(*i->second);

		if(!player.isAlive())
		{
			s.erase(i);
		}

		i = nextIterator;
	}

	return s;
}
Beispiel #2
0
ActorSet ActorSet::exclude(OBJECT_ID id) const
{
	ActorSet s = *this;

	ActorSet::iterator iter = s.find(id);

	if(iter != s.end()) // if present
	{
		s.erase(iter);
	}

	return s;
}