#pragma once #include "ParticleCommon.hpp" #include "PAK.hpp" #include "athena/FileWriter.hpp" namespace DataSpec::DNAParticle { template struct ELSM : BigDNA { AT_DECL_EXPLICIT_DNA_YAML AT_SUBDECL_DNA IntElementFactory x0_LIFE; IntElementFactory x4_SLIF; RealElementFactory x8_GRAT; IntElementFactory xc_SCNT; IntElementFactory x10_SSEG; ColorElementFactory x14_COLR; EmitterElementFactory x18_IEMT; EmitterElementFactory x1c_FEMT; RealElementFactory x20_AMPL; RealElementFactory x24_AMPD; RealElementFactory x28_LWD1; RealElementFactory x2c_LWD2; RealElementFactory x30_LWD3; ColorElementFactory x34_LCL1; ColorElementFactory x38_LCL2; ColorElementFactory x3c_LCL3; ChildResourceFactory x40_SSWH; ChildResourceFactory x50_GPSM; ChildResourceFactory x60_EPSM; BoolHelper x70_ZERY; void gatherDependencies(std::vector&) const; }; template bool ExtractELSM(PAKEntryReadStream& rs, const hecl::ProjectPath& outPath); template bool WriteELSM(const ELSM& elsm, const hecl::ProjectPath& outPath); }