Include and exclude asset type dumping configured by command line args

This commit is contained in:
Jan
2021-10-11 18:47:53 +02:00
parent e70cbaa4ce
commit 868bd070d0
21 changed files with 476 additions and 576 deletions

View File

@ -84,35 +84,6 @@ GameAssetPoolIW3::GameAssetPoolIW3(Zone* zone, const int priority)
m_priority(priority)
{
static_assert(std::extent<decltype(ASSET_TYPE_NAMES)>::value == ASSET_TYPE_COUNT);
m_phys_preset = nullptr;
m_xanim_parts = 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_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_fx = nullptr;
m_fx_impact_table = nullptr;
m_raw_file = nullptr;
m_string_table = nullptr;
}
void GameAssetPoolIW3::InitPoolStatic(const asset_type_t type, const size_t capacity)
@ -327,3 +298,13 @@ const char* GameAssetPoolIW3::GetAssetTypeName(const asset_type_t assetType) con
{
return AssetTypeNameByType(assetType);
}
asset_type_t GameAssetPoolIW3::AssetTypeCount()
{
return ASSET_TYPE_COUNT;
}
asset_type_t GameAssetPoolIW3::GetAssetTypeCount() const
{
return AssetTypeCount();
}

View File

@ -53,6 +53,10 @@ public:
void InitPoolDynamic(asset_type_t type) override;
_NODISCARD XAssetInfoGeneric* GetAsset(asset_type_t type, std::string name) const override;
static const char* AssetTypeNameByType(asset_type_t assetType);
_NODISCARD const char* GetAssetTypeName(asset_type_t assetType) const override;
static asset_type_t AssetTypeCount();
_NODISCARD asset_type_t GetAssetTypeCount() const override;
};

View File

@ -104,42 +104,6 @@ GameAssetPoolIW4::GameAssetPoolIW4(Zone* zone, const int priority)
m_priority(priority)
{
assert(std::extent<decltype(ASSET_TYPE_NAMES)>::value == ASSET_TYPE_COUNT);
m_phys_preset = nullptr;
m_phys_collmap = nullptr;
m_xanim_parts = 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_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)
@ -394,3 +358,13 @@ const char* GameAssetPoolIW4::GetAssetTypeName(const asset_type_t assetType) con
{
return AssetTypeNameByType(assetType);
}
asset_type_t GameAssetPoolIW4::AssetTypeCount()
{
return ASSET_TYPE_COUNT;
}
asset_type_t GameAssetPoolIW4::GetAssetTypeCount() const
{
return AssetTypeCount();
}

View File

@ -2,6 +2,7 @@
#include <memory>
#include "Utils/ClassUtils.h"
#include "Pool/ZoneAssetPools.h"
#include "Pool/AssetPool.h"
#include "Game/IW4/IW4.h"
@ -59,7 +60,11 @@ public:
void InitPoolStatic(asset_type_t type, size_t capacity) override;
void InitPoolDynamic(asset_type_t type) override;
XAssetInfoGeneric* GetAsset(asset_type_t type, std::string name) const override;
_NODISCARD XAssetInfoGeneric* GetAsset(asset_type_t type, std::string name) const override;
static const char* AssetTypeNameByType(asset_type_t assetType);
const char* GetAssetTypeName(asset_type_t assetType) const override;
_NODISCARD const char* GetAssetTypeName(asset_type_t assetType) const override;
static asset_type_t AssetTypeCount();
_NODISCARD asset_type_t GetAssetTypeCount() const override;
};

View File

