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

View File

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

View File

@@ -21,10 +21,22 @@ namespace OpenRA.Graphics
public class Minimap
{
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 size = Util.NextPowerOf2(Math.Max(map.Width, map.Height));
Bitmap terrain = new Bitmap(size, size);
var width = map.Width;
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),
ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);