#pragma once // clang-format off: Order of includes matters here // #include #include "Game/IAsset.h" #include "T6_Assets.h" // clang-format on namespace T6 { struct ScriptStringList { int count; const char** strings; }; struct XAsset { XAssetType type; XAssetHeader header; }; struct XAssetList { ScriptStringList stringList; int dependCount; const char** depends; int assetCount; XAsset* assets; }; struct cspField_t { const char* szName; int iOffset; int iFieldType; }; enum csParseFieldType_t { CSPFT_STRING = 0, CSPFT_STRING_MAX_STRING_CHARS, CSPFT_STRING_MAX_QPATH, CSPFT_STRING_MAX_OSPATH, CSPFT_INT, CSPFT_UINT, CSPFT_BOOL, CSPFT_QBOOLEAN, CSPFT_FLOAT, CSPFT_MILLISECONDS, CSPFT_FX, CSPFT_XMODEL, CSPFT_MATERIAL, CSPFT_MATERIAL_STREAM, CSPFT_PHYS_PRESET, CSPFT_SCRIPT_STRING, CSPFT_TRACER, CSPFT_SOUND_ALIAS_ID, CSPFT_NUM_BASE_FIELD_TYPES }; enum weapFieldType_t { WFT_WEAPONTYPE = CSPFT_NUM_BASE_FIELD_TYPES, WFT_WEAPONCLASS, WFT_OVERLAYRETICLE, WFT_PENETRATE_TYPE, WFT_IMPACT_TYPE, WFT_STANCE, WFT_PROJ_EXPLOSION, WFT_OFFHAND_CLASS, WFT_OFFHAND_SLOT, WFT_ANIMTYPE, WFT_ACTIVE_RETICLE_TYPE, WFT_GUIDED_MISSILE_TYPE, WFT_BOUNCE_SOUND, WFT_STICKINESS, WFT_ROTATETYPE, WFT_OVERLAYINTERFACE, WFT_INVENTORYTYPE, WFT_FIRETYPE, WFT_CLIPTYPE, WFT_AMMOCOUNTER_CLIPTYPE, WFT_ICONRATIO_HUD, WFT_ICONRATIO_AMMOCOUNTER, WFT_ICONRATIO_KILL, WFT_ICONRATIO_DPAD, WFT_ICONRATIO_INDICATOR, WFT_BARRELTYPE, WFT_HIDETAGS, WFT_EXPLOSION_TAG, WFT_NOTETRACKSOUNDMAP, WFT_WEAPON_CAMO, WFT_ATTACHMENTS, WFT_ATTACHMENT_UNIQUES, // Custom WFT_ANIM_NAME, WFT_NUM_FIELD_TYPES }; enum VehicleFieldType { VFT_TYPE = CSPFT_NUM_BASE_FIELD_TYPES, VFT_CAMERAMODE, VFT_TRACTION_TYPE, VFT_MPH_TO_INCHES_PER_SECOND, VFT_POUNDS_TO_GAME_MASS, VFT_TEAM, VFT_KEY_BINDING, VFT_GRAPH, VFT_WIIUCONTROLOVERRIDE, VFT_NUM }; enum tracerFieldType_t { TFT_TRACERTYPE = CSPFT_NUM_BASE_FIELD_TYPES, TFT_NUM_FIELD_TYPES }; enum constraintsFieldType_t { CFT_TYPE = CSPFT_NUM_BASE_FIELD_TYPES, CFT_NUM_FIELD_TYPES }; enum attachmentFieldType_t { AFT_ATTACHMENTTYPE = CSPFT_NUM_BASE_FIELD_TYPES, AFT_UNKNOWN1, AFT_UNKNOWN2, AFT_UNKNOWN3, AFT_UNKNOWN4, AFT_PENETRATE_TYPE, AFT_FIRETYPE, AFT_NUM }; enum attachmentUniqueFieldType_t { AUFT_ATTACHMENTTYPE = CSPFT_NUM_BASE_FIELD_TYPES, AUFT_HIDETAGS, AUFT_OVERLAYRETICLE, AUFT_CAMO, // Custom AUFT_ANIM_NAME, AUFT_NUM_FIELD_TYPES, }; using AssetPhysPreset = Asset; using AssetPhysConstraints = Asset; using AssetDestructibleDef = Asset; using AssetXAnim = Asset; using AssetXModel = Asset; using AssetMaterial = Asset; using AssetTechniqueSet = Asset; using AssetImage = Asset; using AssetSoundBank = Asset; using AssetSoundPatch = Asset; using AssetClipMap = Asset; using AssetClipMapPvs = Asset; using AssetComWorld = Asset; using AssetGameWorldSp = Asset; using AssetGameWorldMp = Asset; using AssetMapEnts = Asset; using AssetGfxWorld = Asset; using AssetLightDef = Asset; using AssetFont = Asset; using AssetFontIcon = Asset; using AssetMenuList = Asset; using AssetMenu = Asset; using AssetLocalize = Asset; using AssetWeapon = Asset; using AssetAttachment = Asset; using AssetAttachmentUnique = Asset; using AssetWeaponCamo = Asset; using AssetSoundDriverGlobals = Asset; using AssetFx = Asset; using AssetImpactFx = Asset; using AssetRawFile = Asset; using AssetStringTable = Asset; using AssetLeaderboard = Asset; using AssetXGlobals = Asset; using AssetDDL = Asset; using AssetGlasses = Asset; using AssetEmblemSet = Asset; using AssetScript = Asset; using AssetKeyValuePairs = Asset; using AssetVehicle = Asset; using AssetMemoryBlock = Asset; using AssetAddonMapEnts = Asset; using AssetTracer = Asset; using AssetSkinnedVerts = Asset; using AssetQdb = Asset; using AssetSlug = Asset; using AssetFootstepTable = Asset; using AssetFootstepFxTable = Asset; using AssetZBarrier = Asset; } // namespace T6 DEFINE_ASSET_NAME_ACCESSOR(T6::AssetPhysPreset, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetPhysConstraints, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetDestructibleDef, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetXAnim, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetXModel, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetMaterial, info.name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetTechniqueSet, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetImage, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetSoundBank, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetSoundPatch, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetClipMap, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetClipMapPvs, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetComWorld, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetGameWorldSp, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetGameWorldMp, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetMapEnts, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetGfxWorld, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetLightDef, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetFont, fontName); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetFontIcon, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetMenuList, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetMenu, window.name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetLocalize, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetWeapon, szInternalName); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetAttachment, szInternalName); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetAttachmentUnique, szInternalName); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetWeaponCamo, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetSoundDriverGlobals, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetFx, name); DEFINE_ASSET_NAME_ACCESSOR_SINGLETON(T6::AssetImpactFx, "ImpactFx"); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetRawFile, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetStringTable, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetLeaderboard, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetXGlobals, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetDDL, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetGlasses, name); DEFINE_ASSET_NAME_ACCESSOR_SINGLETON(T6::AssetEmblemSet, "EmblemSet"); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetScript, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetKeyValuePairs, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetVehicle, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetMemoryBlock, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetAddonMapEnts, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetTracer, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetSkinnedVerts, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetQdb, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetSlug, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetFootstepTable, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetFootstepFxTable, name); DEFINE_ASSET_NAME_ACCESSOR(T6::AssetZBarrier, name);