Ejemplo n.º 1
0
 public void Clear()
 {
     this.amb_header = (AppMain.AMS_AMB_HEADER)null;
     this.tex_buf    = (AppMain.NNS_TEXFILELIST)null;
     this.texlistbuf = (object)null;
     this.texlist    = (AppMain.NNS_TEXLIST)null;
     this.texId      = this.regId = this.drawFlag = 0;
 }
Ejemplo n.º 2
0
 public static int amTextureLoad(
     AppMain.NNS_TEXLIST texlist,
     AppMain.NNS_TEXFILELIST texfilelist,
     string filepath)
 {
     AppMain.mppAssertNotImpl();
     return(AppMain.amTextureLoad(texlist, texfilelist, filepath, (AppMain.AMS_AMB_HEADER)null));
 }
Ejemplo n.º 3
0
    // Token: 0x06000CF5 RID: 3317 RVA: 0x00074804 File Offset: 0x00072A04
    public static void AoTexLoad(AppMain.AOS_TEXTURE tex)
    {
        if (tex == null || tex.txb == null || tex.amb == null || tex.reg_id >= 0)
        {
            return;
        }
        uint num = AppMain.amTxbGetCount(tex.txb);

        AppMain.nnSetUpTexlist(out tex.texlist, ( int )num, ref tex.texlist_buf);
        AppMain.NNS_TEXFILELIST texfilelist = AppMain.amTxbGetTexFileList(tex.txb);
        tex.reg_id = AppMain.amTextureLoad(tex.texlist, texfilelist, null, tex.amb);
    }
Ejemplo n.º 4
0
        // Token: 0x06001FB7 RID: 8119 RVA: 0x0013D0FC File Offset: 0x0013B2FC
        public static AppMain.NNS_TEXFILELIST Read(BinaryReader reader, long data0Pos)
        {
            AppMain.NNS_TEXFILELIST nns_TEXFILELIST = new AppMain.NNS_TEXFILELIST();
            nns_TEXFILELIST.nTex         = reader.ReadInt32();
            nns_TEXFILELIST.pTexFileList = new AppMain.NNS_TEXFILE[nns_TEXFILELIST.nTex];
            uint num = reader.ReadUInt32();

            reader.BaseStream.Seek(data0Pos + ( long )(( ulong )num), 0);
            for (int i = 0; i < nns_TEXFILELIST.nTex; i++)
            {
                nns_TEXFILELIST.pTexFileList[i] = AppMain.NNS_TEXFILE.Read(reader, data0Pos);
            }
            return(nns_TEXFILELIST);
        }
Ejemplo n.º 5
0
        public static AppMain.NNS_TEXFILELIST Read(BinaryReader reader, long data0Pos)
        {
            AppMain.NNS_TEXFILELIST nnsTexfilelist = new AppMain.NNS_TEXFILELIST()
            {
                nTex = reader.ReadInt32()
            };
            nnsTexfilelist.pTexFileList = new AppMain.NNS_TEXFILE[nnsTexfilelist.nTex];
            uint num = reader.ReadUInt32();

            reader.BaseStream.Seek(data0Pos + (long)num, SeekOrigin.Begin);
            for (int index = 0; index < nnsTexfilelist.nTex; ++index)
            {
                nnsTexfilelist.pTexFileList[index] = AppMain.NNS_TEXFILE.Read(reader, data0Pos);
            }
            return(nnsTexfilelist);
        }
    // Token: 0x06001148 RID: 4424 RVA: 0x000974D0 File Offset: 0x000956D0
    private static int amObjectLoad(out AppMain.NNS_OBJECT _object, AppMain.NNS_TEXFILELIST txbfilelist, out AppMain.NNS_TEXLIST texlist, out object texlistbuf, object buf, uint drawflag, string filepath, AMS_AMB_HEADER amb)
    {
        AppMain.NNS_OBJECT      obj_file;
        AppMain.NNS_TEXFILELIST nns_TEXFILELIST;
        AppMain.amObjectSetup(out obj_file, out nns_TEXFILELIST, buf);
        int nTex = txbfilelist.nTex;

        texlistbuf = null;
        AppMain.nnSetUpTexlist(out texlist, nTex, ref texlistbuf);
        int result = AppMain.amObjectLoad(out _object, obj_file, drawflag);

        if (filepath != null || amb != null)
        {
            result = AppMain.amTextureLoad(texlist, txbfilelist, filepath, amb);
        }
        return(result);
    }
