From cfa0638b94cdb327da6975bbf3769a3ab764e0f8 Mon Sep 17 00:00:00 2001 From: Nicholas Johnson Date: Thu, 10 Jul 2025 01:07:48 -0400 Subject: [PATCH] More decompiled translations :(. --- libs/assets/assets.cpp | 175 ++++++++++++------------------ libs/assets/assets.h | 8 +- libs/assets/materialpixelshader.h | 4 +- libs/assets/materialtechset.h | 2 +- libs/assets/model.h | 20 ++-- 5 files changed, 86 insertions(+), 123 deletions(-) diff --git a/libs/assets/assets.cpp b/libs/assets/assets.cpp index db7a958..62be21c 100644 --- a/libs/assets/assets.cpp +++ b/libs/assets/assets.cpp @@ -245,31 +245,24 @@ QVector Assets::Load_GfxStaticModelInstArray(QDataStream *aS // ?Load_ItemKeyHandler@@YAX_N@Z at 0x822a5f68 ItemKeyHandler Assets::Load_ItemKeyHandler(QDataStream *aStream) { - ItemKeyHandler itemKeyHandler; - ItemKeyHandler itemKeyHandlerNext; - - ItemKeyHandler **i; // r11 - unsigned __int8 *v2; // r4 + ItemKeyHandler result; *aStream - >> itemKeyHandler.key - >> itemKeyHandler.actionPtr - >> itemKeyHandler.nextPtr; + >> result.key + >> result.actionPtr + >> result.nextPtr; - itemKeyHandler.action = Load_XString(aStream); - - for (ItemKeyHandler i = itemKeyHandler.next; itemKeyHandler.next; i = itemKeyHandler.next ) - { - v2 = (unsigned __int8 *)((unsigned int)(g_streamPos + 3) & 0xFFFFFFFC); - g_streamPos = v2; - itemKeyHandlerNext = (ItemKeyHandler *)v2; - *i = (ItemKeyHandler *)v2; - Load_Stream(1, v2, 0xCu); - itemKeyHandler = itemKeyHandlerNext; - Load_Stream(0, varItemKeyHandlerNext, 0xCu); - varXString = &itemKeyHandler->action; - Load_XString(0); + if (result.actionPtr == -1) { + result.action = Load_XStringCustom(aStream); } + + while (result.nextPtr == -1) { + *aStream + >> result.next->key + >> result.next->actionPtr + >> result.next->nextPtr; + } + return result; } typedef ItemKeyHandler ItemKeyHandlerNext; @@ -277,24 +270,13 @@ typedef ItemKeyHandler ItemKeyHandlerNext; // ?Load_ItemKeyHandlerNext@@YAX_N@Z at 0x822a4aa0 ItemKeyHandler Assets::Load_ItemKeyHandlerNext(QDataStream *aStream) { - ItemKeyHandlerNext result; - - *aStream - >> result.key - >> result.action - >> result.next; - - Load_ItemKeyHandler(aStream); - - return result; + return Load_ItemKeyHandler(aStream); } -typedef EditFieldDef editFieldDef_t; - -// ?Load_editFieldDef_t@@YAX_N@Z at 0x822a4af0 -EditFieldDef Assets::Load_editFieldDef_t(QDataStream *aStream) +// ?Load_EditFieldDef@@YAX_N@Z at 0x822a4af0 +EditFieldDef Assets::Load_EditFieldDef(QDataStream *aStream) { - editFieldDef_t result; + EditFieldDef result; *aStream >> result.minVal @@ -309,40 +291,33 @@ EditFieldDef Assets::Load_editFieldDef_t(QDataStream *aStream) return result; } -typedef OperationEnum Operator; - // ?Load_Operator@@YAX_N@Z at 0x822a4b08 -Operator Assets::Load_Operator(QDataStream *aStream) +OperationEnum Assets::Load_Operator(QDataStream *aStream) { - Operator result; + OperationEnum result; *aStream >> result; return result; } -typedef unsigned __int16 LeafBrush; - // ?Load_LeafBrushArray@@YAX_NH@Z at 0x822a4b20 -QVector Assets::Load_LeafBrushArray(QDataStream *aStream, int count) +QVector Assets::Load_LeafBrushArray(QDataStream *aStream, int count) { - QVector result; + QVector result; for (int i = 0; i < count; i++) { - LeafBrush leafBrush; + quint16 leafBrush; - *aStream >> result; + *aStream >> leafBrush; result << leafBrush; } - - *aStream >> result; - return result; } -CLeaf Assets::Load_cLeaf_t(QDataStream *aStream) +CLeaf Assets::Load_CLeaf(QDataStream *aStream) { CLeaf result; @@ -364,8 +339,8 @@ CLeaf Assets::Load_cLeaf_t(QDataStream *aStream) return result; } -// ?Load_cmodel_tArray@@YAX_NH@Z at 0x822a4b38 -QVector Assets::Load_cmodel_tArray(QDataStream *aStream, int count) +// ?Load_CModelArray@@YAX_NH@Z at 0x822a4b38 +QVector Assets::Load_CModelArray(QDataStream *aStream, int count) { QVector result; @@ -381,7 +356,7 @@ QVector Assets::Load_cmodel_tArray(QDataStream *aStream, int count) >> cmodel.maxs[2] >> cmodel.radius; - cmodel.leaf = Load_cLeaf_t(aStream); + cmodel.leaf = Load_CLeaf(aStream); result << cmodel; } @@ -466,7 +441,7 @@ QVector Assets::Load_cLeaf_tArray(QDataStream *aStream, int count) QVector result; for (int i = 0; i < count; i++) { - result << Load_cLeaf_t(aStream); + result << Load_CLeaf(aStream); } return result; @@ -738,7 +713,7 @@ QVector Assets::Load_cbrushedge_tArray(QDataStream *aStream, size_ QVector result; for (int i = 0; i < count; i++) { - *aStream >> Load_cbrushedge_t(aStream); + result << Load_cbrushedge_t(aStream); } return result; @@ -789,7 +764,7 @@ QVector Assets::Load_cplane_tArray(QDataStream *aStream, int count) QVector result; for (int i = 0; i < count; i++) { - *aStream >> Load_cplane_t(aStream); + result << Load_cplane_t(aStream); } return result; @@ -884,15 +859,13 @@ MaterialVertexDeclaration Assets::Load_MaterialVertexDeclaration(QDataStream *aS return result; } -typedef unsigned __int8 byteShader; - // ?Load_byteShaderArray@@YAX_NH@Z at 0x822a4e98 -QVector Assets::Load_byteShaderArray(QDataStream *aStream, size_t count) +QVector Assets::Load_byteShaderArray(QDataStream *aStream, size_t count) { - QVector result; + QVector result; for (int i = 0; i < count; i++) { - byteShader byteShader_; + quint8 byteShader_; *aStream >> byteShader_; @@ -930,20 +903,12 @@ QVector Assets::Load_GfxRawTextureArray(QDataStream *aStream, int for (int i = 0; i < count; i++) { GfxRawTexture gfxRawTexture; - quint32 basemapPtr, mapPtr, volmapPtr, cubemapPtr, loadDefPtr; - *aStream - >> basemapPtr - >> mapPtr - >> volmapPtr - >> cubemapPtr - >> loadDefPtr; - - &gfxRawTexture.basemap = basemapPtr; - &gfxRawTexture.map = mapPtr; - &gfxRawTexture.volmap = volmapPtr; - &gfxRawTexture.cubemap = cubemapPtr; - &gfxRawTexture.loadDef = loadDefPtr; + >> gfxRawTexture.basemapPtr + >> gfxRawTexture.mapPtr + >> gfxRawTexture.volmapPtr + >> gfxRawTexture.cubemapPtr + >> gfxRawTexture.loadDefPtr; result << gfxRawTexture; } @@ -1015,20 +980,24 @@ D3DVolumeTexture Assets::Load_IDirect3DVolumeTexture9(QDataStream *aStream) // ?Load_IDirect3DTexture9@@YAX_N@Z at 0x822a4f10 -void Assets::Load_IDirect3DTexture9(QDataStream *aStream) +D3DTexture Assets::Load_IDirect3DTexture9(QDataStream *aStream) { - Load_Stream(1, varIDirect3DTexture9, 0x34u); -} + D3DTexture result; -typedef unsigned __int16 r_index16_t; + *aStream + >> result.MipFlush + >> result.Format; + + return result; +} // ?Load_r_index16_tArray@@YAX_NH@Z at 0x822a4f28 QVector Assets::Load_r_index16_tArray(QDataStream *aStream, int count) { - QVector result; + QVector result; for (int i = 0; i < count; i++) { - r_index16_t r_index16; + quint16 r_index16; *aStream >> r_index16; @@ -1038,15 +1007,13 @@ QVector Assets::Load_r_index16_tArray(QDataStream *aStream, int count) return result; } -typedef unsigned __int16 r_index_t; - // ?Load_r_index_tArray@@YAX_NH@Z at 0x822a4f40 QVector Assets::Load_r_index_tArray(QDataStream *aStream, int count) { - QVector result; + QVector result; for (int i = 0; i < count; i++) { - r_index_t r_index; + quint16 r_index; *aStream >> r_index; @@ -1056,12 +1023,10 @@ QVector Assets::Load_r_index_tArray(QDataStream *aStream, int count) return result; } -typedef D3DIndexBuffer GfxIndexBuffer; - // ?Load_GfxIndexBuffer@@YAX_N@Z at 0x822a4f58 D3DIndexBuffer Assets::Load_GfxIndexBuffer(QDataStream *aStream) { - GfxIndexBuffer result; + D3DIndexBuffer result; *aStream >> result.Address @@ -1076,15 +1041,13 @@ D3DIndexBuffer Assets::Load_GfxIndexBuffer(QDataStream *aStream) return result; } -typedef unsigned __int16 XBlendInfo; - // ?Load_XBlendInfoArray@@YAX_NH@Z at 0x822a4f70 -QVector Assets::Load_XBlendInfoArray(QDataStream *aStream, int count) +QVector Assets::Load_XBlendInfoArray(QDataStream *aStream, int count) { - QVector result; + QVector result; for (int i = 0; i < count; i++) { - XBlendInfo xBlendInfo; + quint16 xBlendInfo; *aStream >> xBlendInfo; @@ -1149,7 +1112,7 @@ QVector Assets::Load_XSurfaceCollisionNodeArray(QDataStre struct XSurfaceCollisionLeaf { - unsigned __int16 triangleBeginIndex; + unsigned __int16 triangleBeginIndex; }; // ?Load_XSurfaceCollisionLeafArray@@YAX_NH@Z at 0x822a4fb8 @@ -1950,49 +1913,49 @@ GfxWorldDpvsDynamic Assets::Load_GfxWorldDpvsDynamic(QDataStream *aStream, GfxWo if (result.dynEntCellBitsPtrs[0]) { //for (int i = 0; i < aGfxWorld.dpvsPlanes.cellCount * gfxWorldDpvsDynamic.dynEntClientWordCount[0]; i++) { - *aStream >> result.dynEntCellBits[0]; + *aStream >> result.dynEntCellBits[0]; //} } if (result.dynEntCellBitsPtrs[1]) { //for (int i = 0; i < aGfxWorld.dpvsPlanes.cellCount * gfxWorldDpvsDynamic.dynEntClientWordCount[0]; i++) { - *aStream >> result.dynEntCellBits[1]; + *aStream >> result.dynEntCellBits[1]; //} } if (result.dynEntVisDataPtrs[0][0]) { //for (int i = 0; i < gfxWorldDpvsDynamic.dynEntClientWordCount[0]; i++) { - *aStream >> result.dynEntVisData[0][0]; + *aStream >> result.dynEntVisData[0][0]; //} } if (result.dynEntVisDataPtrs[1][0]) { //for (int i = 0; i < gfxWorldDpvsDynamic.dynEntClientWordCount[1]; i++) { - *aStream >> result.dynEntVisData[1][0]; + *aStream >> result.dynEntVisData[1][0]; //} } if (result.dynEntVisDataPtrs[0][1]) { //for (int i = 0; i < gfxWorldDpvsDynamic.dynEntClientWordCount[0]; i++) { - *aStream >> result.dynEntVisData[0][1]; + *aStream >> result.dynEntVisData[0][1]; //} } if (result.dynEntVisDataPtrs[1][1]) { //for (int i = 0; i < gfxWorldDpvsDynamic.dynEntClientWordCount[1]; i++) { - *aStream >> result.dynEntVisData[1][1]; + *aStream >> result.dynEntVisData[1][1]; //} } if (result.dynEntVisDataPtrs[0][2]) { //for (int i = 0; i < gfxWorldDpvsDynamic.dynEntClientWordCount[0]; i++) { - *aStream >> result.dynEntVisData[0][2]; + *aStream >> result.dynEntVisData[0][2]; //} } if (result.dynEntVisDataPtrs[1][2]) { //for (int i = 0; i < gfxWorldDpvsDynamic.dynEntClientWordCount[1]; i++) { - *aStream >> result.dynEntVisData[1][2]; + *aStream >> result.dynEntVisData[1][2]; //} } return result; @@ -4733,7 +4696,7 @@ GfxImage Assets::Load_GfxImage(QDataStream *aStream) *aStream >> result.texture - varGfxTextureLoad = &varGfxImage->texture; + varGfxTextureLoad = &varGfxImage->texture; Load_GfxTextureLoad(0); return result; } @@ -8211,7 +8174,7 @@ QVector Assets::Load_menuDef_ptrArray(QDataStream *aStream, int count *aStream >> menuDef. - result << menuDef; + result << menuDef; } v2 = count; @@ -9717,8 +9680,8 @@ FxImpactTable Assets::Load_FxImpactTablePtr(QDataStream *aStream) struct XAsset { - XAssetType type; - XAssetHeader header; + XAssetType type; + XAssetHeader header; }; // ?Load_XAssetHeader@@YAX_N@Z at 0x822afea8 @@ -9826,7 +9789,7 @@ XAsset Assets::Load_XAsset(QDataStream *aStream) >> result.type >> result.header - result.header = Load_XAssetHeader(aStream, result); + result.header = Load_XAssetHeader(aStream, result); return result; } diff --git a/libs/assets/assets.h b/libs/assets/assets.h index a133cd7..0c2a8b1 100644 --- a/libs/assets/assets.h +++ b/libs/assets/assets.h @@ -2953,11 +2953,11 @@ private: QVector Load_GfxStaticModelInstArray(QDataStream *aStream, int count); ItemKeyHandler Load_ItemKeyHandler(QDataStream *aStream); ItemKeyHandler Load_ItemKeyHandlerNext(QDataStream *aStream); - EditFieldDef Load_editFieldDef_t(QDataStream *aStream); + EditFieldDef Load_EditFieldDef(QDataStream *aStream); OperationEnum Load_Operator(QDataStream *aStream); QVector Load_LeafBrushArray(QDataStream *aStream, int count); - CLeaf Load_cLeaf_t(QDataStream *aStream); - QVector Load_cmodel_tArray(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); @@ -2987,7 +2987,7 @@ private: QVector Load_GfxRawTextureArray(QDataStream *aStream, int count); D3DCubeTexture Load_IDirect3DCubeTexture9(QDataStream *aStream); D3DVolumeTexture Load_IDirect3DVolumeTexture9(QDataStream *aStream); - void Load_IDirect3DTexture9(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); diff --git a/libs/assets/materialpixelshader.h b/libs/assets/materialpixelshader.h index d60671b..57850f6 100644 --- a/libs/assets/materialpixelshader.h +++ b/libs/assets/materialpixelshader.h @@ -2,8 +2,8 @@ #define MATERIAL_PIXERHSHADER_H #include "d3dresource.h" -#include "qcontainerfwd.h" -#include "qtypes.h" +#include +#include struct GfxPixelShaderLoadDef { diff --git a/libs/assets/materialtechset.h b/libs/assets/materialtechset.h index cde9fb5..7aeeb9a 100644 --- a/libs/assets/materialtechset.h +++ b/libs/assets/materialtechset.h @@ -20,7 +20,7 @@ struct D3DVertexDeclaration : D3DResource struct MaterialVertexStreamRouting { MaterialStreamRouting data[16]; - D3DVertexDeclaration *decl[15]; + D3DVertexDeclaration decl[15]; }; struct MaterialVertexDeclaration diff --git a/libs/assets/model.h b/libs/assets/model.h index e655083..956b846 100644 --- a/libs/assets/model.h +++ b/libs/assets/model.h @@ -37,21 +37,21 @@ struct GfxPackedVertex PackedUnitVec tangent; }; -struct $E41E24A1CD47CDFA361AA9F99910948B +struct GPUVERTEX_RAW_REQEUST { - unsigned __int32 Type : 2; - unsigned __int32 BaseAddress : 30; - unsigned __int32 Endian : 2; - unsigned __int32 Size : 24; - unsigned __int32 AddressClamp : 1; - unsigned __int32 : 1; - unsigned __int32 RequestSize : 2; - unsigned __int32 ClampDisable : 2; + quint32 Type : 2; + quint32 BaseAddress : 30; + quint32 Endian : 2; + quint32 Size : 24; + quint32 AddressClamp : 1; + quint32 : 1; + quint32 RequestSize : 2; + quint32 ClampDisable : 2; }; union GPUVERTEX_FETCH_CONSTANT { - $E41E24A1CD47CDFA361AA9F99910948B __s0; + GPUVERTEX_RAW_REQEUST request; unsigned int dword[2]; };