Beispiel #1
0
        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.DefaultExt  = "pal";
            openFileDialog.Filter      = "Palette Files (SCI or Microsfot RIFF)|*.pal";
            openFileDialog.Multiselect = false;
            openFileDialog.Title       = "Select a SCI or Microsoft Palette.";

            DialogResult r = openFileDialog.ShowDialog();

            if (r == System.Windows.Forms.DialogResult.Cancel)
            {
                return;
            }

            if (File.Exists(openFileDialog.FileName))
            {
                try
                {
                    byte[]  buffer = File.ReadAllBytes(openFileDialog.FileName);
                    PalType type   = PaletteTools.GetType(buffer);
                    paletteControl1.CellWidth  = 25;
                    paletteControl1.CellHeight = 25;
                    paletteControl1.FontSize   = 4;
                    paletteControl1.ShowPalette(PaletteTools.Load(buffer, type));
                    paletteControl1.Refresh();
                }
                catch (Exception ex) { MessageBox.Show(string.Format("{0} : {1}", ex.Message, ex.StackTrace)); }
            }
            else
            {
                MessageBox.Show("Unknown Error");
            }
        }
Beispiel #2
0
        public static Color[] Load(byte[] buffer, PalType type, out short firstColor, out bool isTripleColors)
        {
            firstColor     = 0;
            isTripleColors = true;
            switch (type)
            {
            case PalType.SCI: return(LoadSCIPalette(buffer, out firstColor, out isTripleColors));

            case PalType.Microsoft: return(LoadMicrosoftPalette(buffer));

            case PalType.Bitmap: return(LoadBMPPalette(buffer));

            case PalType.SCI1: return(LoadSCIPalette(buffer, type, out firstColor, out isTripleColors));

            default: return(new Color[0]);
            }
        }
Beispiel #3
0
        public static Color[] Load(byte[] buffer, PalType type)
        {
            short first = 0;
            bool  trip  = false;

            switch (type)
            {
            case PalType.SCI: return(LoadSCIPalette(buffer, out first, out trip));

            case PalType.Microsoft: return(LoadMicrosoftPalette(buffer));

            case PalType.Bitmap: return(LoadBMPPalette(buffer));

            case PalType.SCI1: return(LoadSCIPalette(buffer, type, out first, out trip));

            default: return(new Color[0]);
            }
        }
Beispiel #4
0
        public static Color[] LoadSCIPalette(byte[] buffer, PalType type, out short firstColor, out bool isTripleColors)
        {
            FileReader   r      = new FileReader(buffer);
            List <Color> colors = new List <Color>();

            firstColor     = 0;
            isTripleColors = true;

            switch (type)
            {
            case PalType.SCI1:
            {
                // Starts with a 256 byte block, hex values counting from 0 to 255
                r.ReadBytes(256);
                r.ReadInt32();                     //bs
                firstColor = (short)r.ReadInt32(); // is this really a int everywhere ?

                for (int i = 0; i < firstColor; i++)
                {
                    colors.Add(Color.Black);
                }
                //colors[11] = fi
                for (int i = firstColor; i < 256; i++)
                {
                    // this is a flagbit
                    // 0    The entry is used
                    // 4    Another color has been inexactly mapped to this one
                    int flag = r.ReadByte();
                    // rgb colors
                    int red   = r.ReadByte();
                    int green = r.ReadByte();
                    int blue  = r.ReadByte();

                    colors.Add(Color.FromArgb(red, green, blue));
                }
            }
            break;

            default: break;
            }
            r.Close();
            return(colors.ToArray());
        }
Beispiel #5
0
        /// <summary>
        /// Opens and loads selected PAL file in the palBox
        /// </summary>
        private void OpenPal()
        {
            if (File.Exists(palFile))
            {
                palette.Clear();
                try
                {
                    byte[]  buffer = File.ReadAllBytes(palFile);
                    PalType type   = PaletteTools.GetType(buffer);
                    if (type == PalType.Unknown)
                    {
                        MessageBox.Show(string.Format("Unknown Type {0}", BitConverter.ToInt32(buffer, 0).ToString("X2")));
                        return;
                    }
                    LoadedColors    = PaletteTools.Load(buffer, type);
                    palInfoLbl.Text = string.Format("Palette type - {0}, {1} Colors", type, LoadedColors.Length);
                    this.Text       = defaultTxt + " - " + palFile;
                    paletteControl1.ShowPalette(LoadedColors);
                    ShowPalette(LoadedColors);
                }
                catch (Exception ex) { MessageBox.Show(ex.Message); }
            }
            else
            {
                MessageBox.Show("Unknown Error");
            }

            // Enable save
            if (picBox.Image != null)
            {
                saveAsBtn.Enabled      = true;
                saveAsFileMenu.Enabled = true;
            }
            else
            {
                saveAsBtn.Enabled      = false;
                saveAsFileMenu.Enabled = false;
            }
        }
 /// <summary>
 /// Opens and loads selected PAL file in the palBox
 /// </summary>
 private void OpenPal(string palFile)
 {
     if (File.Exists(palFile))
     {
         this.PaletteRects.Clear();
         try
         {
             byte[]  buffer = File.ReadAllBytes(palFile);
             PalType type   = PaletteTools.GetType(buffer);
             if (type == PalType.Unknown)
             {
                 MessageBox.Show(string.Format("Unknown Type {0}", BitConverter.ToInt32(buffer, 0).ToString("X2")));
                 return;
             }
             this.CurrentLoadedType = type;
             ShowPalette(PaletteTools.Load(buffer, type));
         }
         catch (Exception ex) { MessageBox.Show(ex.Message); }
     }
     else
     {
         MessageBox.Show("Unknown Error");
     }
 }
Beispiel #7
0
 public static extern void gambatte_setdmgpalettecolor(IntPtr core, PalType palnum, uint colornum, uint rgb32);
Beispiel #8
0
		public static extern void gambatte_setdmgpalettecolor(IntPtr core, PalType palnum, uint colornum, uint rgb32);
Beispiel #9
0
 /// <summary>
 /// Lets us know when our palette control loads a palette
 /// </summary>
 /// <param name="type"></param>
 /// <param name="colors"></param>
 private void paletteControl1_OnPaletteLoaded(PalType type, Color[] colors)
 {
     palInfoLbl.Text = string.Format("Palette type - {0}, {1} Colors", type, colors.Length);
     // Do we have a picture ? if not load us in the big screen too
     // hm i dunno if i wanna do that, but maybe
 }