#pragma once namespace IW4 { enum XAssetType { ASSET_TYPE_PHYSPRESET = 0x0, ASSET_TYPE_PHYSCOLLMAP = 0x1, ASSET_TYPE_XANIMPARTS = 0x2, ASSET_TYPE_XMODEL_SURFS = 0x3, ASSET_TYPE_XMODEL = 0x4, ASSET_TYPE_MATERIAL = 0x5, ASSET_TYPE_PIXELSHADER = 0x6, ASSET_TYPE_VERTEXSHADER = 0x7, ASSET_TYPE_VERTEXDECL = 0x8, ASSET_TYPE_TECHNIQUE_SET = 0x9, ASSET_TYPE_IMAGE = 0xA, ASSET_TYPE_SOUND = 0xB, ASSET_TYPE_SOUND_CURVE = 0xC, ASSET_TYPE_LOADED_SOUND = 0xD, ASSET_TYPE_CLIPMAP_SP = 0xE, ASSET_TYPE_CLIPMAP_MP = 0xF, ASSET_TYPE_COMWORLD = 0x10, ASSET_TYPE_GAMEWORLD_SP = 0x11, ASSET_TYPE_GAMEWORLD_MP = 0x12, ASSET_TYPE_MAP_ENTS = 0x13, ASSET_TYPE_FXWORLD = 0x14, ASSET_TYPE_GFXWORLD = 0x15, ASSET_TYPE_LIGHT_DEF = 0x16, ASSET_TYPE_UI_MAP = 0x17, ASSET_TYPE_FONT = 0x18, ASSET_TYPE_MENULIST = 0x19, ASSET_TYPE_MENU = 0x1A, ASSET_TYPE_LOCALIZE_ENTRY = 0x1B, ASSET_TYPE_WEAPON = 0x1C, ASSET_TYPE_SNDDRIVER_GLOBALS = 0x1D, ASSET_TYPE_FX = 0x1E, ASSET_TYPE_IMPACT_FX = 0x1F, ASSET_TYPE_AITYPE = 0x20, ASSET_TYPE_MPTYPE = 0x21, ASSET_TYPE_CHARACTER = 0x22, ASSET_TYPE_XMODELALIAS = 0x23, ASSET_TYPE_RAWFILE = 0x24, ASSET_TYPE_STRINGTABLE = 0x25, ASSET_TYPE_LEADERBOARD = 0x26, ASSET_TYPE_STRUCTURED_DATA_DEF = 0x27, ASSET_TYPE_TRACER = 0x28, ASSET_TYPE_VEHICLE = 0x29, ASSET_TYPE_ADDON_MAP_ENTS = 0x2A, ASSET_TYPE_COUNT, ASSET_TYPE_STRING = ASSET_TYPE_COUNT, ASSET_TYPE_ASSETLIST = 0x2C, ASSET_TYPE_FULLCOUNT }; enum XFileBlock { XFILE_BLOCK_TEMP, XFILE_BLOCK_PHYSICAL, XFILE_BLOCK_RUNTIME, XFILE_BLOCK_VIRTUAL, XFILE_BLOCK_LARGE, XFILE_BLOCK_CALLBACK, XFILE_BLOCK_VERTEX, XFILE_BLOCK_INDEX, MAX_XFILE_COUNT, }; union XAssetHeader { /*PhysPreset* physPreset; PhysCollmap* physCollmap; XAnimParts* parts; XModelSurfs* modelSurfs; XModel* model; Material* material; MaterialPixelShader* pixelShader; MaterialVertexShader* vertexShader; MaterialVertexDeclaration* vertexDecl; MaterialTechniqueSet* techniqueSet; GfxImage* image; snd_alias_list_t* sound; SndCurve* sndCurve; LoadedSound* loadSnd; clipMap_t* clipMap; ComWorld* comWorld; GameWorldSp* gameWorldSp; GameWorldMp* gameWorldMp; MapEnts* mapEnts; FxWorld* fxWorld; GfxWorld* gfxWorld; GfxLightDef* lightDef; Font_s* font; MenuList* menuList; menuDef_t* menu; LocalizeEntry* localize; WeaponCompleteDef* weapon; SndDriverGlobals* sndDriverGlobals; FxEffectDef* fx; FxImpactTable* impactFx; RawFile* rawfile; StringTable* stringTable; LeaderboardDef* leaderboardDef; StructuredDataDefSet* structuredDataDefSet; TracerDef* tracerDef; VehicleDef* vehDef; AddonMapEnts* addonMapEnts;*/ void* data; }; }