Update asset-related core files
This commit is contained in:
parent
f149b66322
commit
39853c77fe
@ -1 +0,0 @@
|
|||||||
#include "assetlist.h"
|
|
||||||
@ -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
|
|
||||||
@ -1,6 +1,7 @@
|
|||||||
#ifndef ASSETS_H
|
#ifndef ASSETS_H
|
||||||
#define ASSETS_H
|
#define ASSETS_H
|
||||||
|
|
||||||
|
#include "xgfxpixelshaderloaddef.h"
|
||||||
#include "xmodel.h"
|
#include "xmodel.h"
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
@ -211,69 +212,13 @@ struct _XGTEXTURE_DESC
|
|||||||
_D3DMULTISAMPLE_TYPE MultiSampleType;
|
_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
|
union MaterialPixelShaderProgram
|
||||||
{
|
{
|
||||||
qint32 psPtr;
|
qint32 psPtr;
|
||||||
D3DPixelShader ps;
|
XD3DPixelShader ps;
|
||||||
GfxPixelShaderLoadDef loadDef;
|
XGfxPixelShaderLoadDef loadDef;
|
||||||
};
|
|
||||||
|
|
||||||
struct stream_source_info_t
|
|
||||||
{
|
|
||||||
quint16 Stream;
|
|
||||||
quint16 Offset;
|
|
||||||
uint Type;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct __declspec(align(4)) XMALOOPREGION
|
struct __declspec(align(4)) XMALOOPREGION
|
||||||
@ -511,38 +456,6 @@ struct MaterialTechniqueSet
|
|||||||
MaterialTechnique *techniques[26];
|
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
|
struct XModelPiece
|
||||||
{
|
{
|
||||||
XModel *model;
|
XModel *model;
|
||||||
@ -762,7 +675,7 @@ struct CollisionAabbTree
|
|||||||
CollisionAabbTreeIndex u;
|
CollisionAabbTreeIndex u;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CModel
|
struct XCModel
|
||||||
{
|
{
|
||||||
float mins[3];
|
float mins[3];
|
||||||
float maxs[3];
|
float maxs[3];
|
||||||
@ -770,14 +683,14 @@ struct CModel
|
|||||||
CLeaf leaf;
|
CLeaf leaf;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CBrush
|
struct XCBrush
|
||||||
{
|
{
|
||||||
float mins[3];
|
float mins[3];
|
||||||
int contents;
|
int contents;
|
||||||
float maxs[3];
|
float maxs[3];
|
||||||
uint numsides;
|
uint numsides;
|
||||||
qint32 sidesPtr;
|
qint32 sidesPtr;
|
||||||
QVector<CBrushSide> sides;
|
QVector<XCBrushSide> sides;
|
||||||
qint16 axialMaterialNum[2][3];
|
qint16 axialMaterialNum[2][3];
|
||||||
qint32 baseAdjacentSidePtr;
|
qint32 baseAdjacentSidePtr;
|
||||||
quint8 baseAdjacentSide;
|
quint8 baseAdjacentSide;
|
||||||
@ -2872,36 +2785,17 @@ struct FxImpactTable
|
|||||||
QVector<FxImpactEntry> table;
|
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
|
union XAssetHeader
|
||||||
{
|
{
|
||||||
XModelPieces *xmodelPieces;
|
XModelPieces *xmodelPieces;
|
||||||
PhysPreset *physPreset;
|
XPhysPreset *physPreset;
|
||||||
XAnimParts *parts;
|
XAnimParts *parts;
|
||||||
XModel *model;
|
XModel *model;
|
||||||
Material *material;
|
XMaterial *material;
|
||||||
MaterialPixelShader *pixelShader;
|
XMaterialPixelShader *pixelShader;
|
||||||
MaterialVertexShader *vertexShader;
|
XMaterialVertexShader *vertexShader;
|
||||||
MaterialTechniqueSet *techniqueSet;
|
MaterialTechniqueSet *techniqueSet;
|
||||||
GfxImage *image;
|
XGfxImage *image;
|
||||||
SoundAliasList *sound;
|
SoundAliasList *sound;
|
||||||
SndCurve *sndCurve;
|
SndCurve *sndCurve;
|
||||||
LoadedSound *loadSnd;
|
LoadedSound *loadSnd;
|
||||||
@ -2920,300 +2814,9 @@ union XAssetHeader
|
|||||||
XSoundDriverGlobals *sndDriverGlobals;
|
XSoundDriverGlobals *sndDriverGlobals;
|
||||||
const FxEffectDef *fx;
|
const FxEffectDef *fx;
|
||||||
FxImpactTable *impactFx;
|
FxImpactTable *impactFx;
|
||||||
RawFile *rawfile;
|
XRawFile *rawfile;
|
||||||
StringTable *stringTable;
|
XStringTable *stringTable;
|
||||||
void *data;
|
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
|
#endif // ASSETS_H
|
||||||
|
|||||||
@ -5,81 +5,12 @@
|
|||||||
#include "gfxlightdef.h"
|
#include "gfxlightdef.h"
|
||||||
#include "xmodel.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
|
struct GfxWorldVertexLayerData
|
||||||
{
|
{
|
||||||
unsigned __int8 *data;
|
unsigned __int8 *data;
|
||||||
D3DVertexBuffer layerVb;
|
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
|
struct GfxWorldDpvsPlanes
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,115 +1,29 @@
|
|||||||
#ifndef MATERIALTECHSET_H
|
#ifndef MATERIALTECHSET_H
|
||||||
#define MATERIALTECHSET_H
|
#define MATERIALTECHSET_H
|
||||||
|
|
||||||
#include "xd3dresource.h"
|
#include "xasset.h"
|
||||||
#include "materialpixelshader.h"
|
|
||||||
|
|
||||||
#include "QString"
|
#include <QVector>
|
||||||
#include "qobject.h"
|
|
||||||
|
|
||||||
struct MaterialStreamRouting
|
class XMaterialTechnique;
|
||||||
|
|
||||||
|
class XMaterialTechSet : public XAsset
|
||||||
{
|
{
|
||||||
quint8 source;
|
public:
|
||||||
quint8 dest;
|
explicit XMaterialTechSet();
|
||||||
};
|
|
||||||
|
|
||||||
struct D3DVertexDeclaration : D3DResource
|
virtual void ParseData(QDataStream* aStream) override;
|
||||||
{
|
virtual void Clear() override;
|
||||||
};
|
|
||||||
|
|
||||||
struct MaterialVertexStreamRouting
|
private:
|
||||||
{
|
QString mName;
|
||||||
MaterialStreamRouting data[16];
|
int mWorldVertFormat;
|
||||||
D3DVertexDeclaration decl[15];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct MaterialVertexDeclaration
|
qint32 mRemappedPtr;
|
||||||
{
|
XMaterialTechSet* mRemappedTechniqueSet;
|
||||||
int streamCount;
|
|
||||||
bool hasOptionalSource;
|
|
||||||
MaterialVertexStreamRouting routing;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct D3DVertexShader : D3DResource
|
QVector<qint32> mTechPtrs;
|
||||||
{
|
QVector<XMaterialTechnique*> mTechniques;
|
||||||
};
|
|
||||||
|
|
||||||
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;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MATERIALTECHSET_H
|
#endif // MATERIALTECHSET_H
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user