@ -110,47 +110,6 @@ GameAssetPoolIW5::GameAssetPoolIW5(Zone* zone, const int priority)
m_priority(priority)
{
assert(std::extent<decltype(ASSET_TYPE_NAMES)>::value == ASSET_TYPE_COUNT);
m_phys_preset = nullptr;
m_phys_collmap = nullptr;
m_xanim_parts = nullptr;
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_glass_world = nullptr;
m_path_data = nullptr;
m_vehicle_track = 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_attachment = nullptr;
m_weapon = nullptr;
m_fx = nullptr;
m_fx_impact_table = nullptr;
m_surface_fx_table = nullptr;
m_raw_file = nullptr;
m_script_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 GameAssetPoolIW5::InitPoolStatic(const asset_type_t type, const size_t capacity)
@ -421,3 +380,13 @@ const char* GameAssetPoolIW5::GetAssetTypeName(const asset_type_t assetType) con
{
return AssetTypeNameByType(assetType);
}
asset_type_t GameAssetPoolIW5::AssetTypeCount()
{
return ASSET_TYPE_COUNT;
}
asset_type_t GameAssetPoolIW5::GetAssetTypeCount() const
{
return AssetTypeCount();
}

View File

@ -64,7 +64,11 @@ public:
void InitPoolStatic(asset_type_t type, size_t capacity) override;
void InitPoolDynamic(asset_type_t type) override;
XAssetInfoGeneric* GetAsset(asset_type_t type, std::string name) const override;
_NODISCARD XAssetInfoGeneric* GetAsset(asset_type_t type, std::string name) const override;
static const char* AssetTypeNameByType(asset_type_t assetType);
const char* GetAssetTypeName(asset_type_t assetType) const override;
_NODISCARD const char* GetAssetTypeName(asset_type_t assetType) const override;
static asset_type_t AssetTypeCount();
_NODISCARD asset_type_t GetAssetTypeCount() const override;
};

View File

