#pragma once #include "Dumping/AbstractAssetDumper.h" #include "Game/T6/T6.h" #include "Utils/InfoString.h" namespace T6 { class AssetDumperWeaponAttachmentUnique final : public AbstractAssetDumper { static constexpr const char* FILE_TYPE_STR = "ATTACHMENTUNIQUEFILE"; static constexpr const char* GDF_NAME = "attachmentunique.gdf"; static cspField_t attachment_unique_fields[]; static void CopyToFullDef(const WeaponAttachmentUnique* weapon, WeaponAttachmentUniqueFull* fullDef); static InfoString CreateInfoString(XAssetInfo* asset); protected: bool ShouldDump(XAssetInfo* asset) override; bool CanDumpAsRaw() override; bool CanDumpAsGdtEntry() override; std::string GetFileNameForAsset(Zone* zone, XAssetInfo* asset) override; GdtEntry DumpGdtEntry(AssetDumpingContext& context, XAssetInfo* asset) override; void DumpRaw(AssetDumpingContext& context, XAssetInfo* asset, std::ostream& stream) override; }; }