From 348bf2a299c106a3f0c6e0a8c3efcab45b5e3503 Mon Sep 17 00:00:00 2001 From: njohnson Date: Wed, 10 Sep 2025 21:56:59 -0400 Subject: [PATCH] Refactor ParseData to handle data parsing. --- libs/xassets/xcbrush.cpp | 70 ++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/libs/xassets/xcbrush.cpp b/libs/xassets/xcbrush.cpp index eacfab3..b5a305a 100644 --- a/libs/xassets/xcbrush.cpp +++ b/libs/xassets/xcbrush.cpp @@ -12,7 +12,7 @@ XCBrush::XCBrush() , mFirstAdjacentSideOffsets() , mEdgeCount() { - + SetName("C Brush"); } XCBrush::~XCBrush() @@ -20,45 +20,50 @@ XCBrush::~XCBrush() } -void XCBrush::ParseData(QDataStream *aStream) +void XCBrush::ParseData(XDataStream *aStream) { if (GetPtr() == -1) { - qint32 sidesPtr, baseAdjacentSidePtr; - *aStream - >> mMins[0] - >> mMins[1] - >> mMins[2] - >> mContents - >> mMaxs[0] - >> mMaxs[1] - >> mMaxs[2] - >> mNumsides - >> sidesPtr; - for (int i = 0; i < 3; i++) { - *aStream - >> mAxialMaterialNum[i][0] - >> mAxialMaterialNum[i][1] - >> mAxialMaterialNum[i][2]; + mMins[i] = aStream->ParseSingle(QString("%1 min %2").arg(GetName()).arg(i)); } - *aStream >> baseAdjacentSidePtr; + mContents = aStream->ParseInt32(QString("%1 contents").arg(GetName())); for (int i = 0; i < 3; i++) { - *aStream - >> mFirstAdjacentSideOffsets[i][0] - >> mFirstAdjacentSideOffsets[i][1] - >> mFirstAdjacentSideOffsets[i][2]; + mMaxs[i] = aStream->ParseSingle(QString("%1 max %2").arg(GetName()).arg(i)); + } + + // TODO: Implement baseAdjacentSidePtr + qint32 sidesPtr;//, baseAdjacentSidePtr; + mNumsides = aStream->ParseInt32(QString("%1 # sides").arg(GetName())); + sidesPtr = aStream->ParseInt32(QString("%1 sides ptr").arg(GetName())); + + for (int i = 0; i < 3; i++) + { + for (int j = 0; j < 3; j++) + { + mAxialMaterialNum[i][j] = aStream->ParseSingle(QString("%1 axial material num (%2, %3)").arg(GetName()).arg(i).arg(j)); + } + } + + mBaseAdjacentSide = aStream->ParseInt32(QString("%1 base adjacent side ptr").arg(GetName())); + + for (int i = 0; i < 3; i++) + { + for (int j = 0; j < 3; j++) + { + mFirstAdjacentSideOffsets[i][j] = aStream->ParseSingle(QString("%1 first adjacent side offset (%2, %3)").arg(GetName()).arg(i).arg(j)); + } } for (int i = 0; i < 3; i++) { - *aStream - >> mEdgeCount[i][0] - >> mEdgeCount[i][1] - >> mEdgeCount[i][2]; + for (int j = 0; j < 3; j++) + { + mEdgeCount[i][j] = aStream->ParseSingle(QString("%1 edge count (%2, %3)").arg(GetName()).arg(i).arg(j)); + } } aStream->skipRawData(10); @@ -69,11 +74,12 @@ void XCBrush::ParseData(QDataStream *aStream) newSize.ParseData(aStream); } - if (baseAdjacentSidePtr == -1) - { - XCBrushSide newSize; - newSize.ParseData(aStream); - } + // TODO: Read in this ptr then parse + //if (baseAdjacentSidePtr == -1) + //{ + // XCBrushSide newSize; + // newSize.ParseData(aStream); + //} } }