mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-22 17:15:46 +00:00
589 lines
15 KiB
Plaintext
589 lines
15 KiB
Plaintext
// Game: Modern Warfare 2 (IW4)
|
|
game IW4;
|
|
|
|
// Game Assets
|
|
asset PhysPreset ASSET_TYPE_PHYSPRESET;
|
|
asset PhysCollmap ASSET_TYPE_PHYSCOLLMAP;
|
|
asset XAnimParts ASSET_TYPE_XANIMPARTS;
|
|
asset XModel ASSET_TYPE_XMODEL;
|
|
asset Material ASSET_TYPE_MATERIAL;
|
|
asset MaterialPixelShader ASSET_TYPE_PIXELSHADER;
|
|
asset MaterialVertexShader ASSET_TYPE_VERTEXSHADER;
|
|
asset MaterialVertexDeclaration ASSET_TYPE_VERTEXDECL;
|
|
asset MaterialTechniqueSet ASSET_TYPE_TECHNIQUE_SET;
|
|
asset GfxImage ASSET_TYPE_IMAGE;
|
|
asset snd_alias_list_t ASSET_TYPE_SOUND;
|
|
asset SndCurve ASSET_TYPE_SOUND_CURVE;
|
|
asset LoadedSound ASSET_TYPE_LOADED_SOUND;
|
|
// asset clipMap_t ASSET_TYPE_CLIPMAP_MP;
|
|
// asset ComWorld ASSET_TYPE_COMWORLD;
|
|
// asset GameWorldSp ASSET_TYPE_GAMEWORLD_SP;
|
|
// asset GameWorldMp ASSET_TYPE_GAMEWORLD_MP;
|
|
// asset MapEnts ASSET_TYPE_MAP_ENTS;
|
|
// asset FxWorld ASSET_TYPE_FXWORLD;
|
|
// asset GfxWorld ASSET_TYPE_GFXWORLD;
|
|
// asset GfxLightDef ASSET_TYPE_LIGHT_DEF;
|
|
// asset Font_s ASSET_TYPE_FONT;
|
|
asset MenuList ASSET_TYPE_MENULIST;
|
|
asset menuDef_t ASSET_TYPE_MENU;
|
|
asset LocalizeEntry ASSET_TYPE_LOCALIZE_ENTRY;
|
|
// asset WeaponCompleteDef ASSET_TYPE_WEAPON;
|
|
// asset SndDriverGlobals ASSET_TYPE_SNDDRIVER_GLOBALS;
|
|
// asset FxEffectDef ASSET_TYPE_FX;
|
|
// asset FxImpactTable ASSET_TYPE_IMPACT_FX;
|
|
asset RawFile ASSET_TYPE_RAWFILE;
|
|
asset StringTable ASSET_TYPE_STRINGTABLE;
|
|
// asset LeaderboardDef ASSET_TYPE_LEADERBOARD;
|
|
// asset StructuredDataDefSet ASSET_TYPE_STRUCTURED_DATA_DEF;
|
|
// asset TracerDef ASSET_TYPE_TRACER;
|
|
// asset VehicleDef ASSET_TYPE_VEHICLE;
|
|
// asset AddonMapEnts ASSET_TYPE_ADDON_MAP_ENTS;
|
|
|
|
// Setup blocks
|
|
block temp XFILE_BLOCK_TEMP default;
|
|
block normal XFILE_BLOCK_PHYSICAL;
|
|
block runtime XFILE_BLOCK_RUNTIME default;
|
|
block normal XFILE_BLOCK_VIRTUAL default;
|
|
block normal XFILE_BLOCK_LARGE;
|
|
block normal XFILE_BLOCK_CALLBACK;
|
|
block normal XFILE_BLOCK_VERTEX;
|
|
block normal XFILE_BLOCK_INDEX;
|
|
|
|
// =========================================
|
|
// PhysPreset
|
|
// =========================================
|
|
use PhysPreset;
|
|
set string name;
|
|
set name name;
|
|
set string sndAliasPrefix;
|
|
block normal XFILE_BLOCK_INDEX;
|
|
|
|
// =========================================
|
|
// PhysCollmap
|
|
// =========================================
|
|
use PhysCollmap;
|
|
set string name;
|
|
set name name;
|
|
set count geoms count;
|
|
|
|
// PhysGeomInfo
|
|
use PhysGeomInfo;
|
|
set count brushWrapper 1;
|
|
|
|
// BrushWrapper
|
|
use BrushWrapper;
|
|
set reusable planes;
|
|
set count planes brush::numsides;
|
|
|
|
// cbrushWrapper_t
|
|
use cbrushWrapper_t;
|
|
set count sides numsides;
|
|
set count baseAdjacentSide BrushWrapper::totalEdgeCount;
|
|
|
|
// cbrushside_t
|
|
use cbrushside_t;
|
|
set reusable plane;
|
|
set count plane 1;
|
|
|
|
// =========================================
|
|
// XAnimParts
|
|
// =========================================
|
|
use XAnimParts;
|
|
set string name;
|
|
set name name;
|
|
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
|
|
names
|
|
notify
|
|
deltaPart
|
|
dataByte
|
|
dataShort
|
|
dataInt
|
|
randomDataShort
|
|
randomDataByte
|
|
randomDataInt
|
|
indices;
|
|
|
|
// XAnimNotifyInfo
|
|
set scriptstring XAnimNotifyInfo::name;
|
|
|
|
// XAnimDeltaPart
|
|
use XAnimDeltaPart;
|
|
set count trans 1;
|
|
set count quat2 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;
|
|
|
|
// XAnimDeltaPartQuat2
|
|
use XAnimDeltaPartQuat2;
|
|
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;
|
|
|
|
// XAnimDeltaPartQuatDataFrames2
|
|
reorder XAnimDeltaPartQuatDataFrames2:
|
|
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;
|
|
|
|
// =========================================
|
|
// XModel
|
|
// =========================================
|
|
use XModel;
|
|
set string name;
|
|
set name 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;
|
|
set reusable partClassification;
|
|
set count partClassification numBones;
|
|
set reusable baseMat;
|
|
set count baseMat numBones;
|
|
set count materialHandles numsurfs;
|
|
set count collSurfs numCollSurfs;
|
|
set count boneInfo numBones;
|
|
|
|
// XModelLodInfo
|
|
use XModelLodInfo;
|
|
set block modelSurfs XFILE_BLOCK_TEMP;
|
|
set reusable modelSurfs;
|
|
set condition surfs never;
|
|
|
|
// XModelSurfs
|
|
use XModelSurfs;
|
|
set string name;
|
|
set count surfs XModelLodInfo::numsurfs; // No this is not a mistake. This is how the game does it.
|
|
|
|
// XSurface
|
|
use XSurface;
|
|
set reusable verts0;
|
|
set block verts0 XFILE_BLOCK_VERTEX;
|
|
set count verts0 vertCount;
|
|
set reusable vertList;
|
|
set count vertList vertListCount;
|
|
set reusable triIndices;
|
|
set block triIndices XFILE_BLOCK_INDEX;
|
|
set count triIndices triCount;
|
|
reorder:
|
|
zoneHandle
|
|
vertInfo
|
|
verts0
|
|
vertList
|
|
triIndices;
|
|
|
|
// XSurfaceVertexInfo
|
|
use XSurfaceVertexInfo;
|
|
set reusable vertsBlend;
|
|
set count vertsBlend vertCount[0]
|
|
+ 3 * vertCount[1]
|
|
+ 5 * vertCount[2]
|
|
+ 7 * vertCount[3];
|
|
|
|
// XRigidVertList
|
|
set reusable XRigidVertList::collisionTree;
|
|
|
|
// XSurfaceCollisionTree
|
|
use XSurfaceCollisionTree;
|
|
set count nodes nodeCount;
|
|
set count leafs leafCount;
|
|
|
|
// XModelCollSurf_s
|
|
set count XModelCollSurf_s::collTris numCollTris;
|
|
|
|
// =========================================
|
|
// Material
|
|
// =========================================
|
|
use Material;
|
|
set string info::name;
|
|
set name info::name;
|
|
set reusable textureTable;
|
|
set count textureTable textureCount;
|
|
set reusable constantTable;
|
|
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;
|
|
|
|
// water_t
|
|
use water_t;
|
|
set count H0 N * M;
|
|
set count wTerm N * M;
|
|
|
|
// =========================================
|
|
// MaterialTechniqueSet
|
|
// =========================================
|
|
use MaterialTechniqueSet;
|
|
set string name;
|
|
set name name;
|
|
set condition remappedTechniqueSet never;
|
|
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;
|
|
|
|
// MaterialShaderArgument
|
|
use MaterialShaderArgument;
|
|
set condition u::literalConst type == MTL_ARG_LITERAL_VERTEX_CONST
|
|
|| type == MTL_ARG_LITERAL_PIXEL_CONST;
|
|
set reusable u::literalConst;
|
|
|
|
// =========================================
|
|
// MaterialVertexDeclaration
|
|
// =========================================
|
|
use MaterialVertexDeclaration;
|
|
set string name;
|
|
set name name;
|
|
|
|
// MaterialVertexStreamRouting
|
|
set condition MaterialVertexStreamRouting::decl never;
|
|
|
|
// =========================================
|
|
// MaterialVertexShader
|
|
// =========================================
|
|
use MaterialVertexShader;
|
|
set string name;
|
|
set name name;
|
|
|
|
// GfxVertexShaderLoadDef
|
|
set count GfxVertexShaderLoadDef::program programSize;
|
|
|
|
// MaterialVertexShaderProgram
|
|
set condition MaterialVertexShaderProgram::vs never;
|
|
|
|
// =========================================
|
|
// MaterialPixelShader
|
|
// =========================================
|
|
use MaterialPixelShader;
|
|
set string name;
|
|
set name name;
|
|
|
|
// GfxPixelShaderLoadDef
|
|
set count GfxPixelShaderLoadDef::program programSize;
|
|
|
|
// MaterialPixelShaderProgram
|
|
set condition MaterialPixelShaderProgram::ps never;
|
|
|
|
// =========================================
|
|
// GfxImage
|
|
// =========================================
|
|
use GfxImage;
|
|
set action OnImageLoaded(GfxImage);
|
|
set string name;
|
|
set name name;
|
|
reorder:
|
|
name
|
|
texture;
|
|
|
|
// GfxTexture
|
|
use GfxTexture;
|
|
set reusable loadDef;
|
|
set block loadDef XFILE_BLOCK_TEMP;
|
|
set condition texture never;
|
|
|
|
// GfxImageLoadDef
|
|
use GfxImageLoadDef;
|
|
set action LoadImageData(GfxImageLoadDef, GfxImage);
|
|
set arraysize data resourceSize;
|
|
|
|
// =========================================
|
|
// snd_alias_list_t
|
|
// =========================================
|
|
use snd_alias_list_t;
|
|
set string aliasName;
|
|
set name aliasName;
|
|
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 string mixerGroup;
|
|
set reusable soundFile;
|
|
set reusable speakerMap;
|
|
|
|
// SoundFile
|
|
set condition SoundFile::u::loadSnd type == SAT_LOADED;
|
|
|
|
// SpeakerMap
|
|
set string SpeakerMap::name;
|
|
|
|
// StreamedSound
|
|
use StreamedSound;
|
|
set string dir;
|
|
set string name;
|
|
|
|
// =========================================
|
|
// SndCurve
|
|
// =========================================
|
|
use SndCurve;
|
|
set string filename;
|
|
set name filename;
|
|
|
|
// =========================================
|
|
// LoadedSound
|
|
// =========================================
|
|
use LoadedSound;
|
|
set string name;
|
|
set name name;
|
|
|
|
// MssSound
|
|
use MssSound;
|
|
set block data XFILE_BLOCK_TEMP;
|
|
set reusable data;
|
|
set count data info::data_len;
|
|
set condition info::data_ptr never;
|
|
set condition info::initial_ptr never;
|
|
set action SetSoundData(MssSound);
|
|
|
|
// =========================================
|
|
// LocalizeEntry
|
|
// =========================================
|
|
use LocalizeEntry;
|
|
set string name;
|
|
set name name;
|
|
set string value;
|
|
|
|
// =========================================
|
|
// MenuList
|
|
// =========================================
|
|
use MenuList;
|
|
set string name;
|
|
set name name;
|
|
set count menus menuCount;
|
|
|
|
// =========================================
|
|
// menuDef_t
|
|
// =========================================
|
|
use menuDef_t;
|
|
set string window::name;
|
|
set name window::name;
|
|
set string font;
|
|
set reusable visibleExp;
|
|
set string allowedBinding;
|
|
set string soundName;
|
|
set reusable rectXExp;
|
|
set reusable rectYExp;
|
|
set reusable rectWExp;
|
|
set reusable rectHExp;
|
|
set reusable openSoundExp;
|
|
set reusable closeSoundExp;
|
|
set count items itemCount;
|
|
set reusable expressionData;
|
|
reorder:
|
|
expressionData
|
|
window
|
|
font
|
|
onOpen
|
|
onClose
|
|
onCloseRequest
|
|
onESC
|
|
onKey
|
|
visibleExp
|
|
allowedBinding
|
|
soundName
|
|
rectXExp
|
|
rectYExp
|
|
rectWExp
|
|
rectHExp
|
|
openSoundExp
|
|
closeSoundExp
|
|
items;
|
|
|
|
// windowDef_t
|
|
use windowDef_t;
|
|
set string name;
|
|
set string group;
|
|
|
|
// MenuEventHandlerSet
|
|
set count MenuEventHandlerSet::eventHandlers eventHandlerCount;
|
|
|
|
// MenuEventHandler
|
|
use MenuEventHandler;
|
|
set string eventData::unconditionalScript;
|
|
set condition eventData::unconditionalScript eventType == EVENT_UNCONDITIONAL;
|
|
set condition eventData::conditionalScript eventType == EVENT_IF;
|
|
set condition eventData::elseScript eventType == EVENT_ELSE;
|
|
set condition eventData::setLocalVarData eventType == EVENT_SET_LOCAL_VAR_BOOL
|
|
|| eventType == EVENT_SET_LOCAL_VAR_INT
|
|
|| eventType == EVENT_SET_LOCAL_VAR_FLOAT
|
|
|| eventType == EVENT_SET_LOCAL_VAR_STRING;
|
|
|
|
// ConditionalScript
|
|
use ConditionalScript;
|
|
set reusable eventExpression;
|
|
reorder:
|
|
eventExpression
|
|
eventHandlerSet;
|
|
|
|
// SetLocalVarData
|
|
use SetLocalVarData;
|
|
set string localVarName;
|
|
set reusable expression;
|
|
|
|
// Statement_s
|
|
use Statement_s;
|
|
set count entries numEntries;
|
|
set reusable supportingData;
|
|
set condition lastResult never;
|
|
|
|
// expressionEntry
|
|
set condition expressionEntry::data::operand type == EET_OPERAND;
|
|
|
|
// Operand
|
|
use Operand;
|
|
set reusable internals::function;
|
|
set condition internals::intVal dataType == VAL_INT;
|
|
set condition internals::floatVal dataType == VAL_FLOAT;
|
|
set condition internals::stringVal dataType == VAL_STRING;
|
|
set condition internals::function dataType == VAL_FUNCTION;
|
|
|
|
// ExpressionString
|
|
set string ExpressionString::string;
|
|
|
|
// itemDef_s
|
|
use itemDef_s;
|
|
set string text;
|
|
set condition parent never;
|
|
set string dvar;
|
|
set string dvarTest;
|
|
set string enableDvar;
|
|
set string localVar;
|
|
set count floatExpressions floatExpressionCount;
|
|
set reusable visibleExp;
|
|
set reusable disabledExp;
|
|
set reusable textExp;
|
|
set reusable materialExp;
|
|
|
|
// itemDefData_t
|
|
use itemDefData_t;
|
|
set string enumDvarName;
|
|
set condition data never;
|
|
set condition listBox itemDef_s::type == 6;
|
|
set condition editField itemDef_s::type == 0
|
|
|| itemDef_s::type == 4
|
|
|| itemDef_s::type == 9
|
|
|| itemDef_s::type == 10
|
|
|| itemDef_s::type == 11
|
|
|| itemDef_s::type == 14
|
|
|| itemDef_s::type == 16
|
|
|| itemDef_s::type == 17
|
|
|| itemDef_s::type == 18
|
|
|| itemDef_s::type == 22
|
|
|| itemDef_s::type == 23;
|
|
set condition multi itemDef_s::type == 12;
|
|
set condition enumDvarName itemDef_s::type == 13;
|
|
set condition ticker itemDef_s::type == 20;
|
|
set condition scroll itemDef_s::type == 21;
|
|
|
|
// multiDef_s
|
|
use multiDef_s;
|
|
set string dvarList;
|
|
set string dvarStr;
|
|
|
|
// ItemFloatExpression
|
|
set reusable ItemFloatExpression::expression;
|
|
|
|
// UIFunctionList
|
|
use UIFunctionList;
|
|
set count functions totalFunctions;
|
|
set reusable functions; // This statement makes both the array of pointers and the pointers in the array reusable. only the second one is correct however this shouldn't be a problem with vanilla fastfiles.
|
|
|
|
// StaticDvarList
|
|
set count StaticDvarList::staticDvars numStaticDvars;
|
|
|
|
// StaticDvar
|
|
use StaticDvar;
|
|
set condition dvar never;
|
|
set string dvarName;
|
|
|
|
// StringList
|
|
use StringList;
|
|
set count strings totalStrings;
|
|
set string strings;
|
|
|
|
// =========================================
|
|
// RawFile
|
|
// =========================================
|
|
use RawFile;
|
|
set string name;
|
|
set name name;
|
|
set condition data::compressedBuffer compressedLen > 0;
|
|
set count data::compressedBuffer compressedLen;
|
|
set count data::buffer len + 1;
|
|
|
|
// =========================================
|
|
// StringTable
|
|
// =========================================
|
|
use StringTable;
|
|
set string name;
|
|
set name name;
|
|
set count values columnCount * rowCount;
|
|
|
|
// StringTableCell
|
|
set string StringTableCell::string;
|
|
|
|
// EOF |