mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2026-08-19 13:34:30 +00:00
* feat: QOS (007: Quantum of Solace) support * feat: add qos localize loader * feat: add qos stringtable loader * chore: comment about official zones * fix: add qos gfximage runtime fields * chore: remove useless dev time comments * fix: remove all `static_asserts`s from asset headers causing build fail on x64 * chore: change union ordering of qos `entryInternalData` * chore: move qos asset type enum to qos.h * fix: qos and t4 xsurface index buffer * chore: implement qos MaterialInfo struct * chore: adjust some gfxworld struct members * chore: implement qos PhysPreset and PhysConstraints * chore: fix and adjust slight inconsistencies with qos zone code * chore: reorder qos ZoneCode.lua entries in order of asset type enum * chore: remove asset types that are not actual asset types in zones * chore: check common asset arrays with static_assert * chore: rename qos assets * chore: reorder qos in templates to be in alphabetical order * chore: use function for CopyMipLevel in Dx9TextureLoader * chore: use templates for qos MapEntsDumper * chore: add missing braces in XModelToCommonConverter * chore: add generic way to peek at zone data * Qos does not use a classic ZoneHeader so code needs to be more generic * fix: do not use raw_byte and raw_uint typedefs for qos * fix: not being able to write clipmapmp * chore: additional research on qos vertex property and stuff --------- Co-authored-by: Jan Laupetin <[email protected]>
42 KiB
42 KiB
Supported Asset Types
All asset types are supported to be loaded from other fastfiles in memory.
The following section specify which assets are supported to be dumped to disk (using Unlinker) and loaded from disk (
using Linker):
- ❌ = Currently unsupported
- ✅ = Supported
- ⁉️ = Partial support
IW3 (Call of Duty 4: Modern Warfare)
| Asset Type | Dumping Support | Loading Support | Notes |
|---|---|---|---|
| PhysPreset | ✅ | ✅ | |
| XAnimParts | ✅ | ✅ | |
| XModel | ✅ | ✅ | Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF. |
| Material | ✅ | ✅ | |
| MaterialTechniqueSet | ✅ | ✅ | For shaders: only dumps/loads shader bytecode. |
| GfxImage | ✅ | ✅ | |
| snd_alias_list_t | ❌ | ❌ | |
| SndCurve | ✅ | ✅ | |
| LoadedSound | ✅ | ❌ | |
| clipMap_t | ❌ | ❌ | |
| ComWorld | ❌ | ❌ | |
| GameWorldSp | ❌ | ❌ | |
| GameWorldMp | ❌ | ❌ | |
| MapEnts | ✅ | ❌ | |
| GfxWorld | ❌ | ❌ | |
| GfxLightDef | ✅ | ✅ | |
| Font_s | ✅ | ✅ | |
| MenuList | ❌ | ❌ | |
| menuDef_t | ❌ | ❌ | |
| LocalizeEntry | ✅ | ✅ | |
| WeaponDef | ✅ | ✅ | |
| FxEffectDef | ❌ | ❌ | |
| FxImpactTable | ❌ | ❌ | |
| RawFile | ✅ | ✅ | |
| StringTable | ✅ | ✅ |
IW4 (Call of Duty: Modern Warfare 2)
| Asset Type | Dumping Support | Loading Support | Notes |
|---|---|---|---|
| PhysPreset | ✅ | ✅ | |
| PhysCollmap | ❌ | ❌ | |
| XAnimParts | ✅ | ✅ | |
| XModel | ✅ | ✅ | Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF. |
| Material | ✅ | ✅ | |
| MaterialPixelShader | ✅ | ✅ | Only dumps/loads shader bytecode. |
| MaterialVertexShader | ✅ | ✅ | Only dumps/loads shader bytecode. |
| MaterialVertexDeclaration | ✅ | ✅ | |
| MaterialTechniqueSet | ✅ | ✅ | |
| GfxImage | ✅ | ❌ | A few special image encodings are not yet supported. |
| snd_alias_list_t | ❌ | ❌ | |
| SndCurve | ✅ | ✅ | |
| LoadedSound | ✅ | ❌ | |
| clipMap_t | ❌ | ❌ | |
| ComWorld | ❌ | ❌ | |
| GameWorldSp | ❌ | ❌ | |
| GameWorldMp | ❌ | ❌ | |
| MapEnts | ⁉️ | ❌ | Entity string can be exported. Binary data currently not. |
| FxWorld | ❌ | ❌ | |
| GfxWorld | ❌ | ❌ | |
| GfxLightDef | ✅ | ✅ | |
| Font_s | ✅ | ✅ | |
| MenuList | ✅ | ✅ | The output is decompiled. The result will not be the same as the input. |
| menuDef_t | ✅ | ✅ | See menulist. |
| LocalizeEntry | ✅ | ✅ | |
| WeaponCompleteDef | ✅ | ✅ | |
| FxEffectDef | ❌ | ❌ | |
| FxImpactTable | ❌ | ❌ | |
| RawFile | ✅ | ✅ | |
| StringTable | ✅ | ✅ | |
| LeaderboardDef | ✅ | ✅ | |
| StructuredDataDefSet | ✅ | ✅ | The format is custom due to lacking information about original format. |
| TracerDef | ✅ | ✅ | |
| VehicleDef | ✅ | ✅ | |
| AddonMapEnts | ⁉️ | ❌ | MapEnts String can be exported. Binary data currently not. |
IW5 (Call of Duty: Modern Warfare 3)
| Asset Type | Dumping Support | Loading Support | Notes |
|---|---|---|---|
| PhysPreset | ✅ | ✅ | |
| PhysCollmap | ❌ | ❌ | |
| XAnimParts | ✅ | ✅ | |
| XModelSurfs | ❌ | ❌ | |
| XModel | ✅ | ✅ | Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF. |
| Material | ✅ | ✅ | |
| MaterialPixelShader | ❌ | ❌ | |
| MaterialVertexShader | ❌ | ❌ | |
| MaterialVertexDeclaration | ❌ | ❌ | |
| MaterialTechniqueSet | ❌ | ❌ | |
| GfxImage | ✅ | ✅ | A few special image encodings are not yet supported. |
| snd_alias_list_t | ❌ | ❌ | |
| SndCurve | ✅ | ✅ | |
| LoadedSound | ✅ | ❌ | |
| clipMap_t | ❌ | ❌ | |
| ComWorld | ❌ | ❌ | |
| GlassWorld | ❌ | ❌ | |
| PathData | ❌ | ❌ | |
| VehicleTrack | ❌ | ❌ | |
| MapEnts | ⁉️ | ❌ | Entity string can be exported. Binary data currently not. |
| FxWorld | ❌ | ❌ | |
| GfxWorld | ❌ | ❌ | |
| GfxLightDef | ✅ | ✅ | |
| Font_s | ✅ | ✅ | |
| MenuList | ✅ | ✅ | The output is decompiled. The result will not be the same as the input. |
| menuDef_t | ✅ | ✅ | See menulist. |
| LocalizeEntry | ✅ | ✅ | |
| WeaponAttachment | ✅ | ✅ | |
| WeaponCompleteDef | ✅ | ✅ | |
| FxEffectDef | ❌ | ❌ | |
| FxImpactTable | ❌ | ❌ | |
| SurfaceFxTable | ❌ | ❌ | |
| RawFile | ✅ | ✅ | |
| ScriptFile | ⁉️ | ⁉️ | Can only be dumped/loaded as binary. Editing is possible with GSC-Tool. |
| StringTable | ✅ | ✅ | |
| LeaderboardDef | ✅ | ✅ | |
| StructuredDataDefSet | ❌ | ❌ | |
| TracerDef | ✅ | ✅ | |
| VehicleDef | ✅ | ✅ | |
| AddonMapEnts | ⁉️ | ❌ | MapEnts String can be exported. Binary data currently not. |
QOS (007: Quantum of Solace)
| Asset Type | Dumping Support | Loading Support | Notes |
|---|---|---|---|
| PhysPreset | ❌ | ❌ | |
| PhysConstraints | ❌ | ❌ | |
| DestructibleDef | ❌ | ❌ | |
| XAnimParts | ❌ | ❌ | |
| XModel | ✅ | ❌ | Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF. |
| Material | ❌ | ❌ | |
| MaterialTechniqueSet | ❌ | ❌ | |
| GfxImage | ✅ | ❌ | |
| snd_alias_list_t | ❌ | ❌ | |
| SndCurve | ❌ | ❌ | |
| clipMap_t | ❌ | ❌ | |
| ComWorld | ❌ | ❌ | |
| GameWorldSp | ❌ | ❌ | |
| GameWorldMp | ❌ | ❌ | |
| MapEnts | ✅ | ❌ | |
| GfxWorld | ❌ | ❌ | |
| GfxLightDef | ❌ | ❌ | |
| Font_s | ✅ | ❌ | |
| MenuList | ❌ | ❌ | |
| menuDef_t | ❌ | ❌ | |
| LocalizeEntry | ✅ | ✅ | |
| WeaponDef | ❌ | ❌ | |
| SndDriverGlobals | ❌ | ❌ | |
| FxEffectDef | ❌ | ❌ | |
| FxImpactTable | ❌ | ❌ | |
| RawFile | ✅ | ✅ | |
| StringTable | ✅ | ✅ | |
| XmlTree | ❌ | ❌ | |
| SceneAnimation | ❌ | ❌ | |
| Cutscene | ❌ | ❌ | |
| CustomCamera | ❌ | ❌ |
T4 (Call of Duty: World at War)
| Asset Type | Dumping Support | Loading Support | Notes |
|---|---|---|---|
| PhysPreset | ✅ | ✅ | |
| PhysConstraints | ✅ | ❌ | |
| DestructibleDef | ❌ | ❌ | |
| XAnimParts | ✅ | ✅ | |
| XModel | ✅ | ❌ | Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF. |
| Material | ✅ | ✅ | |
| MaterialTechniqueSet | ❌ | ❌ | |
| GfxImage | ✅ | ✅ | A few special image encodings are not yet supported. |
| snd_alias_list_t | ❌ | ❌ | |
| SndDriverGlobals | ❌ | ❌ | |
| LoadedSound | ✅ | ❌ | |
| clipMap_t | ❌ | ❌ | |
| ComWorld | ❌ | ❌ | |
| GameWorldSp | ❌ | ❌ | |
| GameWorldMp | ❌ | ❌ | |
| MapEnts | ✅ | ✅ | |
| GfxWorld | ❌ | ❌ | |
| GfxLightDef | ❌ | ❌ | |
| Font_s | ✅ | ✅ | |
| MenuList | ❌ | ❌ | |
| menuDef_t | ❌ | ❌ | |
| LocalizeEntry | ✅ | ✅ | |
| WeaponDef | ✅ | ✅ | |
| FxEffectDef | ❌ | ❌ | |
| FxImpactTable | ❌ | ❌ | |
| RawFile | ✅ | ✅ | |
| StringTable | ✅ | ✅ | |
| PackIndex | ❌ | ❌ |
T5 (Call of Duty: Black Ops)
| Asset Type | Dumping Support | Loading Support | Notes |
|---|---|---|---|
| PhysPreset | ✅ | ✅ | |
| PhysConstraints | ✅ | ❌ | |
| DestructibleDef | ❌ | ❌ | |
| XAnimParts | ✅ | ✅ | |
| XModel | ✅ | ✅ | Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF. |
| Material | ✅ | ✅ | |
| MaterialTechniqueSet | ✅ | ❌ | For shaders: only dumps/loads shader bytecode. |
| GfxImage | ✅ | ❌ | A few special image encodings are not yet supported. |
| SndBank | ❌ | ❌ | |
| SndPatch | ❌ | ❌ | |
| clipMap_t | ❌ | ❌ | |
| ComWorld | ❌ | ❌ | |
| GameWorldSp | ❌ | ❌ | |
| GameWorldMp | ❌ | ❌ | |
| MapEnts | ✅ | ❌ | |
| GfxWorld | ❌ | ❌ | |
| GfxLightDef | ✅ | ✅ | |
| Font_s | ✅ | ✅ | |
| MenuList | ❌ | ❌ | |
| menuDef_t | ❌ | ❌ | |
| LocalizeEntry | ✅ | ✅ | |
| WeaponVariantDef | ✅ | ✅ | |
| SndDriverGlobals | ❌ | ❌ | |
| FxEffectDef | ❌ | ❌ | |
| FxImpactTable | ❌ | ❌ | |
| RawFile | ✅ | ✅ | |
| StringTable | ✅ | ✅ | |
| PackIndex | ❌ | ❌ | |
| XGlobals | ❌ | ❌ | |
| ddlRoot_t | ❌ | ❌ | |
| Glasses | ❌ | ❌ | |
| EmblemSet | ❌ | ❌ |
T6 (Call of Duty: Black Ops II)
| Asset Type | Dumping Support | Loading Support | Notes |
|---|---|---|---|
| PhysPreset | ✅ | ✅ | |
| PhysConstraints | ✅ | ✅ | |
| DestructibleDef | ❌ | ❌ | |
| XAnimParts | ✅ | ✅ | |
| XModel | ✅ | ✅ | Model data can be exported to XMODEL_EXPORT/XMODEL_BIN, OBJ, GLB/GLTF. |
| Material | ✅ | ✅ | Dumping/Loading is currently possible for materials in their compiled form. There is currently no material pipeline. |
| MaterialTechniqueSet | ✅ | ✅ | For shaders: only dumps/loads shader bytecode. |
| GfxImage | ✅ | ✅ | A few special image encodings are not yet supported. |
| SndBank | ✅ | ✅ | The current implementation is subject to change. |
| SndPatch | ❌ | ❌ | |
| clipMap_t | ❌ | ❌ | |
| ComWorld | ❌ | ❌ | |
| GameWorldSp | ❌ | ❌ | |
| GameWorldMp | ❌ | ❌ | |
| MapEnts | ⁉️ | ❌ | Entity string can be exported. Binary data currently not. |
| GfxWorld | ❌ | ❌ | |
| GfxLightDef | ✅ | ✅ | |
| Font_s | ✅ | ✅ | |
| FontIcon | ✅ | ✅ | |
| MenuList | ❌ | ❌ | |
| menuDef_t | ❌ | ❌ | |
| LocalizeEntry | ✅ | ✅ | |
| WeaponVariantDef | ✅ | ✅ | |
| WeaponAttachment | ✅ | ✅ | |
| WeaponAttachmentUnique | ✅ | ✅ | |
| WeaponCamo | ✅ | ✅ | |
| SndDriverGlobals | ✅ | ❌ | |
| FxEffectDef | ❌ | ❌ | |
| FxImpactTable | ❌ | ❌ | |
| RawFile | ✅ | ✅ | |
| StringTable | ✅ | ✅ | |
| LeaderboardDef | ✅ | ✅ | |
| XGlobals | ❌ | ❌ | |
| ddlRoot_t | ❌ | ❌ | |
| Glasses | ❌ | ❌ | |
| EmblemSet | ❌ | ❌ | |
| ScriptParseTree | ⁉️ | ⁉️ | Can only be dumped/loaded as binary. Editing is possible with GSC-Tool. Plutonium supports loading source files however. |
| KeyValuePairs | ✅ | ✅ | Is dumped/loaded as part of the .zone file. |
| VehicleDef | ✅ | ✅ | |
| MemoryBlock | ❌ | ❌ | |
| AddonMapEnts | ⁉️ | ❌ | MapEnts String can be exported. Binary data currently not. |
| TracerDef | ✅ | ✅ | |
| SkinnedVertsDef | ❌ | ❌ | |
| Qdb | ⁉️ | ⁉️ | Dumping/Loading is implemented as rawfiles. Their use is currently unknown. |
| Slug | ⁉️ | ⁉️ | Dumping/Loading is implemented as rawfiles. Their use is currently unknown. |
| FootstepTableDef | ❌ | ❌ | |
| FootstepFXTableDef | ❌ | ❌ | |
| ZBarrierDef | ✅ | ✅ |