CSPspEmu.Hle.Formats.audio.At3.MaiAT3PlusCoreDecoder.MAPCDSF_splitePack1_Route2 C# (CSharp) Метод

MAPCDSF_splitePack1_Route2() статический приватный Метод

static private MAPCDSF_splitePack1_Route2 ( MaiBitReader mbr0, MaiAT3PlusCoreDecoderChnInfo chn_info ) : int
mbr0 MaiBitReader
chn_info MaiAT3PlusCoreDecoderChnInfo
Результат int
        static int MAPCDSF_splitePack1_Route2(MaiBitReader mbr0, MaiAT3PlusCoreDecoderChnInfo chn_info)
        {
            int rs = 0;

            int l5 = 0;

            if (0 == chn_info.acc_table_now.inner.unk1 )
            {
                for (uint a0 = 0; a0 < (uint)chn_info.acc_table_now.inner.unk2; a0++)
                {
                    if (chn_info.inner_pack_table0_check_table[a0] != 0)
                    {
                        if (chn_info.acc_table_now.table[a0].num_uk > 0)
                        {
                            int atmp0 = (int)MAPCDSF_getHuffValue(MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_huff_table_global_17[0], mbr0);

                            if ((atmp0 & 0x10) != 0)
                            {
                                atmp0 |= unchecked((int)0xFFFFFFE0);
                            }
                            else
                            {
                                atmp0 &= 0x1F;
                            }

                            if ( chn_info.chn_ref.acc_table_now.table[a0].num_uk > 0  )
                            {
                                chn_info.acc_table_now.table[a0].ptr0[0].unk0 = chn_info.chn_ref.acc_table_now.table[a0].ptr0[0].unk0 + atmp0;
                            }
                            else
                            {
                                chn_info.acc_table_now.table[a0].ptr0[0].unk0 = 0x2C + atmp0;
                            }

                            chn_info.acc_table_now.table[a0].ptr0[0].unk0 &= 0x3F;

                            for (int a1 = 1; a1 < chn_info.acc_table_now.table[a0].num_uk; a1++)
                            {
                                chn_info.acc_table_now.table[a0].ptr0[a1].unk0 = chn_info.acc_table_now.table[a0].ptr0[a1 - 1].unk0;
                            }
                        }
                    }
                }
            }
            else
            {
                for (uint a0 = 0; a0 < (uint)chn_info.acc_table_now.inner.unk2; a0++)
                {
                    if (chn_info.inner_pack_table0_check_table[a0] != 0)
                    {
                        for (int a1 = 0; a1 < chn_info.acc_table_now.table[a0].num_uk; a1++)
                        {
                            int atmp0 = (int)MAPCDSF_getHuffValue(MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_huff_table_global_17[0], mbr0);

                            if ((atmp0 & 0x10) != 0)
                            {
                                atmp0 |= unchecked((int)0xFFFFFFE0);
                            }
                            else
                            {
                                atmp0 &= 0x1F;
                            }

                            if (chn_info.joint_chn_info.table11c[l5 + a1] >= 0)
                            {
                                chn_info.acc_table_now.table[a0].ptr0[a1].unk0 = chn_info.chn_ref.acc_table_now.table[a0].ptr0[chn_info.joint_chn_info.table11c[l5 + a1]].unk0 + atmp0;
                            }
                            else
                            {
                                chn_info.acc_table_now.table[a0].ptr0[a1].unk0 = 0x22 + atmp0;
                            }

                            chn_info.acc_table_now.table[a0].ptr0[a1].unk0 &= 0x3F;
                        }

                        l5 += chn_info.acc_table_now.table[a0].num_uk;
                    }
                }
            }

            return rs;
        }
MaiAT3PlusCoreDecoder