Tweaks to minimap preview

This commit is contained in:
Paul Chote
2010-09-16 22:54:49 +12:00
parent 482129499d
commit d4182b1929
3 changed files with 27 additions and 19 deletions

View File

@@ -198,10 +198,12 @@ namespace OpenRA.Editor
surface1.BindResourceTemplates(resourceTemplates); surface1.BindResourceTemplates(resourceTemplates);
foreach (var p in palettes) { p.Visible = true; p.ResumeLayout(); foreach (var p in palettes)
var terrainBitmap = Minimap.TerrainBitmap(surface1.Map); {
pmMiniMap.Image = terrainBitmap; p.Visible = true;
p.ResumeLayout();
} }
pmMiniMap.Image = Minimap.TerrainBitmap(surface1.Map, true);
} }
@@ -340,10 +342,8 @@ namespace OpenRA.Editor
surface1.Map.Save(loadedMapName); surface1.Map.Save(loadedMapName);
using (var nms = new MapSelect()) using (var nms = new MapSelect())
{ {
var terrainBitmap = Minimap.TerrainBitmap(surface1.Map); Minimap.TerrainBitmap(surface1.Map, true)
nms.pbMinimap.Image = terrainBitmap; .Save(Path.Combine(loadedMapName, "map.png"), System.Drawing.Imaging.ImageFormat.Png);
Bitmap png = new Bitmap(nms.pbMinimap.Image);
png.Save(Path.Combine(loadedMapName, "map.png"), System.Drawing.Imaging.ImageFormat.Png);
} }
dirty = false; dirty = false;
} }
@@ -535,12 +535,9 @@ namespace OpenRA.Editor
pb.Show(); pb.Show();
} }
private void surface1_Click_1(object sender, EventArgs e) private void surface1_Click_1(object sender, EventArgs e)
{ {
var terrainBitmap = Minimap.TerrainBitmap(surface1.Map); pmMiniMap.Image = Minimap.TerrainBitmap(surface1.Map, true);
pmMiniMap.Image = terrainBitmap;
} }
} }
} }

View File

@@ -3,14 +3,14 @@
partial class MapSelect partial class MapSelect
{ {
/// <summary> /// <summary>
/// Требуется переменная конструктора. /// TODO
/// </summary> /// </summary>
private System.ComponentModel.IContainer components = null; private System.ComponentModel.IContainer components = null;
/// <summary> /// <summary>
/// Освободить все используемые ресурсы. /// TODO
/// </summary> /// </summary>
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param> /// <param name="disposing">TODO</param>
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && (components != null)) if (disposing && (components != null))
@@ -23,8 +23,7 @@
#region Код, автоматически созданный конструктором форм Windows #region Код, автоматически созданный конструктором форм Windows
/// <summary> /// <summary>
/// Обязательный метод для поддержки конструктора - не изменяйте /// TODO
/// содержимое данного метода при помощи редактора кода.
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
@@ -136,7 +135,7 @@
this.pbMinimap.Location = new System.Drawing.Point(32, 25); this.pbMinimap.Location = new System.Drawing.Point(32, 25);
this.pbMinimap.Name = "pbMinimap"; this.pbMinimap.Name = "pbMinimap";
this.pbMinimap.Size = new System.Drawing.Size(124, 124); this.pbMinimap.Size = new System.Drawing.Size(124, 124);
this.pbMinimap.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pbMinimap.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pbMinimap.TabIndex = 5; this.pbMinimap.TabIndex = 5;
this.pbMinimap.TabStop = false; this.pbMinimap.TabStop = false;
// //

View File

@@ -21,10 +21,22 @@ namespace OpenRA.Graphics
public class Minimap public class Minimap
{ {
public static Bitmap TerrainBitmap(Map map) public static Bitmap TerrainBitmap(Map map)
{
return TerrainBitmap(map, false);
}
public static Bitmap TerrainBitmap(Map map, bool actualSize)
{ {
var tileset = Rules.TileSets[map.Tileset]; var tileset = Rules.TileSets[map.Tileset];
var size = Util.NextPowerOf2(Math.Max(map.Width, map.Height)); var width = map.Width;
Bitmap terrain = new Bitmap(size, size); var height = map.Height;
if (!actualSize)
{
width = height = Util.NextPowerOf2(Math.Max(map.Width, map.Height));
}
Bitmap terrain = new Bitmap(width, height);
var bitmapData = terrain.LockBits(new Rectangle(0, 0, terrain.Width, terrain.Height), var bitmapData = terrain.LockBits(new Rectangle(0, 0, terrain.Width, terrain.Height),
ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);