@ -60,80 +60,6 @@ GameAssetPoolT5::GameAssetPoolT5(Zone* zone, const int priority)
m_priority(priority)
{
assert(std::extent<decltype(ASSET_TYPE_NAMES)>::value == ASSET_TYPE_COUNT);
m_phys_preset = nullptr;
m_phys_constraints = nullptr;
m_destructible_def = 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_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_pack_index = nullptr;
m_xglobals = nullptr;
m_ddl = nullptr;
m_glasses = nullptr;
m_emblem_set = nullptr;
}
GameAssetPoolT5::~GameAssetPoolT5()
{
#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_menu_list);
DELETE_POOL(m_menu_def);
DELETE_POOL(m_localize);
DELETE_POOL(m_weapon);
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_pack_index);
DELETE_POOL(m_xglobals);
DELETE_POOL(m_ddl);
DELETE_POOL(m_glasses);
DELETE_POOL(m_emblem_set);
#undef DELETE_POOL
}
void GameAssetPoolT5::InitPoolStatic(const asset_type_t type, const size_t capacity)
@ -143,7 +69,7 @@ void GameAssetPoolT5::InitPoolStatic(const asset_type_t type, const size_t capac
{ \
if((poolName) == nullptr && capacity > 0) \
{ \
(poolName) = new AssetPoolStatic<poolType>(capacity, m_priority, (assetType)); \
(poolName) = std::make_unique<AssetPoolStatic<poolType>>(capacity, m_priority, (assetType)); \
} \
break; \
}
@ -199,7 +125,7 @@ void GameAssetPoolT5::InitPoolDynamic(const asset_type_t type)
{ \
if((poolName) == nullptr) \
{ \
(poolName) = new AssetPoolDynamic<poolType>(m_priority, (assetType)); \
(poolName) = std::make_unique<AssetPoolDynamic<poolType>>(m_priority, (assetType)); \
} \
break; \
}
@ -377,3 +303,13 @@ const char* GameAssetPoolT5::GetAssetTypeName(const asset_type_t assetType) cons
{
return AssetTypeNameByType(assetType);
}
asset_type_t GameAssetPoolT5::AssetTypeCount()
{
return ASSET_TYPE_COUNT;
}
asset_type_t GameAssetPoolT5::GetAssetTypeCount() const
{
return AssetTypeCount();
}

View File

@ -1,5 +1,7 @@
#pragma once
#include <memory>
#include "Pool/ZoneAssetPools.h"
#include "Pool/AssetPool.h"
#include "Game/T5/T5.h"
@ -15,46 +17,50 @@ protected:
XAssetInfoGeneric* AddAssetToPool(asset_type_t type, std::string name, void* asset, std::vector<XAssetInfoGeneric*> dependencies, std::vector<scr_string_t> usedScriptStrings, Zone* zone) override;
public:
AssetPool<T5::PhysPreset>* m_phys_preset;
AssetPool<T5::PhysConstraints>* m_phys_constraints;
AssetPool<T5::DestructibleDef>* m_destructible_def;
AssetPool<T5::XAnimParts>* m_xanim_parts;
AssetPool<T5::XModel>* m_xmodel;
AssetPool<T5::Material>* m_material;
AssetPool<T5::MaterialTechniqueSet>* m_technique_set;
AssetPool<T5::GfxImage>* m_image;
AssetPool<T5::SndBank>* m_sound_bank;
AssetPool<T5::SndPatch>* m_sound_patch;
AssetPool<T5::clipMap_t>* m_clip_map;
AssetPool<T5::ComWorld>* m_com_world;
AssetPool<T5::GameWorldSp>* m_game_world_sp;
AssetPool<T5::GameWorldMp>* m_game_world_mp;
AssetPool<T5::MapEnts>* m_map_ents;
AssetPool<T5::GfxWorld>* m_gfx_world;
AssetPool<T5::GfxLightDef>* m_gfx_light_def;
AssetPool<T5::Font_s>* m_font;
AssetPool<T5::MenuList>* m_menu_list;
AssetPool<T5::menuDef_t>* m_menu_def;
AssetPool<T5::LocalizeEntry>* m_localize;
AssetPool<T5::WeaponVariantDef>* m_weapon;
AssetPool<T5::SndDriverGlobals>* m_snd_driver_globals;
AssetPool<T5::FxEffectDef>* m_fx;
AssetPool<T5::FxImpactTable>* m_fx_impact_table;
AssetPool<T5::RawFile>* m_raw_file;
AssetPool<T5::StringTable>* m_string_table;
AssetPool<T5::PackIndex>* m_pack_index;
AssetPool<T5::XGlobals>* m_xglobals;
AssetPool<T5::ddlRoot_t>* m_ddl;
AssetPool<T5::Glasses>* m_glasses;
AssetPool<T5::EmblemSet>* m_emblem_set;
std::unique_ptr<AssetPool<T5::PhysPreset>> m_phys_preset;
std::unique_ptr<AssetPool<T5::PhysConstraints>> m_phys_constraints;
std::unique_ptr<AssetPool<T5::DestructibleDef>> m_destructible_def;
std::unique_ptr<AssetPool<T5::XAnimParts>> m_xanim_parts;
std::unique_ptr<AssetPool<T5::XModel>> m_xmodel;
std::unique_ptr<AssetPool<T5::Material>> m_material;
std::unique_ptr<AssetPool<T5::MaterialTechniqueSet>> m_technique_set;
std::unique_ptr<AssetPool<T5::GfxImage>> m_image;
std::unique_ptr<AssetPool<T5::SndBank>> m_sound_bank;
std::unique_ptr<AssetPool<T5::SndPatch>> m_sound_patch;
std::unique_ptr<AssetPool<T5::clipMap_t>> m_clip_map;
std::unique_ptr<AssetPool<T5::ComWorld>> m_com_world;
std::unique_ptr<AssetPool<T5::GameWorldSp>> m_game_world_sp;
std::unique_ptr<AssetPool<T5::GameWorldMp>> m_game_world_mp;
std::unique_ptr<AssetPool<T5::MapEnts>> m_map_ents;
std::unique_ptr<AssetPool<T5::GfxWorld>> m_gfx_world;
std::unique_ptr<AssetPool<T5::GfxLightDef>> m_gfx_light_def;
std::unique_ptr<AssetPool<T5::Font_s>> m_font;
std::unique_ptr<AssetPool<T5::MenuList>> m_menu_list;
std::unique_ptr<AssetPool<T5::menuDef_t>> m_menu_def;
std::unique_ptr<AssetPool<T5::LocalizeEntry>> m_localize;
std::unique_ptr<AssetPool<T5::WeaponVariantDef>> m_weapon;
std::unique_ptr<AssetPool<T5::SndDriverGlobals>> m_snd_driver_globals;
std::unique_ptr<AssetPool<T5::FxEffectDef>> m_fx;
std::unique_ptr<AssetPool<T5::FxImpactTable>> m_fx_impact_table;
std::unique_ptr<AssetPool<T5::RawFile>> m_raw_file;
std::unique_ptr<AssetPool<T5::StringTable>> m_string_table;
std::unique_ptr<AssetPool<T5::PackIndex>> m_pack_index;
std::unique_ptr<AssetPool<T5::XGlobals>> m_xglobals;
std::unique_ptr<AssetPool<T5::ddlRoot_t>> m_ddl;
std::unique_ptr<AssetPool<T5::Glasses>> m_glasses;
std::unique_ptr<AssetPool<T5::EmblemSet>> m_emblem_set;
GameAssetPoolT5(Zone* zone, int priority);
~GameAssetPoolT5() override;
~GameAssetPoolT5() override = default;
void InitPoolStatic(asset_type_t type, size_t capacity) override;
void InitPoolDynamic(asset_type_t type) override;
XAssetInfoGeneric* GetAsset(asset_type_t type, std::string name) const override;
_NODISCARD XAssetInfoGeneric* GetAsset(asset_type_t type, std::string name) const override;
static const char* AssetTypeNameByType(asset_type_t assetType);
const char* GetAssetTypeName(asset_type_t assetType) const override;
_NODISCARD const char* GetAssetTypeName(asset_type_t assetType) const override;
static asset_type_t AssetTypeCount();
_NODISCARD asset_type_t GetAssetTypeCount() const override;
};

