mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2026-08-31 03:05:16 +00:00
feat: QOS (007: Quantum of Solace) support (#894)
* 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]>
This commit is contained in:
@@ -0,0 +1 @@
|
||||
// Game: 007 Quantum of Solace (QOS)
|
||||
@@ -0,0 +1,73 @@
|
||||
// Game: 007 Quantum of Solace (QOS)
|
||||
game QOS;
|
||||
wordsize 32;
|
||||
|
||||
// Game Assets
|
||||
asset PhysPreset AssetPhysPreset;
|
||||
asset PhysConstraints AssetPhysConstraints;
|
||||
asset DestructibleDef AssetDestructibleDef;
|
||||
asset XAnimParts AssetXAnim;
|
||||
asset XModel AssetXModel;
|
||||
asset Material AssetMaterial;
|
||||
asset MaterialTechniqueSet AssetTechniqueSet;
|
||||
asset GfxImage AssetImage;
|
||||
asset snd_alias_list_t AssetSound;
|
||||
asset SndCurve AssetSoundCurve;
|
||||
asset clipMap_t AssetClipMapMp;
|
||||
asset ComWorld AssetComWorld;
|
||||
asset GameWorldSp AssetGameWorldSp;
|
||||
asset GameWorldMp AssetGameWorldMp;
|
||||
asset MapEnts AssetMapEnts;
|
||||
asset GfxWorld AssetGfxWorld;
|
||||
asset GfxLightDef AssetLightDef;
|
||||
asset Font_s AssetFont;
|
||||
asset MenuList AssetMenuList;
|
||||
asset menuDef_t AssetMenu;
|
||||
asset LocalizeEntry AssetLocalize;
|
||||
asset WeaponDef AssetWeapon;
|
||||
asset FxEffectDef AssetFx;
|
||||
asset FxImpactTable AssetImpactFx;
|
||||
asset RawFile AssetRawFile;
|
||||
asset StringTable AssetStringTable;
|
||||
asset XmlTree AssetXmlTree;
|
||||
asset SceneAnimation AssetSceneAnimation;
|
||||
asset Cutscene AssetCutscene;
|
||||
asset CustomCamera AssetCustomCamera;
|
||||
|
||||
// Setup blocks
|
||||
block temp XFILE_BLOCK_TEMP default;
|
||||
block runtime XFILE_BLOCK_RUNTIME default;
|
||||
block normal XFILE_BLOCK_VIRTUAL default;
|
||||
block normal XFILE_BLOCK_LARGE;
|
||||
block normal XFILE_BLOCK_PHYSICAL;
|
||||
|
||||
#include "XAssets/PhysPreset.txt"
|
||||
#include "XAssets/PhysConstraints.txt"
|
||||
#include "XAssets/DestructibleDef.txt"
|
||||
#include "XAssets/XAnimParts.txt"
|
||||
#include "XAssets/XModel.txt"
|
||||
#include "XAssets/Material.txt"
|
||||
#include "XAssets/MaterialTechniqueSet.txt"
|
||||
#include "XAssets/GfxImage.txt"
|
||||
#include "XAssets/snd_alias_list_t.txt"
|
||||
#include "XAssets/SndCurve.txt"
|
||||
#include "XAssets/clipMap_t.txt"
|
||||
#include "XAssets/ComWorld.txt"
|
||||
#include "XAssets/GameWorldSp.txt"
|
||||
#include "XAssets/GameWorldMp.txt"
|
||||
#include "XAssets/MapEnts.txt"
|
||||
#include "XAssets/GfxWorld.txt"
|
||||
#include "XAssets/GfxLightDef.txt"
|
||||
#include "XAssets/Font_s.txt"
|
||||
#include "XAssets/MenuList.txt"
|
||||
#include "XAssets/menuDef_t.txt"
|
||||
#include "XAssets/LocalizeEntry.txt"
|
||||
#include "XAssets/WeaponDef.txt"
|
||||
#include "XAssets/FxEffectDef.txt"
|
||||
#include "XAssets/FxImpactTable.txt"
|
||||
#include "XAssets/RawFile.txt"
|
||||
#include "XAssets/StringTable.txt"
|
||||
#include "XAssets/XmlTree.txt"
|
||||
#include "XAssets/SceneAnimation.txt"
|
||||
#include "XAssets/Cutscene.txt"
|
||||
#include "XAssets/CustomCamera.txt"
|
||||
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
// Entry point for QOS code generation
|
||||
|
||||
// clang-format off: Order of includes matters here
|
||||
|
||||
#include "../Common.h"
|
||||
#include "../../../Common/Game/QOS/QOS_Assets.h"
|
||||
|
||||
// clang-format on
|
||||
|
||||
// EOF
|
||||
@@ -0,0 +1,16 @@
|
||||
// =========================================
|
||||
// ComWorld
|
||||
// =========================================
|
||||
use ComWorld;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set count primaryLights primaryLightCount;
|
||||
set count unknownCells unknownCellCount;
|
||||
|
||||
// ComPrimaryLight
|
||||
use ComPrimaryLight;
|
||||
set string defName;
|
||||
|
||||
// ComWorldUnknownCell
|
||||
use ComWorldUnknownCell;
|
||||
set count data 5120;
|
||||
@@ -0,0 +1,13 @@
|
||||
// =========================================
|
||||
// CustomCamera
|
||||
// =========================================
|
||||
use CustomCamera;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set count cameras cameraCount;
|
||||
|
||||
// CustomCameraDef
|
||||
use CustomCameraDef;
|
||||
set string name;
|
||||
set string unknownString0;
|
||||
set string unknownString1;
|
||||
@@ -0,0 +1,25 @@
|
||||
// =========================================
|
||||
// Cutscene
|
||||
// =========================================
|
||||
use Cutscene;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set count entities entityCount;
|
||||
set count sections sectionCount;
|
||||
|
||||
// CutsceneEntityDef
|
||||
use CutsceneEntityDef;
|
||||
set string unknownString0;
|
||||
set string unknownString1;
|
||||
set scriptstring unknownScriptString0;
|
||||
set count modelAttachments modelAttachmentCount;
|
||||
|
||||
// CutsceneModelAttachment
|
||||
use CutsceneModelAttachment;
|
||||
set string unknownString0;
|
||||
set string unknownString1;
|
||||
|
||||
// CutsceneSectionDef
|
||||
use CutsceneSectionDef;
|
||||
set count entities entityCount;
|
||||
set count sceneAnimations sceneAnimationCount;
|
||||
@@ -0,0 +1,25 @@
|
||||
// =========================================
|
||||
// DestructibleDef
|
||||
// =========================================
|
||||
use DestructibleDef;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set count pieces numPieces;
|
||||
|
||||
// DestructiblePiece
|
||||
use DestructiblePiece;
|
||||
set string attachBone;
|
||||
set scriptstring attachBoneHash;
|
||||
|
||||
// DestructibleModel
|
||||
use DestructibleModel;
|
||||
set string breakNotify;
|
||||
|
||||
// SndAliasCustom
|
||||
use SndAliasCustom;
|
||||
set count name 1;
|
||||
set reusable name;
|
||||
set condition sound never;
|
||||
|
||||
// snd_alias_list_name
|
||||
set string snd_alias_list_name::soundName;
|
||||
@@ -0,0 +1,8 @@
|
||||
// =========================================
|
||||
// Font_s
|
||||
// =========================================
|
||||
use Font_s;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string fontName;
|
||||
set reusable glyphs;
|
||||
set count glyphs glyphCount;
|
||||
@@ -0,0 +1,43 @@
|
||||
// =========================================
|
||||
// FxEffectDef
|
||||
// =========================================
|
||||
use FxEffectDef;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set count elemDefs elemDefCountEmission + elemDefCountLooping + elemDefCountOneShot;
|
||||
|
||||
// FxElemDef
|
||||
use FxElemDef;
|
||||
set count velSamples velIntervalCount + 1;
|
||||
set count visSamples visStateIntervalCount + 1;
|
||||
|
||||
// FxElemDefVisuals
|
||||
use FxElemDefVisuals;
|
||||
set condition markArray FxElemDef::elemType == FX_ELEM_TYPE_DECAL;
|
||||
set count markArray FxElemDef::visualCount;
|
||||
set condition array FxElemDef::visualCount > 1;
|
||||
set count array FxElemDef::visualCount;
|
||||
|
||||
// FxElemVisuals
|
||||
use FxElemVisuals;
|
||||
set condition anonymous never;
|
||||
set condition model FxElemDef::elemType == FX_ELEM_TYPE_MODEL;
|
||||
set condition effectDef FxElemDef::elemType == FX_ELEM_TYPE_RUNNER;
|
||||
set condition soundName FxElemDef::elemType == FX_ELEM_TYPE_SOUND;
|
||||
set string soundName;
|
||||
set condition material FxElemDef::elemType == FX_ELEM_TYPE_SPRITE_BILLBOARD
|
||||
|| FxElemDef::elemType == FX_ELEM_TYPE_SPRITE_ORIENTED
|
||||
|| FxElemDef::elemType == FX_ELEM_TYPE_TAIL
|
||||
|| FxElemDef::elemType == FX_ELEM_TYPE_TRAIL
|
||||
|| FxElemDef::elemType == FX_ELEM_TYPE_CLOUD;
|
||||
|
||||
// FxEffectDefRef
|
||||
use FxEffectDefRef;
|
||||
set condition handle never;
|
||||
set string name;
|
||||
set assetref name AssetFx;
|
||||
|
||||
// FxTrailDef
|
||||
use FxTrailDef;
|
||||
set count verts vertCount;
|
||||
set count inds indCount;
|
||||
@@ -0,0 +1,7 @@
|
||||
// =========================================
|
||||
// FxImpactTable
|
||||
// =========================================
|
||||
use FxImpactTable;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set count table 13;
|
||||
@@ -0,0 +1,6 @@
|
||||
// =========================================
|
||||
// GameWorldMp
|
||||
// =========================================
|
||||
use GameWorldMp;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
@@ -0,0 +1,39 @@
|
||||
// =========================================
|
||||
// GameWorldSp
|
||||
// =========================================
|
||||
use GameWorldSp;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
|
||||
// PathData
|
||||
use PathData;
|
||||
set count nodes nodeCount;
|
||||
set condition basenodes never;
|
||||
set count chainNodeForNode nodeCount;
|
||||
set count nodeForChainNode nodeCount;
|
||||
set count pathVis visBytes;
|
||||
set count nodeTree nodeTreeCount;
|
||||
|
||||
// pathnode_t
|
||||
set condition pathnode_t::transient never;
|
||||
|
||||
// pathnode_constant_t
|
||||
use pathnode_constant_t;
|
||||
set scriptstring targetname;
|
||||
set scriptstring script_linkName;
|
||||
set scriptstring script_noteworthy;
|
||||
set scriptstring target;
|
||||
set scriptstring animscript;
|
||||
set count Links totalLinkCount;
|
||||
|
||||
// pathnode_dynamic_t
|
||||
set condition pathnode_dynamic_t::pOwner never;
|
||||
|
||||
// pathnode_tree_t
|
||||
use pathnode_tree_t;
|
||||
set condition u::child axis >= 0;
|
||||
set reusable u::child;
|
||||
|
||||
// pathnode_tree_nodes_t
|
||||
set count pathnode_tree_nodes_t::nodes nodeCount;
|
||||
set reusable pathnode_tree_nodes_t::nodes;
|
||||
@@ -0,0 +1,20 @@
|
||||
// =========================================
|
||||
// GfxImage
|
||||
// =========================================
|
||||
use GfxImage;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set action OnImageLoaded(GfxImage);
|
||||
set string name;
|
||||
reorder:
|
||||
name
|
||||
texture;
|
||||
|
||||
// GfxTexture
|
||||
use GfxTexture;
|
||||
set reusable loadDef;
|
||||
set block loadDef XFILE_BLOCK_TEMP;
|
||||
|
||||
// GfxImageLoadDef
|
||||
use GfxImageLoadDef;
|
||||
set action LoadImageData(GfxImageLoadDef, GfxImage);
|
||||
set arraysize data resourceSize;
|
||||
@@ -0,0 +1,6 @@
|
||||
// =========================================
|
||||
// GfxLightDef
|
||||
// =========================================
|
||||
use GfxLightDef;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
@@ -0,0 +1,190 @@
|
||||
// =========================================
|
||||
// GfxWorld
|
||||
// =========================================
|
||||
use GfxWorld;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set string baseName;
|
||||
set reusable planes;
|
||||
set count planes planeCount;
|
||||
set count nodes nodeCount;
|
||||
set count indices indexCount;
|
||||
set count surfaces surfaceCount;
|
||||
set count skyStartSurfs skySurfCount;
|
||||
set string skyBoxModel;
|
||||
set reusable sunLight;
|
||||
set count reflectionProbes reflectionProbeCount;
|
||||
set count cullGroups cullGroupCount;
|
||||
set count smodelDrawInsts smodelCount;
|
||||
set count smodelInsts smodelCount;
|
||||
set count cells cellCount;
|
||||
set count lightmaps lightmapCount;
|
||||
set count models modelCount;
|
||||
set count materialMemory materialMemoryCount;
|
||||
set block smodelVisData0 XFILE_BLOCK_RUNTIME;
|
||||
set count smodelVisData0 smodelCount;
|
||||
set block smodelVisData1 XFILE_BLOCK_RUNTIME;
|
||||
set count smodelVisData1 smodelCount;
|
||||
set block smodelVisData2 XFILE_BLOCK_RUNTIME;
|
||||
set count smodelVisData2 smodelCount;
|
||||
set block smodelVisData3 XFILE_BLOCK_RUNTIME;
|
||||
set count smodelVisData3 smodelCount;
|
||||
set block surfaceVisData0 XFILE_BLOCK_RUNTIME;
|
||||
set count surfaceVisData0 models::surfaceCount;
|
||||
set block surfaceVisData1 XFILE_BLOCK_RUNTIME;
|
||||
set count surfaceVisData1 models::surfaceCount;
|
||||
set block surfaceVisData2 XFILE_BLOCK_RUNTIME;
|
||||
set count surfaceVisData2 models::surfaceCount;
|
||||
set block surfaceVisData3 XFILE_BLOCK_RUNTIME;
|
||||
set count surfaceVisData3 models::surfaceCount;
|
||||
set block surfaceMaterials XFILE_BLOCK_RUNTIME;
|
||||
set count surfaceMaterials models::surfaceCount;
|
||||
set allocalign surfaceMaterials 4;
|
||||
set block surfaceCastsSunShadow XFILE_BLOCK_RUNTIME;
|
||||
set count surfaceCastsSunShadow (models::surfaceCount / 32) + 1;
|
||||
set block cellCasterBits XFILE_BLOCK_RUNTIME;
|
||||
set count cellCasterBits cellCount * ((cellCount + 31) / 32);
|
||||
set block cellHasSunLitSurfsBits XFILE_BLOCK_RUNTIME;
|
||||
set count cellHasSunLitSurfsBits (cellCount * 512) + 1;
|
||||
set block dynEntVisData0_0 XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntVisData0_0 gfxSceneDynModelCount;
|
||||
set block dynEntVisData0_1 XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntVisData0_1 gfxSceneDynModelCount;
|
||||
set block dynEntVisData0_2 XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntVisData0_2 gfxSceneDynModelCount;
|
||||
set block dynEntVisData0_3 XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntVisData0_3 gfxSceneDynModelCount;
|
||||
set block dynEntVisData1_0 XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntVisData1_0 gfxSceneDynBrushCount;
|
||||
set block dynEntVisData1_1 XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntVisData1_1 gfxSceneDynBrushCount;
|
||||
set block dynEntVisData1_2 XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntVisData1_2 gfxSceneDynBrushCount;
|
||||
set block dynEntVisData1_3 XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntVisData1_3 gfxSceneDynBrushCount;
|
||||
set block dynEntCellBits0 XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntCellBits0 (cellCount * gfxSceneDynModelCount / 8) + 1;
|
||||
set block dynEntCellBits1 XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntCellBits1 (cellCount * gfxSceneDynBrushCount / 8) + 1;
|
||||
set block dynEntSortList0 XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntSortList0 gfxSceneDynModelCount;
|
||||
set block dynEntSortList1 XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntSortList1 gfxSceneDynBrushCount;
|
||||
set block unknownGfxDynEntCellRef0 XFILE_BLOCK_RUNTIME;
|
||||
set count unknownGfxDynEntCellRef0 unknownGfxDynEntCellRefCount0;
|
||||
set block unknownGfxDynEntCellRef1 XFILE_BLOCK_RUNTIME;
|
||||
set count unknownGfxDynEntCellRef1 unknownGfxDynEntCellRefCount1;
|
||||
set block gfxSceneDynModel XFILE_BLOCK_RUNTIME;
|
||||
set count gfxSceneDynModel gfxSceneDynModelCount;
|
||||
set block gfxSceneDynBrush XFILE_BLOCK_RUNTIME;
|
||||
set count gfxSceneDynBrush gfxSceneDynBrushCount;
|
||||
set count sortedSurfIndex models::surfaceCount;
|
||||
set block primaryLightEntityShadowVis XFILE_BLOCK_RUNTIME;
|
||||
set count primaryLightEntityShadowVis (primaryLightCount - sunPrimaryLightIndex - 1) * 0x1000;
|
||||
set block primaryLightDynEntShadowVis0 XFILE_BLOCK_RUNTIME;
|
||||
set count primaryLightDynEntShadowVis0 gfxSceneDynModelCount * (primaryLightCount - sunPrimaryLightIndex - 1);
|
||||
set block primaryLightDynEntShadowVis1 XFILE_BLOCK_RUNTIME;
|
||||
set count primaryLightDynEntShadowVis1 gfxSceneDynBrushCount * (primaryLightCount - sunPrimaryLightIndex - 1);
|
||||
set count shadowGeom primaryLightCount;
|
||||
set count massiveAdSurface massiveAdSurfaceCount;
|
||||
reorder:
|
||||
name
|
||||
baseName
|
||||
planes
|
||||
nodes
|
||||
indices
|
||||
surfaces
|
||||
skyStartSurfs
|
||||
skyImage
|
||||
skyBoxModel
|
||||
sunLight
|
||||
reflectionProbes
|
||||
cullGroups
|
||||
smodelDrawInsts
|
||||
smodelInsts
|
||||
cells
|
||||
lightmaps
|
||||
lightGrid
|
||||
models
|
||||
materialMemory
|
||||
vd
|
||||
vld
|
||||
sun
|
||||
outdoorImage
|
||||
smodelVisData0
|
||||
smodelVisData1
|
||||
smodelVisData2
|
||||
smodelVisData3
|
||||
surfaceVisData0
|
||||
surfaceVisData1
|
||||
surfaceVisData2
|
||||
surfaceVisData3
|
||||
surfaceMaterials
|
||||
surfaceCastsSunShadow
|
||||
cellCasterBits
|
||||
cellHasSunLitSurfsBits
|
||||
dynEntVisData0_0
|
||||
dynEntVisData1_0
|
||||
dynEntVisData0_1
|
||||
dynEntVisData1_1
|
||||
dynEntVisData0_2
|
||||
dynEntVisData1_2
|
||||
dynEntVisData0_3
|
||||
dynEntVisData1_3
|
||||
dynEntCellBits0
|
||||
dynEntCellBits1
|
||||
dynEntSortList0
|
||||
dynEntSortList1
|
||||
unknownGfxDynEntCellRef0
|
||||
unknownGfxDynEntCellRef1
|
||||
gfxSceneDynModel
|
||||
gfxSceneDynBrush
|
||||
primaryLightEntityShadowVis
|
||||
primaryLightDynEntShadowVis0
|
||||
primaryLightDynEntShadowVis1
|
||||
sortedSurfIndex
|
||||
shadowGeom
|
||||
massiveAdSurface
|
||||
unknownMaterial;
|
||||
|
||||
// GfxWorldVertexData
|
||||
use GfxWorldVertexData;
|
||||
set count vertices GfxWorld::vertexCount;
|
||||
set condition worldVb never;
|
||||
|
||||
// GfxWorldVertexLayerData
|
||||
use GfxWorldVertexLayerData;
|
||||
set count data GfxWorld::vertexLayerDataSize;
|
||||
set condition layerVb never;
|
||||
|
||||
// GfxCell
|
||||
use GfxCell;
|
||||
set count portals portalCount;
|
||||
set count cullGroups cullGroupCount;
|
||||
set count reflectionProbes reflectionProbeCount;
|
||||
|
||||
// GfxAabbTree
|
||||
use GfxAabbTree;
|
||||
set reusable smodelIndexes;
|
||||
set count smodelIndexes smodelIndexCount;
|
||||
set count children childCount;
|
||||
|
||||
// GfxAabbTreeChildren
|
||||
use GfxAabbTreeChildren;
|
||||
|
||||
// GfxPortal
|
||||
use GfxPortal;
|
||||
set reusable cell;
|
||||
set count vertices vertexCount;
|
||||
|
||||
// GfxLightGrid
|
||||
use GfxLightGrid;
|
||||
set count rowDataStart maxs[rowAxis] - mins[rowAxis] + 1;
|
||||
set count rawRowData rawRowDataSize;
|
||||
set count entries entryCount;
|
||||
set count colors colorCount;
|
||||
|
||||
// GfxShadowGeometry
|
||||
use GfxShadowGeometry;
|
||||
set count sortedSurfIndex surfaceCount;
|
||||
set count smodelIndex smodelCount;
|
||||
@@ -0,0 +1,7 @@
|
||||
// =========================================
|
||||
// LocalizeEntry
|
||||
// =========================================
|
||||
use LocalizeEntry;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set string value;
|
||||
@@ -0,0 +1,7 @@
|
||||
// =========================================
|
||||
// MapEnts
|
||||
// =========================================
|
||||
use MapEnts;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set count entityString numEntityChars;
|
||||
@@ -0,0 +1,28 @@
|
||||
// =========================================
|
||||
// Material
|
||||
// =========================================
|
||||
use Material;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set allocalign Material 4;
|
||||
set string info::name;
|
||||
set reusable textureTable;
|
||||
set count textureTable textureCount;
|
||||
set reusable constantTable;
|
||||
set block constantTable XFILE_BLOCK_VIRTUAL;
|
||||
set count constantTable constantCount;
|
||||
set reusable stateBitsTable;
|
||||
set count stateBitsTable stateBitsCount;
|
||||
|
||||
// MaterialTextureDef
|
||||
use MaterialTextureDef;
|
||||
set condition u::water semantic == TS_WATER_MAP;
|
||||
set reusable u::water;
|
||||
|
||||
// MaterialWaterDef
|
||||
use MaterialWaterDef;
|
||||
set reusable water;
|
||||
|
||||
// water_t
|
||||
use water_t;
|
||||
set count H0 N * M;
|
||||
set count wTerm N * M;
|
||||
@@ -0,0 +1,52 @@
|
||||
// =========================================
|
||||
// MaterialTechniqueSet
|
||||
// =========================================
|
||||
use MaterialTechniqueSet;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set reusable techniques;
|
||||
|
||||
// MaterialTechnique
|
||||
use MaterialTechnique;
|
||||
set string name;
|
||||
set arraysize passArray passCount;
|
||||
reorder:
|
||||
passArray
|
||||
name;
|
||||
|
||||
// MaterialPass
|
||||
use MaterialPass;
|
||||
set count args perPrimArgCount + perObjArgCount + stableArgCount;
|
||||
set reusable vertexDecl;
|
||||
set reusable vertexShader;
|
||||
set reusable pixelShader;
|
||||
|
||||
// MaterialShaderArgument
|
||||
use MaterialShaderArgument;
|
||||
set condition u::literalConst type == MTL_ARG_LITERAL_VERTEX_CONST
|
||||
|| type == MTL_ARG_LITERAL_PIXEL_CONST;
|
||||
set reusable u::literalConst;
|
||||
set condition u::codeConst type == MTL_ARG_CODE_VERTEX_CONST
|
||||
|| type == MTL_ARG_CODE_PIXEL_CONST;
|
||||
set condition u::codeSampler type == MTL_ARG_CODE_PIXEL_SAMPLER;
|
||||
set condition u::nameHash type == MTL_ARG_MATERIAL_VERTEX_CONST
|
||||
|| type == MTL_ARG_MATERIAL_PIXEL_CONST || type == MTL_ARG_MATERIAL_PIXEL_SAMPLER;
|
||||
|
||||
// MaterialVertexShader
|
||||
use MaterialVertexShader;
|
||||
set string name;
|
||||
|
||||
// GfxVertexShaderLoadDef
|
||||
use GfxVertexShaderLoadDef;
|
||||
set count program programSize;
|
||||
|
||||
// MaterialPixelShader
|
||||
use MaterialPixelShader;
|
||||
set string name;
|
||||
|
||||
// GfxPixelShaderLoadDef
|
||||
use GfxPixelShaderLoadDef;
|
||||
set count program programSize;
|
||||
|
||||
// MaterialVertexStreamRouting
|
||||
set condition MaterialVertexStreamRouting::decl never;
|
||||
@@ -0,0 +1,7 @@
|
||||
// =========================================
|
||||
// MenuList
|
||||
// =========================================
|
||||
use MenuList;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set count menus menuCount;
|
||||
@@ -0,0 +1,11 @@
|
||||
// =========================================
|
||||
// PhysConstraints
|
||||
// =========================================
|
||||
use PhysConstraints;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
|
||||
// PhysConstraint
|
||||
use PhysConstraint;
|
||||
set string target_bone1;
|
||||
set string target_bone2;
|
||||
@@ -0,0 +1,7 @@
|
||||
// =========================================
|
||||
// PhysPreset
|
||||
// =========================================
|
||||
use PhysPreset;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set string sndAliasPrefix;
|
||||
@@ -0,0 +1,7 @@
|
||||
// =========================================
|
||||
// RawFile
|
||||
// =========================================
|
||||
use RawFile;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set count buffer len + 1;
|
||||
@@ -0,0 +1,12 @@
|
||||
// =========================================
|
||||
// SceneAnimation
|
||||
// =========================================
|
||||
use SceneAnimation;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set count animReferences animReferenceCount;
|
||||
|
||||
// AnimReference
|
||||
use AnimReference;
|
||||
set string unknownString0;
|
||||
set scriptstring unknownScriptString0;
|
||||
@@ -0,0 +1,6 @@
|
||||
// =========================================
|
||||
// SndCurve
|
||||
// =========================================
|
||||
use SndCurve;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
@@ -0,0 +1,7 @@
|
||||
// =========================================
|
||||
// StringTable
|
||||
// =========================================
|
||||
use StringTable;
|
||||
set string name;
|
||||
set string values;
|
||||
set count values columnCount * rowCount;
|
||||
@@ -0,0 +1,48 @@
|
||||
// =========================================
|
||||
// WeaponDef
|
||||
// =========================================
|
||||
use WeaponDef;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set string displayName;
|
||||
set string overlayName;
|
||||
set string szXAnims;
|
||||
set assetref szXAnims AssetXAnim;
|
||||
set string modeName;
|
||||
set string unknownString196;
|
||||
set reusable bounceSound;
|
||||
set count bounceSound 30;
|
||||
set string unknownString616;
|
||||
set string unknownString620;
|
||||
set string unknownString652;
|
||||
set string unknownString660;
|
||||
set string unknownString680;
|
||||
set string unknownString992;
|
||||
set string unknownString1220;
|
||||
set string unknownString1300;
|
||||
set string unknownString1308;
|
||||
set string unknownStrings1380;
|
||||
set string aiVsAiAccuracyGraphName;
|
||||
set string aiVsPlayerAccuracyGraphName;
|
||||
set reusable aiVsAiAccuracyGraphKnots;
|
||||
set count aiVsAiAccuracyGraphKnots aiVsAiAccuracyGraphKnotCount;
|
||||
set reusable aiVsPlayerAccuracyGraphKnots;
|
||||
set count aiVsPlayerAccuracyGraphKnots aiVsPlayerAccuracyGraphKnotCount;
|
||||
set reusable originalAiVsAiAccuracyGraphKnots;
|
||||
set count originalAiVsAiAccuracyGraphKnots aiVsAiAccuracyGraphKnotCount;
|
||||
set reusable originalAiVsPlayerAccuracyGraphKnots;
|
||||
set count originalAiVsPlayerAccuracyGraphKnots aiVsPlayerAccuracyGraphKnotCount;
|
||||
set string unknownString2192;
|
||||
set string unknownString2196;
|
||||
set string unknownString2216;
|
||||
set string unknownString2332;
|
||||
set string unknownString2336;
|
||||
|
||||
reorder:
|
||||
...
|
||||
aiVsAiAccuracyGraphName
|
||||
aiVsAiAccuracyGraphKnots
|
||||
originalAiVsAiAccuracyGraphKnots
|
||||
aiVsPlayerAccuracyGraphName
|
||||
aiVsPlayerAccuracyGraphKnots
|
||||
originalAiVsPlayerAccuracyGraphKnots;
|
||||
@@ -0,0 +1,70 @@
|
||||
// =========================================
|
||||
// XAnimParts
|
||||
// =========================================
|
||||
use XAnimParts;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set string unknownString;
|
||||
set scriptstring names;
|
||||
set count names boneCount[9];
|
||||
set count notify notifyCount;
|
||||
set count deltaPart 1;
|
||||
set count dataByte dataByteCount;
|
||||
set count dataShort dataShortCount;
|
||||
set count dataInt dataIntCount;
|
||||
set count randomDataShort randomDataShortCount;
|
||||
set count randomDataByte randomDataByteCount;
|
||||
set count randomDataInt randomDataIntCount;
|
||||
set count indices::_1 indexCount;
|
||||
set count indices::_2 indexCount;
|
||||
set condition indices::_1 numframes < 256;
|
||||
set condition indices::data never;
|
||||
reorder:
|
||||
name
|
||||
unknownString
|
||||
names
|
||||
notify
|
||||
deltaPart
|
||||
dataByte
|
||||
dataShort
|
||||
dataInt
|
||||
randomDataShort
|
||||
randomDataByte
|
||||
randomDataInt
|
||||
indices;
|
||||
|
||||
// XAnimNotifyInfo
|
||||
set scriptstring XAnimNotifyInfo::name;
|
||||
|
||||
// XAnimDeltaPart
|
||||
use XAnimDeltaPart;
|
||||
set count trans 1;
|
||||
set count quat 1;
|
||||
|
||||
// XAnimPartTrans
|
||||
use XAnimPartTrans;
|
||||
set condition u::frames size > 0;
|
||||
set condition u::frames::indices::_1 XAnimParts::numframes < 256;
|
||||
set arraysize u::frames::indices::_1 size + 1;
|
||||
set arraysize u::frames::indices::_2 size + 1;
|
||||
set condition u::frames::frames::_1 smallTrans;
|
||||
set count u::frames::frames::_1 size + 1;
|
||||
set count u::frames::frames::_2 size + 1;
|
||||
|
||||
// XAnimPartTransFrames
|
||||
reorder XAnimPartTransFrames:
|
||||
indices
|
||||
frames;
|
||||
|
||||
// XAnimDeltaPartQuat
|
||||
use XAnimDeltaPartQuat;
|
||||
set condition u::frames size > 0;
|
||||
set condition u::frames::indices::_1 XAnimParts::numframes < 256;
|
||||
set arraysize u::frames::indices::_1 size + 1;
|
||||
set arraysize u::frames::indices::_2 size + 1;
|
||||
set count u::frames::frames size + 1;
|
||||
|
||||
// XAnimDeltaPartQuatDataFrames
|
||||
reorder XAnimDeltaPartQuatDataFrames:
|
||||
indices
|
||||
frames;
|
||||
@@ -0,0 +1,83 @@
|
||||
// =========================================
|
||||
// XModel
|
||||
// =========================================
|
||||
use XModel;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set scriptstring boneNames;
|
||||
set reusable boneNames;
|
||||
set count boneNames numBones;
|
||||
set reusable parentList;
|
||||
set count parentList numBones - numRootBones;
|
||||
set reusable quats;
|
||||
set count quats numBones - numRootBones;
|
||||
set reusable trans;
|
||||
set count trans (numBones - numRootBones) * 4;
|
||||
set reusable partClassification;
|
||||
set count partClassification numBones;
|
||||
set reusable baseMat;
|
||||
set count baseMat numBones;
|
||||
set count surfs numsurfs;
|
||||
set count materialHandles numsurfs;
|
||||
set count collSurfs numCollSurfs;
|
||||
set count boneInfo numBones;
|
||||
set reusable physGeoms;
|
||||
set count physGeoms 1;
|
||||
|
||||
// PhysGeomList
|
||||
set count PhysGeomList::geoms count;
|
||||
|
||||
// PhysGeomInfo
|
||||
use PhysGeomInfo;
|
||||
set reusable brush;
|
||||
|
||||
// BrushWrapper
|
||||
use BrushWrapper;
|
||||
set count sides numsides;
|
||||
set count baseAdjacentSide totalEdgeCount;
|
||||
set reusable verts;
|
||||
set count verts numverts;
|
||||
set reusable planes;
|
||||
set count planes numsides;
|
||||
|
||||
// cbrushside_t
|
||||
use cbrushside_t;
|
||||
set reusable plane;
|
||||
|
||||
// XSurface
|
||||
use XSurface;
|
||||
set reusable verts0;
|
||||
set allocalign verts0 16;
|
||||
set count verts0 vertCount;
|
||||
set condition vb0 never;
|
||||
set reusable verts1;
|
||||
set count verts1 vertCount;
|
||||
set condition vb1 never;
|
||||
set reusable vertList;
|
||||
set count vertList vertListCount;
|
||||
set reusable triIndices;
|
||||
set count triIndices triCount;
|
||||
set condition indexBuffer never;
|
||||
reorder:
|
||||
vertInfo
|
||||
verts0
|
||||
verts1
|
||||
vertList
|
||||
triIndices;
|
||||
|
||||
// XSurfaceVertexInfo
|
||||
use XSurfaceVertexInfo;
|
||||
set reusable vertsBlend;
|
||||
set count vertsBlend vertCount[0]
|
||||
+ 3 * vertCount[1]
|
||||
+ 5 * vertCount[2]
|
||||
+ 7 * vertCount[3];
|
||||
set reusable tensionData;
|
||||
set count tensionData 12 * (vertCount[0]
|
||||
+ vertCount[1]
|
||||
+ vertCount[2]
|
||||
+ vertCount[3]);
|
||||
|
||||
// XModelCollSurf_s
|
||||
use XModelCollSurf_s;
|
||||
set count collTris numCollTris;
|
||||
@@ -0,0 +1,23 @@
|
||||
// =========================================
|
||||
// XmlTree
|
||||
// =========================================
|
||||
use XmlTree;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
|
||||
// xmlNodeList
|
||||
use xmlNodeList;
|
||||
set count nodes nodeCount;
|
||||
|
||||
// xmlNode
|
||||
use xmlNode;
|
||||
set string name;
|
||||
|
||||
// xmlNodeComplex
|
||||
use xmlNodeComplex;
|
||||
set string name;
|
||||
|
||||
// xmlAttribute
|
||||
use xmlAttribute;
|
||||
set string name;
|
||||
set string value;
|
||||
@@ -0,0 +1,80 @@
|
||||
// =========================================
|
||||
// clipMap_t
|
||||
// =========================================
|
||||
use clipMap_t;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set reusable planes;
|
||||
set count planes planeCount;
|
||||
set count staticModelList numStaticModels;
|
||||
set count materials numMaterials;
|
||||
set count brushsides numBrushSides;
|
||||
set count brushEdges numBrushEdges;
|
||||
set count nodes numNodes;
|
||||
set count leafs numLeafs;
|
||||
set count leafbrushNodes leafbrushNodesCount;
|
||||
set count leafbrushes numLeafBrushes;
|
||||
set count leafsurfaces numLeafSurfaces;
|
||||
set count verts vertCount;
|
||||
set count brushVerts numBrushVerts;
|
||||
set count uinds nuinds;
|
||||
set count triIndices 3 * triCount;
|
||||
set count triEdgeIsWalkable ((3 * triCount + 31) / 32) * 4;
|
||||
set count borders borderCount;
|
||||
set count partitions partitionCount;
|
||||
set count aabbTrees aabbTreeCount;
|
||||
set count cmodels numSubModels;
|
||||
set count brushes numBrushes;
|
||||
set count visibility numClusters * clusterBytes;
|
||||
set reusable box_brush;
|
||||
set count dynEntDefList[0] dynEntCount[0];
|
||||
set count dynEntDefList[1] dynEntCount[1];
|
||||
set block dynEntClientList XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntClientList[0] dynEntCount[0];
|
||||
set count dynEntClientList[1] dynEntCount[1];
|
||||
set block dynEntServerList XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntServerList[0] dynEntCount[2];
|
||||
set count dynEntServerList[1] dynEntCount[3];
|
||||
set block dynEntCollList XFILE_BLOCK_RUNTIME;
|
||||
set count dynEntCollList[0] dynEntCount[0];
|
||||
set count dynEntCollList[1] dynEntCount[1];
|
||||
set count dynEntCollList[2] dynEntCount[2];
|
||||
set count dynEntCollList[3] dynEntCount[3];
|
||||
set count constraints num_constraints;
|
||||
reorder:
|
||||
...
|
||||
leafs
|
||||
leafbrushes
|
||||
leafbrushNodes
|
||||
leafsurfaces;
|
||||
|
||||
// cbrushside_t
|
||||
set reusable cbrushside_t::plane;
|
||||
|
||||
// cNode_t
|
||||
set reusable cNode_t::plane;
|
||||
|
||||
// cLeafBrushNode_s
|
||||
use cLeafBrushNode_s;
|
||||
set condition data::leaf leafBrushCount > 0;
|
||||
set reusable data::leaf::brushes;
|
||||
set count data::leaf::brushes leafBrushCount;
|
||||
|
||||
// CollisionPartition
|
||||
use CollisionPartition;
|
||||
set reusable borders;
|
||||
|
||||
// cbrush_t
|
||||
use cbrush_t;
|
||||
set reusable sides;
|
||||
set reusable baseAdjacentSide;
|
||||
set reusable verts;
|
||||
|
||||
// DynEntityDef
|
||||
use DynEntityDef;
|
||||
set reusable destroyPieces;
|
||||
|
||||
// XModelPieces
|
||||
use XModelPieces;
|
||||
set string name;
|
||||
set count pieces numpieces;
|
||||
@@ -0,0 +1,86 @@
|
||||
// =========================================
|
||||
// menuDef_t
|
||||
// =========================================
|
||||
use menuDef_t;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string window::name;
|
||||
set string font;
|
||||
set string onOpen;
|
||||
set string onClose;
|
||||
set string onESC;
|
||||
set reusable visibleExp;
|
||||
set string allowedBinding;
|
||||
set string soundName;
|
||||
set reusable rectXExp;
|
||||
set reusable rectYExp;
|
||||
set count items itemCount;
|
||||
|
||||
// windowDef_t
|
||||
use windowDef_t;
|
||||
set string name;
|
||||
set string group;
|
||||
|
||||
// ItemKeyHandler
|
||||
set string ItemKeyHandler::action;
|
||||
|
||||
// statement_s
|
||||
set count statement_s::entries numEntries;
|
||||
|
||||
// expressionEntry
|
||||
set condition expressionEntry::data::operand type == EET_OPERAND;
|
||||
|
||||
// Operand
|
||||
use Operand;
|
||||
set condition internals::intVal dataType == VAL_INT;
|
||||
set condition internals::floatVal dataType == VAL_FLOAT;
|
||||
set condition internals::string dataType == VAL_STRING;
|
||||
set string internals::string;
|
||||
|
||||
// itemDef_s
|
||||
use itemDef_s;
|
||||
set string text;
|
||||
set condition parent never;
|
||||
set string mouseEnterText;
|
||||
set string mouseExitText;
|
||||
set string mouseEnter;
|
||||
set string mouseExit;
|
||||
set string action;
|
||||
set string onAccept;
|
||||
set string onFocus;
|
||||
set string leaveFocus;
|
||||
set string dvar;
|
||||
set string dvarTest;
|
||||
set string enableDvar;
|
||||
set reusable visibleExp;
|
||||
set reusable textExp;
|
||||
set reusable materialExp;
|
||||
set reusable rectXExp;
|
||||
set reusable rectYExp;
|
||||
set reusable rectWExp;
|
||||
set reusable rectHExp;
|
||||
set reusable unknownStatement0;
|
||||
|
||||
// itemDefData_t
|
||||
use itemDefData_t;
|
||||
set string enumDvarName;
|
||||
set condition data never;
|
||||
set condition listBox itemDef_s::type == ITEM_TYPE_LISTBOX;
|
||||
set condition editField itemDef_s::type == ITEM_TYPE_TEXT
|
||||
|| itemDef_s::type == ITEM_TYPE_EDITFIELD
|
||||
|| itemDef_s::type == ITEM_TYPE_NUMERICFIELD
|
||||
|| itemDef_s::type == ITEM_TYPE_SLIDER
|
||||
|| itemDef_s::type == ITEM_TYPE_YESNO
|
||||
|| itemDef_s::type == ITEM_TYPE_BIND
|
||||
|| itemDef_s::type == ITEM_TYPE_VALIDFILEFIELD
|
||||
|| itemDef_s::type == ITEM_TYPE_DECIMALFIELD
|
||||
|| itemDef_s::type == ITEM_TYPE_UPREDITFIELD;
|
||||
set condition multi itemDef_s::type == ITEM_TYPE_MULTI;
|
||||
set condition enumDvarName itemDef_s::type == ITEM_TYPE_DVARENUM;
|
||||
|
||||
// listBoxDef_s
|
||||
set string listBoxDef_s::doubleClick;
|
||||
|
||||
// multiDef_s
|
||||
use multiDef_s;
|
||||
set string dvarList;
|
||||
set string dvarStr;
|
||||
@@ -0,0 +1,35 @@
|
||||
// =========================================
|
||||
// snd_alias_list_t
|
||||
// =========================================
|
||||
use snd_alias_list_t;
|
||||
set block XFILE_BLOCK_TEMP;
|
||||
set string name;
|
||||
set reusable head;
|
||||
set count head count;
|
||||
|
||||
// snd_alias_t
|
||||
use snd_alias_t;
|
||||
set string aliasName;
|
||||
set string subtitle;
|
||||
set string secondaryAliasName;
|
||||
set string chainAliasName;
|
||||
set reusable soundFile;
|
||||
|
||||
// SoundFile
|
||||
use SoundFile;
|
||||
set string unknownString0;
|
||||
set string unknownString1;
|
||||
set condition u::primeSnd type == QOS_SOUND_FILE_TYPE_PRIMED;
|
||||
set reusable u::primeSnd;
|
||||
|
||||
// QosMssSound
|
||||
use QosMssSound;
|
||||
set arraysize data dataSize;
|
||||
set condition unknownDataPtr0 never;
|
||||
set condition unknownDataPtr1 never;
|
||||
|
||||
// QosPrimedSound
|
||||
use QosPrimedSound;
|
||||
set string name;
|
||||
set count buffer size;
|
||||
set block buffer XFILE_BLOCK_LARGE;
|
||||
Reference in New Issue
Block a user