#pragma once #include #include "Pool/ZoneAssetPools.h" #include "Pool/AssetPool.h" #include "Game/T6/T6.h" class GameAssetPoolT6 final : public ZoneAssetPools { int m_priority; static constexpr const char* ASSET_TYPE_INVALID = "invalid_asset_type"; static const char* ASSET_TYPE_NAMES[]; protected: XAssetInfoGeneric* AddAssetToPool(asset_type_t type, std::string name, void* asset, std::vector dependencies, std::vector usedScriptStrings, Zone* zone) override; public: std::unique_ptr> m_phys_preset; std::unique_ptr> m_phys_constraints; std::unique_ptr> m_destructible_def; std::unique_ptr> m_xanim_parts; std::unique_ptr> m_xmodel; std::unique_ptr> m_material; std::unique_ptr> m_technique_set; std::unique_ptr> m_image; std::unique_ptr> m_sound_bank; std::unique_ptr> m_sound_patch; 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_gfx_world; std::unique_ptr> m_gfx_light_def; std::unique_ptr> m_font; std::unique_ptr> m_font_icon; 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_attachment; std::unique_ptr> m_attachment_unique; std::unique_ptr> m_camo; 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_xglobals; std::unique_ptr> m_ddl; std::unique_ptr> m_glasses; std::unique_ptr> m_emblem_set; std::unique_ptr> m_script; std::unique_ptr> m_key_value_pairs; std::unique_ptr> m_vehicle; std::unique_ptr> m_memory_block; std::unique_ptr> m_addon_map_ents; std::unique_ptr> m_tracer; std::unique_ptr> m_skinned_verts; std::unique_ptr> m_qdb; std::unique_ptr> m_slug; std::unique_ptr> m_footstep_table; std::unique_ptr> m_footstep_fx_table; std::unique_ptr> m_zbarrier; GameAssetPoolT6(Zone* zone, int priority); ~GameAssetPoolT6() override = default; void InitPoolStatic(asset_type_t type, size_t capacity) override; 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; };