Update asset-related core files

This commit is contained in:
Nicholas Johnson 2025-09-03 13:00:27 -04:00
parent f149b66322
commit 39853c77fe
5 changed files with 29 additions and 596 deletions

View File

@ -1 +0,0 @@
#include "assetlist.h"

View File

@ -1,14 +0,0 @@
#ifndef ASSETLIST_H
#define ASSETLIST_H
#include "xasset.h"
#include "scriptstringlist.h"
struct XAssetList
{
ScriptStringList stringList;
int assetCount;
QVector<XAsset> assets;
};
#endif // ASSETLIST_H

View File

@ -1,6 +1,7 @@
#ifndef ASSETS_H
#define ASSETS_H
#include "xgfxpixelshaderloaddef.h"
#include "xmodel.h"
#include <QDebug>
#include <QObject>
@ -211,69 +212,13 @@ struct _XGTEXTURE_DESC
_D3DMULTISAMPLE_TYPE MultiSampleType;
};
struct GfxImageLoadDef;
struct GfxTexture
{
qint32 basemapPtr;
D3DBaseTexture *basemap;
qint32 mapPtr;
D3DTexture *map;
qint32 volmapPtr;
D3DVolumeTexture *volmap;
qint32 cubemapPtr;
D3DCubeTexture *cubemap;
qint32 loadDefPtr;
GfxImageLoadDef *loadDef;
};
struct GfxImageLoadDef
{
quint8 levelCount;
quint8 flags;
qint16 dimensions[3];
int format;
GfxTexture texture;
};
struct CardMemory
{
int platform[1];
};
struct GfxImage
{
MapType mapType;
GfxTexture texture;
quint8 semantic;
CardMemory cardMemory;
quint16 width;
quint16 height;
quint16 depth;
quint8 category;
bool delayLoadPixels;
qint32 pixelsPtr;
QVector<quint8> pixels;
uint baseSize;
quint16 streamSlot;
bool streaming;
qint32 namePtr;
QString name;
};
union MaterialPixelShaderProgram
{
qint32 psPtr;
D3DPixelShader ps;
GfxPixelShaderLoadDef loadDef;
};
struct stream_source_info_t
{
quint16 Stream;
quint16 Offset;
uint Type;
XD3DPixelShader ps;
XGfxPixelShaderLoadDef loadDef;
};
struct __declspec(align(4)) XMALOOPREGION
@ -511,38 +456,6 @@ struct MaterialTechniqueSet
MaterialTechnique *techniques[26];
};
struct XModel
{
const char *name;
quint8 numBones;
quint8 numRootBones;
quint8 numsurfs;
quint8 lodRampType;
quint16 *boneNames;
quint8 *parentList;
qint16 *quats;
float *trans;
quint8 *partClassification;
DObjAnimMat *baseMat;
XSurface *surfs;
Material **materialHandles;
XModelLodInfo lodInfo[4];
XModelCollSurf *collSurfs;
int numCollSurfs;
int contents;
XBoneInfo *boneInfo;
float radius;
float mins[3];
float maxs[3];
qint16 numLods;
qint16 collLod;
XModelStreamInfo streamInfo;
int memUsage;
quint8 flags;
PhysPreset *physPreset;
PhysGeomList *physGeoms;
};
struct XModelPiece
{
XModel *model;
@ -762,7 +675,7 @@ struct CollisionAabbTree
CollisionAabbTreeIndex u;
};
struct CModel
struct XCModel
{
float mins[3];
float maxs[3];
@ -770,14 +683,14 @@ struct CModel
CLeaf leaf;
};
struct CBrush
struct XCBrush
{
float mins[3];
int contents;
float maxs[3];
uint numsides;
qint32 sidesPtr;
QVector<CBrushSide> sides;
QVector<XCBrushSide> sides;
qint16 axialMaterialNum[2][3];
qint32 baseAdjacentSidePtr;
quint8 baseAdjacentSide;
@ -2872,36 +2785,17 @@ struct FxImpactTable
QVector<FxImpactEntry> table;
};
struct RawFile
{
qint32 namePtr;
QString name;
int len;
qint32 bufferPtr;
QString buffer;
};
struct StringTable
{
qint32 namePtr;
QString name;
int columnCount;
int rowCount;
qint32 valuesPtr;
QStringList values;
};
union XAssetHeader
{
XModelPieces *xmodelPieces;
PhysPreset *physPreset;
XPhysPreset *physPreset;
XAnimParts *parts;
XModel *model;
Material *material;
MaterialPixelShader *pixelShader;
MaterialVertexShader *vertexShader;
XMaterial *material;
XMaterialPixelShader *pixelShader;
XMaterialVertexShader *vertexShader;
MaterialTechniqueSet *techniqueSet;
GfxImage *image;
XGfxImage *image;
SoundAliasList *sound;
SndCurve *sndCurve;
LoadedSound *loadSnd;
@ -2920,300 +2814,9 @@ union XAssetHeader
XSoundDriverGlobals *sndDriverGlobals;
const FxEffectDef *fx;
FxImpactTable *impactFx;
RawFile *rawfile;
StringTable *stringTable;
XRawFile *rawfile;
XStringTable *stringTable;
void *data;
};
struct StreamDelayInfo
{
const void *ptr;
int size;
};
class Assets : public QObject
{
Q_OBJECT
public:
explicit Assets(QObject *parent = nullptr);
~Assets();
private:
QVector<Glyph> Load_GlyphArray(QDataStream *aStream, int count);
QVector<GfxLightRegionAxis> Load_GfxLightRegionAxisArray(QDataStream *aStream, int count);
QVector<GfxDrawSurf> Load_GfxDrawSurfArray(QDataStream *aStream, int count);
QVector<GfxSceneDynBrush> Load_GfxSceneDynBrushArray(QDataStream *aStream, int count);
QVector<GfxSceneDynModel> Load_GfxSceneDynModelArray(QDataStream *aStream, int count);
QVector<GfxStreamingAabbTree> Load_GfxStreamingAabbTreeArray(QDataStream *aStream, int count);
GfxLightGridColors Load_GfxLightGridColors(QDataStream *aStream);
QVector<GfxLightGridColors> Load_GfxLightGridColorsArray(QDataStream *aStream, int count);
QVector<GfxLightGridEntry> Load_GfxLightGridEntryArray(QDataStream *aStream, int count);
QVector<GfxCullGroup> Load_GfxCullGroupArray(QDataStream *aStream, int count);
QVector<quint16> Load_StaticModelIndexArray(QDataStream *aStream, int count);
QVector<GfxStaticModelInst> Load_GfxStaticModelInstArray(QDataStream *aStream, int count);
XItemKeyHandler Load_ItemKeyHandler(QDataStream *aStream);
XItemKeyHandler Load_ItemKeyHandlerNext(QDataStream *aStream);
XEditFieldDef Load_EditFieldDef(QDataStream *aStream);
OperationEnum Load_Operator(QDataStream *aStream);
QVector<quint16> Load_LeafBrushArray(QDataStream *aStream, int count);
CLeaf Load_CLeaf(QDataStream *aStream);
QVector<CModel> Load_CModelArray(QDataStream *aStream, int count);
QVector<CollisionAabbTree> Load_CollisionAabbTreeArray(QDataStream *aStream, int count);
CollisionBorder Load_CollisionBorder(QDataStream *aStream);
QVector<CollisionBorder> Load_CollisionBorderArray(QDataStream *aStream, int count);
CLeafBrushNodeChildren Load_cLeafBrushNodeChildren_t(QDataStream *aStream);
QVector<CLeaf> Load_cLeaf_tArray(QDataStream *aStream, int count);
QVector<DynEntityClient> Load_DynEntityClientArray(QDataStream *aStream, int count);
QVector<DynEntityPose> Load_DynEntityPoseArray(QDataStream *aStream, int count);
QVector<DynEntityColl> Load_DynEntityCollArray(QDataStream *aStream, int count);
QVector<FxTrailVertex> Load_FxTrailVertexArray(QDataStream *aStream, int count);
QVector<FxElemVelStateSample> Load_FxElemVelStateSampleArray(QDataStream *aStream, int count);
QVector<FxElemVisStateSample> Load_FxElemVisStateSampleArray(QDataStream *aStream, int count);
QVector<PathBaseNode> Load_pathbasenode_tArray(QDataStream *aStream, int count);
QVector<PathLink> Load_pathlink_tArray(QDataStream *aStream, int count);
QVector<XModelHighMipBounds> Load_XModelHighMipBoundsArray(QDataStream *aStream, int count);
XModelCollSurf Load_XModelCollSurf(QDataStream *aStream);
quint8 Load_cbrushedge_t(QDataStream *aStream);
QVector<quint8> Load_cbrushedge_tArray(QDataStream *aStream, size_t count);
CPlane Load_cplane_t(QDataStream *aStream);
CPlane Load_CPlane(QDataStream *aStream);
QVector<CPlane> Load_cplane_tArray(QDataStream *aStream, int count);
QVector<MaterialConstantDef> Load_MaterialConstantDefArray(QDataStream *aStream, int count);
QVector<GfxStateBits> Load_GfxStateBitsArray(QDataStream *aStream, int count);
MaterialArgumentCodeConst Load_MaterialArgumentCodeConst(QDataStream *aStream);
MaterialVertexDeclaration Load_MaterialVertexDeclaration(QDataStream *aStream);
QVector<quint8> Load_byteShaderArray(QDataStream *aStream, size_t count);
QVector<quint8> Load_byte4Array(QDataStream *aStream, size_t count);
QVector<GfxTexture> Load_GfxRawTextureArray(QDataStream *aStream, int count);
D3DCubeTexture Load_IDirect3DCubeTexture9(QDataStream *aStream);
D3DVolumeTexture Load_IDirect3DVolumeTexture9(QDataStream *aStream);
D3DTexture Load_IDirect3DTexture9(QDataStream *aStream);
QVector<quint16> Load_r_index16_tArray(QDataStream *aStream, int count);
QVector<quint16> Load_r_index_tArray(QDataStream *aStream, int count);
D3DIndexBuffer Load_GfxIndexBuffer(QDataStream *aStream);
QVector<quint16> Load_XBlendInfoArray(QDataStream *aStream, int count);
D3DVertexBuffer Load_GfxVertexBuffer(QDataStream *aStream);
QVector<XSurfaceCollisionNode> Load_XSurfaceCollisionNodeArray(QDataStream *aStream, int count);
QVector<XSurfaceCollisionLeaf> Load_XSurfaceCollisionLeafArray(QDataStream *aStream, int count);
QVector<GfxBrushModel> Load_GfxBrushModelArray(QDataStream *aStream, int count);
QVector<GfxPackedVertex> Load_GfxPackedVertex0Array(QDataStream *aStream, int count);
void Load_GfxWorldVertex0Array(QDataStream *aStream, int count);
QVector<XAUDIOCHANNELMAPENTRY> Load_XAUDIOCHANNELMAPENTRYArray(QDataStream *aStream, int count);
StreamFileNamePacked Load_StreamFileNamePacked(QDataStream *aStream);
QVector<XAudioReverbSettings> Load_XaReverbSettingsArray(QDataStream *aStream, int count);
QVector<char> Load_char2048Array(QDataStream *aStream, size_t count);
QVector<DObjAnimMat> Load_DObjAnimMatArray(QDataStream *aStream, int count);
QVector<XBoneInfo> Load_XBoneInfoArray(QDataStream *aStream, int count);
QVector<QVector<quint16>> Load_UShortVecArray(QDataStream *aStream, int count);
QVector<QVector<quint8>> Load_ByteVecArray(QDataStream *aStream, int count);
QVector<dmaterial_t> Load_dmaterial_tArray(QDataStream *aStream, int count);
QVector<const char> Load_ConstCharArray(QDataStream *aStream, size_t count);
quint16 Load_ScriptString(QDataStream *aStream);
QVector<quint16> Load_UnsignedShortArray(QDataStream *aStream, int count);
QVector<qint16> Load_XQuat2(QDataStream *aStream);
QVector<QVector<quint16>> Load_XQuat2Array(QDataStream *aStream, int count);
QVector<ushort> Load_ushortArray(QDataStream *aStream, int count);
QVector<short> Load_shortArray(QDataStream *aStream, int count);
QVector<float> Load_vec3_t(QDataStream *aStream);
QVector<QVector<float>> Load_vec3_tArray(QDataStream *aStream, int count);
QVector<QVector<float>> Load_vec2_tArray(QDataStream *aStream, int count);
QVector<quint16> Load_raw_byte16Array(QDataStream *aStream, size_t count);
QVector<quint8> Load_raw_byteArray(QDataStream *aStream, size_t count);
QVector<uint> Load_raw_uint128Array(QDataStream *aStream, int count);
QVector<uint> Load_raw_uintArray(QDataStream *aStream, int count);
float Load_float(QDataStream *aStream);
QVector<float> Load_floatArray(QDataStream *aStream, int count);
uint Load_uint(QDataStream *aStream);
QVector<uint> Load_uintArray(QDataStream *aStream, int count);
QVector<_DWORD> Load_DWORDArray(QDataStream *aStream, int count);
QVector<quint8> Load_byte4096Array(QDataStream *aStream, size_t count);
int Load_int(QDataStream *aStream);
QVector<int> Load_intArray(QDataStream *aStream, int count);
char Load_char(QDataStream *aStream);
QVector<char> Load_charArray(QDataStream *aStream, size_t count);
QVector<quint8> Load_byteArray(QDataStream *aStream, size_t count);
GfxWorldDpvsPlanes Load_GfxWorldDpvsPlanes(QDataStream *aStream, GfxWorld aGfxWorld);
GfxWorldDpvsDynamic Load_GfxWorldDpvsDynamic(QDataStream *aStream, GfxWorld aGfxWorld);
GfxLightRegionHull Load_GfxLightRegionHull(QDataStream *aStream);
quint16 __ROL4__(quint16 value, quint16 bits);
GfxShadowGeometry Load_GfxShadowGeometry(QDataStream *aStream);
GfxWorldStreamInfo Load_GfxWorldStreamInfo(QDataStream *aStream);
GfxLightGrid Load_GfxLightGrid(QDataStream *aStream);
GfxWorldVertexLayerData Load_GfxWorldVertexLayerData(QDataStream *aStream, GfxWorld aGfxWorld);
GfxWorldVertexData Load_GfxWorldVertexData(QDataStream *aStream, GfxWorld aGfxWorld);
GfxAabbTree Load_GfxAabbTree(QDataStream *aStream);
QVector<GfxAabbTree> Load_GfxAabbTreeArray(QDataStream *aStream, int count);
GfxCell Load_GfxCell(QDataStream *aStream);
GfxPortal Load_GfxPortal(QDataStream *aStream);
QVector<GfxPortal> Load_GfxPortalArray(QDataStream *aStream, int count);
QString Load_XStringCustom(QDataStream *aStream);
QString Load_XString(QDataStream *aStream);
RawFile Load_RawFile(QDataStream *aStream);
XLocalizeEntry Load_LocalizeEntry(QDataStream *aStream);
void Load_operandInternalDataUnion(QDataStream *aStream);
XComPrimaryLight Load_ComPrimaryLight(QDataStream *aStream);
CollisionPartition Load_CollisionPartition(QDataStream *aStream);
CLeafBrushNodeLeaf Load_CLeafBrushNodeLeaf(QDataStream *aStream, int leafBrushCount);
CLeafBrushNodeData Load_CLeafBrushNodeData(QDataStream *aStream, int aNodeCount);
MapEnts Load_MapEnts(QDataStream *aStream);
FxTrailDef Load_FxTrailDef(QDataStream *aStream);
FxEffectDefRef Load_FxEffectDefRef(QDataStream *aStream);
GameWorldMp Load_GameWorldMp(QDataStream *aStream);
QVector<PathNodeTree> LoadPathNodeTreeArray(QDataStream *aStream, int count);
PathNodeTreeNodes Load_PathNodeTreeNodes(QDataStream *aStream);
PathNodeConstant Load_PathNodeConstant(QDataStream *aStream);
QVector<XModelCollSurf> Load_XModelCollSurfArray(QDataStream *aStream, int count);
PhysPreset Load_PhysPreset(QDataStream *aStream);
MaterialArgumentDef Load_MaterialArgumentDef(QDataStream *aStream, MaterialShaderArgument aArgument);
GfxPixelShaderLoadDef Load_GfxPixelShaderLoadDef(QDataStream *aStream);
GfxVertexShaderLoadDef Load_GfxVertexShaderLoadDef(QDataStream *aStream);
QVector<quint8> Load_GfxImagePixels(QDataStream *aStream, GfxImage aGfxImage);
GfxTexture Load_GfxTexture(QDataStream *aStream, GfxTexture aGfxTexture, GfxImageLoadDef aGfxImageLoadDef);
XSurfaceVertexInfo Load_XSurfaceVertexInfo(QDataStream *aStream);
XSurfaceCollisionTree Load_XSurfaceCollisionTree(QDataStream *aStream);
MaterialInfo Load_MaterialInfo(QDataStream *aStream);
XAUDIOCHANNELMAP Load_XAUDIOCHANNELMAP(QDataStream *aStream);
SndCurve Load_SndCurve(QDataStream *aStream);
StreamFileNameRaw Load_StreamFileNameRaw(QDataStream *aStream);
XSoundDriverGlobals Load_SndDriverGlobals(QDataStream *aStream);
XaSeekTable Load_XaSeekTable(QDataStream *aStream);
XAUDIOPACKET_ALIGNED Load_XAUDIOPACKET_ALIGNED(QDataStream *aStream);
XAnimNotifyInfo Load_XAnimNotifyInfo(QDataStream *aStream);
XAnimDynamicFrames Load_XAnimDynamicFrames(QDataStream *aStream, XAnimPartTrans aXAnimPartTrans, XAnimDynamicIndices aXAnimDynamicIndices, XAnimDynamicFrames aXAnimDynamicFrames);
XAnimDynamicIndices Load_XAnimDynamicIndicesTrans(QDataStream *aStream, XAnimParts aXAnimParts, XAnimPartTrans aXAnimPartTrans);
XAnimDynamicIndices Load_XAnimDynamicIndicesDeltaQuat(QDataStream *aStream);
XAnimIndices Load_XAnimIndices(QDataStream *aStream, XAnimParts aXAnimParts, XAnimIndices aXAnimIndices);
QStringList Load_XStringArray(QDataStream *aStream, int count);
QVector<quint16> Load_ScriptStringArray(QDataStream *aStream, int count);
QVector<GfxLightRegionHull> Load_GfxLightRegionHullArray(QDataStream *aStream, int count);
QVector<GfxShadowGeometry> Load_GfxShadowGeometryArray(QDataStream *aStream, int count);
StringTable Load_StringTable(QDataStream *aStream);
RawFile Load_RawFilePtr(QDataStream *aStream);
void Load_LocalizeEntryPtr(QDataStream *aStream);
XMultiDef Load_MultiDef(QDataStream *aStream);
XOperand Load_Operand(QDataStream *aStream);
QVector<XComPrimaryLight> Load_ComPrimaryLightArray(QDataStream *aStream, int count);
CBrushSide Load_cbrushside_t(QDataStream *aStream);
CBrush Load_CBrush(QDataStream *aStream);
QVector<CollisionPartition> Load_CollisionPartitionArray(QDataStream *aStream, int count);
CLeafBrushNode Load_CLeafBrushNode(QDataStream *aStream);
QVector<cNode_t> Load_cNode_tArray(QDataStream *aStream, int count);
void Load_MapEntsPtr(QDataStream *aStream);
void Load_GameWorldMpPtr(QDataStream *aStream);
void Load_pathnode_tree_info_t(QDataStream *aStream);
void Load_pathnode_t(QDataStream *aStream);
void Load_cbrushside_tArray(QDataStream *aStream, int count);
void Load_PhysPresetPtr(QDataStream *aStream);
MaterialShaderArgument Load_MaterialShaderArgument(QDataStream *aStream);
MaterialPixelShaderProgram Load_MaterialPixelShaderProgram(QDataStream *aStream);
void Load_MaterialVertexShaderProgram(QDataStream *aStream);
GfxImageLoadDef Load_GfxImageLoadDef(QDataStream *aStream);
GfxTexture Load_GfxTextureLoad(QDataStream *aStream);
XRigidVertList Load_XRigidVertList(QDataStream *aStream);
void Load_snd_alias_list_name(QDataStream *aStream);
QVector<XAUDIOCHANNELMAP> Load_XAUDIOCHANNELMAPArray(QDataStream *aStream, int count);
SndCurve Load_SndCurvePtr(QDataStream *aStream);
void Load_StreamFileInfo(QDataStream *aStream);
void Load_SndDriverGlobalsPtr(QDataStream *aStream);
XaSound Load_XaSound(QDataStream *aStream);
QVector<XAnimNotifyInfo> Load_XAnimNotifyInfoArray(QDataStream *aStream, int count);
void Load_XAnimPartTransFrames(QDataStream *aStream);
void Load_XAnimDeltaPartQuatDataFrames(QDataStream *aStream);
void Load_TempStringArray(QDataStream *aStream, int count);
GfxLightRegion Load_GfxLightRegion(QDataStream *aStream);
StringTable Load_StringTablePtr(QDataStream *aStream);
void Load_entryInternalData(QDataStream *aStream);
ComWorld Load_ComWorld(QDataStream *aStream);
QVector<CBrush> Load_cbrush_tArray(QDataStream *aStream, int count);
QVector<CLeafBrushNode> Load_cLeafBrushNode_tArray(QDataStream *aStream, int count);
PathNodeTree Load_PathNodeTree(QDataStream *aStream);
void Load_pathnode_tArray(QDataStream *aStream, int count);
BrushWrapper Load_BrushWrapper(QDataStream *aStream);
void Load_MaterialShaderArgumentArray(QDataStream *aStream, int count);
MaterialPixelShader Load_MaterialPixelShader(QDataStream *aStream);
void Load_MaterialVertexShader(QDataStream *aStream);
GfxImage Load_GfxImage(QDataStream *aStream);
void Load_XRigidVertListArray(QDataStream *aStream, int count);
void Load_snd_alias_list_nameArray(QDataStream *aStream, int count);
void Load_SpeakerMapChannel(QDataStream *aStream);
void Load_LoadedSound(QDataStream *aStream);
void Load_StreamFileName(QDataStream *aStream);
void Load_XAnimPartTransData(QDataStream *aStream);
void Load_XAnimDeltaPartQuatData(QDataStream *aStream);
void Load_ScriptStringList(QDataStream *aStream);
void Load_GfxLightRegionArray(QDataStream *aStream, int count);
void Load_GfxCellArray(QDataStream *aStream, int count);
void Load_expressionEntry(QDataStream *aStream);
void Load_ComWorldPtr(QDataStream *aStream);
void Load_pathnode_tree_tArray(QDataStream *aStream, int count);
void Load_MaterialPixelShaderPtr(QDataStream *aStream);
void Load_GfxImagePtr(QDataStream *aStream);
void Load_XSurface(QDataStream *aStream);
void Load_SpeakerMapChannelArray(QDataStream *aStream, int count);
void Load_StreamedSound(QDataStream *aStream);
void Load_LoadedSoundPtr(QDataStream *aStream);
void Load_XAnimPartTrans(QDataStream *aStream);
void Load_XAnimDeltaPartQuat(QDataStream *aStream);
void Load_GfxReflectionProbe(QDataStream *aStream);
void Load_PathData(QDataStream *aStream);
void Load_PhysGeomInfoArray(QDataStream *aStream, int count);
void Load_GfxLightmapArray(QDataStream *aStream);
void Load_GfxLightImage(QDataStream *aStream);
void Load_MaterialVertexShaderPtrArray(QDataStream *aStream, int count);
void Load_water_t(QDataStream *aStream);
void Load_XSurfaceArray(QDataStream *aStream, int count);
void Load_SpeakerMap(QDataStream *aStream);
void Load_SoundFileRef(QDataStream *aStream);
void Load_XAnimDeltaPart(QDataStream *aStream);
void Load_GfxReflectionProbeArray(QDataStream *aStream, int count);
void Load_expressionEntry_ptrArray(QDataStream *aStream, int count);
void Load_GameWorldSp(QDataStream *aStream);
void Load_PhysGeomList(QDataStream *aStream);
void Load_GfxLightmapArrayArray(QDataStream *aStream, int count);
void Load_GfxLightDef(QDataStream *aStream);
void Load_MaterialTextureDefInfo(QDataStream *aStream);
void Load_MaterialPass(QDataStream *aStream);
void Load_SoundFile(QDataStream *aStream);
void Load_XAnimParts(QDataStream *aStream);
void Load_statement(QDataStream *aStream);
void Load_GameWorldSpPtr(QDataStream *aStream);
void Load_GfxLightDefPtr(QDataStream *aStream);
void Load_MaterialTextureDef(QDataStream *aStream);
void Load_MaterialPassArray(QDataStream *aStream, int count);
void Load_snd_alias_t(QDataStream *aStream);
void Load_XAnimPartsPtr(QDataStream *aStream);
void Load_GfxLight(QDataStream *aStream);
void Load_MaterialTextureDefArray(QDataStream *aStream, int count);
void Load_MaterialTechnique(QDataStream *aStream);
void Load_snd_alias_tArray(QDataStream *aStream, int count);
void Load_snd_alias_list_t(QDataStream *aStream);
void Load_MaterialTechniquePtrArray(QDataStream *aStream, int count);
void Load_snd_alias_list_ptr(QDataStream *aStream);
void Load_MaterialTechniqueSet(QDataStream *aStream);
void Load_MaterialTechniqueSetPtr(QDataStream *aStream);
void Load_Material(QDataStream *aStream);
void Load_MaterialHandle(QDataStream *aStream);
void Load_Font(QDataStream *aStream);
void Load_MaterialMemory(QDataStream *aStream);
void Load_sunflare_t(QDataStream *aStream);
void Load_windowDef_t(QDataStream *aStream);
void Load_listBoxDef_t(QDataStream *aStream);
void Load_GfxSurface(QDataStream *aStream);
void Load_MaterialHandleArray(QDataStream *aStream, int count);
void Load_FontHandle(QDataStream *aStream);
void Load_MaterialMemoryArray(QDataStream *aStream, int count);
void Load_Window(QDataStream *aStream);
void Load_FxElemMarkVisuals(QDataStream *aStream);
void Load_XModel(QDataStream *aStream);
void Load_GfxSurfaceArray(QDataStream *aStream, int count);
void Load_itemDefData_t(QDataStream *aStream);
void Load_FxElemMarkVisualsArray(QDataStream *aStream, int count);
void Load_XModelPtr(QDataStream *aStream);
void Load_GfxStaticModelDrawInst(QDataStream *aStream);
void Load_itemDef_t(QDataStream *aStream);
void Load_cStaticModel_t(QDataStream *aStream);
void Load_FxElemVisuals(QDataStream *aStream);
void Load_XModelPiece(QDataStream *aStream);
};
#endif // ASSETS_H