Ejemplo n.º 7
0
    // Token: 0x06001860 RID: 6240 RVA: 0x000DB6A8 File Offset: 0x000D98A8
    public static int amTextureLoad(AppMain.NNS_TEXLIST texlist, AppMain.NNS_TEXFILELIST texfilelist, string filepath, AppMain.AMS_AMB_HEADER amb)
    {
        int result = 0;

        AppMain.ArrayPointer <AppMain.NNS_TEXINFO> pointer  = new AppMain.ArrayPointer <AppMain.NNS_TEXINFO>(texlist.pTexInfoList);
        AppMain.ArrayPointer <AppMain.NNS_TEXFILE> pointer2 = new AppMain.ArrayPointer <AppMain.NNS_TEXFILE>(texfilelist.pTexFileList);
        int i = texfilelist.nTex;

        while (i > 0)
        {
            if (amb == null)
            {
                result = AppMain.amTextureLoad(pointer, pointer2, filepath, null, 0);
            }
            else
            {
                string text = (~pointer2).Filename;
                int    num  = text.LastIndexOf(".pvr", StringComparison.OrdinalIgnoreCase);
                if (num > 0)
                {
                    text  = text.Remove(num);
                    text += ".PNG";
                }
                num = Array.IndexOf <string>(amb.files, text);
                Texture2D texture2D;
                if (amb.buf[num] != null)
                {
                    texture2D = ( Texture2D )amb.buf[num];
                }
                else
                {
                    using (MemoryStream memoryStream = new MemoryStream(amb.data, amb.offsets[num], amb.data.Length - amb.offsets[num]))
                    {
                        texture2D    = Texture2D.FromStream(AppMain.m_game.GraphicsDevice, memoryStream);
                        amb.buf[num] = texture2D;
                    }
                }
                result = AppMain.amTextureLoad(pointer, pointer2, filepath, texture2D, 0);
            }
            i--;
            pointer  = ++pointer;
            pointer2 = ++pointer2;
        }
        return(result);
    }
    // Token: 0x06001145 RID: 4421 RVA: 0x000972F4 File Offset: 0x000954F4
    public static void amObjectSetup(out AppMain.NNS_OBJECT _object, out AppMain.NNS_TEXFILELIST texfilelist, object _buf)
    {
        _object     = null;
        texfilelist = null;
        AmbChunk ambChunk = (AmbChunk)_buf;

        using (MemoryStream memoryStream = new MemoryStream(ambChunk.array, ambChunk.offset, ambChunk.array.Length - ambChunk.offset))
        {
            BinaryReader binaryReader = new BinaryReader(memoryStream);
            AppMain.NNS_BINCNK_FILEHEADER nns_BINCNK_FILEHEADER = AppMain.NNS_BINCNK_FILEHEADER.Read(binaryReader);
            long num;
            binaryReader.BaseStream.Seek(num = (long)nns_BINCNK_FILEHEADER.OfsData, 0);
            AppMain.NNS_BINCNK_DATAHEADER nns_BINCNK_DATAHEADER = AppMain.NNS_BINCNK_DATAHEADER.Read(binaryReader);
            long num2 = num;
            binaryReader.BaseStream.Seek((long)nns_BINCNK_FILEHEADER.OfsNOF0, 0);
            AppMain.NNS_BINCNK_NOF0HEADER.Read(binaryReader);
            int i = nns_BINCNK_FILEHEADER.nChunk;
            while (i > 0)
            {
                uint id = nns_BINCNK_DATAHEADER.Id;
                // NIOB/NZOB (little endian)
                if (id != 0x424F494E && id != 0x424F5A4E)
                {
                    if (id == 1145980238U)
                    {
                        break;
                    }
                    if (id == 1280592206U || id == 0x4C545A4e)
                    {
                        binaryReader.BaseStream.Seek(num2 + (long)nns_BINCNK_DATAHEADER.OfsMainData, 0);
                        texfilelist = AppMain.NNS_TEXFILELIST.Read(binaryReader, num2);
                    }
                }
                else
                {
                    binaryReader.BaseStream.Seek(num2 + (long)nns_BINCNK_DATAHEADER.OfsMainData, 0);
                    _object = AppMain.NNS_OBJECT.Read(binaryReader, num2);
                }
                i--;
                binaryReader.BaseStream.Seek(num += (long)(8 + nns_BINCNK_DATAHEADER.OfsNextId), 0);
                nns_BINCNK_DATAHEADER             = AppMain.NNS_BINCNK_DATAHEADER.Read(binaryReader);
            }
        }
    }
