Exemplo n.º 1
0
        public override int Read()
        {
            var int32_1 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            ColoredConsole.WriteLine("{0:x8}       Name: {1}", (object)iPos, (object)readString(int32_1));
            var int32_2 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            var intList = new List <int>();

            for (var index = 0; index < int32_2; ++index)
            {
                BigEndianBitConverter.ToInt16(fileData, iPos);
                iPos += 2;
                var int32_3 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                intList.Add(int32_3);
            }
            var int32_4 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index1 = 0; index1 < int32_4; ++index1)
            {
                var group = new Group();
                BigEndianBitConverter.ToInt16(fileData, iPos);
                iPos += 2;
                var int32_3 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                for (var index2 = 0; index2 < int32_3; ++index2)
                {
                    var int32_5 = BigEndianBitConverter.ToInt32(fileData, iPos);
                    ColoredConsole.WriteWarn("{0}; ", (object)int32_5);
                    iPos += 4;
                    group.Material.Add(int32_5);
                }
                ColoredConsole.WriteLine();
                var int32_6 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                for (var index2 = 0; index2 < int32_6; ++index2)
                {
                    var int32_5 = BigEndianBitConverter.ToInt32(fileData, iPos);
                    ColoredConsole.WriteDebug("{0} --> {1}; ", (object)int32_5, (object)intList[int32_5]);
                    iPos += 4;
                    group.Parts.Add(intList[int32_5]);
                }
                ColoredConsole.WriteLine();
                Groups.Add(group);
            }
            ColoredConsole.WriteLineError("{0:x8}", (object)iPos);
            return(iPos);
        }
Exemplo n.º 2
0
        public override int Read()
        {
            var int32_1 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            readString(int32_1);
            iPos += 4;
            var int32_2 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            var intList1 = new List <int>();

            for (var index = 0; index < int32_2; ++index)
            {
                var int16 = BigEndianBitConverter.ToInt16(fileData, iPos);
                iPos += 2;
                var int32_3 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                intList1.Add(int32_3);
                if (int16 == (short)-19712)
                {
                    ColoredConsole.WriteLineDebug("{0} --> {1}", (object)index, (object)int32_3);
                }
            }
            iPos += 4;
            var int32_4 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            var intListList = new List <List <int> >();

            for (var index1 = 0; index1 < int32_4; ++index1)
            {
                var intList2 = new List <int>();
                BigEndianBitConverter.ToInt16(fileData, iPos);
                iPos += 2;
                var int32_3 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                for (var index2 = 0; index2 < int32_3; ++index2)
                {
                    BigEndianBitConverter.ToInt32(fileData, iPos);
                    iPos += 4;
                }
                var int32_5 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                for (var index2 = 0; index2 < int32_5; ++index2)
                {
                    var int32_6 = BigEndianBitConverter.ToInt32(fileData, iPos);
                    iPos += 4;
                    intList2.Add(intList1[int32_6]);
                }
                intListList.Add(intList2);
            }
            iPos += 4;
            var int32_7 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            iPos += 2 * int32_7;
            iPos += 4;
            var int32_8 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            iPos += 4 * int32_8;
            iPos += 4;
            var int32_9 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_9; ++index)
            {
                var int32_3 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                readStringAt(int32_3 + 1443);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 4), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 8), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 16), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 20), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 24), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 32), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 36), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 40), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 48) * 262.0, 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 52) * 262.0, 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 56) * 262.0, 4);
                iPos += 64;
                iPos += 16;
                iPos += 4;
                iPos += 16;
                iPos += 4;
                iPos += 80;
                var int32_5 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                iPos += 4 * int32_5;
                BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                iPos += 4;
                iPos += 4;
            }
            iPos += 4;
            iPos += 5;
            iPos += 4;
            var int32_10 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_10; ++index)
            {
                iPos += 16;
            }
            iPos += 4;
            var int32_11 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_11; ++index)
            {
                iPos += 16;
            }
            iPos += 4;
            var int32_12 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_12; ++index)
            {
                iPos += 44;
            }
            iPos += 4;
            ColoredConsole.WriteLineError("{0:x8}", (object)iPos);
            return(iPos);
        }
