#pragma once #include "ParticleCommon.hpp" #include "PAK.hpp" #include "athena/FileWriter.hpp" namespace DataSpec::DNAParticle { template struct WPSM : BigDNA { AT_DECL_EXPLICIT_DNA_YAML AT_SUBDECL_DNA VectorElementFactory x0_IORN; VectorElementFactory x4_IVEC; VectorElementFactory x8_PSOV; ModVectorElementFactory xc_PSVM; BoolHelper x10_VMD2; IntElementFactory x14_PSLT; VectorElementFactory x18_PSCL; ColorElementFactory x1c_PCOL; VectorElementFactory x20_POFS; VectorElementFactory x24_OFST; BoolHelper x28_APSO; BoolHelper x29_HOMG; BoolHelper x2a_AP11; BoolHelper x2b_AP21; BoolHelper x2c_AS11; BoolHelper x2d_AS12; BoolHelper x2e_AS13; RealElementFactory x30_TRAT; ChildResourceFactory x34_APSM; ChildResourceFactory x44_APS2; ChildResourceFactory x54_ASW1; ChildResourceFactory x64_ASW2; ChildResourceFactory x74_ASW3; ChildResourceFactory x84_OHEF; ChildResourceFactory x94_COLR; BoolHelper xa4_EWTR; BoolHelper xa5_LWTR; BoolHelper xa6_SWTR; uint32_t xa8_PJFX = ~0; RealElementFactory xac_RNGE; RealElementFactory xb0_FOFF; BoolHelper xunk_FC60; BoolHelper xunk_SPS1; BoolHelper xunk_SPS2; WPSM() { xa4_EWTR = true; xa5_LWTR = true; xa6_SWTR = true; } void gatherDependencies(std::vector&) const; }; template bool ExtractWPSM(PAKEntryReadStream& rs, const hecl::ProjectPath& outPath); template bool WriteWPSM(const WPSM& wpsm, const hecl::ProjectPath& outPath); }