Ejemplo n.º 9
0
    public static void amObjectSetup(
        out AppMain.NNS_OBJECT _object,
        out AppMain.NNS_TEXFILELIST texfilelist,
        object _buf)
    {
        _object     = (AppMain.NNS_OBJECT)null;
        texfilelist = (AppMain.NNS_TEXFILELIST)null;
        AppMain.AmbChunk ambChunk = (AppMain.AmbChunk)_buf;
        using (MemoryStream memoryStream = new MemoryStream(ambChunk.array, ambChunk.offset, ambChunk.array.Length - ambChunk.offset))
        {
            BinaryReader reader = new BinaryReader((Stream)memoryStream);
            AppMain.NNS_BINCNK_FILEHEADER bincnkFileheader = AppMain.NNS_BINCNK_FILEHEADER.Read(reader);
            long ofsData;
            reader.BaseStream.Seek(ofsData = (long)bincnkFileheader.OfsData, SeekOrigin.Begin);
            AppMain.NNS_BINCNK_DATAHEADER bincnkDataheader = AppMain.NNS_BINCNK_DATAHEADER.Read(reader);
            long data0Pos = ofsData;
            reader.BaseStream.Seek((long)bincnkFileheader.OfsNOF0, SeekOrigin.Begin);
            AppMain.NNS_BINCNK_NOF0HEADER.Read(reader);
            int nChunk = bincnkFileheader.nChunk;
            while (nChunk > 0)
            {
                switch (bincnkDataheader.Id)
                {
                case 1112492366:
                    reader.BaseStream.Seek(data0Pos + (long)bincnkDataheader.OfsMainData, SeekOrigin.Begin);
                    _object = AppMain.NNS_OBJECT.Read(reader, data0Pos);
                    break;

                case 1145980238:
                    return;

                case 1280592206:
                    reader.BaseStream.Seek(data0Pos + (long)bincnkDataheader.OfsMainData, SeekOrigin.Begin);
                    texfilelist = AppMain.NNS_TEXFILELIST.Read(reader, data0Pos);
                    break;
                }
                --nChunk;
                reader.BaseStream.Seek(ofsData += (long)(8 + bincnkDataheader.OfsNextId), SeekOrigin.Begin);
                bincnkDataheader = AppMain.NNS_BINCNK_DATAHEADER.Read(reader);
            }
        }
    }
Ejemplo n.º 10
0
    private static int amObjectLoad(
        out AppMain.NNS_OBJECT _object,
        AppMain.NNS_TEXFILELIST txbfilelist,
        out AppMain.NNS_TEXLIST texlist,
        out object texlistbuf,
        object buf,
        uint drawflag,
        string filepath,
        AppMain.AMS_AMB_HEADER amb)
    {
        AppMain.NNS_OBJECT _object1;
        AppMain.amObjectSetup(out _object1, out AppMain.NNS_TEXFILELIST _, buf);
        int nTex = txbfilelist.nTex;

        texlistbuf = (object)null;
        AppMain.nnSetUpTexlist(out texlist, nTex, ref texlistbuf);
        int num = AppMain.amObjectLoad(out _object, _object1, drawflag);

        if (filepath != null || amb != null)
        {
            num = AppMain.amTextureLoad(texlist, txbfilelist, filepath, amb);
        }
        return(num);
    }
    // Token: 0x06001860 RID: 6240 RVA: 0x000DB6A8 File Offset: 0x000D98A8
    public static int amTextureLoad(AppMain.NNS_TEXLIST texlist, AppMain.NNS_TEXFILELIST texfilelist, string filepath, AMS_AMB_HEADER amb)
    {
        int result = 0;

        AppMain.ArrayPointer <AppMain.NNS_TEXINFO> pointer  = new AppMain.ArrayPointer <AppMain.NNS_TEXINFO>(texlist.pTexInfoList);
        AppMain.ArrayPointer <AppMain.NNS_TEXFILE> pointer2 = new AppMain.ArrayPointer <AppMain.NNS_TEXFILE>(texfilelist.pTexFileList);
        int i = texfilelist.nTex;

        while (i > 0)
        {
            if (amb == null)
            {
                result = AppMain.amTextureLoad(pointer, pointer2, filepath, null, 0);
            }
            else
            {
                string fileName = (~pointer2).Filename;
                fileName = Path.ChangeExtension(fileName, "PNG");
                var       num       = Math.Max(Array.IndexOf(amb.files, fileName), Array.IndexOf(amb.files, (~pointer2).Filename));
                Texture2D texture2D = null;
                if (amb.buf.ElementAtOrDefault(num) != null)
                {
                    texture2D = (Texture2D)amb.buf[num];
                }
                else
                {
                    var dir  = Path.Combine(Directory.GetCurrentDirectory(), "ExternalTextures");
                    var path = Path.Combine(dir, fileName);
                    if (File.Exists(path))
                    {
                        using (var file = File.OpenRead(path))
                        {
                            texture2D    = Texture2D.FromStream(AppMain.m_game.GraphicsDevice, file);
                            amb.buf[num] = texture2D;
                        }
                    }
                    else
                    {
                        using (var memoryStream = new MemoryStream(amb.data, amb.offsets[num], amb.data.Length - amb.offsets[num]))
                        {
                            if (Directory.Exists(dir))
                            {
                                using (var file = File.Create(path))
                                {
                                    memoryStream.CopyTo(file);
                                    memoryStream.Seek(0, SeekOrigin.Begin);
                                }
                            }

                            texture2D    = Texture2D.FromStream(AppMain.m_game.GraphicsDevice, memoryStream);
                            amb.buf[num] = texture2D;
                        }
                    }
                }
                result = AppMain.amTextureLoad(pointer, pointer2, filepath, texture2D, 0);
            }
            i--;
            pointer  = ++pointer;
            pointer2 = ++pointer2;
        }
        return(result);
    }
