1788 lines
33 KiB
C
1788 lines
33 KiB
C
struct DObjAnimMat
|
|
{
|
|
float quat[4];
|
|
float trans[3];
|
|
float transWeight;
|
|
};
|
|
|
|
struct XSurfaceVertexInfo
|
|
{
|
|
__int16 vertCount[4];
|
|
unsigned __int16 *vertsBlend;
|
|
};
|
|
|
|
union GfxColor
|
|
{
|
|
unsigned int packed;
|
|
unsigned __int8 array[4];
|
|
};
|
|
|
|
union PackedTexCoords
|
|
{
|
|
unsigned int packed;
|
|
};
|
|
|
|
union PackedUnitVec
|
|
{
|
|
unsigned int packed;
|
|
};
|
|
|
|
struct GfxPackedVertex
|
|
{
|
|
float xyz[3];
|
|
float binormalSign;
|
|
GfxColor color;
|
|
PackedTexCoords texCoord;
|
|
PackedUnitVec normal;
|
|
PackedUnitVec tangent;
|
|
};
|
|
|
|
struct D3DResource
|
|
{
|
|
unsigned int Common;
|
|
unsigned int ReferenceCount;
|
|
unsigned int Fence;
|
|
unsigned int ReadFence;
|
|
unsigned int Identifier;
|
|
unsigned int BaseFlush;
|
|
};
|
|
|
|
struct $E41E24A1CD47CDFA361AA9F99910948B
|
|
{
|
|
unsigned __int32 Type : 2;
|
|
unsigned __int32 BaseAddress : 30;
|
|
unsigned __int32 Endian : 2;
|
|
unsigned __int32 Size : 24;
|
|
unsigned __int32 AddressClamp : 1;
|
|
unsigned __int32 : 1;
|
|
unsigned __int32 RequestSize : 2;
|
|
unsigned __int32 ClampDisable : 2;
|
|
};
|
|
|
|
union GPUVERTEX_FETCH_CONSTANT
|
|
{
|
|
$E41E24A1CD47CDFA361AA9F99910948B __s0;
|
|
unsigned int dword[2];
|
|
};
|
|
|
|
struct D3DVertexBuffer : D3DResource
|
|
{
|
|
GPUVERTEX_FETCH_CONSTANT Format;
|
|
};
|
|
|
|
struct XSurfaceCollisionAabb
|
|
{
|
|
unsigned __int16 mins[3];
|
|
unsigned __int16 maxs[3];
|
|
};
|
|
|
|
struct XSurfaceCollisionNode
|
|
{
|
|
XSurfaceCollisionAabb aabb;
|
|
unsigned __int16 childBeginIndex;
|
|
unsigned __int16 childCount;
|
|
};
|
|
|
|
struct XSurfaceCollisionLeaf
|
|
{
|
|
unsigned __int16 triangleBeginIndex;
|
|
};
|
|
|
|
struct XSurfaceCollisionTree
|
|
{
|
|
float trans[3];
|
|
float scale[3];
|
|
unsigned int nodeCount;
|
|
XSurfaceCollisionNode *nodes;
|
|
unsigned int leafCount;
|
|
XSurfaceCollisionLeaf *leafs;
|
|
};
|
|
|
|
struct XRigidVertList
|
|
{
|
|
unsigned __int16 boneOffset;
|
|
unsigned __int16 vertCount;
|
|
unsigned __int16 triOffset;
|
|
unsigned __int16 triCount;
|
|
XSurfaceCollisionTree *collisionTree;
|
|
};
|
|
|
|
struct D3DIndexBuffer : D3DResource
|
|
{
|
|
unsigned int Address;
|
|
unsigned int Size;
|
|
};
|
|
|
|
struct XSurface
|
|
{
|
|
unsigned __int8 tileMode;
|
|
bool deformed;
|
|
unsigned __int16 vertCount;
|
|
unsigned __int16 triCount;
|
|
unsigned __int16 *triIndices;
|
|
XSurfaceVertexInfo vertInfo;
|
|
GfxPackedVertex *verts0;
|
|
D3DVertexBuffer vb0;
|
|
unsigned int vertListCount;
|
|
XRigidVertList *vertList;
|
|
D3DIndexBuffer indexBuffer;
|
|
int partBits[4];
|
|
};
|
|
|
|
struct GfxDrawSurfFields
|
|
{
|
|
unsigned __int64 objectId : 16;
|
|
unsigned __int64 reflectionProbeIndex : 8;
|
|
unsigned __int64 customIndex : 5;
|
|
unsigned __int64 materialSortedIndex : 11;
|
|
unsigned __int64 prepass : 2;
|
|
unsigned __int64 primaryLightIndex : 8;
|
|
unsigned __int64 surfType : 4;
|
|
unsigned __int64 primarySortKey : 6;
|
|
unsigned __int64 unused : 4;
|
|
};
|
|
|
|
|
|
union GfxDrawSurf
|
|
{
|
|
GfxDrawSurfFields fields;
|
|
unsigned __int64 packed;
|
|
};
|
|
|
|
struct __declspec(align(8)) MaterialInfo
|
|
{
|
|
const char *name;
|
|
unsigned __int8 gameFlags;
|
|
unsigned __int8 sortKey;
|
|
unsigned __int8 textureAtlasRowCount;
|
|
unsigned __int8 textureAtlasColumnCount;
|
|
GfxDrawSurf drawSurf;
|
|
unsigned int surfaceTypeBits;
|
|
};
|
|
|
|
struct MaterialStreamRouting
|
|
{
|
|
unsigned __int8 source;
|
|
unsigned __int8 dest;
|
|
};
|
|
|
|
struct D3DVertexDeclaration : D3DResource
|
|
{
|
|
};
|
|
|
|
union MaterialVertexStreamRouting
|
|
{
|
|
MaterialStreamRouting data[16];
|
|
D3DVertexDeclaration *decl[15];
|
|
};
|
|
|
|
struct MaterialVertexDeclaration
|
|
{
|
|
unsigned __int8 streamCount;
|
|
bool hasOptionalSource;
|
|
MaterialVertexStreamRouting routing;
|
|
};
|
|
|
|
struct D3DVertexShader : D3DResource
|
|
{
|
|
};
|
|
|
|
struct GfxVertexShaderLoadDef
|
|
{
|
|
unsigned __int8 *cachedPart;
|
|
unsigned __int8 *physicalPart;
|
|
unsigned __int16 cachedPartSize;
|
|
unsigned __int16 physicalPartSize;
|
|
};
|
|
|
|
union MaterialVertexShaderProgram
|
|
{
|
|
D3DVertexShader *vs;
|
|
GfxVertexShaderLoadDef loadDef;
|
|
};
|
|
|
|
struct MaterialVertexShader
|
|
{
|
|
const char *name;
|
|
MaterialVertexShaderProgram prog;
|
|
};
|
|
|
|
struct D3DPixelShader : D3DResource
|
|
{
|
|
};
|
|
|
|
struct GfxPixelShaderLoadDef
|
|
{
|
|
unsigned __int8 *cachedPart;
|
|
unsigned __int8 *physicalPart;
|
|
unsigned __int16 cachedPartSize;
|
|
unsigned __int16 physicalPartSize;
|
|
};
|
|
|
|
union MaterialPixelShaderProgram
|
|
{
|
|
D3DPixelShader *ps;
|
|
GfxPixelShaderLoadDef loadDef;
|
|
};
|
|
|
|
struct MaterialPixelShader
|
|
{
|
|
const char *name;
|
|
MaterialPixelShaderProgram prog;
|
|
};
|
|
|
|
struct MaterialArgumentCodeConst
|
|
{
|
|
unsigned __int16 index;
|
|
unsigned __int8 firstRow;
|
|
unsigned __int8 rowCount;
|
|
};
|
|
|
|
union MaterialArgumentDef
|
|
{
|
|
const float *literalConst;
|
|
MaterialArgumentCodeConst codeConst;
|
|
unsigned int codeSampler;
|
|
unsigned int nameHash;
|
|
};
|
|
|
|
struct MaterialShaderArgument
|
|
{
|
|
unsigned __int16 type;
|
|
unsigned __int16 dest;
|
|
MaterialArgumentDef u;
|
|
};
|
|
|
|
struct MaterialPass
|
|
{
|
|
MaterialVertexDeclaration *vertexDecl;
|
|
MaterialVertexShader *vertexShaderArray[15];
|
|
MaterialVertexShader *vertexShader;
|
|
MaterialPixelShader *pixelShader;
|
|
unsigned __int8 perPrimArgCount;
|
|
unsigned __int8 perObjArgCount;
|
|
unsigned __int8 stableArgCount;
|
|
unsigned __int8 customSamplerFlags;
|
|
unsigned __int8 precompiledIndex;
|
|
MaterialShaderArgument *args;
|
|
};
|
|
|
|
struct MaterialTechnique
|
|
{
|
|
const char *name;
|
|
unsigned __int16 flags;
|
|
unsigned __int16 passCount;
|
|
MaterialPass passArray[1];
|
|
};
|
|
|
|
struct MaterialTechniqueSet
|
|
{
|
|
const char *name;
|
|
unsigned __int8 worldVertFormat;
|
|
unsigned __int8 unused[2];
|
|
MaterialTechniqueSet *remappedTechniqueSet;
|
|
MaterialTechnique *techniques[26];
|
|
};
|
|
|
|
enum MapType : __int32
|
|
{
|
|
MAPTYPE_NONE = 0x0,
|
|
MAPTYPE_INVALID1 = 0x1,
|
|
MAPTYPE_INVALID2 = 0x2,
|
|
MAPTYPE_2D = 0x3,
|
|
MAPTYPE_3D = 0x4,
|
|
MAPTYPE_CUBE = 0x5,
|
|
MAPTYPE_COUNT = 0x6,
|
|
};
|
|
|
|
union GfxTexture
|
|
{
|
|
D3DBaseTexture *basemap;
|
|
D3DTexture *map;
|
|
D3DVolumeTexture *volmap;
|
|
D3DCubeTexture *cubemap;
|
|
GfxImageLoadDef *loadDef;
|
|
};
|
|
|
|
struct CardMemory
|
|
{
|
|
int platform[1];
|
|
};
|
|
|
|
struct GfxImage
|
|
{
|
|
MapType mapType;
|
|
GfxTexture texture;
|
|
unsigned __int8 semantic;
|
|
CardMemory cardMemory;
|
|
unsigned __int16 width;
|
|
unsigned __int16 height;
|
|
unsigned __int16 depth;
|
|
unsigned __int8 category;
|
|
bool delayLoadPixels;
|
|
unsigned __int8 *pixels;
|
|
unsigned int baseSize;
|
|
unsigned __int16 streamSlot;
|
|
bool streaming;
|
|
const char *name;
|
|
};
|
|
|
|
struct WaterWritable
|
|
{
|
|
float floatTime;
|
|
};
|
|
|
|
struct water_t
|
|
{
|
|
WaterWritable writable;
|
|
float *H0X;
|
|
float *H0Y;
|
|
float *wTerm;
|
|
int M;
|
|
int N;
|
|
float Lx;
|
|
float Lz;
|
|
float gravity;
|
|
float windvel;
|
|
float winddir[2];
|
|
float amplitude;
|
|
float codeConstant[4];
|
|
GfxImage *image;
|
|
};
|
|
|
|
union MaterialTextureDefInfo
|
|
{
|
|
GfxImage *image;
|
|
water_t *water;
|
|
};
|
|
|
|
struct MaterialTextureDef
|
|
{
|
|
unsigned int nameHash;
|
|
char nameStart;
|
|
char nameEnd;
|
|
unsigned __int8 samplerState;
|
|
unsigned __int8 semantic;
|
|
MaterialTextureDefInfo u;
|
|
};
|
|
|
|
struct MaterialConstantDef
|
|
{
|
|
unsigned int nameHash;
|
|
char name[12];
|
|
float literal[4];
|
|
};
|
|
|
|
struct GfxStateBits
|
|
{
|
|
unsigned int loadBits[2];
|
|
};
|
|
|
|
struct Material
|
|
{
|
|
MaterialInfo info;
|
|
unsigned __int8 stateBitsEntry[26];
|
|
unsigned __int8 textureCount;
|
|
unsigned __int8 constantCount;
|
|
unsigned __int8 stateBitsCount;
|
|
unsigned __int8 stateFlags;
|
|
unsigned __int8 cameraRegion;
|
|
MaterialTechniqueSet *techniqueSet;
|
|
MaterialTextureDef *textureTable;
|
|
MaterialConstantDef *constantTable;
|
|
GfxStateBits *stateBitsTable;
|
|
};
|
|
|
|
struct XModelLodInfo
|
|
{
|
|
float dist;
|
|
unsigned __int16 numsurfs;
|
|
unsigned __int16 surfIndex;
|
|
int partBits[4];
|
|
};
|
|
|
|
struct XModelCollSurf_s
|
|
{
|
|
float mins[3];
|
|
float maxs[3];
|
|
int boneIdx;
|
|
int contents;
|
|
int surfFlags;
|
|
};
|
|
|
|
struct XBoneInfo
|
|
{
|
|
float bounds[2][3];
|
|
float offset[3];
|
|
float radiusSquared;
|
|
};
|
|
|
|
struct XModelHighMipBounds
|
|
{
|
|
float mins[3];
|
|
float maxs[3];
|
|
};
|
|
|
|
struct XModelStreamInfo
|
|
{
|
|
XModelHighMipBounds *highMipBounds;
|
|
};
|
|
|
|
struct __declspec(align(4)) PhysPreset
|
|
{
|
|
const char *name;
|
|
int type;
|
|
float mass;
|
|
float bounce;
|
|
float friction;
|
|
float bulletForceScale;
|
|
float explosiveForceScale;
|
|
const char *sndAliasPrefix;
|
|
float piecesSpreadFraction;
|
|
float piecesUpwardVelocity;
|
|
bool tempDefaultToCylinder;
|
|
};
|
|
|
|
struct cplane_s
|
|
{
|
|
float normal[3];
|
|
float dist;
|
|
unsigned __int8 type;
|
|
unsigned __int8 signbits;
|
|
unsigned __int8 pad[2];
|
|
};
|
|
|
|
struct __declspec(align(2)) cbrushside_t
|
|
{
|
|
cplane_s *plane;
|
|
unsigned int materialNum;
|
|
__int16 firstAdjacentSideOffset;
|
|
unsigned __int8 edgeCount;
|
|
};
|
|
|
|
struct BrushWrapper
|
|
{
|
|
float mins[3];
|
|
int contents;
|
|
float maxs[3];
|
|
unsigned int numsides;
|
|
cbrushside_t *sides;
|
|
__int16 axialMaterialNum[2][3];
|
|
unsigned __int8 *baseAdjacentSide;
|
|
__int16 firstAdjacentSideOffsets[2][3];
|
|
unsigned __int8 edgeCount[2][3];
|
|
int totalEdgeCount;
|
|
cplane_s *planes;
|
|
};
|
|
|
|
struct PhysGeomInfo
|
|
{
|
|
BrushWrapper *brush;
|
|
int type;
|
|
float orientation[3][3];
|
|
float offset[3];
|
|
float halfLengths[3];
|
|
};
|
|
|
|
struct PhysMass
|
|
{
|
|
float centerOfMass[3];
|
|
float momentsOfInertia[3];
|
|
float productsOfInertia[3];
|
|
};
|
|
|
|
struct PhysGeomList
|
|
{
|
|
unsigned int count;
|
|
PhysGeomInfo *geoms;
|
|
PhysMass mass;
|
|
};
|
|
|
|
struct XModel
|
|
{
|
|
const char *name;
|
|
unsigned __int8 numBones;
|
|
unsigned __int8 numRootBones;
|
|
unsigned __int8 numsurfs;
|
|
unsigned __int8 lodRampType;
|
|
unsigned __int16 *boneNames;
|
|
unsigned __int8 *parentList;
|
|
__int16 *quats;
|
|
float *trans;
|
|
unsigned __int8 *partClassification;
|
|
DObjAnimMat *baseMat;
|
|
XSurface *surfs;
|
|
Material **materialHandles;
|
|
XModelLodInfo lodInfo[4];
|
|
XModelCollSurf_s *collSurfs;
|
|
int numCollSurfs;
|
|
int contents;
|
|
XBoneInfo *boneInfo;
|
|
float radius;
|
|
float mins[3];
|
|
float maxs[3];
|
|
__int16 numLods;
|
|
__int16 collLod;
|
|
XModelStreamInfo streamInfo;
|
|
int memUsage;
|
|
unsigned __int8 flags;
|
|
PhysPreset *physPreset;
|
|
PhysGeomList *physGeoms;
|
|
};
|
|
|
|
struct XModelPiece
|
|
{
|
|
XModel *model;
|
|
float offset[3];
|
|
};
|
|
|
|
struct XModelPieces
|
|
{
|
|
const char *name;
|
|
int numpieces;
|
|
XModelPiece *pieces;
|
|
};
|
|
|
|
union XAnimIndices
|
|
{
|
|
unsigned __int8 *_1;
|
|
unsigned __int16 *_2;
|
|
void *data;
|
|
};
|
|
|
|
struct XAnimNotifyInfo
|
|
{
|
|
unsigned __int16 name;
|
|
float time;
|
|
};
|
|
|
|
union XAnimDynamicFrames
|
|
{
|
|
unsigned __int8 (*_1)[3];
|
|
unsigned __int16 (*_2)[3];
|
|
};
|
|
|
|
union XAnimDynamicIndices
|
|
{
|
|
unsigned __int8 _1[1];
|
|
unsigned __int16 _2[1];
|
|
};
|
|
|
|
struct __declspec(align(4)) XAnimPartTransFrames
|
|
{
|
|
float mins[3];
|
|
float size[3];
|
|
XAnimDynamicFrames frames;
|
|
XAnimDynamicIndices indices;
|
|
};
|
|
|
|
union XAnimPartTransData
|
|
{
|
|
XAnimPartTransFrames frames;
|
|
float frame0[3];
|
|
};
|
|
|
|
struct XAnimPartTrans
|
|
{
|
|
unsigned __int16 size;
|
|
unsigned __int8 smallTrans;
|
|
XAnimPartTransData u;
|
|
};
|
|
|
|
struct __declspec(align(4)) XAnimDeltaPartQuatDataFrames
|
|
{
|
|
__int16 (*frames)[2];
|
|
XAnimDynamicIndices indices;
|
|
};
|
|
|
|
union XAnimDeltaPartQuatData
|
|
{
|
|
XAnimDeltaPartQuatDataFrames frames;
|
|
__int16 frame0[2];
|
|
};
|
|
|
|
struct XAnimDeltaPartQuat
|
|
{
|
|
unsigned __int16 size;
|
|
XAnimDeltaPartQuatData u;
|
|
};
|
|
|
|
struct XAnimDeltaPart
|
|
{
|
|
XAnimPartTrans *trans;
|
|
XAnimDeltaPartQuat *quat;
|
|
};
|
|
|
|
struct XAnimParts
|
|
{
|
|
const char *name;
|
|
unsigned __int16 dataByteCount;
|
|
unsigned __int16 dataShortCount;
|
|
unsigned __int16 dataIntCount;
|
|
unsigned __int16 randomDataByteCount;
|
|
unsigned __int16 randomDataIntCount;
|
|
unsigned __int16 numframes;
|
|
bool bLoop;
|
|
bool bDelta;
|
|
unsigned __int8 boneCount[12];
|
|
unsigned __int8 notifyCount;
|
|
unsigned __int8 assetType;
|
|
bool pad;
|
|
unsigned int randomDataShortCount;
|
|
unsigned int indexCount;
|
|
float framerate;
|
|
float frequency;
|
|
unsigned __int16 *names;
|
|
unsigned __int8 *dataByte;
|
|
__int16 *dataShort;
|
|
int *dataInt;
|
|
__int16 *randomDataShort;
|
|
unsigned __int8 *randomDataByte;
|
|
int *randomDataInt;
|
|
XAnimIndices indices;
|
|
XAnimNotifyInfo *notify;
|
|
XAnimDeltaPart *deltaPart;
|
|
};
|
|
|
|
struct __declspec(align(4)) XMALOOPREGION
|
|
{
|
|
unsigned int LoopStart;
|
|
unsigned int LoopEnd;
|
|
unsigned __int8 LoopSubframeEnd;
|
|
unsigned __int8 LoopSubframeSkip;
|
|
};
|
|
|
|
struct XAUDIOPACKET_ALIGNED
|
|
{
|
|
char *pBuffer;
|
|
unsigned int BufferSize;
|
|
unsigned int LoopCount;
|
|
XMALOOPREGION XMALoop[6];
|
|
char *pContext;
|
|
};
|
|
|
|
union AudioStreamMeta
|
|
{
|
|
unsigned __int8 NumStreams;
|
|
unsigned __int8 ChannelCount;
|
|
};
|
|
|
|
struct __declspec(align(4)) XAUDIOXMAFORMAT
|
|
{
|
|
unsigned int SampleRate;
|
|
unsigned __int8 ChannelCount;
|
|
unsigned __int8 DecodeBufferSize;
|
|
};
|
|
|
|
union SoundFormatData
|
|
{
|
|
XAUDIOXMAFORMAT Stream[6];
|
|
unsigned int SampleRate;
|
|
};
|
|
|
|
struct XAUDIOSOURCEFORMAT
|
|
{
|
|
unsigned __int8 SampleType;
|
|
__declspec(align(4)) AudioStreamMeta ___u1;
|
|
SoundFormatData ___u2;
|
|
};
|
|
|
|
struct XaIwXmaDataInfo
|
|
{
|
|
int totalMsec;
|
|
};
|
|
|
|
struct XaSeekTable
|
|
{
|
|
int size;
|
|
unsigned int *data;
|
|
};
|
|
|
|
struct XaSound
|
|
{
|
|
XAUDIOPACKET_ALIGNED packet;
|
|
XAUDIOSOURCEFORMAT format;
|
|
XaIwXmaDataInfo xaIwXmaDataInfo;
|
|
XaSeekTable seekTable;
|
|
};
|
|
|
|
struct LoadedSound
|
|
{
|
|
const char *name;
|
|
XaSound sound;
|
|
};
|
|
|
|
struct StreamFileNameRaw
|
|
{
|
|
const char *dir;
|
|
const char *name;
|
|
};
|
|
|
|
struct StreamFileNamePacked
|
|
{
|
|
unsigned int offset;
|
|
unsigned int length;
|
|
};
|
|
|
|
union StreamFileInfo
|
|
{
|
|
StreamFileNameRaw raw;
|
|
StreamFileNamePacked packed;
|
|
};
|
|
|
|
struct StreamFileName
|
|
{
|
|
unsigned int fileIndex;
|
|
StreamFileInfo info;
|
|
};
|
|
|
|
struct StreamedSound
|
|
{
|
|
StreamFileName filename;
|
|
};
|
|
|
|
union SoundFileRef
|
|
{
|
|
LoadedSound *loadSnd;
|
|
StreamedSound streamSnd;
|
|
};
|
|
|
|
struct SoundFile
|
|
{
|
|
unsigned __int8 type;
|
|
unsigned __int8 exists;
|
|
SoundFileRef u;
|
|
};
|
|
|
|
struct SndCurve
|
|
{
|
|
const char *filename;
|
|
int knotCount;
|
|
float knots[8][2];
|
|
};
|
|
|
|
struct XAUDIOCHANNELMAPENTRY
|
|
{
|
|
unsigned __int8 InputChannel;
|
|
unsigned __int8 OutputChannel;
|
|
float Volume;
|
|
};
|
|
|
|
struct XAUDIOCHANNELMAP
|
|
{
|
|
unsigned __int8 EntryCount;
|
|
XAUDIOCHANNELMAPENTRY *paEntries;
|
|
};
|
|
|
|
struct SpeakerMap
|
|
{
|
|
bool isDefault;
|
|
const char *name;
|
|
XAUDIOCHANNELMAP channelMaps[2][2];
|
|
};
|
|
|
|
struct snd_alias_t
|
|
{
|
|
const char *aliasName;
|
|
const char *subtitle;
|
|
const char *secondaryAliasName;
|
|
const char *chainAliasName;
|
|
SoundFile *soundFile;
|
|
int sequence;
|
|
float volMin;
|
|
float volMax;
|
|
float pitchMin;
|
|
float pitchMax;
|
|
float distMin;
|
|
float distMax;
|
|
int flags;
|
|
float slavePercentage;
|
|
float probability;
|
|
float lfePercentage;
|
|
float centerPercentage;
|
|
int startDelay;
|
|
SndCurve *volumeFalloffCurve;
|
|
float envelopMin;
|
|
float envelopMax;
|
|
float envelopPercentage;
|
|
SpeakerMap *speakerMap;
|
|
};
|
|
|
|
struct snd_alias_list_t
|
|
{
|
|
const char *aliasName;
|
|
snd_alias_t *head;
|
|
int count;
|
|
};
|
|
|
|
struct cStaticModelWritable
|
|
{
|
|
unsigned __int16 nextModelInWorldSector;
|
|
};
|
|
|
|
struct cStaticModel_s
|
|
{
|
|
cStaticModelWritable writable;
|
|
XModel *xmodel;
|
|
float origin[3];
|
|
float invScaledAxis[3][3];
|
|
float absmin[3];
|
|
float absmax[3];
|
|
};
|
|
|
|
struct dmaterial_t
|
|
{
|
|
char material[64];
|
|
int surfaceFlags;
|
|
int contentFlags;
|
|
};
|
|
|
|
struct cNode_t
|
|
{
|
|
cplane_s *plane;
|
|
__int16 children[2];
|
|
};
|
|
|
|
struct __declspec(align(4)) cLeaf_t
|
|
{
|
|
unsigned __int16 firstCollAabbIndex;
|
|
unsigned __int16 collAabbCount;
|
|
int brushContents;
|
|
int terrainContents;
|
|
float mins[3];
|
|
float maxs[3];
|
|
int leafBrushNode;
|
|
__int16 cluster;
|
|
};
|
|
|
|
struct cLeafBrushNodeLeaf_t
|
|
{
|
|
unsigned __int16 *brushes;
|
|
};
|
|
|
|
struct cLeafBrushNodeChildren_t
|
|
{
|
|
float dist;
|
|
float range;
|
|
unsigned __int16 childOffset[2];
|
|
};
|
|
|
|
union cLeafBrushNodeData_t
|
|
{
|
|
cLeafBrushNodeLeaf_t leaf;
|
|
cLeafBrushNodeChildren_t children;
|
|
};
|
|
|
|
struct cLeafBrushNode_s
|
|
{
|
|
unsigned __int8 axis;
|
|
__int16 leafBrushCount;
|
|
int contents;
|
|
cLeafBrushNodeData_t data;
|
|
};
|
|
|
|
struct CollisionBorder
|
|
{
|
|
float distEq[3];
|
|
float zBase;
|
|
float zSlope;
|
|
float start;
|
|
float length;
|
|
};
|
|
|
|
struct CollisionPartition
|
|
{
|
|
unsigned __int8 triCount;
|
|
unsigned __int8 borderCount;
|
|
int firstTri;
|
|
CollisionBorder *borders;
|
|
};
|
|
|
|
union CollisionAabbTreeIndex
|
|
{
|
|
int firstChildIndex;
|
|
int partitionIndex;
|
|
};
|
|
|
|
struct CollisionAabbTree
|
|
{
|
|
float origin[3];
|
|
float halfSize[3];
|
|
unsigned __int16 materialIndex;
|
|
unsigned __int16 childCount;
|
|
CollisionAabbTreeIndex u;
|
|
};
|
|
|
|
struct cmodel_t
|
|
{
|
|
float mins[3];
|
|
float maxs[3];
|
|
float radius;
|
|
cLeaf_t leaf;
|
|
};
|
|
|
|
struct __declspec(align(16)) cbrush_t
|
|
{
|
|
float mins[3];
|
|
int contents;
|
|
float maxs[3];
|
|
unsigned int numsides;
|
|
cbrushside_t *sides;
|
|
__int16 axialMaterialNum[2][3];
|
|
unsigned __int8 *baseAdjacentSide;
|
|
__int16 firstAdjacentSideOffsets[2][3];
|
|
unsigned __int8 edgeCount[2][3];
|
|
};
|
|
|
|
struct MapEnts
|
|
{
|
|
const char *name;
|
|
char *entityString;
|
|
int numEntityChars;
|
|
};
|
|
|
|
enum DynEntityType : __int32
|
|
{
|
|
DYNENT_TYPE_INVALID = 0x0,
|
|
DYNENT_TYPE_CLUTTER = 0x1,
|
|
DYNENT_TYPE_DESTRUCT = 0x2,
|
|
DYNENT_TYPE_COUNT = 0x3,
|
|
};
|
|
|
|
struct GfxPlacement
|
|
{
|
|
float quat[4];
|
|
float origin[3];
|
|
};
|
|
|
|
struct FxSpawnDefLooping
|
|
{
|
|
int intervalMsec;
|
|
int count;
|
|
};
|
|
|
|
struct FxIntRange
|
|
{
|
|
int base;
|
|
int amplitude;
|
|
};
|
|
|
|
struct FxSpawnDefOneShot
|
|
{
|
|
FxIntRange count;
|
|
};
|
|
|
|
union FxSpawnDef
|
|
{
|
|
FxSpawnDefLooping looping;
|
|
FxSpawnDefOneShot oneShot;
|
|
};
|
|
|
|
struct FxFloatRange
|
|
{
|
|
float base;
|
|
float amplitude;
|
|
};
|
|
|
|
struct FxElemAtlas
|
|
{
|
|
unsigned __int8 behavior;
|
|
unsigned __int8 index;
|
|
unsigned __int8 fps;
|
|
unsigned __int8 loopCount;
|
|
unsigned __int8 colIndexBits;
|
|
unsigned __int8 rowIndexBits;
|
|
__int16 entryCount;
|
|
};
|
|
|
|
struct FxElemVec3Range
|
|
{
|
|
float base[3];
|
|
float amplitude[3];
|
|
};
|
|
|
|
struct FxElemVelStateInFrame
|
|
{
|
|
FxElemVec3Range velocity;
|
|
FxElemVec3Range totalDelta;
|
|
};
|
|
|
|
const struct FxElemVelStateSample
|
|
{
|
|
FxElemVelStateInFrame local;
|
|
FxElemVelStateInFrame world;
|
|
};
|
|
|
|
union FxEffectDefRef
|
|
{
|
|
const FxEffectDef *handle;
|
|
const char *name;
|
|
};
|
|
|
|
union FxElemVisuals
|
|
{
|
|
const void *anonymous;
|
|
Material *material;
|
|
XModel *model;
|
|
FxEffectDefRef effectDef;
|
|
const char *soundName;
|
|
};
|
|
|
|
struct FxElemMarkVisuals
|
|
{
|
|
Material *materials[2];
|
|
};
|
|
|
|
union FxElemDefVisuals
|
|
{
|
|
FxElemMarkVisuals *markArray;
|
|
FxElemVisuals *array;
|
|
FxElemVisuals instance;
|
|
};
|
|
|
|
struct FxElemVisualState
|
|
{
|
|
unsigned __int8 color[4];
|
|
float rotationDelta;
|
|
float rotationTotal;
|
|
float size[2];
|
|
float scale;
|
|
};
|
|
|
|
const struct FxElemVisStateSample
|
|
{
|
|
FxElemVisualState base;
|
|
FxElemVisualState amplitude;
|
|
};
|
|
|
|
struct FxTrailVertex
|
|
{
|
|
float pos[2];
|
|
float normal[2];
|
|
float texCoord;
|
|
};
|
|
|
|
struct FxTrailDef
|
|
{
|
|
int scrollTimeMsec;
|
|
int repeatDist;
|
|
int splitDist;
|
|
int vertCount;
|
|
FxTrailVertex *verts;
|
|
int indCount;
|
|
unsigned __int16 *inds;
|
|
};
|
|
|
|
const struct FxElemDef
|
|
{
|
|
int flags;
|
|
FxSpawnDef spawn;
|
|
FxFloatRange spawnRange;
|
|
FxFloatRange fadeInRange;
|
|
FxFloatRange fadeOutRange;
|
|
float spawnFrustumCullRadius;
|
|
FxIntRange spawnDelayMsec;
|
|
FxIntRange lifeSpanMsec;
|
|
FxFloatRange spawnOrigin[3];
|
|
FxFloatRange spawnOffsetRadius;
|
|
FxFloatRange spawnOffsetHeight;
|
|
FxFloatRange spawnAngles[3];
|
|
FxFloatRange angularVelocity[3];
|
|
FxFloatRange initialRotation;
|
|
FxFloatRange gravity;
|
|
FxFloatRange reflectionFactor;
|
|
FxElemAtlas atlas;
|
|
unsigned __int8 elemType;
|
|
unsigned __int8 visualCount;
|
|
unsigned __int8 velIntervalCount;
|
|
unsigned __int8 visStateIntervalCount;
|
|
const FxElemVelStateSample *velSamples;
|
|
const FxElemVisStateSample *visSamples;
|
|
FxElemDefVisuals visuals;
|
|
float collMins[3];
|
|
float collMaxs[3];
|
|
FxEffectDefRef effectOnImpact;
|
|
FxEffectDefRef effectOnDeath;
|
|
FxEffectDefRef effectEmitted;
|
|
FxFloatRange emitDist;
|
|
FxFloatRange emitDistVariance;
|
|
FxTrailDef *trailDef;
|
|
unsigned __int8 sortOrder;
|
|
unsigned __int8 lightingFrac;
|
|
unsigned __int8 useItemClip;
|
|
unsigned __int8 unused[1];
|
|
};
|
|
|
|
const struct FxEffectDef
|
|
{
|
|
const char *name;
|
|
int flags;
|
|
int totalSize;
|
|
int msecLoopingLife;
|
|
int elemDefCountLooping;
|
|
int elemDefCountOneShot;
|
|
int elemDefCountEmission;
|
|
const FxElemDef *elemDefs;
|
|
};
|
|
|
|
struct DynEntityDef
|
|
{
|
|
DynEntityType type;
|
|
GfxPlacement pose;
|
|
XModel *xModel;
|
|
unsigned __int16 brushModel;
|
|
unsigned __int16 physicsBrushModel;
|
|
const FxEffectDef *destroyFx;
|
|
XModelPieces *destroyPieces;
|
|
PhysPreset *physPreset;
|
|
int health;
|
|
PhysMass mass;
|
|
int contents;
|
|
};
|
|
|
|
struct DynEntityPose
|
|
{
|
|
GfxPlacement pose;
|
|
float radius;
|
|
};
|
|
|
|
struct DynEntityClient
|
|
{
|
|
int physObjId;
|
|
unsigned __int16 flags;
|
|
unsigned __int16 lightingHandle;
|
|
int health;
|
|
};
|
|
|
|
struct DynEntityColl
|
|
{
|
|
unsigned __int16 sector;
|
|
unsigned __int16 nextEntInSector;
|
|
float linkMins[2];
|
|
float linkMaxs[2];
|
|
};
|
|
|
|
struct clipMap_t
|
|
{
|
|
const char *name;
|
|
int isInUse;
|
|
int planeCount;
|
|
cplane_s *planes;
|
|
unsigned int numStaticModels;
|
|
cStaticModel_s *staticModelList;
|
|
unsigned int numMaterials;
|
|
dmaterial_t *materials;
|
|
unsigned int numBrushSides;
|
|
cbrushside_t *brushsides;
|
|
unsigned int numBrushEdges;
|
|
unsigned __int8 *brushEdges;
|
|
unsigned int numNodes;
|
|
cNode_t *nodes;
|
|
unsigned int numLeafs;
|
|
cLeaf_t *leafs;
|
|
unsigned int leafbrushNodesCount;
|
|
cLeafBrushNode_s *leafbrushNodes;
|
|
unsigned int numLeafBrushes;
|
|
unsigned __int16 *leafbrushes;
|
|
unsigned int numLeafSurfaces;
|
|
unsigned int *leafsurfaces;
|
|
unsigned int vertCount;
|
|
float (*verts)[3];
|
|
int triCount;
|
|
unsigned __int16 *triIndices;
|
|
unsigned __int8 *triEdgeIsWalkable;
|
|
int borderCount;
|
|
CollisionBorder *borders;
|
|
int partitionCount;
|
|
CollisionPartition *partitions;
|
|
int aabbTreeCount;
|
|
CollisionAabbTree *aabbTrees;
|
|
unsigned int numSubModels;
|
|
cmodel_t *cmodels;
|
|
unsigned __int16 numBrushes;
|
|
cbrush_t *brushes;
|
|
int numClusters;
|
|
int clusterBytes;
|
|
unsigned __int8 *visibility;
|
|
int vised;
|
|
MapEnts *mapEnts;
|
|
cbrush_t *box_brush;
|
|
cmodel_t box_model;
|
|
unsigned __int16 dynEntCount[2];
|
|
DynEntityDef *dynEntDefList[2];
|
|
DynEntityPose *dynEntPoseList[2];
|
|
DynEntityClient *dynEntClientList[2];
|
|
DynEntityColl *dynEntCollList[2];
|
|
unsigned int checksum;
|
|
};
|
|
|
|
struct ComPrimaryLight
|
|
{
|
|
unsigned __int8 type;
|
|
unsigned __int8 canUseShadowMap;
|
|
unsigned __int8 exponent;
|
|
unsigned __int8 unused;
|
|
float color[3];
|
|
float dir[3];
|
|
float origin[3];
|
|
float radius;
|
|
float cosHalfFovOuter;
|
|
float cosHalfFovInner;
|
|
float cosHalfFovExpanded;
|
|
float rotationLimit;
|
|
float translationLimit;
|
|
const char *defName;
|
|
};
|
|
|
|
struct ComWorld
|
|
{
|
|
const char *name;
|
|
int isInUse;
|
|
unsigned int primaryLightCount;
|
|
ComPrimaryLight *primaryLights;
|
|
};
|
|
|
|
enum nodeType : __int32
|
|
{
|
|
NODE_BADNODE = 0x0,
|
|
NODE_PATHNODE = 0x1,
|
|
NODE_COVER_STAND = 0x2,
|
|
NODE_COVER_CROUCH = 0x3,
|
|
NODE_COVER_CROUCH_WINDOW = 0x4,
|
|
NODE_COVER_PRONE = 0x5,
|
|
NODE_COVER_RIGHT = 0x6,
|
|
NODE_COVER_LEFT = 0x7,
|
|
NODE_COVER_WIDE_RIGHT = 0x8,
|
|
NODE_COVER_WIDE_LEFT = 0x9,
|
|
NODE_CONCEALMENT_STAND = 0xA,
|
|
NODE_CONCEALMENT_CROUCH = 0xB,
|
|
NODE_CONCEALMENT_PRONE = 0xC,
|
|
NODE_REACQUIRE = 0xD,
|
|
NODE_BALCONY = 0xE,
|
|
NODE_SCRIPTED = 0xF,
|
|
NODE_NEGOTIATION_BEGIN = 0x10,
|
|
NODE_NEGOTIATION_END = 0x11,
|
|
NODE_TURRET = 0x12,
|
|
NODE_GUARD = 0x13,
|
|
NODE_NUMTYPES = 0x14,
|
|
NODE_DONTLINK = 0x14,
|
|
};
|
|
|
|
struct pathlink_s
|
|
{
|
|
float fDist;
|
|
unsigned __int16 nodeNum;
|
|
unsigned __int8 disconnectCount;
|
|
unsigned __int8 negotiationLink;
|
|
unsigned __int8 ubBadPlaceCount[4];
|
|
};
|
|
|
|
struct pathnode_constant_t
|
|
{
|
|
nodeType type;
|
|
unsigned __int16 spawnflags;
|
|
unsigned __int16 targetname;
|
|
unsigned __int16 script_linkName;
|
|
unsigned __int16 script_noteworthy;
|
|
unsigned __int16 target;
|
|
unsigned __int16 animscript;
|
|
int animscriptfunc;
|
|
float vOrigin[3];
|
|
float fAngle;
|
|
float forward[2];
|
|
float fRadius;
|
|
float minUseDistSq;
|
|
__int16 wOverlapNode[2];
|
|
__int16 wChainId;
|
|
__int16 wChainDepth;
|
|
__int16 wChainParent;
|
|
unsigned __int16 totalLinkCount;
|
|
pathlink_s *Links;
|
|
};
|
|
|
|
struct pathnode_dynamic_t
|
|
{
|
|
void *pOwner;
|
|
int iFreeTime;
|
|
int iValidTime[3];
|
|
int inPlayerLOSTime;
|
|
__int16 wLinkCount;
|
|
__int16 wOverlapCount;
|
|
__int16 turretEntNumber;
|
|
__int16 userCount;
|
|
};
|
|
|
|
struct pathnode_t;
|
|
|
|
struct pathnode_transient_t
|
|
{
|
|
int iSearchFrame;
|
|
pathnode_t *pNextOpen;
|
|
pathnode_t *pPrevOpen;
|
|
pathnode_t *pParent;
|
|
float fCost;
|
|
float fHeuristic;
|
|
float costFactor;
|
|
};
|
|
|
|
struct pathnode_t
|
|
{
|
|
pathnode_constant_t constant;
|
|
pathnode_dynamic_t dynamic;
|
|
pathnode_transient_t transient;
|
|
};
|
|
|
|
struct pathbasenode_t
|
|
{
|
|
float vOrigin[3];
|
|
unsigned int type;
|
|
};
|
|
|
|
struct pathnode_tree_nodes_t
|
|
{
|
|
int nodeCount;
|
|
unsigned __int16 *nodes;
|
|
};
|
|
|
|
union pathnode_tree_info_t;
|
|
struct pathnode_tree_t
|
|
{
|
|
int axis;
|
|
float dist;
|
|
pathnode_tree_info_t u;
|
|
};
|
|
|
|
union pathnode_tree_info_t
|
|
{
|
|
pathnode_tree_t *child[2];
|
|
pathnode_tree_nodes_t s;
|
|
};
|
|
|
|
struct PathData
|
|
{
|
|
unsigned int nodeCount;
|
|
pathnode_t *nodes;
|
|
pathbasenode_t *basenodes;
|
|
unsigned int chainNodeCount;
|
|
unsigned __int16 *chainNodeForNode;
|
|
unsigned __int16 *nodeForChainNode;
|
|
int visBytes;
|
|
unsigned __int8 *pathVis;
|
|
int nodeTreeCount;
|
|
pathnode_tree_t *nodeTree;
|
|
};
|
|
|
|
struct GameWorldSp
|
|
{
|
|
const char *name;
|
|
PathData path;
|
|
};
|
|
|
|
struct GameWorldMp
|
|
{
|
|
const char *name;
|
|
};
|
|
|
|
struct GfxStreamingAabbTree
|
|
{
|
|
unsigned __int16 firstItem;
|
|
unsigned __int16 itemCount;
|
|
unsigned __int16 firstChild;
|
|
unsigned __int16 childCount;
|
|
float mins[3];
|
|
float maxs[3];
|
|
};
|
|
|
|
struct GfxWorldStreamInfo
|
|
{
|
|
int aabbTreeCount;
|
|
GfxStreamingAabbTree *aabbTrees;
|
|
int leafRefCount;
|
|
int *leafRefs;
|
|
};
|
|
|
|
struct GfxWorldVertex
|
|
{
|
|
float xyz[3];
|
|
float binormalSign;
|
|
GfxColor color;
|
|
float texCoord[2];
|
|
float lmapCoord[2];
|
|
PackedUnitVec normal;
|
|
PackedUnitVec tangent;
|
|
};
|
|
|
|
struct GfxWorldVertexData
|
|
{
|
|
GfxWorldVertex *vertices;
|
|
D3DVertexBuffer worldVb;
|
|
};
|
|
|
|
struct GfxWorldVertexLayerData
|
|
{
|
|
unsigned __int8 *data;
|
|
D3DVertexBuffer layerVb;
|
|
};
|
|
|
|
struct SunLightParseParams
|
|
{
|
|
char name[64];
|
|
float ambientScale;
|
|
float ambientColor[3];
|
|
float diffuseFraction;
|
|
float sunLight;
|
|
float sunColor[3];
|
|
float diffuseColor[3];
|
|
bool diffuseColorHasBeenSet;
|
|
float angles[3];
|
|
};
|
|
|
|
struct __declspec(align(4)) GfxLightImage
|
|
{
|
|
GfxImage *image;
|
|
unsigned __int8 samplerState;
|
|
};
|
|
|
|
struct GfxLightDef
|
|
{
|
|
const char *name;
|
|
GfxLightImage attenuation;
|
|
int lmapLookupStart;
|
|
};
|
|
|
|
struct GfxLight
|
|
{
|
|
unsigned __int8 type;
|
|
unsigned __int8 canUseShadowMap;
|
|
unsigned __int8 unused[2];
|
|
float color[3];
|
|
float dir[3];
|
|
float origin[3];
|
|
float radius;
|
|
float cosHalfFovOuter;
|
|
float cosHalfFovInner;
|
|
int exponent;
|
|
unsigned int spotShadowIndex;
|
|
GfxLightDef *def;
|
|
};
|
|
|
|
struct GfxReflectionProbe
|
|
{
|
|
float origin[3];
|
|
GfxImage *reflectionImage;
|
|
};
|
|
|
|
struct GfxWorldDpvsPlanes
|
|
{
|
|
int cellCount;
|
|
cplane_s *planes;
|
|
unsigned __int16 *nodes;
|
|
unsigned int *sceneEntCellBits;
|
|
};
|
|
|
|
struct GfxAabbTree
|
|
{
|
|
float mins[3];
|
|
float maxs[3];
|
|
unsigned __int16 childCount;
|
|
unsigned __int16 surfaceCount;
|
|
unsigned __int16 startSurfIndex;
|
|
unsigned __int16 smodelIndexCount;
|
|
unsigned __int16 *smodelIndexes;
|
|
int childrenOffset;
|
|
};
|
|
|
|
struct GfxPortal;
|
|
struct GfxPortalWritable
|
|
{
|
|
bool isQueued;
|
|
bool isAncestor;
|
|
unsigned __int8 recursionDepth;
|
|
unsigned __int8 hullPointCount;
|
|
float (*hullPoints)[2];
|
|
GfxPortal *queuedParent;
|
|
};
|
|
|
|
struct DpvsPlane
|
|
{
|
|
float coeffs[4];
|
|
unsigned __int8 side[3];
|
|
unsigned __int8 pad;
|
|
};
|
|
|
|
struct GfxCell;
|
|
struct GfxPortal
|
|
{
|
|
GfxPortalWritable writable;
|
|
DpvsPlane plane;
|
|
GfxCell *cell;
|
|
float (*vertices)[3];
|
|
unsigned __int8 vertexCount;
|
|
float hullAxis[2][3];
|
|
};
|
|
|
|
struct GfxCell
|
|
{
|
|
float mins[3];
|
|
float maxs[3];
|
|
int aabbTreeCount;
|
|
GfxAabbTree *aabbTree;
|
|
int portalCount;
|
|
GfxPortal *portals;
|
|
int cullGroupCount;
|
|
int *cullGroups;
|
|
unsigned __int8 reflectionProbeCount;
|
|
unsigned __int8 *reflectionProbes;
|
|
};
|
|
|
|
struct GfxLightmapArray
|
|
{
|
|
GfxImage *primary;
|
|
GfxImage *secondary;
|
|
};
|
|
|
|
struct GfxLightGridEntry
|
|
{
|
|
unsigned __int16 colorsIndex;
|
|
unsigned __int8 primaryLightIndex;
|
|
unsigned __int8 needsTrace;
|
|
};
|
|
|
|
struct GfxLightGridColors
|
|
{
|
|
unsigned __int8 rgb[56][3];
|
|
};
|
|
|
|
struct GfxLightGrid
|
|
{
|
|
bool hasLightRegions;
|
|
unsigned int sunPrimaryLightIndex;
|
|
unsigned __int16 mins[3];
|
|
unsigned __int16 maxs[3];
|
|
unsigned int rowAxis;
|
|
unsigned int colAxis;
|
|
unsigned __int16 *rowDataStart;
|
|
unsigned int rawRowDataSize;
|
|
unsigned __int8 *rawRowData;
|
|
unsigned int entryCount;
|
|
GfxLightGridEntry *entries;
|
|
unsigned int colorCount;
|
|
GfxLightGridColors *colors;
|
|
};
|
|
|
|
/* 9014 */
|
|
struct GfxBrushModelWritable
|
|
{
|
|
float mins[3];
|
|
float maxs[3];
|
|
};
|
|
|
|
struct GfxBrushModel
|
|
{
|
|
GfxBrushModelWritable writable;
|
|
float bounds[2][3];
|
|
unsigned int surfaceCount;
|
|
unsigned int startSurfIndex;
|
|
};
|
|
|
|
struct MaterialMemory
|
|
{
|
|
Material *material;
|
|
int memory;
|
|
};
|
|
|
|
struct sunflare_t
|
|
{
|
|
bool hasValidData;
|
|
Material *spriteMaterial;
|
|
Material *flareMaterial;
|
|
float spriteSize;
|
|
float flareMinSize;
|
|
float flareMinDot;
|
|
float flareMaxSize;
|
|
float flareMaxDot;
|
|
float flareMaxAlpha;
|
|
int flareFadeInTime;
|
|
int flareFadeOutTime;
|
|
float blindMinDot;
|
|
float blindMaxDot;
|
|
float blindMaxDarken;
|
|
int blindFadeInTime;
|
|
int blindFadeOutTime;
|
|
float glareMinDot;
|
|
float glareMaxDot;
|
|
float glareMaxLighten;
|
|
int glareFadeInTime;
|
|
int glareFadeOutTime;
|
|
float sunFxPosition[3];
|
|
};
|
|
|
|
struct XModelDrawInfo
|
|
{
|
|
unsigned __int16 lod;
|
|
unsigned __int16 surfId;
|
|
};
|
|
|
|
struct GfxSceneDynModel
|
|
{
|
|
XModelDrawInfo info;
|
|
unsigned __int16 dynEntId;
|
|
};
|
|
|
|
struct BModelDrawInfo
|
|
{
|
|
unsigned __int16 surfId;
|
|
};
|
|
|
|
struct GfxSceneDynBrush
|
|
{
|
|
BModelDrawInfo info;
|
|
unsigned __int16 dynEntId;
|
|
};
|
|
|
|
struct GfxShadowGeometry
|
|
{
|
|
unsigned __int16 surfaceCount;
|
|
unsigned __int16 smodelCount;
|
|
unsigned __int16 *sortedSurfIndex;
|
|
unsigned __int16 *smodelIndex;
|
|
};
|
|
|
|
struct GfxLightRegionAxis
|
|
{
|
|
float dir[3];
|
|
float midPoint;
|
|
float halfSize;
|
|
};
|
|
|
|
struct GfxLightRegionHull
|
|
{
|
|
float kdopMidPoint[9];
|
|
float kdopHalfSize[9];
|
|
unsigned int axisCount;
|
|
GfxLightRegionAxis *axis;
|
|
};
|
|
|
|
struct GfxLightRegion
|
|
{
|
|
unsigned int hullCount;
|
|
GfxLightRegionHull *hulls;
|
|
};
|
|
|
|
struct GfxWorldDpvsStatic
|
|
{
|
|
unsigned int smodelCount;
|
|
unsigned int staticSurfaceCount;
|
|
unsigned int litSurfsBegin;
|
|
unsigned int litSurfsEnd;
|
|
unsigned int decalSurfsBegin;
|
|
unsigned int decalSurfsEnd;
|
|
unsigned int emissiveSurfsBegin;
|
|
unsigned int emissiveSurfsEnd;
|
|
unsigned int smodelVisDataCount;
|
|
unsigned int surfaceVisDataCount;
|
|
unsigned __int8 *smodelVisData[3];
|
|
unsigned __int8 *surfaceVisData[3];
|
|
unsigned int *lodData;
|
|
unsigned __int16 *sortedSurfIndex;
|
|
GfxStaticModelInst *smodelInsts;
|
|
GfxSurface *surfaces;
|
|
GfxCullGroup *cullGroups;
|
|
GfxStaticModelDrawInst *smodelDrawInsts;
|
|
GfxDrawSurf *surfaceMaterials;
|
|
unsigned int *surfaceCastsSunShadow;
|
|
volatile int usageCount;
|
|
};
|
|
|
|
struct GfxWorld
|
|
{
|
|
const char *name;
|
|
const char *baseName;
|
|
int planeCount;
|
|
int nodeCount;
|
|
int indexCount;
|
|
unsigned __int16 *indices;
|
|
D3DIndexBuffer indexBuffer;
|
|
int surfaceCount;
|
|
GfxWorldStreamInfo streamInfo;
|
|
int skySurfCount;
|
|
int *skyStartSurfs;
|
|
GfxImage *skyImage;
|
|
unsigned __int8 skySamplerState;
|
|
unsigned int vertexCount;
|
|
GfxWorldVertexData vd;
|
|
unsigned int vertexLayerDataSize;
|
|
GfxWorldVertexLayerData vld;
|
|
SunLightParseParams sunParse;
|
|
GfxLight *sunLight;
|
|
float sunColorFromBsp[3];
|
|
unsigned int sunPrimaryLightIndex;
|
|
unsigned int primaryLightCount;
|
|
int cullGroupCount;
|
|
unsigned int reflectionProbeCount;
|
|
GfxReflectionProbe *reflectionProbes;
|
|
GfxTexture *reflectionProbeTextures;
|
|
GfxWorldDpvsPlanes dpvsPlanes;
|
|
int cellBitsCount;
|
|
GfxCell *cells;
|
|
int lightmapCount;
|
|
GfxLightmapArray *lightmaps;
|
|
GfxLightGrid lightGrid;
|
|
GfxTexture *lightmapPrimaryTextures;
|
|
GfxTexture *lightmapSecondaryTextures;
|
|
int modelCount;
|
|
GfxBrushModel *models;
|
|
float mins[3];
|
|
float maxs[3];
|
|
unsigned int checksum;
|
|
int materialMemoryCount;
|
|
MaterialMemory *materialMemory;
|
|
sunflare_t sun;
|
|
float outdoorLookupMatrix[4][4];
|
|
GfxImage *outdoorImage;
|
|
unsigned int *cellCasterBits;
|
|
GfxSceneDynModel *sceneDynModel;
|
|
GfxSceneDynBrush *sceneDynBrush;
|
|
unsigned int *primaryLightEntityShadowVis;
|
|
unsigned int *primaryLightDynEntShadowVis[2];
|
|
unsigned __int8 *nonSunPrimaryLightForModelDynEnt;
|
|
GfxShadowGeometry *shadowGeom;
|
|
GfxLightRegion *lightRegion;
|
|
GfxWorldDpvsStatic dpvs;
|
|
GfxWorldDpvsDynamic dpvsDyn;
|
|
};
|
|
|
|
union XAssetHeader
|
|
{
|
|
XModelPieces *xmodelPieces;
|
|
PhysPreset *physPreset;
|
|
XAnimParts *parts;
|
|
XModel *model;
|
|
Material *material;
|
|
MaterialPixelShader *pixelShader;
|
|
MaterialVertexShader *vertexShader;
|
|
MaterialTechniqueSet *techniqueSet;
|
|
GfxImage *image;
|
|
snd_alias_list_t *sound;
|
|
SndCurve *sndCurve;
|
|
LoadedSound *loadSnd;
|
|
clipMap_t *clipMap;
|
|
ComWorld *comWorld;
|
|
GameWorldSp *gameWorldSp;
|
|
GameWorldMp *gameWorldMp;
|
|
MapEnts *mapEnts;
|
|
GfxWorld *gfxWorld;
|
|
GfxLightDef *lightDef;
|
|
Font_s *font;
|
|
MenuList *menuList;
|
|
menuDef_t *menu;
|
|
LocalizeEntry *localize;
|
|
WeaponDef *weapon;
|
|
SndDriverGlobals *sndDriverGlobals;
|
|
const FxEffectDef *fx;
|
|
FxImpactTable *impactFx;
|
|
RawFile *rawfile;
|
|
StringTable *stringTable;
|
|
void *data;
|
|
};
|