#pragma once #include "../../DNACommon/DNACommon.hpp" #include "IScriptObject.hpp" #include "Parameters.hpp" namespace DataSpec::DNAMP1 { struct FishCloud : IScriptObject { AT_DECL_DNA_YAML AT_DECL_DNAV String<-1> name; Value location; Value orientation; Value volume; Value active; UniqueID32 model; AnimationParameters animationParameters; Value numBoids; Value speed; Value separationRadius; Value cohesionMagnitude; Value alignmentWeight; Value separationMagnitude; Value weaponRepelMagnitude; Value playerRepelMagnitude; Value containmentMagnitude; Value scatterVel; Value maxScatterAngle; Value weaponRepelDampingSpeed; Value playerRepelDampingSpeed; Value containmentRadius; Value updateShift; Value color; // CColor Value killable; Value weaponKillRadius; UniqueID32 deathParticle1; Value deathParticle1Count; UniqueID32 deathParticle2; Value deathParticle2Count; UniqueID32 deathParticle3; Value deathParticle3Count; UniqueID32 deathParticle4; Value deathParticle4Count; Value deathSFX; Value repelFromThreats; Value hotInThermal; void nameIDs(PAKRouter& pakRouter) const { if (model) { PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(model); ent->name = name + "_model"; } animationParameters.nameANCS(pakRouter, name + "_animp"); if (deathParticle1) { PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(deathParticle1); ent->name = name + "_deathParticle1"; } if (deathParticle2) { PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(deathParticle2); ent->name = name + "_deathParticle2"; } if (deathParticle3) { PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(deathParticle3); ent->name = name + "_deathParticle3"; } if (deathParticle4) { PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(deathParticle4); ent->name = name + "_deathParticle4"; } } void gatherDependencies(std::vector& pathsOut, std::vector& lazyOut) const { g_curSpec->flattenDependencies(model, pathsOut); animationParameters.depANCS(pathsOut); g_curSpec->flattenDependencies(deathParticle1, pathsOut); g_curSpec->flattenDependencies(deathParticle2, pathsOut); g_curSpec->flattenDependencies(deathParticle3, pathsOut); g_curSpec->flattenDependencies(deathParticle4, pathsOut); } }; } // namespace DataSpec::DNAMP1