public override void Init(Dictionary<string, string> data)
 {
     img = ObjectHelper.UnknownObject;
     List<Sprite> sprs = new List<Sprite>();
     int left = -208;
     int right = 208;
     int top = 0;
     int bottom = 0;
     for (int i = 0; i < Obj06_CosineTable.Length; i++)
     {
         top = Math.Min(Obj06_CosineTable[i], top);
         bottom = Math.Max(Obj06_CosineTable[i], bottom);
     }
     Point offset = new Point(left, top);
     BitmapBits bmp = new BitmapBits(right - left, bottom - top);
     for (int x = 0; x < 0x1A0; x++)
     {
         int y = Obj06_CosineTable[x] - top;
         if (x < bmp.Width & y >= 0 & y < bmp.Height)
             bmp[x, y] = 0x1C;
     }
     sprs.Add(new Sprite(bmp, offset));
     offset = new Point(-192, 0);
     bmp = new BitmapBits(0x180, 53);
     bmp.DrawLine(0x1C, 192, 0, 192, 52);
     bmp.DrawLine(0x1C, 0, 52, 0x180, 52);
     sprs.Add(new Sprite(bmp, offset));
     sprs.Add(img);
     sprite = new Sprite(sprs.ToArray());
 }
Пример #2
0
 public override Sprite GetSprite(ObjectEntry obj)
 {
     int st = -(((obj.SubType & 0x1F) * img.Width) / 2) + img.X;
     List<Sprite> sprs = new List<Sprite>();
     for (int i = 0; i < (obj.SubType & 0x1F); i++)
         sprs.Add(new Sprite(img.Image, new Point(st + (i * img.Width), img.Y)));
     Sprite spr = new Sprite(sprs.ToArray());
     spr.Offset = new Point(spr.X + obj.X, spr.Y + obj.Y);
     return spr;
 }
Пример #3
0
 public override Sprite GetSprite(ObjectEntry obj)
 {
     int w = ((obj.SubType >> 4) + 1) * 16;
     int h = ((obj.SubType & 0xF) + 1) * 16;
     BitmapBits bmp = new BitmapBits(w, h);
     bmp.DrawRectangle(0x1C, 0, 0, w - 1, h - 1);
     Sprite spr = new Sprite(new Sprite(bmp, new Point(-(w / 2), -(h / 2))), img);
     spr.Offset = new Point(spr.X + obj.X, spr.Y + obj.Y);
     return spr;
 }
Пример #4
0
 public override void Init(Dictionary<string, string> data)
 {
     if (data.ContainsKey("art"))
     {
         byte[] artfile = ObjectHelper.OpenArtFile(data["art"], (Compression.CompressionType)Enum.Parse(typeof(Compression.CompressionType), data.GetValueOrDefault("artcmp", "Nemesis")));
         if (data.ContainsKey("map"))
             img = ObjectHelper.MapToBmp(artfile, Compression.Decompress(data["map"], (Compression.CompressionType)Enum.Parse(typeof(Compression.CompressionType), data.GetValueOrDefault("mapcmp", "Uncompressed"))), int.Parse(data["frame"], System.Globalization.NumberStyles.Integer, System.Globalization.CultureInfo.InvariantCulture), int.Parse(data.GetValueOrDefault("pal", "0"), System.Globalization.NumberStyles.Integer, System.Globalization.CultureInfo.InvariantCulture));
         else if (data.ContainsKey("mapasm"))
             img = ObjectHelper.MapASMToBmp(artfile, data["mapasm"], data["mapasmlbl"], int.Parse(data.GetValueOrDefault("pal", "0"), System.Globalization.NumberStyles.Integer, System.Globalization.CultureInfo.InvariantCulture));
     }
     spacing = int.Parse(data.GetValueOrDefault("spacing", "24"), System.Globalization.NumberStyles.Integer, System.Globalization.NumberFormatInfo.InvariantInfo);
 }
