// Token: 0x060009BB RID: 2491 RVA: 0x00057148 File Offset: 0x00055348
    private static void DmLoadingBuild(AMS_FS arc_amb)
    {
        AppMain.dm_loading_mgr_p = new AppMain.DMS_LOADING_MGR();
        AppMain.dm_loading_tex   = new AppMain.AOS_TEXTURE[1];
        for (int i = 0; i < 1; i++)
        {
            AppMain.dm_loading_tex[i] = new AppMain.AOS_TEXTURE();
        }

        for (int i = 0; i < 1; i++)
        {
            string dir = null;
            AppMain.dm_loading_ama[i] = A2S.readAMAFile(AmBind.Get(arc_amb, 0, out dir));
            dir = null;
            AppMain.dm_loading_amb[i]     = AmFs.readAMBFile(AmBind.Get(arc_amb, 1, out dir));
            AppMain.dm_loading_amb[i].dir = dir;
        }

        for (int i = 0; i < 1; i++)
        {
            AppMain.AoTexBuild(AppMain.dm_loading_tex[i], AppMain.dm_loading_amb[i]);
            AppMain.AoTexLoad(AppMain.dm_loading_tex[i]);
        }
    }
Ejemplo n.º 2
0
    public static void amFsExecuteBackgroundRead()
    {
        if (ams_fsList.Count > 0)
        {
            AMS_FS value = ams_fsList.First.Value;
            if (value.stream == null)
            {
                var stream = TitleContainer.OpenStream("Content\\" + value.file_name);
                value.stream   = new MemoryStream();
                value.readTask = stream.CopyToAsync(value.stream);
            }

            if (value.readTask != null && !value.readTask.IsCompleted)
            {
                return;
            }

            value.data            = (value.stream as MemoryStream).ToArray();
            value.stream.Position = 0L;

            using (BinaryReader binaryReader = new BinaryReader(value.stream))
            {
                // 23 41 4D 42
                var tmp = binaryReader.ReadInt32();
                if (tmp == 0x424d4123)
                {
                    binaryReader.BaseStream.Seek(12, SeekOrigin.Current);
                    value.count = binaryReader.ReadInt32();
                    var entryTableOffset = binaryReader.ReadInt32();
                    binaryReader.BaseStream.Seek(4, SeekOrigin.Current);
                    var stringTableOffset = binaryReader.ReadInt32();

                    value.files   = new string[value.count];
                    value.types   = new sbyte[value.count];
                    value.offsets = new int[value.count];
                    value.lengths = new int[value.count];
                    value.flag    = new sbyte[0];
                    for (int i = 0; i < value.count; i++)
                    {
                        binaryReader.BaseStream.Seek(entryTableOffset + (i * 0x10), SeekOrigin.Begin);
                        value.offsets[i] = binaryReader.ReadInt32();
                        value.lengths[i] = binaryReader.ReadInt32();

                        binaryReader.BaseStream.Seek(stringTableOffset + (i * 0x20), SeekOrigin.Begin);
                        value.files[i] = readChars(binaryReader);
                    }
                }
                else
                {
                    value.count   = tmp;
                    value.files   = new string[value.count];
                    value.types   = new sbyte[value.count];
                    value.offsets = new int[value.count];
                    value.lengths = new int[value.count];
                    int num2 = binaryReader.ReadInt32();
                    value.flag = new sbyte[num2];
                    for (int i = 0; i < num2; i++)
                    {
                        value.flag[i] = binaryReader.ReadSByte();
                    }

                    for (int j = 0; j < value.count; j++)
                    {
                        value.files[j] = binaryReader.ReadString();
                        value.types[j] = binaryReader.ReadSByte();
                    }

                    for (int k = 0; k < value.count; k++)
                    {
                        value.offsets[k] = binaryReader.ReadInt32();
                    }

                    for (int l = 0; l < value.count; l++)
                    {
                        value.lengths[l] = binaryReader.ReadInt32();
                    }
                }
            }

            value.makeAmbHeader();
            value.stat   = 3;
            value.stream = null;
            ams_fsList.RemoveFirst();
            if (value.callback != null)
            {
                value.callback(value);
            }
        }
    }