mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2026-03-05 12:33:02 +00:00
refactor: introduce subasset loading
This commit is contained in:
@@ -5,20 +5,39 @@
|
||||
#include <stdexcept>
|
||||
#include <type_traits>
|
||||
|
||||
struct IAssetBase
|
||||
{
|
||||
};
|
||||
|
||||
template<asset_type_t AssetTypeEnum, typename AssetType> class Asset : IAssetBase
|
||||
template<asset_type_t AssetTypeEnum, class AssetType> class Asset
|
||||
{
|
||||
public:
|
||||
static constexpr bool IS_ASSET = true;
|
||||
static constexpr auto EnumEntry = AssetTypeEnum;
|
||||
using Type = AssetType;
|
||||
};
|
||||
|
||||
template<typename AssetType> struct AssetNameAccessor
|
||||
template<asset_type_t AssetTypeEnum, class AssetType> class SubAsset
|
||||
{
|
||||
public:
|
||||
static constexpr bool IS_ASSET = false;
|
||||
static constexpr auto EnumEntry = AssetTypeEnum;
|
||||
using Type = AssetType;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
concept HasAssetEnumEntry = std::is_integral_v<decltype(T::EnumEntry)>;
|
||||
|
||||
template<typename T>
|
||||
concept HasAssetType = std::is_class_v<typename T::Type>;
|
||||
|
||||
template<typename T>
|
||||
concept AssetOrSubAssetDefinition = HasAssetEnumEntry<T> && HasAssetType<T>;
|
||||
|
||||
template<typename T>
|
||||
concept AssetDefinition = AssetOrSubAssetDefinition<T> && T::IS_ASSET;
|
||||
|
||||
template<typename T>
|
||||
concept SubAssetDefinition = AssetOrSubAssetDefinition<T> && !T::IS_ASSET;
|
||||
|
||||
template<AssetOrSubAssetDefinition> struct AssetNameAccessor
|
||||
{
|
||||
static_assert(std::is_base_of_v<IAssetBase, AssetType>);
|
||||
// static constexpr bool IS_SINGLETON = false;
|
||||
// using RETURN_TYPE = const char*&;
|
||||
|
||||
@@ -32,7 +51,6 @@ template<typename AssetType> struct AssetNameAccessor
|
||||
template<> struct AssetNameAccessor<assetType> \
|
||||
{ \
|
||||
public: \
|
||||
static_assert(std::is_base_of_v<IAssetBase, assetType>); \
|
||||
static constexpr bool IS_SINGLETON = false; \
|
||||
using RETURN_TYPE = const char*&; \
|
||||
\
|
||||
@@ -46,7 +64,6 @@ template<typename AssetType> struct AssetNameAccessor
|
||||
template<> struct AssetNameAccessor<assetType> \
|
||||
{ \
|
||||
public: \
|
||||
static_assert(std::is_base_of_v<IAssetBase, assetType>); \
|
||||
static constexpr bool IS_SINGLETON = true; \
|
||||
using RETURN_TYPE = const char* const&; \
|
||||
\
|
||||
@@ -57,8 +74,7 @@ template<typename AssetType> struct AssetNameAccessor
|
||||
} \
|
||||
}
|
||||
|
||||
template<typename AssetType> AssetNameAccessor<AssetType>::RETURN_TYPE AssetName(typename AssetType::Type& asset)
|
||||
template<AssetDefinition Asset_t> AssetNameAccessor<Asset_t>::RETURN_TYPE AssetName(typename Asset_t::Type& asset)
|
||||
{
|
||||
static_assert(std::is_base_of_v<IAssetBase, AssetType>);
|
||||
return AssetNameAccessor<AssetType>::GetAssetName(asset);
|
||||
return AssetNameAccessor<Asset_t>::GetAssetName(asset);
|
||||
}
|
||||
|
||||
@@ -69,5 +69,8 @@ public:
|
||||
[[nodiscard]] virtual asset_type_t GetAssetTypeCount() const = 0;
|
||||
[[nodiscard]] virtual std::optional<const char*> GetAssetTypeName(asset_type_t assetType) const = 0;
|
||||
|
||||
[[nodiscard]] virtual asset_type_t GetSubAssetTypeCount() const = 0;
|
||||
[[nodiscard]] virtual std::optional<const char*> GetSubAssetTypeName(asset_type_t subAssetType) const = 0;
|
||||
|
||||
static IGame* GetGameById(GameId gameId);
|
||||
};
|
||||
|
||||
@@ -14,6 +14,12 @@ namespace
|
||||
"menulist", "menu", "localize", "weapon", "snddriverglobals", "fx", "impactfx", "aitype", "mptype", "character",
|
||||
"xmodelalias", "rawfile", "stringtable",
|
||||
};
|
||||
|
||||
constexpr const char* SUB_ASSET_TYPE_NAMES[SUB_ASSET_TYPE_COUNT]{
|
||||
"technique",
|
||||
"vertexshader",
|
||||
"pixelshader",
|
||||
};
|
||||
} // namespace
|
||||
|
||||
namespace IW3
|
||||
@@ -53,4 +59,17 @@ namespace IW3
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
asset_type_t Game::GetSubAssetTypeCount() const
|
||||
{
|
||||
return SUB_ASSET_TYPE_COUNT;
|
||||
}
|
||||
|
||||
std::optional<const char*> Game::GetSubAssetTypeName(const asset_type_t subAssetType) const
|
||||
{
|
||||
if (subAssetType < std::extent_v<decltype(SUB_ASSET_TYPE_NAMES)>)
|
||||
return SUB_ASSET_TYPE_NAMES[subAssetType];
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
} // namespace IW3
|
||||
|
||||
@@ -14,5 +14,7 @@ namespace IW3
|
||||
|
||||
[[nodiscard]] asset_type_t GetAssetTypeCount() const override;
|
||||
[[nodiscard]] std::optional<const char*> GetAssetTypeName(asset_type_t assetType) const override;
|
||||
[[nodiscard]] asset_type_t GetSubAssetTypeCount() const override;
|
||||
[[nodiscard]] std::optional<const char*> GetSubAssetTypeName(asset_type_t subAssetType) const override;
|
||||
};
|
||||
} // namespace IW3
|
||||
|
||||
@@ -11,6 +11,53 @@
|
||||
|
||||
namespace IW3
|
||||
{
|
||||
enum XAssetType
|
||||
{
|
||||
ASSET_TYPE_XMODELPIECES,
|
||||
ASSET_TYPE_PHYSPRESET,
|
||||
ASSET_TYPE_XANIMPARTS,
|
||||
ASSET_TYPE_XMODEL,
|
||||
ASSET_TYPE_MATERIAL,
|
||||
ASSET_TYPE_TECHNIQUE_SET,
|
||||
ASSET_TYPE_IMAGE,
|
||||
ASSET_TYPE_SOUND,
|
||||
ASSET_TYPE_SOUND_CURVE,
|
||||
ASSET_TYPE_LOADED_SOUND,
|
||||
ASSET_TYPE_CLIPMAP,
|
||||
ASSET_TYPE_CLIPMAP_PVS,
|
||||
ASSET_TYPE_COMWORLD,
|
||||
ASSET_TYPE_GAMEWORLD_SP,
|
||||
ASSET_TYPE_GAMEWORLD_MP,
|
||||
ASSET_TYPE_MAP_ENTS,
|
||||
ASSET_TYPE_GFXWORLD,
|
||||
ASSET_TYPE_LIGHT_DEF,
|
||||
ASSET_TYPE_UI_MAP,
|
||||
ASSET_TYPE_FONT,
|
||||
ASSET_TYPE_MENULIST,
|
||||
ASSET_TYPE_MENU,
|
||||
ASSET_TYPE_LOCALIZE_ENTRY,
|
||||
ASSET_TYPE_WEAPON,
|
||||
ASSET_TYPE_SNDDRIVER_GLOBALS,
|
||||
ASSET_TYPE_FX,
|
||||
ASSET_TYPE_IMPACT_FX,
|
||||
ASSET_TYPE_AITYPE,
|
||||
ASSET_TYPE_MPTYPE,
|
||||
ASSET_TYPE_CHARACTER,
|
||||
ASSET_TYPE_XMODELALIAS,
|
||||
ASSET_TYPE_RAWFILE,
|
||||
ASSET_TYPE_STRINGTABLE,
|
||||
|
||||
ASSET_TYPE_COUNT
|
||||
};
|
||||
|
||||
enum SubAssetType
|
||||
{
|
||||
SUB_ASSET_TYPE_TECHNIQUE,
|
||||
SUB_ASSET_TYPE_VERTEX_SHADER,
|
||||
SUB_ASSET_TYPE_PIXEL_SHADER,
|
||||
|
||||
SUB_ASSET_TYPE_COUNT
|
||||
};
|
||||
|
||||
struct DB_AuthHash
|
||||
{
|
||||
|
||||
@@ -9,49 +9,6 @@
|
||||
namespace IW3
|
||||
{
|
||||
#endif
|
||||
enum XAssetType
|
||||
{
|
||||
ASSET_TYPE_XMODELPIECES = 0x0,
|
||||
ASSET_TYPE_PHYSPRESET = 0x1,
|
||||
ASSET_TYPE_XANIMPARTS = 0x2,
|
||||
ASSET_TYPE_XMODEL = 0x3,
|
||||
ASSET_TYPE_MATERIAL = 0x4,
|
||||
ASSET_TYPE_TECHNIQUE_SET = 0x5,
|
||||
ASSET_TYPE_IMAGE = 0x6,
|
||||
ASSET_TYPE_SOUND = 0x7,
|
||||
ASSET_TYPE_SOUND_CURVE = 0x8,
|
||||
ASSET_TYPE_LOADED_SOUND = 0x9,
|
||||
ASSET_TYPE_CLIPMAP = 0xA,
|
||||
ASSET_TYPE_CLIPMAP_PVS = 0xB,
|
||||
ASSET_TYPE_COMWORLD = 0xC,
|
||||
ASSET_TYPE_GAMEWORLD_SP = 0xD,
|
||||
ASSET_TYPE_GAMEWORLD_MP = 0xE,
|
||||
ASSET_TYPE_MAP_ENTS = 0xF,
|
||||
ASSET_TYPE_GFXWORLD = 0x10,
|
||||
ASSET_TYPE_LIGHT_DEF = 0x11,
|
||||
ASSET_TYPE_UI_MAP = 0x12,
|
||||
ASSET_TYPE_FONT = 0x13,
|
||||
ASSET_TYPE_MENULIST = 0x14,
|
||||
ASSET_TYPE_MENU = 0x15,
|
||||
ASSET_TYPE_LOCALIZE_ENTRY = 0x16,
|
||||
ASSET_TYPE_WEAPON = 0x17,
|
||||
ASSET_TYPE_SNDDRIVER_GLOBALS = 0x18,
|
||||
ASSET_TYPE_FX = 0x19,
|
||||
ASSET_TYPE_IMPACT_FX = 0x1A,
|
||||
ASSET_TYPE_AITYPE = 0x1B,
|
||||
ASSET_TYPE_MPTYPE = 0x1C,
|
||||
ASSET_TYPE_CHARACTER = 0x1D,
|
||||
ASSET_TYPE_XMODELALIAS = 0x1E,
|
||||
ASSET_TYPE_RAWFILE = 0x1F,
|
||||
ASSET_TYPE_STRINGTABLE = 0x20,
|
||||
ASSET_TYPE_COUNT,
|
||||
|
||||
ASSET_TYPE_STRING = ASSET_TYPE_COUNT,
|
||||
ASSET_TYPE_ASSETLIST,
|
||||
|
||||
ASSET_TYPE_FULLCOUNT
|
||||
};
|
||||
|
||||
enum XFileBlock
|
||||
{
|
||||
XFILE_BLOCK_TEMP,
|
||||
|
||||
@@ -19,6 +19,10 @@ namespace
|
||||
"xmodelalias", "rawfile", "stringtable", "leaderboard", "structureddatadef",
|
||||
"tracer", "vehicle", "addonmapents",
|
||||
};
|
||||
|
||||
constexpr const char* SUB_ASSET_TYPE_NAMES[SUB_ASSET_TYPE_COUNT]{
|
||||
"technique",
|
||||
};
|
||||
} // namespace
|
||||
|
||||
namespace IW4
|
||||
@@ -58,4 +62,17 @@ namespace IW4
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
asset_type_t Game::GetSubAssetTypeCount() const
|
||||
{
|
||||
return SUB_ASSET_TYPE_COUNT;
|
||||
}
|
||||
|
||||
std::optional<const char*> Game::GetSubAssetTypeName(const asset_type_t subAssetType) const
|
||||
{
|
||||
if (subAssetType < std::extent_v<decltype(SUB_ASSET_TYPE_NAMES)>)
|
||||
return SUB_ASSET_TYPE_NAMES[subAssetType];
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
} // namespace IW4
|
||||
|
||||
@@ -13,5 +13,7 @@ namespace IW4
|
||||
|
||||
[[nodiscard]] asset_type_t GetAssetTypeCount() const override;
|
||||
[[nodiscard]] std::optional<const char*> GetAssetTypeName(asset_type_t assetType) const override;
|
||||
[[nodiscard]] asset_type_t GetSubAssetTypeCount() const override;
|
||||
[[nodiscard]] std::optional<const char*> GetSubAssetTypeName(asset_type_t subAssetType) const override;
|
||||
};
|
||||
} // namespace IW4
|
||||
|
||||
@@ -11,6 +11,62 @@
|
||||
|
||||
namespace IW4
|
||||
{
|
||||
enum XAssetType
|
||||
{
|
||||
ASSET_TYPE_PHYSPRESET,
|
||||
ASSET_TYPE_PHYSCOLLMAP,
|
||||
ASSET_TYPE_XANIMPARTS,
|
||||
ASSET_TYPE_XMODEL_SURFS,
|
||||
ASSET_TYPE_XMODEL,
|
||||
ASSET_TYPE_MATERIAL,
|
||||
ASSET_TYPE_PIXELSHADER,
|
||||
ASSET_TYPE_VERTEXSHADER,
|
||||
ASSET_TYPE_VERTEXDECL,
|
||||
ASSET_TYPE_TECHNIQUE_SET,
|
||||
ASSET_TYPE_IMAGE,
|
||||
ASSET_TYPE_SOUND,
|
||||
ASSET_TYPE_SOUND_CURVE,
|
||||
ASSET_TYPE_LOADED_SOUND,
|
||||
ASSET_TYPE_CLIPMAP_SP,
|
||||
ASSET_TYPE_CLIPMAP_MP,
|
||||
ASSET_TYPE_COMWORLD,
|
||||
ASSET_TYPE_GAMEWORLD_SP,
|
||||
ASSET_TYPE_GAMEWORLD_MP,
|
||||
ASSET_TYPE_MAP_ENTS,
|
||||
ASSET_TYPE_FXWORLD,
|
||||
ASSET_TYPE_GFXWORLD,
|
||||
ASSET_TYPE_LIGHT_DEF,
|
||||
ASSET_TYPE_UI_MAP,
|
||||
ASSET_TYPE_FONT,
|
||||
ASSET_TYPE_MENULIST,
|
||||
ASSET_TYPE_MENU,
|
||||
ASSET_TYPE_LOCALIZE_ENTRY,
|
||||
ASSET_TYPE_WEAPON,
|
||||
ASSET_TYPE_SNDDRIVER_GLOBALS,
|
||||
ASSET_TYPE_FX,
|
||||
ASSET_TYPE_IMPACT_FX,
|
||||
ASSET_TYPE_AITYPE,
|
||||
ASSET_TYPE_MPTYPE,
|
||||
ASSET_TYPE_CHARACTER,
|
||||
ASSET_TYPE_XMODELALIAS,
|
||||
ASSET_TYPE_RAWFILE,
|
||||
ASSET_TYPE_STRINGTABLE,
|
||||
ASSET_TYPE_LEADERBOARD,
|
||||
ASSET_TYPE_STRUCTURED_DATA_DEF,
|
||||
ASSET_TYPE_TRACER,
|
||||
ASSET_TYPE_VEHICLE,
|
||||
ASSET_TYPE_ADDON_MAP_ENTS,
|
||||
|
||||
ASSET_TYPE_COUNT
|
||||
};
|
||||
|
||||
enum SubAssetType
|
||||
{
|
||||
SUB_ASSET_TYPE_TECHNIQUE,
|
||||
|
||||
SUB_ASSET_TYPE_COUNT
|
||||
};
|
||||
|
||||
struct DB_AuthHash
|
||||
{
|
||||
char bytes[32];
|
||||
|
||||
@@ -9,59 +9,6 @@
|
||||
namespace IW4
|
||||
{
|
||||
#endif
|
||||
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,
|
||||
|
||||
@@ -56,6 +56,10 @@ namespace
|
||||
"vehicle",
|
||||
"addonmapents",
|
||||
};
|
||||
|
||||
constexpr const char* SUB_ASSET_TYPE_NAMES[SUB_ASSET_TYPE_COUNT]{
|
||||
"technique",
|
||||
};
|
||||
} // namespace
|
||||
|
||||
namespace IW5
|
||||
@@ -95,4 +99,17 @@ namespace IW5
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
asset_type_t Game::GetSubAssetTypeCount() const
|
||||
{
|
||||
return SUB_ASSET_TYPE_COUNT;
|
||||
}
|
||||
|
||||
std::optional<const char*> Game::GetSubAssetTypeName(const asset_type_t subAssetType) const
|
||||
{
|
||||
if (subAssetType < std::extent_v<decltype(SUB_ASSET_TYPE_NAMES)>)
|
||||
return SUB_ASSET_TYPE_NAMES[subAssetType];
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
} // namespace IW5
|
||||
|
||||
@@ -13,5 +13,7 @@ namespace IW5
|
||||
|
||||
[[nodiscard]] asset_type_t GetAssetTypeCount() const override;
|
||||
[[nodiscard]] std::optional<const char*> GetAssetTypeName(asset_type_t assetType) const override;
|
||||
[[nodiscard]] asset_type_t GetSubAssetTypeCount() const override;
|
||||
[[nodiscard]] std::optional<const char*> GetSubAssetTypeName(asset_type_t subAssetType) const override;
|
||||
};
|
||||
} // namespace IW5
|
||||
|
||||
@@ -11,6 +11,65 @@
|
||||
|
||||
namespace IW5
|
||||
{
|
||||
enum XAssetType
|
||||
{
|
||||
ASSET_TYPE_PHYSPRESET,
|
||||
ASSET_TYPE_PHYSCOLLMAP,
|
||||
ASSET_TYPE_XANIMPARTS,
|
||||
ASSET_TYPE_XMODEL_SURFS,
|
||||
ASSET_TYPE_XMODEL,
|
||||
ASSET_TYPE_MATERIAL,
|
||||
ASSET_TYPE_PIXELSHADER,
|
||||
ASSET_TYPE_VERTEXSHADER,
|
||||
ASSET_TYPE_VERTEXDECL,
|
||||
ASSET_TYPE_TECHNIQUE_SET,
|
||||
ASSET_TYPE_IMAGE,
|
||||
ASSET_TYPE_SOUND,
|
||||
ASSET_TYPE_SOUND_CURVE,
|
||||
ASSET_TYPE_LOADED_SOUND,
|
||||
ASSET_TYPE_CLIPMAP,
|
||||
ASSET_TYPE_COMWORLD,
|
||||
ASSET_TYPE_GLASSWORLD,
|
||||
ASSET_TYPE_PATHDATA,
|
||||
ASSET_TYPE_VEHICLE_TRACK,
|
||||
ASSET_TYPE_MAP_ENTS,
|
||||
ASSET_TYPE_FXWORLD,
|
||||
ASSET_TYPE_GFXWORLD,
|
||||
ASSET_TYPE_LIGHT_DEF,
|
||||
ASSET_TYPE_UI_MAP,
|
||||
ASSET_TYPE_FONT,
|
||||
ASSET_TYPE_MENULIST,
|
||||
ASSET_TYPE_MENU,
|
||||
ASSET_TYPE_LOCALIZE_ENTRY,
|
||||
ASSET_TYPE_ATTACHMENT,
|
||||
ASSET_TYPE_WEAPON,
|
||||
ASSET_TYPE_SNDDRIVER_GLOBALS,
|
||||
ASSET_TYPE_FX,
|
||||
ASSET_TYPE_IMPACT_FX,
|
||||
ASSET_TYPE_SURFACE_FX,
|
||||
ASSET_TYPE_AITYPE,
|
||||
ASSET_TYPE_MPTYPE,
|
||||
ASSET_TYPE_CHARACTER,
|
||||
ASSET_TYPE_XMODELALIAS,
|
||||
ASSET_TYPE_RAWFILE,
|
||||
ASSET_TYPE_SCRIPTFILE,
|
||||
ASSET_TYPE_STRINGTABLE,
|
||||
ASSET_TYPE_LEADERBOARD,
|
||||
ASSET_TYPE_STRUCTURED_DATA_DEF,
|
||||
ASSET_TYPE_TRACER,
|
||||
ASSET_TYPE_VEHICLE,
|
||||
ASSET_TYPE_ADDON_MAP_ENTS,
|
||||
|
||||
ASSET_TYPE_COUNT
|
||||
};
|
||||
|
||||
enum SubAssetType
|
||||
{
|
||||
SUB_ASSET_TYPE_TECHNIQUE,
|
||||
|
||||
SUB_ASSET_TYPE_COUNT
|
||||
};
|
||||
|
||||
struct DB_AuthHash
|
||||
{
|
||||
char bytes[32];
|
||||
|
||||
@@ -17,62 +17,6 @@ namespace IW5
|
||||
{
|
||||
#endif
|
||||
#endif
|
||||
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 = 0xE,
|
||||
ASSET_TYPE_COMWORLD = 0xF,
|
||||
ASSET_TYPE_GLASSWORLD = 0x10,
|
||||
ASSET_TYPE_PATHDATA = 0x11,
|
||||
ASSET_TYPE_VEHICLE_TRACK = 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_ATTACHMENT = 0x1C,
|
||||
ASSET_TYPE_WEAPON = 0x1D,
|
||||
ASSET_TYPE_SNDDRIVER_GLOBALS = 0x1E,
|
||||
ASSET_TYPE_FX = 0x1F,
|
||||
ASSET_TYPE_IMPACT_FX = 0x20,
|
||||
ASSET_TYPE_SURFACE_FX = 0x21,
|
||||
ASSET_TYPE_AITYPE = 0x22,
|
||||
ASSET_TYPE_MPTYPE = 0x23,
|
||||
ASSET_TYPE_CHARACTER = 0x24,
|
||||
ASSET_TYPE_XMODELALIAS = 0x25,
|
||||
ASSET_TYPE_RAWFILE = 0x26,
|
||||
ASSET_TYPE_SCRIPTFILE = 0x27,
|
||||
ASSET_TYPE_STRINGTABLE = 0x28,
|
||||
ASSET_TYPE_LEADERBOARD = 0x29,
|
||||
ASSET_TYPE_STRUCTURED_DATA_DEF = 0x2A,
|
||||
ASSET_TYPE_TRACER = 0x2B,
|
||||
ASSET_TYPE_VEHICLE = 0x2C,
|
||||
ASSET_TYPE_ADDON_MAP_ENTS = 0x2D,
|
||||
ASSET_TYPE_COUNT,
|
||||
|
||||
ASSET_TYPE_STRING = ASSET_TYPE_COUNT,
|
||||
ASSET_TYPE_ASSETLIST = 0x2F,
|
||||
|
||||
ASSET_TYPE_FULLCOUNT
|
||||
};
|
||||
|
||||
enum XFileBlock
|
||||
{
|
||||
XFILE_BLOCK_TEMP,
|
||||
|
||||
@@ -17,6 +17,12 @@ namespace
|
||||
"xmodelalias", "rawfile", "stringtable", "packindex", "xglobals", "ddl", "glasses",
|
||||
"emblemset",
|
||||
};
|
||||
|
||||
constexpr const char* SUB_ASSET_TYPE_NAMES[SUB_ASSET_TYPE_COUNT]{
|
||||
"technique",
|
||||
"vertexshader",
|
||||
"pixelshader",
|
||||
};
|
||||
} // namespace
|
||||
|
||||
namespace T5
|
||||
@@ -71,4 +77,17 @@ namespace T5
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
asset_type_t Game::GetSubAssetTypeCount() const
|
||||
{
|
||||
return SUB_ASSET_TYPE_COUNT;
|
||||
}
|
||||
|
||||
std::optional<const char*> Game::GetSubAssetTypeName(const asset_type_t subAssetType) const
|
||||
{
|
||||
if (subAssetType < std::extent_v<decltype(SUB_ASSET_TYPE_NAMES)>)
|
||||
return SUB_ASSET_TYPE_NAMES[subAssetType];
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
} // namespace T5
|
||||
|
||||
@@ -13,5 +13,7 @@ namespace T5
|
||||
|
||||
[[nodiscard]] asset_type_t GetAssetTypeCount() const override;
|
||||
[[nodiscard]] std::optional<const char*> GetAssetTypeName(asset_type_t assetType) const override;
|
||||
[[nodiscard]] asset_type_t GetSubAssetTypeCount() const override;
|
||||
[[nodiscard]] std::optional<const char*> GetSubAssetTypeName(asset_type_t subAssetType) const override;
|
||||
};
|
||||
} // namespace T5
|
||||
|
||||
@@ -11,6 +11,64 @@
|
||||
|
||||
namespace T5
|
||||
{
|
||||
enum XAssetType
|
||||
{
|
||||
ASSET_TYPE_XMODELPIECES,
|
||||
ASSET_TYPE_PHYSPRESET,
|
||||
ASSET_TYPE_PHYSCONSTRAINTS,
|
||||
ASSET_TYPE_DESTRUCTIBLEDEF,
|
||||
ASSET_TYPE_XANIMPARTS,
|
||||
ASSET_TYPE_XMODEL,
|
||||
ASSET_TYPE_MATERIAL,
|
||||
ASSET_TYPE_TECHNIQUE_SET,
|
||||
ASSET_TYPE_IMAGE,
|
||||
ASSET_TYPE_SOUND,
|
||||
ASSET_TYPE_SOUND_PATCH,
|
||||
ASSET_TYPE_CLIPMAP,
|
||||
ASSET_TYPE_CLIPMAP_PVS,
|
||||
ASSET_TYPE_COMWORLD,
|
||||
ASSET_TYPE_GAMEWORLD_SP,
|
||||
ASSET_TYPE_GAMEWORLD_MP,
|
||||
ASSET_TYPE_MAP_ENTS,
|
||||
ASSET_TYPE_GFXWORLD,
|
||||
ASSET_TYPE_LIGHT_DEF,
|
||||
ASSET_TYPE_UI_MAP,
|
||||
ASSET_TYPE_FONT,
|
||||
ASSET_TYPE_MENULIST,
|
||||
ASSET_TYPE_MENU,
|
||||
ASSET_TYPE_LOCALIZE_ENTRY,
|
||||
ASSET_TYPE_WEAPON,
|
||||
ASSET_TYPE_WEAPONDEF,
|
||||
ASSET_TYPE_WEAPON_VARIANT,
|
||||
ASSET_TYPE_SNDDRIVER_GLOBALS,
|
||||
ASSET_TYPE_FX,
|
||||
ASSET_TYPE_IMPACT_FX,
|
||||
ASSET_TYPE_AITYPE,
|
||||
ASSET_TYPE_MPTYPE,
|
||||
ASSET_TYPE_MPBODY,
|
||||
ASSET_TYPE_MPHEAD,
|
||||
ASSET_TYPE_CHARACTER,
|
||||
ASSET_TYPE_XMODELALIAS,
|
||||
ASSET_TYPE_RAWFILE,
|
||||
ASSET_TYPE_STRINGTABLE,
|
||||
ASSET_TYPE_PACK_INDEX,
|
||||
ASSET_TYPE_XGLOBALS,
|
||||
ASSET_TYPE_DDL,
|
||||
ASSET_TYPE_GLASSES,
|
||||
ASSET_TYPE_EMBLEMSET,
|
||||
|
||||
ASSET_TYPE_COUNT
|
||||
};
|
||||
|
||||
enum SubAssetType
|
||||
{
|
||||
SUB_ASSET_TYPE_TECHNIQUE = ASSET_TYPE_COUNT,
|
||||
SUB_ASSET_TYPE_VERTEX_SHADER,
|
||||
SUB_ASSET_TYPE_PIXEL_SHADER,
|
||||
|
||||
SUB_ASSET_TYPE_COUNT
|
||||
};
|
||||
|
||||
struct ScriptStringList
|
||||
{
|
||||
int count;
|
||||
|
||||
@@ -43,58 +43,6 @@ namespace T5
|
||||
struct Glasses;
|
||||
struct EmblemSet;
|
||||
|
||||
enum XAssetType
|
||||
{
|
||||
ASSET_TYPE_XMODELPIECES = 0x0,
|
||||
ASSET_TYPE_PHYSPRESET = 0x1,
|
||||
ASSET_TYPE_PHYSCONSTRAINTS = 0x2,
|
||||
ASSET_TYPE_DESTRUCTIBLEDEF = 0x3,
|
||||
ASSET_TYPE_XANIMPARTS = 0x4,
|
||||
ASSET_TYPE_XMODEL = 0x5,
|
||||
ASSET_TYPE_MATERIAL = 0x6,
|
||||
ASSET_TYPE_TECHNIQUE_SET = 0x7,
|
||||
ASSET_TYPE_IMAGE = 0x8,
|
||||
ASSET_TYPE_SOUND = 0x9,
|
||||
ASSET_TYPE_SOUND_PATCH = 0xA,
|
||||
ASSET_TYPE_CLIPMAP = 0xB,
|
||||
ASSET_TYPE_CLIPMAP_PVS = 0xC,
|
||||
ASSET_TYPE_COMWORLD = 0xD,
|
||||
ASSET_TYPE_GAMEWORLD_SP = 0xE,
|
||||
ASSET_TYPE_GAMEWORLD_MP = 0xF,
|
||||
ASSET_TYPE_MAP_ENTS = 0x10,
|
||||
ASSET_TYPE_GFXWORLD = 0x11,
|
||||
ASSET_TYPE_LIGHT_DEF = 0x12,
|
||||
ASSET_TYPE_UI_MAP = 0x13,
|
||||
ASSET_TYPE_FONT = 0x14,
|
||||
ASSET_TYPE_MENULIST = 0x15,
|
||||
ASSET_TYPE_MENU = 0x16,
|
||||
ASSET_TYPE_LOCALIZE_ENTRY = 0x17,
|
||||
ASSET_TYPE_WEAPON = 0x18,
|
||||
ASSET_TYPE_WEAPONDEF = 0x19,
|
||||
ASSET_TYPE_WEAPON_VARIANT = 0x1A,
|
||||
ASSET_TYPE_SNDDRIVER_GLOBALS = 0x1B,
|
||||
ASSET_TYPE_FX = 0x1C,
|
||||
ASSET_TYPE_IMPACT_FX = 0x1D,
|
||||
ASSET_TYPE_AITYPE = 0x1E,
|
||||
ASSET_TYPE_MPTYPE = 0x1F,
|
||||
ASSET_TYPE_MPBODY = 0x20,
|
||||
ASSET_TYPE_MPHEAD = 0x21,
|
||||
ASSET_TYPE_CHARACTER = 0x22,
|
||||
ASSET_TYPE_XMODELALIAS = 0x23,
|
||||
ASSET_TYPE_RAWFILE = 0x24,
|
||||
ASSET_TYPE_STRINGTABLE = 0x25,
|
||||
ASSET_TYPE_PACK_INDEX = 0x26,
|
||||
ASSET_TYPE_XGLOBALS = 0x27,
|
||||
ASSET_TYPE_DDL = 0x28,
|
||||
ASSET_TYPE_GLASSES = 0x29,
|
||||
ASSET_TYPE_EMBLEMSET = 0x2A,
|
||||
ASSET_TYPE_COUNT = 0x2B,
|
||||
ASSET_TYPE_STRING = 0x2B,
|
||||
ASSET_TYPE_ASSETLIST = 0x2C,
|
||||
|
||||
ASSET_TYPE_FULL_COUNT
|
||||
};
|
||||
|
||||
enum XFileBlock
|
||||
{
|
||||
XFILE_BLOCK_TEMP,
|
||||
|
||||
@@ -70,6 +70,12 @@ namespace
|
||||
"footstepfxtable",
|
||||
"zbarrier",
|
||||
};
|
||||
|
||||
constexpr const char* SUB_ASSET_TYPE_NAMES[SUB_ASSET_TYPE_COUNT]{
|
||||
"technique",
|
||||
"vertexshader",
|
||||
"pixelshader",
|
||||
};
|
||||
} // namespace
|
||||
|
||||
namespace T6
|
||||
@@ -127,4 +133,17 @@ namespace T6
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
asset_type_t Game::GetSubAssetTypeCount() const
|
||||
{
|
||||
return SUB_ASSET_TYPE_COUNT;
|
||||
}
|
||||
|
||||
std::optional<const char*> Game::GetSubAssetTypeName(const asset_type_t subAssetType) const
|
||||
{
|
||||
if (subAssetType < std::extent_v<decltype(SUB_ASSET_TYPE_NAMES)>)
|
||||
return SUB_ASSET_TYPE_NAMES[subAssetType];
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
} // namespace T6
|
||||
|
||||
@@ -13,5 +13,7 @@ namespace T6
|
||||
|
||||
[[nodiscard]] asset_type_t GetAssetTypeCount() const override;
|
||||
[[nodiscard]] std::optional<const char*> GetAssetTypeName(asset_type_t assetType) const override;
|
||||
[[nodiscard]] asset_type_t GetSubAssetTypeCount() const override;
|
||||
[[nodiscard]] std::optional<const char*> GetSubAssetTypeName(asset_type_t subAssetType) const override;
|
||||
};
|
||||
} // namespace T6
|
||||
|
||||
@@ -9,8 +9,86 @@
|
||||
|
||||
// clang-format on
|
||||
|
||||
#include <cstdint>
|
||||
#include <utility>
|
||||
|
||||
namespace T6
|
||||
{
|
||||
enum XAssetType
|
||||
{
|
||||
ASSET_TYPE_XMODELPIECES,
|
||||
ASSET_TYPE_PHYSPRESET,
|
||||
ASSET_TYPE_PHYSCONSTRAINTS,
|
||||
ASSET_TYPE_DESTRUCTIBLEDEF,
|
||||
ASSET_TYPE_XANIMPARTS,
|
||||
ASSET_TYPE_XMODEL,
|
||||
ASSET_TYPE_MATERIAL,
|
||||
ASSET_TYPE_TECHNIQUE_SET,
|
||||
ASSET_TYPE_IMAGE,
|
||||
ASSET_TYPE_SOUND,
|
||||
ASSET_TYPE_SOUND_PATCH,
|
||||
ASSET_TYPE_CLIPMAP,
|
||||
ASSET_TYPE_CLIPMAP_PVS,
|
||||
ASSET_TYPE_COMWORLD,
|
||||
ASSET_TYPE_GAMEWORLD_SP,
|
||||
ASSET_TYPE_GAMEWORLD_MP,
|
||||
ASSET_TYPE_MAP_ENTS,
|
||||
ASSET_TYPE_GFXWORLD,
|
||||
ASSET_TYPE_LIGHT_DEF,
|
||||
ASSET_TYPE_UI_MAP,
|
||||
ASSET_TYPE_FONT,
|
||||
ASSET_TYPE_FONTICON,
|
||||
ASSET_TYPE_MENULIST,
|
||||
ASSET_TYPE_MENU,
|
||||
ASSET_TYPE_LOCALIZE_ENTRY,
|
||||
ASSET_TYPE_WEAPON,
|
||||
ASSET_TYPE_WEAPONDEF,
|
||||
ASSET_TYPE_WEAPON_VARIANT,
|
||||
ASSET_TYPE_WEAPON_FULL,
|
||||
ASSET_TYPE_ATTACHMENT,
|
||||
ASSET_TYPE_ATTACHMENT_UNIQUE,
|
||||
ASSET_TYPE_WEAPON_CAMO,
|
||||
ASSET_TYPE_SNDDRIVER_GLOBALS,
|
||||
ASSET_TYPE_FX,
|
||||
ASSET_TYPE_IMPACT_FX,
|
||||
ASSET_TYPE_AITYPE,
|
||||
ASSET_TYPE_MPTYPE,
|
||||
ASSET_TYPE_MPBODY,
|
||||
ASSET_TYPE_MPHEAD,
|
||||
ASSET_TYPE_CHARACTER,
|
||||
ASSET_TYPE_XMODELALIAS,
|
||||
ASSET_TYPE_RAWFILE,
|
||||
ASSET_TYPE_STRINGTABLE,
|
||||
ASSET_TYPE_LEADERBOARD,
|
||||
ASSET_TYPE_XGLOBALS,
|
||||
ASSET_TYPE_DDL,
|
||||
ASSET_TYPE_GLASSES,
|
||||
ASSET_TYPE_EMBLEMSET,
|
||||
ASSET_TYPE_SCRIPTPARSETREE,
|
||||
ASSET_TYPE_KEYVALUEPAIRS,
|
||||
ASSET_TYPE_VEHICLEDEF,
|
||||
ASSET_TYPE_MEMORYBLOCK,
|
||||
ASSET_TYPE_ADDON_MAP_ENTS,
|
||||
ASSET_TYPE_TRACER,
|
||||
ASSET_TYPE_SKINNEDVERTS,
|
||||
ASSET_TYPE_QDB,
|
||||
ASSET_TYPE_SLUG,
|
||||
ASSET_TYPE_FOOTSTEP_TABLE,
|
||||
ASSET_TYPE_FOOTSTEPFX_TABLE,
|
||||
ASSET_TYPE_ZBARRIER,
|
||||
|
||||
ASSET_TYPE_COUNT
|
||||
};
|
||||
|
||||
enum SubAssetType
|
||||
{
|
||||
SUB_ASSET_TYPE_TECHNIQUE,
|
||||
SUB_ASSET_TYPE_VERTEX_SHADER,
|
||||
SUB_ASSET_TYPE_PIXEL_SHADER,
|
||||
|
||||
SUB_ASSET_TYPE_COUNT
|
||||
};
|
||||
|
||||
struct ScriptStringList
|
||||
{
|
||||
int count;
|
||||
@@ -208,6 +286,10 @@ namespace T6
|
||||
using AssetFootstepTable = Asset<ASSET_TYPE_FOOTSTEP_TABLE, FootstepTableDef>;
|
||||
using AssetFootstepFxTable = Asset<ASSET_TYPE_FOOTSTEPFX_TABLE, FootstepFXTableDef>;
|
||||
using AssetZBarrier = Asset<ASSET_TYPE_ZBARRIER, ZBarrierDef>;
|
||||
|
||||
using SubAssetTechnique = SubAsset<SUB_ASSET_TYPE_TECHNIQUE, MaterialTechnique>;
|
||||
using SubAssetVertexShader = SubAsset<SUB_ASSET_TYPE_VERTEX_SHADER, MaterialTechnique>;
|
||||
using SubAssetPixelShader = SubAsset<SUB_ASSET_TYPE_PIXEL_SHADER, MaterialTechnique>;
|
||||
} // namespace T6
|
||||
|
||||
DEFINE_ASSET_NAME_ACCESSOR(T6::AssetPhysPreset, name);
|
||||
|
||||
@@ -236,76 +236,6 @@ namespace T6
|
||||
struct FootstepTableDef;
|
||||
struct FootstepFXTableDef;
|
||||
|
||||
enum XAssetType
|
||||
{
|
||||
ASSET_TYPE_XMODELPIECES = 0x0,
|
||||
ASSET_TYPE_PHYSPRESET = 0x1,
|
||||
ASSET_TYPE_PHYSCONSTRAINTS = 0x2,
|
||||
ASSET_TYPE_DESTRUCTIBLEDEF = 0x3,
|
||||
ASSET_TYPE_XANIMPARTS = 0x4,
|
||||
ASSET_TYPE_XMODEL = 0x5,
|
||||
ASSET_TYPE_MATERIAL = 0x6,
|
||||
ASSET_TYPE_TECHNIQUE_SET = 0x7,
|
||||
ASSET_TYPE_IMAGE = 0x8,
|
||||
ASSET_TYPE_SOUND = 0x9,
|
||||
ASSET_TYPE_SOUND_PATCH = 0xA,
|
||||
ASSET_TYPE_CLIPMAP = 0xB,
|
||||
ASSET_TYPE_CLIPMAP_PVS = 0xC,
|
||||
ASSET_TYPE_COMWORLD = 0xD,
|
||||
ASSET_TYPE_GAMEWORLD_SP = 0xE,
|
||||
ASSET_TYPE_GAMEWORLD_MP = 0xF,
|
||||
ASSET_TYPE_MAP_ENTS = 0x10,
|
||||
ASSET_TYPE_GFXWORLD = 0x11,
|
||||
ASSET_TYPE_LIGHT_DEF = 0x12,
|
||||
ASSET_TYPE_UI_MAP = 0x13,
|
||||
ASSET_TYPE_FONT = 0x14,
|
||||
ASSET_TYPE_FONTICON = 0x15,
|
||||
ASSET_TYPE_MENULIST = 0x16,
|
||||
ASSET_TYPE_MENU = 0x17,
|
||||
ASSET_TYPE_LOCALIZE_ENTRY = 0x18,
|
||||
ASSET_TYPE_WEAPON = 0x19,
|
||||
ASSET_TYPE_WEAPONDEF = 0x1A,
|
||||
ASSET_TYPE_WEAPON_VARIANT = 0x1B,
|
||||
ASSET_TYPE_WEAPON_FULL = 0x1C,
|
||||
ASSET_TYPE_ATTACHMENT = 0x1D,
|
||||
ASSET_TYPE_ATTACHMENT_UNIQUE = 0x1E,
|
||||
ASSET_TYPE_WEAPON_CAMO = 0x1F,
|
||||
ASSET_TYPE_SNDDRIVER_GLOBALS = 0x20,
|
||||
ASSET_TYPE_FX = 0x21,
|
||||
ASSET_TYPE_IMPACT_FX = 0x22,
|
||||
ASSET_TYPE_AITYPE = 0x23,
|
||||
ASSET_TYPE_MPTYPE = 0x24,
|
||||
ASSET_TYPE_MPBODY = 0x25,
|
||||
ASSET_TYPE_MPHEAD = 0x26,
|
||||
ASSET_TYPE_CHARACTER = 0x27,
|
||||
ASSET_TYPE_XMODELALIAS = 0x28,
|
||||
ASSET_TYPE_RAWFILE = 0x29,
|
||||
ASSET_TYPE_STRINGTABLE = 0x2A,
|
||||
ASSET_TYPE_LEADERBOARD = 0x2B,
|
||||
ASSET_TYPE_XGLOBALS = 0x2C,
|
||||
ASSET_TYPE_DDL = 0x2D,
|
||||
ASSET_TYPE_GLASSES = 0x2E,
|
||||
ASSET_TYPE_EMBLEMSET = 0x2F,
|
||||
ASSET_TYPE_SCRIPTPARSETREE = 0x30,
|
||||
ASSET_TYPE_KEYVALUEPAIRS = 0x31,
|
||||
ASSET_TYPE_VEHICLEDEF = 0x32,
|
||||
ASSET_TYPE_MEMORYBLOCK = 0x33,
|
||||
ASSET_TYPE_ADDON_MAP_ENTS = 0x34,
|
||||
ASSET_TYPE_TRACER = 0x35,
|
||||
ASSET_TYPE_SKINNEDVERTS = 0x36,
|
||||
ASSET_TYPE_QDB = 0x37,
|
||||
ASSET_TYPE_SLUG = 0x38,
|
||||
ASSET_TYPE_FOOTSTEP_TABLE = 0x39,
|
||||
ASSET_TYPE_FOOTSTEPFX_TABLE = 0x3A,
|
||||
ASSET_TYPE_ZBARRIER = 0x3B,
|
||||
ASSET_TYPE_COUNT = 0x3C,
|
||||
ASSET_TYPE_STRING = 0x3C,
|
||||
ASSET_TYPE_ASSETLIST = 0x3D,
|
||||
ASSET_TYPE_REPORT = 0x3E,
|
||||
ASSET_TYPE_DEPEND = 0x3F,
|
||||
ASSET_TYPE_FULL_COUNT = 0x40,
|
||||
};
|
||||
|
||||
enum XFileBlock
|
||||
{
|
||||
XFILE_BLOCK_TEMP,
|
||||
|
||||
Reference in New Issue
Block a user