View File

@ -5,81 +5,12 @@
#include "gfxlightdef.h"
#include "xmodel.h"
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 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;
XGfxLightDef *def;
};
struct GfxReflectionProbe
{
float origin[3];
GfxImage *reflectionImage;
};
struct GfxWorldDpvsPlanes
{

View File

@ -1,115 +1,29 @@
#ifndef MATERIALTECHSET_H
#define MATERIALTECHSET_H
#include "xd3dresource.h"
#include "materialpixelshader.h"
#include "xasset.h"
#include "QString"
#include "qobject.h"
#include <QVector>
struct MaterialStreamRouting
class XMaterialTechnique;
class XMaterialTechSet : public XAsset
{
quint8 source;
quint8 dest;
};
public:
explicit XMaterialTechSet();
struct D3DVertexDeclaration : D3DResource
{
};
virtual void ParseData(QDataStream* aStream) override;
virtual void Clear() override;
struct MaterialVertexStreamRouting
{
MaterialStreamRouting data[16];
D3DVertexDeclaration decl[15];
};
private:
QString mName;
int mWorldVertFormat;
struct MaterialVertexDeclaration
{
int streamCount;
bool hasOptionalSource;
MaterialVertexStreamRouting routing;
};
qint32 mRemappedPtr;
XMaterialTechSet* mRemappedTechniqueSet;
struct D3DVertexShader : D3DResource
{
};
struct GfxVertexShaderLoadDef
{
qint32 cachedPartPtr;
QVector<int> cachedPart;
qint32 physicalPartPtr;
QVector<int> physicalPart;
int cachedPartSize;
int physicalPartSize;
};
struct MaterialVertexShaderProgram
{
std::shared_ptr<D3DVertexShader> vertexShader;
GfxVertexShaderLoadDef loadDef;
};
struct MaterialVertexShader
{
QString name;
MaterialVertexShaderProgram prog;
};
struct MaterialArgumentCodeConst
{
int index;
int firstRow;
int rowCount;
};
struct MaterialArgumentDef
{
const float *literalConst;
MaterialArgumentCodeConst codeConst;
unsigned int codeSampler;
unsigned int nameHash;
};
struct MaterialShaderArgument
{
int type;
int dest;
MaterialArgumentDef u;
};
struct MaterialPass
{
std::shared_ptr<MaterialVertexDeclaration> vertexDecl;
QVector<std::shared_ptr<MaterialVertexShader>> vertexShaderArray;
std::shared_ptr<MaterialVertexShader> vertexShader;
std::shared_ptr<MaterialPixelShader> pixelShader;
int perPrimArgCount;
int perObjArgCount;
int stableArgCount;
int customSamplerFlags;
int precompiledIndex;
std::shared_ptr<MaterialShaderArgument> args;
};
struct MaterialTechnique
{
QString *name;
int flags;
int passCount;
QVector<std::shared_ptr<MaterialPass>> passArray;
};
struct MaterialTechSet
{
QString name;
int worldVertFormat;
qint32 remappedPtr;
std::shared_ptr<MaterialTechSet> remappedTechniqueSet;
QVector<qint32> techPtrs;
QVector<std::shared_ptr<MaterialTechnique>> techniques;
QVector<qint32> mTechPtrs;
QVector<XMaterialTechnique*> mTechniques;
};
#endif // MATERIALTECHSET_H