add rest of iw3 commands

This commit is contained in:
Jan 2021-04-14 16:49:17 +02:00
parent ce61ef8a45
commit adae75a7a6
17 changed files with 548 additions and 56 deletions

View File

@ -136,6 +136,7 @@ namespace IW3
typedef char cbrushedge_t;
typedef float vec2_t[2];
typedef float vec3_t[3];
typedef tdef_align(128) unsigned int raw_uint128;
struct XModelPiece
{
@ -1399,7 +1400,7 @@ namespace IW3
GfxPortalWritable writable;
DpvsPlane plane;
GfxCell* cell;
float(*vertices)[3];
vec3_t* vertices;
char vertexCount;
float hullAxis[2][3];
};
@ -1635,14 +1636,14 @@ namespace IW3
unsigned int surfaceVisDataCount;
char* smodelVisData[3];
char* surfaceVisData[3];
unsigned int* lodData;
raw_uint128* lodData;
uint16_t* sortedSurfIndex;
GfxStaticModelInst* smodelInsts;
GfxSurface* surfaces;
GfxCullGroup* cullGroups;
GfxStaticModelDrawInst* smodelDrawInsts;
GfxDrawSurf* surfaceMaterials;
unsigned int* surfaceCastsSunShadow;
raw_uint128* surfaceCastsSunShadow;
volatile int usageCount;
};
@ -1654,6 +1655,11 @@ namespace IW3
char* dynEntVisData[2][3];
};
struct GfxWorldStreamInfo
{
};
struct GfxWorld
{
const char* name;
@ -1663,7 +1669,7 @@ namespace IW3
int indexCount;
uint16_t* indices;
int surfaceCount;
//GfxWorldStreamInfo streamInfo;
GfxWorldStreamInfo streamInfo;
int skySurfCount;
int* skyStartSurfs;
GfxImage* skyImage;
@ -1806,6 +1812,12 @@ namespace IW3
Operand operand;
};
enum expressionEntryType : int
{
EET_OPERATOR = 0x0,
EET_OPERAND = 0x1,
};
struct expressionEntry
{
int type;
@ -2112,6 +2124,17 @@ namespace IW3
MISSILE_GUIDANCE_COUNT = 0x4,
};
struct snd_alias_list_name
{
const char* soundName;
};
union SndAliasCustom
{
snd_alias_list_name* name;
snd_alias_list_t* sound;
};
struct WeaponDef
{
const char* szInternalName;
@ -2135,52 +2158,52 @@ namespace IW3
weapStance_t stance;
FxEffectDef* viewFlashEffect;
FxEffectDef* worldFlashEffect;
snd_alias_list_t* pickupSound;
snd_alias_list_t* pickupSoundPlayer;
snd_alias_list_t* ammoPickupSound;
snd_alias_list_t* ammoPickupSoundPlayer;
snd_alias_list_t* projectileSound;
snd_alias_list_t* pullbackSound;
snd_alias_list_t* pullbackSoundPlayer;
snd_alias_list_t* fireSound;
snd_alias_list_t* fireSoundPlayer;
snd_alias_list_t* fireLoopSound;
snd_alias_list_t* fireLoopSoundPlayer;
snd_alias_list_t* fireStopSound;
snd_alias_list_t* fireStopSoundPlayer;
snd_alias_list_t* fireLastSound;
snd_alias_list_t* fireLastSoundPlayer;
snd_alias_list_t* emptyFireSound;
snd_alias_list_t* emptyFireSoundPlayer;
snd_alias_list_t* meleeSwipeSound;
snd_alias_list_t* meleeSwipeSoundPlayer;
snd_alias_list_t* meleeHitSound;
snd_alias_list_t* meleeMissSound;
snd_alias_list_t* rechamberSound;
snd_alias_list_t* rechamberSoundPlayer;
snd_alias_list_t* reloadSound;
snd_alias_list_t* reloadSoundPlayer;
snd_alias_list_t* reloadEmptySound;
snd_alias_list_t* reloadEmptySoundPlayer;
snd_alias_list_t* reloadStartSound;
snd_alias_list_t* reloadStartSoundPlayer;
snd_alias_list_t* reloadEndSound;
snd_alias_list_t* reloadEndSoundPlayer;
snd_alias_list_t* detonateSound;
snd_alias_list_t* detonateSoundPlayer;
snd_alias_list_t* nightVisionWearSound;
snd_alias_list_t* nightVisionWearSoundPlayer;
snd_alias_list_t* nightVisionRemoveSound;
snd_alias_list_t* nightVisionRemoveSoundPlayer;
snd_alias_list_t* altSwitchSound;
snd_alias_list_t* altSwitchSoundPlayer;
snd_alias_list_t* raiseSound;
snd_alias_list_t* raiseSoundPlayer;
snd_alias_list_t* firstRaiseSound;
snd_alias_list_t* firstRaiseSoundPlayer;
snd_alias_list_t* putawaySound;
snd_alias_list_t* putawaySoundPlayer;
snd_alias_list_t** bounceSound;
SndAliasCustom pickupSound;
SndAliasCustom pickupSoundPlayer;
SndAliasCustom ammoPickupSound;
SndAliasCustom ammoPickupSoundPlayer;
SndAliasCustom projectileSound;
SndAliasCustom pullbackSound;
SndAliasCustom pullbackSoundPlayer;
SndAliasCustom fireSound;
SndAliasCustom fireSoundPlayer;
SndAliasCustom fireLoopSound;
SndAliasCustom fireLoopSoundPlayer;
SndAliasCustom fireStopSound;
SndAliasCustom fireStopSoundPlayer;
SndAliasCustom fireLastSound;
SndAliasCustom fireLastSoundPlayer;
SndAliasCustom emptyFireSound;
SndAliasCustom emptyFireSoundPlayer;
SndAliasCustom meleeSwipeSound;
SndAliasCustom meleeSwipeSoundPlayer;
SndAliasCustom meleeHitSound;
SndAliasCustom meleeMissSound;
SndAliasCustom rechamberSound;
SndAliasCustom rechamberSoundPlayer;
SndAliasCustom reloadSound;
SndAliasCustom reloadSoundPlayer;
SndAliasCustom reloadEmptySound;
SndAliasCustom reloadEmptySoundPlayer;
SndAliasCustom reloadStartSound;
SndAliasCustom reloadStartSoundPlayer;
SndAliasCustom reloadEndSound;
SndAliasCustom reloadEndSoundPlayer;
SndAliasCustom detonateSound;
SndAliasCustom detonateSoundPlayer;
SndAliasCustom nightVisionWearSound;
SndAliasCustom nightVisionWearSoundPlayer;
SndAliasCustom nightVisionRemoveSound;
SndAliasCustom nightVisionRemoveSoundPlayer;
SndAliasCustom altSwitchSound;
SndAliasCustom altSwitchSoundPlayer;
SndAliasCustom raiseSound;
SndAliasCustom raiseSoundPlayer;
SndAliasCustom firstRaiseSound;
SndAliasCustom firstRaiseSoundPlayer;
SndAliasCustom putawaySound;
SndAliasCustom putawaySoundPlayer;
SndAliasCustom* bounceSound;
FxEffectDef* viewShellEjectEffect;
FxEffectDef* worldShellEjectEffect;
FxEffectDef* viewLastShotEjectEffect;
@ -2377,8 +2400,8 @@ namespace IW3
FxEffectDef* projExplosionEffect;
int projExplosionEffectForceNormalUp;
FxEffectDef* projDudEffect;
snd_alias_list_t* projExplosionSound;
snd_alias_list_t* projDudSound;
SndAliasCustom projExplosionSound;
SndAliasCustom projDudSound;
int bProjImpactExplode;
WeapStickinessType stickiness;
int hasDetonator;
@ -2395,7 +2418,7 @@ namespace IW3
float maxSteeringAccel;
int projIgnitionDelay;
FxEffectDef* projIgnitionEffect;
snd_alias_list_t* projIgnitionSound;
SndAliasCustom projIgnitionSound;
float fAdsAimPitch;
float fAdsCrosshairInFrac;
float fAdsCrosshairOutFrac;
@ -2436,9 +2459,18 @@ namespace IW3
float fHipViewScatterMax;
float fightDist;
float maxDist;
const char* accuracyGraphName[2];
float(*accuracyGraphKnots[2])[2];
float(*originalAccuracyGraphKnots[2])[2];
// TODO: Order is accuracyGraphName[0] -> originalAccuracyGraphKnots[0] -> accuracyGraphName[1] -> ...
// Which is currently not possible to do in code generation. Afaik this is the only place where this is the case.
// So might be something to fix but on the other hand it might be too much work for this little inconvenience.
//const char* accuracyGraphName[2];
const char* accuracyGraphName0;
const char* accuracyGraphName1;
//float(*accuracyGraphKnots[2])[2];
vec2_t* accuracyGraphKnots0;
vec2_t* accuracyGraphKnots1;
//float(*originalAccuracyGraphKnots[2])[2];
vec2_t* originalAccuracyGraphKnots0;
vec2_t* originalAccuracyGraphKnots1;
int accuracyGraphKnotCount[2];
int originalAccuracyGraphKnotCount[2];
int iPositionReloadTransTime;
@ -2563,6 +2595,24 @@ namespace IW3
const char* name;
};
enum FxElemType
{
FX_ELEM_TYPE_SPRITE_BILLBOARD = 0x0,
FX_ELEM_TYPE_SPRITE_ORIENTED = 0x1,
FX_ELEM_TYPE_TAIL = 0x2,
FX_ELEM_TYPE_TRAIL = 0x3,
FX_ELEM_TYPE_CLOUD = 0x4,
FX_ELEM_TYPE_MODEL = 0x5,
FX_ELEM_TYPE_OMNI_LIGHT = 0x6,
FX_ELEM_TYPE_SPOT_LIGHT = 0x7,
FX_ELEM_TYPE_SOUND = 0x8,
FX_ELEM_TYPE_DECAL = 0x9,
FX_ELEM_TYPE_RUNNER = 0xA,
FX_ELEM_TYPE_COUNT = 0xB,
FX_ELEM_TYPE_LAST_SPRITE = 0x3,
FX_ELEM_TYPE_LAST_DRAWN = 0x7,
};
union FxElemVisuals
{
const void* anonymous;

View File

@ -0,0 +1,10 @@
// =========================================
// ComWorld
// =========================================
use ComWorld;
set string name;
set name name;
set count primaryLights primaryLightCount;
// ComPrimaryLight
set string ComPrimaryLight::defName;

View File

@ -0,0 +1,8 @@
// =========================================
// Font_s
// =========================================
use Font_s;
set string fontName;
set name fontName;
set reusable glyphs;
set count glyphs glyphCount;

View File

@ -0,0 +1,47 @@
// =========================================
// FxEffectDef
// =========================================
use FxEffectDef;
set string name;
set name 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;
// FxElemExtendedDefPtr
use FxElemExtendedDefPtr;
set condition trailDef FxElemDef::elemType == FX_ELEM_TYPE_TRAIL;
set condition sparkFountainDef FxElemDef::elemType == FX_ELEM_TYPE_SPARK_FOUNTAIN;
// FxTrailDef
use FxTrailDef;
set count verts vertCount;
set count inds indCount;

View File

@ -0,0 +1,7 @@
// =========================================
// FxImpactTable
// =========================================
use FxImpactTable;
set string name;
set name name;
set count table 12;

View File

@ -0,0 +1,6 @@
// =========================================
// GameWorldMp
// =========================================
use GameWorldMp;
set string name;
set name name;

View File

@ -0,0 +1,66 @@
// =========================================
// GameWorldSp
// =========================================
use GameWorldSp;
set string name;
set name name;
// PathData
use PathData;
set count nodes nodeCount;
set block basenodes XFILE_BLOCK_RUNTIME;
set count basenodes nodeCount;
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;
// VehicleTrack
use VehicleTrack;
set reusable segments;
set count segments segmentCount;
// VehicleTrackSegment
use VehicleTrackSegment;
set string targetName;
set count sectors sectorCount;
set reusable nextBranches;
set count nextBranches nextBranchesCount;
set reusable prevBranches;
set count prevBranches prevBranchesCount;
// VehicleTrackSector
set count VehicleTrackSector::obstacles obstacleCount;
// G_GlassData
use G_GlassData;
set count glassPieces pieceCount;
set count glassNames glassNameCount;
// G_GlassName
use G_GlassName;
set string nameStr;
set count pieceIndices pieceCount;

View File

@ -0,0 +1,6 @@
// =========================================
// GfxLightDef
// =========================================
use GfxLightDef;
set string name;
set name name;

View File

@ -0,0 +1,123 @@
// =========================================
// GfxWorld
// =========================================
use GfxWorld;
set string name;
set name name;
set string baseName;
set count indices indexCount;
set count skyStartSurfs skySurfCount;
set reusable sunLight;
set count reflectionProbes reflectionProbeCount;
set block reflectionProbeTextures XFILE_BLOCK_RUNTIME;
set count reflectionProbeTextures reflectionProbeCount;
set count cells dpvsPlanes::cellCount;
set count lightmaps lightmapCount;
set block lightmapPrimaryTextures XFILE_BLOCK_RUNTIME;
set count lightmapPrimaryTextures lightmapCount;
set block lightmapSecondaryTextures XFILE_BLOCK_RUNTIME;
set count lightmapSecondaryTextures lightmapCount;
set count models modelCount;
set count materialMemory materialMemoryCount;
set block cellCasterBits XFILE_BLOCK_RUNTIME;
set count cellCasterBits dpvsPlanes::cellCount * ((dpvsPlanes::cellCount + 31) / 32);
set block sceneDynModel XFILE_BLOCK_RUNTIME;
set count sceneDynModel dpvsDyn::dynEntClientCount[0];
set block sceneDynBrush XFILE_BLOCK_RUNTIME;
set count sceneDynBrush dpvsDyn::dynEntClientCount[1];
set block primaryLightEntityShadowVis XFILE_BLOCK_RUNTIME;
set count primaryLightEntityShadowVis (primaryLightCount - sunPrimaryLightIndex - 1) * 0x2000;
set block primaryLightDynEntShadowVis XFILE_BLOCK_RUNTIME;
set count primaryLightDynEntShadowVis[0] dpvsDyn::dynEntClientCount[0] * (primaryLightCount - lastSunPrimaryLightIndex - 1);
set count primaryLightDynEntShadowVis[1] dpvsDyn::dynEntClientCount[1] * (primaryLightCount - lastSunPrimaryLightIndex - 1);
set block nonSunPrimaryLightForModelDynEnt XFILE_BLOCK_RUNTIME;
set count nonSunPrimaryLightForModelDynEnt dpvsDyn::dynEntClientCount[0];
set count shadowGeom primaryLightCount;
set count lightRegion primaryLightCount;
reorder:
...
materialMemory
vd
vld;
// GfxWorldDpvsPlanes
use GfxWorldDpvsPlanes;
set reusable planes;
set count planes GfxWorld::planeCount;
set count nodes GfxWorld::nodeCount;
set block sceneEntCellBits XFILE_BLOCK_RUNTIME;
set count sceneEntCellBits cellCount * 0x200;
// GfxCell
use GfxCell;
set count aabbTree aabbTreeCount;
set count portals portalCount;
set count cullGroups cullGroupCount;
set count reflectionProbes reflectionProbeCount;
// GfxAabbTree
use GfxAabbTree;
set reusable smodelIndexes;
set count smodelIndexes smodelIndexCount;
// GfxPortal
use GfxPortal;
set condition writable never;
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;
// GfxWorldVertexData
set count GfxWorldVertexData::vertices GfxWorld::vertexCount;
// GfxWorldVertexLayerData
set count GfxWorldVertexLayerData::data GfxWorld::vertexLayerDataSize;
// GfxShadowGeometry
use GfxShadowGeometry;
set count sortedSurfIndex surfaceCount;
set count smodelIndex smodelCount;
// GfxLightRegion
set count GfxLightRegion::hulls hullCount;
// GfxLightRegionHull
set count GfxLightRegionHull::axis axisCount;
// GfxWorldDpvsStatic
use GfxWorldDpvsStatic;
set block smodelVisData XFILE_BLOCK_RUNTIME;
set count smodelVisData smodelCount;
set block surfaceVisData XFILE_BLOCK_RUNTIME;
set count surfaceVisData staticSurfaceCount;
set block lodData XFILE_BLOCK_RUNTIME;
set count lodData 2 * smodelVisDataCount;
set count sortedSurfIndex staticSurfaceCount + staticSurfaceCountNoDecal;
set count smodelInsts smodelCount;
set count surfaces GfxWorld::surfaceCount;
set count cullGroups cullGroupCount;
set count surfacesBounds GfxWorld::surfaceCount;
set count smodelDrawInsts smodelCount;
set block surfaceMaterials XFILE_BLOCK_RUNTIME;
set count surfaceMaterials staticSurfaceCount;
set block surfaceCastsSunShadow XFILE_BLOCK_RUNTIME;
set count surfaceCastsSunShadow surfaceVisDataCount;
// GfxWorldDpvsDynamic
use GfxWorldDpvsDynamic;
set block dynEntCellBits XFILE_BLOCK_RUNTIME;
set count dynEntCellBits[0] dynEntClientWordCount[0] * GfxWorld::dpvsPlanes::cellCount;
set count dynEntCellBits[1] dynEntClientWordCount[1] * GfxWorld::dpvsPlanes::cellCount;
set block dynEntVisData XFILE_BLOCK_RUNTIME;
set count dynEntVisData[0][0] 32 * dynEntClientWordCount[0];
set count dynEntVisData[1][0] 32 * dynEntClientWordCount[1];
set count dynEntVisData[0][1] 32 * dynEntClientWordCount[0];
set count dynEntVisData[1][1] 32 * dynEntClientWordCount[1];
set count dynEntVisData[0][2] 32 * dynEntClientWordCount[0];
set count dynEntVisData[1][2] 32 * dynEntClientWordCount[1];

View File

@ -0,0 +1,7 @@
// =========================================
// LocalizeEntry
// =========================================
use LocalizeEntry;
set string name;
set name name;
set string value;

View File

@ -0,0 +1,7 @@
// =========================================
// MapEnts
// =========================================
use MapEnts;
set string name;
set name name;
set count entityString numEntityChars;

View File

@ -0,0 +1,7 @@
// =========================================
// MenuList
// =========================================
use MenuList;
set string name;
set name name;
set count menus menuCount;

View File

@ -0,0 +1,7 @@
// =========================================
// RawFile
// =========================================
use RawFile;
set string name;
set name name;
set count buffer len + 1;

View File

@ -0,0 +1,8 @@
// =========================================
// StringTable
// =========================================
use StringTable;
set string name;
set name name;
set string values;
set count values columnCount * rowCount;

View File

@ -0,0 +1,51 @@
// =========================================
// WeaponCompleteDef
// =========================================
use WeaponDef;
set string szInternalName;
set name szInternalName;
set string szDisplayName;
set string szOverlayName;
set string szXAnims;
set string szModeName;
set scriptstring hideTags;
set scriptstring notetrackSoundMapKeys;
set scriptstring notetrackSoundMapValues;
set reusable bounceSound;
set count bounceSound 29;
set string szAmmoName;
set string szClipName;
set string szSharedAmmoCapName;
set string szAltWeaponName;
set string accuracyGraphName0;
set string accuracyGraphName1;
set reusable accuracyGraphKnots0;
set reusable accuracyGraphKnots1;
set reusable originalAccuracyGraphKnots0;
set reusable originalAccuracyGraphKnots1;
set count accuracyGraphKnots0 WeaponCompleteDef::accuracyGraphKnotCount[0];
set count accuracyGraphKnots1 WeaponCompleteDef::accuracyGraphKnotCount[1];
set count originalAccuracyGraphKnots0 WeaponCompleteDef::accuracyGraphKnotCount[0]; // yeah it uses accuracyGraphKnotCount
set count originalAccuracyGraphKnots1 WeaponCompleteDef::accuracyGraphKnotCount[1];
set string szUseHintString;
set string dropHintString;
set string szScript;
set string fireRumble;
set string meleeImpactRumble;
reorder:
...
accuracyGraphName0
accuracyGraphKnots0
originalAccuracyGraphKnots0
accuracyGraphName1
accuracyGraphKnots1;
originalAccuracyGraphKnots1;
// 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;

View File

@ -0,0 +1,82 @@
// =========================================
// menuDef_t
// =========================================
use menuDef_t;
set string window::name;
set name 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::stringVal dataType == VAL_STRING;
set string internal::stringVal;
// 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;
// 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;
// listBoxDef_s
set string listBoxDef_s::doubleClick;
// multiDef_s
use multiDef_s;
set string dvarList;
set string dvarStr;