protected override int GetIndexListReference(ref int referencecounter) { int num; if (fileData[iPos] == (byte)192) { num = (int)BigEndianBitConverter.ToInt16(fileData, iPos + 2); ColoredConsole.WriteLine("{0:x8} Index List Reference to 0x{1:x4}", (object)iPos, (object)num); iPos += 4; ColoredConsole.WriteLine("{0:x8} Unknown 0x{1:x8}", (object)iPos, (object)BigEndianBitConverter.ToInt32(fileData, iPos)); iPos += 4; } else { ColoredConsole.WriteLineWarn("{0:x8} New Index List 0x{1:x4}", (object)iPos, (object)referencecounter); ColoredConsole.WriteLine("{0:x8} Unknown 0x{1:x8}", (object)iPos, (object)BigEndianBitConverter.ToInt32(fileData, iPos)); iPos += 4; ColoredConsole.WriteLine("{0:x8} Unknown 0x{1:x8}", (object)iPos, (object)BigEndianBitConverter.ToInt32(fileData, iPos)); iPos += 4; var int32 = BigEndianBitConverter.ToInt32(fileData, iPos); ColoredConsole.WriteLine("{0:x8} Number of Indices: {1:x8}", (object)iPos, (object)int32); iPos += 4; ColoredConsole.WriteLine("{0:x8} Unknown 0x{1:x8}", (object)iPos, (object)BigEndianBitConverter.ToInt32(fileData, iPos)); iPos += 4; var ushortList = new List <ushort>(); for (var index = 0; index < int32; ++index) { ushortList.Add(BigEndianBitConverter.ToUInt16(fileData, iPos)); iPos += 2; } Indexlistsdictionary.Add(referencecounter, ushortList); num = referencecounter++; } return(num); }
protected virtual VertexListReference GetVertexListReference( ref int referencecounter, out int offset) { int num; if (fileData[iPos] == (byte)192) { num = (int)BigEndianBitConverter.ToInt16(fileData, iPos + 2); ColoredConsole.WriteLineWarn("{0:x8} Vertex List Reference to 0x{1:x4}", (object)iPos, (object)num); iPos += 4; ColoredConsole.WriteLine("{0:x8} Unknown 0x{1:x8}", (object)iPos, (object)BigEndianBitConverter.ToInt32(fileData, iPos)); iPos += 4; offset = BigEndianBitConverter.ToInt32(fileData, iPos); ColoredConsole.WriteLine("{0:x8} Offset 0x{1:x8}", (object)iPos, (object)offset); iPos += 4; } else { ColoredConsole.WriteLineWarn("{0:x8} New Vertex List 0x{1:x4}", (object)iPos, (object)referencecounter); ColoredConsole.WriteLine("{0:x8} Unknown 0x{1:x8}", (object)iPos, (object)BigEndianBitConverter.ToInt32(fileData, iPos)); iPos += 4; ColoredConsole.WriteLine("{0:x8} Unknown 0x{1:x8}", (object)iPos, (object)BigEndianBitConverter.ToInt32(fileData, iPos)); iPos += 4; var int32 = BigEndianBitConverter.ToInt32(fileData, iPos); iPos += 4; var vertexList = ReadVertexList(int32); offset = BigEndianBitConverter.ToInt32(fileData, iPos); ColoredConsole.WriteLine("{0:x8} Offset 0x{1:x8}", (object)iPos, (object)offset); iPos += 4; Vertexlistsdictionary.Add(referencecounter, vertexList); num = referencecounter++; } return(new VertexListReference() { GlobalOffset = 0, Reference = num }); }