コード例 #1
0
ファイル: LoadDataTest.cs プロジェクト: yole/structorian
        [Test] public void FieldId()
        {
            StructInstance instance = PrepareInstance(
                "struct A { i8 \"Long nice name\" [id=q]; }",
                new byte[] { 17 });

            Assert.AreEqual(17, instance.EvaluateSymbol("q"));
        }
コード例 #2
0
ファイル: LoadDataTest.cs プロジェクト: yole/structorian
        [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"));
        }
コード例 #3
0
ファイル: ArtDecoder.cs プロジェクト: hongha1412/structorian
        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);
        }