#pragma once #include "Dumping/AbstractAssetDumper.h" #include "Game/T6/T6.h" #include "InfoString/InfoString.h" namespace T6 { class AssetDumperWeapon final : public AbstractAssetDumper { static constexpr const char* FILE_TYPE_STR = "WEAPONFILE"; static constexpr const char* GDF_NAME = "weapon.gdf"; static cspField_t weapon_fields[]; static void CopyToFullDef(const WeaponVariantDef* weapon, WeaponFullDef* 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; }; }