Exemplo n.º 3
0
        public override int Read()
        {
            iPos += 4;
            var int32_1 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            var intList = new List <int>();

            for (var index = 0; index < int32_1; ++index)
            {
                var int16 = BigEndianBitConverter.ToInt16(fileData, iPos);
                iPos += 2;
                var int32_2 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                if (int16 == (short)-19712)
                {
                    intList.Add(int32_2);
                }
            }
            iPos += 4;
            var int32_3 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_3; ++index)
            {
                var int16 = BigEndianBitConverter.ToInt16(fileData, iPos);
                iPos += 2;
                iPos += 8 * (int)int16;
            }
            iPos += 4;
            var int32_4 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_4; ++index)
            {
                var int16 = BigEndianBitConverter.ToInt16(fileData, iPos);
                iPos += 2;
                iPos += (int)int16;
                iPos += 64;
                iPos += 56;
                iPos += 20;
            }
            iPos += 4;
            iPos += 4;
            iPos += 4;
            var int32_5 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_5; ++index)
            {
                iPos += 16;
            }
            iPos += 4;
            var int32_6 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_6; ++index)
            {
                iPos += 16;
            }
            iPos += 4;
            var int32_7 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_7; ++index)
            {
                iPos += 64;
            }
            iPos += 4;
            iPos += 4;
            iPos += 4;
            var int32_8 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_8; ++index)
            {
                iPos += 4;
            }
            iPos += 4;
            var int32_9 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_9; ++index)
            {
                var num1 = Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 4), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 8), 4);
                var num2 = Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 12), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 16), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 20), 4);
                var num3 = Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 24), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 28), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 32), 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 36) * 262.0, 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 40) * 262.0, 4);
                Math.Round((double)BigEndianBitConverter.ToSingle(fileData, iPos + 44) * 262.0, 4);
                var num4 = 16;
                if (num1 == 1.0 && num2 == 0.0 && num3 == 0.0)
                {
                    num4 = 1;
                }
                if (num1 == -1.0 && num2 == 0.0 && num3 == 0.0)
                {
                    num4 = 2;
                }
                if (num1 == 0.0 && num2 == 0.0 && num3 == 1.0)
                {
                    num4 = 3;
                }
                if (num1 == 0.0 && num2 == 0.0 && num3 == -1.0)
                {
                    num4 = 5;
                }
                iPos += 48;
            }
            ColoredConsole.WriteLineError("{0:x8}", (object)iPos);
            return(iPos);
        }
Exemplo n.º 4
0
        public override int Read()
        {
            var int32_1 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            ColoredConsole.WriteLine("{0:x8}       Name: {1}", (object)iPos, (object)readString(int32_1));
            iPos += 4;
            var int32_2 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            var intList = new List <int>();

            for (var index = 0; index < int32_2; ++index)
            {
                var int16 = BigEndianBitConverter.ToInt16(fileData, iPos);
                iPos += 2;
                var int32_3 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                if (int16 == (short)-19712)
                {
                    intList.Add(int32_3);
                }
            }
            iPos += 4;
            var int32_4 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_4; ++index)
            {
                BigEndianBitConverter.ToInt16(fileData, iPos);
                iPos += 2;
                var int32_3 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                iPos += 4 * int32_3;
                var int32_5 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                iPos += 4 * int32_5;
            }
            iPos += 4;
            var int32_6 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            iPos += 2 * int32_6;
            iPos += 4;
            var int32_7 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            iPos += 4 * int32_7;
            iPos += 4;
            var int32_8 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_8; ++index)
            {
                iPos += 4;
                iPos += 64;
                iPos += 16;
                iPos += 4;
                iPos += 16;
                iPos += 4;
                iPos += 80;
                var int32_3 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                iPos += 4 * int32_3;
                iPos += 12;
            }
            iPos += 4;
            iPos += 5;
            iPos += 4;
            var int32_9 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_9; ++index)
            {
                iPos += 16;
            }
            iPos += 4;
            var int32_10 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_10; ++index)
            {
                iPos += 16;
            }
            iPos += 4;
            var int32_11 = BigEndianBitConverter.ToInt32(fileData, iPos);

            iPos += 4;
            for (var index = 0; index < int32_11; ++index)
            {
                iPos += 44;
            }
            iPos += 4;
            ColoredConsole.WriteLineError("{0:x8}", (object)iPos);
            return(iPos);
        }
