public static Bitmap DrawZone(Zone zone, ZoneLayers layersToDraw) { Bitmap b = new Bitmap(zone.Width * SpriteMgr.SW, zone.Height * SpriteMgr.SH); Graphics g = Graphics.FromImage(b); g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver; for (int x = 0; x < zone.Width; x++) { for (int y = 0; y < zone.Height; y++) { if ((layersToDraw & ZoneLayers.One) == ZoneLayers.One) { g.DrawImage(SpriteMgr.GetSprite(zone.Cells[x,y].SpriteOne), y*SpriteMgr.SW, x*SpriteMgr.SH, SpriteMgr.SW, SpriteMgr.SH); } if ((layersToDraw & ZoneLayers.Two) == ZoneLayers.Two) { g.DrawImage(SpriteMgr.GetSprite(zone.Cells[x,y].SpriteTwo), y*SpriteMgr.SW, x*SpriteMgr.SH, SpriteMgr.SW, SpriteMgr.SH); } if ((layersToDraw & ZoneLayers.Three) == ZoneLayers.Three) { g.DrawImage(SpriteMgr.GetSprite(zone.Cells[x,y].SpriteThree), y*SpriteMgr.SW, x*SpriteMgr.SH, SpriteMgr.SW, SpriteMgr.SH); } } } return b; }
public void SetThings(Zone zone) { this.zone = zone; lbIactIndex.Items.Clear(); lbIactIndex.Items.AddRange(Enumerable.Range(0, zone.Iacts.Length).Select(i => i.ToString()).ToArray()); if (lbIactIndex.Items.Count > 0) { lbIactIndex.SelectedIndex = 0; } }
void LbZoneIndexSelectedIndexChanged(object sender, EventArgs e) { if (lbZoneIndex.SelectedIndex < 0 || lbZoneIndex.SelectedIndex >= zoneOffsets.Length) return; yodesk.Seek((lbZoneIndex.SelectedItem as ZoneListEntry).offset, SeekOrigin.Begin); this.Text = (lbZoneIndex.SelectedItem as ZoneListEntry).index.ToString(); zone = new Zone(yodesk); btnShowIacts.Text = string.Format("IACTs: {0}", zone.Iacts.Length); tbZZ.Text = zone.DebugDescription(); RenderZone(); }