Beispiel #1
0
        internal virtual void ImportBitmap8bpp(Stream iso, string filename)
        {
            AbstractSprite sprite = GetAbstractSpriteFromIso(iso);

            byte[]    importBytes       = System.IO.File.ReadAllBytes(filename);
            const int totalPaletteBytes = 512;

            byte[] originalPaletteBytes = Position.AddOffset(0, totalPaletteBytes - Position.Length).ReadIso(iso);
            sprite.ImportBitmap8bpp(importBytes, originalPaletteBytes);
            byte[] sprBytes = sprite.ToByteArray(0);

            byte[] newPaletteBytes = sprite.GetPaletteBytes(sprite.Palettes, originalPaletteBytes, Palette.ColorDepth._16bit).ToArray();
            Array.Copy(newPaletteBytes, sprBytes, totalPaletteBytes);

            if (sprBytes.Length > Size)
            {
                throw new SpriteTooLargeException(sprBytes.Length, (int)Size);
            }

            ImportSprite(iso, sprBytes);
        }
        internal override void ImportBitmap8bpp(Stream iso, string filename)
        {
            AbstractSprite sprite = GetAbstractSpriteFromIso(iso);

            byte[]    importBytes       = System.IO.File.ReadAllBytes(filename);
            const int totalPaletteBytes = 512;

            byte[] originalPaletteBytes = Position.AddOffset(0, totalPaletteBytes - Position.Length).ReadIso(iso);
            sprite.ImportBitmap8bpp(importBytes, originalPaletteBytes);

            byte[] sprBytes = sprite.ToByteArray(0);
            if (sprBytes.Length > Size)
            {
                throw new SpriteTooLargeException(sprBytes.Length, (int)Size);
            }

            //System.IO.File.WriteAllBytes(@"spr8.bin", sprBytes);    // DEBUG
            ImportSprite(iso, sprBytes);
            for (int i = 0; i < NumChildren; i++)
            {
                //System.IO.File.WriteAllBytes(@"sp2_8.bin", sprite.ToByteArray(i + 1));    // DEBUG
                ImportSp2(iso, sprite.ToByteArray(i + 1), i);
            }
        }