コード例 #1
0
        private void cmdResize_Click(object sender, EventArgs e)
        {
            uint RepointOffset = 0;
            int  Width         = Convert.ToUInt16(txtWidth.Text, DEC);
            int  Height        = Convert.ToUInt16(txtHeight.Text, DEC);

            if (Width == CurrentMap.Width && Height == CurrentMap.Height)
            {
                return;
            }

            if (Width > CurrentMap.Width || Height > CurrentMap.Height) // Repoint necessary
            {
                using (frmFreeSpaceFinder FreeSpaceFinder = new frmFreeSpaceFinder(CurrentROM, Width * Height * 2, 2, true, TaskDialogSupported))
                {
                    FreeSpaceFinder.ShowDialog();
                    RepointOffset = FreeSpaceFinder.ReturnOffset;
                }

                if (RepointOffset == 0)
                {
                    txtWidth.Text  = CurrentMap.Width.ToString();
                    txtHeight.Text = CurrentMap.Height.ToString();
                    return;
                }
            }

            Maps.Resize(CurrentROM, RepointOffset, Width, Height, CurrentMap);
            txtMapTileData.Text = Convert.ToString(CurrentMap.MapData, HEX);

            DrawMap(); // Redraw map
        }
コード例 #2
0
        private void cmdResizeBorder_Click(object sender, EventArgs e)
        {
            uint RepointOffset = 0;
            int  Width         = Convert.ToUInt16(txtBorderWidth.Text, DEC);
            int  Height        = Convert.ToUInt16(txtBorderHeight.Text, DEC);

            if (Width == CurrentMap.BorderWidth && Height == CurrentMap.BorderHeight)
            {
                return;
            }

            if (Width > CurrentMap.BorderWidth || Height > CurrentMap.BorderHeight) // Repoint necessary
            {
                using (frmFreeSpaceFinder FreeSpaceFinder = new frmFreeSpaceFinder(CurrentROM, Width * Height * 2, 2, true, TaskDialogSupported))
                {
                    FreeSpaceFinder.ShowDialog();
                    RepointOffset = FreeSpaceFinder.ReturnOffset;
                }

                if (RepointOffset == 0)
                {
                    txtBorderWidth.Text  = CurrentMap.Width.ToString();
                    txtBorderHeight.Text = CurrentMap.Height.ToString();
                    return;
                }
            }

            Maps.ResizeBorder(CurrentROM, RepointOffset, Width, Height, CurrentMap);
            txtBorderData.Text = Convert.ToString(CurrentMap.Border, HEX);

            BorderImage    = new Bitmap(CurrentMap.BorderWidth * 16, CurrentMap.BorderHeight * 16); // Redraw border
            BorderGraphics = Graphics.FromImage(BorderImage);

            CurrentMap.BorderData = Maps.RenderBorder(CurrentROM, BorderGraphics, TilesetImage, CurrentMap);
            picBorder.Image       = BorderImage;
        }
コード例 #3
0
 private void mnuFreeSpaceFinder_Click(object sender, EventArgs e)
 {
     using (frmFreeSpaceFinder FreeSpaceFinder = new frmFreeSpaceFinder(CurrentROM, 0, 2, false, TaskDialogSupported))
         FreeSpaceFinder.ShowDialog();
 }