예제 #1
0
        public override int vmethod_4(OGGClass6 class71_0, object object_0, object object_1, float[] float_1)
        {
            Class32 @class   = (Class32)object_0;
            Class31 class31_ = @class.class31_0;
            int     num      = class71_0.oggClass1.oggClass5.int_13[class71_0.int_4] / 2;

            if (object_1 != null)
            {
                int[] array = (int[])object_1;
                int   num2  = 0;
                int   int_  = 0;
                int   int_2 = array[0] * class31_.int_6;
                for (int i = 1; i < @class.int_6; i++)
                {
                    int num3 = @class.int_2[i];
                    int num4 = array[num3] & 32767;
                    if (num4 == array[num3])
                    {
                        num4 *= class31_.int_6;
                        num2  = class31_.int_7[num3];
                        Class29.smethod_1(int_, num2, int_2, num4, float_1);
                        int_  = num2;
                        int_2 = num4;
                    }
                }
                for (int j = num2; j < num; j++)
                {
                    float_1[j] *= float_1[j - 1];
                }
                return(1);
            }
            for (int k = 0; k < num; k++)
            {
                float_1[k] = 0f;
            }
            return(0);
        }
예제 #2
0
        public override object vmethod_3(OGGClass6 class71_0, object object_0, object object_1)
        {
            Class32 @class   = (Class32)object_0;
            Class31 class31_ = @class.class31_0;

            OGGClass4[] class21_ = class71_0.oggClass1.oggClass4;
            if (class71_0.oggClass3.method_6(1) == 1)
            {
                int[] array = null;
                if (object_1 is int[])
                {
                    array = (int[])object_1;
                }
                if (array != null && array.Length >= @class.int_6)
                {
                    for (int i = 0; i < array.Length; i++)
                    {
                        array[i] = 0;
                    }
                }
                else
                {
                    array = new int[@class.int_6];
                }
                array[0] = class71_0.oggClass3.method_6(Class29.smethod_2(@class.int_8 - 1));
                array[1] = class71_0.oggClass3.method_6(Class29.smethod_2(@class.int_8 - 1));
                int j   = 0;
                int num = 2;
                while (j < class31_.int_0)
                {
                    int num2 = class31_.int_1[j];
                    int num3 = class31_.int_2[num2];
                    int num4 = class31_.int_3[num2];
                    int num5 = 1 << num4;
                    int num6 = 0;
                    if (num4 != 0)
                    {
                        num6 = class21_[class31_.int_4[num2]].method_4(class71_0.oggClass3);
                        if (num6 == -1)
                        {
                            return(null);
                        }
                    }
                    for (int k = 0; k < num3; k++)
                    {
                        int num7 = class31_.int_5[num2][num6 & num5 - 1];
                        num6 = (int)((uint)num6 >> num4);
                        if (num7 >= 0)
                        {
                            if ((array[num + k] = class21_[num7].method_4(class71_0.oggClass3)) == -1)
                            {
                                return(null);
                            }
                        }
                        else
                        {
                            array[num + k] = 0;
                        }
                    }
                    num += num3;
                    j++;
                }
                for (int l = 2; l < @class.int_6; l++)
                {
                    int num8  = Class29.smethod_0(class31_.int_7[@class.int_5[l - 2]], class31_.int_7[@class.int_4[l - 2]], array[@class.int_5[l - 2]], array[@class.int_4[l - 2]], class31_.int_7[l]);
                    int num9  = @class.int_8 - num8;
                    int num10 = num8;
                    int num11 = ((num9 < num10) ? num9 : num10) << 1;
                    int num12 = array[l];
                    if (num12 != 0)
                    {
                        if (num12 >= num11)
                        {
                            if (num9 > num10)
                            {
                                num12 -= num10;
                            }
                            else
                            {
                                num12 = -1 - (num12 - num9);
                            }
                        }
                        else if ((num12 & 1) != 0)
                        {
                            num12 = (int)(-(int)((ulong)((uint)(num12 + 1) >> 1)));
                        }
                        else
                        {
                            num12 >>= 1;
                        }
                        array[l] = num12 + num8;
                        array[@class.int_5[l - 2]] &= 32767;
                        array[@class.int_4[l - 2]] &= 32767;
                    }
                    else
                    {
                        array[l] = (num8 | 32768);
                    }
                }
                return(array);
            }
            return(null);
        }