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()); }
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; }
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; }
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); }
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; }
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)); }
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)); } }
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; }
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); }