mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2026-07-21 07:20:32 +00:00
refactor: introduce subasset loading
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user