#include "xclipmap.h" XClipMap::XClipMap() : XAsset() , mName() , mIsInUse(false) , mPlaneCount(0) , mPlanes() , mNumStaticModels(0) , mStaticModelList() , mNumMaterials(0) , mMaterials() , mNumBrushSides(0) , mBrushsides() , mNumBrushEdges(0) , mBrushEdges() , mNumNodes(0) , mNodes() , mNumLeafs(0) , mLeafs() , mLeafBrushNodesCount(0) , mLeafBrushNodes() , mNumLeafBrushes(0) , mLeafBrushes() , mNumLeafSurfaces(0) , mLeafSurfaces() , mVertCount(0) , mVerts() , mTriCount(0) , mTriIndices() , mTriEdgeIsWalkable() , mBorderCount(0) , mBorders() , mPartitionCount(0) , mPartitions() , mAabbTreeCount(0) , mAabbTrees() , mNumSubModels(0) , mCModels() , mNumBrushes(0) , mBrushes() , mNumClusters(0) , mClusterBytes(0) , mVisibility() , mVised(0) , mMapEnts() , mBoxBrush() , mBoxModel() , mDynEntCounts(0) , mDynEntDefList(2) , mDynEntPoseList(2) , mDynEntClientList(2) , mDynEntCollList(2) , mChecksum(0) { SetType(ASSET_TYPE_CLIPMAP); SetName("ClipMap"); } XClipMap::~XClipMap() { } void XClipMap::ParseData(QDataStream *aStream) { if (GetPtr() == -1) { mName.ParsePtr(aStream, false); qint32 planePtr, staticModelPtr, materialsPtr, brushSidesPtr, brushEdgesPtr, nodesPtr, leafsPtr, leafsBrushNodesPtr, leafBrushesPtr, leafSurfacesPtr, vertPtr1, vertPtr2, vertPtr3, triIndicesPtr, triEdgeWalkablePtr, bordersPtr, partitionsPtr, aabbTreesPtr, cModelsPtr; *aStream >> mIsInUse >> mPlaneCount >> planePtr >> mNumStaticModels >> staticModelPtr >> mNumMaterials >> materialsPtr >> mNumBrushSides >> brushSidesPtr >> mNumBrushEdges >> brushEdgesPtr >> mNumNodes >> nodesPtr >> mNumLeafs >> leafsPtr >> mLeafBrushNodesCount >> leafsBrushNodesPtr >> mNumLeafBrushes >> leafBrushesPtr >> mNumLeafSurfaces >> leafSurfacesPtr >> mVertCount >> vertPtr1 >> vertPtr2 >> vertPtr3 >> mTriCount >> triIndicesPtr >> triEdgeWalkablePtr >> mBorderCount >> bordersPtr >> mPartitionCount >> partitionsPtr >> mAabbTreeCount >> aabbTreesPtr >> mNumSubModels >> cModelsPtr >> mNumBrushes; aStream->skipRawData(2); qint32 brushesPtr, visibilityPtr, mapEntsPtr, boxBrushPtr; *aStream >> brushesPtr >> mNumClusters >> mClusterBytes >> visibilityPtr >> mVised >> mapEntsPtr >> boxBrushPtr; mBoxModel.ParseData(aStream); quint16 dynEntCount; *aStream >> dynEntCount; mDynEntCounts.append(dynEntCount); *aStream >> dynEntCount; mDynEntCounts.append(dynEntCount); mDynEntDefList[0].ParsePtr(aStream, false); mDynEntDefList[0].ParsePtr(aStream, false); mDynEntPoseList[0].ParsePtr(aStream, false); mDynEntPoseList[0].ParsePtr(aStream, false); mDynEntClientList[0].ParsePtr(aStream, false); mDynEntClientList[0].ParsePtr(aStream, false); mDynEntCollList[0].ParsePtr(aStream, false); mDynEntCollList[0].ParsePtr(aStream, false); *aStream >> mChecksum; if (planePtr) { for (int i = 0; i < mPlaneCount; i++) { XCPlane newCPlane; newCPlane.ParseData(aStream); mPlanes.append(newCPlane); } } if (staticModelPtr) { for (int i = 0; i < mNumStaticModels; i++) { XCStaticModel newModel; newModel.ParseData(aStream); mStaticModelList.append(newModel); } } if (materialsPtr) { for (int i = 0; i < mNumMaterials; i++) { XDMaterial newDMaterial; newDMaterial.ParseData(aStream); mMaterials.append(newDMaterial); } } if (brushSidesPtr) { for (int i = 0; i < mNumBrushSides; i++) { XCBrushSide newBrushSide; newBrushSide.ParseData(aStream); mBrushsides.append(newBrushSide); } } if (brushEdgesPtr) { for (int i = 0; i < mNumBrushEdges; i++) { quint8 newBrushEdge; *aStream >> newBrushEdge; mBrushEdges.append(newBrushEdge); } } if (nodesPtr) { for (int i = 0; i < mNumNodes; i++) { XCNode newNode; newNode.ParseData(aStream); mNodes.append(newNode); } } if (leafsPtr) { for (int i = 0; i < mNumLeafs; i++) { XCLeaf newLeaf; newLeaf.ParseData(aStream); mLeafs.append(newLeaf); } } if (leafBrushesPtr) { for (int i = 0; i < mNumLeafBrushes; i++) { quint32 newBrush; *aStream >> newBrush; mLeafBrushes.append(newBrush); } } if (leafsBrushNodesPtr) { for (int i = 0; i < mNumLeafBrushes; i++) { XCLeafBrushNode newBrushNode; newBrushNode.ParseData(aStream); mLeafBrushNodes.append(newBrushNode); } } // mLeafsurfaces() // mVerts() // mTriIndices() // mTriEdgeIsWalkable() // mBorders() // mPartitions() // mAabbTrees() // mCodels() // mBrushes() // mVisibility() // mMapEnts() // mBoxBrush() // mBoxModel() // mDynEntCount(0) // mDynEntDefList() // mDynEntPoseList() // mDynEntClientList() // mDynEntCollList() } } void XClipMap::Clear() { }