Beispiel #1
0
        public override void OnRebuild(VoidPtr address, int length, bool force)
        {
            PLT0v1 *header = (PLT0v1 *)address;

            *header = new PLT0v1(Palette.Entries.Length, _format);

            TextureConverter.EncodePalette(address + 0x40, Palette, _format);
        }
Beispiel #2
0
        protected internal override void PostProcess(VoidPtr bresAddress, VoidPtr dataAddress, int dataLength, StringTable stringTable)
        {
            base.PostProcess(bresAddress, dataAddress, dataLength, stringTable);

            PLT0v1 *header = (PLT0v1 *)dataAddress;

            header->ResourceStringAddress = stringTable[Name] + 4;
            if (!String.IsNullOrEmpty(_originalPath))
            {
                header->OrigPathAddress = stringTable[_originalPath] + 4;
            }
        }
Beispiel #3
0
        public static ColorPalette DecodePalette(PLT0v1 *palette)
        {
            int          count = palette->_numEntries;
            ColorPalette pal   = ColorPaletteExtension.CreatePalette(ColorPaletteFlags.HasAlpha, count);

            switch (palette->PaletteFormat)
            {
            case WiiPaletteFormat.IA8:
            {
                IA8Pixel *sPtr = (IA8Pixel *)palette->PaletteData;
                for (int i = 0; i < count; i++)
                {
                    pal.Entries[i] = (Color)sPtr[i];
                }

                break;
            }

            case WiiPaletteFormat.RGB565:
            {
                wRGB565Pixel *sPtr = (wRGB565Pixel *)palette->PaletteData;
                for (int i = 0; i < count; i++)
                {
                    pal.Entries[i] = (Color)sPtr[i];
                }

                break;
            }

            case WiiPaletteFormat.RGB5A3:
            {
                wRGB5A3Pixel *sPtr = (wRGB5A3Pixel *)palette->PaletteData;
                for (int i = 0; i < count; i++)
                {
                    pal.Entries[i] = (Color)(ARGBPixel)sPtr[i];
                }

                break;
            }
            }

            return(pal);
        }
Beispiel #4
0
        public static FileMap EncodePLT0Palette(ColorPalette pal, WiiPaletteFormat format)
        {
            FileMap fileView = FileMap.FromTempFile((pal.Entries.Length * 2) + 0x40);

            try
            {
                PLT0v1 *header = (PLT0v1 *)fileView.Address;
                *       header = new PLT0v1(pal.Entries.Length, format);

                EncodePalette(fileView.Address + 0x40, pal, format);
                return(fileView);
            }
            catch (Exception x)
            {
                fileView.Dispose();
                throw;
                //MessageBox.Show(x.ToString());
                //fileView.Dispose();
                //return null;
            }
        }
Beispiel #5
0
 public static Bitmap DecodeIndexed(TEX0v1 *texture, PLT0v1 *palette, int mipLevel)
 {
     return(Get(texture->PixelFormat).DecodeTextureIndexed(texture, palette, mipLevel));
 }
Beispiel #6
0
 public virtual Bitmap DecodeTextureIndexed(TEX0v1 *texture, PLT0v1 *palette, int mipLevel)
 {
     return(DecodeTextureIndexed(texture, DecodePalette(palette), mipLevel));
 }