[Test] public void FieldId() { StructInstance instance = PrepareInstance( "struct A { i8 \"Long nice name\" [id=q]; }", new byte[] { 17 }); Assert.AreEqual(17, instance.EvaluateSymbol("q")); }
[Test] public void HiddenField() { StructInstance instance = PrepareInstance( "struct A { [hidden] u8 a; u8 b; }", new byte[] { 17, 37 }); Assert.AreEqual(1, instance.Cells.Count); Assert.AreEqual("37", instance.Cells[0].Value); Assert.AreEqual(17, instance.EvaluateSymbol("a")); }
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); }