reverse structs
This commit is contained in:
parent
27111057c8
commit
278a9b2f96
@ -635,6 +635,93 @@ namespace game
|
|||||||
ASSET_TYPE_COUNT = 80
|
ASSET_TYPE_COUNT = 80
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct PhysicsLibrary;
|
||||||
|
struct PhysicsSFXEventAsset;
|
||||||
|
struct PhysicsVFXEventAsset;
|
||||||
|
struct PhysicsAsset;
|
||||||
|
struct PhysicsFXPipeline;
|
||||||
|
struct PhysicsFXShape;
|
||||||
|
struct XAnimParts;
|
||||||
|
struct XModelSurfs;
|
||||||
|
struct XModel;
|
||||||
|
struct Mayhem;
|
||||||
|
struct Material;
|
||||||
|
struct ComputeShader;
|
||||||
|
struct MaterialVertexShader;
|
||||||
|
struct MaterialHullShader;
|
||||||
|
struct MaterialDomainShader;
|
||||||
|
struct MaterialPixelShader;
|
||||||
|
struct MaterialVertexDeclaration;
|
||||||
|
struct MaterialTechniqueSet;
|
||||||
|
struct GfxImage;
|
||||||
|
//ASSET_TYPE_SOUND_GLOBALS = 19,
|
||||||
|
//ASSET_TYPE_SOUND_BANK = 20,
|
||||||
|
//ASSET_TYPE_SOUND_BANK_TRANSIENT = 21,
|
||||||
|
//ASSET_TYPE_CLIPMAP = 22,
|
||||||
|
//ASSET_TYPE_COMWORLD = 23,
|
||||||
|
//ASSET_TYPE_GLASSWORLD = 24,
|
||||||
|
//ASSET_TYPE_PATHDATA = 25,
|
||||||
|
//ASSET_TYPE_NAVMESH = 26,
|
||||||
|
struct MapEnts;
|
||||||
|
//ASSET_TYPE_FXWORLD = 28,
|
||||||
|
//ASSET_TYPE_GFXWORLD = 29,
|
||||||
|
//ASSET_TYPE_GFXWORLD_TRANSIENT_ZONE = 30,
|
||||||
|
//ASSET_TYPE_IESPROFILE = 31, // unused
|
||||||
|
//ASSET_TYPE_LIGHT_DEF = 32,
|
||||||
|
//ASSET_TYPE_UI_MAP = 33, // unused
|
||||||
|
//ASSET_TYPE_ANIMCLASS = 34,
|
||||||
|
//ASSET_TYPE_PLAYERANIM = 35,
|
||||||
|
//ASSET_TYPE_GESTURE = 36,
|
||||||
|
//ASSET_TYPE_LOCALIZE_ENTRY = 37,
|
||||||
|
//ASSET_TYPE_ATTACHMENT = 38,
|
||||||
|
//ASSET_TYPE_WEAPON = 39,
|
||||||
|
//ASSET_TYPE_VFX = 40,
|
||||||
|
//ASSET_TYPE_IMPACT_FX = 41,
|
||||||
|
//ASSET_TYPE_SURFACE_FX = 42,
|
||||||
|
//ASSET_TYPE_AITYPE = 43, // unused
|
||||||
|
//ASSET_TYPE_MPTYPE = 44, // unused
|
||||||
|
//ASSET_TYPE_CHARACTER = 45, // unused
|
||||||
|
//ASSET_TYPE_XMODELALIAS = 46, // unused
|
||||||
|
//ASSET_TYPE_UNKNOWN = 47, // unused
|
||||||
|
struct RawFile;
|
||||||
|
//ASSET_TYPE_SCRIPTFILE = 49,
|
||||||
|
//ASSET_TYPE_STRINGTABLE = 50,
|
||||||
|
//ASSET_TYPE_LEADERBOARD = 51,
|
||||||
|
//ASSET_TYPE_VIRTUAL_LEADERBOARD = 52,
|
||||||
|
//ASSET_TYPE_STRUCTUREDDATADEF = 53,
|
||||||
|
//ASSET_TYPE_DDL = 54,
|
||||||
|
//ASSET_TYPE_TRACER = 55,
|
||||||
|
//ASSET_TYPE_VEHICLE = 56,
|
||||||
|
//ASSET_TYPE_ADDON_MAP_ENTS = 57,
|
||||||
|
//ASSET_TYPE_NET_CONST_STRINGS = 58,
|
||||||
|
//ASSET_TYPE_LUA_FILE = 59,
|
||||||
|
struct ScriptableDef;
|
||||||
|
//ASSET_TYPE_EQUIPMENT_SND_TABLE = 61,
|
||||||
|
//ASSET_TYPE_VECTORFIELD = 62,
|
||||||
|
//ASSET_TYPE_PARTICLE_SIM_ANIMATION = 63,
|
||||||
|
//ASSET_TYPE_STREAMING_INFO = 64,
|
||||||
|
//ASSET_TYPE_LASER = 65,
|
||||||
|
//ASSET_TYPE_TTF = 66,
|
||||||
|
//ASSET_TYPE_SUIT = 67,
|
||||||
|
//ASSET_TYPE_SUITANIMPACKAGE = 68,
|
||||||
|
//ASSET_TYPE_SPACESHIPTARGET = 69,
|
||||||
|
//ASSET_TYPE_RUMBLE = 70,
|
||||||
|
//ASSET_TYPE_RUMBLE_GRAPH = 71,
|
||||||
|
//ASSET_TYPE_ANIM_PACKAGE = 72,
|
||||||
|
//ASSET_TYPE_SFX_PACKAGE = 73,
|
||||||
|
//ASSET_TYPE_VFX_PACKAGE = 74,
|
||||||
|
//ASSET_TYPE_BEHAVIOR_TREE = 75,
|
||||||
|
//ASSET_TYPE_XANIM_ARCHETYPE = 76,
|
||||||
|
struct XAnimProceduralBones;
|
||||||
|
//ASSET_TYPE_RETICLE = 78,
|
||||||
|
//ASSET_TYPE_GFXLIGHTMAP = 79,
|
||||||
|
|
||||||
|
struct Bounds
|
||||||
|
{
|
||||||
|
vec3_t midPoint;
|
||||||
|
vec3_t halfSize;
|
||||||
|
};
|
||||||
|
|
||||||
struct PhysicsLibrary
|
struct PhysicsLibrary
|
||||||
{
|
{
|
||||||
const char* name;
|
const char* name;
|
||||||
@ -1107,19 +1194,6 @@ namespace game
|
|||||||
char ikType; // 131
|
char ikType; // 131
|
||||||
}; static_assert(sizeof(XAnimParts) == 0x88);
|
}; static_assert(sizeof(XAnimParts) == 0x88);
|
||||||
|
|
||||||
struct DObjAnimMat
|
|
||||||
{
|
|
||||||
float quat[4];
|
|
||||||
float trans[3];
|
|
||||||
float transWeight;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ReactiveMotionModelPart
|
|
||||||
{
|
|
||||||
float center[3];
|
|
||||||
float stiffness;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct XSurfaceCollisionAabb
|
struct XSurfaceCollisionAabb
|
||||||
{
|
{
|
||||||
unsigned short mins[3];
|
unsigned short mins[3];
|
||||||
@ -1207,7 +1281,99 @@ namespace game
|
|||||||
unsigned short v3;
|
unsigned short v3;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct XSurface // similar to iw6
|
typedef unsigned int XBlendInfo;
|
||||||
|
|
||||||
|
struct XSubdivRigidVertList
|
||||||
|
{
|
||||||
|
unsigned int firstFace;
|
||||||
|
unsigned int faceCount;
|
||||||
|
unsigned int firstRegularPatch;
|
||||||
|
unsigned int regularPatchCount;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct XSurfaceSubdivLevel
|
||||||
|
{
|
||||||
|
XSubdivRigidVertList* rigidVertLists;
|
||||||
|
unsigned int faceCount;
|
||||||
|
unsigned int regularPatchCount;
|
||||||
|
unsigned int regularPatchOffset;
|
||||||
|
unsigned int facePointCount;
|
||||||
|
unsigned int facePointValence4Count;
|
||||||
|
unsigned int facePointBufferSize;
|
||||||
|
unsigned int edgePointCount;
|
||||||
|
unsigned int edgePointSmoothEnd;
|
||||||
|
unsigned int edgePointUVBorderEnd;
|
||||||
|
unsigned int vertexPointCount;
|
||||||
|
unsigned int vertexPointValence4Count;
|
||||||
|
unsigned int vertexPointBufferSize;
|
||||||
|
unsigned int normalCount;
|
||||||
|
unsigned int normalBufferSize;
|
||||||
|
unsigned int transitionPointCount;
|
||||||
|
unsigned int vertCount;
|
||||||
|
unsigned int vertOffset;
|
||||||
|
unsigned short* faceIndices;
|
||||||
|
unsigned short* regularPatchIndices;
|
||||||
|
unsigned int* regularPatchFlags;
|
||||||
|
unsigned int* facePoints;
|
||||||
|
unsigned int* edgePoints;
|
||||||
|
unsigned int* vertexPoints;
|
||||||
|
unsigned int* normals;
|
||||||
|
unsigned int* transitionPoints;
|
||||||
|
float* regularPatchCones;
|
||||||
|
ID3D11Buffer* regularPatchIndexBuffer;
|
||||||
|
ID3D11Buffer* faceIndexBuffer;
|
||||||
|
ID3D11ShaderResourceView* regularPatchIndexBufferView;
|
||||||
|
ID3D11ShaderResourceView* regularPatchFlagsView;
|
||||||
|
ID3D11ShaderResourceView* facePointsView;
|
||||||
|
ID3D11ShaderResourceView* edgePointsView;
|
||||||
|
ID3D11ShaderResourceView* vertexPointsView;
|
||||||
|
ID3D11ShaderResourceView* normalsView;
|
||||||
|
ID3D11ShaderResourceView* transitionPointsView;
|
||||||
|
ID3D11ShaderResourceView* regularPatchConesView;
|
||||||
|
}; static_assert(sizeof(XSurfaceSubdivLevel) == 0xE8);
|
||||||
|
|
||||||
|
struct GfxSubdivCache
|
||||||
|
{
|
||||||
|
unsigned int size;
|
||||||
|
ID3D11Buffer* subdivCacheBuffer;
|
||||||
|
ID3D11ShaderResourceView* subdivCacheView;
|
||||||
|
}; static_assert(sizeof(GfxSubdivCache) == 0x18);
|
||||||
|
|
||||||
|
struct XSurfaceSubdivInfo
|
||||||
|
{
|
||||||
|
XSurfaceSubdivLevel* levels;
|
||||||
|
char __pad0[24];
|
||||||
|
GfxSubdivCache cache;
|
||||||
|
}; static_assert(sizeof(XSurfaceSubdivInfo) == 0x38);
|
||||||
|
|
||||||
|
struct TensionData
|
||||||
|
{
|
||||||
|
char __pad0[32];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct SHProbeSimplexData0
|
||||||
|
{
|
||||||
|
char __pad0[32];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct SHProbeSimplexData1
|
||||||
|
{
|
||||||
|
char __pad0[8];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct SHProbeSimplexData2
|
||||||
|
{
|
||||||
|
char __pad0[24];
|
||||||
|
};
|
||||||
|
|
||||||
|
union SHProbeSimplexDataUnion
|
||||||
|
{
|
||||||
|
SHProbeSimplexData0 data0;
|
||||||
|
SHProbeSimplexData1 data1;
|
||||||
|
SHProbeSimplexData2 data2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct XSurface
|
||||||
{
|
{
|
||||||
unsigned short flags; // 0
|
unsigned short flags; // 0
|
||||||
unsigned short vertCount; // 2
|
unsigned short vertCount; // 2
|
||||||
@ -1215,15 +1381,32 @@ namespace game
|
|||||||
char rigidVertListCount; // 6
|
char rigidVertListCount; // 6
|
||||||
char subdivLevelCount; // 7
|
char subdivLevelCount; // 7
|
||||||
short blendVertCounts[8]; // 8
|
short blendVertCounts[8]; // 8
|
||||||
char __pad0[8];
|
int unkBlendCount; // 24
|
||||||
|
char __pad0[4]; // 28
|
||||||
GfxVertexUnion0 verts0; // 32
|
GfxVertexUnion0 verts0; // 32
|
||||||
Face* triIndices; // 40
|
Face* triIndices; // 40
|
||||||
char __pad1[24];
|
ID3D11Buffer* vb0; // 48
|
||||||
|
ID3D11ShaderResourceView* vb0View; // 56
|
||||||
|
ID3D11Buffer* indexBuffer; // 64
|
||||||
XRigidVertList* rigidVertLists; // 72
|
XRigidVertList* rigidVertLists; // 72
|
||||||
char __pad2[48];
|
char* unkBlend; // 80
|
||||||
void* subdiv; // XSurfaceSubdivInfo* subdiv // 128
|
ID3D11Buffer* blendVertsBuffer; // 88
|
||||||
unsigned int* blendVerts; // 136
|
ID3D11ShaderResourceView* blendVertsView; // 96
|
||||||
char __pad3[80];
|
__int64* lmapUnwrap; // 104
|
||||||
|
ID3D11Buffer* vblmapBuffer; // 112
|
||||||
|
ID3D11ShaderResourceView* vblmapView; // 120
|
||||||
|
XSurfaceSubdivInfo* subdiv; // 128
|
||||||
|
XBlendInfo* blendVerts; // 136
|
||||||
|
TensionData* tensionData; // 144
|
||||||
|
void* tensionAccumTable; // 152
|
||||||
|
ID3D11Buffer* tensionAccumTableBuffer; // 160
|
||||||
|
ID3D11ShaderResourceView* tensionAccumTableView; // 168
|
||||||
|
ID3D11Buffer* tensionDataBuffer; // 176
|
||||||
|
ID3D11ShaderResourceView* tensionDataView; // 184
|
||||||
|
ID3D11ShaderResourceView* indexBufferView; // 192
|
||||||
|
SHProbeSimplexDataUnion* shProbeSimplexVertData; // 200
|
||||||
|
ID3D11Buffer* shProbeSimplexVertBuffer; // 208
|
||||||
|
ID3D11ShaderResourceView* shProbeSimplexVertBufferView; // 216
|
||||||
int partBits[8]; // 224
|
int partBits[8]; // 224
|
||||||
}; static_assert(sizeof(XSurface) == 0x100);
|
}; static_assert(sizeof(XSurface) == 0x100);
|
||||||
|
|
||||||
@ -1235,11 +1418,122 @@ namespace game
|
|||||||
int partBits[8];
|
int partBits[8];
|
||||||
}; static_assert(sizeof(XModelSurfs) == 0x38);
|
}; static_assert(sizeof(XModelSurfs) == 0x38);
|
||||||
|
|
||||||
|
struct XModelAngle
|
||||||
|
{
|
||||||
|
short x;
|
||||||
|
short y;
|
||||||
|
short z;
|
||||||
|
short base;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct XModelTagPos
|
||||||
|
{
|
||||||
|
float x;
|
||||||
|
float y;
|
||||||
|
float z;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct DObjAnimMat
|
||||||
|
{
|
||||||
|
float quat[4];
|
||||||
|
float trans[3];
|
||||||
|
float transWeight;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ReactiveMotionModelPart
|
||||||
|
{
|
||||||
|
float center[3];
|
||||||
|
float stiffness;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ReactiveMotionModelTweaks
|
||||||
|
{
|
||||||
|
float scale[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct XModelLodInfo
|
||||||
|
{
|
||||||
|
float dist;
|
||||||
|
unsigned short numsurfs;
|
||||||
|
unsigned short surfIndex;
|
||||||
|
XModelSurfs* modelSurfs;
|
||||||
|
int partBits[8];
|
||||||
|
XSurface* surfs;
|
||||||
|
int unk; // subdivLodValidMask?
|
||||||
|
char flags;
|
||||||
|
char pad[3];
|
||||||
|
}; static_assert(sizeof(XModelLodInfo) == 0x40);
|
||||||
|
|
||||||
|
struct XModelCollSurf_s
|
||||||
|
{
|
||||||
|
Bounds bounds;
|
||||||
|
int boneIdx;
|
||||||
|
int contents;
|
||||||
|
int surfFlags;
|
||||||
|
}; static_assert(sizeof(XModelCollSurf_s) == 36);
|
||||||
|
|
||||||
|
struct XBoneInfo
|
||||||
|
{
|
||||||
|
Bounds bounds;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
float radiusSquared;
|
||||||
|
unsigned int radiusSquaredAsInt;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
struct XModel
|
struct XModel
|
||||||
{
|
{
|
||||||
const char* name;
|
const char* name; // 0
|
||||||
char __pad0[728];
|
char __pad0[12];
|
||||||
}; static_assert(sizeof(XModel) == 0x2E0);
|
unsigned char numBones; // 20
|
||||||
|
unsigned char numRootBones; // 21
|
||||||
|
unsigned char numReactiveMotionParts; // 22
|
||||||
|
char b;
|
||||||
|
unsigned short numClientBones; // 24
|
||||||
|
unsigned char numsurfs; // 26
|
||||||
|
char __pad1[5];
|
||||||
|
unsigned short numCollSurfs; // 32
|
||||||
|
char __pad2[38];
|
||||||
|
unsigned char unk1Count; // 72
|
||||||
|
char __pad3[15];
|
||||||
|
ScriptableDef* scriptableMoverDef; // 88
|
||||||
|
XAnimProceduralBones* proceduralBones; // 96
|
||||||
|
scr_string_t* aimAssistBones; // 104
|
||||||
|
unsigned char numAimAssistBones; // 112
|
||||||
|
char __pad4[39];
|
||||||
|
scr_string_t* boneNames; // 152
|
||||||
|
unsigned char* parentList; // 160
|
||||||
|
XModelAngle* tagAngles; // 168
|
||||||
|
XModelTagPos* tagPositions; // 176
|
||||||
|
unsigned char* partClassification; // 184
|
||||||
|
DObjAnimMat* baseMat; // 192
|
||||||
|
ReactiveMotionModelPart* reactiveMotionParts; // 200
|
||||||
|
ReactiveMotionModelTweaks* reactiveMotionTweaks; // 208
|
||||||
|
Material** materialHandles; // 216
|
||||||
|
XModelLodInfo lodInfo[6]; // 224
|
||||||
|
XModelCollSurf_s* collSurfs; // 608
|
||||||
|
XBoneInfo* boneInfo; // 616
|
||||||
|
unsigned short* invHighMipRadius; // 624
|
||||||
|
PhysicsAsset* physAsset; // 632
|
||||||
|
PhysicsFXShape* physFxShape; // 640
|
||||||
|
char* unk1; // 648
|
||||||
|
unsigned short unkNamesCount; // 656
|
||||||
|
char __pad5[6];
|
||||||
|
scr_string_t* unkNames; // 664
|
||||||
|
char __pad6[16];
|
||||||
|
int unk2Count;
|
||||||
|
char __pad8[4];
|
||||||
|
char* unk2;
|
||||||
|
char __pad9[1];
|
||||||
|
unsigned char unkVec3Count;
|
||||||
|
char __pad10[6];
|
||||||
|
vec3_t* unkVec3;
|
||||||
|
char __pad11[1];
|
||||||
|
char unk3Count;
|
||||||
|
char __pad12[6];
|
||||||
|
void* unk3;
|
||||||
|
}; static_assert(sizeof(XModel) == 0x2E0); // 736
|
||||||
|
|
||||||
struct MayhemModel
|
struct MayhemModel
|
||||||
{
|
{
|
||||||
@ -1254,8 +1548,8 @@ namespace game
|
|||||||
|
|
||||||
struct GfxWrappedBaseBuffer
|
struct GfxWrappedBaseBuffer
|
||||||
{
|
{
|
||||||
void* buffer; //ID3D12Resource* buffer;
|
ID3D11Resource* buffer;
|
||||||
//GfxShaderBufferView view;
|
//ID3D11ShaderResourceView* view;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MayhemAnimFramesSplineCompressed
|
struct MayhemAnimFramesSplineCompressed
|
||||||
@ -1355,11 +1649,330 @@ namespace game
|
|||||||
float length;
|
float length;
|
||||||
}; static_assert(sizeof(MayhemData) == 0x50);
|
}; static_assert(sizeof(MayhemData) == 0x50);
|
||||||
|
|
||||||
struct Material
|
enum MaterialTechniqueType
|
||||||
|
{
|
||||||
|
TECHNIQUE_UNLIT = 8,
|
||||||
|
TECHNIQUE_EMISSIVE = 10,
|
||||||
|
TECHNIQUE_LIT = 13,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Packed128
|
||||||
|
{
|
||||||
|
std::uint64_t p0;
|
||||||
|
std::uint64_t p1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxDrawSurfFields
|
||||||
|
{
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
union GfxDrawSurf
|
||||||
|
{
|
||||||
|
GfxDrawSurfFields fields;
|
||||||
|
Packed128 packed;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum SurfaceTypeBits : std::uint64_t
|
||||||
|
{
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialInfo
|
||||||
{
|
{
|
||||||
const char* name;
|
const char* name;
|
||||||
char __pad0[0x110];
|
unsigned char gameFlags;
|
||||||
|
unsigned char sortKey;
|
||||||
|
unsigned char textureAtlasRowCount;
|
||||||
|
unsigned char textureAtlasColumnCount;
|
||||||
|
unsigned char textureAtlasFrameBlend;
|
||||||
|
unsigned char textureAtlasAsArray;
|
||||||
|
unsigned char renderFlags;
|
||||||
|
GfxDrawSurf drawSurf;
|
||||||
|
SurfaceTypeBits surfaceTypeBits;
|
||||||
|
unsigned int hashIndex;
|
||||||
|
}; static_assert(sizeof(MaterialInfo) == 48);
|
||||||
|
|
||||||
|
struct MaterialTextureDef
|
||||||
|
{
|
||||||
|
unsigned int nameHash;
|
||||||
|
char nameStart;
|
||||||
|
char nameEnd;
|
||||||
|
unsigned char samplerState;
|
||||||
|
unsigned char semantic;
|
||||||
|
GfxImage* image;
|
||||||
|
}; static_assert(sizeof(MaterialTextureDef) == 16);
|
||||||
|
|
||||||
|
struct MaterialConstantDef
|
||||||
|
{
|
||||||
|
unsigned int nameHash;
|
||||||
|
char name[12];
|
||||||
|
float literal[4];
|
||||||
|
}; static_assert(sizeof(MaterialConstantDef) == 32);
|
||||||
|
|
||||||
|
struct GfxStateBits
|
||||||
|
{
|
||||||
|
unsigned int loadBits[6]; // loadbits[3], blendstatebits[3]
|
||||||
|
unsigned short zone;
|
||||||
|
unsigned char depthStencilState[14];
|
||||||
|
unsigned char blendState;
|
||||||
|
unsigned char rasterizerState;
|
||||||
|
}; static_assert(sizeof(GfxStateBits) == 44);
|
||||||
|
static_assert(offsetof(GfxStateBits, zone) == 24);
|
||||||
|
|
||||||
|
struct MaterialConstantBufferDef
|
||||||
|
{
|
||||||
|
unsigned int vsDataSize;
|
||||||
|
unsigned int hsDataSize;
|
||||||
|
unsigned int dsDataSize;
|
||||||
|
unsigned int psDataSize;
|
||||||
|
unsigned int vsOffsetDataSize;
|
||||||
|
unsigned int hsOffsetDataSize;
|
||||||
|
unsigned int dsOffsetDataSize;
|
||||||
|
unsigned int psOffsetDataSize;
|
||||||
|
unsigned char* vsData;
|
||||||
|
unsigned char* hsData;
|
||||||
|
unsigned char* dsData;
|
||||||
|
unsigned char* psData;
|
||||||
|
unsigned short* vsOffsetData;
|
||||||
|
unsigned short* hsOffsetData;
|
||||||
|
unsigned short* dsOffsetData;
|
||||||
|
unsigned short* psOffsetData;
|
||||||
|
ID3D11Buffer* vsConstantBuffer;
|
||||||
|
ID3D11Buffer* hsConstantBuffer;
|
||||||
|
ID3D11Buffer* dsConstantBuffer;
|
||||||
|
ID3D11Buffer* psConstantBuffer;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Material
|
||||||
|
{
|
||||||
|
union
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
MaterialInfo info;
|
||||||
|
};
|
||||||
|
unsigned char textureCount;
|
||||||
|
unsigned char constantCount;
|
||||||
|
unsigned char stateFlags;
|
||||||
|
unsigned char cameraRegion;
|
||||||
|
unsigned char materialType;
|
||||||
|
unsigned char layerCount;
|
||||||
|
unsigned char assetFlags;
|
||||||
|
char pad;
|
||||||
|
MaterialTechniqueSet* techniqueSet;
|
||||||
|
MaterialTextureDef* textureTable;
|
||||||
|
MaterialConstantDef* constantTable;
|
||||||
|
unsigned char stateBitsEntry[152];
|
||||||
|
unsigned char stateBitsCount;
|
||||||
|
GfxStateBits* stateBitsTable;
|
||||||
|
unsigned char* constantBufferIndex; // [152]
|
||||||
|
MaterialConstantBufferDef* constantBufferTable;
|
||||||
|
unsigned char constantBufferCount;
|
||||||
|
const char** subMaterials;
|
||||||
}; static_assert(sizeof(Material) == 0x118);
|
}; static_assert(sizeof(Material) == 0x118);
|
||||||
|
static_assert(offsetof(Material, techniqueSet) == 56);
|
||||||
|
static_assert(offsetof(Material, textureCount) == 48);
|
||||||
|
static_assert(offsetof(Material, constantCount) == 49);
|
||||||
|
static_assert(offsetof(Material, stateBitsTable) == 240);
|
||||||
|
static_assert(offsetof(Material, constantBufferIndex) == 248);
|
||||||
|
static_assert(offsetof(Material, stateBitsCount) == 232);
|
||||||
|
static_assert(offsetof(Material, constantBufferTable) == 256);
|
||||||
|
static_assert(offsetof(Material, constantBufferCount) == 264);
|
||||||
|
static_assert(offsetof(Material, subMaterials) == 272);
|
||||||
|
static_assert(offsetof(Material, layerCount) == 53);
|
||||||
|
|
||||||
|
struct GfxComputeShaderLoadDef
|
||||||
|
{
|
||||||
|
unsigned char* program;
|
||||||
|
unsigned int programSize;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ComputeShaderProgram
|
||||||
|
{
|
||||||
|
ID3D11ComputeShader* cs;
|
||||||
|
GfxComputeShaderLoadDef loadDef;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ComputeShader
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
const char* debugName;
|
||||||
|
ComputeShaderProgram prog;
|
||||||
|
}; static_assert(sizeof(ComputeShader) == 0x28);
|
||||||
|
|
||||||
|
struct GfxPixelShaderLoadDef
|
||||||
|
{
|
||||||
|
unsigned char* program;
|
||||||
|
unsigned int programSize;
|
||||||
|
unsigned int microCodeCrc;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialPixelShaderProgram
|
||||||
|
{
|
||||||
|
ID3D11PixelShader* ps;
|
||||||
|
GfxPixelShaderLoadDef loadDef;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialPixelShader
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
const char* debugName;
|
||||||
|
MaterialPixelShaderProgram prog;
|
||||||
|
}; static_assert(sizeof(MaterialPixelShader) == 0x28);
|
||||||
|
|
||||||
|
struct GfxVertexShaderLoadDef
|
||||||
|
{
|
||||||
|
unsigned char* program;
|
||||||
|
unsigned int programSize;
|
||||||
|
unsigned int microCodeCrc;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialVertexShaderProgram
|
||||||
|
{
|
||||||
|
ID3D11VertexShader* vs;
|
||||||
|
GfxVertexShaderLoadDef loadDef;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialVertexShader
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
const char* debugName;
|
||||||
|
MaterialVertexShaderProgram prog;
|
||||||
|
}; static_assert(sizeof(MaterialVertexShader) == 0x28);
|
||||||
|
|
||||||
|
struct GfxHullShaderLoadDef
|
||||||
|
{
|
||||||
|
unsigned char* program;
|
||||||
|
unsigned int programSize;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialHullShaderProgram
|
||||||
|
{
|
||||||
|
ID3D11HullShader* hs;
|
||||||
|
GfxHullShaderLoadDef loadDef;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialHullShader
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
const char* debugName;
|
||||||
|
MaterialHullShaderProgram prog;
|
||||||
|
}; static_assert(sizeof(MaterialHullShader) == 0x28);
|
||||||
|
|
||||||
|
struct GfxDomainShaderLoadDef
|
||||||
|
{
|
||||||
|
unsigned char* program;
|
||||||
|
unsigned int programSize;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialDomainShaderProgram
|
||||||
|
{
|
||||||
|
ID3D11DomainShader* ds;
|
||||||
|
GfxDomainShaderLoadDef loadDef;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialDomainShader
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
const char* debugName;
|
||||||
|
MaterialDomainShaderProgram prog;
|
||||||
|
}; static_assert(sizeof(MaterialDomainShader) == 0x28);
|
||||||
|
|
||||||
|
struct MaterialStreamRouting
|
||||||
|
{
|
||||||
|
unsigned char source;
|
||||||
|
unsigned char dest;
|
||||||
|
unsigned char mask;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialVertexStreamRouting
|
||||||
|
{
|
||||||
|
MaterialStreamRouting data[34];
|
||||||
|
ID3D11InputLayout* decl[270];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialVertexDeclaration
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
unsigned char streamCount;
|
||||||
|
bool hasOptionalSource;
|
||||||
|
MaterialVertexStreamRouting routing;
|
||||||
|
}; static_assert(sizeof(MaterialVertexDeclaration) == 0x8E8);
|
||||||
|
|
||||||
|
struct MaterialArgumentCodeConst
|
||||||
|
{
|
||||||
|
unsigned short index;
|
||||||
|
unsigned char firstRow;
|
||||||
|
unsigned char rowCount;
|
||||||
|
};
|
||||||
|
|
||||||
|
union MaterialArgumentDef
|
||||||
|
{
|
||||||
|
const float* literalConst;
|
||||||
|
MaterialArgumentCodeConst codeConst;
|
||||||
|
unsigned int codeSampler;
|
||||||
|
unsigned int nameHash;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum MaterialShaderArgumentType : std::uint8_t
|
||||||
|
{
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialShaderArgument
|
||||||
|
{
|
||||||
|
unsigned char type;
|
||||||
|
unsigned char shader;
|
||||||
|
unsigned short dest;
|
||||||
|
MaterialArgumentDef u;
|
||||||
|
}; static_assert(sizeof(MaterialShaderArgument) == 0x10);
|
||||||
|
|
||||||
|
struct MaterialPass
|
||||||
|
{
|
||||||
|
MaterialVertexShader* vertexShader;
|
||||||
|
MaterialVertexDeclaration* vertexDecl;
|
||||||
|
MaterialHullShader* hullShader;
|
||||||
|
MaterialDomainShader* domainShader;
|
||||||
|
MaterialPixelShader* pixelShader;
|
||||||
|
unsigned char pixelOutputMask;
|
||||||
|
unsigned char perPrimArgCount;
|
||||||
|
unsigned char perObjArgCount;
|
||||||
|
unsigned char stableArgCount;
|
||||||
|
unsigned short perPrimArgSize;
|
||||||
|
unsigned short perObjArgSize;
|
||||||
|
unsigned short stableArgSize;
|
||||||
|
unsigned short zone;
|
||||||
|
char __pad0[44];
|
||||||
|
MaterialShaderArgument* args;
|
||||||
|
}; static_assert(sizeof(MaterialPass) == 104);
|
||||||
|
static_assert(offsetof(MaterialPass, zone) == 50);
|
||||||
|
static_assert(offsetof(MaterialPass, args) == 96);
|
||||||
|
|
||||||
|
struct MaterialTechniqueHeader
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
unsigned short flags;
|
||||||
|
unsigned short passCount;
|
||||||
|
}; static_assert(sizeof(MaterialTechniqueHeader) == 0x10);
|
||||||
|
|
||||||
|
struct MaterialTechnique
|
||||||
|
{
|
||||||
|
MaterialTechniqueHeader hdr;
|
||||||
|
MaterialPass passArray[1];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialTechniqueSet
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
unsigned short flags;
|
||||||
|
unsigned char worldVertFormat;
|
||||||
|
unsigned char preDisplacementOnlyCount;
|
||||||
|
unsigned int techniqueCount;
|
||||||
|
char __pad0[32];
|
||||||
|
MaterialTechnique* techniques;
|
||||||
|
}; static_assert(sizeof(MaterialTechniqueSet) == 0x38);
|
||||||
|
static_assert(offsetof(MaterialTechniqueSet, techniqueCount) == 12);
|
||||||
|
static_assert(offsetof(MaterialTechniqueSet, techniques) == 48);
|
||||||
|
|
||||||
enum MapType : std::uint8_t
|
enum MapType : std::uint8_t
|
||||||
{
|
{
|
||||||
@ -1623,13 +2236,6 @@ namespace game
|
|||||||
TTFDef* ttfDef;
|
TTFDef* ttfDef;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MaterialTechniqueType
|
|
||||||
{
|
|
||||||
TECHNIQUE_UNLIT = 8,
|
|
||||||
TECHNIQUE_EMISSIVE = 10,
|
|
||||||
TECHNIQUE_LIT = 13,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum GfxDrawSceneMethod
|
enum GfxDrawSceneMethod
|
||||||
{
|
{
|
||||||
GFX_DRAW_SCENE_STANDARD = 0x1,
|
GFX_DRAW_SCENE_STANDARD = 0x1,
|
||||||
|
Loading…
Reference in New Issue
Block a user