View File

@ -77,112 +77,6 @@ GameAssetPoolT6::GameAssetPoolT6(Zone* zone, const int priority)
m_priority(priority)
{
assert(std::extent<decltype(ASSET_TYPE_NAMES)>::value == ASSET_TYPE_COUNT);
m_phys_preset = nullptr;
m_phys_constraints = nullptr;
m_destructible_def = 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;
}
GameAssetPoolT6::~GameAssetPoolT6()
{
#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
}
void GameAssetPoolT6::InitPoolStatic(const asset_type_t type, const size_t capacity)
@ -192,7 +86,7 @@ void GameAssetPoolT6::InitPoolStatic(const asset_type_t type, const size_t capac
{ \
if((poolName) == nullptr && capacity > 0) \
{ \
(poolName) = new AssetPoolStatic<poolType>(capacity, m_priority, (assetType)); \
(poolName) = std::make_unique<AssetPoolStatic<poolType>>(capacity, m_priority, (assetType)); \
} \
break; \
}
@ -264,7 +158,7 @@ void GameAssetPoolT6::InitPoolDynamic(const asset_type_t type)
{ \
if((poolName) == nullptr) \
{ \
(poolName) = new AssetPoolDynamic<poolType>(m_priority, (assetType)); \
(poolName) = std::make_unique<AssetPoolDynamic<poolType>>(m_priority, (assetType)); \
} \
break; \
}
@ -490,3 +384,13 @@ const char* GameAssetPoolT6::GetAssetTypeName(const asset_type_t assetType) cons
{
return AssetTypeNameByType(assetType);
}
asset_type_t GameAssetPoolT6::AssetTypeCount()
{
return ASSET_TYPE_COUNT;
}
asset_type_t GameAssetPoolT6::GetAssetTypeCount() const
{
return AssetTypeCount();
}

View File

@ -1,5 +1,7 @@
#pragma once
#include <memory>
#include "Pool/ZoneAssetPools.h"
#include "Pool/AssetPool.h"
#include "Game/T6/T6.h"
@ -15,62 +17,66 @@ protected:
XAssetInfoGeneric* AddAssetToPool(asset_type_t type, std::string name, void* asset, std::vector<XAssetInfoGeneric*> dependencies, std::vector<scr_string_t> usedScriptStrings, Zone* zone) override;
public:
AssetPool<T6::PhysPreset>* m_phys_preset;
AssetPool<T6::PhysConstraints>* m_phys_constraints;
AssetPool<T6::DestructibleDef>* m_destructible_def;
AssetPool<T6::XAnimParts>* m_xanim_parts;
AssetPool<T6::XModel>* m_xmodel;
AssetPool<T6::Material>* m_material;
AssetPool<T6::MaterialTechniqueSet>* m_technique_set;
AssetPool<T6::GfxImage>* m_image;
AssetPool<T6::SndBank>* m_sound_bank;
AssetPool<T6::SndPatch>* m_sound_patch;
AssetPool<T6::clipMap_t>* m_clip_map;
AssetPool<T6::ComWorld>* m_com_world;
AssetPool<T6::GameWorldSp>* m_game_world_sp;
AssetPool<T6::GameWorldMp>* m_game_world_mp;
AssetPool<T6::MapEnts>* m_map_ents;
AssetPool<T6::GfxWorld>* m_gfx_world;
AssetPool<T6::GfxLightDef>* m_gfx_light_def;
AssetPool<T6::Font_s>* m_font;
AssetPool<T6::FontIcon>* m_font_icon;
AssetPool<T6::MenuList>* m_menu_list;
AssetPool<T6::menuDef_t>* m_menu_def;
AssetPool<T6::LocalizeEntry>* m_localize;
AssetPool<T6::WeaponVariantDef>* m_weapon;
AssetPool<T6::WeaponAttachment>* m_attachment;
AssetPool<T6::WeaponAttachmentUnique>* m_attachment_unique;
AssetPool<T6::WeaponCamo>* m_camo;
AssetPool<T6::SndDriverGlobals>* m_snd_driver_globals;
AssetPool<T6::FxEffectDef>* m_fx;
AssetPool<T6::FxImpactTable>* m_fx_impact_table;
AssetPool<T6::RawFile>* m_raw_file;
AssetPool<T6::StringTable>* m_string_table;
AssetPool<T6::LeaderboardDef>* m_leaderboard;
AssetPool<T6::XGlobals>* m_xglobals;
AssetPool<T6::ddlRoot_t>* m_ddl;
AssetPool<T6::Glasses>* m_glasses;
AssetPool<T6::EmblemSet>* m_emblem_set;
AssetPool<T6::ScriptParseTree>* m_script;
AssetPool<T6::KeyValuePairs>* m_key_value_pairs;
AssetPool<T6::VehicleDef>* m_vehicle;
AssetPool<T6::MemoryBlock>* m_memory_block;
AssetPool<T6::AddonMapEnts>* m_addon_map_ents;
AssetPool<T6::TracerDef>* m_tracer;
AssetPool<T6::SkinnedVertsDef>* m_skinned_verts;
AssetPool<T6::Qdb>* m_qdb;
AssetPool<T6::Slug>* m_slug;
AssetPool<T6::FootstepTableDef>* m_footstep_table;
AssetPool<T6::FootstepFXTableDef>* m_footstep_fx_table;
AssetPool<T6::ZBarrierDef>* m_zbarrier;
std::unique_ptr<AssetPool<T6::PhysPreset>> m_phys_preset;
std::unique_ptr<AssetPool<T6::PhysConstraints>> m_phys_constraints;
std::unique_ptr<AssetPool<T6::DestructibleDef>> m_destructible_def;
std::unique_ptr<AssetPool<T6::XAnimParts>> m_xanim_parts;
std::unique_ptr<AssetPool<T6::XModel>> m_xmodel;
std::unique_ptr<AssetPool<T6::Material>> m_material;
std::unique_ptr<AssetPool<T6::MaterialTechniqueSet>> m_technique_set;
std::unique_ptr<AssetPool<T6::GfxImage>> m_image;
std::unique_ptr<AssetPool<T6::SndBank>> m_sound_bank;
std::unique_ptr<AssetPool<T6::SndPatch>> m_sound_patch;
std::unique_ptr<AssetPool<T6::clipMap_t>> m_clip_map;
std::unique_ptr<AssetPool<T6::ComWorld>> m_com_world;
std::unique_ptr<AssetPool<T6::GameWorldSp>> m_game_world_sp;
std::unique_ptr<AssetPool<T6::GameWorldMp>> m_game_world_mp;
std::unique_ptr<AssetPool<T6::MapEnts>> m_map_ents;
std::unique_ptr<AssetPool<T6::GfxWorld>> m_gfx_world;
std::unique_ptr<AssetPool<T6::GfxLightDef>> m_gfx_light_def;
std::unique_ptr<AssetPool<T6::Font_s>> m_font;
std::unique_ptr<AssetPool<T6::FontIcon>> m_font_icon;
std::unique_ptr<AssetPool<T6::MenuList>> m_menu_list;
std::unique_ptr<AssetPool<T6::menuDef_t>> m_menu_def;
std::unique_ptr<AssetPool<T6::LocalizeEntry>> m_localize;
std::unique_ptr<AssetPool<T6::WeaponVariantDef>> m_weapon;
std::unique_ptr<AssetPool<T6::WeaponAttachment>> m_attachment;
std::unique_ptr<AssetPool<T6::WeaponAttachmentUnique>> m_attachment_unique;
std::unique_ptr<AssetPool<T6::WeaponCamo>> m_camo;
std::unique_ptr<AssetPool<T6::SndDriverGlobals>> m_snd_driver_globals;
std::unique_ptr<AssetPool<T6::FxEffectDef>> m_fx;
std::unique_ptr<AssetPool<T6::FxImpactTable>> m_fx_impact_table;
std::unique_ptr<AssetPool<T6::RawFile>> m_raw_file;
std::unique_ptr<AssetPool<T6::StringTable>> m_string_table;
std::unique_ptr<AssetPool<T6::LeaderboardDef>> m_leaderboard;
std::unique_ptr<AssetPool<T6::XGlobals>> m_xglobals;
std::unique_ptr<AssetPool<T6::ddlRoot_t>> m_ddl;
std::unique_ptr<AssetPool<T6::Glasses>> m_glasses;
std::unique_ptr<AssetPool<T6::EmblemSet>> m_emblem_set;
std::unique_ptr<AssetPool<T6::ScriptParseTree>> m_script;
std::unique_ptr<AssetPool<T6::KeyValuePairs>> m_key_value_pairs;
std::unique_ptr<AssetPool<T6::VehicleDef>> m_vehicle;
std::unique_ptr<AssetPool<T6::MemoryBlock>> m_memory_block;
std::unique_ptr<AssetPool<T6::AddonMapEnts>> m_addon_map_ents;
std::unique_ptr<AssetPool<T6::TracerDef>> m_tracer;
std::unique_ptr<AssetPool<T6::SkinnedVertsDef>> m_skinned_verts;
std::unique_ptr<AssetPool<T6::Qdb>> m_qdb;
std::unique_ptr<AssetPool<T6::Slug>> m_slug;
std::unique_ptr<AssetPool<T6::FootstepTableDef>> m_footstep_table;
std::unique_ptr<AssetPool<T6::FootstepFXTableDef>> m_footstep_fx_table;
std::unique_ptr<AssetPool<T6::ZBarrierDef>> m_zbarrier;
GameAssetPoolT6(Zone* zone, int priority);
~GameAssetPoolT6() override;
~GameAssetPoolT6() override = default;
void InitPoolStatic(asset_type_t type, size_t capacity) override;
void InitPoolDynamic(asset_type_t type) override;
XAssetInfoGeneric* GetAsset(asset_type_t type, std::string name) const override;
_NODISCARD XAssetInfoGeneric* GetAsset(asset_type_t type, std::string name) const override;
static const char* AssetTypeNameByType(asset_type_t assetType);
const char* GetAssetTypeName(asset_type_t assetType) const override;
_NODISCARD const char* GetAssetTypeName(asset_type_t assetType) const override;
static asset_type_t AssetTypeCount();
_NODISCARD asset_type_t GetAssetTypeCount() const override;
};

View File

@ -33,6 +33,7 @@ public:
XAssetInfoGeneric* AddAsset(asset_type_t type, std::string name, void* asset, std::vector<XAssetInfoGeneric*> dependencies, std::vector<scr_string_t> usedScriptStrings);
XAssetInfoGeneric* AddAsset(asset_type_t type, std::string name, void* asset, std::vector<XAssetInfoGeneric*> dependencies, std::vector<scr_string_t> usedScriptStrings, Zone* zone);
_NODISCARD virtual XAssetInfoGeneric* GetAsset(asset_type_t type, std::string name) const = 0;
_NODISCARD virtual asset_type_t GetAssetTypeCount() const = 0;
_NODISCARD virtual const char* GetAssetTypeName(asset_type_t assetType) const = 0;
virtual void InitPoolStatic(asset_type_t type, size_t capacity) = 0;