Ejemplo n.º 12
0
    public static int amTextureLoad(
        AppMain.NNS_TEXLIST texlist,
        AppMain.NNS_TEXFILELIST texfilelist,
        string filepath,
        AppMain.AMS_AMB_HEADER amb)
    {
        int num = 0;

        AppMain.ArrayPointer <AppMain.NNS_TEXINFO> arrayPointer1 = new AppMain.ArrayPointer <AppMain.NNS_TEXINFO>(texlist.pTexInfoList);
        AppMain.ArrayPointer <AppMain.NNS_TEXFILE> arrayPointer2 = new AppMain.ArrayPointer <AppMain.NNS_TEXFILE>(texfilelist.pTexFileList);
        int nTex = texfilelist.nTex;

        while (nTex > 0)
        {
            if (amb == null)
            {
                num = AppMain.amTextureLoad((AppMain.NNS_TEXINFO)arrayPointer1, (AppMain.NNS_TEXFILE)arrayPointer2, filepath, (Texture2D)null, 0);
            }
            else
            {
                Texture2D texbuf;
                try
                {
                    string str        = ((AppMain.NNS_TEXFILE) ~arrayPointer2).Filename;
                    int    startIndex = str.LastIndexOf(".pvr", StringComparison.OrdinalIgnoreCase);
                    if (startIndex > 0)
                    {
                        str = str.Remove(startIndex) + ".PNG";
                    }
                    int index = Array.IndexOf <string>(amb.files, str);
                    if (amb.buf[index] != null)
                    {
                        texbuf = (Texture2D)amb.buf[index];
                    }
                    else
                    {
                        using (MemoryStream memoryStream = new MemoryStream(amb.data, amb.offsets[index], amb.data.Length - amb.offsets[index]))
                        {
                            texbuf         = Texture2D.FromStream(AppMain.m_game.GraphicsDevice, (Stream)memoryStream);
                            amb.buf[index] = (object)texbuf;
                        }
                    }
                }
                catch (Exception)
                {
                    string str   = ((AppMain.NNS_TEXFILE) ~arrayPointer2).Filename;
                    int    index = Array.IndexOf <string>(amb.files, str);
                    using (var stream = File.OpenRead("Content/dummy.png"))
                    {
                        texbuf         = Texture2D.FromStream(AppMain.m_game.GraphicsDevice, (Stream)stream);
                        amb.buf[index] = (object)texbuf;
                    }
                }

                num = AppMain.amTextureLoad((AppMain.NNS_TEXINFO)arrayPointer1, (AppMain.NNS_TEXFILE)arrayPointer2, filepath, texbuf, 0);
            }
            --nTex;
            ++arrayPointer1;
            ++arrayPointer2;
        }
        return(num);
    }