void CIwGameModifierManager::Execute(IIwGameXomlResource* target, float dt) { if (Modifiers.size() == 0) return; CIwList<IIwGameModifier*> Removals; for (_Iterator it = begin(); it != end(); ++it) { if ((*it)->isActive()) { if (!(*it)->isInitialised()) { (*it)->InitModifier(target); (*it)->setInitialised(true); } else { if (!(*it)->UpdateModifier(target, dt)) { (*it)->ReleaseModifier(target); Removals.push_back(*it); } } } } // Remove deleted modifiers for (_Iterator it = Removals.begin(); it != Removals.end(); ++it) removeModifier(*it); }
std::list <int> Location::tick() { //There are lots of things to do in this. There may be more to do here. std::list <int> decayedModifiers; //Finds decayed modifiers and marks them. Reduces the value of modifiers which are greater than 0. for (auto &iter : localEffects){ if (iter.second == 0){ decayedModifiers.push_front(iter.first); } //Reduces modifiers if (iter.second > 0){ iter.second -= 1; } } //Removes decayed modifiers. std::list<int>::const_iterator listIterator; for (listIterator = decayedModifiers.begin(); listIterator != decayedModifiers.end(); ++listIterator) { removeModifier(*listIterator); } return decayedModifiers; }
VerEx & searchGlobal(bool enable) { if (enable) addModifier( 'g' ); else removeModifier( 'g' ); return (*this); }
VerEx & searchOneLine(bool enable) { if (enable) removeModifier( 'm' ); else addModifier( 'm' ); return (*this); }
VerEx & withAnyCase(bool enable) { if (enable) addModifier( 'i' ); else removeModifier( 'i' ); return (*this); }
bool StatManagement::removeModifier(INamedObject *stat, Modifier *modifier) { return removeModifier(stat->getShortName(), modifier); }