|
|
|
|
@ -245,31 +245,24 @@ QVector<GfxStaticModelInst> 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<LeafBrush> Assets::Load_LeafBrushArray(QDataStream *aStream, int count)
|
|
|
|
|
QVector<quint16> Assets::Load_LeafBrushArray(QDataStream *aStream, int count)
|
|
|
|
|
{
|
|
|
|
|
QVector<LeafBrush> result;
|
|
|
|
|
QVector<quint16> 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<CModel> Assets::Load_cmodel_tArray(QDataStream *aStream, int count)
|
|
|
|
|
// ?Load_CModelArray@@YAX_NH@Z at 0x822a4b38
|
|
|
|
|
QVector<CModel> Assets::Load_CModelArray(QDataStream *aStream, int count)
|
|
|
|
|
{
|
|
|
|
|
QVector<CModel> result;
|
|
|
|
|
|
|
|
|
|
@ -381,7 +356,7 @@ QVector<CModel> 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<CLeaf> Assets::Load_cLeaf_tArray(QDataStream *aStream, int count)
|
|
|
|
|
QVector<CLeaf> result;
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < count; i++) {
|
|
|
|
|
result << Load_cLeaf_t(aStream);
|
|
|
|
|
result << Load_CLeaf(aStream);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
@ -738,7 +713,7 @@ QVector<cbrushedge_t> Assets::Load_cbrushedge_tArray(QDataStream *aStream, size_
|
|
|
|
|
QVector<cbrushedge_t> 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<cplane_t> Assets::Load_cplane_tArray(QDataStream *aStream, int count)
|
|
|
|
|
QVector<cplane_t> 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<byteShader> Assets::Load_byteShaderArray(QDataStream *aStream, size_t count)
|
|
|
|
|
QVector<quint8> Assets::Load_byteShaderArray(QDataStream *aStream, size_t count)
|
|
|
|
|
{
|
|
|
|
|
QVector<byteShader> result;
|
|
|
|
|
QVector<quint8> result;
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < count; i++) {
|
|
|
|
|
byteShader byteShader_;
|
|
|
|
|
quint8 byteShader_;
|
|
|
|
|
|
|
|
|
|
*aStream >> byteShader_;
|
|
|
|
|
|
|
|
|
|
@ -930,20 +903,12 @@ QVector<GfxRawTexture> 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<quint16> Assets::Load_r_index16_tArray(QDataStream *aStream, int count)
|
|
|
|
|
{
|
|
|
|
|
QVector<r_index16_t> result;
|
|
|
|
|
QVector<quint16> result;
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < count; i++) {
|
|
|
|
|
r_index16_t r_index16;
|
|
|
|
|
quint16 r_index16;
|
|
|
|
|
|
|
|
|
|
*aStream >> r_index16;
|
|
|
|
|
|
|
|
|
|
@ -1038,15 +1007,13 @@ QVector<quint16> 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<quint16> Assets::Load_r_index_tArray(QDataStream *aStream, int count)
|
|
|
|
|
{
|
|
|
|
|
QVector<r_index_t> result;
|
|
|
|
|
QVector<quint16> result;
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < count; i++) {
|
|
|
|
|
r_index_t r_index;
|
|
|
|
|
quint16 r_index;
|
|
|
|
|
|
|
|
|
|
*aStream >> r_index;
|
|
|
|
|
|
|
|
|
|
@ -1056,12 +1023,10 @@ QVector<quint16> 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<XBlendInfo> Assets::Load_XBlendInfoArray(QDataStream *aStream, int count)
|
|
|
|
|
QVector<quint16> Assets::Load_XBlendInfoArray(QDataStream *aStream, int count)
|
|
|
|
|
{
|
|
|
|
|
QVector<XBlendInfo> result;
|
|
|
|
|
QVector<quint16> result;
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < count; i++) {
|
|
|
|
|
XBlendInfo xBlendInfo;
|
|
|
|
|
quint16 xBlendInfo;
|
|
|
|
|
|
|
|
|
|
*aStream >> xBlendInfo;
|
|
|
|
|
|
|
|
|
|
@ -1149,7 +1112,7 @@ QVector<XSurfaceCollisionNode> 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<menuDef_t> 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;
|
|
|
|
|
}
|
|
|
|
|
|