#include "PkmnScript.hpp" #define PKMN_HOOK(hookName, source, ...) \ { \ auto aggregator = source->GetScriptIterator(); \ ArbUt::BorrowedPtr next = (CreatureLib::Battling::BattleScript*)1; \ while (aggregator.GetNext(next)) { \ if (next->IsSuppressed()) { \ continue; \ } \ auto castNext = next.ForceAs(); \ castNext->hookName(__VA_ARGS__); \ } \ }