Esempio n. 1
0
bool ActorFunctor::filter(FactoryWrapper<Reference>& reference)
{
	if (ContainerFunctor::filter(reference))
		return true;

	return GameFactory::Operate<Actor>(reference->GetNetworkID(), [this](Actor* actor) {
		unsigned int flags = this->flags();

		if (flags & FLAG_ALIVE && actor->GetActorDead())
			return true;

		return false;
	});
}
Esempio n. 2
0
bool ObjectFunctor::filter(FactoryWrapper<Reference>& reference)
{
	return GameFactory::Operate<Object>(reference->GetNetworkID(), [this](FactoryObject& object) {
		unsigned int flags = this->flags();

		if (flags & FLAG_NOTSELF && object->GetReference() == PLAYER_REFERENCE)
			return true;

		else if (flags & FLAG_SELF && object->GetReference() != PLAYER_REFERENCE)
			return true;

		if (flags & FLAG_ENABLED && !object->GetEnabled())
			return true;

		return false;
	});
}