#ifndef _DNAMP1_MAGDOLITE_HPP_ #define _DNAMP1_MAGDOLITE_HPP_ #include "../../DNACommon/DNACommon.hpp" #include "IScriptObject.hpp" #include "Parameters.hpp" namespace DataSpec::DNAMP1 { struct Magdolite : IScriptObject { DECL_YAML String<-1> name; Value location; Value orientation; Value scale; PatternedInfo patternedInfo; ActorParameters actorParameters; Value unknown1; Value unknown2; DamageInfo damageInfo1; DamageInfo damageInfo2; DamageVulnerability damageVulnerabilty1; DamageVulnerability damageVulnerabilty2; UniqueID32 model; UniqueID32 skin; Value unknown3; Value unknown4; Value unknown5; Value unknown6; struct MagdoliteParameters : BigYAML { DECL_YAML Value propertyCount; Value unknown1; UniqueID32 particle; Value unknown2; Value unknown3; Value unknown4; Value unknown5; } magdoliteParameters; Value unknown7; Value unknown8; Value unknown9; void addCMDLRigPairs(PAKRouter& pakRouter, std::unordered_map>& addTo) const { UniqueID32 cinf = patternedInfo.animationParameters.getCINF(pakRouter); actorParameters.addCMDLRigPairs(addTo, cinf); if (model && skin) addTo[model] = std::make_pair(skin, cinf); } void nameIDs(PAKRouter& pakRouter) const { if (model) { PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(model); ent->name = name + "_emodel"; } if (skin) { PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(skin); ent->name = name + "_eskin"; } if (magdoliteParameters.particle) { PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(magdoliteParameters.particle); ent->name = name + "_part"; } patternedInfo.nameIDs(pakRouter, name + "_patterned"); actorParameters.nameIDs(pakRouter, name + "_actp"); } void gatherDependencies(std::vector &pathsOut) const { g_curSpec->flattenDependencies(model, pathsOut); g_curSpec->flattenDependencies(skin, pathsOut); g_curSpec->flattenDependencies(magdoliteParameters.particle, pathsOut); patternedInfo.depIDs(pathsOut); actorParameters.depIDs(pathsOut); } void gatherScans(std::vector& scansOut) const { actorParameters.scanIDs(scansOut); } }; } #endif