added TilesetBuilder2 and fixed it for Dune 2000
does not support TerrainTypes other than "clear" yet
14
Makefile
@@ -137,15 +137,19 @@ ralint: $(ralint_TARGET)
|
|||||||
|
|
||||||
# Builds and exports tilesets from a bitmap
|
# Builds and exports tilesets from a bitmap
|
||||||
tsbuild_SRCS := $(shell find OpenRA.TilesetBuilder/ -iname '*.cs')
|
tsbuild_SRCS := $(shell find OpenRA.TilesetBuilder/ -iname '*.cs')
|
||||||
tsbuild_TARGET = TilesetBuilder.exe
|
tsbuild_TARGET = OpenRA.TilesetBuilder.exe
|
||||||
tsbuild_KIND = winexe
|
tsbuild_KIND = winexe
|
||||||
tsbuild_DEPS = $(fileformats_TARGET) $(game_TARGET)
|
tsbuild_DEPS = $(fileformats_TARGET) $(game_TARGET)
|
||||||
tsbuild_LIBS = $(COMMON_LIBS) $(tsbuild_DEPS) System.Windows.Forms.dll
|
tsbuild_LIBS = $(COMMON_LIBS) $(tsbuild_DEPS) System.Windows.Forms.dll
|
||||||
tsbuild_EXTRA = -resource:OpenRA.TilesetBuilder.Form1.resources
|
tsbuild_EXTRA = -resource:OpenRA.TilesetBuilder.frmBuilder.resources -resource:OpenRA.TilesetBuilder.frmNew.resources -resource:OpenRA.TilesetBuilder.Surface.resources
|
||||||
PROGRAMS += tsbuild
|
PROGRAMS += tsbuild
|
||||||
OpenRA.TilesetBuilder.Form1.resources:
|
OpenRA.TilesetBuilder.frmBuilder.resources:
|
||||||
resgen2 OpenRA.TilesetBuilder/Form1.resx OpenRA.TilesetBuilder.Form1.resources 1> /dev/null
|
resgen2 OpenRA.TilesetBuilder/frmBuilder.resx OpenRA.TilesetBuilder.frmBuilder.resources 1> /dev/null
|
||||||
tsbuild: OpenRA.TilesetBuilder.Form1.resources $(tsbuild_TARGET)
|
OpenRA.TilesetBuilder.frmNew.resources:
|
||||||
|
resgen2 OpenRA.TilesetBuilder/frmNew.resx OpenRA.TilesetBuilder.frmNew.resources 1> /dev/null
|
||||||
|
OpenRA.TilesetBuilder.Surface.resources:
|
||||||
|
resgen2 OpenRA.TilesetBuilder/Surface.resx OpenRA.TilesetBuilder.Surface.resources 1> /dev/null
|
||||||
|
tsbuild: OpenRA.TilesetBuilder.frmBuilder.resources OpenRA.TilesetBuilder.frmNew.resources OpenRA.TilesetBuilder.Surface.resources $(tsbuild_TARGET)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Launchers / Utilities
|
# Launchers / Utilities
|
||||||
|
|||||||
326
OpenRA.TilesetBuilder/Form1.Designer.cs
generated
@@ -1,326 +0,0 @@
|
|||||||
#region Copyright & License Information
|
|
||||||
/*
|
|
||||||
* Copyright 2007-2011 The OpenRA Developers (see AUTHORS)
|
|
||||||
* This file is part of OpenRA, which is free software. It is made
|
|
||||||
* available to you under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation. For more information,
|
|
||||||
* see COPYING.
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
namespace OpenRA.TilesetBuilder
|
|
||||||
{
|
|
||||||
partial class Form1
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Required designer variable.
|
|
||||||
/// </summary>
|
|
||||||
private System.ComponentModel.IContainer components = null;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Clean up any resources being used.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
|
||||||
protected override void Dispose(bool disposing)
|
|
||||||
{
|
|
||||||
if (disposing && (components != null))
|
|
||||||
{
|
|
||||||
components.Dispose();
|
|
||||||
}
|
|
||||||
base.Dispose(disposing);
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Windows Form Designer generated code
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Required method for Designer support - do not modify
|
|
||||||
/// the contents of this method with the code editor.
|
|
||||||
/// </summary>
|
|
||||||
private void InitializeComponent()
|
|
||||||
{
|
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
|
|
||||||
this.toolStripContainer1 = new System.Windows.Forms.ToolStripContainer();
|
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
|
||||||
this.surface1 = new OpenRA.TilesetBuilder.Surface();
|
|
||||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
|
||||||
this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripButton14 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripButton3 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
|
||||||
this.toolStripButton4 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripButton12 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripButton11 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripButton10 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripButton9 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripButton8 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripButton7 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripButton6 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripButton5 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripButton13 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
|
|
||||||
this.toolStripContainer1.ContentPanel.SuspendLayout();
|
|
||||||
this.toolStripContainer1.TopToolStripPanel.SuspendLayout();
|
|
||||||
this.toolStripContainer1.SuspendLayout();
|
|
||||||
this.panel1.SuspendLayout();
|
|
||||||
this.toolStrip1.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
|
||||||
//
|
|
||||||
// toolStripContainer1
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// toolStripContainer1.ContentPanel
|
|
||||||
//
|
|
||||||
this.toolStripContainer1.ContentPanel.Controls.Add(this.panel1);
|
|
||||||
this.toolStripContainer1.ContentPanel.Size = new System.Drawing.Size(745, 571);
|
|
||||||
this.toolStripContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
||||||
this.toolStripContainer1.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.toolStripContainer1.Name = "toolStripContainer1";
|
|
||||||
this.toolStripContainer1.Size = new System.Drawing.Size(745, 596);
|
|
||||||
this.toolStripContainer1.TabIndex = 0;
|
|
||||||
this.toolStripContainer1.Text = "toolStripContainer1";
|
|
||||||
//
|
|
||||||
// toolStripContainer1.TopToolStripPanel
|
|
||||||
//
|
|
||||||
this.toolStripContainer1.TopToolStripPanel.Controls.Add(this.toolStrip1);
|
|
||||||
//
|
|
||||||
// panel1
|
|
||||||
//
|
|
||||||
this.panel1.AutoScroll = true;
|
|
||||||
this.panel1.Controls.Add(this.surface1);
|
|
||||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
||||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.panel1.Name = "panel1";
|
|
||||||
this.panel1.Size = new System.Drawing.Size(745, 571);
|
|
||||||
this.panel1.TabIndex = 0;
|
|
||||||
//
|
|
||||||
// surface1
|
|
||||||
//
|
|
||||||
this.surface1.BackColor = System.Drawing.Color.Black;
|
|
||||||
this.surface1.Location = new System.Drawing.Point(0, 0);
|
|
||||||
this.surface1.Name = "surface1";
|
|
||||||
this.surface1.Size = new System.Drawing.Size(598, 372);
|
|
||||||
this.surface1.TabIndex = 2;
|
|
||||||
this.surface1.Text = "surface1";
|
|
||||||
//
|
|
||||||
// toolStrip1
|
|
||||||
//
|
|
||||||
this.toolStrip1.Dock = System.Windows.Forms.DockStyle.None;
|
|
||||||
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.toolStripButton2,
|
|
||||||
this.toolStripButton14,
|
|
||||||
this.toolStripButton3,
|
|
||||||
this.toolStripSeparator1,
|
|
||||||
this.toolStripButton4,
|
|
||||||
this.toolStripButton12,
|
|
||||||
this.toolStripButton11,
|
|
||||||
this.toolStripButton10,
|
|
||||||
this.toolStripButton9,
|
|
||||||
this.toolStripButton8,
|
|
||||||
this.toolStripButton7,
|
|
||||||
this.toolStripButton6,
|
|
||||||
this.toolStripButton5,
|
|
||||||
this.toolStripButton13,
|
|
||||||
this.toolStripButton1});
|
|
||||||
this.toolStrip1.Location = new System.Drawing.Point(3, 0);
|
|
||||||
this.toolStrip1.Name = "toolStrip1";
|
|
||||||
this.toolStrip1.Size = new System.Drawing.Size(602, 25);
|
|
||||||
this.toolStrip1.TabIndex = 0;
|
|
||||||
//
|
|
||||||
// toolStripButton2
|
|
||||||
//
|
|
||||||
this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image")));
|
|
||||||
this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton2.Name = "toolStripButton2";
|
|
||||||
this.toolStripButton2.Size = new System.Drawing.Size(51, 22);
|
|
||||||
this.toolStripButton2.Text = "Save";
|
|
||||||
this.toolStripButton2.Click += new System.EventHandler(this.SaveClicked);
|
|
||||||
//
|
|
||||||
// toolStripButton14
|
|
||||||
//
|
|
||||||
this.toolStripButton14.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton14.Image")));
|
|
||||||
this.toolStripButton14.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton14.Name = "toolStripButton14";
|
|
||||||
this.toolStripButton14.Size = new System.Drawing.Size(60, 22);
|
|
||||||
this.toolStripButton14.Text = "Export";
|
|
||||||
this.toolStripButton14.Click += new System.EventHandler(this.ExportClicked);
|
|
||||||
//
|
|
||||||
// toolStripButton3
|
|
||||||
//
|
|
||||||
this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image")));
|
|
||||||
this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton3.Name = "toolStripButton3";
|
|
||||||
this.toolStripButton3.Size = new System.Drawing.Size(104, 22);
|
|
||||||
this.toolStripButton3.Text = "Show Overlays";
|
|
||||||
this.toolStripButton3.Click += new System.EventHandler(this.ShowOverlaysClicked);
|
|
||||||
//
|
|
||||||
// toolStripSeparator1
|
|
||||||
//
|
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
|
||||||
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
|
|
||||||
//
|
|
||||||
// toolStripButton4
|
|
||||||
//
|
|
||||||
this.toolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolStripButton4.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton4.Image")));
|
|
||||||
this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton4.Name = "toolStripButton4";
|
|
||||||
this.toolStripButton4.Size = new System.Drawing.Size(25, 22);
|
|
||||||
this.toolStripButton4.Tag = "0";
|
|
||||||
this.toolStripButton4.Text = "tt0";
|
|
||||||
this.toolStripButton4.Click += new System.EventHandler(this.TerrainTypeSelectorClicked);
|
|
||||||
//
|
|
||||||
// toolStripButton12
|
|
||||||
//
|
|
||||||
this.toolStripButton12.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolStripButton12.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton12.Image")));
|
|
||||||
this.toolStripButton12.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton12.Name = "toolStripButton12";
|
|
||||||
this.toolStripButton12.Size = new System.Drawing.Size(25, 22);
|
|
||||||
this.toolStripButton12.Tag = "1";
|
|
||||||
this.toolStripButton12.Text = "tt1";
|
|
||||||
this.toolStripButton12.Click += new System.EventHandler(this.TerrainTypeSelectorClicked);
|
|
||||||
//
|
|
||||||
// toolStripButton11
|
|
||||||
//
|
|
||||||
this.toolStripButton11.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolStripButton11.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton11.Image")));
|
|
||||||
this.toolStripButton11.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton11.Name = "toolStripButton11";
|
|
||||||
this.toolStripButton11.Size = new System.Drawing.Size(25, 22);
|
|
||||||
this.toolStripButton11.Tag = "2";
|
|
||||||
this.toolStripButton11.Text = "tt2";
|
|
||||||
this.toolStripButton11.Click += new System.EventHandler(this.TerrainTypeSelectorClicked);
|
|
||||||
//
|
|
||||||
// toolStripButton10
|
|
||||||
//
|
|
||||||
this.toolStripButton10.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolStripButton10.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton10.Image")));
|
|
||||||
this.toolStripButton10.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton10.Name = "toolStripButton10";
|
|
||||||
this.toolStripButton10.Size = new System.Drawing.Size(25, 22);
|
|
||||||
this.toolStripButton10.Tag = "3";
|
|
||||||
this.toolStripButton10.Text = "tt3";
|
|
||||||
this.toolStripButton10.Click += new System.EventHandler(this.TerrainTypeSelectorClicked);
|
|
||||||
//
|
|
||||||
// toolStripButton9
|
|
||||||
//
|
|
||||||
this.toolStripButton9.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolStripButton9.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton9.Image")));
|
|
||||||
this.toolStripButton9.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton9.Name = "toolStripButton9";
|
|
||||||
this.toolStripButton9.Size = new System.Drawing.Size(25, 22);
|
|
||||||
this.toolStripButton9.Tag = "4";
|
|
||||||
this.toolStripButton9.Text = "tt4";
|
|
||||||
this.toolStripButton9.Click += new System.EventHandler(this.TerrainTypeSelectorClicked);
|
|
||||||
//
|
|
||||||
// toolStripButton8
|
|
||||||
//
|
|
||||||
this.toolStripButton8.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolStripButton8.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton8.Image")));
|
|
||||||
this.toolStripButton8.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton8.Name = "toolStripButton8";
|
|
||||||
this.toolStripButton8.Size = new System.Drawing.Size(25, 22);
|
|
||||||
this.toolStripButton8.Tag = "5";
|
|
||||||
this.toolStripButton8.Text = "tt5";
|
|
||||||
this.toolStripButton8.Click += new System.EventHandler(this.TerrainTypeSelectorClicked);
|
|
||||||
//
|
|
||||||
// toolStripButton7
|
|
||||||
//
|
|
||||||
this.toolStripButton7.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolStripButton7.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton7.Image")));
|
|
||||||
this.toolStripButton7.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton7.Name = "toolStripButton7";
|
|
||||||
this.toolStripButton7.Size = new System.Drawing.Size(25, 22);
|
|
||||||
this.toolStripButton7.Tag = "6";
|
|
||||||
this.toolStripButton7.Text = "tt6";
|
|
||||||
this.toolStripButton7.Click += new System.EventHandler(this.TerrainTypeSelectorClicked);
|
|
||||||
//
|
|
||||||
// toolStripButton6
|
|
||||||
//
|
|
||||||
this.toolStripButton6.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolStripButton6.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton6.Image")));
|
|
||||||
this.toolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton6.Name = "toolStripButton6";
|
|
||||||
this.toolStripButton6.Size = new System.Drawing.Size(25, 22);
|
|
||||||
this.toolStripButton6.Tag = "7";
|
|
||||||
this.toolStripButton6.Text = "tt7";
|
|
||||||
this.toolStripButton6.Click += new System.EventHandler(this.TerrainTypeSelectorClicked);
|
|
||||||
//
|
|
||||||
// toolStripButton5
|
|
||||||
//
|
|
||||||
this.toolStripButton5.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolStripButton5.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton5.Image")));
|
|
||||||
this.toolStripButton5.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton5.Name = "toolStripButton5";
|
|
||||||
this.toolStripButton5.Size = new System.Drawing.Size(25, 22);
|
|
||||||
this.toolStripButton5.Tag = "8";
|
|
||||||
this.toolStripButton5.Text = "tt8";
|
|
||||||
this.toolStripButton5.Click += new System.EventHandler(this.TerrainTypeSelectorClicked);
|
|
||||||
//
|
|
||||||
// toolStripButton13
|
|
||||||
//
|
|
||||||
this.toolStripButton13.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolStripButton13.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton13.Image")));
|
|
||||||
this.toolStripButton13.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton13.Name = "toolStripButton13";
|
|
||||||
this.toolStripButton13.Size = new System.Drawing.Size(25, 22);
|
|
||||||
this.toolStripButton13.Tag = "9";
|
|
||||||
this.toolStripButton13.Text = "tt9";
|
|
||||||
//
|
|
||||||
// toolStripButton1
|
|
||||||
//
|
|
||||||
this.toolStripButton1.Checked = true;
|
|
||||||
this.toolStripButton1.CheckState = System.Windows.Forms.CheckState.Checked;
|
|
||||||
this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
|
|
||||||
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
|
|
||||||
this.toolStripButton1.Name = "toolStripButton1";
|
|
||||||
this.toolStripButton1.Size = new System.Drawing.Size(88, 22);
|
|
||||||
this.toolStripButton1.Text = "Template Tool";
|
|
||||||
this.toolStripButton1.Click += new System.EventHandler(this.TerrainTypeSelectorClicked);
|
|
||||||
//
|
|
||||||
// Form1
|
|
||||||
//
|
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
|
||||||
this.ClientSize = new System.Drawing.Size(745, 596);
|
|
||||||
this.Controls.Add(this.toolStripContainer1);
|
|
||||||
this.Name = "Form1";
|
|
||||||
this.Text = "Tileset Builder";
|
|
||||||
this.toolStripContainer1.ContentPanel.ResumeLayout(false);
|
|
||||||
this.toolStripContainer1.TopToolStripPanel.ResumeLayout(false);
|
|
||||||
this.toolStripContainer1.TopToolStripPanel.PerformLayout();
|
|
||||||
this.toolStripContainer1.ResumeLayout(false);
|
|
||||||
this.toolStripContainer1.PerformLayout();
|
|
||||||
this.panel1.ResumeLayout(false);
|
|
||||||
this.toolStrip1.ResumeLayout(false);
|
|
||||||
this.toolStrip1.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
private System.Windows.Forms.ToolStripContainer toolStripContainer1;
|
|
||||||
private System.Windows.Forms.Panel panel1;
|
|
||||||
private Surface surface1;
|
|
||||||
private System.Windows.Forms.ToolStrip toolStrip1;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton1;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton2;
|
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton3;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton4;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton12;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton11;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton10;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton9;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton8;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton7;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton6;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton5;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton13;
|
|
||||||
private System.Windows.Forms.ToolStripButton toolStripButton14;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,278 +0,0 @@
|
|||||||
#region Copyright & License Information
|
|
||||||
/*
|
|
||||||
* Copyright 2007-2011 The OpenRA Developers (see AUTHORS)
|
|
||||||
* This file is part of OpenRA, which is free software. It is made
|
|
||||||
* available to you under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation. For more information,
|
|
||||||
* see COPYING.
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Drawing;
|
|
||||||
using System.Drawing.Imaging;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
using System.Xml;
|
|
||||||
using OpenRA.FileFormats;
|
|
||||||
|
|
||||||
namespace OpenRA.TilesetBuilder
|
|
||||||
{
|
|
||||||
public partial class Form1 : Form
|
|
||||||
{
|
|
||||||
string srcfile;
|
|
||||||
int size;
|
|
||||||
|
|
||||||
public Form1( string src, int size )
|
|
||||||
{
|
|
||||||
srcfile = src;
|
|
||||||
this.size = size;
|
|
||||||
InitializeComponent();
|
|
||||||
surface1.TileSize = size;
|
|
||||||
surface1.Image = (Bitmap)Image.FromFile(src);
|
|
||||||
surface1.Image.SetResolution(96, 96); // people keep being noobs about DPI, and GDI+ cares.
|
|
||||||
surface1.TerrainTypes = new int[surface1.Image.Width / size, surface1.Image.Height / size]; /* all passable by default */
|
|
||||||
surface1.Templates = new List<Template>();
|
|
||||||
surface1.Size = surface1.Image.Size;
|
|
||||||
|
|
||||||
Load();
|
|
||||||
}
|
|
||||||
|
|
||||||
public new void Load()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var doc = new XmlDocument();
|
|
||||||
doc.Load(Path.ChangeExtension(srcfile, "tsx"));
|
|
||||||
|
|
||||||
foreach (var e in doc.SelectNodes("//terrain").OfType<XmlElement>())
|
|
||||||
surface1.TerrainTypes[
|
|
||||||
int.Parse(e.GetAttribute("x")),
|
|
||||||
int.Parse(e.GetAttribute("y"))] = int.Parse(e.GetAttribute("t"));
|
|
||||||
|
|
||||||
foreach (var e in doc.SelectNodes("//template").OfType<XmlElement>())
|
|
||||||
surface1.Templates.Add(new Template
|
|
||||||
{
|
|
||||||
Cells = e.SelectNodes("./cell").OfType<XmlElement>()
|
|
||||||
.Select(f => new int2(int.Parse(f.GetAttribute("x")), int.Parse(f.GetAttribute("y"))))
|
|
||||||
.ToDictionary(a => a, a => true)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
catch { }
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Save()
|
|
||||||
{
|
|
||||||
using (var w = XmlWriter.Create(Path.ChangeExtension(srcfile, "tsx"),
|
|
||||||
new XmlWriterSettings { Indent = true, IndentChars = " " }))
|
|
||||||
{
|
|
||||||
w.WriteStartDocument();
|
|
||||||
w.WriteStartElement("tileset");
|
|
||||||
|
|
||||||
for( var i = 0; i <= surface1.TerrainTypes.GetUpperBound(0); i++ )
|
|
||||||
for( var j = 0; j <= surface1.TerrainTypes.GetUpperBound(1); j++ )
|
|
||||||
if (surface1.TerrainTypes[i, j] != 0)
|
|
||||||
{
|
|
||||||
w.WriteStartElement("terrain");
|
|
||||||
w.WriteAttributeString("x", i.ToString());
|
|
||||||
w.WriteAttributeString("y", j.ToString());
|
|
||||||
w.WriteAttributeString("t", surface1.TerrainTypes[i, j].ToString());
|
|
||||||
w.WriteEndElement();
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var t in surface1.Templates)
|
|
||||||
{
|
|
||||||
w.WriteStartElement("template");
|
|
||||||
|
|
||||||
foreach (var c in t.Cells.Keys)
|
|
||||||
{
|
|
||||||
w.WriteStartElement("cell");
|
|
||||||
w.WriteAttributeString("x", c.X.ToString());
|
|
||||||
w.WriteAttributeString("y", c.Y.ToString());
|
|
||||||
w.WriteEndElement();
|
|
||||||
}
|
|
||||||
|
|
||||||
w.WriteEndElement();
|
|
||||||
}
|
|
||||||
|
|
||||||
w.WriteEndElement();
|
|
||||||
w.WriteEndDocument();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void TerrainTypeSelectorClicked(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
surface1.InputMode = (sender as ToolStripButton).Tag as string;
|
|
||||||
foreach (var tsb in (sender as ToolStripButton).Owner.Items.OfType<ToolStripButton>())
|
|
||||||
tsb.Checked = false;
|
|
||||||
(sender as ToolStripButton).Checked = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SaveClicked(object sender, EventArgs e) { Save(); }
|
|
||||||
void ShowOverlaysClicked(object sender, EventArgs e) { surface1.ShowTerrainTypes ^= true; }
|
|
||||||
|
|
||||||
void ExportClicked(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
var dir = Path.Combine(Path.GetDirectoryName(srcfile), "output");
|
|
||||||
Directory.CreateDirectory(dir);
|
|
||||||
|
|
||||||
// Create a Tileset definition
|
|
||||||
// Todo: Pull this info from the gui
|
|
||||||
var tilesetFile = "tileset-arrakis.yaml";
|
|
||||||
//var mixFile = "arrakis.mix";
|
|
||||||
var tileset = new TileSet()
|
|
||||||
{
|
|
||||||
Name = "Arrakis",
|
|
||||||
Id = "ARRAKIS",
|
|
||||||
TileSize = size,
|
|
||||||
Palette = "arrakis.pal",
|
|
||||||
Extensions = new string[] {".arr", ".shp"}
|
|
||||||
};
|
|
||||||
|
|
||||||
// List of files to add to the mix file
|
|
||||||
List<string> fileList = new List<string>();
|
|
||||||
|
|
||||||
// Export palette (use the embedded palette)
|
|
||||||
var p = surface1.Image.Palette.Entries.ToList();
|
|
||||||
fileList.Add(ExportPalette(p, Path.Combine(dir, tileset.Palette)));
|
|
||||||
|
|
||||||
// Export tile artwork
|
|
||||||
foreach (var t in surface1.Templates)
|
|
||||||
fileList.Add(ExportTemplate(t, surface1.Templates.IndexOf(t), tileset.Extensions.First(), dir));
|
|
||||||
|
|
||||||
// Add the terraintypes
|
|
||||||
// Todo: add support for multiple/different terraintypes
|
|
||||||
var terraintype = new TerrainTypeInfo()
|
|
||||||
{
|
|
||||||
Type = "Clear",
|
|
||||||
AcceptSmudge = true,
|
|
||||||
IsWater = false,
|
|
||||||
Color = Color.White
|
|
||||||
};
|
|
||||||
tileset.Terrain.Add("Clear", terraintype);
|
|
||||||
|
|
||||||
// Add the templates
|
|
||||||
ushort cur = 0;
|
|
||||||
foreach (var tp in surface1.Templates)
|
|
||||||
{
|
|
||||||
var template = new TileTemplate()
|
|
||||||
{
|
|
||||||
Id = cur,
|
|
||||||
Image = "t{0:00}".F(cur),
|
|
||||||
Size = new int2(tp.Width,tp.Height),
|
|
||||||
};
|
|
||||||
|
|
||||||
// Todo: add support for different terraintypes
|
|
||||||
// Todo: restrict cells? this doesn't work: .Where( c => surface1.TerrainTypes[c.Key.X, c.Key.Y] != 0 )
|
|
||||||
foreach (var t in tp.Cells)
|
|
||||||
template.Tiles.Add((byte)((t.Key.X - tp.Left) + tp.Width * (t.Key.Y - tp.Top)), "Clear");
|
|
||||||
|
|
||||||
tileset.Templates.Add(cur, template);
|
|
||||||
cur++;
|
|
||||||
}
|
|
||||||
|
|
||||||
tileset.Save(Path.Combine(dir, tilesetFile));
|
|
||||||
throw new NotImplementedException("NotI");
|
|
||||||
//PackageWriter.CreateMix(Path.Combine(dir, mixFile),fileList);
|
|
||||||
/*
|
|
||||||
// Cleanup
|
|
||||||
foreach (var file in fileList)
|
|
||||||
File.Delete(file);
|
|
||||||
|
|
||||||
Console.WriteLine("Finished export");
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
string ExportPalette(List<Color> p, string file)
|
|
||||||
{
|
|
||||||
while (p.Count < 256) p.Add(Color.Black); // pad the palette out with extra blacks
|
|
||||||
var paletteData = p.Take(256).SelectMany(
|
|
||||||
c => new byte[] { (byte)(c.R >> 2), (byte)(c.G >> 2), (byte)(c.B >> 2) }).ToArray();
|
|
||||||
File.WriteAllBytes(file, paletteData);
|
|
||||||
return file;
|
|
||||||
}
|
|
||||||
|
|
||||||
string ExportTemplate(Template t, int n, string suffix, string dir)
|
|
||||||
{
|
|
||||||
var TileSize = size;
|
|
||||||
var filename = Path.Combine(dir, "t{0:00}{1}".F(n, suffix));
|
|
||||||
var totalTiles = t.Width * t.Height;
|
|
||||||
|
|
||||||
var ms = new MemoryStream();
|
|
||||||
using (var bw = new BinaryWriter(ms))
|
|
||||||
{
|
|
||||||
bw.Write((ushort)TileSize);
|
|
||||||
bw.Write((ushort)TileSize);
|
|
||||||
bw.Write((uint)totalTiles);
|
|
||||||
bw.Write((ushort)t.Width);
|
|
||||||
bw.Write((ushort)t.Height);
|
|
||||||
bw.Write((uint)0); // filesize placeholder
|
|
||||||
bw.Flush();
|
|
||||||
bw.Write((uint)ms.Position + 24); // image start
|
|
||||||
bw.Write((uint)0); // 0 (32bits)
|
|
||||||
bw.Write((uint)0x2c730f8a); // magic?
|
|
||||||
bw.Write((uint)0); // flags start
|
|
||||||
bw.Write((uint)0); // walk start
|
|
||||||
bw.Write((uint)0); // index start
|
|
||||||
|
|
||||||
var src = surface1.Image;
|
|
||||||
|
|
||||||
var data = src.LockBits(src.Bounds(), ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed);
|
|
||||||
|
|
||||||
unsafe
|
|
||||||
{
|
|
||||||
byte* p = (byte*)data.Scan0;
|
|
||||||
|
|
||||||
for (var v = 0; v < t.Height; v++)
|
|
||||||
for (var u = 0; u < t.Width; u++)
|
|
||||||
{
|
|
||||||
if (t.Cells.ContainsKey(new int2(u + t.Left, v + t.Top)))
|
|
||||||
{
|
|
||||||
byte* q = p + data.Stride * TileSize * (v + t.Top) + TileSize * (u + t.Left);
|
|
||||||
for (var j = 0; j < TileSize; j++)
|
|
||||||
for (var i = 0; i < TileSize; i++)
|
|
||||||
bw.Write(q[i + j * data.Stride]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
for (var x = 0; x < TileSize * TileSize; x++)
|
|
||||||
bw.Write((byte)0); /* todo: don't fill with air */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
src.UnlockBits(data);
|
|
||||||
|
|
||||||
bw.Flush();
|
|
||||||
var indexStart = ms.Position;
|
|
||||||
for (var v = 0; v < t.Height; v++)
|
|
||||||
for (var u = 0; u < t.Width; u++)
|
|
||||||
bw.Write(t.Cells.ContainsKey(new int2(u + t.Left, v + t.Top))
|
|
||||||
? (byte)(u + t.Width * v)
|
|
||||||
: (byte)0xff);
|
|
||||||
|
|
||||||
bw.Flush();
|
|
||||||
|
|
||||||
var flagsStart = ms.Position;
|
|
||||||
for (var x = 0; x < totalTiles; x++ )
|
|
||||||
bw.Write((byte)0);
|
|
||||||
|
|
||||||
bw.Flush();
|
|
||||||
|
|
||||||
var walkStart = ms.Position;
|
|
||||||
for (var x = 0; x < totalTiles; x++)
|
|
||||||
bw.Write((byte)0x8);
|
|
||||||
|
|
||||||
var bytes = ms.ToArray();
|
|
||||||
Array.Copy(BitConverter.GetBytes((uint)bytes.Length), 0, bytes, 12, 4);
|
|
||||||
Array.Copy(BitConverter.GetBytes(flagsStart), 0, bytes, 28, 4);
|
|
||||||
Array.Copy(BitConverter.GetBytes(walkStart), 0, bytes, 32, 4);
|
|
||||||
Array.Copy(BitConverter.GetBytes(indexStart), 0, bytes, 36, 4);
|
|
||||||
|
|
||||||
File.WriteAllBytes(filename, bytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
return filename;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,334 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>17, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
|
||||||
<data name="toolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton14.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton12.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton11.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton10.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton9.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton8.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton7.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton6.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton5.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton13.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
|
|
||||||
U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
|
|
||||||
VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
|
|
||||||
QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
|
|
||||||
/g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
|
|
||||||
cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
|
|
||||||
3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
|
|
||||||
dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
|
|
||||||
NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
|
|
||||||
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
@@ -1,17 +1,18 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<ProductVersion>9.0.30729</ProductVersion>
|
<ProductVersion>9.0.30729</ProductVersion>
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
<ProjectGuid>{56B1073B-AE14-499A-BB98-43A8DE9A39CA}</ProjectGuid>
|
<ProjectGuid>{1A8E50CC-EE32-4E57-8842-0C39C8EA7541}</ProjectGuid>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>OpenRA.TilesetBuilder</RootNamespace>
|
<RootNamespace>OpenRA.TilesetBuilder2</RootNamespace>
|
||||||
<AssemblyName>OpenRA.TilesetBuilder</AssemblyName>
|
<AssemblyName>OpenRA.TilesetBuilder2</AssemblyName>
|
||||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<ApplicationIcon>tilesetbuilder_icon copy.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
@@ -52,22 +53,34 @@
|
|||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Form1.cs">
|
<Compile Include="frmBuilder.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Form1.Designer.cs">
|
<Compile Include="frmBuilder.Designer.cs">
|
||||||
<DependentUpon>Form1.cs</DependentUpon>
|
<DependentUpon>frmBuilder.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmNew.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmNew.Designer.cs">
|
||||||
|
<DependentUpon>frmNew.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<EmbeddedResource Include="Form1.resx">
|
<EmbeddedResource Include="frmBuilder.resx">
|
||||||
<DependentUpon>Form1.cs</DependentUpon>
|
<DependentUpon>frmBuilder.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="frmNew.resx">
|
||||||
|
<DependentUpon>frmNew.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Surface.resx">
|
||||||
|
<DependentUpon>Surface.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<Compile Include="Properties\Resources.Designer.cs">
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
@@ -96,6 +109,9 @@
|
|||||||
<Name>OpenRA.Game</Name>
|
<Name>OpenRA.Game</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="tilesetbuilder_icon copy.ico" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
|||||||
@@ -21,8 +21,15 @@ namespace OpenRA.TilesetBuilder
|
|||||||
{
|
{
|
||||||
Application.EnableVisualStyles();
|
Application.EnableVisualStyles();
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
Console.WriteLine("{0} {1}",args[0], args[1]);
|
//Console.WriteLine("{0} {1}",args[0], args[1]);
|
||||||
Application.Run(new Form1(args[0], int.Parse(args[1])));
|
if (args.Length < 1)
|
||||||
|
{
|
||||||
|
Application.Run(new frmBuilder("", "0"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Application.Run(new frmBuilder(args[0], args[1]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,4 @@
|
|||||||
#region Copyright & License Information
|
using System.Reflection;
|
||||||
/*
|
|
||||||
* Copyright 2007-2011 The OpenRA Developers (see AUTHORS)
|
|
||||||
* This file is part of OpenRA, which is free software. It is made
|
|
||||||
* available to you under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation. For more information,
|
|
||||||
* see COPYING.
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ namespace OpenRA.TilesetBuilder.Properties
|
|||||||
{
|
{
|
||||||
if ((resourceMan == null))
|
if ((resourceMan == null))
|
||||||
{
|
{
|
||||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenRA.TilesetBuilder.Properties.Resources", typeof(Resources).Assembly);
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenRA.TilesetBuilder2.Properties.Resources", typeof(Resources).Assembly);
|
||||||
resourceMan = temp;
|
resourceMan = temp;
|
||||||
}
|
}
|
||||||
return resourceMan;
|
return resourceMan;
|
||||||
|
|||||||
@@ -1,14 +1,4 @@
|
|||||||
#region Copyright & License Information
|
using System.Collections.Generic;
|
||||||
/*
|
|
||||||
* Copyright 2007-2011 The OpenRA Developers (see AUTHORS)
|
|
||||||
* This file is part of OpenRA, which is free software. It is made
|
|
||||||
* available to you under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation. For more information,
|
|
||||||
* see COPYING.
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
@@ -18,14 +8,29 @@ namespace OpenRA.TilesetBuilder
|
|||||||
class Surface : Control
|
class Surface : Control
|
||||||
{
|
{
|
||||||
public Bitmap Image;
|
public Bitmap Image;
|
||||||
|
private ImageList ImagesListControl;
|
||||||
public int[,] TerrainTypes;
|
public int[,] TerrainTypes;
|
||||||
public List<Template> Templates = new List<Template>();
|
public List<Template> Templates = new List<Template>();
|
||||||
public bool ShowTerrainTypes = true;
|
private bool bShowTerrainTypes;
|
||||||
public string InputMode;
|
public string InputMode;
|
||||||
|
public Bitmap[] icon;
|
||||||
public int TileSize;
|
public int TileSize;
|
||||||
|
//private System.ComponentModel.IContainer components;
|
||||||
|
|
||||||
Template CurrentTemplate;
|
Template CurrentTemplate;
|
||||||
|
|
||||||
|
public bool ShowTerrainTypes
|
||||||
|
{
|
||||||
|
get { return bShowTerrainTypes; }
|
||||||
|
set { bShowTerrainTypes = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public ImageList ImagesList
|
||||||
|
{
|
||||||
|
get { return ImagesListControl; }
|
||||||
|
set { ImagesListControl = value; }
|
||||||
|
}
|
||||||
|
|
||||||
public Surface()
|
public Surface()
|
||||||
{
|
{
|
||||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||||
@@ -43,16 +48,20 @@ namespace OpenRA.TilesetBuilder
|
|||||||
|
|
||||||
/* draw the background */
|
/* draw the background */
|
||||||
e.Graphics.DrawImageUnscaled(Image, 0, 0);
|
e.Graphics.DrawImageUnscaled(Image, 0, 0);
|
||||||
|
|
||||||
/* draw terrain type overlays */
|
/* draw terrain type overlays */
|
||||||
if (ShowTerrainTypes)
|
if (ShowTerrainTypes)
|
||||||
|
{
|
||||||
for (var i = 0; i <= TerrainTypes.GetUpperBound(0); i++)
|
for (var i = 0; i <= TerrainTypes.GetUpperBound(0); i++)
|
||||||
for (var j = 0; j <= TerrainTypes.GetUpperBound(1); j++)
|
for (var j = 0; j <= TerrainTypes.GetUpperBound(1); j++)
|
||||||
if (TerrainTypes[i, j] != 0)
|
if (TerrainTypes[i, j] != 0)
|
||||||
{
|
{
|
||||||
e.Graphics.FillRectangle(Brushes.Black, TileSize * i + 10, TileSize * j + 10, 10, 10);
|
//e.Graphics.FillRectangle(Brushes.Black, TileSize * i + 8, TileSize * j + 8, 16, 16);
|
||||||
e.Graphics.DrawString(TerrainTypes[i, j].ToString(),
|
|
||||||
Font, Brushes.LimeGreen, TileSize * i + 10, TileSize * j + 10);
|
e.Graphics.DrawImage(icon[TerrainTypes[i, j]], TileSize * i + 8, TileSize * j + 8, 16, 16);
|
||||||
|
|
||||||
|
//e.Graphics.DrawString(TerrainTypes[i, j].ToString(),
|
||||||
|
//Font, Brushes.LimeGreen, TileSize * i + 10, TileSize * j + 10);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* draw template outlines */
|
/* draw template outlines */
|
||||||
@@ -120,5 +129,11 @@ namespace OpenRA.TilesetBuilder
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.SuspendLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
123
OpenRA.TilesetBuilder/Surface.resx
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
||||||
@@ -1,14 +1,4 @@
|
|||||||
#region Copyright & License Information
|
using System.Collections.Generic;
|
||||||
/*
|
|
||||||
* Copyright 2007-2011 The OpenRA Developers (see AUTHORS)
|
|
||||||
* This file is part of OpenRA, which is free software. It is made
|
|
||||||
* available to you under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation. For more information,
|
|
||||||
* see COPYING.
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace OpenRA.TilesetBuilder
|
namespace OpenRA.TilesetBuilder
|
||||||
|
|||||||
349
OpenRA.TilesetBuilder/frmBuilder.Designer.cs
generated
Normal file
@@ -0,0 +1,349 @@
|
|||||||
|
namespace OpenRA.TilesetBuilder
|
||||||
|
{
|
||||||
|
partial class frmBuilder
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmBuilder));
|
||||||
|
this.toolStripContainer1 = new System.Windows.Forms.ToolStripContainer();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.imageList = new System.Windows.Forms.ImageList(this.components);
|
||||||
|
this.tsTerrainTypes = new System.Windows.Forms.ToolStrip();
|
||||||
|
this.toolStripLabel3 = new System.Windows.Forms.ToolStripLabel();
|
||||||
|
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.toolStripLabel4 = new System.Windows.Forms.ToolStripLabel();
|
||||||
|
this.txtTilesetName = new System.Windows.Forms.ToolStripTextBox();
|
||||||
|
this.toolStripLabel5 = new System.Windows.Forms.ToolStripLabel();
|
||||||
|
this.txtID = new System.Windows.Forms.ToolStripTextBox();
|
||||||
|
this.lblExt = new System.Windows.Forms.ToolStripLabel();
|
||||||
|
this.txtExt = new System.Windows.Forms.ToolStripTextBox();
|
||||||
|
this.toolStripLabel6 = new System.Windows.Forms.ToolStripLabel();
|
||||||
|
this.txtPal = new System.Windows.Forms.ToolStripTextBox();
|
||||||
|
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel();
|
||||||
|
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
||||||
|
this.toolStripButton15 = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.toolStripButton14 = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.toolStripButton3 = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.surface1 = new OpenRA.TilesetBuilder.Surface();
|
||||||
|
this.toolStripContainer1.ContentPanel.SuspendLayout();
|
||||||
|
this.toolStripContainer1.TopToolStripPanel.SuspendLayout();
|
||||||
|
this.toolStripContainer1.SuspendLayout();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
this.tsTerrainTypes.SuspendLayout();
|
||||||
|
this.toolStrip1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// toolStripContainer1
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// toolStripContainer1.ContentPanel
|
||||||
|
//
|
||||||
|
this.toolStripContainer1.ContentPanel.Controls.Add(this.panel1);
|
||||||
|
this.toolStripContainer1.ContentPanel.Controls.Add(this.tsTerrainTypes);
|
||||||
|
this.toolStripContainer1.ContentPanel.Size = new System.Drawing.Size(908, 571);
|
||||||
|
this.toolStripContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.toolStripContainer1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.toolStripContainer1.Name = "toolStripContainer1";
|
||||||
|
this.toolStripContainer1.Size = new System.Drawing.Size(908, 596);
|
||||||
|
this.toolStripContainer1.TabIndex = 0;
|
||||||
|
this.toolStripContainer1.Text = "toolStripContainer1";
|
||||||
|
//
|
||||||
|
// toolStripContainer1.TopToolStripPanel
|
||||||
|
//
|
||||||
|
this.toolStripContainer1.TopToolStripPanel.Controls.Add(this.toolStrip1);
|
||||||
|
this.toolStripContainer1.TopToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
|
||||||
|
this.toolStripContainer1.TopToolStripPanel.Click += new System.EventHandler(this.toolStripContainer1_TopToolStripPanel_Click);
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.AutoScroll = true;
|
||||||
|
this.panel1.BackColor = System.Drawing.Color.Black;
|
||||||
|
this.panel1.Controls.Add(this.surface1);
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(788, 571);
|
||||||
|
this.panel1.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// imageList
|
||||||
|
//
|
||||||
|
this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream")));
|
||||||
|
this.imageList.TransparentColor = System.Drawing.Color.Transparent;
|
||||||
|
this.imageList.Images.SetKeyName(0, "clear.png");
|
||||||
|
this.imageList.Images.SetKeyName(1, "water.png");
|
||||||
|
this.imageList.Images.SetKeyName(2, "road.png");
|
||||||
|
this.imageList.Images.SetKeyName(3, "rock.png");
|
||||||
|
this.imageList.Images.SetKeyName(4, "river.png");
|
||||||
|
this.imageList.Images.SetKeyName(5, "rough.png");
|
||||||
|
this.imageList.Images.SetKeyName(6, "wall.png");
|
||||||
|
this.imageList.Images.SetKeyName(7, "beach.png");
|
||||||
|
this.imageList.Images.SetKeyName(8, "tree.png");
|
||||||
|
this.imageList.Images.SetKeyName(9, "tiberium.png");
|
||||||
|
//
|
||||||
|
// tsTerrainTypes
|
||||||
|
//
|
||||||
|
this.tsTerrainTypes.AutoSize = false;
|
||||||
|
this.tsTerrainTypes.Dock = System.Windows.Forms.DockStyle.Right;
|
||||||
|
this.tsTerrainTypes.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.toolStripLabel3,
|
||||||
|
this.toolStripSeparator3,
|
||||||
|
this.toolStripLabel4,
|
||||||
|
this.txtTilesetName,
|
||||||
|
this.toolStripLabel5,
|
||||||
|
this.txtID,
|
||||||
|
this.lblExt,
|
||||||
|
this.txtExt,
|
||||||
|
this.toolStripLabel6,
|
||||||
|
this.txtPal,
|
||||||
|
this.toolStripSeparator5,
|
||||||
|
this.toolStripLabel2,
|
||||||
|
this.toolStripSeparator4,
|
||||||
|
this.toolStripButton1});
|
||||||
|
this.tsTerrainTypes.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.VerticalStackWithOverflow;
|
||||||
|
this.tsTerrainTypes.Location = new System.Drawing.Point(788, 0);
|
||||||
|
this.tsTerrainTypes.Name = "tsTerrainTypes";
|
||||||
|
this.tsTerrainTypes.Size = new System.Drawing.Size(120, 571);
|
||||||
|
this.tsTerrainTypes.TabIndex = 1;
|
||||||
|
this.tsTerrainTypes.Text = "toolStrip3";
|
||||||
|
//
|
||||||
|
// toolStripLabel3
|
||||||
|
//
|
||||||
|
this.toolStripLabel3.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
|
||||||
|
this.toolStripLabel3.Name = "toolStripLabel3";
|
||||||
|
this.toolStripLabel3.Size = new System.Drawing.Size(118, 13);
|
||||||
|
this.toolStripLabel3.Text = "Tileset setup";
|
||||||
|
//
|
||||||
|
// toolStripSeparator3
|
||||||
|
//
|
||||||
|
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
|
this.toolStripSeparator3.Size = new System.Drawing.Size(118, 6);
|
||||||
|
//
|
||||||
|
// toolStripLabel4
|
||||||
|
//
|
||||||
|
this.toolStripLabel4.Name = "toolStripLabel4";
|
||||||
|
this.toolStripLabel4.Size = new System.Drawing.Size(118, 13);
|
||||||
|
this.toolStripLabel4.Text = "Tileset name:";
|
||||||
|
//
|
||||||
|
// txtTilesetName
|
||||||
|
//
|
||||||
|
this.txtTilesetName.MaxLength = 32;
|
||||||
|
this.txtTilesetName.Name = "txtTilesetName";
|
||||||
|
this.txtTilesetName.Size = new System.Drawing.Size(116, 21);
|
||||||
|
this.txtTilesetName.Text = "Temperat";
|
||||||
|
this.txtTilesetName.TextChanged += new System.EventHandler(this.txtTilesetName_TextChanged);
|
||||||
|
//
|
||||||
|
// toolStripLabel5
|
||||||
|
//
|
||||||
|
this.toolStripLabel5.Name = "toolStripLabel5";
|
||||||
|
this.toolStripLabel5.Size = new System.Drawing.Size(118, 13);
|
||||||
|
this.toolStripLabel5.Text = "Tileset ID:";
|
||||||
|
//
|
||||||
|
// txtID
|
||||||
|
//
|
||||||
|
this.txtID.Name = "txtID";
|
||||||
|
this.txtID.ReadOnly = true;
|
||||||
|
this.txtID.Size = new System.Drawing.Size(116, 21);
|
||||||
|
this.txtID.Text = "TEMPERAT";
|
||||||
|
//
|
||||||
|
// lblExt
|
||||||
|
//
|
||||||
|
this.lblExt.Name = "lblExt";
|
||||||
|
this.lblExt.Size = new System.Drawing.Size(118, 13);
|
||||||
|
this.lblExt.Text = "Extensions:";
|
||||||
|
//
|
||||||
|
// txtExt
|
||||||
|
//
|
||||||
|
this.txtExt.Name = "txtExt";
|
||||||
|
this.txtExt.ReadOnly = true;
|
||||||
|
this.txtExt.Size = new System.Drawing.Size(116, 21);
|
||||||
|
this.txtExt.Text = ".tem,.shp";
|
||||||
|
//
|
||||||
|
// toolStripLabel6
|
||||||
|
//
|
||||||
|
this.toolStripLabel6.Name = "toolStripLabel6";
|
||||||
|
this.toolStripLabel6.Size = new System.Drawing.Size(118, 13);
|
||||||
|
this.toolStripLabel6.Text = "Palette:";
|
||||||
|
//
|
||||||
|
// txtPal
|
||||||
|
//
|
||||||
|
this.txtPal.Name = "txtPal";
|
||||||
|
this.txtPal.ReadOnly = true;
|
||||||
|
this.txtPal.Size = new System.Drawing.Size(116, 21);
|
||||||
|
this.txtPal.Text = "temperat.pal";
|
||||||
|
//
|
||||||
|
// toolStripSeparator5
|
||||||
|
//
|
||||||
|
this.toolStripSeparator5.Name = "toolStripSeparator5";
|
||||||
|
this.toolStripSeparator5.Size = new System.Drawing.Size(118, 6);
|
||||||
|
//
|
||||||
|
// toolStripLabel2
|
||||||
|
//
|
||||||
|
this.toolStripLabel2.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
|
||||||
|
this.toolStripLabel2.Name = "toolStripLabel2";
|
||||||
|
this.toolStripLabel2.Size = new System.Drawing.Size(118, 13);
|
||||||
|
this.toolStripLabel2.Text = "Terrain type";
|
||||||
|
//
|
||||||
|
// toolStripSeparator4
|
||||||
|
//
|
||||||
|
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
||||||
|
this.toolStripSeparator4.Size = new System.Drawing.Size(118, 6);
|
||||||
|
//
|
||||||
|
// toolStripButton1
|
||||||
|
//
|
||||||
|
this.toolStripButton1.Checked = true;
|
||||||
|
this.toolStripButton1.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
|
||||||
|
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.toolStripButton1.Name = "toolStripButton1";
|
||||||
|
this.toolStripButton1.Size = new System.Drawing.Size(118, 20);
|
||||||
|
this.toolStripButton1.Text = "Template Tool";
|
||||||
|
this.toolStripButton1.Click += new System.EventHandler(this.TerrainTypeSelectorClicked);
|
||||||
|
//
|
||||||
|
// toolStrip1
|
||||||
|
//
|
||||||
|
this.toolStrip1.Dock = System.Windows.Forms.DockStyle.None;
|
||||||
|
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.toolStripButton15,
|
||||||
|
this.toolStripButton2,
|
||||||
|
this.toolStripButton14,
|
||||||
|
this.toolStripSeparator1,
|
||||||
|
this.toolStripButton3});
|
||||||
|
this.toolStrip1.Location = new System.Drawing.Point(3, 0);
|
||||||
|
this.toolStrip1.Name = "toolStrip1";
|
||||||
|
this.toolStrip1.Size = new System.Drawing.Size(275, 25);
|
||||||
|
this.toolStrip1.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// toolStripButton15
|
||||||
|
//
|
||||||
|
this.toolStripButton15.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton15.Image")));
|
||||||
|
this.toolStripButton15.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.toolStripButton15.Name = "toolStripButton15";
|
||||||
|
this.toolStripButton15.Size = new System.Drawing.Size(48, 22);
|
||||||
|
this.toolStripButton15.Text = "New";
|
||||||
|
this.toolStripButton15.Click += new System.EventHandler(this.toolStripButton15_Click);
|
||||||
|
//
|
||||||
|
// toolStripButton2
|
||||||
|
//
|
||||||
|
this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image")));
|
||||||
|
this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.toolStripButton2.Name = "toolStripButton2";
|
||||||
|
this.toolStripButton2.Size = new System.Drawing.Size(51, 22);
|
||||||
|
this.toolStripButton2.Text = "Save";
|
||||||
|
this.toolStripButton2.Click += new System.EventHandler(this.SaveClicked);
|
||||||
|
//
|
||||||
|
// toolStripButton14
|
||||||
|
//
|
||||||
|
this.toolStripButton14.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton14.Image")));
|
||||||
|
this.toolStripButton14.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.toolStripButton14.Name = "toolStripButton14";
|
||||||
|
this.toolStripButton14.Size = new System.Drawing.Size(59, 22);
|
||||||
|
this.toolStripButton14.Text = "Export";
|
||||||
|
this.toolStripButton14.Click += new System.EventHandler(this.ExportClicked);
|
||||||
|
//
|
||||||
|
// toolStripSeparator1
|
||||||
|
//
|
||||||
|
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
|
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
|
||||||
|
//
|
||||||
|
// toolStripButton3
|
||||||
|
//
|
||||||
|
this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image")));
|
||||||
|
this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.toolStripButton3.Name = "toolStripButton3";
|
||||||
|
this.toolStripButton3.Size = new System.Drawing.Size(70, 22);
|
||||||
|
this.toolStripButton3.Text = "Overlays";
|
||||||
|
this.toolStripButton3.Click += new System.EventHandler(this.ShowOverlaysClicked);
|
||||||
|
//
|
||||||
|
// surface1
|
||||||
|
//
|
||||||
|
this.surface1.BackColor = System.Drawing.Color.Black;
|
||||||
|
this.surface1.ImagesList = this.imageList;
|
||||||
|
this.surface1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.surface1.Name = "surface1";
|
||||||
|
this.surface1.ShowTerrainTypes = true;
|
||||||
|
this.surface1.Size = new System.Drawing.Size(653, 454);
|
||||||
|
this.surface1.TabIndex = 2;
|
||||||
|
this.surface1.Text = "surface1";
|
||||||
|
//
|
||||||
|
// frmBuilder
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(908, 596);
|
||||||
|
this.Controls.Add(this.toolStripContainer1);
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
this.Name = "frmBuilder";
|
||||||
|
this.Text = "Tileset Builder 2";
|
||||||
|
this.toolStripContainer1.ContentPanel.ResumeLayout(false);
|
||||||
|
this.toolStripContainer1.TopToolStripPanel.ResumeLayout(false);
|
||||||
|
this.toolStripContainer1.TopToolStripPanel.PerformLayout();
|
||||||
|
this.toolStripContainer1.ResumeLayout(false);
|
||||||
|
this.toolStripContainer1.PerformLayout();
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
this.tsTerrainTypes.ResumeLayout(false);
|
||||||
|
this.tsTerrainTypes.PerformLayout();
|
||||||
|
this.toolStrip1.ResumeLayout(false);
|
||||||
|
this.toolStrip1.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.ToolStripContainer toolStripContainer1;
|
||||||
|
private System.Windows.Forms.ToolStrip toolStrip1;
|
||||||
|
private System.Windows.Forms.ToolStripButton toolStripButton2;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||||
|
private System.Windows.Forms.ToolStripButton toolStripButton3;
|
||||||
|
private System.Windows.Forms.ToolStripButton toolStripButton14;
|
||||||
|
public System.Windows.Forms.ImageList imageList;
|
||||||
|
private System.Windows.Forms.ToolStrip tsTerrainTypes;
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private Surface surface1;
|
||||||
|
private System.Windows.Forms.ToolStripLabel toolStripLabel2;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
||||||
|
private System.Windows.Forms.ToolStripButton toolStripButton15;
|
||||||
|
private System.Windows.Forms.ToolStripButton toolStripButton1;
|
||||||
|
private System.Windows.Forms.ToolStripLabel toolStripLabel3;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
|
||||||
|
private System.Windows.Forms.ToolStripLabel toolStripLabel4;
|
||||||
|
private System.Windows.Forms.ToolStripTextBox txtTilesetName;
|
||||||
|
private System.Windows.Forms.ToolStripLabel toolStripLabel5;
|
||||||
|
private System.Windows.Forms.ToolStripTextBox txtID;
|
||||||
|
private System.Windows.Forms.ToolStripLabel lblExt;
|
||||||
|
private System.Windows.Forms.ToolStripTextBox txtExt;
|
||||||
|
private System.Windows.Forms.ToolStripLabel toolStripLabel6;
|
||||||
|
private System.Windows.Forms.ToolStripTextBox txtPal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
447
OpenRA.TilesetBuilder/frmBuilder.cs
Normal file
@@ -0,0 +1,447 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright 2007-2012 The OpenRA Developers (see AUTHORS)
|
||||||
|
* This file is part of OpenRA, which is free software. It is made
|
||||||
|
* available to you under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation. For more information,
|
||||||
|
* see COPYING.
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.Xml;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using OpenRA.FileFormats;
|
||||||
|
|
||||||
|
namespace OpenRA.TilesetBuilder
|
||||||
|
{
|
||||||
|
public partial class frmBuilder : Form
|
||||||
|
{
|
||||||
|
string srcfile;
|
||||||
|
int size;
|
||||||
|
public TerrainTypeInfo[] TerrainType;
|
||||||
|
public Palette tpal;
|
||||||
|
public bool PaletteFromImage = true;
|
||||||
|
public string PaletteFile = "";
|
||||||
|
public string ImageFile = "";
|
||||||
|
public int TileSize = 24;
|
||||||
|
|
||||||
|
private int ColorDiff(Color color, Color curr)
|
||||||
|
{
|
||||||
|
return Math.Abs(color.R - curr.R) + Math.Abs(color.G - curr.G) + Math.Abs(color.B - curr.B);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CreateNewTileset()
|
||||||
|
{
|
||||||
|
this.Show();
|
||||||
|
using (var fNew = new frmNew { })
|
||||||
|
if (DialogResult.OK == fNew.ShowDialog())
|
||||||
|
{
|
||||||
|
PaletteFromImage = fNew.PaletteFromImage;
|
||||||
|
PaletteFile = fNew.PaletteFile;
|
||||||
|
ImageFile = fNew.ImageFile;
|
||||||
|
TileSize = fNew.TileSize;
|
||||||
|
|
||||||
|
srcfile = ImageFile;
|
||||||
|
this.size = TileSize;
|
||||||
|
surface1.TileSize = TileSize;
|
||||||
|
|
||||||
|
Bitmap fbitmap = new Bitmap(ImageFile);
|
||||||
|
Bitmap rbitmap = fbitmap.Clone(new Rectangle(0, 0, fbitmap.Width, fbitmap.Height),
|
||||||
|
fbitmap.PixelFormat);
|
||||||
|
|
||||||
|
if (!PaletteFromImage)
|
||||||
|
{
|
||||||
|
tpal = Palette.Load(PaletteFile, false);
|
||||||
|
rbitmap.Palette = tpal.AsSystemPalette();
|
||||||
|
}
|
||||||
|
|
||||||
|
surface1.Image = (Bitmap)rbitmap; //(Bitmap)Image.FromFile(src);
|
||||||
|
surface1.Image.SetResolution(96, 96); // people keep being noobs about DPI, and GDI+ cares.
|
||||||
|
surface1.TerrainTypes = new int[surface1.Image.Width / size, surface1.Image.Height / size]; /* all passable by default */
|
||||||
|
surface1.Templates = new List<Template>();
|
||||||
|
surface1.Size = surface1.Image.Size;
|
||||||
|
surface1.Enabled = true;
|
||||||
|
Load();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public frmBuilder( string src, string tsize )
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
Dictionary<string, TerrainTypeInfo> DefTerrain = new Dictionary<string, TerrainTypeInfo>();
|
||||||
|
|
||||||
|
int size = int.Parse(tsize);
|
||||||
|
|
||||||
|
var yaml = MiniYaml.DictFromFile("tsbdefaults.yaml");
|
||||||
|
DefTerrain = yaml["Terrain"].NodesDict.Values.Select(y => new TerrainTypeInfo(y)).ToDictionary(t => t.Type);
|
||||||
|
int i = 0;
|
||||||
|
surface1.icon = new Bitmap[DefTerrain.Keys.Count];
|
||||||
|
TerrainType = new TerrainTypeInfo[DefTerrain.Keys.Count];
|
||||||
|
surface1.Enabled = false;
|
||||||
|
foreach (var deftype in DefTerrain)
|
||||||
|
{
|
||||||
|
Bitmap icon = new Bitmap(16, 16);
|
||||||
|
int x, y;
|
||||||
|
// Loop through the images pixels to reset color.
|
||||||
|
for (x = 0; x < icon.Width; x++)
|
||||||
|
{
|
||||||
|
for (y = 0; y < icon.Height; y++)
|
||||||
|
{
|
||||||
|
Color newColor = deftype.Value.Color;
|
||||||
|
icon.SetPixel(x, y, newColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
surface1.icon[i] = icon;
|
||||||
|
TerrainType[i] = deftype.Value;
|
||||||
|
|
||||||
|
ToolStripButton TerrainTypeButton = new ToolStripButton(deftype.Key, icon, TerrainTypeSelectorClicked);
|
||||||
|
TerrainTypeButton.ToolTipText = deftype.Key;
|
||||||
|
TerrainTypeButton.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
|
||||||
|
TerrainTypeButton.Tag = i.ToString();
|
||||||
|
i++;
|
||||||
|
tsTerrainTypes.Items.Add(TerrainTypeButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (src.Length > 0)
|
||||||
|
{
|
||||||
|
srcfile = src;
|
||||||
|
this.size = size;
|
||||||
|
surface1.TileSize = size;
|
||||||
|
surface1.Image = (Bitmap)Image.FromFile(src);
|
||||||
|
surface1.Image.SetResolution(96, 96); // people keep being noobs about DPI, and GDI+ cares.
|
||||||
|
surface1.TerrainTypes = new int[surface1.Image.Width / size, surface1.Image.Height / size]; /* all passable by default */
|
||||||
|
surface1.Templates = new List<Template>();
|
||||||
|
surface1.Size = surface1.Image.Size;
|
||||||
|
surface1.Enabled = true;
|
||||||
|
Load();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CreateNewTileset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public new void Load()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var doc = new XmlDocument();
|
||||||
|
doc.Load(Path.ChangeExtension(srcfile, "tsx"));
|
||||||
|
|
||||||
|
foreach (var e in doc.SelectNodes("//name").OfType<XmlElement>())
|
||||||
|
txtTilesetName.Text = e.GetAttribute("value");
|
||||||
|
|
||||||
|
foreach (var e in doc.SelectNodes("//terrain").OfType<XmlElement>())
|
||||||
|
surface1.TerrainTypes[int.Parse(e.GetAttribute("x")),
|
||||||
|
int.Parse(e.GetAttribute("y"))] = int.Parse(e.GetAttribute("t"));
|
||||||
|
|
||||||
|
foreach (var e in doc.SelectNodes("//template").OfType<XmlElement>())
|
||||||
|
surface1.Templates.Add(new Template
|
||||||
|
{
|
||||||
|
Cells = e.SelectNodes("./cell").OfType<XmlElement>()
|
||||||
|
.Select(f => new int2(int.Parse(f.GetAttribute("x")), int.Parse(f.GetAttribute("y"))))
|
||||||
|
.ToDictionary(a => a, a => true)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Save()
|
||||||
|
{
|
||||||
|
using (var w = XmlWriter.Create(Path.ChangeExtension(srcfile,"tsx"),
|
||||||
|
new XmlWriterSettings { Indent = true, IndentChars = " " }))
|
||||||
|
{
|
||||||
|
var tilesetName = txtTilesetName.Text;
|
||||||
|
|
||||||
|
if (tilesetName.Length < 1) { tilesetName = "Temperat"; }
|
||||||
|
|
||||||
|
w.WriteStartDocument();
|
||||||
|
|
||||||
|
w.WriteStartElement("tileset");
|
||||||
|
w.WriteStartElement("name");
|
||||||
|
w.WriteAttributeString("value", tilesetName);
|
||||||
|
w.WriteEndElement();
|
||||||
|
|
||||||
|
for( var i = 0; i <= surface1.TerrainTypes.GetUpperBound(0); i++ )
|
||||||
|
for( var j = 0; j <= surface1.TerrainTypes.GetUpperBound(1); j++ )
|
||||||
|
if (surface1.TerrainTypes[i, j] != 0)
|
||||||
|
{
|
||||||
|
w.WriteStartElement("terrain");
|
||||||
|
w.WriteAttributeString("x", i.ToString());
|
||||||
|
w.WriteAttributeString("y", j.ToString());
|
||||||
|
w.WriteAttributeString("t", surface1.TerrainTypes[i, j].ToString());
|
||||||
|
w.WriteEndElement();
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var t in surface1.Templates)
|
||||||
|
{
|
||||||
|
w.WriteStartElement("template");
|
||||||
|
|
||||||
|
foreach (var c in t.Cells.Keys)
|
||||||
|
{
|
||||||
|
w.WriteStartElement("cell");
|
||||||
|
w.WriteAttributeString("x", c.X.ToString());
|
||||||
|
w.WriteAttributeString("y", c.Y.ToString());
|
||||||
|
w.WriteEndElement();
|
||||||
|
}
|
||||||
|
|
||||||
|
w.WriteEndElement();
|
||||||
|
}
|
||||||
|
|
||||||
|
w.WriteEndElement();
|
||||||
|
w.WriteEndDocument();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TerrainTypeSelectorClicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
surface1.InputMode = (sender as ToolStripButton).Tag as string;
|
||||||
|
foreach (var tsb in (sender as ToolStripButton).Owner.Items.OfType<ToolStripButton>())
|
||||||
|
tsb.Checked = false;
|
||||||
|
(sender as ToolStripButton).Checked = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SaveClicked(object sender, EventArgs e) { Save(); }
|
||||||
|
void ShowOverlaysClicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (surface1.ShowTerrainTypes == false)
|
||||||
|
{
|
||||||
|
surface1.ShowTerrainTypes = true;
|
||||||
|
this.Refresh();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
surface1.ShowTerrainTypes = false;
|
||||||
|
this.Refresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ExportClicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var dir = Path.Combine(Path.GetDirectoryName(srcfile), "output");
|
||||||
|
Directory.CreateDirectory(dir);
|
||||||
|
var tilesetName = txtTilesetName.Text;
|
||||||
|
var tilesetID = txtID.Text;
|
||||||
|
var tilesetPalette = txtPal.Text;
|
||||||
|
var tilesetExt = txtExt.Text;
|
||||||
|
|
||||||
|
if (tilesetName.Length < 1) { tilesetName = "Temperat"; }
|
||||||
|
if (tilesetID.Length < 1) { tilesetID = "TEMPERAT"; }
|
||||||
|
if (tilesetPalette.Length < 1) { tilesetPalette = "temperat"; }
|
||||||
|
if (tilesetExt.Length < 1) { tilesetExt = ".tem,.shp"; }
|
||||||
|
// Create a Tileset definition
|
||||||
|
// Todo: Pull this info from the gui
|
||||||
|
var tilesetFile = "";
|
||||||
|
//var mixFile = "";
|
||||||
|
tilesetFile = tilesetName.ToLower();
|
||||||
|
if (tilesetFile.Length < 8)
|
||||||
|
{
|
||||||
|
tilesetFile = tilesetName.ToLower() + ".yaml";
|
||||||
|
//mixFile = tilesetName.ToLower() + ".mix";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tilesetFile = tilesetName.ToLower().Substring(0, 8) + ".yaml";
|
||||||
|
//mixFile = tilesetName.ToLower().Substring(0, 8) + ".mix";
|
||||||
|
}
|
||||||
|
|
||||||
|
string[] Ext = tilesetExt.Split(',');
|
||||||
|
var tileset = new TileSet()
|
||||||
|
{
|
||||||
|
Name = tilesetName,
|
||||||
|
Id = tilesetID.ToUpper(),
|
||||||
|
TileSize = size,
|
||||||
|
Palette = tilesetPalette.ToLower(),
|
||||||
|
Extensions = new string[] { Ext[0], Ext[1] }
|
||||||
|
};
|
||||||
|
|
||||||
|
// List of files to add to the mix file
|
||||||
|
List<string> fileList = new List<string>();
|
||||||
|
|
||||||
|
// Export palette (use the embedded palette)
|
||||||
|
var p = surface1.Image.Palette.Entries.ToList();
|
||||||
|
fileList.Add(ExportPalette(p, Path.Combine(dir, tileset.Palette)));
|
||||||
|
|
||||||
|
// Export tile artwork
|
||||||
|
foreach (var t in surface1.Templates)
|
||||||
|
fileList.Add(ExportTemplate(t, surface1.Templates.IndexOf(t), tileset.Extensions.First(), dir));
|
||||||
|
|
||||||
|
// Add the terraintypes
|
||||||
|
// Todo: add support for multiple/different terraintypes
|
||||||
|
foreach (var tt in TerrainType)
|
||||||
|
{
|
||||||
|
tileset.Terrain.Add(tt.Type, tt);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the templates
|
||||||
|
ushort cur = 0;
|
||||||
|
foreach (var tp in surface1.Templates)
|
||||||
|
{
|
||||||
|
var template = new TileTemplate()
|
||||||
|
{
|
||||||
|
Id = cur,
|
||||||
|
Image = "t{0:00}".F(cur),
|
||||||
|
Size = new int2(tp.Width,tp.Height),
|
||||||
|
};
|
||||||
|
|
||||||
|
// Todo: add support for different terraintypes
|
||||||
|
// Todo: restrict cells? this doesn't work: .Where( c => surface1.TerrainTypes[c.Key.X, c.Key.Y] != 0 )
|
||||||
|
foreach (var t in tp.Cells)
|
||||||
|
{
|
||||||
|
string ttype = "Clear";
|
||||||
|
//ttype = TerrainType[surface1.TerrainTypes[t.Key.X, t.Key.Y]].Type;
|
||||||
|
template.Tiles.Add((byte)((t.Key.X - tp.Left) + tp.Width * (t.Key.Y - tp.Top)), ttype);
|
||||||
|
}
|
||||||
|
|
||||||
|
tileset.Templates.Add(cur, template);
|
||||||
|
cur++;
|
||||||
|
}
|
||||||
|
|
||||||
|
tileset.Save(Path.Combine(dir, tilesetFile));
|
||||||
|
//throw new NotImplementedException("NotI");
|
||||||
|
//PackageWriter.CreateMix(Path.Combine(dir, mixFile),fileList);
|
||||||
|
|
||||||
|
// Cleanup
|
||||||
|
//foreach (var file in fileList)
|
||||||
|
//File.Delete(file);
|
||||||
|
|
||||||
|
Console.WriteLine("Finished export");
|
||||||
|
}
|
||||||
|
|
||||||
|
string ExportPalette(List<Color> p, string file)
|
||||||
|
{
|
||||||
|
while (p.Count < 256) p.Add(Color.Black); // pad the palette out with extra blacks
|
||||||
|
var paletteData = p.Take(256).SelectMany(
|
||||||
|
c => new byte[] { (byte)(c.R >> 2), (byte)(c.G >> 2), (byte)(c.B >> 2) }).ToArray();
|
||||||
|
File.WriteAllBytes(file, paletteData);
|
||||||
|
return file;
|
||||||
|
}
|
||||||
|
|
||||||
|
string ExportTemplate(Template t, int n, string suffix, string dir)
|
||||||
|
{
|
||||||
|
var TileSize = size;
|
||||||
|
var filename = Path.Combine(dir, "t{0:00}{1}".F(n, suffix));
|
||||||
|
var totalTiles = t.Width * t.Height;
|
||||||
|
|
||||||
|
var ms = new MemoryStream();
|
||||||
|
using (var bw = new BinaryWriter(ms))
|
||||||
|
{
|
||||||
|
bw.Write((ushort)TileSize);
|
||||||
|
bw.Write((ushort)TileSize);
|
||||||
|
bw.Write((uint)totalTiles);
|
||||||
|
bw.Write((ushort)t.Width);
|
||||||
|
bw.Write((ushort)t.Height);
|
||||||
|
bw.Write((uint)0); // filesize placeholder
|
||||||
|
bw.Flush();
|
||||||
|
bw.Write((uint)ms.Position + 24); // image start
|
||||||
|
bw.Write((uint)0); // 0 (32bits)
|
||||||
|
bw.Write((uint)0x2c730f8c); // magic?
|
||||||
|
bw.Write((uint)0); // flags start
|
||||||
|
bw.Write((uint)0); // walk start
|
||||||
|
bw.Write((uint)0); // index start
|
||||||
|
|
||||||
|
Bitmap src = surface1.Image.Clone(new Rectangle(0, 0, surface1.Image.Width, surface1.Image.Height),
|
||||||
|
surface1.Image.PixelFormat);
|
||||||
|
|
||||||
|
var data = src.LockBits(new Rectangle(0, 0, src.Width, src.Height),
|
||||||
|
ImageLockMode.ReadOnly, src.PixelFormat);
|
||||||
|
|
||||||
|
unsafe
|
||||||
|
{
|
||||||
|
byte* p = (byte*)data.Scan0;
|
||||||
|
|
||||||
|
for (var v = 0; v < t.Height; v++)
|
||||||
|
for (var u = 0; u < t.Width; u++)
|
||||||
|
{
|
||||||
|
if (t.Cells.ContainsKey(new int2(u + t.Left, v + t.Top)))
|
||||||
|
{
|
||||||
|
byte* q = p + data.Stride * TileSize * (v + t.Top) + TileSize * (u + t.Left);
|
||||||
|
for (var j = 0; j < TileSize; j++)
|
||||||
|
for (var i = 0; i < TileSize; i++)
|
||||||
|
{
|
||||||
|
bw.Write(q[i + j * data.Stride]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
for (var x = 0; x < TileSize * TileSize; x++)
|
||||||
|
bw.Write((byte)0); /* todo: don't fill with air */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
src.UnlockBits(data);
|
||||||
|
|
||||||
|
bw.Flush();
|
||||||
|
var indexStart = ms.Position;
|
||||||
|
for (var v = 0; v < t.Height; v++)
|
||||||
|
for (var u = 0; u < t.Width; u++)
|
||||||
|
bw.Write(t.Cells.ContainsKey(new int2(u + t.Left, v + t.Top))
|
||||||
|
? (byte)(u + t.Width * v)
|
||||||
|
: (byte)0xff);
|
||||||
|
|
||||||
|
bw.Flush();
|
||||||
|
|
||||||
|
var flagsStart = ms.Position;
|
||||||
|
for (var x = 0; x < totalTiles; x++ )
|
||||||
|
bw.Write((byte)0);
|
||||||
|
|
||||||
|
bw.Flush();
|
||||||
|
|
||||||
|
var walkStart = ms.Position;
|
||||||
|
for (var x = 0; x < totalTiles; x++)
|
||||||
|
bw.Write((byte)0x8);
|
||||||
|
|
||||||
|
var bytes = ms.ToArray();
|
||||||
|
Array.Copy(BitConverter.GetBytes((uint)bytes.Length), 0, bytes, 12, 4);
|
||||||
|
Array.Copy(BitConverter.GetBytes(flagsStart), 0, bytes, 28, 4);
|
||||||
|
Array.Copy(BitConverter.GetBytes(walkStart), 0, bytes, 32, 4);
|
||||||
|
Array.Copy(BitConverter.GetBytes(indexStart), 0, bytes, 36, 4);
|
||||||
|
|
||||||
|
File.WriteAllBytes(filename, bytes);
|
||||||
|
}
|
||||||
|
return filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void toolStripContainer1_TopToolStripPanel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void surface1_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void txtTilesetName_TextChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var tilesetFile = txtTilesetName.Text;
|
||||||
|
if (tilesetFile.Length > 8)
|
||||||
|
{
|
||||||
|
tilesetFile = tilesetFile.ToLower().Substring(0, 8);
|
||||||
|
}
|
||||||
|
txtID.Text = tilesetFile.ToUpper();
|
||||||
|
txtPal.Text = tilesetFile.ToLower() + ".pal";
|
||||||
|
if (tilesetFile.Length < 3)
|
||||||
|
{
|
||||||
|
txtExt.Text = ".tem,.shp";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
txtExt.Text = "." + tilesetFile.ToLower().Substring(0, 3) + ",.shp";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void toolStripButton15_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
CreateNewTileset();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
509
OpenRA.TilesetBuilder/frmBuilder.resx
Normal file
@@ -0,0 +1,509 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="imageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>215, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="imageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>
|
||||||
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||||
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACy
|
||||||
|
MwAAAk1TRnQBSQFMAgEBCgEAAYABAQGAAQEBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
|
||||||
|
AwABMAMAAQEBAAEgBgABMC4AAVoCXwHbAVwCZAHnAwQBBhgAA1IB9AEtAfQBzAH/AQABlgFBAf8BAAES
|
||||||
|
AQAB/wEAAZwBSgH/AQABtQGLAf8BAAEhAQkB/wEAARoBBgH/AQABIAEIAf8BAAGCAS8B/wEDAbgBjwH/
|
||||||
|
ARgBzAGlAf8BAAGjAUwB/wEAAYEBJQH/AQABKAEIAf8DKwH8lAADDQQSARgBWwJhAeEBVwJcAd8DEAEW
|
||||||
|
AwoBDhQAASsBOgErAfwBIwHbAbEB/wEAASMBCQH/AQABNgEaAf8BOAH3AdAB/wEAAaABUAH/AQABEwEA
|
||||||
|
Af8BAAEeAQgB/wEAAR0BBwH/AQABFgEAAf8BAwGyAYkB/wE/AfcB2QH/ATAB7QHFAf8BDgG0AYwB/wEA
|
||||||
|
AaEBRgH/AwAB/48AAQEDLQFGA14B2gErAVUBNQH8ASMBTQGoAf8BHgFFAakB/wErAVoBOwH8A1UBtQMZ
|
||||||
|
ASMQAAEvAk0B+gEAAakBgwH/AQABFAEAAf8BEgGyAY0B/wE7AfcB0wH/AQABUQEsAf8BAAEUAQAB/wEA
|
||||||
|
AR0BBwH/AQABHgEIAf8BAAEdAQcB/wEAAQsBAAH/ARoBuQGaAf8BOQHzAc4B/wE6AfUBzgH/ARMBvQGU
|
||||||
|
Af8BKQJNAfqIAAMoAT0DVQGyATICXwH7AX8BlQF/Af4BogHgAcYB/wEUAUIBnAH/ASwBhgG6Af8BlAHx
|
||||||
|
AcsB/wFWAXwBXwH7AVUCXAHqA0wBkgMRARcIAAEuAk0B+gEAAaEBUAH/AQABJwENAf8BJwHjAboB/wEi
|
||||||
|
Ad8BtwH/AQABOgEaAf8BAAEpAQwB/wEAASIBCgH/AQABHQEHAf8BAAElAQ4B/wNOAfADUgH0ATQB7AHG
|
||||||
|
Af8BNgHwAccB/wEvAeMBvQH/ASkCTQH6hAADJAE2AVgBYgFYAekBNAHdAa4B/wGrAfgB6QH/AcMB+QHv
|
||||||
|
Af8BrQHXAcMB/wERAUEBnAH/ASYBgwG1Af8BuQHrAdsB/wGsAfgB4QH/AYgB9QHOAf8BEQHJAYsB/wNZ
|
||||||
|
AcMDDQERBAABLgJNAfoBFQHHAZ0B/wEAAUABIgH/ATwB9gHPAf8BIAHcAbQB/wEAAYUBLgH/AQABhgEt
|
||||||
|
Af8BAAFGAR8B/wEAAR8BCAH/AQABIwENAf8DWQHyA1cBxQEpAU0BLgH6AToB9QHRAf8BOgH2AdAB/wEp
|
||||||
|
Ak0B+oAAAyUBNwFdAWEBXQHiAQsBzwGJAf8BoQHtAdcB/wHUAfIB7gH/AegB9QHyAf8BtgHXAcUB/wEP
|
||||||
|
AUABnAH/ASQBgwG1Af8B0QHrAeAB/wHpAfMB8gH/AdQB9QH0Af8BPwHfAbIB/wEEAcYBgQH/A1gBwAMR
|
||||||
|
ARcBMQF2AWMB/gEzAfIBywH/AQABTwExAf8BJgHeAbcB/wE4AfABygH/AQABngFIAf8BAAG2AYsB/wEA
|
||||||
|
AUsBIQH/AQABIAEJAf8BAAEaAQYB/wEAATUBGQH/A1kB8gNSAfQBPQH3AdcB/wE6AfUBzwH/ASkCTQH6
|
||||||
|
gAADVgGzASsBWAErAfwBBwG+AVIB/wGNAfgB0QH/AaAB+AHeAf8BtwH1AekB/wGnAdgBwgH/AREBPwGb
|
||||||
|
Af8BKAGEAbYB/wGyAesB2AH/AcAB9AHpAf8BnwH7Ad0B/wE5AesBsgH/AQMBtwFLAf8BTgFdAU4B8ANC
|
||||||
|
AXUDWAHvATcB5wHJAf8BCQGgAVAB/wEEAZwBTwH/ATwB9wHWAf8BCQGzAYwB/wEAATkBFgH/AQABLwET
|
||||||
|
Af8BAAEVAQAB/wEAATcBFwH/AQABpwGAAf8DWQHyAz4B+AE6AfUB0QH/ATgB9wHOAf8BAAESAQEB/4AA
|
||||||
|
AxQBHAMiATIDQgF2A1QBrgFRAm0B9wGFAfEB0AH/AZ0B2QHDAf8BEgE/AZsB/wEqAYUBtwH/AZwB7AHT
|
||||||
|
Af8BSgHrAb8B/wFeAmUB5QNUAa8DPQFqAxgBIgMRARcDTAGRA1EB9wE3AfcBzgH/AQABQQEiAf8BLQHe
|
||||||
|
AbkB/wEqAdkBtAH/AQABIgEJAf8DAAH/AQABigE4Af8BAAG4AY8B/wEAAbABhAH/AREBtQGQAf8BOQH1
|
||||||
|
Ac4B/wE7AfcB0gH/ARABogGFAf8DUQH3jAADIwEzAVoBXwFaAdsBmgHwAdAB/wGwAdoBxgH/AQ8BPgGb
|
||||||
|
Af8BKQGFAbcB/wGrAe0B1QH/AUMB3QG0Af8DWQHDAx0BKgwAAwIBAwMrAfwBGwHBAaEB/wNBAfkDQQH5
|
||||||
|
AT4B9gHZAf8BFQGvAY8B/wNTAfEBIQEyASoB+wEAAcEBkgH/ARABtAGMAf8BOwH3AdEB/wE4AfMBzAH/
|
||||||
|
ARQBpwGKAf8DSAH2AxABFogAAzUBVgE+AlwB+AE+Ad0BsgH/AcAB/gHzAf8BsgHWAcQB/wEMAToBlwH/
|
||||||
|
ASYBhQG2Af8BzQHtAeIB/wGsAfgB6QH/ASMBzwGaAf8BXAFkAVwB5wMUARsMAANYAcsBAAExAR8B/wNZ
|
||||||
|
AewDWQHrARsBtAGWAf8BHAG4AZoB/wNZAewDUwHxAQABPwElAf8BLwHiAb0B/wE5AfEBywH/AQkBswGJ
|
||||||
|
Af8BAAFSAS4B/wMvAf0DBAEGiAADFgEfASsBLAErAUMDQgF2A1kB9QGYAdsBxQH/AQ0BNgGWAf8BLAGH
|
||||||
|
AboB/wGXAewB0QH/AVwBYAFfAdQDPAFoAy0BRgMHAQkMAANbAeEDTgHwA0sBkANVAeoBGAGvAZAB/wEf
|
||||||
|
Ab4BnwH/A1kB8gNIAYQDUgH0AT8B9wHaAf8BDAG6AY8B/wEAAbgBjgH/AQQB0AGkAf8DPgH4A1IBqJQA
|
||||||
|
AzoBYQEVAbQBhAH/AR0BRwGtAf8BLQGUAboB/wFYAmIB7wMeASsYAANSAaYDTgGXAzABSwNOAfABOQHq
|
||||||
|
Ac8B/wNAAf0DWQHrAzABTQNOAfABKwHcAbUB/wNIAfYDQQH5AQQBzQGgAf8BAAGaAUsB/wM+AfiUAAMF
|
||||||
|
AQcBWAFbAVgBywEfAa4BpQH/ARIBqwGSAf8DTwGbJAADXAHcAQUBgwE+Af8BRgH3AeYB/wNZAfIDOAFd
|
||||||
|
BAADUwGsA1IB9ANOAfADVgG4ASkBLwEpAfoBAAGbAUsB/wNMAfOYAAMxAU8BGwHQAZAB/wFZAmQB7AMS
|
||||||
|
ARggAANMAZMDWAHvAUEB9wHeAf8DQQH5A1gBywwAA04BlwNMAZMDGgElA1kB8gEAAY8BQQH/A1EB95gA
|
||||||
|
Aw0BEQFIAWIBSQH2AVoBXAFaAc0DAAEBIAADVgG2AQABMgEiAf8DPgH4A1oBzQMGAQgYAANZAdcDWQHy
|
||||||
|
A1ABo5wAA1ABnwM7AWUkAANTAbADQQH5AyEB+wMHAQkcAANTAbADUgGmhAAB/gE9AQAB/wH+AYwBIAH/
|
||||||
|
Af4BrgGCAf8B/gE9AQAB/wH9Ad8BzgH/Af0BPgEAAf8B/gE9AQAB/wH+AZ0BOgH/Af4BrgGCAf8B9gE/
|
||||||
|
AQAB/wH9AUYBAAH/Af0B1gHAAf8B9QGFARoB/wH+AT0BAAH/AkwBSwGPBAABRAFMAcUB/wFEAUwBxQH/
|
||||||
|
ASYBLAG6Af8BJgEsAboB/wGqAeMC/wE/AacB5wH/AQABCwGIAf8BRAFMAcUB/wEmASwBugH/AaoB4wL/
|
||||||
|
AT8BpwHnAf8BqgHjAv8BPwGnAecB/wEAAQsBiAH/AQABCwGIAf8BJgEsAboB/xcAAf8DAAH/AwAB/wMA
|
||||||
|
Af8DAAH/AwAB/wMAAf8QAAHKAfMC/wHKAfMC/wHKAfMC/wFEAdEC/wEAAVEB2AH/AQsBugH7Af8BRAHR
|
||||||
|
Av8BygHzAv8BygHzAv8BygHzAv8BygHzAv8BRAHRAv8BCwG6AfsB/wFEAdEC/wFEAdEC/wHKAfMC/wJc
|
||||||
|
AVcB3wH7AVIBDQH/Af0BswGJAf8B+wE8AQAB/wH4AdUBwQH/AfoBRAEAAf8B+wE8AQAB/wH9AaQBRgH/
|
||||||
|
AfwBhgEYAf8B+wE8AQAB/wH5AbMBjAH/AfkBowFGAf8B+wE8AQAB/wNUAa8IAAIDAQ0B/wGqAeMC/wE/
|
||||||
|
AacB5wH/AUQBTAHFAf8BJgEsAboB/wEAAQsBiAH/AQABCwGIAf8BqgHjAv8BPwGnAecB/wEmASwBugH/
|
||||||
|
AaoB4wL/AT8BpwHnAf8BPwGnAecB/wEAAQsBiAH/ASYBLAG6Af8CAwENAf8LAAH/AwAB/wMAAf8DTgH/
|
||||||
|
A9QB/wOnAf8DpwH/A6cB/wOnAf8DAAH/AwAB/wwAAUQB0QL/AUQB0QL/AcoB8wL/AcoB8wL/AQsBugH7
|
||||||
|
Af8BAAFRAdgB/wELAboB+wH/AcoB8wL/AUQB0QL/AUQB0QL/AcoB8wL/AcoB8wL/AcoB8wL/AcoB8wL/
|
||||||
|
AUQB0QL/AUQB0QL/AyEBMAH3AToBAAH/Af0BtQGNAf8B+QGAAQ8B/wH1AZ0BPgH/AfQBqwGBAf8B9wE6
|
||||||
|
AQAB/wH6AZQBLgH/AfoBlAEtAf8B9wE6AQAB/wH0AcIBpgH/AfcBOgEAAf8CYgFYAe8DDAEQCAACAwEN
|
||||||
|
Af8BPwGnAecB/wE/AacB5wH/AUQBTAHFAf8BAAELAYgB/wE/AacB5wH/AUQBTAHFAf8BAAELAYgB/wEA
|
||||||
|
AQsBiAH/AQABCwGIAf8BAAELAYgB/wE/AacB5wH/AT8BpwHnAf8BPwGnAecB/wIDAQ0B/wNNAZYHAAH/
|
||||||
|
A9QB/wOnAf8DpwH/A04B/wPUAf8DpwH/A6cB/wOnAf8DpwH/A04B/wNOAf8DAAH/CAABRAHRAv8BygHz
|
||||||
|
Av8BygHzAv8BygHzAv8BCwG6AfsB/wEAAVEB2AH/AQsBugH7Af8BygHzAv8BygHzAv8BygHzAv8BRAHR
|
||||||
|
Av8BRAHRAv8BRAHRAv8BygHzAv8BygHzAv8BRAHRAv8EAAMqAUACYgFYAe8B/gGxAYYB/wH3AVIBDgH/
|
||||||
|
AfABqwGEAf8B8QGOASkB/wH0AT4BAAH/Af4BsQGGAf8B9AE9AQAB/wHvAaoBgwH/AfIBTQEJAf8CWQFX
|
||||||
|
Ab8MAAIDAQ0B/wFEAUwBxQH/AQABCwGIAf8BAAELAYgB/wEAAQsBiAH/AT8BpwHnAf8BPwGnAecB/wFE
|
||||||
|
AUwBxQH/AQABCwGIAf8BJgEsAboB/wEAAQsBiAH/AT8BpwHnAf8BJgEsAboB/wEAAQsBiAH/A04B8AsA
|
||||||
|
Af8D1AH/A6cB/wNOAf8DTgH/A9QB/wPUAf8D1AH/A9QB/wPUAf8DTgH/A04B/wMAAf8IAAHKAfMC/wHK
|
||||||
|
AfMC/wHKAfMC/wELAboB+wH/AQsBugH7Af8BAAFRAdgB/wELAboB+wH/AQsBugH7Af8BygHzAv8BygHz
|
||||||
|
Av8BygHzAv8BRAHRAv8BRAHRAv8BRAHRAv8BygHzAv8BygHzAv8IAAMXASACWQFXAb8B+wGZATYB/wH4
|
||||||
|
AZABKAH/AewBpgFRAf8B6wGhAUkB/wHzAUgBAgH/AfwBmwE5Af8B7wGAARUB/wHqAa0BigH/AfABNgEA
|
||||||
|
Af8DFwEgCAADTQGWAgMBDQH/AgMBDQH/AUQBTAHFAf8BPwGnAecB/wEAAQsBiAH/AQABCwGIAf8BAAEL
|
||||||
|
AYgB/wEAAQsBiAH/ASYBLAG6Af8BAAELAYgB/wFEAUwBxQH/AT8BpwHnAf8BJgEsAboB/wIDAQ0B/wsA
|
||||||
|
Af8D1AH/A6cB/wNOAf8DJgH/A04B/wNOAf8DTgH/AyYB/wNOAf8DTgH/A04B/wMAAf8IAAHKAfMC/wHK
|
||||||
|
AfMC/wELAboB+wH/AQsBugH7Af8BAAFRAdgB/wEAAVEB2AH/AQABUQHYAf8BCwG6AfsB/wELAboB+wH/
|
||||||
|
AcoB8wL/AcoB8wL/AcoB8wL/AUQB0QL/AUQB0QL/AUQB0QL/AcoB8wL/EAACOgE5AWACXAFXAd8B/QGR
|
||||||
|
ASgB/wHwAaUBTQH/AeQBqAGFAf8B8gGCARUB/wH8AY4BIwH/AeoBnQFDAf8B6AGHASMB/wJZAVcBvxAA
|
||||||
|
A00BlgIDAQ0B/wE/AacB5wH/AQABCwGIAf8BAAELAYgB/wEmASwBugH/AQABCwGIAf8BJgEsAboB/wEA
|
||||||
|
AQsBiAH/AQABCwGIAf8BPwGnAecB/wEmASwBugH/AgMBDQH/CwAB/wPUAf8D1AH/A9QB/wNOAf8D1AH/
|
||||||
|
A6cB/wOnAf8DTgH/A9QB/wOnAf8DpwH/AwAB/wgAAcoB8wL/AUQB0QL/AQsBugH7Af8BAAFRAdgB/wEA
|
||||||
|
AVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/AQsBugH7Af8BCwG6AfsB/wHKAfMC/wHKAfMC/wHK
|
||||||
|
AfMC/wFEAdEC/wFEAdEC/wHKAfMC/wgAAxcBIAMqAUADFwEgAwwBEAJHAUYBgAJiAVgB7wH2AYkBHwH/
|
||||||
|
Ad4BogFRAf8B6QFSARUB/wH8AYcBGQH/AeMBpQGAAf8B5QFKAQsB/wNAAXAQAAIDAQ0B/wFEAUwBxQH/
|
||||||
|
ASYBLAG6Af8BAAELAYgB/wEmASwBugH/AgMBDQH/AT8BpwHnAf8BJgEsAboB/wEAAQsBiAH/AUQBTAHF
|
||||||
|
Af8BRAFMAcUB/wIDAQ0B/wsAAf8DTgH/A04B/wNOAf8DJgH/A9QB/wOnAf8DpwH/A04B/wPUAf8DpwH/
|
||||||
|
A6cB/wMAAf8IAAFEAdEC/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/AQABUQHYAf8BAAFR
|
||||||
|
AdgB/wEAAVEB2AH/AQABUQHYAf8BCwG6AfsB/wFEAdEC/wHKAfMC/wHKAfMC/wFEAdEC/wFEAdEC/wHK
|
||||||
|
AfMC/wQAAxcBIAFiAlgB7wHFATIBAAH/AWICWAHvAxcBIAQAAwwBEAJHAUYBgAHkATUBAAH/AdsBjwE1
|
||||||
|
Af8B4AGFASMB/wH5AUkBAAH/AeABkwE4Af8CYgFYAe8DDAEQDAADTQGWAgMBDQH/AT8BpwHnAf8BAAEL
|
||||||
|
AYgB/wIDAQ0B/wIDAQ0B/wEmASwBugH/AgMBDQH/AgMBDQH/AUQBTAHFAf8BRAFMAcUB/wIDAQ0B/wcA
|
||||||
|
Af8D1AH/A6cB/wNOAf8DTgH/A04B/wPUAf8D1AH/A9QB/wNOAf8DTgH/A9QB/wPUAf8DAAH/CAABCwG6
|
||||||
|
AfsB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/
|
||||||
|
AQABUQHYAf8BCwG6AfsB/wELAboB+wH/AcoB8wL/AcoB8wL/AcoB8wL/AUQB0QL/AUQB0QL/BAABRwJG
|
||||||
|
AYAB1AFLAQAC/wG9ASQB/wHUAUwBAAH/AUcCRgGADAADIQEwAlwBWQHPAdgBUQEcAf8B3QFSARsB/wHr
|
||||||
|
AUABAAH/AdQBhgEqAf8CTAFLAY8QAAIDAQ0B/wFEAUwBxQH/AUQBTAHFAf8CAwENAf8DTQGWAgMBDQH/
|
||||||
|
A00BlgNNAZYCAwENAf8BRAFMAcUB/wIDAQ0B/wcAAf8D1AH/A6cB/wOnAf8DpwH/AyYB/wNOAf8DTgH/
|
||||||
|
AyYB/wMmAf8DTgH/A04B/wNOAf8DAAH/CQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/AQABUQHYAf8BAAFR
|
||||||
|
AdgB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/AQABUQHYAf8BCwG6AfsB/wFEAdEC/wHK
|
||||||
|
AfMC/wHKAfMC/wFEAdEC/wFEAdEC/wQAAjoBOQFgAcoBQgEAAv8B0gGIAf8BygFCAQAB/wI6ATkBYBAA
|
||||||
|
AwwBEAJcAVkBzwHTAUgBEAH/AdUBQQEEAf8B1QFCAQYB/wJiAVgB7xAAAgMBDQH/AUQBTAHFAf8BRAFM
|
||||||
|
AcUB/wIDAQ0B/xAAA00BlgIDAQ0B/wNNAZYHAAH/A9QB/wOnAf8DpwH/A6cB/wNOAf8DTgH/A04B/wNO
|
||||||
|
Af8D1AH/A6cB/wOnAf8DpwH/A6cB/wMAAf8FAAFRAdgB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wEA
|
||||||
|
AVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wELAboB+wH/AUQB0QL/
|
||||||
|
AcoB8wL/AcoB8wL/AcoB8wL/AUQB0QL/BAADFwEgAbcBIQEAAv8B5wG/Af8BtwEhAQAB/wMXASAUAAMM
|
||||||
|
ARAB2gErAQAB/wHKAUMBDQH/AdUBMgEAAf8B0AE6AQAB/xAAA00BlgIDAQ0B/wIDAQ0B/wNNAZYjAAH/
|
||||||
|
A9QB/wOnAf8DpwH/A6cB/wNOAf8D1AH/A6cB/wNOAf8D1AH/A04B/wOnAf8DTgH/A6cB/wMAAf8FAAFR
|
||||||
|
AdgB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/
|
||||||
|
AQABUQHYAf8BAAFRAdgB/wELAboB+wH/AQsBugH7Af8BygHzAv8BygHzAv8BygHzAv8BygHzAv8IAAFc
|
||||||
|
AlcB3wHUAZMBOwH/AVwCVwHfHAABXAJXAd8BxQE4AQAB/wHLATMBAAH/AlwBVwHfQwAB/wPUAf8D1AH/
|
||||||
|
A9QB/wPUAf8DTgH/A9QB/wOnAf8DTgH/A9QB/wOnAf8DpwH/A6cB/wOnAf8DAAH/BQABUQHYAf8BAAFR
|
||||||
|
AdgB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/
|
||||||
|
AQABUQHYAf8BCwG6AfsB/wELAboB+wH/AQsBugH7Af8BygHzAv8BygHzAv8BygHzAv8IAAFMAksBjwGy
|
||||||
|
ARcBAAH/AUwCSwGPGAACOgE5AWABxgEpAQAB/wHGASwBAAH/AWICWAHvAyEBMEMAAf8DAAH/A6cB/wOn
|
||||||
|
Af8DpwH/A04B/wPUAf8D1AH/A04B/wNOAf8DpwH/A04B/wOnAf8DpwH/AwAB/wQAAQsBugH7Af8BAAFR
|
||||||
|
AdgB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/
|
||||||
|
AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/AQsBugH7Af8BCwG6AfsB/wHKAfMC/wHKAfMC/wgAAyEBMAGy
|
||||||
|
ARcBAAH/AyEBMBQAAkcBRgGAAbwBIAEAAf8BwQEjAQAB/wJRAVABnwMXASBLAAH/AwAB/wMAAf8DAAH/
|
||||||
|
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wUAAVEB2AH/AQABUQHYAf8BAAFR
|
||||||
|
AdgB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/AQABUQHYAf8BAAFRAdgB/wELAboB+wH/
|
||||||
|
AQsBugH7Af8BAAFRAdgB/wEAAVEB2AH/AQABUQHYAf8BCwG6AfsB/wELAboB+wH/DAABWQJXAb8MAAMM
|
||||||
|
ARADQAFwAVwCVwHfAVwCVwHfAkwBSwGPAxcBIFsAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||||
|
AwAB/wMAAf8DAAH/CQABUQHYAf8BAAFRAdgB/wELAboB+wH/AQABUQHYAf8BAAFRAdgB/wEAAVEB2AH/
|
||||||
|
AQABUQHYAf8BCwG6AfsB/wELAboB+wH/AQsBugH7Af8BCwG6AfsB/wELAboB+wH/AQsBugH7Af8BCwG6
|
||||||
|
AfsB/wELAboB+wH/AQABUQHYAf8MAAMXASADFwEgA0ABcAJHAUYBgAFRAlABnwNAAXADIQEwmAABCwG6
|
||||||
|
AfsB/wELAboB+wH/AQsBugH7Af8BCwG6AfsB/wELAboB+wH/AQsBugH7Af8BCwG6AfsB/wELAboB+wH/
|
||||||
|
AUQB0QL/AUQB0QL/AUQB0QL/AcoB8wL/AcoB8wL/AQsBugH7Af8BCwG6AfsB/wELAboB+wH/EAACOQE6
|
||||||
|
AWACVwFZAb8CAAExAf8BFwEVAT4B/wKCAYEB/wNcAd8DUQGfAyoBQBAAA1wBzwNhAdwCYQFcAdwCYQFc
|
||||||
|
AdwDYQHcAmEBXAHcAmEBXAHcAmEBXAHcAmEBXAHcAmEBXAHcAmEBXAHcAmEBXAHcAmEBXAHcAmABWgHe
|
||||||
|
AVgCVgG8AwMBBAEPASABNwH+AgABCwH/AgABCwH/AgABCwH/AgABCwH/AgABCwH/AgABCwH/AgABCwH/
|
||||||
|
AgABCwH/AgABCwH/AgABCwH/AgABCwH/AgABCwH/AgABCwH/A1gB7wQAA2IB7wNiAe8DYgHvA2IB7wNY
|
||||||
|
Ae8DYgHvA2IB7wNiAe8DYgHvA2IB7wNiAe8DYgHvA2IB7wNiAe8DYgHvA1gB7wgAAxcBIAJZAVwBzwIA
|
||||||
|
ATwB/wJXAVwB3wIAATwB/wJGAUcBgAKFAYQB/wGqAagBpgH/AZgBlwGWAf8ChQGEAf8DVAGvAwwBEAgA
|
||||||
|
A1wB0QHtAdcBqQH/AeMBwgGSAf8BygGfAUUB/wHQAa4BgQH/AcwBpAFKAf8BxgGZAUAB/wHUAbMBhgH/
|
||||||
|
AccBmwFCAf8BvAGGAS0B/wHGAZgBPwH/Ac0BngFDAf8CYQFcAdwBVwJVAboDDAEQBAADOQFgAwAB/wEg
|
||||||
|
ATsBTwH/AU4BmwGsAf8BTgGbAawB/wFOAZsBrAH/AU4BmwGsAf8BTgGbAawB/wFOAZsBrAH/AU4BmwGs
|
||||||
|
Af8BTgGbAawB/wFOAZsBrAH/AU4BmwGsAf8BJwFDAYQB/wMAAf8EAAEOARABEgH/AaIBpQGnAf8BvgHB
|
||||||
|
AcMB/wE0ATcBOQH/ASsBLgEwAf8BQwFGAUgB/wGmAakBqwH/AcMBxgHIAf8BrgGxAbMB/wFHAUoBTAH/
|
||||||
|
ASoBLQEvAf8BsAGzAbUB/wG7Ab4BwAH/AVABgAGCAf8BMgE1ATcB/wEpASwBLgH/BAADFwEgAlgBYgHv
|
||||||
|
AlkBXAHPAyEBMAJXAVwB3wJQAVEBnwQAAoIBgQH/Ab0BuwG5Af8BtwG1AbMB/wGuAawBqgH/AosBigH/
|
||||||
|
A1wBzwMMARAEAAJeAVsB2AH9AewBvQH/AfQB5wG+Af8B6QHPAZ8B/wHSAa8BggH/AcwBpAFKAf8B0wGy
|
||||||
|
AYUB/wHHAZsBQgH/AbsBhQEsAf8BxwGbAUEB/wHGAZgBPgH/AcQBjAEyAf8DWQHDAygBPQwAAzkBYAMA
|
||||||
|
Af8BHgE5AU0B/wFLAZgBqQH/AUsBmAGpAf8BSwGYAakB/wFLAZgBqQH/AUsBmAGpAf8BSwGYAakB/wFL
|
||||||
|
AZgBqQH/AUsBmAGpAf8BSwGYAakB/wIAARYB/wNQAZ8EAAELAQwBDgH/ATkBPAE+Af8BqQGsAa4B/wFS
|
||||||
|
AYIBhAH/AT0BQAFCAf8BUgGCAYQB/wGVAZgBmgH/AZ4BoQGjAf8BlQGYAZoB/wE/AUIBRAH/ATYBOQE7
|
||||||
|
Af8BggGFAYcB/wG0AbcBuQH/AaYBqQGrAf8BNQE4AToB/wGUAZcBmQH/BAACWQFcAc8CWQFcAc8DDAEQ
|
||||||
|
AyEBMAIAAVEB/wMXASAEAANiAe8BtwG2AbQB/wG+AbwBugH/AbgBtgG0Af8BsQGvAa0B/wKLAYoB/wNU
|
||||||
|
Aa8EAAFYAlYBuwNqAfkB/wH8AdMB/wH0AekBvwH/AegBzAGcAf8BzAGjAUgB/wHAAZABOAH/AbwBhwEu
|
||||||
|
Af8BvQGIAS8B/wHAAY4BNQH/AcsBlgE6Af8BZAJTAfEBUgJQAaQUAANGAYACAAEGAf8BQQGMAZ8B/wFI
|
||||||
|
AZUBpgH/AUgBlQGmAf8BSAGVAaYB/wFIAZUBpgH/AUgBlQGmAf8BSAGVAaYB/wFIAZUBpgH/AQABFgEs
|
||||||
|
Af8DWAHvAxcBIAQAASsBLQEvAf8BhAGHAYkB/wGHAYoBjAH/AUIBRQFHAf8BQwFGAUgB/wFQAYABggH/
|
||||||
|
AZoBnQGfAf8BpAGnAakB/wFSAYIBhAH/AY4BkQGTAf8BjgGRAZMB/wFQAYABggH/AYYBiQGLAf8BkwGW
|
||||||
|
AZgB/wFJAUwBTgH/AYkBjAGOAf8COQE6AWACAAGIAf8DIQEwAwwBEAJQAVEBnwIAAYgB/wNUAa8CVwFZ
|
||||||
|
Ab8DYgHvAbgBtwG2Af8BxQHDAcIB/wG/Ab0BuwH/AbkBtwG1Af8BrgGtAasB/wKFAYQB/wMqAUADDAEQ
|
||||||
|
AVgCVgG5A2oB+QH/AfkB0AH/AfEB4QG4Af8B6AHLAZwB/wHZAbYBiAH/AccBnAFCAf8BvQGJAS8B/wG6
|
||||||
|
AYMBKQH/AcIBiAEtAf8CagFbAfkDVgG2AywBQwFQAk8BmwMIAQsOAAELAf8CAAELAf8CAAELAf8CAAEL
|
||||||
|
Af8CAAELAf8CAAELAf8CAAELAf8CAAELAf8CAAELAf8CAAELAf8DSAGHCAABmgGdAZ8B/wGKAY0BjwH/
|
||||||
|
AUUBSAFKAf8BOQE8AT4B/wGGAYkBiwH/AY0BkAGSAf8BTAFPAVEB/wFMAU8BUQH/AUIBRQFHAf8BkQGU
|
||||||
|
AZYB/wG6Ab0BvwH/AY8BkgGUAf8BjQGQAZIB/wGKAY0BjwH/AUcBSgFMAf8BhwGKAYwB/wJXAVkBvwJZ
|
||||||
|
AVwBzwJQAVEBnwIAAZIB/wIAAZIB/wJXAVwB3wNUAa8CRgFHAYADXAHfAb4BvQG7Af8BzAHLAckB/wHG
|
||||||
|
AcQBwwH/AcABvgG8Af8BugG4AbYB/wGZAZgBlgH/A1EBnwQAAwwBEAFYAlYBuwHMAbQBigH/Af4B9wHP
|
||||||
|
Af8B9AHmAb0B/wHvAdgBqAH/AfAB4gG5Af8B7QHeAbYB/wHrAdoBsgH/AdcBugGVAv8B/QHbAf8CagFn
|
||||||
|
AfkDWQHHAl4BWwHZAVYCVQGxCAADIQEwAwAB/wE1AVEBkgH/AUMBjgGhAf8BQwGOAaEB/wFDAY4BoQH/
|
||||||
|
AUMBjgGhAf8BPAGGAZoB/wEAAQQBHAH/A1gB7wMyAVAMAAGRAZQBlgH/AYQBhwGJAf8BOQE8AT4B/wGB
|
||||||
|
AYQBhgH/AZYBmQGbAf8BigGNAY8B/wFFAUgBSgH/AUMBRgFIAf8BPAE/AUEB/wFPAVIBgQH/AZ4BoQGj
|
||||||
|
Af8BlwGaAZwB/wGVAZgBmgH/AU0BUAFSAf8BggGFAYcB/wGIAYsBjQH/AgABnQH/AgABnQH/AlcBWQG/
|
||||||
|
AjkBOgFgAlkBXAHPAkYBRwGACAADWQG/AcMBwgHBAf8B0wHSAdEB/wHNAcwBygH/AccBxgHEAf8BwQG/
|
||||||
|
Ab4B/wGxAa8BrgH/A1wB3wgAAU4CTQGVAlwBWAHRAfkB3gGtAf8B9gHvAckB/wHyAeQBugH/AfcB8AHM
|
||||||
|
Af8B/QH/AeUB/wH9Af8B4wH/Af0B/wHkAf8B/AH/AeMC/wH9Ad0C/wH0AcsB/wHbAdkBvgH/AmABWwHW
|
||||||
|
CAADSwGPAgABDAH/AUABiwGfAf8BQAGLAZ8B/wFAAYsBnwH/AUABiwGfAf8BHgE4AU4B/wIAAQUB/wNZ
|
||||||
|
Ac8DIQEwEAABJwEpASsB/wE8AT8BQQH/AVIBggGEAf8BlgGZAZsB/wGMAY8BkQH/AU8BUgGBAf8BTAFP
|
||||||
|
AVEB/wE1ATgBOgH/AYABgwGFAf8BkQGUAZYB/wGOAZEBkwH/AZQBlwGZAf8BUgGCAYQB/wGAAYMBhQH/
|
||||||
|
AYoBjQGPAf8BUgGCAYQB/wIAAaYB/wJGAUcBgAgAAlcBWQG/AkYBRwGACAADWQG/AsgBxwH/AdoB2QHY
|
||||||
|
Af8B1AHTAdIB/wHOAc0BzAH/AcgBxwHFAf8BwgHAAb8B/wKCAYEB/wsAAQEBUgJRAaECYgFYAe8B/wHu
|
||||||
|
AcAB/wH6AfsB3gH/AfsB/QHhAf8B+wH8AeAB/wH7Af0B4QH/AfsB/AHfAf8B+wH8Ad8B/wH7Af0B4AH/
|
||||||
|
AfsB/gHjA/8B7gH/A1wB0QQAAxYBHwEPASABNwH+AgABCwH/AgABCwH/AgABCwH/AgABCwH/AgABCwH/
|
||||||
|
AgABCwH/A1wBzhgAARMBFgEYAf8BSQFMAU4B/wGYAZsBnQH/AY4BkQGTAf8BUAGAAYIB/wFMAU8BUQH/
|
||||||
|
AT4BQQFDAf8BMgE1ATcB/wFHAUoBTAH/AZcBmgGcAf8BnQGgAaIB/wGBAYQBhgH/AVEBgQGDAf8BigGN
|
||||||
|
AY8B/wGBAYQBhgH/AUMBRgFIAf8CAAGwAf8CRgFHAYAIAAJXAVkBvwJGAUcBgAgAA1kBvwHOAc0BzAH/
|
||||||
|
AuEB4AH/AdsB2gHZAf8B1QHUAdMB/wHPAc4BzQH/AckByAHGAf8CggGBAf8MAANCAXUBWQJWAb4B4AHE
|
||||||
|
AZUB/wH5Ae4BwwH/AfsB/QHgAf8C+gHbAf8B+AHzAdAB/wH7Af0B4AH/AfsB/AHgAf8B+wH8Ad8B/wH8
|
||||||
|
Af4B4gH/Af0B/gHeAf8DXAHRBAADRgGAAgABDAH/ATsBhQGZAf8BOwGFAZkB/wEhATsBUQH/AgABBQH/
|
||||||
|
A1cB3wMqAUAcAAE+AUEBQwH/AZYBmQGbAf8BjwGSAZQB/wFRAYEBgwH/AUwBTwFRAf8BPwFCAUQB/wE5
|
||||||
|
ATwBPgH/AUoBTQFPAf8BMQE0ATYB/wFQAYABggH/AY0BkAGSAf8BUgGCAYQB/wGKAY0BjwH/AYABgwGF
|
||||||
|
Af8BRgFJAUsB/wFBAUQBRgH/AgABuQH/AgABuQH/AlcBWQG/AjkBOgFgAlkBXAHPAkYBRwGACAADWQG/
|
||||||
|
AtMB0gH/AekB6AHnAf8C4gHhAf8B3ALbAf8B1gHVAdQB/wHCAcEBwAH/A1wB3xAAA1UBsgJtAWgB9wH+
|
||||||
|
AeIBrwH/AfEB4wG4Af8B9QHtAcYB/wH6AfsB3QH/AfwB/wHlAf8B+gH5AdoB/wH6AfsB3QH/AfkB+AHa
|
||||||
|
Af8B/AHvAcIB/wNeAdgEAANXAd8BBQEdATQB/wE4AYEBlwH/ARkBMgFIAf8DAAH/A1ABnwMMARAgAAGg
|
||||||
|
AaMBpQH/AZEBlAGWAf8BUQGBAYMB/wFMAU8BUQH/AUEBRAFGAf8BNwE6ATwB/wFMAU8BUQH/AU4BUQGA
|
||||||
|
Af8BRAFHAUkB/wFQAYABggH/AVEBgQGDAf8BjAGPAZEB/wGBAYQBhgH/AUUBSAFKAf8BQgFFAUcB/wEu
|
||||||
|
ATEBMwH/AlcBWQG/AlkBXAHPA1QBrwIAAcIB/wIAAcIB/wJXAVwB3wNUAa8CRgFHAYADXAHfA9gB/wHw
|
||||||
|
Au8B/wHqAekB6AH/AeQB4wHiAf8C3QHcAf8CrQGsAf8DUQGfEAADDAEQAVgCVgG7A2oB+QH6AeABsAH/
|
||||||
|
Af0B8QHJAf8B+wHwAccB/wH0AeoBwwH/AfYB7gHJAf8B/AH6AdkC/wHxAcEB/wNqAfkBVwJVAboGAAEL
|
||||||
|
Af8CAAELAf8CAAELAf8CAAELAf8DWgHbKAABmgGdAZ8B/wGXAZoBnAH/AUwBTwFRAf8BQgFFAUcB/wE1
|
||||||
|
ATgBOgH/AUwBTwFRAf8BTQFQAVIB/wFFAUgBSgH/AYQBhwGJAf8BkgGVAZcB/wGUAZcBmQH/AYABgwGF
|
||||||
|
Af8BSQFMAU4B/wFDAUYBSAH/ATEBNAE2Af8BEAESARUB/wI5AToBYAIAAcsB/wMhATADDAEQAlABUQGf
|
||||||
|
AgABywH/A1QBrwJXAVkBvwNiAe8D3QH/AvcB9gH/AfEC8AH/AesB6gHpAf8C3gHdAf8CiAGHAf8DKgFA
|
||||||
|
FAADDAEQAVgCVgG7AVoCVwHFA2UB9AHKAbMBiAL/AfwB0QL/AfkBzQH/AfAB1wGoAf8DXwHzAVcCVQG6
|
||||||
|
AwwBEAcAAf8BFQEtAUQB/wEbATMBSwH/AwAB/wMMARAoAAEnASoBLAH/AZ0BoAGiAf8BSQFMAU4B/wEz
|
||||||
|
ATYBOAH/AUsBTgFQAf8BUAGAAYIB/wFEAUcBSQH/AYIBhQGHAf8BkgGVAZcB/wGVAZgBmgH/AYABgwGF
|
||||||
|
Af8BRwFKAUwB/wFHAUoBTAH/ATgBOwE9Af8DWAHpA1wBzwQAAlkBXAHPAlkBXAHPAwwBEAMhATACAAHT
|
||||||
|
Af8DFwEgBAACggGBAf8D7wH/A/0B/wL4AfcB/wHyAvEB/wKjAaIB/wNUAa8gAANAAXEBVQJTAa0BWAJW
|
||||||
|
AbkBYQJcAdwBYQJcAdwDWQHHA1MBqgMMARAIAANaAdsCAAELAf8CAAELAf8CAAELAf8DQAFwKAABFQEX
|
||||||
|
ARkB/wEvATIBNAH/ATwBPwFBAf8BSwFOAVAB/wFSAYIBhAH/AUkBTAFOAf8BjAGPAZEB/wGQAZMBlQH/
|
||||||
|
AZcBmgGcAf8BgQGEAYYB/wFKAU0BTwH/AUgBSwFNAf8BOAE7AT0B/wNdAe0DTQGRAyIBMgQAAxcBIAJY
|
||||||
|
AWIB7wJZAVwBzwMhATACVwFcAd8CUAFRAZ8EAAKCAYEJ/wP2Af8CpwGmAf8DXAHPAwwBECgAAw4BEwM4
|
||||||
|
AV0DOAFdAysBQhAAAwwBEANZAc8CAAEKAf8CAAEKAf8DVwHfAxcBICQAAQUBCAEKAf8BlgGZAZsB/wGD
|
||||||
|
AYYBiAH/AYQBhwGJAf8BTQFQAVIB/wFGAUkBSwH/AbEBtAG2Af8BnwGiAaQB/wGBAYQBhgH/AUABQwFF
|
||||||
|
Af8BUgGCAYQB/wFCAUUBRwH/A0wB8wNNAZEDIAEuDAADFwEgAlkBXAHPAgAB4gH/AlcBXAHfAgAB4gH/
|
||||||
|
AksBTAGPApIBkQH/AugB5wH/AsEBwAH/AooBiQH/A1QBrwMMARBQAAMWAR8DWAHmAgABCwH/AgABCwH/
|
||||||
|
AQ8BIAE3Af4DQAFwIAABCwEOARAB/wGpAawBrgH/AZ4BoQGjAf8BlAGXAZkB/wEpASsBLQH/A0EB+QE8
|
||||||
|
AT8BQQH/Ab0BwAHCAf8BNgE5ATsB/wECAQUBBwH/AUMBRgFIAf8BBwEJAQwB/wNPAZcDIgEyGAACOQE6
|
||||||
|
AWACVwFZAb8CAAHpAf8BGgEVAcIB/wKCAYEB/wNcAd8DUQGfAyoBQGAAAzUBVwNaAdsBDwEgATcB/gNI
|
||||||
|
AfYgAAIzATYB/wEKAQwBDgH/AaQBpwGpAf8BPAE/AUEB/wISARQB/wNQAZoBHQEeASEB/wESARUBFwH/
|
||||||
|
AQwBDgEQAf8BMQEyATUB/wIXARkB/wEyATMBNgH/Ax4BKwwAAUIBTQE+BwABPgMAASgDAAFAAwABMAMA
|
||||||
|
AQEBAAEBBQABgAEBFgAD/wEAAf4BPwYAAfgBHwYAAeABDwYAAcABAwYAAYABAR4AAeABBwYAAcABAwGA
|
||||||
|
BQABwAEDAYAFAAH4AR8BgAUAAfgBPwHgAYAEAAH8AT8BwQHABAAB/AE/AcEB+AQAAf4BfwHDAfkFAAEB
|
||||||
|
AgAB+AEPAwABAwIAAcABBwMAAQMCAAGAAQMCAAGAAQcBAAEBAYABAwIAAcABAwEAAQEBgAEDAgAB8AED
|
||||||
|
AcABAQGAAQMCAAHAAQEB4AEBAYABAwIAAYIBAAHgAQEBAAEDAgABgwGAAfABAQEAAQMCAAGDAcAB8AHx
|
||||||
|
AQABAQIAAYMB4AHwAf8BAAEBAgABxwHwAv8BAAEBAgABxwHgAv8BAAEBAgABxwHBAv8BgAEBAgAB7gEH
|
||||||
|
Av8B4AEDAgAB4AE/BP8CAAHwAQ8DAAEBAgABwAEDAQABAQEAAQECAAGBAQEBAAEDAYABAQIAAYEBAQEA
|
||||||
|
AQcBwAEBBgAB4AEDBAABgAEAAcABBwIAAQMBAAHAAQABwAEPAgABMwEAAcABAAGAAT8CAAEzAQAB4AEA
|
||||||
|
AYABfwIAAQMBAAHwAQABgAH/BAAB8AEAAYMB/wQAAfgBAAGDAf8CAAGBAQEB/gEBAYMB/wIAAYEBAQH/
|
||||||
|
AYcBgQH/AQABAQHAAQMC/wHAAf8BAAEDAfABDwL/AfAB/wEAAQcL
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="tsTerrainTypes.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>314, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABWSURBVDhPY2AgAWRmZv5HxiRohSgFad6/fz8Yg9gDYwDR
|
||||||
|
XqCvf7HZRlKAYVNMkhdIsg1b3KHbRnRIwwxDdwHJiYUqBuDzBkwOZ9LF5wKivEMVA8j1AgCw4woaY7rJ
|
||||||
|
SwAAAABJRU5ErkJggg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="toolStripButton15.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEiSURBVDhP7ZKxSgNBEIYHbH0A38D3EF/AxkdIqaV2V1nc
|
||||||
|
HoKNEkGw1lRWwYiF1RVBCFhEgqgQxbPIKebIcblcPnf2zBGtLbMw/Hu7+383M7siiyGFkb3USKw6NeJl
|
||||||
|
RqLCl2DoSZIb6U2MtO1eYxrIGr7UNOx8K/elqypqJo3hbB01k0RuzjiBuAdvbbhvwMEyXNZcqJlBFw5X
|
||||||
|
kE9PRuQjFKJ/dcabHRTkgGpMB3ZtF56vyrjYhK8+YyN9qUyd49I4A0yyMoPXEO5OYfgCHw/OSHQLTy1s
|
||||||
|
aa0K4EBayp8MbA9CgiVQ4GPTlnMORQ4nq9iebfwGaAY6VOcyqMrs1OF6uzxjBPcGZx1XtXGkG6rvRrKf
|
||||||
|
Wwjt975CrNbnzywe8T914BvPFkdY2/qCYgAAAABJRU5ErkJggg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKrSURBVDhPjZLZTxNRGMX7D/lAl8El/hc+GsNW6AIEEJFN
|
||||||
|
0cQHNYJEo5FFqqVhFUV2O4CmilCoWDCYspQuCKVAV6BTpsvxu1PlkdDk5GY69/zOmXs/Gafjy1U6vlmp
|
||||||
|
522kIKcfEjl9Q5rT86B3ki4VT+JK6RQul/DILhoPXS3lFxS6sWsy9uO0fNuSO4Ylt4B4Ig2BFDtJIXyc
|
||||||
|
xF5YRCCakJ4FMYX9SAKtpuG0we5K3HhkOeC0I/kyTm92LLliuNfnR0wkM20seDKH4GECe2SIxpISOEKr
|
||||||
|
9+AE6744zPYgpuwH4Mr4OAEmw3YC3O3ZlTYxMYA/IiJ4lJCSWYNdauPcjWN9R0BtpwdfV0JQaRvSBBgS
|
||||||
|
bc5jAvikTUyFjVb4aT2MpxCnVqGjJFx+li5gdVtAtdGNXosPKs0YCNCQtm4c4U63Dx6qyLQVOKH0pJR+
|
||||||
|
KKSwHRBPzY7tGG6/2YRp+g+URSMMwGN2lQBdO1J1NaUXNVlR/GwBJSRt8zzU9D9791+V7WswmD1QFg4T
|
||||||
|
gK5pxhFFnWmLvo1Ea53Ji7pOJg9qjB5KdKHKsInKDicq2tdR+XoDraNOKNUfMwDLSjRjJmWMJIIwc/Vb
|
||||||
|
t1T5VgcByHizbY20iheDa1AUfMgAppfDZPb+k+c0XTJTcpXBKZkryFje4kBZy2809a9AkT/AAGbw9hBq
|
||||||
|
jV7pvs+jkpe/8Lh7GfK8fsgu0iFOLIakugJd2cMveWeKzYTu+U886FyEPLePAMU8xmxBapABWDY+nykG
|
||||||
|
0DT/wP0OGwF6IMumORieDxDAfe4G6sZ51LdZkZVDkyjXmDcHvu9jYGbvXN/Pzqi+dQ41r2aRdd0YkKm0
|
||||||
|
n56qtBOjytyJoEozTuM5Kk2YsnAICvUgXdV7yPPf0YH1UeVeSu2Rki/kdEWycru+/QU0BQ9a6sg3EgAA
|
||||||
|
AABJRU5ErkJggg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripButton14.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKnSURBVDhPjVNdSJNRGD4RRJddmUgYXvR/YxAZZVfCiCCi
|
||||||
|
iwgqigx/SFAIb0pjplhplJOmm841P9dG25wlYxHO1jY3F81N3PAHQ6c4mJtin8rA2tbTOQeSpRK98MDh
|
||||||
|
+d73fZ73PecjZIdwuVxP+vr6IlKp9BcDOzNup9xtnNlszjIYDD+xJRin1+tzdmzCulsslnBPT0+aAv39
|
||||||
|
/ZiYmEA6nUYqlUIoFOIc+8ZyWO5fjrRa7Uam4NzcHHp7ezE2NsZhMpnAuMxgNdwNtayhM2J8fJwrMni9
|
||||||
|
XlitVtAkDnZmHHOTTCYRDAbBarq6uvREo9Ekp6am4Pf7EQgEuCJT3xp/HI2MjMDpdMJut0OlUiUJtSeu
|
||||||
|
r68jFothZmYGs7OzoPNhenp60xE7Dw0NYXJyEjabjWN0dBSdnZ0iMRqNvMHq6ipWVlYwPz/P7fp8vs0d
|
||||||
|
MNXKN4Uo0ZzEp882OBwO7rajo0MkgiDwBqIoYnl5GfF4HJFIhDtgo7ndbq5Y1l2Ax5bruKY8ikH7ABeQ
|
||||||
|
yWQikcvlPxKJBNbW1hCNRnlxOBxGle48KrVnUC6cQrE6H7XvrsLoa0W16TIkLdlwDTvQ1ta2QeiWbWwh
|
||||||
|
CwsLfAzWhO2iQluA94F2mP1yXvjWJ4NssBqCtxnlOglOP92L5ldNHraDPXSMEnob39h2FxcXsbS0hLt0
|
||||||
|
Xlb8cqAKTR8r0PihFHWWO6i3lkHpasDN7kIckpLU5sukLyxLrVY3KhSK7x6PBzdUx2D4KoPuywsIw814
|
||||||
|
7XlGm9yDwlWPUt0F5D4i8ZyHJH/b06ZXc4JCd0WRh4utB1DUkoVzz/fhluYs2p11KNZKQAuj2Q/I8X/+
|
||||||
|
XEqlUkLd2Omi3BSXDjfsStwWinCwhkRyasmR//ozM5Py7pNEbs1u7K8heZn8b1ywZgwAtruEAAAAAElF
|
||||||
|
TkSuQmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripButton3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKWSURBVDhPjZNvSBNhHMd9GdGrCHoTFL1avSqE1ovVFeaf
|
||||||
|
lnplm7p0/kGXuSQLIxxdqTgnWbkiS2YvJtimZnQkiSv3J+fmkO2eW0YKFW53g1aMyD1nBcHxdI+6VzfC
|
||||||
|
g4c7nvt9vr/v93f35ORsXmFntZIZraHBaG3KN0aIPichBu36VGiogg4NnFdm6rLeWafewD6rTzIjNSA8
|
||||||
|
fIGK2HWKoK1MERrSUCGbFgQGK5J+61lDVhh33oCrLEwMHgBxqAGc0MryQkuUS5cscqv7/Q9Iy5yVTHrv
|
||||||
|
quVOGGcNjTtHYlABONgsLRPLwxuAX7vOcsI1SaiKjf3cN9tPAk+vmpa5AM7aVHi4koomYJkEt2/AQtsm
|
||||||
|
3AJ4aJQcnfL0qClXT0lKJuAbJcSITaeQOl3OdM1EwI5YDjZhF66OAoW3jxDlAg5p2tLAcCEGQVy4gsUY
|
||||||
|
Dl5a3+NhY5QTKrCAx5JFIGivSoWeaCiGXyvacAGN63ACGqTnBpZL1zE8PD59M59ymQrkEeYHNfT8gBbg
|
||||||
|
QUm5yzfBRpZP12NYikG+T/zaQ3ed/jPVnrcgi+C3lioDj8nku37Swqz83ssmhJPYsiSmjXJQheHJjuK/
|
||||||
|
ixOtyNt2Ar1sVenkc+grNfil7+y5cwbMdBdSOC9e06Y8ynePEJdem1AiYkMrgfvI3U2iVw3K3TIRr0Wt
|
||||||
|
fGtW066eghQelttMiJO3C1dnuorRZ18v+vZxBH1fdqBPM51ogjgmOrOJZPtV6auEfra/EsWCVpT8MIzi
|
||||||
|
oUdo4Wk9suQrvkxezN3+3zOSefnCqNK7zefQ8tQttDTVgeYelqOJpsM/nmsP7tiSAC4aNxzRO6pz0ZvO
|
||||||
|
IjRWp/zq0OXu2jKcKRxvOLpzqPKQ2V5LbMvs/QO77KO/y8T3cgAAAABJRU5ErkJggg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>43</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
|
||||||
|
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
|
||||||
|
/wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAA////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9MVN3/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/0tT2v8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP90gOP/SVHW/0pS1/8AAAD/AAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/2vwyv9q8Mr/IYaQ/wAA
|
||||||
|
AP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/3B52f9ES8f/AAAA/wAAAAAAAAAAAAAA/23x
|
||||||
|
zP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP//
|
||||||
|
/wD///8AAAAAAAAAAAAAAAAAAAAA/0ZNzv8AAAD/AAAAAAAAAP9udtP/bnbS/x4qfv9DScD/AAAA/wAA
|
||||||
|
AAAAAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP//
|
||||||
|
/wD///8A////AP///wAAAAAAAAAAAAAAAP9ye97/RErJ/0NJxP8AAAD/Q0m+/2tzzP9DSbr/Q0m5/x4q
|
||||||
|
e/9DSbr/AAAA/wAAAAAAAAAAAAAA/xuNgP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAD///8A////AP///wD///8A////AAAAAAAAAAD/Tbia/02rlv8ccn//CkNR/wtCU/8VNWj/Hip6/0NJ
|
||||||
|
s/9DSbL/Hip7/x4qe/9DSbT/AAAA/wAAAP80YaT/DkJa/0JMwv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAD/XevD/1fov/9X5r7/ETtf/x0s
|
||||||
|
eP9DSa7/Q0mt/0NJrP8eKnv/Hip7/0NJrv9DSbD/Hip7/0JLtP87VKz/Hip7/0NKwv8AAAD/AAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAD/Vee+/xM4
|
||||||
|
Yv9DSa//Hip7/0NJqP9DSaf/Q0mm/0NJpv9DSab/Q0mo/0NJqf8eKnv/Hip7/0JKsv8eKnv/Hip7/0NK
|
||||||
|
wv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AAAAAAAAAAAAAAAA/2N+
|
||||||
|
vv8QO13/Q0mu/x4qe/9DSab/Q0mm/0NJpv9DSab/Q0mm/0NJpv9iZ7P/Q0mm/0NJpv8eKnv/Q0mt/x4q
|
||||||
|
e/8eKnv/Hip7/0NKwv8AAAD/AAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD///8AAAAAAAAA
|
||||||
|
AAAAAAD/aG7I/2Vrwf9DSar/Hip7/0NJpv9DSab/Hip7/0NJpv9DSab/YGex/2Bnsf9DSab/Q0mm/x4q
|
||||||
|
e/9BS6T/Q0ms/x4qe/8eKnv/Hip7/0RKw/8AAAD/AAAAAAAAAAAAAAAA////AP///wD///8A////AP//
|
||||||
|
/wAAAAAAAAAA/2lvzP9ma8X/Q0mt/0NJpv9DSab/Q0mm/x4qe/8eKnv/Q0mm/0NJpv8+Tp7/U3qX/y5d
|
||||||
|
hf80V47/EzRg/y1ehP9DSaf/Hip7/x4qe/8eKnv/Hip8/0RLxP8AAAD/AAAAAAAAAAD///8A////AP//
|
||||||
|
/wD///8A////AAAAAAAAAAD/aG3J/2Rpwv9DSan/Q0mm/0NJpv9DSab/Hip7/x4qe/9DSab/P02g/xpx
|
||||||
|
ZP9AjHb/FHdb/xR3W/8APy7/FHdb/y9ch/8eKnv/Hip7/x4qe/8eKnv/Q0nA/0VMx/8AAAD/AAAAAP//
|
||||||
|
/wD///8A////AP///wD///8AAAAAAAAAAP9na8f/XW+0/097mP9faLH/Q0mm/0NJpv8eKXv/Hih7/zRY
|
||||||
|
jv8acWT/P4x2/z2Mdv8RdFj/EnVZ/xR3W/8Ud1v/FXZc/xM2Yf8eKnv/Q0mv/x4qe/8eKnv/REvE/wAA
|
||||||
|
AP8AAAAA////AP///wD///8A////AP///wAAAAD/TJ2b/0aRjv88kHj/EXRY/xByWf8eaWz/CjND/wg1
|
||||||
|
QP8DODP/FHdb/z+Mdv89jXb/R8Sh/0fDoP9HxKH/Ssml/xR3W/8Ud1v/FHdb/xA7W/8eKnv/Hip7/x4q
|
||||||
|
e/8eKn//RUzJ/wAAAP////8A////AP///wD///8A////AAAAAP9Cp4r/Rt2y/0HPp/9Dx6L/RMOf/wly
|
||||||
|
VP8Nc1b/EXRY/xJ1Wf8RdFj/SMej/0fEof9Hwp//1v/z/0fCn//X//T/S8un/xR3W/8Ud1v/AEs3/yZm
|
||||||
|
fP8cLHf/Hip7/x4qff9FS8f/AAAA/////wD///8A////AP///wD///8AAAAA/1Hku//c//b/2P/0/8v/
|
||||||
|
8P/I//D/yP/w/9H/8v9Gw6D/DXNW/w90V/87jHX/R8Og/0bAnv9GwJ7/R8Kf/0jGov9Kyqb/RIt5/xR3
|
||||||
|
W/8ASTX/FHpd/wJOP/8MQVT/Ejpk/zdgrv8AAAD/////AP///wD///8A////AP///wAAAAD/QqmM/0Xe
|
||||||
|
s/9B0Kj/QMSf/0K+m/9DvJr/Rb6c/0bBnv9Hw6D/C3JV/wtyVf9GgYb/TbWu/022rv9Kvaj/Pot4/xlw
|
||||||
|
ZP8+Tp7/JWZ2/wBHM/8TeVz/AFE7/wBQO/8AUjz/FJVx/wAAAP////8A////AP///wD///8A////AAAA
|
||||||
|
AAAAAAD/S+G3/0HUq/8/yaL/QcGd/0O+m/9EvZv/Rb+d/0bBnv8Oblr/KlqC/0NJpv9DSab/Q0mm/0NJ
|
||||||
|
pv8+Tp7/Ll6E/0NJpv8/TaD/F3Rf/xN5XP8PfF3/EINi/wBSPP8Tl3L/AAAA/////wD///8A////AP//
|
||||||
|
/wD///8AAAAAAAAAAAAAAAD/Rt6z/0jGuf9Iu7L/RYKG/0WChv9GgYf/TXqS/1ZxoP9gZ7H/Q0mm/yFi
|
||||||
|
df8RJ1b/Q0mm/0NJpv9CSqT/Q0mm/z1PnP8XdF//SZiC/0qehv9Np43/D49r/wAAAP8AAAAA////AP//
|
||||||
|
/wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAD/YGe8/2BntP9gZ7H/YGex/2Bnsf9gZ7H/YGex/2Bn
|
||||||
|
sf8fYXP/CXFU/wAvIv8lY3f/Q0mm/0NJpv8eKnv/Hip7/x5tb/9Im4P/SqKJ/0urkP8Pk27/AAAA/wAA
|
||||||
|
AAD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAP9DkIz/RoWK/xlma/8TZGj/RYGF/0aA
|
||||||
|
h/9ChIH/QIV+/wFsTv8EblD/B3BS/w1zVv8abGb/MFuI/xcvav8eKnv/OlKd/0qgif9KqI3/YO3F/wAA
|
||||||
|
AP8AAAAAAAAAAP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAA/0Chhv86k3r/PY12/0LB
|
||||||
|
nf9Cupj/QriX/0K4l/9CuJf/QriX/0O5mP9EvJr/RsGe/z2Ndv8Tdlr/Aj8z/w46Vf8uXpL/JWqK/1/s
|
||||||
|
xP8AAAD/AAAAAAAAAAAAAAAA////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAD/Q6eL/0fe
|
||||||
|
s/9C0Kj/y//w/0G8mf+v/uj/rf3m/6395v+t/eb/rv3n/0K4l//D/+//RMSg/0CMdv8UeVz/DX5e/y1h
|
||||||
|
lf8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAD/TOK4/0PWrf8/yqP/P8Cc/0C7mP9At5X/QbeW/0G3lv9At5X/sf7o/0G+m//X//T/3P/1/0rb
|
||||||
|
sv8Kg2H/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD///8AAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAP9DqYz/SOC1/0PUq/8/yqP/PsSe/z7Am/8/vpr/P76a/z++mv8/wJz/P8Se/0HM
|
||||||
|
pf9F1az/TOO4/0apjf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP//
|
||||||
|
/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9CqIv/SuC2/0XZr/9D0qr/QM6m/z/LpP9Ay6T/P8uk/0HO
|
||||||
|
pv9C0an/Rdmv/0rhtv9Ep4v/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP//
|
||||||
|
/wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/QaaJ/03ht/9J37X/R92z/0bd
|
||||||
|
sv9G3bL/SN+0/0rgtv8+oob/RauO/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
|
||||||
|
/wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA
|
||||||
|
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAA////AP///wD///8A////////v////x////8f///+D///5g///cMf//iBr//wAMf/4AAD//AA
|
||||||
|
Af/4AAD/8AAAf/AAAD/gAAAf4AAAD+AAAA/AAAAHwAAAB8AAAAfAAAAH4AAAB/AAAA/4AAAP+AAAH/gA
|
||||||
|
AD/4AAB//AAB//wAAf/+AAP//wAH///AD/8=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
228
OpenRA.TilesetBuilder/frmNew.Designer.cs
generated
Normal file
@@ -0,0 +1,228 @@
|
|||||||
|
namespace OpenRA.TilesetBuilder
|
||||||
|
{
|
||||||
|
partial class frmNew
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.numSize = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.txtPal = new System.Windows.Forms.TextBox();
|
||||||
|
this.btnPalBrowse = new System.Windows.Forms.Button();
|
||||||
|
this.chkUsePalFromImage = new System.Windows.Forms.CheckBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.imgImage = new System.Windows.Forms.PictureBox();
|
||||||
|
this.btnImgBrowse = new System.Windows.Forms.Button();
|
||||||
|
this.txtImage = new System.Windows.Forms.TextBox();
|
||||||
|
this.btnCancel = new System.Windows.Forms.Button();
|
||||||
|
this.btnOk = new System.Windows.Forms.Button();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.numSize)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.imgImage)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// numSize
|
||||||
|
//
|
||||||
|
this.numSize.Location = new System.Drawing.Point(66, 6);
|
||||||
|
this.numSize.Maximum = new decimal(new int[] {
|
||||||
|
264,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.numSize.Minimum = new decimal(new int[] {
|
||||||
|
24,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.numSize.Name = "numSize";
|
||||||
|
this.numSize.Size = new System.Drawing.Size(49, 20);
|
||||||
|
this.numSize.TabIndex = 0;
|
||||||
|
this.numSize.Value = new decimal(new int[] {
|
||||||
|
24,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.numSize.ValueChanged += new System.EventHandler(this.numSize_ValueChanged);
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(12, 9);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(48, 13);
|
||||||
|
this.label1.TabIndex = 1;
|
||||||
|
this.label1.Text = "Tile size:";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(12, 34);
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(43, 13);
|
||||||
|
this.label2.TabIndex = 2;
|
||||||
|
this.label2.Text = "Palette:";
|
||||||
|
//
|
||||||
|
// txtPal
|
||||||
|
//
|
||||||
|
this.txtPal.Location = new System.Drawing.Point(15, 52);
|
||||||
|
this.txtPal.Name = "txtPal";
|
||||||
|
this.txtPal.ReadOnly = true;
|
||||||
|
this.txtPal.Size = new System.Drawing.Size(267, 20);
|
||||||
|
this.txtPal.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// btnPalBrowse
|
||||||
|
//
|
||||||
|
this.btnPalBrowse.Enabled = false;
|
||||||
|
this.btnPalBrowse.Location = new System.Drawing.Point(288, 50);
|
||||||
|
this.btnPalBrowse.Name = "btnPalBrowse";
|
||||||
|
this.btnPalBrowse.Size = new System.Drawing.Size(26, 23);
|
||||||
|
this.btnPalBrowse.TabIndex = 4;
|
||||||
|
this.btnPalBrowse.Text = "...";
|
||||||
|
this.btnPalBrowse.UseVisualStyleBackColor = true;
|
||||||
|
this.btnPalBrowse.Click += new System.EventHandler(this.btnPalBrowse_Click);
|
||||||
|
//
|
||||||
|
// chkUsePalFromImage
|
||||||
|
//
|
||||||
|
this.chkUsePalFromImage.AutoSize = true;
|
||||||
|
this.chkUsePalFromImage.Checked = true;
|
||||||
|
this.chkUsePalFromImage.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
this.chkUsePalFromImage.Location = new System.Drawing.Point(66, 34);
|
||||||
|
this.chkUsePalFromImage.Name = "chkUsePalFromImage";
|
||||||
|
this.chkUsePalFromImage.Size = new System.Drawing.Size(134, 17);
|
||||||
|
this.chkUsePalFromImage.TabIndex = 5;
|
||||||
|
this.chkUsePalFromImage.Text = "Use palette from image";
|
||||||
|
this.chkUsePalFromImage.UseVisualStyleBackColor = true;
|
||||||
|
this.chkUsePalFromImage.CheckedChanged += new System.EventHandler(this.chkUsePalFromImage_CheckedChanged);
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Location = new System.Drawing.Point(12, 75);
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(39, 13);
|
||||||
|
this.label3.TabIndex = 6;
|
||||||
|
this.label3.Text = "Image:";
|
||||||
|
//
|
||||||
|
// imgImage
|
||||||
|
//
|
||||||
|
this.imgImage.BackColor = System.Drawing.Color.Black;
|
||||||
|
this.imgImage.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||||
|
this.imgImage.Location = new System.Drawing.Point(15, 120);
|
||||||
|
this.imgImage.Name = "imgImage";
|
||||||
|
this.imgImage.Size = new System.Drawing.Size(299, 219);
|
||||||
|
this.imgImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||||
|
this.imgImage.TabIndex = 7;
|
||||||
|
this.imgImage.TabStop = false;
|
||||||
|
//
|
||||||
|
// btnImgBrowse
|
||||||
|
//
|
||||||
|
this.btnImgBrowse.Location = new System.Drawing.Point(288, 91);
|
||||||
|
this.btnImgBrowse.Name = "btnImgBrowse";
|
||||||
|
this.btnImgBrowse.Size = new System.Drawing.Size(26, 23);
|
||||||
|
this.btnImgBrowse.TabIndex = 9;
|
||||||
|
this.btnImgBrowse.Text = "...";
|
||||||
|
this.btnImgBrowse.UseVisualStyleBackColor = true;
|
||||||
|
this.btnImgBrowse.Click += new System.EventHandler(this.btnImgBrowse_Click);
|
||||||
|
//
|
||||||
|
// txtImage
|
||||||
|
//
|
||||||
|
this.txtImage.Location = new System.Drawing.Point(15, 91);
|
||||||
|
this.txtImage.Name = "txtImage";
|
||||||
|
this.txtImage.ReadOnly = true;
|
||||||
|
this.txtImage.Size = new System.Drawing.Size(267, 20);
|
||||||
|
this.txtImage.TabIndex = 8;
|
||||||
|
//
|
||||||
|
// btnCancel
|
||||||
|
//
|
||||||
|
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this.btnCancel.Location = new System.Drawing.Point(239, 345);
|
||||||
|
this.btnCancel.Name = "btnCancel";
|
||||||
|
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnCancel.TabIndex = 10;
|
||||||
|
this.btnCancel.Text = "Cancel";
|
||||||
|
this.btnCancel.UseVisualStyleBackColor = true;
|
||||||
|
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
|
||||||
|
//
|
||||||
|
// btnOk
|
||||||
|
//
|
||||||
|
this.btnOk.Location = new System.Drawing.Point(158, 345);
|
||||||
|
this.btnOk.Name = "btnOk";
|
||||||
|
this.btnOk.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.btnOk.TabIndex = 11;
|
||||||
|
this.btnOk.Text = "OK";
|
||||||
|
this.btnOk.UseVisualStyleBackColor = true;
|
||||||
|
this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
|
||||||
|
//
|
||||||
|
// frmNew
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.CancelButton = this.btnCancel;
|
||||||
|
this.ClientSize = new System.Drawing.Size(329, 378);
|
||||||
|
this.Controls.Add(this.btnOk);
|
||||||
|
this.Controls.Add(this.btnCancel);
|
||||||
|
this.Controls.Add(this.btnImgBrowse);
|
||||||
|
this.Controls.Add(this.txtImage);
|
||||||
|
this.Controls.Add(this.imgImage);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.chkUsePalFromImage);
|
||||||
|
this.Controls.Add(this.btnPalBrowse);
|
||||||
|
this.Controls.Add(this.txtPal);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Controls.Add(this.numSize);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "frmNew";
|
||||||
|
this.ShowIcon = false;
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
|
this.Text = "New Tileset";
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.numSize)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.imgImage)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.NumericUpDown numSize;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.TextBox txtPal;
|
||||||
|
private System.Windows.Forms.Button btnPalBrowse;
|
||||||
|
private System.Windows.Forms.CheckBox chkUsePalFromImage;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.PictureBox imgImage;
|
||||||
|
private System.Windows.Forms.Button btnImgBrowse;
|
||||||
|
private System.Windows.Forms.TextBox txtImage;
|
||||||
|
private System.Windows.Forms.Button btnCancel;
|
||||||
|
private System.Windows.Forms.Button btnOk;
|
||||||
|
}
|
||||||
|
}
|
||||||
88
OpenRA.TilesetBuilder/frmNew.cs
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace OpenRA.TilesetBuilder
|
||||||
|
{
|
||||||
|
public partial class frmNew : Form
|
||||||
|
{
|
||||||
|
public bool PaletteFromImage = true;
|
||||||
|
public string PaletteFile = "";
|
||||||
|
public string ImageFile = "";
|
||||||
|
public int TileSize = 24;
|
||||||
|
|
||||||
|
public frmNew()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnOk_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!PaletteFromImage)
|
||||||
|
{
|
||||||
|
if (PaletteFile.Length < 5)
|
||||||
|
{
|
||||||
|
MessageBox.Show("No palette specified", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ImageFile.Length < 5)
|
||||||
|
{
|
||||||
|
MessageBox.Show("No image selected", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void chkUsePalFromImage_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (chkUsePalFromImage.Checked)
|
||||||
|
{
|
||||||
|
btnPalBrowse.Enabled = false;
|
||||||
|
PaletteFromImage = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
btnPalBrowse.Enabled = true;
|
||||||
|
PaletteFromImage = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnPalBrowse_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
using (var ofd = new OpenFileDialog { Filter = "C&C Palette (*.pal)|*.pal" })
|
||||||
|
if (DialogResult.OK == ofd.ShowDialog())
|
||||||
|
{
|
||||||
|
PaletteFile = ofd.FileName;
|
||||||
|
txtPal.Text = PaletteFile;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnImgBrowse_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
using (var ofd = new OpenFileDialog { Filter = "8bit Image (*.png,*.pcx,*.bmp)|*.png;*.pcx;*.bmp" })
|
||||||
|
if (DialogResult.OK == ofd.ShowDialog())
|
||||||
|
{
|
||||||
|
ImageFile = ofd.FileName;
|
||||||
|
imgImage.Image = Image.FromFile(ImageFile);
|
||||||
|
txtImage.Text = ImageFile;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void numSize_ValueChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
TileSize = (int)numSize.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
120
OpenRA.TilesetBuilder/frmNew.resx
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
BIN
OpenRA.TilesetBuilder/tilesetbuilder_icon copy.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
@@ -32,10 +32,10 @@
|
|||||||
# add install rules to makefile (once more polished)
|
# add install rules to makefile (once more polished)
|
||||||
# add sonic tank weapon (currently uses tesla)
|
# add sonic tank weapon (currently uses tesla)
|
||||||
# make deviator change the allegiance of ememy units (currently shoots rockets)
|
# make deviator change the allegiance of ememy units (currently shoots rockets)
|
||||||
# complete Arrakis tileset (blocked by TilesetBuilder crashing on export)
|
|
||||||
# allow frigate to deliver 5 units at once to starport
|
# allow frigate to deliver 5 units at once to starport
|
||||||
# starport prices should vary
|
# starport prices should vary
|
||||||
# reinforcements have arrived is played twice when ordering via starport
|
# reinforcements have arrived is played twice when ordering via starport
|
||||||
# add shroud (Dune's 32x32 tiles differ completely from RA/CnC)
|
# add shroud (Dune's 32x32 tiles differ completely from RA/CnC)
|
||||||
# black spots on buildings should be transparent
|
# black spots on buildings should be transparent
|
||||||
# gamefile extraction (setup/setup.z) from CD fails
|
# gamefile extraction (setup/setup.z) from CD fails
|
||||||
|
# TilesetBuilder does not support TerrainTypes other then "Clear"
|
||||||
BIN
mods/d2k/bits/arrakis.pal
Normal file
BIN
mods/d2k/maps/bloxbase-test.oramap
Normal file
@@ -9,6 +9,7 @@ Folders:
|
|||||||
./mods/d2k
|
./mods/d2k
|
||||||
./mods/d2k/bits
|
./mods/d2k/bits
|
||||||
./mods/d2k/uibits
|
./mods/d2k/uibits
|
||||||
|
./mods/d2k/tilesets/bloxbase
|
||||||
~^/Content/d2k
|
~^/Content/d2k
|
||||||
~^/Content/d2k/GAMESFX
|
~^/Content/d2k/GAMESFX
|
||||||
~^/Content/d2k/Music
|
~^/Content/d2k/Music
|
||||||
@@ -81,7 +82,7 @@ Voices:
|
|||||||
|
|
||||||
TileSets:
|
TileSets:
|
||||||
mods/d2k/tilesets/arrakis.yaml
|
mods/d2k/tilesets/arrakis.yaml
|
||||||
# mods/d2k/tilesets/bloxbase.yaml
|
mods/d2k/tilesets/bloxbase.yaml
|
||||||
|
|
||||||
TileSize: 32
|
TileSize: 32
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 801 KiB After Width: | Height: | Size: 801 KiB |
BIN
mods/d2k/raw/BLOXBAT.bmp
Normal file
|
After Width: | Height: | Size: 801 KiB |
BIN
mods/d2k/raw/BLOXBGBS.bmp
Normal file
|
After Width: | Height: | Size: 801 KiB |
BIN
mods/d2k/raw/BLOXICE.bmp
Normal file
|
After Width: | Height: | Size: 801 KiB |
BIN
mods/d2k/raw/BLOXTREE.bmp
Normal file
|
After Width: | Height: | Size: 801 KiB |
BIN
mods/d2k/raw/BLOXWAST.bmp
Normal file
|
After Width: | Height: | Size: 801 KiB |
BIN
mods/d2k/raw/BLOXXMAS.bmp
Normal file
|
After Width: | Height: | Size: 801 KiB |