#pragma once #include "../../DNACommon/DNACommon.hpp" #include "IScriptObject.hpp" #include "Parameters.hpp" namespace DataSpec::DNAMP1 { struct Drone : IScriptObject { AT_DECL_DNA_YAML AT_DECL_DNAV String<-1> name; Value unknown1; Value location; Value orientation; Value scale; Value unknown2; PatternedInfo patternedInfo; ActorParameters actorParameters; DamageInfo damageInfo1; Value unknown3; DamageInfo damageInfo2; Value unknown4; Value unknown5; Value unknown6; FlareDefinition flareDefinition1; FlareDefinition flareDefinition2; FlareDefinition flareDefinition3; FlareDefinition flareDefinition4; FlareDefinition flareDefinition5; Value unknown7; Value unknown8; Value unknown9; Value unknown10; Value unknown11; Value unknown12; Value unknown13; Value unknown14; Value unknown15; Value unknown16; Value unknown17; Value unknown18; Value unknown19; Value unknown20; Value unknown21; Value unknown22; Value unknown23; Value unknown24; Value unknown25; UniqueID32 crsc; Value unknon26; Value unknon27; Value unknon28; Value unknon29; Value sound; // verification needed Value unknown30; void addCMDLRigPairs(PAKRouter& pakRouter, CharacterAssociations& charAssoc) const { actorParameters.addCMDLRigPairs(pakRouter, charAssoc, patternedInfo.animationParameters); } void nameIDs(PAKRouter& pakRouter) const { if (crsc) { PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(crsc); ent->name = name + "_crsc"; } flareDefinition1.nameIDs(pakRouter, name + "_flare1"); flareDefinition2.nameIDs(pakRouter, name + "_flare2"); flareDefinition3.nameIDs(pakRouter, name + "_flare3"); flareDefinition4.nameIDs(pakRouter, name + "_flare4"); flareDefinition5.nameIDs(pakRouter, name + "_flare5"); patternedInfo.nameIDs(pakRouter, name + "_patterned"); actorParameters.nameIDs(pakRouter, name + "_actp"); } void gatherDependencies(std::vector& pathsOut, std::vector& lazyOut) const { g_curSpec->flattenDependencies(crsc, pathsOut); flareDefinition1.depIDs(pathsOut); flareDefinition2.depIDs(pathsOut); flareDefinition3.depIDs(pathsOut); flareDefinition4.depIDs(pathsOut); flareDefinition5.depIDs(pathsOut); patternedInfo.depIDs(pathsOut); actorParameters.depIDs(pathsOut, lazyOut); } void gatherScans(std::vector& scansOut) const { actorParameters.scanIDs(scansOut); } }; }