diff --git a/libs/xassets/assetlist.cpp b/libs/xassets/assetlist.cpp index d97d392..e69de29 100644 --- a/libs/xassets/assetlist.cpp +++ b/libs/xassets/assetlist.cpp @@ -1 +0,0 @@ -#include "assetlist.h" diff --git a/libs/xassets/assetlist.h b/libs/xassets/assetlist.h index 7f6da80..e69de29 100644 --- a/libs/xassets/assetlist.h +++ b/libs/xassets/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 assets; -}; - -#endif // ASSETLIST_H diff --git a/libs/xassets/assets.h b/libs/xassets/assets.h index cbd1f4a..d494c9c 100644 --- a/libs/xassets/assets.h +++ b/libs/xassets/assets.h @@ -1,6 +1,7 @@ #ifndef ASSETS_H #define ASSETS_H +#include "xgfxpixelshaderloaddef.h" #include "xmodel.h" #include #include @@ -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 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 sides; + QVector sides; qint16 axialMaterialNum[2][3]; qint32 baseAdjacentSidePtr; quint8 baseAdjacentSide; @@ -2872,36 +2785,17 @@ struct FxImpactTable QVector 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 Load_GlyphArray(QDataStream *aStream, int count); - QVector Load_GfxLightRegionAxisArray(QDataStream *aStream, int count); - QVector Load_GfxDrawSurfArray(QDataStream *aStream, int count); - QVector Load_GfxSceneDynBrushArray(QDataStream *aStream, int count); - QVector Load_GfxSceneDynModelArray(QDataStream *aStream, int count); - QVector Load_GfxStreamingAabbTreeArray(QDataStream *aStream, int count); - GfxLightGridColors Load_GfxLightGridColors(QDataStream *aStream); - QVector Load_GfxLightGridColorsArray(QDataStream *aStream, int count); - QVector Load_GfxLightGridEntryArray(QDataStream *aStream, int count); - QVector Load_GfxCullGroupArray(QDataStream *aStream, int count); - QVector Load_StaticModelIndexArray(QDataStream *aStream, int count); - QVector 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 Load_LeafBrushArray(QDataStream *aStream, int count); - CLeaf Load_CLeaf(QDataStream *aStream); - QVector Load_CModelArray(QDataStream *aStream, int count); - QVector Load_CollisionAabbTreeArray(QDataStream *aStream, int count); - CollisionBorder Load_CollisionBorder(QDataStream *aStream); - QVector Load_CollisionBorderArray(QDataStream *aStream, int count); - CLeafBrushNodeChildren Load_cLeafBrushNodeChildren_t(QDataStream *aStream); - QVector Load_cLeaf_tArray(QDataStream *aStream, int count); - QVector Load_DynEntityClientArray(QDataStream *aStream, int count); - QVector Load_DynEntityPoseArray(QDataStream *aStream, int count); - QVector Load_DynEntityCollArray(QDataStream *aStream, int count); - QVector Load_FxTrailVertexArray(QDataStream *aStream, int count); - QVector Load_FxElemVelStateSampleArray(QDataStream *aStream, int count); - QVector Load_FxElemVisStateSampleArray(QDataStream *aStream, int count); - QVector Load_pathbasenode_tArray(QDataStream *aStream, int count); - QVector Load_pathlink_tArray(QDataStream *aStream, int count); - QVector Load_XModelHighMipBoundsArray(QDataStream *aStream, int count); - XModelCollSurf Load_XModelCollSurf(QDataStream *aStream); - quint8 Load_cbrushedge_t(QDataStream *aStream); - QVector Load_cbrushedge_tArray(QDataStream *aStream, size_t count); - CPlane Load_cplane_t(QDataStream *aStream); - CPlane Load_CPlane(QDataStream *aStream); - QVector Load_cplane_tArray(QDataStream *aStream, int count); - QVector Load_MaterialConstantDefArray(QDataStream *aStream, int count); - QVector Load_GfxStateBitsArray(QDataStream *aStream, int count); - MaterialArgumentCodeConst Load_MaterialArgumentCodeConst(QDataStream *aStream); - MaterialVertexDeclaration Load_MaterialVertexDeclaration(QDataStream *aStream); - QVector Load_byteShaderArray(QDataStream *aStream, size_t count); - QVector Load_byte4Array(QDataStream *aStream, size_t count); - QVector Load_GfxRawTextureArray(QDataStream *aStream, int count); - D3DCubeTexture Load_IDirect3DCubeTexture9(QDataStream *aStream); - D3DVolumeTexture Load_IDirect3DVolumeTexture9(QDataStream *aStream); - D3DTexture Load_IDirect3DTexture9(QDataStream *aStream); - QVector Load_r_index16_tArray(QDataStream *aStream, int count); - QVector Load_r_index_tArray(QDataStream *aStream, int count); - D3DIndexBuffer Load_GfxIndexBuffer(QDataStream *aStream); - QVector Load_XBlendInfoArray(QDataStream *aStream, int count); - D3DVertexBuffer Load_GfxVertexBuffer(QDataStream *aStream); - QVector Load_XSurfaceCollisionNodeArray(QDataStream *aStream, int count); - QVector Load_XSurfaceCollisionLeafArray(QDataStream *aStream, int count); - QVector Load_GfxBrushModelArray(QDataStream *aStream, int count); - QVector Load_GfxPackedVertex0Array(QDataStream *aStream, int count); - void Load_GfxWorldVertex0Array(QDataStream *aStream, int count); - QVector Load_XAUDIOCHANNELMAPENTRYArray(QDataStream *aStream, int count); - StreamFileNamePacked Load_StreamFileNamePacked(QDataStream *aStream); - QVector Load_XaReverbSettingsArray(QDataStream *aStream, int count); - QVector Load_char2048Array(QDataStream *aStream, size_t count); - QVector Load_DObjAnimMatArray(QDataStream *aStream, int count); - QVector Load_XBoneInfoArray(QDataStream *aStream, int count); - QVector> Load_UShortVecArray(QDataStream *aStream, int count); - QVector> Load_ByteVecArray(QDataStream *aStream, int count); - QVector Load_dmaterial_tArray(QDataStream *aStream, int count); - QVector Load_ConstCharArray(QDataStream *aStream, size_t count); - quint16 Load_ScriptString(QDataStream *aStream); - QVector Load_UnsignedShortArray(QDataStream *aStream, int count); - QVector Load_XQuat2(QDataStream *aStream); - QVector> Load_XQuat2Array(QDataStream *aStream, int count); - QVector Load_ushortArray(QDataStream *aStream, int count); - QVector Load_shortArray(QDataStream *aStream, int count); - QVector Load_vec3_t(QDataStream *aStream); - QVector> Load_vec3_tArray(QDataStream *aStream, int count); - QVector> Load_vec2_tArray(QDataStream *aStream, int count); - QVector Load_raw_byte16Array(QDataStream *aStream, size_t count); - QVector Load_raw_byteArray(QDataStream *aStream, size_t count); - QVector Load_raw_uint128Array(QDataStream *aStream, int count); - QVector Load_raw_uintArray(QDataStream *aStream, int count); - float Load_float(QDataStream *aStream); - QVector Load_floatArray(QDataStream *aStream, int count); - uint Load_uint(QDataStream *aStream); - QVector Load_uintArray(QDataStream *aStream, int count); - QVector<_DWORD> Load_DWORDArray(QDataStream *aStream, int count); - QVector Load_byte4096Array(QDataStream *aStream, size_t count); - int Load_int(QDataStream *aStream); - QVector Load_intArray(QDataStream *aStream, int count); - char Load_char(QDataStream *aStream); - QVector Load_charArray(QDataStream *aStream, size_t count); - QVector 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 Load_GfxAabbTreeArray(QDataStream *aStream, int count); - GfxCell Load_GfxCell(QDataStream *aStream); - GfxPortal Load_GfxPortal(QDataStream *aStream); - QVector 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 LoadPathNodeTreeArray(QDataStream *aStream, int count); - PathNodeTreeNodes Load_PathNodeTreeNodes(QDataStream *aStream); - PathNodeConstant Load_PathNodeConstant(QDataStream *aStream); - QVector 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 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 Load_ScriptStringArray(QDataStream *aStream, int count); - QVector Load_GfxLightRegionHullArray(QDataStream *aStream, int count); - QVector 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 Load_ComPrimaryLightArray(QDataStream *aStream, int count); - CBrushSide Load_cbrushside_t(QDataStream *aStream); - CBrush Load_CBrush(QDataStream *aStream); - QVector Load_CollisionPartitionArray(QDataStream *aStream, int count); - CLeafBrushNode Load_CLeafBrushNode(QDataStream *aStream); - QVector 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 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 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 Load_cbrush_tArray(QDataStream *aStream, int count); - QVector 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 diff --git a/libs/xassets/gfxworld.h b/libs/xassets/gfxworld.h index fb27131..37419fb 100644 --- a/libs/xassets/gfxworld.h +++ b/libs/xassets/gfxworld.h @@ -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 { diff --git a/libs/xassets/materialtechset.h b/libs/xassets/materialtechset.h index 6da64c7..af66f27 100644 --- a/libs/xassets/materialtechset.h +++ b/libs/xassets/materialtechset.h @@ -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 -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 cachedPart; - qint32 physicalPartPtr; - QVector physicalPart; - int cachedPartSize; - int physicalPartSize; -}; - -struct MaterialVertexShaderProgram -{ - std::shared_ptr 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 vertexDecl; - QVector> vertexShaderArray; - std::shared_ptr vertexShader; - std::shared_ptr pixelShader; - int perPrimArgCount; - int perObjArgCount; - int stableArgCount; - int customSamplerFlags; - int precompiledIndex; - std::shared_ptr args; -}; - -struct MaterialTechnique -{ - QString *name; - int flags; - int passCount; - QVector> passArray; -}; - -struct MaterialTechSet -{ - QString name; - int worldVertFormat; - - qint32 remappedPtr; - std::shared_ptr remappedTechniqueSet; - - QVector techPtrs; - QVector> techniques; + QVector mTechPtrs; + QVector mTechniques; }; #endif // MATERIALTECHSET_H