예제 #1
0
        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);
        }
예제 #2
0
        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
            });
        }