From 5e8173539bda107de38c330cf6ab4d65a73d659f Mon Sep 17 00:00:00 2001 From: Jan Date: Mon, 7 Sep 2020 14:14:07 +0200 Subject: [PATCH] Generate zone code for IW4 for the first 3 assets --- src/ZoneCode.lua | 44 ++ src/ZoneCode/Game/IW4/IW4.gen | 1 + src/ZoneCode/Game/IW4/IW4.h | 8 + src/ZoneCode/Game/IW4/IW4_Commands.txt | 170 ++++++ src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp | 529 ++++++++---------- src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h | 89 ++- src/ZoneCommon/Game/IW4/IW4_Assets.h | 261 ++++++++- src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp | 172 +++--- 8 files changed, 826 insertions(+), 448 deletions(-) create mode 100644 src/ZoneCode/Game/IW4/IW4.gen create mode 100644 src/ZoneCode/Game/IW4/IW4.h create mode 100644 src/ZoneCode/Game/IW4/IW4_Commands.txt diff --git a/src/ZoneCode.lua b/src/ZoneCode.lua index 7f6c3cbf..23b2b684 100644 --- a/src/ZoneCode.lua +++ b/src/ZoneCode.lua @@ -1,6 +1,46 @@ ZoneCode = {} ZoneCode.Assets = { + IW4 = { + "PhysPreset", + "PhysCollmap", + "XAnimParts", + -- "XModelSurfs", + -- "XModel", + -- "Material", + -- "MaterialPixelShader", + -- "MaterialVertexShader", + -- "MaterialVertexDeclaration", + -- "MaterialTechniqueSet", + -- "GfxImage", + -- "snd_alias_list_t", + -- "SndCurve", + -- "LoadedSound", + -- "clipMap_t", + -- "ComWorld", + -- "GameWorldSp", + -- "GameWorldMp", + -- "MapEnts", + -- "FxWorld", + -- "GfxWorld", + -- "GfxLightDef", + -- "Font_s", + -- "MenuList", + -- "menuDef_t", + -- "LocalizeEntry", + -- "WeaponCompleteDef", + -- "SndDriverGlobals", + -- "FxEffectDef", + -- "FxImpactTable", + -- "RawFile", + -- "StringTable", + -- "LeaderboardDef", + -- "StructuredDataDefSet", + -- "TracerDef", + -- "VehicleDef", + -- "AddonMapEnts" + }, + T6 = { "PhysPreset", "PhysConstraints", @@ -165,6 +205,10 @@ function ZoneCode:project() } filter {} + filter "files:**/IW4.gen" + self:outputForAssets(self.Assets.IW4) + filter {} + filter "files:**/T6.gen" self:outputForAssets(self.Assets.T6) filter {} diff --git a/src/ZoneCode/Game/IW4/IW4.gen b/src/ZoneCode/Game/IW4/IW4.gen new file mode 100644 index 00000000..7bd8cb1e --- /dev/null +++ b/src/ZoneCode/Game/IW4/IW4.gen @@ -0,0 +1 @@ +# This file exists for automatically generating zone loading code. \ No newline at end of file diff --git a/src/ZoneCode/Game/IW4/IW4.h b/src/ZoneCode/Game/IW4/IW4.h new file mode 100644 index 00000000..b15f0318 --- /dev/null +++ b/src/ZoneCode/Game/IW4/IW4.h @@ -0,0 +1,8 @@ +#pragma once + +// Entry point for IW4 code generation + +#include "../Common.h" +#include "../../../ZoneCommon/Game/IW4/IW4_Assets.h" + +// EOF \ No newline at end of file diff --git a/src/ZoneCode/Game/IW4/IW4_Commands.txt b/src/ZoneCode/Game/IW4/IW4_Commands.txt new file mode 100644 index 00000000..aa733372 --- /dev/null +++ b/src/ZoneCode/Game/IW4/IW4_Commands.txt @@ -0,0 +1,170 @@ +// Game: Modern Warfare 2 (IW4) +game IW4; + +// Game Assets +asset PhysPreset ASSET_TYPE_PHYSPRESET; +asset PhysCollmap ASSET_TYPE_PHYSCOLLMAP; +asset XAnimParts ASSET_TYPE_XANIMPARTS; +// asset XModelSurfs ASSET_TYPE_XMODEL_SURFS; +// asset XModel ASSET_TYPE_XMODEL; +// asset Material ASSET_TYPE_MATERIAL; +// asset MaterialPixelShader ASSET_TYPE_PIXELSHADER; +// asset MaterialVertexShader ASSET_TYPE_VERTEXSHADER; +// asset MaterialVertexDeclaration ASSET_TYPE_VERTEXDECL; +// asset MaterialTechniqueSet ASSET_TYPE_TECHNIQUE_SET; +// asset GfxImage ASSET_TYPE_IMAGE; +// asset snd_alias_list_t ASSET_TYPE_SOUND; +// asset SndCurve ASSET_TYPE_SOUND_CURVE; +// asset LoadedSound ASSET_TYPE_LOADED_SOUND; +// asset clipMap_t ASSET_TYPE_CLIPMAP_MP; +// asset ComWorld ASSET_TYPE_COMWORLD; +// asset GameWorldSp ASSET_TYPE_GAMEWORLD_SP; +// asset GameWorldMp ASSET_TYPE_GAMEWORLD_MP; +// asset MapEnts ASSET_TYPE_MAP_ENTS; +// asset FxWorld ASSET_TYPE_FXWORLD; +// asset GfxWorld ASSET_TYPE_GFXWORLD; +// asset GfxLightDef ASSET_TYPE_LIGHT_DEF; +// asset Font_s ASSET_TYPE_FONT; +// asset MenuList ASSET_TYPE_MENULIST; +// asset menuDef_t ASSET_TYPE_MENU; +// asset LocalizeEntry ASSET_TYPE_LOCALIZE_ENTRY; +// asset WeaponCompleteDef ASSET_TYPE_WEAPON; +// asset SndDriverGlobals ASSET_TYPE_SNDDRIVER_GLOBALS; +// asset FxEffectDef ASSET_TYPE_FX; +// asset FxImpactTable ASSET_TYPE_IMPACT_FX; +// asset RawFile ASSET_TYPE_RAWFILE; +// asset StringTable ASSET_TYPE_STRINGTABLE; +// asset LeaderboardDef ASSET_TYPE_LEADERBOARD; +// asset StructuredDataDefSet ASSET_TYPE_STRUCTURED_DATA_DEF; +// asset TracerDef ASSET_TYPE_TRACER; +// asset VehicleDef ASSET_TYPE_VEHICLE; +// asset AddonMapEnts ASSET_TYPE_ADDON_MAP_ENTS; + +// Setup blocks +block temp XFILE_BLOCK_TEMP default; +block normal XFILE_BLOCK_PHYSICAL; +block runtime XFILE_BLOCK_RUNTIME default; +block normal XFILE_BLOCK_VIRTUAL default; +block normal XFILE_BLOCK_LARGE; +block normal XFILE_BLOCK_CALLBACK; +block normal XFILE_BLOCK_VERTEX; +block normal XFILE_BLOCK_INDEX; + +// ========================================= +// PhysPreset +// ========================================= +use PhysPreset; +set string name; +set name name; +set string sndAliasPrefix; +block normal XFILE_BLOCK_INDEX; + +// ========================================= +// PhysCollmap +// ========================================= +use PhysCollmap; +set string name; +set name name; +set count geoms count; + +// PhysGeomInfo +use PhysGeomInfo; +set count brushWrapper 1; + +// BrushWrapper +use BrushWrapper; +set reusable planes; +set count planes brush::numsides; + +// cbrushWrapper_t +use cbrushWrapper_t; +set count sides numsides; +set count baseAdjacentSide BrushWrapper::totalEdgeCount; + +// cbrushside_t +use cbrushside_t; +set reusable plane; +set count plane 1; + +// ========================================= +// XAnimParts +// ========================================= +use XAnimParts; +set string name; +set name name; +set scriptstring names; +set count names boneCount[9]; +set count notify notifyCount; +set count deltaPart 1; +set count dataByte dataByteCount; +set count dataShort dataShortCount; +set count dataInt dataIntCount; +set count randomDataShort randomDataShortCount; +set count randomDataByte randomDataByteCount; +set count randomDataInt randomDataIntCount; +set count indices::_1 indexCount; +set count indices::_2 indexCount; +set condition indices::_1 numframes < 256; +set condition indices::data never; +reorder: + name + names + notify + deltaPart + dataByte + dataShort + dataInt + randomDataShort + randomDataByte + randomDataInt + indices; + +// XAnimNotifyInfo +set scriptstring XAnimNotifyInfo::name; + +// XAnimDeltaPart +use XAnimDeltaPart; +set count trans 1; +set count quat2 1; +set count quat 1; + +// XAnimPartTrans +use XAnimPartTrans; +set condition u::frames size > 0; +set condition u::frames::indices::_1 XAnimParts::numframes < 256; +set arraysize u::frames::indices::_1 size + 1; +set arraysize u::frames::indices::_2 size + 1; +set condition u::frames::frames::_1 smallTrans; +set count u::frames::frames::_1 size + 1; +set count u::frames::frames::_2 size + 1; + +// XAnimPartTransFrames +reorder XAnimPartTransFrames: + indices + frames; + +// XAnimDeltaPartQuat2 +use XAnimDeltaPartQuat2; +set condition u::frames size > 0; +set condition u::frames::indices::_1 XAnimParts::numframes < 256; +set arraysize u::frames::indices::_1 size + 1; +set arraysize u::frames::indices::_2 size + 1; +set count u::frames::frames size + 1; + +// XAnimDeltaPartQuatDataFrames2 +reorder XAnimDeltaPartQuatDataFrames2: + indices + frames; + +// XAnimDeltaPartQuat +use XAnimDeltaPartQuat; +set condition u::frames size > 0; +set condition u::frames::indices::_1 XAnimParts::numframes < 256; +set arraysize u::frames::indices::_1 size + 1; +set arraysize u::frames::indices::_2 size + 1; +set count u::frames::frames size + 1; + +// XAnimDeltaPartQuatDataFrames +reorder XAnimDeltaPartQuatDataFrames: + indices + frames; \ No newline at end of file diff --git a/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp b/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp index d9ac8e10..e90e2265 100644 --- a/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp +++ b/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp @@ -53,117 +53,94 @@ const std::string GameAssetPoolIW4::ASSET_TYPE_NAMES[] "addonmapents" }; +/* + Asset Pool Table + Useful for macro generation via regex-replace for example + + #assetType, #typeName, #unionEntry, #poolName + ASSET_TYPE_PHYSPRESET, PhysPreset, physPreset, m_phys_preset + ASSET_TYPE_PHYSCOLLMAP, PhysCollmap, physCollmap, m_phys_collmap + ASSET_TYPE_XANIMPARTS, XAnimParts, parts, m_xanim_parts + ASSET_TYPE_XMODEL_SURFS, XModelSurfs, modelSurfs, m_xmodel_surfs + ASSET_TYPE_XMODEL, XModel, model, m_xmodel + ASSET_TYPE_MATERIAL, Material, material, m_material + ASSET_TYPE_PIXELSHADER, MaterialPixelShader, pixelShader, m_material_pixel_shader + ASSET_TYPE_VERTEXSHADER, MaterialVertexShader, vertexShader, m_material_vertex_shader + ASSET_TYPE_VERTEXDECL, MaterialVertexDeclaration, vertexDecl, m_material_vertex_decl + ASSET_TYPE_TECHNIQUE_SET, MaterialTechniqueSet, techniqueSet, m_technique_set + ASSET_TYPE_IMAGE, GfxImage, image, m_image + ASSET_TYPE_SOUND, snd_alias_list_t, sound, m_sound + ASSET_TYPE_SOUND_CURVE, SndCurve, sndCurve, m_sound_curve + ASSET_TYPE_LOADED_SOUND, LoadedSound, loadSnd, m_loaded_sound + ASSET_TYPE_CLIPMAP_SP, clipMap_t, clipMap, m_clip_map + ASSET_TYPE_CLIPMAP_MP, clipMap_t, clipMap, m_clip_map + ASSET_TYPE_COMWORLD, ComWorld, comWorld, m_com_world + ASSET_TYPE_GAMEWORLD_SP, GameWorldSp, gameWorldSp, m_game_world_sp + ASSET_TYPE_GAMEWORLD_MP, GameWorldMp, gameWorldMp, m_game_world_mp + ASSET_TYPE_MAP_ENTS, MapEnts, mapEnts, m_map_ents + ASSET_TYPE_FXWORLD, FxWorld, fxWorld, m_fx_world + ASSET_TYPE_GFXWORLD, GfxWorld, gfxWorld, m_gfx_world + ASSET_TYPE_LIGHT_DEF, GfxLightDef, lightDef, m_gfx_light_def + ASSET_TYPE_FONT, Font_s, font, m_font + ASSET_TYPE_MENULIST, MenuList, menuList, m_menu_list + ASSET_TYPE_MENU, menuDef_t, menu, m_menu_def + ASSET_TYPE_LOCALIZE_ENTRY, LocalizeEntry, localize, m_localize + ASSET_TYPE_WEAPON, WeaponCompleteDef, weapon, m_weapon + ASSET_TYPE_SNDDRIVER_GLOBALS, SndDriverGlobals, sndDriverGlobals, m_snd_driver_globals + ASSET_TYPE_FX, FxEffectDef, fx, m_fx + ASSET_TYPE_IMPACT_FX, FxImpactTable, impactFx, m_fx_impact_table + ASSET_TYPE_RAWFILE, RawFile, rawfile, m_raw_file + ASSET_TYPE_STRINGTABLE, StringTable, stringTable, m_string_table + ASSET_TYPE_LEADERBOARD, LeaderboardDef, leaderboardDef, m_leaderboard + ASSET_TYPE_STRUCTURED_DATA_DEF, StructuredDataDefSet, structuredDataDefSet, m_structed_data_def_set + ASSET_TYPE_TRACER, TracerDef, tracerDef, m_tracer + ASSET_TYPE_VEHICLE, VehicleDef, vehDef, m_vehicle + ASSET_TYPE_ADDON_MAP_ENTS, AddonMapEnts, addonMapEnts, m_addon_map_ents + */ + GameAssetPoolIW4::GameAssetPoolIW4(const int priority) { assert(_countof(ASSET_TYPE_NAMES) == ASSET_TYPE_COUNT); m_priority = priority; - /*m_phys_preset = nullptr; - m_phys_constraints = nullptr; - m_destructible_def = nullptr; + m_phys_preset = nullptr; + m_phys_collmap = nullptr; m_xanim_parts = nullptr; - m_xmodel = nullptr; - m_material = nullptr; - m_technique_set = nullptr; - m_image = nullptr; - m_sound_bank = nullptr; - m_sound_patch = nullptr; - m_clip_map = nullptr; - m_com_world = nullptr; - m_game_world_sp = nullptr; - m_game_world_mp = nullptr; - m_map_ents = nullptr; - m_gfx_world = nullptr; - m_gfx_light_def = nullptr; - m_font = nullptr; - m_font_icon = nullptr; - m_menu_list = nullptr; - m_menu_def = nullptr; - m_localize = nullptr; - m_weapon = nullptr; - m_attachment = nullptr; - m_attachment_unique = nullptr; - m_camo = nullptr; - m_snd_driver_globals = nullptr; - m_fx = nullptr; - m_fx_impact_table = nullptr; - m_raw_file = nullptr; - m_string_table = nullptr; - m_leaderboard = nullptr; - m_xglobals = nullptr; - m_ddl = nullptr; - m_glasses = nullptr; - m_emblem_set = nullptr; - m_script = nullptr; - m_key_value_pairs = nullptr; - m_vehicle = nullptr; - m_memory_block = nullptr; - m_addon_map_ents = nullptr; - m_tracer = nullptr; - m_skinned_verts = nullptr; - m_qdb = nullptr; - m_slug = nullptr; - m_footstep_table = nullptr; - m_footstep_fx_table = nullptr; - m_zbarrier = nullptr;*/ -} - -GameAssetPoolIW4::~GameAssetPoolIW4() -{ -#define DELETE_POOL(poolName) \ - delete (poolName); (poolName) = nullptr; - - /*DELETE_POOL(m_phys_preset); - DELETE_POOL(m_phys_constraints); - DELETE_POOL(m_destructible_def); - DELETE_POOL(m_xanim_parts); - DELETE_POOL(m_xmodel); - DELETE_POOL(m_material); - DELETE_POOL(m_technique_set); - DELETE_POOL(m_image); - DELETE_POOL(m_sound_bank); - DELETE_POOL(m_sound_patch); - DELETE_POOL(m_clip_map); - DELETE_POOL(m_com_world); - DELETE_POOL(m_game_world_sp); - DELETE_POOL(m_game_world_mp); - DELETE_POOL(m_map_ents); - DELETE_POOL(m_gfx_world); - DELETE_POOL(m_gfx_light_def); - DELETE_POOL(m_font); - DELETE_POOL(m_font_icon); - DELETE_POOL(m_menu_list); - DELETE_POOL(m_menu_def); - DELETE_POOL(m_localize); - DELETE_POOL(m_weapon); - DELETE_POOL(m_attachment); - DELETE_POOL(m_attachment_unique); - DELETE_POOL(m_camo); - DELETE_POOL(m_snd_driver_globals); - DELETE_POOL(m_fx); - DELETE_POOL(m_fx_impact_table); - DELETE_POOL(m_raw_file); - DELETE_POOL(m_string_table); - DELETE_POOL(m_leaderboard); - DELETE_POOL(m_xglobals); - DELETE_POOL(m_ddl); - DELETE_POOL(m_glasses); - DELETE_POOL(m_emblem_set); - DELETE_POOL(m_script); - DELETE_POOL(m_key_value_pairs); - DELETE_POOL(m_vehicle); - DELETE_POOL(m_memory_block); - DELETE_POOL(m_addon_map_ents); - DELETE_POOL(m_tracer); - DELETE_POOL(m_skinned_verts); - DELETE_POOL(m_qdb); - DELETE_POOL(m_slug); - DELETE_POOL(m_footstep_table); - DELETE_POOL(m_footstep_fx_table); - DELETE_POOL(m_zbarrier);*/ - -#undef DELETE_POOL + // m_xmodel_surfs = nullptr; + // m_xmodel = nullptr; + // m_material = nullptr; + // m_material_pixel_shader = nullptr; + // m_material_vertex_shader = nullptr; + // m_material_vertex_decl = nullptr; + // m_technique_set = nullptr; + // m_image = nullptr; + // m_sound = nullptr; + // m_sound_curve = nullptr; + // m_loaded_sound = nullptr; + // m_clip_map = nullptr; + // m_com_world = nullptr; + // m_game_world_sp = nullptr; + // m_game_world_mp = nullptr; + // m_map_ents = nullptr; + // m_fx_world = nullptr; + // m_gfx_world = nullptr; + // m_gfx_light_def = nullptr; + // m_font = nullptr; + // m_menu_list = nullptr; + // m_menu_def = nullptr; + // m_localize = nullptr; + // m_weapon = nullptr; + // m_snd_driver_globals = nullptr; + // m_fx = nullptr; + // m_fx_impact_table = nullptr; + // m_raw_file = nullptr; + // m_string_table = nullptr; + // m_leaderboard = nullptr; + // m_structed_data_def_set = nullptr; + // m_tracer = nullptr; + // m_vehicle = nullptr; + // m_addon_map_ents = nullptr; } void GameAssetPoolIW4::InitPoolStatic(const asset_type_t type, const size_t capacity) @@ -173,62 +150,51 @@ void GameAssetPoolIW4::InitPoolStatic(const asset_type_t type, const size_t capa { \ if((poolName) == nullptr && capacity > 0) \ { \ - (poolName) = new AssetPoolStatic(capacity, m_priority, (assetType)); \ + (poolName) = std::make_unique>(capacity, m_priority, (assetType)); \ } \ break; \ } switch (type) { - /*CASE_INIT_POOL_STATIC(ASSET_TYPE_PHYSPRESET, m_phys_preset, PhysPreset); - CASE_INIT_POOL_STATIC(ASSET_TYPE_PHYSCONSTRAINTS, m_phys_constraints, PhysConstraints); - CASE_INIT_POOL_STATIC(ASSET_TYPE_DESTRUCTIBLEDEF, m_destructible_def, DestructibleDef); + CASE_INIT_POOL_STATIC(ASSET_TYPE_PHYSPRESET, m_phys_preset, PhysPreset); + CASE_INIT_POOL_STATIC(ASSET_TYPE_PHYSCOLLMAP, m_phys_collmap, PhysCollmap); CASE_INIT_POOL_STATIC(ASSET_TYPE_XANIMPARTS, m_xanim_parts, XAnimParts); - CASE_INIT_POOL_STATIC(ASSET_TYPE_XMODEL, m_xmodel, XModel); - CASE_INIT_POOL_STATIC(ASSET_TYPE_MATERIAL, m_material, Material); - CASE_INIT_POOL_STATIC(ASSET_TYPE_TECHNIQUE_SET, m_technique_set, MaterialTechniqueSet); - CASE_INIT_POOL_STATIC(ASSET_TYPE_IMAGE, m_image, GfxImage); - CASE_INIT_POOL_STATIC(ASSET_TYPE_SOUND, m_sound_bank, SndBank); - CASE_INIT_POOL_STATIC(ASSET_TYPE_SOUND_PATCH, m_sound_patch, SndPatch); - CASE_INIT_POOL_STATIC(ASSET_TYPE_CLIPMAP, m_clip_map, clipMap_t); - CASE_INIT_POOL_STATIC(ASSET_TYPE_CLIPMAP_PVS, m_clip_map, clipMap_t); - CASE_INIT_POOL_STATIC(ASSET_TYPE_COMWORLD, m_com_world, ComWorld); - CASE_INIT_POOL_STATIC(ASSET_TYPE_GAMEWORLD_SP, m_game_world_sp, GameWorldSp); - CASE_INIT_POOL_STATIC(ASSET_TYPE_GAMEWORLD_MP, m_game_world_mp, GameWorldMp); - CASE_INIT_POOL_STATIC(ASSET_TYPE_MAP_ENTS, m_map_ents, MapEnts); - CASE_INIT_POOL_STATIC(ASSET_TYPE_GFXWORLD, m_gfx_world, GfxWorld); - CASE_INIT_POOL_STATIC(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def, GfxLightDef); - CASE_INIT_POOL_STATIC(ASSET_TYPE_FONT, m_font, Font_s); - CASE_INIT_POOL_STATIC(ASSET_TYPE_FONTICON, m_font_icon, FontIcon); - CASE_INIT_POOL_STATIC(ASSET_TYPE_MENULIST, m_menu_list, MenuList); - CASE_INIT_POOL_STATIC(ASSET_TYPE_MENU, m_menu_def, menuDef_t); - CASE_INIT_POOL_STATIC(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, LocalizeEntry); - CASE_INIT_POOL_STATIC(ASSET_TYPE_WEAPON, m_weapon, WeaponVariantDef); - CASE_INIT_POOL_STATIC(ASSET_TYPE_ATTACHMENT, m_attachment, WeaponAttachment); - CASE_INIT_POOL_STATIC(ASSET_TYPE_ATTACHMENT_UNIQUE, m_attachment_unique, WeaponAttachmentUnique); - CASE_INIT_POOL_STATIC(ASSET_TYPE_WEAPON_CAMO, m_camo, WeaponCamo); - CASE_INIT_POOL_STATIC(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals, SndDriverGlobals); - CASE_INIT_POOL_STATIC(ASSET_TYPE_FX, m_fx, FxEffectDef); - CASE_INIT_POOL_STATIC(ASSET_TYPE_IMPACT_FX, m_fx_impact_table, FxImpactTable); - CASE_INIT_POOL_STATIC(ASSET_TYPE_RAWFILE, m_raw_file, RawFile); - CASE_INIT_POOL_STATIC(ASSET_TYPE_STRINGTABLE, m_string_table, StringTable); - CASE_INIT_POOL_STATIC(ASSET_TYPE_LEADERBOARD, m_leaderboard, LeaderboardDef); - CASE_INIT_POOL_STATIC(ASSET_TYPE_XGLOBALS, m_xglobals, XGlobals); - CASE_INIT_POOL_STATIC(ASSET_TYPE_DDL, m_ddl, ddlRoot_t); - CASE_INIT_POOL_STATIC(ASSET_TYPE_GLASSES, m_glasses, Glasses); - CASE_INIT_POOL_STATIC(ASSET_TYPE_EMBLEMSET, m_emblem_set, EmblemSet); - CASE_INIT_POOL_STATIC(ASSET_TYPE_SCRIPTPARSETREE, m_script, ScriptParseTree); - CASE_INIT_POOL_STATIC(ASSET_TYPE_KEYVALUEPAIRS, m_key_value_pairs, KeyValuePairs); - CASE_INIT_POOL_STATIC(ASSET_TYPE_VEHICLEDEF, m_vehicle, VehicleDef); - CASE_INIT_POOL_STATIC(ASSET_TYPE_MEMORYBLOCK, m_memory_block, MemoryBlock); - CASE_INIT_POOL_STATIC(ASSET_TYPE_ADDON_MAP_ENTS, m_addon_map_ents, AddonMapEnts); - CASE_INIT_POOL_STATIC(ASSET_TYPE_TRACER, m_tracer, TracerDef); - CASE_INIT_POOL_STATIC(ASSET_TYPE_SKINNEDVERTS, m_skinned_verts, SkinnedVertsDef); - CASE_INIT_POOL_STATIC(ASSET_TYPE_QDB, m_qdb, Qdb); - CASE_INIT_POOL_STATIC(ASSET_TYPE_SLUG, m_slug, Slug); - CASE_INIT_POOL_STATIC(ASSET_TYPE_FOOTSTEP_TABLE, m_footstep_table, FootstepTableDef); - CASE_INIT_POOL_STATIC(ASSET_TYPE_FOOTSTEPFX_TABLE, m_footstep_fx_table, FootstepFXTableDef); - CASE_INIT_POOL_STATIC(ASSET_TYPE_ZBARRIER, m_zbarrier, ZBarrierDef);*/ + // CASE_INIT_POOL_STATIC(ASSET_TYPE_XMODEL_SURFS, m_xmodel_surfs, XModelSurfs); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_XMODEL, m_xmodel, XModel); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_MATERIAL, m_material, Material); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_PIXELSHADER, m_material_pixel_shader, MaterialPixelShader); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_VERTEXSHADER, m_material_vertex_shader, MaterialVertexShader); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_VERTEXDECL, m_material_vertex_decl, MaterialVertexDeclaration); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_TECHNIQUE_SET, m_technique_set, MaterialTechniqueSet); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_IMAGE, m_image, GfxImage); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_SOUND, m_sound, snd_alias_list_t); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_SOUND_CURVE, m_sound_curve, SndCurve); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_LOADED_SOUND, m_loaded_sound, LoadedSound); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_CLIPMAP_SP, m_clip_map, clipMap_t); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_CLIPMAP_MP, m_clip_map, clipMap_t); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_COMWORLD, m_com_world, ComWorld); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_GAMEWORLD_SP, m_game_world_sp, GameWorldSp); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_GAMEWORLD_MP, m_game_world_mp, GameWorldMp); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_MAP_ENTS, m_map_ents, MapEnts); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_FXWORLD, m_fx_world, FxWorld); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_GFXWORLD, m_gfx_world, GfxWorld); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def, GfxLightDef); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_FONT, m_font, Font_s); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_MENULIST, m_menu_list, MenuList); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_MENU, m_menu_def, menuDef_t); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, LocalizeEntry); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_WEAPON, m_weapon, WeaponCompleteDef); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals, SndDriverGlobals); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_FX, m_fx, FxEffectDef); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_IMPACT_FX, m_fx_impact_table, FxImpactTable); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_RAWFILE, m_raw_file, RawFile); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_STRINGTABLE, m_string_table, StringTable); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_LEADERBOARD, m_leaderboard, LeaderboardDef); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_STRUCTURED_DATA_DEF, m_structed_data_def_set, StructuredDataDefSet); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_TRACER, m_tracer, TracerDef); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_VEHICLE, m_vehicle, VehicleDef); + // CASE_INIT_POOL_STATIC(ASSET_TYPE_ADDON_MAP_ENTS, m_addon_map_ents, AddonMapEnts); default: assert(type >= 0 && type < ASSET_TYPE_COUNT); @@ -245,62 +211,51 @@ void GameAssetPoolIW4::InitPoolDynamic(const asset_type_t type) { \ if((poolName) == nullptr) \ { \ - (poolName) = new AssetPoolDynamic(m_priority, (assetType)); \ + (poolName) = std::make_unique>(m_priority, (assetType)); \ } \ break; \ } switch (type) { - /*CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_PHYSPRESET, m_phys_preset, PhysPreset); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_PHYSCONSTRAINTS, m_phys_constraints, PhysConstraints); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_DESTRUCTIBLEDEF, m_destructible_def, DestructibleDef); + CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_PHYSPRESET, m_phys_preset, PhysPreset); + CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_PHYSCOLLMAP, m_phys_collmap, PhysCollmap); CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_XANIMPARTS, m_xanim_parts, XAnimParts); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_XMODEL, m_xmodel, XModel); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MATERIAL, m_material, Material); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_TECHNIQUE_SET, m_technique_set, MaterialTechniqueSet); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_IMAGE, m_image, GfxImage); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_SOUND, m_sound_bank, SndBank); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_SOUND_PATCH, m_sound_patch, SndPatch); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_CLIPMAP, m_clip_map, clipMap_t); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_CLIPMAP_PVS, m_clip_map, clipMap_t); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_COMWORLD, m_com_world, ComWorld); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_GAMEWORLD_SP, m_game_world_sp, GameWorldSp); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_GAMEWORLD_MP, m_game_world_mp, GameWorldMp); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MAP_ENTS, m_map_ents, MapEnts); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_GFXWORLD, m_gfx_world, GfxWorld); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def, GfxLightDef); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FONT, m_font, Font_s); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FONTICON, m_font_icon, FontIcon); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MENULIST, m_menu_list, MenuList); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MENU, m_menu_def, menuDef_t); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, LocalizeEntry); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_WEAPON, m_weapon, WeaponVariantDef); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_ATTACHMENT, m_attachment, WeaponAttachment); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_ATTACHMENT_UNIQUE, m_attachment_unique, WeaponAttachmentUnique); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_WEAPON_CAMO, m_camo, WeaponCamo); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals, SndDriverGlobals); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FX, m_fx, FxEffectDef); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_IMPACT_FX, m_fx_impact_table, FxImpactTable); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_RAWFILE, m_raw_file, RawFile); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_STRINGTABLE, m_string_table, StringTable); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LEADERBOARD, m_leaderboard, LeaderboardDef); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_XGLOBALS, m_xglobals, XGlobals); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_DDL, m_ddl, ddlRoot_t); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_GLASSES, m_glasses, Glasses); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_EMBLEMSET, m_emblem_set, EmblemSet); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_SCRIPTPARSETREE, m_script, ScriptParseTree); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_KEYVALUEPAIRS, m_key_value_pairs, KeyValuePairs); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_VEHICLEDEF, m_vehicle, VehicleDef); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MEMORYBLOCK, m_memory_block, MemoryBlock); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_ADDON_MAP_ENTS, m_addon_map_ents, AddonMapEnts); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_TRACER, m_tracer, TracerDef); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_SKINNEDVERTS, m_skinned_verts, SkinnedVertsDef); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_QDB, m_qdb, Qdb); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_SLUG, m_slug, Slug); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FOOTSTEP_TABLE, m_footstep_table, FootstepTableDef); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FOOTSTEPFX_TABLE, m_footstep_fx_table, FootstepFXTableDef); - CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_ZBARRIER, m_zbarrier, ZBarrierDef);*/ + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_XMODEL_SURFS, m_xmodel_surfs, XModelSurfs); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_XMODEL, m_xmodel, XModel); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MATERIAL, m_material, Material); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_PIXELSHADER, m_material_pixel_shader, MaterialPixelShader); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_VERTEXSHADER, m_material_vertex_shader, MaterialVertexShader); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_VERTEXDECL, m_material_vertex_decl, MaterialVertexDeclaration); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_TECHNIQUE_SET, m_technique_set, MaterialTechniqueSet); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_IMAGE, m_image, GfxImage); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_SOUND, m_sound, snd_alias_list_t); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_SOUND_CURVE, m_sound_curve, SndCurve); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LOADED_SOUND, m_loaded_sound, LoadedSound); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_CLIPMAP_SP, m_clip_map, clipMap_t); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_CLIPMAP_MP, m_clip_map, clipMap_t); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_COMWORLD, m_com_world, ComWorld); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_GAMEWORLD_SP, m_game_world_sp, GameWorldSp); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_GAMEWORLD_MP, m_game_world_mp, GameWorldMp); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MAP_ENTS, m_map_ents, MapEnts); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FXWORLD, m_fx_world, FxWorld); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_GFXWORLD, m_gfx_world, GfxWorld); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def, GfxLightDef); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FONT, m_font, Font_s); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MENULIST, m_menu_list, MenuList); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MENU, m_menu_def, menuDef_t); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, LocalizeEntry); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_WEAPON, m_weapon, WeaponCompleteDef); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals, SndDriverGlobals); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FX, m_fx, FxEffectDef); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_IMPACT_FX, m_fx_impact_table, FxImpactTable); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_RAWFILE, m_raw_file, RawFile); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_STRINGTABLE, m_string_table, StringTable); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LEADERBOARD, m_leaderboard, LeaderboardDef); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_STRUCTURED_DATA_DEF, m_structed_data_def_set, StructuredDataDefSet); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_TRACER, m_tracer, TracerDef); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_VEHICLE, m_vehicle, VehicleDef); + // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_ADDON_MAP_ENTS, m_addon_map_ents, AddonMapEnts); default: assert(type >= 0 && type < ASSET_TYPE_COUNT); @@ -333,55 +288,44 @@ XAssetInfoGeneric* GameAssetPoolIW4::AddAsset(asset_type_t type, std::string nam switch (xAsset.type) { - /*CASE_ADD_TO_POOL(ASSET_TYPE_PHYSPRESET, m_phys_preset, physPreset); - CASE_ADD_TO_POOL(ASSET_TYPE_PHYSCONSTRAINTS, m_phys_constraints, physConstraints); - CASE_ADD_TO_POOL(ASSET_TYPE_DESTRUCTIBLEDEF, m_destructible_def, destructibleDef); + CASE_ADD_TO_POOL(ASSET_TYPE_PHYSPRESET, m_phys_preset, physPreset); + CASE_ADD_TO_POOL(ASSET_TYPE_PHYSCOLLMAP, m_phys_collmap, physCollmap); CASE_ADD_TO_POOL(ASSET_TYPE_XANIMPARTS, m_xanim_parts, parts); - CASE_ADD_TO_POOL(ASSET_TYPE_XMODEL, m_xmodel, model); - CASE_ADD_TO_POOL(ASSET_TYPE_MATERIAL, m_material, material); - CASE_ADD_TO_POOL(ASSET_TYPE_TECHNIQUE_SET, m_technique_set, techniqueSet); - CASE_ADD_TO_POOL(ASSET_TYPE_IMAGE, m_image, image); - CASE_ADD_TO_POOL(ASSET_TYPE_SOUND, m_sound_bank, sound); - CASE_ADD_TO_POOL(ASSET_TYPE_SOUND_PATCH, m_sound_patch, soundPatch); - CASE_ADD_TO_POOL(ASSET_TYPE_CLIPMAP, m_clip_map, clipMap); - CASE_ADD_TO_POOL(ASSET_TYPE_CLIPMAP_PVS, m_clip_map, clipMap); - CASE_ADD_TO_POOL(ASSET_TYPE_COMWORLD, m_com_world, comWorld); - CASE_ADD_TO_POOL(ASSET_TYPE_GAMEWORLD_SP, m_game_world_sp, gameWorldSp); - CASE_ADD_TO_POOL(ASSET_TYPE_GAMEWORLD_MP, m_game_world_mp, gameWorldMp); - CASE_ADD_TO_POOL(ASSET_TYPE_MAP_ENTS, m_map_ents, mapEnts); - CASE_ADD_TO_POOL(ASSET_TYPE_GFXWORLD, m_gfx_world, gfxWorld); - CASE_ADD_TO_POOL(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def, lightDef); - CASE_ADD_TO_POOL(ASSET_TYPE_FONT, m_font, font); - CASE_ADD_TO_POOL(ASSET_TYPE_FONTICON, m_font_icon, fontIcon); - CASE_ADD_TO_POOL(ASSET_TYPE_MENULIST, m_menu_list, menuList); - CASE_ADD_TO_POOL(ASSET_TYPE_MENU, m_menu_def, menu); - CASE_ADD_TO_POOL(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, localize); - CASE_ADD_TO_POOL(ASSET_TYPE_WEAPON, m_weapon, weapon); - CASE_ADD_TO_POOL(ASSET_TYPE_ATTACHMENT, m_attachment, attachment); - CASE_ADD_TO_POOL(ASSET_TYPE_ATTACHMENT_UNIQUE, m_attachment_unique, attachmentUnique); - CASE_ADD_TO_POOL(ASSET_TYPE_WEAPON_CAMO, m_camo, weaponCamo); - CASE_ADD_TO_POOL(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals, sndDriverGlobals); - CASE_ADD_TO_POOL(ASSET_TYPE_FX, m_fx, fx); - CASE_ADD_TO_POOL(ASSET_TYPE_IMPACT_FX, m_fx_impact_table, impactFx); - CASE_ADD_TO_POOL(ASSET_TYPE_RAWFILE, m_raw_file, rawfile); - CASE_ADD_TO_POOL(ASSET_TYPE_STRINGTABLE, m_string_table, stringTable); - CASE_ADD_TO_POOL(ASSET_TYPE_LEADERBOARD, m_leaderboard, leaderboardDef); - CASE_ADD_TO_POOL(ASSET_TYPE_XGLOBALS, m_xglobals, xGlobals); - CASE_ADD_TO_POOL(ASSET_TYPE_DDL, m_ddl, ddlRoot); - CASE_ADD_TO_POOL(ASSET_TYPE_GLASSES, m_glasses, glasses); - CASE_ADD_TO_POOL(ASSET_TYPE_EMBLEMSET, m_emblem_set, emblemSet); - CASE_ADD_TO_POOL(ASSET_TYPE_SCRIPTPARSETREE, m_script, scriptParseTree); - CASE_ADD_TO_POOL(ASSET_TYPE_KEYVALUEPAIRS, m_key_value_pairs, keyValuePairs); - CASE_ADD_TO_POOL(ASSET_TYPE_VEHICLEDEF, m_vehicle, vehicleDef); - CASE_ADD_TO_POOL(ASSET_TYPE_MEMORYBLOCK, m_memory_block, memoryBlock); - CASE_ADD_TO_POOL(ASSET_TYPE_ADDON_MAP_ENTS, m_addon_map_ents, addonMapEnts); - CASE_ADD_TO_POOL(ASSET_TYPE_TRACER, m_tracer, tracerDef); - CASE_ADD_TO_POOL(ASSET_TYPE_SKINNEDVERTS, m_skinned_verts, skinnedVertsDef); - CASE_ADD_TO_POOL(ASSET_TYPE_QDB, m_qdb, qdb); - CASE_ADD_TO_POOL(ASSET_TYPE_SLUG, m_slug, slug); - CASE_ADD_TO_POOL(ASSET_TYPE_FOOTSTEP_TABLE, m_footstep_table, footstepTableDef); - CASE_ADD_TO_POOL(ASSET_TYPE_FOOTSTEPFX_TABLE, m_footstep_fx_table, footstepFXTableDef); - CASE_ADD_TO_POOL(ASSET_TYPE_ZBARRIER, m_zbarrier, zbarrierDef);*/ + // CASE_ADD_TO_POOL(ASSET_TYPE_XMODEL_SURFS, m_xmodel_surfs, modelSurfs); + // CASE_ADD_TO_POOL(ASSET_TYPE_XMODEL, m_xmodel, model); + // CASE_ADD_TO_POOL(ASSET_TYPE_MATERIAL, m_material, material); + // CASE_ADD_TO_POOL(ASSET_TYPE_PIXELSHADER, m_material_pixel_shader, pixelShader); + // CASE_ADD_TO_POOL(ASSET_TYPE_VERTEXSHADER, m_material_vertex_shader, vertexShader); + // CASE_ADD_TO_POOL(ASSET_TYPE_VERTEXDECL, m_material_vertex_decl, vertexDecl); + // CASE_ADD_TO_POOL(ASSET_TYPE_TECHNIQUE_SET, m_technique_set, techniqueSet); + // CASE_ADD_TO_POOL(ASSET_TYPE_IMAGE, m_image, image); + // CASE_ADD_TO_POOL(ASSET_TYPE_SOUND, m_sound, sound); + // CASE_ADD_TO_POOL(ASSET_TYPE_SOUND_CURVE, m_sound_curve, sndCurve); + // CASE_ADD_TO_POOL(ASSET_TYPE_LOADED_SOUND, m_loaded_sound, loadSnd); + // CASE_ADD_TO_POOL(ASSET_TYPE_CLIPMAP_SP, m_clip_map, clipMap); + // CASE_ADD_TO_POOL(ASSET_TYPE_CLIPMAP_MP, m_clip_map, clipMap); + // CASE_ADD_TO_POOL(ASSET_TYPE_COMWORLD, m_com_world, comWorld); + // CASE_ADD_TO_POOL(ASSET_TYPE_GAMEWORLD_SP, m_game_world_sp, gameWorldSp); + // CASE_ADD_TO_POOL(ASSET_TYPE_GAMEWORLD_MP, m_game_world_mp, gameWorldMp); + // CASE_ADD_TO_POOL(ASSET_TYPE_MAP_ENTS, m_map_ents, mapEnts); + // CASE_ADD_TO_POOL(ASSET_TYPE_FXWORLD, m_fx_world, fxWorld); + // CASE_ADD_TO_POOL(ASSET_TYPE_GFXWORLD, m_gfx_world, gfxWorld); + // CASE_ADD_TO_POOL(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def, lightDef); + // CASE_ADD_TO_POOL(ASSET_TYPE_FONT, m_font, font); + // CASE_ADD_TO_POOL(ASSET_TYPE_MENULIST, m_menu_list, menuList); + // CASE_ADD_TO_POOL(ASSET_TYPE_MENU, m_menu_def, menu); + // CASE_ADD_TO_POOL(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, localize); + // CASE_ADD_TO_POOL(ASSET_TYPE_WEAPON, m_weapon, weapon); + // CASE_ADD_TO_POOL(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals, sndDriverGlobals); + // CASE_ADD_TO_POOL(ASSET_TYPE_FX, m_fx, fx); + // CASE_ADD_TO_POOL(ASSET_TYPE_IMPACT_FX, m_fx_impact_table, impactFx); + // CASE_ADD_TO_POOL(ASSET_TYPE_RAWFILE, m_raw_file, rawfile); + // CASE_ADD_TO_POOL(ASSET_TYPE_STRINGTABLE, m_string_table, stringTable); + // CASE_ADD_TO_POOL(ASSET_TYPE_LEADERBOARD, m_leaderboard, leaderboardDef); + // CASE_ADD_TO_POOL(ASSET_TYPE_STRUCTURED_DATA_DEF, m_structed_data_def_set, structuredDataDefSet); + // CASE_ADD_TO_POOL(ASSET_TYPE_TRACER, m_tracer, tracerDef); + // CASE_ADD_TO_POOL(ASSET_TYPE_VEHICLE, m_vehicle, vehDef); + // CASE_ADD_TO_POOL(ASSET_TYPE_ADDON_MAP_ENTS, m_addon_map_ents, addonMapEnts); default: assert(false); @@ -405,55 +349,44 @@ XAssetInfoGeneric* GameAssetPoolIW4::GetAsset(const asset_type_t type, std::stri switch (type) { - /*CASE_GET_ASSET(ASSET_TYPE_PHYSPRESET, m_phys_preset); - CASE_GET_ASSET(ASSET_TYPE_PHYSCONSTRAINTS, m_phys_constraints); - CASE_GET_ASSET(ASSET_TYPE_DESTRUCTIBLEDEF, m_destructible_def); + CASE_GET_ASSET(ASSET_TYPE_PHYSPRESET, m_phys_preset); + CASE_GET_ASSET(ASSET_TYPE_PHYSCOLLMAP, m_phys_collmap); CASE_GET_ASSET(ASSET_TYPE_XANIMPARTS, m_xanim_parts); - CASE_GET_ASSET(ASSET_TYPE_XMODEL, m_xmodel); - CASE_GET_ASSET(ASSET_TYPE_MATERIAL, m_material); - CASE_GET_ASSET(ASSET_TYPE_TECHNIQUE_SET, m_technique_set); - CASE_GET_ASSET(ASSET_TYPE_IMAGE, m_image); - CASE_GET_ASSET(ASSET_TYPE_SOUND, m_sound_bank); - CASE_GET_ASSET(ASSET_TYPE_SOUND_PATCH, m_sound_patch); - CASE_GET_ASSET(ASSET_TYPE_CLIPMAP, m_clip_map); - CASE_GET_ASSET(ASSET_TYPE_CLIPMAP_PVS, m_clip_map); - CASE_GET_ASSET(ASSET_TYPE_COMWORLD, m_com_world); - CASE_GET_ASSET(ASSET_TYPE_GAMEWORLD_SP, m_game_world_sp); - CASE_GET_ASSET(ASSET_TYPE_GAMEWORLD_MP, m_game_world_mp); - CASE_GET_ASSET(ASSET_TYPE_MAP_ENTS, m_map_ents); - CASE_GET_ASSET(ASSET_TYPE_GFXWORLD, m_gfx_world); - CASE_GET_ASSET(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def); - CASE_GET_ASSET(ASSET_TYPE_FONT, m_font); - CASE_GET_ASSET(ASSET_TYPE_FONTICON, m_font_icon); - CASE_GET_ASSET(ASSET_TYPE_MENULIST, m_menu_list); - CASE_GET_ASSET(ASSET_TYPE_MENU, m_menu_def); - CASE_GET_ASSET(ASSET_TYPE_LOCALIZE_ENTRY, m_localize); - CASE_GET_ASSET(ASSET_TYPE_WEAPON, m_weapon); - CASE_GET_ASSET(ASSET_TYPE_ATTACHMENT, m_attachment); - CASE_GET_ASSET(ASSET_TYPE_ATTACHMENT_UNIQUE, m_attachment_unique); - CASE_GET_ASSET(ASSET_TYPE_WEAPON_CAMO, m_camo); - CASE_GET_ASSET(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals); - CASE_GET_ASSET(ASSET_TYPE_FX, m_fx); - CASE_GET_ASSET(ASSET_TYPE_IMPACT_FX, m_fx_impact_table); - CASE_GET_ASSET(ASSET_TYPE_RAWFILE, m_raw_file); - CASE_GET_ASSET(ASSET_TYPE_STRINGTABLE, m_string_table); - CASE_GET_ASSET(ASSET_TYPE_LEADERBOARD, m_leaderboard); - CASE_GET_ASSET(ASSET_TYPE_XGLOBALS, m_xglobals); - CASE_GET_ASSET(ASSET_TYPE_DDL, m_ddl); - CASE_GET_ASSET(ASSET_TYPE_GLASSES, m_glasses); - CASE_GET_ASSET(ASSET_TYPE_EMBLEMSET, m_emblem_set); - CASE_GET_ASSET(ASSET_TYPE_SCRIPTPARSETREE, m_script); - CASE_GET_ASSET(ASSET_TYPE_KEYVALUEPAIRS, m_key_value_pairs); - CASE_GET_ASSET(ASSET_TYPE_VEHICLEDEF, m_vehicle); - CASE_GET_ASSET(ASSET_TYPE_MEMORYBLOCK, m_memory_block); - CASE_GET_ASSET(ASSET_TYPE_ADDON_MAP_ENTS, m_addon_map_ents); - CASE_GET_ASSET(ASSET_TYPE_TRACER, m_tracer); - CASE_GET_ASSET(ASSET_TYPE_SKINNEDVERTS, m_skinned_verts); - CASE_GET_ASSET(ASSET_TYPE_QDB, m_qdb); - CASE_GET_ASSET(ASSET_TYPE_SLUG, m_slug); - CASE_GET_ASSET(ASSET_TYPE_FOOTSTEP_TABLE, m_footstep_table); - CASE_GET_ASSET(ASSET_TYPE_FOOTSTEPFX_TABLE, m_footstep_fx_table); - CASE_GET_ASSET(ASSET_TYPE_ZBARRIER, m_zbarrier);*/ + // CASE_GET_ASSET(ASSET_TYPE_XMODEL_SURFS, m_xmodel_surfs); + // CASE_GET_ASSET(ASSET_TYPE_XMODEL, m_xmodel); + // CASE_GET_ASSET(ASSET_TYPE_MATERIAL, m_material); + // CASE_GET_ASSET(ASSET_TYPE_PIXELSHADER, m_material_pixel_shader); + // CASE_GET_ASSET(ASSET_TYPE_VERTEXSHADER, m_material_vertex_shader); + // CASE_GET_ASSET(ASSET_TYPE_VERTEXDECL, m_material_vertex_decl); + // CASE_GET_ASSET(ASSET_TYPE_TECHNIQUE_SET, m_technique_set); + // CASE_GET_ASSET(ASSET_TYPE_IMAGE, m_image); + // CASE_GET_ASSET(ASSET_TYPE_SOUND, m_sound); + // CASE_GET_ASSET(ASSET_TYPE_SOUND_CURVE, m_sound_curve); + // CASE_GET_ASSET(ASSET_TYPE_LOADED_SOUND, m_loaded_sound); + // CASE_GET_ASSET(ASSET_TYPE_CLIPMAP_SP, m_clip_map); + // CASE_GET_ASSET(ASSET_TYPE_CLIPMAP_MP, m_clip_map); + // CASE_GET_ASSET(ASSET_TYPE_COMWORLD, m_com_world); + // CASE_GET_ASSET(ASSET_TYPE_GAMEWORLD_SP, m_game_world_sp); + // CASE_GET_ASSET(ASSET_TYPE_GAMEWORLD_MP, m_game_world_mp); + // CASE_GET_ASSET(ASSET_TYPE_MAP_ENTS, m_map_ents); + // CASE_GET_ASSET(ASSET_TYPE_FXWORLD, m_fx_world); + // CASE_GET_ASSET(ASSET_TYPE_GFXWORLD, m_gfx_world); + // CASE_GET_ASSET(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def); + // CASE_GET_ASSET(ASSET_TYPE_FONT, m_font); + // CASE_GET_ASSET(ASSET_TYPE_MENULIST, m_menu_list); + // CASE_GET_ASSET(ASSET_TYPE_MENU, m_menu_def); + // CASE_GET_ASSET(ASSET_TYPE_LOCALIZE_ENTRY, m_localize); + // CASE_GET_ASSET(ASSET_TYPE_WEAPON, m_weapon); + // CASE_GET_ASSET(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals); + // CASE_GET_ASSET(ASSET_TYPE_FX, m_fx); + // CASE_GET_ASSET(ASSET_TYPE_IMPACT_FX, m_fx_impact_table); + // CASE_GET_ASSET(ASSET_TYPE_RAWFILE, m_raw_file); + // CASE_GET_ASSET(ASSET_TYPE_STRINGTABLE, m_string_table); + // CASE_GET_ASSET(ASSET_TYPE_LEADERBOARD, m_leaderboard); + // CASE_GET_ASSET(ASSET_TYPE_STRUCTURED_DATA_DEF, m_structed_data_def_set); + // CASE_GET_ASSET(ASSET_TYPE_TRACER, m_tracer); + // CASE_GET_ASSET(ASSET_TYPE_VEHICLE, m_vehicle); + // CASE_GET_ASSET(ASSET_TYPE_ADDON_MAP_ENTS, m_addon_map_ents); default: assert(false); diff --git a/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h b/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h index 2566da53..0e9bf406 100644 --- a/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h +++ b/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h @@ -1,5 +1,7 @@ #pragma once +#include + #include "Pool/IZoneAssetPools.h" #include "Pool/AssetPool.h" #include "IW4.h" @@ -13,57 +15,46 @@ class GameAssetPoolIW4 final : public IZoneAssetPools static const std::string ASSET_TYPE_NAMES[]; public: - /*AssetPool* m_phys_preset; - AssetPool* m_phys_constraints; - AssetPool* m_destructible_def; - AssetPool* m_xanim_parts; - AssetPool* m_xmodel; - AssetPool* m_material; - AssetPool* m_technique_set; - AssetPool* m_image; - AssetPool* m_sound_bank; - AssetPool* m_sound_patch; - AssetPool* m_clip_map; - AssetPool* m_com_world; - AssetPool* m_game_world_sp; - AssetPool* m_game_world_mp; - AssetPool* m_map_ents; - AssetPool* m_gfx_world; - AssetPool* m_gfx_light_def; - AssetPool* m_font; - AssetPool* m_font_icon; - AssetPool* m_menu_list; - AssetPool* m_menu_def; - AssetPool* m_localize; - AssetPool* m_weapon; - AssetPool* m_attachment; - AssetPool* m_attachment_unique; - AssetPool* m_camo; - AssetPool* m_snd_driver_globals; - AssetPool* m_fx; - AssetPool* m_fx_impact_table; - AssetPool* m_raw_file; - AssetPool* m_string_table; - AssetPool* m_leaderboard; - AssetPool* m_xglobals; - AssetPool* m_ddl; - AssetPool* m_glasses; - AssetPool* m_emblem_set; - AssetPool* m_script; - AssetPool* m_key_value_pairs; - AssetPool* m_vehicle; - AssetPool* m_memory_block; - AssetPool* m_addon_map_ents; - AssetPool* m_tracer; - AssetPool* m_skinned_verts; - AssetPool* m_qdb; - AssetPool* m_slug; - AssetPool* m_footstep_table; - AssetPool* m_footstep_fx_table; - AssetPool* m_zbarrier;*/ + std::unique_ptr> m_phys_preset; + std::unique_ptr> m_phys_collmap; + std::unique_ptr> m_xanim_parts; + // std::unique_ptr> m_xmodel_surfs; + // std::unique_ptr> m_xmodel; + // std::unique_ptr> m_material; + // std::unique_ptr> m_material_pixel_shader; + // std::unique_ptr> m_material_vertex_shader; + // std::unique_ptr> m_material_vertex_decl; + // std::unique_ptr> m_technique_set; + // std::unique_ptr> m_image; + // std::unique_ptr> m_sound; + // std::unique_ptr> m_sound_curve; + // std::unique_ptr> m_loaded_sound; + // std::unique_ptr> m_clip_map; + // std::unique_ptr> m_com_world; + // std::unique_ptr> m_game_world_sp; + // std::unique_ptr> m_game_world_mp; + // std::unique_ptr> m_map_ents; + // std::unique_ptr> m_fx_world; + // std::unique_ptr> m_gfx_world; + // std::unique_ptr> m_gfx_light_def; + // std::unique_ptr> m_font; + // std::unique_ptr> m_menu_list; + // std::unique_ptr> m_menu_def; + // std::unique_ptr> m_localize; + // std::unique_ptr> m_weapon; + // std::unique_ptr> m_snd_driver_globals; + // std::unique_ptr> m_fx; + // std::unique_ptr> m_fx_impact_table; + // std::unique_ptr> m_raw_file; + // std::unique_ptr> m_string_table; + // std::unique_ptr> m_leaderboard; + // std::unique_ptr> m_structed_data_def_set; + // std::unique_ptr> m_tracer; + // std::unique_ptr> m_vehicle; + // std::unique_ptr> m_addon_map_ents; explicit GameAssetPoolIW4(int priority); - ~GameAssetPoolIW4() override; + ~GameAssetPoolIW4() override = default; void InitPoolStatic(asset_type_t type, size_t capacity) override; void InitPoolDynamic(asset_type_t type) override; diff --git a/src/ZoneCommon/Game/IW4/IW4_Assets.h b/src/ZoneCommon/Game/IW4/IW4_Assets.h index bb93fa40..f55c4786 100644 --- a/src/ZoneCommon/Game/IW4/IW4_Assets.h +++ b/src/ZoneCommon/Game/IW4/IW4_Assets.h @@ -1,8 +1,12 @@ #pragma once +#ifndef __IW4_ASSETS_H +#define __IW4_ASSETS_H + +#ifndef __zonecodegenerator namespace IW4 { - +#endif enum XAssetType { ASSET_TYPE_PHYSPRESET = 0x0, @@ -70,9 +74,47 @@ namespace IW4 MAX_XFILE_COUNT, }; + struct PhysPreset; + struct PhysCollmap; + struct XAnimParts; + struct XModelSurfs; + struct XModel; + struct Material; + struct MaterialPixelShader; + struct MaterialVertexShader; + struct MaterialVertexDeclaration; + struct MaterialTechniqueSet; + struct GfxImage; + struct snd_alias_list_t; + struct SndCurve; + struct LoadedSound; + struct clipMap_t; + struct ComWorld; + struct GameWorldSp; + struct GameWorldMp; + struct MapEnts; + struct FxWorld; + struct GfxWorld; + struct GfxLightDef; + struct Font_s; + struct MenuList; + struct menuDef_t; + struct LocalizeEntry; + struct WeaponCompleteDef; + struct SndDriverGlobals; + struct FxEffectDef; + struct FxImpactTable; + struct RawFile; + struct StringTable; + struct LeaderboardDef; + struct StructuredDataDefSet; + struct TracerDef; + struct VehicleDef; + struct AddonMapEnts; + union XAssetHeader { - /*PhysPreset* physPreset; + PhysPreset* physPreset; PhysCollmap* physCollmap; XAnimParts* parts; XModelSurfs* modelSurfs; @@ -108,7 +150,218 @@ namespace IW4 StructuredDataDefSet* structuredDataDefSet; TracerDef* tracerDef; VehicleDef* vehDef; - AddonMapEnts* addonMapEnts;*/ + AddonMapEnts* addonMapEnts; void* data; }; -} \ No newline at end of file + + typedef char cbrushedge_t; + typedef float vec3_t[3]; + + struct PhysPreset + { + const char* name; + int type; + float mass; + float bounce; + float friction; + float bulletForceScale; + float explosiveForceScale; + const char* sndAliasPrefix; + float piecesSpreadFraction; + float piecesUpwardVelocity; + bool tempDefaultToCylinder; + bool perSurfaceSndAlias; + }; + + struct Bounds + { + float midPoint[3]; + float halfSize[3]; + }; + + struct cplane_s + { + float normal[3]; + float dist; + char type; + char pad[3]; + }; + + struct cbrushside_t + { + cplane_s* plane; + unsigned __int16 materialNum; + char firstAdjacentSideOffset; + char edgeCount; + }; + + struct cbrushWrapper_t + { + unsigned __int16 numsides; + unsigned __int16 glassPieceIndex; + cbrushside_t* sides; + cbrushedge_t* baseAdjacentSide; + __int16 axialMaterialNum[2][3]; + char firstAdjacentSideOffsets[2][3]; + char edgeCount[2][3]; + }; + + struct BrushWrapper + { + Bounds bounds; + cbrushWrapper_t brush; + int totalEdgeCount; + cplane_s* planes; + }; + + struct PhysGeomInfo + { + BrushWrapper* brushWrapper; + int type; + float orientation[3][3]; + Bounds bounds; + }; + + struct PhysMass + { + float centerOfMass[3]; + float momentsOfInertia[3]; + float productsOfInertia[3]; + }; + + struct PhysCollmap + { + const char* name; + unsigned int count; + PhysGeomInfo* geoms; + PhysMass mass; + Bounds bounds; + }; + + union XAnimIndices + { + char* _1; + unsigned __int16* _2; + void* data; + }; + + struct XAnimNotifyInfo + { + unsigned __int16 name; + float time; + }; + + union XAnimDynamicFrames + { + char(*_1)[3]; + unsigned __int16(*_2)[3]; + }; + + union XAnimDynamicIndices + { + char _1[1]; + unsigned __int16 _2[1]; + }; + + struct __declspec(align(4)) XAnimPartTransFrames + { + float mins[3]; + float size[3]; + XAnimDynamicFrames frames; + XAnimDynamicIndices indices; + }; + + union XAnimPartTransData + { + XAnimPartTransFrames frames; + //float frame0[3]; + vec3_t frame0; + }; + + struct XAnimPartTrans + { + unsigned __int16 size; + char smallTrans; + XAnimPartTransData u; + }; + + struct __declspec(align(4)) XAnimDeltaPartQuatDataFrames2 + { + __int16(*frames)[2]; + XAnimDynamicIndices indices; + }; + + union XAnimDeltaPartQuatData2 + { + XAnimDeltaPartQuatDataFrames2 frames; + __int16 frame0[2]; + }; + + struct XAnimDeltaPartQuat2 + { + unsigned __int16 size; + XAnimDeltaPartQuatData2 u; + }; + + struct XAnimDeltaPartQuatDataFrames + { + __int16(*frames)[4]; + XAnimDynamicIndices indices; + }; + + union XAnimDeltaPartQuatData + { + XAnimDeltaPartQuatDataFrames frames; + __int16 frame0[4]; + }; + + struct XAnimDeltaPartQuat + { + unsigned __int16 size; + XAnimDeltaPartQuatData u; + }; + + struct XAnimDeltaPart + { + XAnimPartTrans* trans; + XAnimDeltaPartQuat2* quat2; + XAnimDeltaPartQuat* quat; + }; + + struct XAnimParts + { + const char* name; + unsigned __int16 dataByteCount; + unsigned __int16 dataShortCount; + unsigned __int16 dataIntCount; + unsigned __int16 randomDataByteCount; + unsigned __int16 randomDataIntCount; + unsigned __int16 numframes; + char flags; + char boneCount[10]; + char notifyCount; + char assetType; + bool isDefault; + unsigned int randomDataShortCount; + unsigned int indexCount; + float framerate; + float frequency; + unsigned __int16* names; + char* dataByte; + __int16* dataShort; + int* dataInt; + __int16* randomDataShort; + char* randomDataByte; + int* randomDataInt; + XAnimIndices indices; + XAnimNotifyInfo* notify; + XAnimDeltaPart* deltaPart; + }; + +#ifndef __zonecodegenerator +} +#endif + +#endif + +// EOF diff --git a/src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp b/src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp index 954d824b..7ed0e5f8 100644 --- a/src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp +++ b/src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp @@ -4,54 +4,43 @@ #include -//#include "Game/T6/XAssets/addonmapents/addonmapents_load_db.h" -//#include "Game/T6/XAssets/clipmap_t/clipmap_t_load_db.h" -//#include "Game/T6/XAssets/comworld/comworld_load_db.h" -//#include "Game/T6/XAssets/ddlroot_t/ddlroot_t_load_db.h" -//#include "Game/T6/XAssets/destructibledef/destructibledef_load_db.h" -//#include "Game/T6/XAssets/emblemset/emblemset_load_db.h" -//#include "Game/T6/XAssets/font_s/font_s_load_db.h" -//#include "Game/T6/XAssets/fonticon/fonticon_load_db.h" -//#include "Game/T6/XAssets/footstepfxtabledef/footstepfxtabledef_load_db.h" -//#include "Game/T6/XAssets/footsteptabledef/footsteptabledef_load_db.h" -//#include "Game/T6/XAssets/fxeffectdef/fxeffectdef_load_db.h" -//#include "Game/T6/XAssets/fximpacttable/fximpacttable_load_db.h" -//#include "Game/T6/XAssets/gameworldmp/gameworldmp_load_db.h" -//#include "Game/T6/XAssets/gameworldsp/gameworldsp_load_db.h" -//#include "Game/T6/XAssets/gfximage/gfximage_load_db.h" -//#include "Game/T6/XAssets/gfxlightdef/gfxlightdef_load_db.h" -//#include "Game/T6/XAssets/gfxworld/gfxworld_load_db.h" -//#include "Game/T6/XAssets/glasses/glasses_load_db.h" -//#include "Game/T6/XAssets/keyvaluepairs/keyvaluepairs_load_db.h" -//#include "Game/T6/XAssets/leaderboarddef/leaderboarddef_load_db.h" -//#include "Game/T6/XAssets/localizeentry/localizeentry_load_db.h" -//#include "Game/T6/XAssets/mapents/mapents_load_db.h" -//#include "Game/T6/XAssets/material/material_load_db.h" -//#include "Game/T6/XAssets/materialtechniqueset/materialtechniqueset_load_db.h" -//#include "Game/T6/XAssets/memoryblock/memoryblock_load_db.h" -//#include "Game/T6/XAssets/menudef_t/menudef_t_load_db.h" -//#include "Game/T6/XAssets/menulist/menulist_load_db.h" -//#include "Game/T6/XAssets/physconstraints/physconstraints_load_db.h" -//#include "Game/T6/XAssets/physpreset/physpreset_load_db.h" -//#include "Game/T6/XAssets/qdb/qdb_load_db.h" -//#include "Game/T6/XAssets/rawfile/rawfile_load_db.h" -//#include "Game/T6/XAssets/scriptparsetree/scriptparsetree_load_db.h" -//#include "Game/T6/XAssets/skinnedvertsdef/skinnedvertsdef_load_db.h" -//#include "Game/T6/XAssets/slug/slug_load_db.h" -//#include "Game/T6/XAssets/sndbank/sndbank_load_db.h" -//#include "Game/T6/XAssets/snddriverglobals/snddriverglobals_load_db.h" -//#include "Game/T6/XAssets/sndpatch/sndpatch_load_db.h" -//#include "Game/T6/XAssets/stringtable/stringtable_load_db.h" -//#include "Game/T6/XAssets/tracerdef/tracerdef_load_db.h" -//#include "Game/T6/XAssets/vehicledef/vehicledef_load_db.h" -//#include "Game/T6/XAssets/weaponattachment/weaponattachment_load_db.h" -//#include "Game/T6/XAssets/weaponattachmentunique/weaponattachmentunique_load_db.h" -//#include "Game/T6/XAssets/weaponcamo/weaponcamo_load_db.h" -//#include "Game/T6/XAssets/weaponvariantdef/weaponvariantdef_load_db.h" -//#include "Game/T6/XAssets/xanimparts/xanimparts_load_db.h" -//#include "Game/T6/XAssets/xglobals/xglobals_load_db.h" -//#include "Game/T6/XAssets/xmodel/xmodel_load_db.h" -//#include "Game/T6/XAssets/zbarrierdef/zbarrierdef_load_db.h" +//#include "Game/IW4/XAssets/addonmapents/addonmapents_load_db.h" +//#include "Game/IW4/XAssets/clipmap_t/clipmap_t_load_db.h" +//#include "Game/IW4/XAssets/comworld/comworld_load_db.h" +//#include "Game/IW4/XAssets/font_s/font_s_load_db.h" +//#include "Game/IW4/XAssets/fxeffectdef/fxeffectdef_load_db.h" +//#include "Game/IW4/XAssets/fximpacttable/fximpacttable_load_db.h" +//#include "Game/IW4/XAssets/fxworld/fxworld_load_db.h" +//#include "Game/IW4/XAssets/gameworldmp/gameworldmp_load_db.h" +//#include "Game/IW4/XAssets/gameworldsp/gameworldsp_load_db.h" +//#include "Game/IW4/XAssets/gfximage/gfximage_load_db.h" +//#include "Game/IW4/XAssets/gfxlightdef/gfxlightdef_load_db.h" +//#include "Game/IW4/XAssets/gfxworld/gfxworld_load_db.h" +//#include "Game/IW4/XAssets/leaderboarddef/leaderboarddef_load_db.h" +//#include "Game/IW4/XAssets/loadedsound/loadedsound_load_db.h" +//#include "Game/IW4/XAssets/localizeentry/localizeentry_load_db.h" +//#include "Game/IW4/XAssets/mapents/mapents_load_db.h" +//#include "Game/IW4/XAssets/material/material_load_db.h" +//#include "Game/IW4/XAssets/materialpixelshader/materialpixelshader_load_db.h" +//#include "Game/IW4/XAssets/materialtechniqueset/materialtechniqueset_load_db.h" +//#include "Game/IW4/XAssets/materialvertexdeclaration/materialvertexdeclaration_load_db.h" +//#include "Game/IW4/XAssets/materialvertexshader/materialvertexshader_load_db.h" +//#include "Game/IW4/XAssets/menudef_t/menudef_t_load_db.h" +//#include "Game/IW4/XAssets/menulist/menulist_load_db.h" +#include "Game/IW4/XAssets/physcollmap/physcollmap_load_db.h" +#include "Game/IW4/XAssets/physpreset/physpreset_load_db.h" +//#include "Game/IW4/XAssets/rawfile/rawfile_load_db.h" +//#include "Game/IW4/XAssets/snd_alias_list_t/snd_alias_list_t_load_db.h" +//#include "Game/IW4/XAssets/sndcurve/sndcurve_load_db.h" +//#include "Game/IW4/XAssets/snddriverglobals/snddriverglobals_load_db.h" +//#include "Game/IW4/XAssets/stringtable/stringtable_load_db.h" +//#include "Game/IW4/XAssets/structureddatadefset/structureddatadefset_load_db.h" +//#include "Game/IW4/XAssets/tracerdef/tracerdef_load_db.h" +//#include "Game/IW4/XAssets/vehicledef/vehicledef_load_db.h" +//#include "Game/IW4/XAssets/weaponcompletedef/weaponcompletedef_load_db.h" +#include "Game/IW4/XAssets/xanimparts/xanimparts_load_db.h" +//#include "Game/IW4/XAssets/xmodel/xmodel_load_db.h" +//#include "Game/IW4/XAssets/xmodelsurfs/xmodelsurfs_load_db.h" using namespace IW4; @@ -112,55 +101,44 @@ void ContentLoaderIW4::LoadXAsset(const bool atStreamStart) switch (varXAsset->type) { - //LOAD_ASSET(ASSET_TYPE_PHYSPRESET, PhysPreset, physPreset); - //LOAD_ASSET(ASSET_TYPE_PHYSCONSTRAINTS, PhysConstraints, physConstraints); - //LOAD_ASSET(ASSET_TYPE_DESTRUCTIBLEDEF, DestructibleDef, destructibleDef); - //LOAD_ASSET(ASSET_TYPE_XANIMPARTS, XAnimParts, parts); - //LOAD_ASSET(ASSET_TYPE_XMODEL, XModel, model); - //LOAD_ASSET(ASSET_TYPE_MATERIAL, Material, material); - //LOAD_ASSET(ASSET_TYPE_TECHNIQUE_SET, MaterialTechniqueSet, techniqueSet); - //LOAD_ASSET(ASSET_TYPE_IMAGE, GfxImage, image); - //LOAD_ASSET(ASSET_TYPE_SOUND, SndBank, sound); - //LOAD_ASSET(ASSET_TYPE_SOUND_PATCH, SndPatch, soundPatch); - //LOAD_ASSET(ASSET_TYPE_CLIPMAP, clipMap_t, clipMap); - //LOAD_ASSET(ASSET_TYPE_CLIPMAP_PVS, clipMap_t, clipMap); - //LOAD_ASSET(ASSET_TYPE_COMWORLD, ComWorld, comWorld); - //LOAD_ASSET(ASSET_TYPE_GAMEWORLD_SP, GameWorldSp, gameWorldSp); - //LOAD_ASSET(ASSET_TYPE_GAMEWORLD_MP, GameWorldMp, gameWorldMp); - //LOAD_ASSET(ASSET_TYPE_MAP_ENTS, MapEnts, mapEnts); - //LOAD_ASSET(ASSET_TYPE_GFXWORLD, GfxWorld, gfxWorld); - //LOAD_ASSET(ASSET_TYPE_LIGHT_DEF, GfxLightDef, lightDef); - //LOAD_ASSET(ASSET_TYPE_FONT, Font_s, font); - //LOAD_ASSET(ASSET_TYPE_FONTICON, FontIcon, fontIcon); - //LOAD_ASSET(ASSET_TYPE_MENULIST, MenuList, menuList); - //LOAD_ASSET(ASSET_TYPE_MENU, menuDef_t, menu); - //LOAD_ASSET(ASSET_TYPE_LOCALIZE_ENTRY, LocalizeEntry, localize); - //LOAD_ASSET(ASSET_TYPE_WEAPON, WeaponVariantDef, weapon); - //LOAD_ASSET(ASSET_TYPE_ATTACHMENT, WeaponAttachment, attachment); - //LOAD_ASSET(ASSET_TYPE_ATTACHMENT_UNIQUE, WeaponAttachmentUnique, attachmentUnique); - //LOAD_ASSET(ASSET_TYPE_WEAPON_CAMO, WeaponCamo, weaponCamo); - //LOAD_ASSET(ASSET_TYPE_SNDDRIVER_GLOBALS, SndDriverGlobals, sndDriverGlobals); - //LOAD_ASSET(ASSET_TYPE_FX, FxEffectDef, fx); - //LOAD_ASSET(ASSET_TYPE_IMPACT_FX, FxImpactTable, impactFx); - //LOAD_ASSET(ASSET_TYPE_RAWFILE, RawFile, rawfile); - //LOAD_ASSET(ASSET_TYPE_STRINGTABLE, StringTable, stringTable); - //LOAD_ASSET(ASSET_TYPE_LEADERBOARD, LeaderboardDef, leaderboardDef); - //LOAD_ASSET(ASSET_TYPE_XGLOBALS, XGlobals, xGlobals); - //LOAD_ASSET(ASSET_TYPE_DDL, ddlRoot_t, ddlRoot); - //LOAD_ASSET(ASSET_TYPE_GLASSES, Glasses, glasses); - //LOAD_ASSET(ASSET_TYPE_EMBLEMSET, EmblemSet, emblemSet); - //LOAD_ASSET(ASSET_TYPE_SCRIPTPARSETREE, ScriptParseTree, scriptParseTree); - //LOAD_ASSET(ASSET_TYPE_KEYVALUEPAIRS, KeyValuePairs, keyValuePairs); - //LOAD_ASSET(ASSET_TYPE_VEHICLEDEF, VehicleDef, vehicleDef); - //// LOAD_ASSET(ASSET_TYPE_MEMORYBLOCK, MemoryBlock, memoryBlock); - //LOAD_ASSET(ASSET_TYPE_ADDON_MAP_ENTS, AddonMapEnts, addonMapEnts); - //LOAD_ASSET(ASSET_TYPE_TRACER, TracerDef, tracerDef); - //LOAD_ASSET(ASSET_TYPE_SKINNEDVERTS, SkinnedVertsDef, skinnedVertsDef); - //LOAD_ASSET(ASSET_TYPE_QDB, Qdb, qdb); - //LOAD_ASSET(ASSET_TYPE_SLUG, Slug, slug); - //LOAD_ASSET(ASSET_TYPE_FOOTSTEP_TABLE, FootstepTableDef, footstepTableDef); - //LOAD_ASSET(ASSET_TYPE_FOOTSTEPFX_TABLE, FootstepFXTableDef, footstepFXTableDef); - //LOAD_ASSET(ASSET_TYPE_ZBARRIER, ZBarrierDef, zbarrierDef); + LOAD_ASSET(ASSET_TYPE_PHYSPRESET, PhysPreset, physPreset); + LOAD_ASSET(ASSET_TYPE_PHYSCOLLMAP, PhysCollmap, physCollmap); + LOAD_ASSET(ASSET_TYPE_XANIMPARTS, XAnimParts, parts); + // LOAD_ASSET(ASSET_TYPE_XMODEL_SURFS, XModelSurfs, modelSurfs); + // LOAD_ASSET(ASSET_TYPE_XMODEL, XModel, model); + // LOAD_ASSET(ASSET_TYPE_MATERIAL, Material, material); + // LOAD_ASSET(ASSET_TYPE_PIXELSHADER, MaterialPixelShader, pixelShader); + // LOAD_ASSET(ASSET_TYPE_VERTEXSHADER, MaterialVertexShader, vertexShader); + // LOAD_ASSET(ASSET_TYPE_VERTEXDECL, MaterialVertexDeclaration, vertexDecl); + // LOAD_ASSET(ASSET_TYPE_TECHNIQUE_SET, MaterialTechniqueSet, techniqueSet); + // LOAD_ASSET(ASSET_TYPE_IMAGE, GfxImage, image); + // LOAD_ASSET(ASSET_TYPE_SOUND, snd_alias_list_t, sound); + // LOAD_ASSET(ASSET_TYPE_SOUND_CURVE, SndCurve, sndCurve); + // LOAD_ASSET(ASSET_TYPE_LOADED_SOUND, LoadedSound, loadSnd); + // LOAD_ASSET(ASSET_TYPE_CLIPMAP_SP, clipMap_t, clipMap); + // LOAD_ASSET(ASSET_TYPE_CLIPMAP_MP, clipMap_t, clipMap); + // LOAD_ASSET(ASSET_TYPE_COMWORLD, ComWorld, comWorld); + // LOAD_ASSET(ASSET_TYPE_GAMEWORLD_SP, GameWorldSp, gameWorldSp); + // LOAD_ASSET(ASSET_TYPE_GAMEWORLD_MP, GameWorldMp, gameWorldMp); + // LOAD_ASSET(ASSET_TYPE_MAP_ENTS, MapEnts, mapEnts); + // LOAD_ASSET(ASSET_TYPE_FXWORLD, FxWorld, fxWorld); + // LOAD_ASSET(ASSET_TYPE_GFXWORLD, GfxWorld, gfxWorld); + // LOAD_ASSET(ASSET_TYPE_LIGHT_DEF, GfxLightDef, lightDef); + // LOAD_ASSET(ASSET_TYPE_FONT, Font_s, font); + // LOAD_ASSET(ASSET_TYPE_MENULIST, MenuList, menuList); + // LOAD_ASSET(ASSET_TYPE_MENU, menuDef_t, menu); + // LOAD_ASSET(ASSET_TYPE_LOCALIZE_ENTRY, LocalizeEntry, localize); + // LOAD_ASSET(ASSET_TYPE_WEAPON, WeaponCompleteDef, weapon); + // LOAD_ASSET(ASSET_TYPE_SNDDRIVER_GLOBALS, SndDriverGlobals, sndDriverGlobals); + // LOAD_ASSET(ASSET_TYPE_FX, FxEffectDef, fx); + // LOAD_ASSET(ASSET_TYPE_IMPACT_FX, FxImpactTable, impactFx); + // LOAD_ASSET(ASSET_TYPE_RAWFILE, RawFile, rawfile); + // LOAD_ASSET(ASSET_TYPE_STRINGTABLE, StringTable, stringTable); + // LOAD_ASSET(ASSET_TYPE_LEADERBOARD, LeaderboardDef, leaderboardDef); + // LOAD_ASSET(ASSET_TYPE_STRUCTURED_DATA_DEF, StructuredDataDefSet, structuredDataDefSet); + // LOAD_ASSET(ASSET_TYPE_TRACER, TracerDef, tracerDef); + // LOAD_ASSET(ASSET_TYPE_VEHICLE, VehicleDef, vehDef); + // LOAD_ASSET(ASSET_TYPE_ADDON_MAP_ENTS, AddonMapEnts, addonMapEnts); default: {