// Picture private void picture_Paint(object sender, PaintEventArgs e) { this.ownerForm.Layer = this.Layer; if (tilesetImage == null) { return; } e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor; Rectangle rdst = new Rectangle(0, 0, 256, height); if (toggleBG.Checked) { e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(PaletteSet.Palette[16])), rdst); } e.Graphics.DrawImage(tilesetImage, rdst, 0, 0, 256, height, GraphicsUnit.Pixel); if (moving && selection != null) { Rectangle rsrc = new Rectangle(0, 0, overlay.SelectTS.Width, overlay.SelectTS.Height); rdst = new Rectangle( overlay.SelectTS.X * zoom, overlay.SelectTS.Y * zoom, rsrc.Width * zoom, rsrc.Height * zoom); e.Graphics.DrawImage(new Bitmap(selection), rdst, rsrc, GraphicsUnit.Pixel); Do.DrawString(e.Graphics, new Point(rdst.X, rdst.Y + rdst.Height), "click/drag", Color.White, Color.Black, new Font("Tahoma", 6.75F, FontStyle.Bold)); } float[][] matrixItems = { new float[] { 1, 0, 0, 0, 0 }, new float[] { 0, 1, 0, 0, 0 }, new float[] { 0, 0, 1, 0, 0 }, new float[] { 0, 0, 0, 0.50F, 0 }, new float[] { 0, 0, 0, 0, 1 } }; ColorMatrix cm = new ColorMatrix(matrixItems); ImageAttributes ia = new ImageAttributes(); ia.SetColorMatrix(cm, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); if (priority1 != null && toggleP1.Checked) { e.Graphics.DrawImage(priority1, rdst, 0, 0, 256, height, GraphicsUnit.Pixel, ia); } if (mouseEnter) { Point location = new Point(mousePosition.X / 16 * 16 * zoom, mousePosition.Y / 16 * 16 * zoom); overlay.DrawHoverBox(e.Graphics, location, new Size(16 * zoom, 16 * zoom), zoom, true); } if (Rails) { overlay.DrawRailProperties(null, 16, 16, e.Graphics, 1); } if (toggleTileGrid.Checked) { overlay.DrawTileGrid(e.Graphics, Color.Gray, Picture.Size, new Size(16, 16), 1, true); } if (overlay.SelectTS != null) { overlay.SelectTS.DrawSelectionBox(e.Graphics, 1); } }