#pragma once #include "DataSpec/DNACommon/DNACommon.hpp" #include "DataSpec/DNACommon/MayaSpline.hpp" #include "DataSpec/DNACommon/PAK.hpp" namespace DataSpec::DNAMP3 { struct CAUD : BigDNA { AT_DECL_DNA_YAML DNAFourCC magic; Value<atUint32> version; String<-1> name; Value<atUint32> volumeGroupCount; Vector<String<-1>, AT_DNA_COUNT(volumeGroupCount)> volumeGroups; Value<float> unknown1; Value<atUint32> unknown2; Value<float> unknown3; Value<float> unknown4; Value<atUint32> unknown5; struct CSMPInfo : BigDNA { AT_DECL_DNA_YAML Value<atUint32> dataLen; UniqueID64 csmpId; Value<float> unknown1; Value<atUint32> unknown2; Value<float> unknown3; Value<float> unknown4; Value<float> unknown5; Value<float> unknown6; Value<atUint32> unknown7; Value<atInt32> unknown8; Value<atInt32> unknown9; Value<atUint32> unknown10; Value<float> unknown11; Value<float> unknown12; Value<float> unknown13; Value<bool> unknown14; Value<bool> unknown15; Value<bool> unknown16; Value<bool> unknown17; Value<bool> unknown18; Value<bool> unknown19; MayaSpline spline1; MayaSpline spline2; MayaSpline spline3; MayaSpline spline4; Value<atUint32> unkStructCount; struct UnknownStruct : BigDNA { AT_DECL_DNA_YAML Value<float> unknown1; Value<float> unknown2; }; Vector<UnknownStruct, AT_DNA_COUNT(unkStructCount)> unkStructs; Value<atUint32> unknown20; Value<float> unknown21; Value<bool> unknown22; Value<bool> unknown23; MayaSpline spline5; }; Value<atUint32> infoCount; Vector<CSMPInfo, AT_DNA_COUNT(infoCount)> info; static bool Extract(PAKEntryReadStream& rs, const hecl::ProjectPath& outPath) { CAUD caud; caud.read(rs); athena::io::FileWriter writer(outPath.getAbsolutePath()); athena::io::ToYAMLStream(caud, writer); return true; } }; } // namespace DataSpec::DNAMP3