Exemplo n.º 5
0
        protected virtual int ReadRelativePositionList(byte lastByte)
        {
            var int32_1 = BigEndianBitConverter.ToInt32(fileData, iPos);

            if (int32_1 != 0)
            {
                ColoredConsole.WriteLineError("{0:x8}       Relative Position Lists iUnk1 = {1:x8} (!= 0)", (object)iPos, (object)int32_1);
            }
            iPos += 4;
            var num1 = 1;
            var num2 = 0;

            while (BigEndianBitConverter.ToInt32(fileData, iPos) != 0)
            {
                ColoredConsole.WriteLine("{0:x8}       Count 4 Number of Relative Position Lists: 0x{1:x8} 0x{2:x8}", (object)iPos, (object)BigEndianBitConverter.ToInt32(fileData, iPos), (object)BigEndianBitConverter.ToInt32(fileData, iPos + 4));
                iPos += 8;
                ++num1;
            }
            ColoredConsole.WriteLine("{0:x8}       Number of Relative Position Lists: 0x{1:x8}", (object)iPos, (object)num1);
            var int32_2 = BigEndianBitConverter.ToInt32(fileData, iPos);

            if (int32_2 != 0)
            {
                ColoredConsole.WriteLineError("{0:x8}       Relative Position Lists iUnk2 = {1:x8} (!= 0)", (object)iPos, (object)int32_2);
            }
            iPos += 4;
            for (var index = 0; index < num1; ++index)
            {
                var int32_3 = BigEndianBitConverter.ToInt32(fileData, iPos);
                iPos += 4;
                if (int32_3 != 0)
                {
                    ColoredConsole.WriteLine("{0:x8}       Number of Relative Positions: 0x{1:x8}", (object)iPos, (object)int32_3);
                    iPos += int32_3 * 12;
                }
                else
                {
                    ColoredConsole.WriteLineError("{0:x8}       Number of Relative Positions unknown: 0x{1:x8}", (object)iPos, (object)0);
                }
                int num3;
                if (lastByte == byte.MaxValue)
                {
                    iPos += 5;
                    num3  = num2 + 1;
                }
                else
                {
                    var int16 = (int)BigEndianBitConverter.ToInt16(fileData, iPos);
                    if (int16 != 0)
                    {
                        ColoredConsole.WriteLineError("{0:x8}       Relative Position Lists iUnk3a = {1:x4} (!= 0)", (object)iPos, (object)int16);
                    }
                    iPos += 2;
                    var int32_4 = BigEndianBitConverter.ToInt32(fileData, iPos);
                    if (int32_4 != 1)
                    {
                        ColoredConsole.WriteLineError("{0:x8}       Relative Position Lists iUnk3b = {1:x8} (!= 1)", (object)iPos, (object)int32_4);
                    }
                    else
                    {
                        ++num2;
                    }
                    iPos += 4;
                    var int32_5 = BigEndianBitConverter.ToInt32(fileData, iPos);
                    ColoredConsole.WriteLine("{0:x8}       Number of Relative Position Tupels: 0x{1:x8}", (object)iPos, (object)int32_5);
                    iPos += 4;
                    iPos += 4 * int32_5;
                    num3  = num2 + 1;
                }
                num2 = num3 + 1;
            }
            return(num2);
        }