コード例 #1
0
        public void SaveAllGfx()
        {
            for (int i = 0; i < 223; i++)
            {
                byte[] sdata = new byte[0x800];
                unsafe
                {
                    byte *gdata = (byte *)GFX.allgfx16Ptr.ToPointer();
                    for (int j = 0; j < 0x800; j++)
                    {
                        sdata[j] = gdata[(i * 0x800) + j];
                    }

                    if (GFX.isbpp3[i])
                    {
                        if (modifiedSheets[i] != null)
                        {
                            gfxSheets3bpp[i]  = modifiedSheets[i];
                            modifiedSheets[i] = null;
                        }
                        else
                        {
                            gfxSheets3bpp[i] = GFX.pc4bppto3bppsnes(sdata);
                        }
                    }
                    else
                    {
                        if (modifiedSheets[i] != null)
                        {
                            //Console.WriteLine(i.ToString() + " Sheet has been modified");
                            gfxSheets3bpp[i]  = modifiedSheets[i];
                            modifiedSheets[i] = null;
                        }
                        else
                        {
                            int compressedSize = 0;
                            gfxSheets3bpp[i] = ZCompressLibrary.Decompress.ALTTPDecompressGraphics(ROM.DATA, GFX.GetPCGfxAddress(ROM.DATA, (byte)i), 0x800, ref compressedSize);
                        }
                    }
                }
            }

            Console.WriteLine("Reached");
            recompressAllGfx();
        }