public override void Parse(GameBitBuffer buffer) { nMaxNodes = buffer.ReadInt(32); nMaxLeaves = buffer.ReadInt(32); nMaxPrimitives = buffer.ReadInt(32); nNodeCount = buffer.ReadInt(32); nLeafCount = buffer.ReadInt(32); nPrimitiveCount = buffer.ReadInt(32); serNodes = new SerializeData(); serNodes.Parse(buffer); //still checking variablearrays this.Nodes = new List<OctreeNode>( buffer.ReadInt(0) ); for(int loop12 = 0; loop12 < _Nodes.Count; loop12++) { _Nodes[loop12] = new OctreeNode(); _Nodes[loop12].Parse(buffer); } serLeaves = new SerializeData(); serLeaves.Parse(buffer); //still checking variablearrays this.Leaves = new List<OctreeLeaf>( buffer.ReadInt(0) ); for(int loop12 = 0; loop12 < _Leaves.Count; loop12++) { _Leaves[loop12] = new OctreeLeaf(); _Leaves[loop12].Parse(buffer); } serPrimitives = new SerializeData(); serPrimitives.Parse(buffer); //still checking variablearrays this.Primitives = new List<OctreePrimitive>( buffer.ReadInt(0) ); for(int loop12 = 0; loop12 < _Primitives.Count; loop12++) { _Primitives[loop12] = new OctreePrimitive(); _Primitives[loop12].Parse(buffer); } }
public void FileRead(MpqFileStream stream, long offset) { stream.Position = offset + 0; nMaxNodes = stream.ReadValueS32(); stream.Position = offset + 4; nMaxLeaves = stream.ReadValueS32(); stream.Position = offset + 8; nMaxPrimitives = stream.ReadValueS32(); stream.Position = offset + 12; nNodeCount = stream.ReadValueS32(); stream.Position = offset + 16; nLeafCount = stream.ReadValueS32(); stream.Position = offset + 20; nPrimitiveCount = stream.ReadValueS32(); stream.Position = offset + 24; serNodes = new SerializeData(); serNodes.FileRead(stream, stream.Position); stream.Position = offset + 32; //still checking variablearrays Nodes = new List<OctreeNode>(); for(int i = 0; i < (int)(serNodes.Field1 / 48); i++) { stream.Position = serNodes.Field0 + 16 + (48*i) ; OctreeNode temp12_Nodes; temp12_Nodes = new OctreeNode(); temp12_Nodes.FileRead(stream, stream.Position); _Nodes.Add(temp12_Nodes); } stream.Position = offset + 40; serLeaves = new SerializeData(); serLeaves.FileRead(stream, stream.Position); stream.Position = offset + 48; //still checking variablearrays Leaves = new List<OctreeLeaf>(); for(int i = 0; i < (int)(serLeaves.Field1 / 24); i++) { stream.Position = serLeaves.Field0 + 16 + (24*i) ; OctreeLeaf temp12_Leaves; temp12_Leaves = new OctreeLeaf(); temp12_Leaves.FileRead(stream, stream.Position); _Leaves.Add(temp12_Leaves); } stream.Position = offset + 56; serPrimitives = new SerializeData(); serPrimitives.FileRead(stream, stream.Position); stream.Position = offset + 64; //still checking variablearrays Primitives = new List<OctreePrimitive>(); for(int i = 0; i < (int)(serPrimitives.Field1 / 8); i++) { stream.Position = serPrimitives.Field0 + 16 + (8*i) ; OctreePrimitive temp12_Primitives; temp12_Primitives = new OctreePrimitive(); temp12_Primitives.FileRead(stream, stream.Position); _Primitives.Add(temp12_Primitives); } }