Esempio n. 1
0
 private static Color[] LoadPalette(StructInstance instance)
 {
     var colorCount = instance.EvaluateSymbol("PaletteColors").ToInt32(CultureInfo.CurrentCulture);
     instance.Stream.Seek(instance.Offset + 6, SeekOrigin.Begin);
     var result = new Color[colorCount+4];
     result[0] = Color.FromArgb(0, 0, 0);
     result[1] = Color.FromArgb(0x54, 0x54, 0x54);
     result[2] = Color.FromArgb(0xb4, 0xb4, 0xb4);
     result[3] = Color.FromArgb(0xff, 0xff, 0xff);
     for(int i=0; i<colorCount; i++)
     {
         int r = instance.Stream.ReadByte();
         int g = instance.Stream.ReadByte();
         int b = instance.Stream.ReadByte();
         instance.Stream.Seek(3, SeekOrigin.Current);
         result[i+4] = Color.FromArgb(r*4, g*4, b*4);
     }
     return result;
 }