#pragma once #include #include "Dumping/AbstractAssetDumper.h" #include "Game/IW4/IW4.h" #include "StructuredDataDef/CommonStructuredDataDef.h" namespace IW4 { class AssetDumperStructuredDataDefSet final : public AbstractAssetDumper { static CommonStructuredDataType ConvertType(const CommonStructuredDataDef* def, StructuredDataType in); static void ConvertEnum(CommonStructuredDataEnum* out, const StructuredDataEnum* in, size_t enumIndex); static void ConvertStruct(const CommonStructuredDataDef* def, const StructuredDataDef* gameDef, CommonStructuredDataStruct* out, const StructuredDataStruct* in, size_t structIndex); static void ConvertIndexedArray(const CommonStructuredDataDef* def, CommonStructuredDataIndexedArray* out, const StructuredDataIndexedArray* in); static void ConvertEnumedArray(const CommonStructuredDataDef* def, CommonStructuredDataEnumedArray* out, const StructuredDataEnumedArray* in); static std::unique_ptr ConvertDef(const StructuredDataDef* in); protected: bool ShouldDump(XAssetInfo* asset) override; void DumpAsset(AssetDumpingContext& context, XAssetInfo* asset) override; }; }