Пример #5
0
 public override Sprite GetSprite(S2RingEntry rng)
 {
     List<Sprite> sprs = new List<Sprite>();
     for (int i = 0; i < rng.Count; i++)
     {
         switch (rng.Direction)
         {
             case SonicRetro.SonLVL.Direction.Horizontal:
                 sprs.Add(new Sprite(img.Image, new Point(img.X + (i * spacing), img.Y)));
                 break;
             case SonicRetro.SonLVL.Direction.Vertical:
                 sprs.Add(new Sprite(img.Image, new Point(img.X, img.Y + (i * spacing))));
                 break;
         }
     }
     Sprite spr = new Sprite(sprs.ToArray());
     spr.Offset = new Point(spr.X + rng.X, spr.Y + rng.Y);
     return spr;
 }
Пример #6
0
 public override void Init(Dictionary<string, string> data)
 {
     List<byte> tmpartfile = new List<byte>();
     tmpartfile.AddRange(ObjectHelper.OpenArtFile("../General/Sprites/Monitors/Monitors.bin", Compression.CompressionType.Nemesis));
     tmpartfile.AddRange(new byte[0x6200 - tmpartfile.Count]);
     tmpartfile.AddRange(ObjectHelper.OpenArtFile("../General/Sprites/HUD Icon/Sonic life icon.bin", Compression.CompressionType.Nemesis));
     byte[] artfile = tmpartfile.ToArray();
     img = ObjectHelper.MapASMToBmp(artfile, "../General/Sprites/Monitors/Map - Monitor.asm", 0, 0);
     for (int i = 0; i < 11; i++)
         imgs.Add(ObjectHelper.MapASMToBmp(artfile, "../General/Sprites/Monitors/Map - Monitor.asm", i + 1, 0));
 }
Пример #7
0
        public override void Init(Dictionary<string, string> data)
        {
            List<byte> tmpartfile = new List<byte>();
            tmpartfile.AddRange(ObjectHelper.OpenArtFile("Common/pathswapper-art.bin", Compression.CompressionType.Nemesis));
            byte[] mapfile = System.IO.File.ReadAllBytes("../mappings/sprite/obj03.bin");
            byte[] artfile1 = tmpartfile.ToArray();
            img = ObjectHelper.MapToBmp(artfile1, mapfile, 0, 1);
            Point off;
            BitmapBits im;
            Point pos;
            Size delta;
            for (int i = 0; i < 32; i++)
            {
                byte[] artfile = tmpartfile.GetRange(((i & 0x1C) << 5), 128).ToArray();
                BitmapBits tempim = ObjectHelper.MapToBmp(artfile, mapfile, (i & 4), 0).Image;
                if ((i & 4) != 0)
                {
                    im = new BitmapBits(tempim.Width * (1 << (i & 3)), tempim.Height);
                    delta = new Size(tempim.Width, 0);
                }
                else
                {
                    im = new BitmapBits(tempim.Width, tempim.Height * (1 << (i & 3)));
                    delta = new Size(0, tempim.Height);
                }

                pos = new Point(0, 0);
                off = new Point(-(im.Width / 2), -(im.Height / 2));
                for (int j = 0; j < (1 << (i & 3)); j++)
                {
                    im.DrawBitmap(tempim, pos);
                    pos = pos + delta;
                }
                imgs.Add(new Sprite(im, off));
            }
        }
Пример #8
0
 public override Sprite GetSprite(ObjectEntry obj)
 {
     Sprite spr = new Sprite(imgs[obj.SubType & 0x1F].Image, imgs[obj.SubType & 0x1F].Offset);
     spr.Offset = new Point(obj.X + spr.X, obj.Y + spr.Y);
     return spr;
 }
Пример #9
0
 public override void Init(Dictionary<string, string> data)
 {
     byte[] artfile = ObjectHelper.OpenArtFile("../art/nemesis/EHZ bridge.bin", Compression.CompressionType.Nemesis);
     byte[] mapfile = System.IO.File.ReadAllBytes("../mappings/sprite/obj11_b.bin");
     img = ObjectHelper.MapToBmp(artfile, mapfile, 0, 2);
 }