From ac970cdb4410468d91e3e1e8d20940c1b97311e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 20 Jun 2015 13:26:18 +0200 Subject: [PATCH] remove the WinForms map editor --- Makefile | 37 +- .../ActorPropertiesDialog.Designer.cs | 90 -- OpenRA.Editor/ActorPropertiesDialog.cs | 48 - OpenRA.Editor/ActorPropertiesDialog.resx | 120 -- OpenRA.Editor/ActorTemplate.cs | 35 - OpenRA.Editor/ActorTool.cs | 51 - OpenRA.Editor/BrushTool.cs | 121 -- OpenRA.Editor/ErrorListDialog.Designer.cs | 98 -- OpenRA.Editor/ErrorListDialog.cs | 25 - OpenRA.Editor/Form1.Designer.cs | 1133 ----------------- OpenRA.Editor/Form1.cs | 735 ----------- OpenRA.Editor/Form1.resx | 1074 ---------------- OpenRA.Editor/ITool.cs | 20 - OpenRA.Editor/MapSelect.Designer.cs | 319 ----- OpenRA.Editor/MapSelect.cs | 92 -- OpenRA.Editor/MapSelect.resx | 177 --- OpenRA.Editor/NewMapDialog.Designer.cs | 295 ----- OpenRA.Editor/NewMapDialog.cs | 28 - OpenRA.Editor/NewMapDialog.resx | 120 -- OpenRA.Editor/OpenRA.Editor.Icon.ico | Bin 13942 -> 0 bytes OpenRA.Editor/OpenRA.Editor.csproj | 211 --- OpenRA.Editor/Program.cs | 33 - .../Properties/Resources.Designer.cs | 63 - OpenRA.Editor/Properties/Resources.resx | 117 -- OpenRA.Editor/Properties/Settings.Designer.cs | 26 - OpenRA.Editor/Properties/Settings.settings | 7 - OpenRA.Editor/PropertiesDialog.Designer.cs | 182 --- OpenRA.Editor/PropertiesDialog.cs | 22 - OpenRA.Editor/PropertiesDialog.resx | 120 -- OpenRA.Editor/RenderUtils.cs | 112 -- OpenRA.Editor/ResizeDialog.Designer.cs | 235 ---- OpenRA.Editor/ResizeDialog.cs | 22 - OpenRA.Editor/ResizeDialog.resx | 120 -- OpenRA.Editor/ResourceTool.cs | 45 - OpenRA.Editor/Surface.cs | 588 --------- OpenRA.Editor/TileSetRenderer.cs | 117 -- OpenRA.Game/OpenRA.Game.csproj | 1 - OpenRA.Game/Traits/EditorAppearance.cs | 20 - OpenRA.Game/Traits/TraitsInterfaces.cs | 6 - OpenRA.Game/Traits/World/ResourceType.cs | 3 - .../Traits/Render/RenderSprites.cs | 5 +- .../UtilityCommands/UpgradeRules.cs | 14 + OpenRA.sln | 6 - launch-editor.sh | 3 - mods/cnc/rules/defaults.yaml | 17 - mods/cnc/rules/world.yaml | 2 - mods/d2k/bits/spice0.shp | Bin 1924 -> 0 bytes mods/d2k/rules/arrakis.yaml | 2 - mods/d2k/rules/defaults.yaml | 4 - mods/d2k/rules/structures.yaml | 2 - mods/d2k/rules/world.yaml | 2 +- mods/ra/rules/defaults.yaml | 13 - mods/ra/rules/misc.yaml | 18 - mods/ra/rules/world.yaml | 2 - mods/ts/rules/defaults.yaml | 5 - mods/ts/rules/world.yaml | 3 +- packaging/linux/deb/DEBIAN/control | 2 +- packaging/linux/deb/buildpackage.sh | 3 - .../hicolor/32x32/apps/openra-editor.png | Bin 2788 -> 0 bytes .../hicolor/48x48/apps/openra-editor.png | Bin 5850 -> 0 bytes packaging/linux/openra-editor.desktop | 10 - packaging/osx/buildpackage.sh | 3 +- packaging/package-all.sh | 2 +- packaging/windows/OpenRA.nsi | 16 - 64 files changed, 22 insertions(+), 6780 deletions(-) delete mode 100644 OpenRA.Editor/ActorPropertiesDialog.Designer.cs delete mode 100644 OpenRA.Editor/ActorPropertiesDialog.cs delete mode 100644 OpenRA.Editor/ActorPropertiesDialog.resx delete mode 100644 OpenRA.Editor/ActorTemplate.cs delete mode 100644 OpenRA.Editor/ActorTool.cs delete mode 100644 OpenRA.Editor/BrushTool.cs delete mode 100644 OpenRA.Editor/ErrorListDialog.Designer.cs delete mode 100644 OpenRA.Editor/ErrorListDialog.cs delete mode 100755 OpenRA.Editor/Form1.Designer.cs delete mode 100644 OpenRA.Editor/Form1.cs delete mode 100755 OpenRA.Editor/Form1.resx delete mode 100644 OpenRA.Editor/ITool.cs delete mode 100644 OpenRA.Editor/MapSelect.Designer.cs delete mode 100644 OpenRA.Editor/MapSelect.cs delete mode 100644 OpenRA.Editor/MapSelect.resx delete mode 100644 OpenRA.Editor/NewMapDialog.Designer.cs delete mode 100755 OpenRA.Editor/NewMapDialog.cs delete mode 100644 OpenRA.Editor/NewMapDialog.resx delete mode 100644 OpenRA.Editor/OpenRA.Editor.Icon.ico delete mode 100644 OpenRA.Editor/OpenRA.Editor.csproj delete mode 100644 OpenRA.Editor/Program.cs delete mode 100644 OpenRA.Editor/Properties/Resources.Designer.cs delete mode 100644 OpenRA.Editor/Properties/Resources.resx delete mode 100644 OpenRA.Editor/Properties/Settings.Designer.cs delete mode 100644 OpenRA.Editor/Properties/Settings.settings delete mode 100644 OpenRA.Editor/PropertiesDialog.Designer.cs delete mode 100644 OpenRA.Editor/PropertiesDialog.cs delete mode 100644 OpenRA.Editor/PropertiesDialog.resx delete mode 100644 OpenRA.Editor/RenderUtils.cs delete mode 100644 OpenRA.Editor/ResizeDialog.Designer.cs delete mode 100644 OpenRA.Editor/ResizeDialog.cs delete mode 100644 OpenRA.Editor/ResizeDialog.resx delete mode 100644 OpenRA.Editor/ResourceTool.cs delete mode 100644 OpenRA.Editor/Surface.cs delete mode 100644 OpenRA.Editor/TileSetRenderer.cs delete mode 100644 OpenRA.Game/Traits/EditorAppearance.cs delete mode 100755 launch-editor.sh delete mode 100644 mods/d2k/bits/spice0.shp delete mode 100644 packaging/linux/hicolor/32x32/apps/openra-editor.png delete mode 100644 packaging/linux/hicolor/48x48/apps/openra-editor.png delete mode 100644 packaging/linux/openra-editor.desktop diff --git a/Makefile b/Makefile index 1835e0cc02..268396892b 100644 --- a/Makefile +++ b/Makefile @@ -79,7 +79,7 @@ INSTALL_DATA = $(INSTALL) -m644 # program targets CORE = rsdl2 rnull game utility -TOOLS = editor gamemonitor +TOOLS = gamemonitor VERSION = $(shell git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null || echo git-`git rev-parse --short HEAD`) # dependencies @@ -169,24 +169,6 @@ mod_ts_LIBS = $(COMMON_LIBS) $(STD_MOD_LIBS) $(mod_common_TARGET) PROGRAMS += mod_ts mod_ts: $(mod_ts_TARGET) -##### Tools ##### - -# Map Editor -editor_SRCS := $(shell find OpenRA.Editor/ -iname '*.cs') -editor_TARGET = OpenRA.Editor.exe -editor_KIND = winexe -editor_DEPS = $(game_TARGET) $(mod_common_TARGET) -editor_LIBS = System.Windows.Forms.dll System.Data.dll System.Drawing.dll $(editor_DEPS) thirdparty/download/Eluant.dll -editor_EXTRA = -resource:OpenRA.Editor.Form1.resources -resource:OpenRA.Editor.MapSelect.resources -editor_FLAGS = -win32icon:OpenRA.Editor/OpenRA.Editor.Icon.ico - -PROGRAMS += editor -OpenRA.Editor.MapSelect.resources: - resgen2 OpenRA.Editor/MapSelect.resx OpenRA.Editor.MapSelect.resources 1> /dev/null -OpenRA.Editor.Form1.resources: - resgen2 OpenRA.Editor/Form1.resx OpenRA.Editor.Form1.resources 1> /dev/null -editor: OpenRA.Editor.MapSelect.resources OpenRA.Editor.Form1.resources $(editor_TARGET) - check: utility mods @echo @echo "Checking for code style violations in OpenRA.Game..." @@ -213,9 +195,6 @@ check: utility mods @echo "Checking for code style violations in OpenRA.Mods.TS..." @mono --debug OpenRA.Utility.exe ra --check-code-style OpenRA.Mods.TS @echo - @echo "Checking for code style violations in OpenRA.Editor..." - @mono --debug OpenRA.Utility.exe ra --check-code-style OpenRA.Editor - @echo @echo "Checking for code style violations in OpenRA.Renderer.Sdl2..." @mono --debug OpenRA.Utility.exe ra --check-code-style OpenRA.Renderer.Sdl2 @echo @@ -291,7 +270,7 @@ default: core core: game renderers mods utility -tools: editor gamemonitor +tools: gamemonitor package: all-dependencies core tools docs version @@ -397,7 +376,6 @@ install-linux-icons: install-linux-desktop: @$(INSTALL_DIR) "$(DESTDIR)$(datadir)/applications" @$(INSTALL_DATA) packaging/linux/openra.desktop "$(DESTDIR)$(datadir)/applications" - @$(INSTALL_DATA) packaging/linux/openra-editor.desktop "$(DESTDIR)$(datadir)/applications" install-linux-mime: @$(INSTALL_DIR) "$(DESTDIR)$(datadir)/mime/packages/" @@ -426,24 +404,13 @@ install-linux-scripts: @$(INSTALL_PROGRAM) -m +rx openra "$(BIN_INSTALL_DIR)" @-$(RM) openra - @echo "#!/bin/sh" > openra-editor - @echo 'cd "$(gameinstalldir)"' >> openra-editor - @echo 'exec mono OpenRA.Editor.exe "$$@"' >> openra-editor - @$(INSTALL_DIR) "$(BIN_INSTALL_DIR)" - @$(INSTALL_PROGRAM) -m +rx openra-editor "$(BIN_INSTALL_DIR)" - @-$(RM) openra-editor - uninstall: @-$(RM_R) "$(DATA_INSTALL_DIR)" @-$(RM_F) "$(BIN_INSTALL_DIR)/openra" - @-$(RM_F) "$(BIN_INSTALL_DIR)/openra-editor" @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra.desktop" - @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-editor.desktop" @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/16x16/apps/openra.png" @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/32x32/apps/openra.png" - @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/32x32/apps/openra-editor.png" @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/48x48/apps/openra.png" - @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/48x48/apps/openra-editor.png" @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/64x64/apps/openra.png" @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/128x128/apps/openra.png" @-$(RM_F) "$(DESTDIR)$(datadir)/mime/packages/openra.xml" diff --git a/OpenRA.Editor/ActorPropertiesDialog.Designer.cs b/OpenRA.Editor/ActorPropertiesDialog.Designer.cs deleted file mode 100644 index 168f817d96..0000000000 --- a/OpenRA.Editor/ActorPropertiesDialog.Designer.cs +++ /dev/null @@ -1,90 +0,0 @@ -namespace OpenRA.Editor -{ - partial class ActorPropertiesDialog - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - components.Dispose(); - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); - this.SuspendLayout(); - // - // button1 - // - this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.button1.Location = new System.Drawing.Point(226, 333); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(75, 23); - this.button1.TabIndex = 0; - this.button1.Text = "Cancel"; - this.button1.UseVisualStyleBackColor = true; - // - // button2 - // - this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.button2.Enabled = false; - this.button2.Location = new System.Drawing.Point(145, 333); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(75, 23); - this.button2.TabIndex = 0; - this.button2.Text = "OK"; - this.button2.UseVisualStyleBackColor = true; - // - // flowLayoutPanel1 - // - this.flowLayoutPanel1.AutoScroll = true; - this.flowLayoutPanel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.flowLayoutPanel1.Location = new System.Drawing.Point(13, 13); - this.flowLayoutPanel1.Name = "flowLayoutPanel1"; - this.flowLayoutPanel1.Size = new System.Drawing.Size(288, 314); - this.flowLayoutPanel1.TabIndex = 1; - // - // ActorPropertiesDialog - // - this.AcceptButton = this.button2; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.button1; - this.ClientSize = new System.Drawing.Size(313, 368); - this.Controls.Add(this.flowLayoutPanel1); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ActorPropertiesDialog"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Actor Properties"; - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; - } -} \ No newline at end of file diff --git a/OpenRA.Editor/ActorPropertiesDialog.cs b/OpenRA.Editor/ActorPropertiesDialog.cs deleted file mode 100644 index 8e371cf469..0000000000 --- a/OpenRA.Editor/ActorPropertiesDialog.cs +++ /dev/null @@ -1,48 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Drawing; -using System.Windows.Forms; - -namespace OpenRA.Editor -{ - public partial class ActorPropertiesDialog : Form - { - public ActorPropertiesDialog() - { - InitializeComponent(); - } - - public void AddRow(string name, Control c) - { - flowLayoutPanel1.Controls.Add(new Label - { - Text = name, - Width = flowLayoutPanel1.Width * 3 / 10, - Height = 25, - TextAlign = ContentAlignment.MiddleLeft, - }); - - c.Width = flowLayoutPanel1.Width * 6 / 10 - 25; - c.Height = 25; - flowLayoutPanel1.Controls.Add(c); - } - - public Control MakeEditorControl(Type t, Func getter, Action setter) - { - var r = new TextBox(); - r.Text = FieldSaver.FormatValue(getter(), t); - r.LostFocus += (e, _) => setter(FieldLoader.GetValue("", t, r.Text)); - r.Enabled = false; - return r; - } - } -} diff --git a/OpenRA.Editor/ActorPropertiesDialog.resx b/OpenRA.Editor/ActorPropertiesDialog.resx deleted file mode 100644 index 19dc0dd8b3..0000000000 --- a/OpenRA.Editor/ActorPropertiesDialog.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenRA.Editor/ActorTemplate.cs b/OpenRA.Editor/ActorTemplate.cs deleted file mode 100644 index f559a45def..0000000000 --- a/OpenRA.Editor/ActorTemplate.cs +++ /dev/null @@ -1,35 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Drawing; -using OpenRA.Traits; - -namespace OpenRA.Editor -{ - class ActorTemplate - { - public Bitmap Bitmap; - public ActorInfo Info; - public EditorAppearanceInfo Appearance; - } - - class BrushTemplate - { - public Bitmap Bitmap; - public ushort N; - } - - class ResourceTemplate - { - public Bitmap Bitmap; - public ResourceTypeInfo Info; - public int Value; - } -} diff --git a/OpenRA.Editor/ActorTool.cs b/OpenRA.Editor/ActorTool.cs deleted file mode 100644 index b248fb6125..0000000000 --- a/OpenRA.Editor/ActorTool.cs +++ /dev/null @@ -1,51 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Linq; -using SGraphics = System.Drawing.Graphics; - -namespace OpenRA.Editor -{ - class ActorTool : ITool - { - ActorTemplate actorTemplate; - public ActorTool(ActorTemplate actor) { this.actorTemplate = actor; } - - public void Preview(Surface surface, SGraphics g) - { - surface.DrawActor(g, surface.GetBrushLocation(), actorTemplate, - surface.GetPaletteForPlayer(surface.NewActorOwner)); - } - - public void Apply(Surface surface) - { - if (surface.Actors.Any(a => a.Value.Location() == surface.GetBrushLocation())) - return; - - var owner = surface.NewActorOwner; - var id = NextActorName(surface); - surface.Actors[id] = new ActorReference(actorTemplate.Info.Name.ToLowerInvariant()) - { - new LocationInit(surface.GetBrushLocation()), - new OwnerInit(owner) - }; - } - - static string NextActorName(Surface surface) - { - var id = 0; - for (;;) - { - var possible = "Actor{0}".F(id++); - if (!surface.Actors.ContainsKey(possible)) return possible; - } - } - } -} diff --git a/OpenRA.Editor/BrushTool.cs b/OpenRA.Editor/BrushTool.cs deleted file mode 100644 index 77c84dc645..0000000000 --- a/OpenRA.Editor/BrushTool.cs +++ /dev/null @@ -1,121 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Windows.Forms; -using SGraphics = System.Drawing.Graphics; - -namespace OpenRA.Editor -{ - class BrushTool : ITool - { - BrushTemplate brushTemplate; - - public BrushTool(BrushTemplate brush) { this.brushTemplate = brush; } - - public void Apply(Surface surface) - { - // change the bits in the map - var template = surface.TileSet.Templates[brushTemplate.N]; - var tile = surface.TileSetRenderer.Data(brushTemplate.N); - var pos = surface.GetBrushLocation(); - - if (surface.GetModifiers() == Keys.Shift) - { - FloodFillWithBrush(surface, pos); - return; - } - - for (var u = 0; u < template.Size.X; u++) - for (var v = 0; v < template.Size.Y; v++) - { - var cell = pos + new CVec(u, v); - if (surface.Map.Contains(cell)) - { - var z = u + v * template.Size.X; - if (tile != null && tile[z].Length > 0) - { - var index = template.PickAny ? (byte)((u + pos.X) % 4 + ((v + pos.Y) % 4) * 4) : (byte)z; - surface.Map.MapTiles.Value[cell] = new TerrainTile(brushTemplate.N, index); - } - - var ch = new int2((pos.X + u) / Surface.ChunkSize, (pos.Y + v) / Surface.ChunkSize); - if (surface.Chunks.ContainsKey(ch)) - { - surface.Chunks[ch].Dispose(); - surface.Chunks.Remove(ch); - } - } - } - } - - public void Preview(Surface surface, SGraphics g) - { - g.DrawImage(brushTemplate.Bitmap, - surface.TileSetRenderer.TileSize * surface.GetBrushLocation().X * surface.Zoom + surface.GetOffset().X, - surface.TileSetRenderer.TileSize * surface.GetBrushLocation().Y * surface.Zoom + surface.GetOffset().Y, - brushTemplate.Bitmap.Width * surface.Zoom, - brushTemplate.Bitmap.Height * surface.Zoom); - } - - void FloodFillWithBrush(Surface s, CPos pos) - { - var queue = new Queue(); - var replace = s.Map.MapTiles.Value[pos]; - var touched = new bool[s.Map.MapSize.X, s.Map.MapSize.Y]; - - Action maybeEnqueue = (x, y) => - { - var c = new CPos(x, y); - if (s.Map.Contains(c) && !touched[x, y]) - { - queue.Enqueue(c); - touched[x, y] = true; - } - }; - - queue.Enqueue(pos); - while (queue.Count > 0) - { - var p = queue.Dequeue(); - if (s.Map.MapTiles.Value[p].Type != replace.Type) - continue; - - var a = FindEdge(s, p, new CVec(-1, 0), replace); - var b = FindEdge(s, p, new CVec(1, 0), replace); - - for (var x = a.X; x <= b.X; x++) - { - s.Map.MapTiles.Value[new CPos(x, p.Y)] = new TerrainTile(brushTemplate.N, (byte)0); - if (s.Map.MapTiles.Value[new CPos(x, p.Y - 1)].Type == replace.Type) - maybeEnqueue(x, p.Y - 1); - if (s.Map.MapTiles.Value[new CPos(x, p.Y + 1)].Type == replace.Type) - maybeEnqueue(x, p.Y + 1); - } - } - - /* TODO: optimize */ - foreach (var ch in s.Chunks.Values) ch.Dispose(); - s.Chunks.Clear(); - } - - static CPos FindEdge(Surface s, CPos p, CVec d, TerrainTile replace) - { - for (;;) - { - var q = p + d; - if (!s.Map.Contains(q)) return p; - if (s.Map.MapTiles.Value[q].Type != replace.Type) return p; - p = q; - } - } - } -} diff --git a/OpenRA.Editor/ErrorListDialog.Designer.cs b/OpenRA.Editor/ErrorListDialog.Designer.cs deleted file mode 100644 index 1a44a25a92..0000000000 --- a/OpenRA.Editor/ErrorListDialog.Designer.cs +++ /dev/null @@ -1,98 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Editor -{ - partial class ErrorListDialog - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - components.Dispose(); - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.label1 = new System.Windows.Forms.Label(); - this.listBox1 = new System.Windows.Forms.ListBox(); - this.button1 = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // label1 - // - this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.label1.Location = new System.Drawing.Point(10, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(610, 23); - this.label1.TabIndex = 0; - this.label1.Text = "Your map import completed, but with errors:"; - // - // listBox1 - // - this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.listBox1.FormattingEnabled = true; - this.listBox1.Location = new System.Drawing.Point(13, 30); - this.listBox1.Name = "listBox1"; - this.listBox1.Size = new System.Drawing.Size(607, 316); - this.listBox1.TabIndex = 1; - // - // button1 - // - this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.button1.Location = new System.Drawing.Point(545, 359); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(75, 23); - this.button1.TabIndex = 2; - this.button1.Text = "Close"; - this.button1.UseVisualStyleBackColor = true; - // - // ErrorListDialog - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(632, 394); - this.Controls.Add(this.button1); - this.Controls.Add(this.listBox1); - this.Controls.Add(this.label1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Name = "ErrorListDialog"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Map Import Errors"; - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.ListBox listBox1; - private System.Windows.Forms.Button button1; - } -} \ No newline at end of file diff --git a/OpenRA.Editor/ErrorListDialog.cs b/OpenRA.Editor/ErrorListDialog.cs deleted file mode 100644 index 9787e4754b..0000000000 --- a/OpenRA.Editor/ErrorListDialog.cs +++ /dev/null @@ -1,25 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Windows.Forms; - -namespace OpenRA.Editor -{ - public partial class ErrorListDialog : Form - { - public ErrorListDialog(IEnumerable errors) - { - InitializeComponent(); - foreach (var e in errors) - listBox1.Items.Add(e); - } - } -} diff --git a/OpenRA.Editor/Form1.Designer.cs b/OpenRA.Editor/Form1.Designer.cs deleted file mode 100755 index 7dbbaf4cd7..0000000000 --- a/OpenRA.Editor/Form1.Designer.cs +++ /dev/null @@ -1,1133 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Editor -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - components.Dispose(); - - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.splitContainer2 = new System.Windows.Forms.SplitContainer(); - this.miniMapBox = new System.Windows.Forms.PictureBox(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.tilePalette = new System.Windows.Forms.FlowLayoutPanel(); - this.tabPage2 = new System.Windows.Forms.TabPage(); - this.panel1 = new System.Windows.Forms.Panel(); - this.actorPalette = new System.Windows.Forms.FlowLayoutPanel(); - this.actorOwnerChooser = new System.Windows.Forms.ComboBox(); - this.tabPage3 = new System.Windows.Forms.TabPage(); - this.resourcePalette = new System.Windows.Forms.FlowLayoutPanel(); - this.surface1 = new OpenRA.Editor.Surface(); - this.tt = new System.Windows.Forms.ToolTip(this.components); - this.splitContainer3 = new System.Windows.Forms.SplitContainer(); - this.toolStrip1 = new System.Windows.Forms.ToolStrip(); - this.toolStripMenuItemNew = new System.Windows.Forms.ToolStripButton(); - this.toolStripMenuItemOpen = new System.Windows.Forms.ToolStripButton(); - this.toolStripMenuItemSave = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripMenuItemProperties = new System.Windows.Forms.ToolStripButton(); - this.toolStripMenuItemResize = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripMenuItemShowActorNames = new System.Windows.Forms.ToolStripButton(); - this.toolStripMenuItemShowGrid = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator(); - this.zoomIntoolStripButton = new System.Windows.Forms.ToolStripButton(); - this.zoomOutToolStripButton = new System.Windows.Forms.ToolStripButton(); - this.panToolStripButton = new System.Windows.Forms.ToolStripButton(); - this.showRulerToolStripItem = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripMenuItemFixOpenAreas = new System.Windows.Forms.ToolStripButton(); - this.toolStripMenuItemSetupDefaultPlayers = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator(); - this.eraserToolStripButton = new System.Windows.Forms.ToolStripButton(); - this.toolStripMenuItemCopySelection = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); - this.quickhelpToolStripButton = new System.Windows.Forms.ToolStripButton(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); - this.miniMapExport = new System.Windows.Forms.ToolStripMenuItem(); - this.miniMapToPng = new System.Windows.Forms.ToolStripMenuItem(); - this.fullMapRenderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.mapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.propertiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.resizeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator(); - this.showActorNamesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.showGridToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.showRulerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); - this.fixOpenAreasToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.setupDefaultPlayersMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); - this.copySelectionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripComboBox1 = new System.Windows.Forms.ToolStripComboBox(); - this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel(); - this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openRAWebsiteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openRAResourcesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.wikiDocumentationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.discussionForumsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.sourceCodeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.issueTrackerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.developerBountiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); - this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.toolStripStatusLabelFiller = new System.Windows.Forms.ToolStripStatusLabel(); - this.toolStripStatusLabelMousePosition = new System.Windows.Forms.ToolStripStatusLabel(); - this.bottomToolStripPanel = new System.Windows.Forms.ToolStripPanel(); - this.topToolStripPanel = new System.Windows.Forms.ToolStripPanel(); - this.rightToolStripPanel = new System.Windows.Forms.ToolStripPanel(); - this.leftToolStripPanel = new System.Windows.Forms.ToolStripPanel(); - this.contentPanel = new System.Windows.Forms.ToolStripContentPanel(); - this.toolStripContainer1 = new System.Windows.Forms.ToolStripContainer(); - this.cashToolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - this.splitContainer2.Panel1.SuspendLayout(); - this.splitContainer2.Panel2.SuspendLayout(); - this.splitContainer2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.miniMapBox)).BeginInit(); - this.tabControl1.SuspendLayout(); - this.tabPage1.SuspendLayout(); - this.tabPage2.SuspendLayout(); - this.panel1.SuspendLayout(); - this.tabPage3.SuspendLayout(); - this.splitContainer3.Panel1.SuspendLayout(); - this.splitContainer3.Panel2.SuspendLayout(); - this.splitContainer3.SuspendLayout(); - this.toolStrip1.SuspendLayout(); - this.menuStrip1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.toolStripContainer1.BottomToolStripPanel.SuspendLayout(); - this.toolStripContainer1.ContentPanel.SuspendLayout(); - this.toolStripContainer1.TopToolStripPanel.SuspendLayout(); - this.toolStripContainer1.SuspendLayout(); - this.SuspendLayout(); - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 0); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.splitContainer2); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.surface1); - this.splitContainer1.Size = new System.Drawing.Size(985, 695); - this.splitContainer1.SplitterDistance = 198; - this.splitContainer1.TabIndex = 0; - // - // splitContainer2 - // - this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer2.Location = new System.Drawing.Point(0, 0); - this.splitContainer2.Name = "splitContainer2"; - this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // splitContainer2.Panel1 - // - this.splitContainer2.Panel1.Controls.Add(this.miniMapBox); - // - // splitContainer2.Panel2 - // - this.splitContainer2.Panel2.Controls.Add(this.tabControl1); - this.splitContainer2.Size = new System.Drawing.Size(198, 695); - this.splitContainer2.SplitterDistance = 153; - this.splitContainer2.TabIndex = 1; - // - // pmMiniMap - // - this.miniMapBox.BackColor = System.Drawing.Color.Black; - this.miniMapBox.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.miniMapBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.miniMapBox.Location = new System.Drawing.Point(0, 0); - this.miniMapBox.Name = "pmMiniMap"; - this.miniMapBox.Size = new System.Drawing.Size(198, 153); - this.miniMapBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.miniMapBox.TabIndex = 1; - this.miniMapBox.TabStop = false; - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tabPage1); - this.tabControl1.Controls.Add(this.tabPage2); - this.tabControl1.Controls.Add(this.tabPage3); - this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControl1.Location = new System.Drawing.Point(0, 0); - this.tabControl1.Margin = new System.Windows.Forms.Padding(3, 3, 3, 0); - this.tabControl1.Multiline = true; - this.tabControl1.Name = "tabControl1"; - this.tabControl1.Padding = new System.Drawing.Point(6, 0); - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(198, 538); - this.tabControl1.TabIndex = 0; - // - // tabPage1 - // - this.tabPage1.Controls.Add(this.tilePalette); - this.tabPage1.Location = new System.Drawing.Point(4, 20); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(190, 514); - this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "Templates"; - this.tabPage1.UseVisualStyleBackColor = true; - // - // tilePalette - // - this.tilePalette.AutoScroll = true; - this.tilePalette.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.tilePalette.Dock = System.Windows.Forms.DockStyle.Fill; - this.tilePalette.Location = new System.Drawing.Point(3, 3); - this.tilePalette.Name = "tilePalette"; - this.tilePalette.Size = new System.Drawing.Size(184, 508); - this.tilePalette.TabIndex = 1; - // - // tabPage2 - // - this.tabPage2.Controls.Add(this.panel1); - this.tabPage2.Controls.Add(this.actorOwnerChooser); - this.tabPage2.Location = new System.Drawing.Point(4, 20); - this.tabPage2.Name = "tabPage2"; - this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(190, 514); - this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "Actors"; - this.tabPage2.UseVisualStyleBackColor = true; - // - // panel1 - // - this.panel1.Controls.Add(this.actorPalette); - this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel1.Location = new System.Drawing.Point(3, 24); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(184, 487); - this.panel1.TabIndex = 4; - // - // actorPalette - // - this.actorPalette.AutoScroll = true; - this.actorPalette.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.actorPalette.Dock = System.Windows.Forms.DockStyle.Fill; - this.actorPalette.Location = new System.Drawing.Point(0, 0); - this.actorPalette.Name = "actorPalette"; - this.actorPalette.Size = new System.Drawing.Size(184, 487); - this.actorPalette.TabIndex = 3; - // - // actorOwnerChooser - // - this.actorOwnerChooser.Dock = System.Windows.Forms.DockStyle.Top; - this.actorOwnerChooser.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.actorOwnerChooser.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.actorOwnerChooser.FormattingEnabled = true; - this.actorOwnerChooser.Location = new System.Drawing.Point(3, 3); - this.actorOwnerChooser.Name = "actorOwnerChooser"; - this.actorOwnerChooser.Size = new System.Drawing.Size(184, 21); - this.actorOwnerChooser.TabIndex = 3; - this.actorOwnerChooser.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.DrawPlayerListItem); - this.actorOwnerChooser.SelectionChangeCommitted += new System.EventHandler(this.OnSelectedPlayerChanged); - // - // tabPage3 - // - this.tabPage3.Controls.Add(this.resourcePalette); - this.tabPage3.Location = new System.Drawing.Point(4, 20); - this.tabPage3.Name = "tabPage3"; - this.tabPage3.Size = new System.Drawing.Size(190, 514); - this.tabPage3.TabIndex = 2; - this.tabPage3.Text = "Resources"; - this.tabPage3.UseVisualStyleBackColor = true; - // - // resourcePalette - // - this.resourcePalette.AutoScroll = true; - this.resourcePalette.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.resourcePalette.Dock = System.Windows.Forms.DockStyle.Fill; - this.resourcePalette.Location = new System.Drawing.Point(0, 0); - this.resourcePalette.Name = "resourcePalette"; - this.resourcePalette.Size = new System.Drawing.Size(190, 514); - this.resourcePalette.TabIndex = 3; - // - // surface1 - // - this.surface1.BackColor = System.Drawing.Color.Black; - this.surface1.Dock = System.Windows.Forms.DockStyle.Fill; - this.surface1.Location = new System.Drawing.Point(0, 0); - this.surface1.Name = "surface1"; - this.surface1.Size = new System.Drawing.Size(783, 695); - this.surface1.TabIndex = 5; - this.surface1.Text = "surface1"; - // - // tt - // - this.tt.ShowAlways = true; - // - // splitContainer3 - // - this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; - this.splitContainer3.IsSplitterFixed = true; - this.splitContainer3.Location = new System.Drawing.Point(0, 0); - this.splitContainer3.Name = "splitContainer3"; - this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // splitContainer3.Panel1 - // - this.splitContainer3.Panel1.Controls.Add(this.toolStrip1); - // - // splitContainer3.Panel2 - // - this.splitContainer3.Panel2.Controls.Add(this.splitContainer1); - this.splitContainer3.Size = new System.Drawing.Size(985, 724); - this.splitContainer3.SplitterDistance = 25; - this.splitContainer3.TabIndex = 6; - // - // toolStrip1 - // - this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItemNew, - this.toolStripMenuItemOpen, - this.toolStripMenuItemSave, - this.toolStripSeparator, - this.toolStripMenuItemProperties, - this.toolStripMenuItemResize, - this.toolStripSeparator8, - this.toolStripMenuItemShowActorNames, - this.toolStripMenuItemShowGrid, - this.toolStripSeparator12, - this.zoomIntoolStripButton, - this.zoomOutToolStripButton, - this.panToolStripButton, - this.showRulerToolStripItem, - this.toolStripSeparator10, - this.toolStripMenuItemFixOpenAreas, - this.toolStripMenuItemSetupDefaultPlayers, - this.toolStripSeparator11, - this.eraserToolStripButton, - this.toolStripMenuItemCopySelection, - this.toolStripSeparator7, - this.quickhelpToolStripButton}); - this.toolStrip1.Location = new System.Drawing.Point(0, 0); - this.toolStrip1.Name = "toolStrip1"; - this.toolStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; - this.toolStrip1.Size = new System.Drawing.Size(985, 25); - this.toolStrip1.TabIndex = 0; - this.toolStrip1.Text = "toolStrip1"; - // - // toolStripMenuItemNew - // - this.toolStripMenuItemNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripMenuItemNew.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItemNew.Image"))); - this.toolStripMenuItemNew.ImageTransparentColor = System.Drawing.Color.Fuchsia; - this.toolStripMenuItemNew.Name = "toolStripMenuItemNew"; - this.toolStripMenuItemNew.Size = new System.Drawing.Size(23, 22); - this.toolStripMenuItemNew.Text = "&New..."; - this.toolStripMenuItemNew.ToolTipText = "Create a new blank map."; - this.toolStripMenuItemNew.Click += new System.EventHandler(this.ToolStripMenuItemNewClick); - // - // toolStripMenuItemOpen - // - this.toolStripMenuItemOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripMenuItemOpen.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItemOpen.Image"))); - this.toolStripMenuItemOpen.Name = "toolStripMenuItemOpen"; - this.toolStripMenuItemOpen.Size = new System.Drawing.Size(23, 22); - this.toolStripMenuItemOpen.Text = "&Open..."; - this.toolStripMenuItemOpen.ToolTipText = "Open an existing map."; - this.toolStripMenuItemOpen.Click += new System.EventHandler(this.ToolStripMenuItemOpenClick); - // - // toolStripMenuItemSave - // - this.toolStripMenuItemSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripMenuItemSave.Enabled = false; - this.toolStripMenuItemSave.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItemSave.Image"))); - this.toolStripMenuItemSave.Name = "toolStripMenuItemSave"; - this.toolStripMenuItemSave.Size = new System.Drawing.Size(23, 22); - this.toolStripMenuItemSave.Text = "&Save"; - this.toolStripMenuItemSave.ToolTipText = "Quicksave current map."; - this.toolStripMenuItemSave.Click += new System.EventHandler(this.ToolStripMenuItemSaveClick); - // - // toolStripSeparator - // - this.toolStripSeparator.Name = "toolStripSeparator"; - this.toolStripSeparator.Size = new System.Drawing.Size(6, 25); - // - // toolStripMenuItemProperties - // - this.toolStripMenuItemProperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripMenuItemProperties.Enabled = false; - this.toolStripMenuItemProperties.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItemProperties.Image"))); - this.toolStripMenuItemProperties.Name = "toolStripMenuItemProperties"; - this.toolStripMenuItemProperties.Size = new System.Drawing.Size(23, 22); - this.toolStripMenuItemProperties.Text = "&Properties..."; - this.toolStripMenuItemProperties.ToolTipText = "Edit Metadata"; - this.toolStripMenuItemProperties.Click += new System.EventHandler(this.ToolStripMenuItemPropertiesClick); - // - // toolStripMenuItemResize - // - this.toolStripMenuItemResize.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripMenuItemResize.Enabled = false; - this.toolStripMenuItemResize.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItemResize.Image"))); - this.toolStripMenuItemResize.Name = "toolStripMenuItemResize"; - this.toolStripMenuItemResize.Size = new System.Drawing.Size(23, 22); - this.toolStripMenuItemResize.Text = "&Resize..."; - this.toolStripMenuItemResize.ToolTipText = "Change the map borders and dimensions."; - this.toolStripMenuItemResize.Click += new System.EventHandler(this.ToolStripMenuItemResizeClick); - // - // toolStripSeparator8 - // - this.toolStripSeparator8.Name = "toolStripSeparator8"; - this.toolStripSeparator8.Size = new System.Drawing.Size(6, 25); - // - // toolStripMenuItemShowActorNames - // - this.toolStripMenuItemShowActorNames.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripMenuItemShowActorNames.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItemShowActorNames.Image"))); - this.toolStripMenuItemShowActorNames.Name = "toolStripMenuItemShowActorNames"; - this.toolStripMenuItemShowActorNames.Size = new System.Drawing.Size(23, 22); - this.toolStripMenuItemShowActorNames.Text = "Show Actor &Names"; - this.toolStripMenuItemShowActorNames.ToolTipText = "If the actor has a custom name, display it."; - this.toolStripMenuItemShowActorNames.Click += new System.EventHandler(this.ToolStripMenuItemShowActorNamesClick); - // - // toolStripMenuItemShowGrid - // - this.toolStripMenuItemShowGrid.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripMenuItemShowGrid.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItemShowGrid.Image"))); - this.toolStripMenuItemShowGrid.Name = "toolStripMenuItemShowGrid"; - this.toolStripMenuItemShowGrid.Size = new System.Drawing.Size(23, 22); - this.toolStripMenuItemShowGrid.Text = "Show &Grid"; - this.toolStripMenuItemShowGrid.ToolTipText = "Enable a grid overlay for better orientation."; - this.toolStripMenuItemShowGrid.Click += new System.EventHandler(this.ToolStripMenuItemShowGridClick); - // - // toolStripSeparator12 - // - this.toolStripSeparator12.Name = "toolStripSeparator12"; - this.toolStripSeparator12.Size = new System.Drawing.Size(6, 25); - // - // zoomIntoolStripButton - // - this.zoomIntoolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.zoomIntoolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("zoomIntoolStripButton.Image"))); - this.zoomIntoolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.zoomIntoolStripButton.Name = "zoomIntoolStripButton"; - this.zoomIntoolStripButton.Size = new System.Drawing.Size(23, 22); - this.zoomIntoolStripButton.Text = "Zoom in"; - this.zoomIntoolStripButton.Click += new System.EventHandler(this.ZoomInToolStripButtonClick); - // - // zoomOutToolStripButton - // - this.zoomOutToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.zoomOutToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("zoomOutToolStripButton.Image"))); - this.zoomOutToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.zoomOutToolStripButton.Name = "zoomOutToolStripButton"; - this.zoomOutToolStripButton.Size = new System.Drawing.Size(23, 22); - this.zoomOutToolStripButton.Text = "Zoom out"; - this.zoomOutToolStripButton.Click += new System.EventHandler(this.ZoomOutToolStripButtonClick); - // - // panToolStripButton - // - this.panToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.panToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("panToolStripButton.Image"))); - this.panToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.panToolStripButton.Name = "panToolStripButton"; - this.panToolStripButton.Size = new System.Drawing.Size(23, 22); - this.panToolStripButton.Text = "Pan view"; - this.panToolStripButton.Click += new System.EventHandler(this.PanToolStripButtonClick); - // - // showRulerToolStripItem - // - this.showRulerToolStripItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.showRulerToolStripItem.Image = ((System.Drawing.Image)(resources.GetObject("showRulerToolStripItem.Image"))); - this.showRulerToolStripItem.Name = "showRulerToolStripItem"; - this.showRulerToolStripItem.Size = new System.Drawing.Size(23, 22); - this.showRulerToolStripItem.Text = "Show Ruler"; - this.showRulerToolStripItem.Click += new System.EventHandler(this.ShowRulerToolStripItemClick); - // - // toolStripSeparator10 - // - this.toolStripSeparator10.Name = "toolStripSeparator10"; - this.toolStripSeparator10.Size = new System.Drawing.Size(6, 25); - // - // toolStripMenuItemFixOpenAreas - // - this.toolStripMenuItemFixOpenAreas.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripMenuItemFixOpenAreas.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItemFixOpenAreas.Image"))); - this.toolStripMenuItemFixOpenAreas.Name = "toolStripMenuItemFixOpenAreas"; - this.toolStripMenuItemFixOpenAreas.Size = new System.Drawing.Size(23, 22); - this.toolStripMenuItemFixOpenAreas.Text = "&Fix Open Areas"; - this.toolStripMenuItemFixOpenAreas.ToolTipText = "Add some randomness into clear tiles."; - this.toolStripMenuItemFixOpenAreas.Click += new System.EventHandler(this.ToolStripMenuItemFixOpenAreasClick); - // - // toolStripMenuItemSetupDefaultPlayers - // - this.toolStripMenuItemSetupDefaultPlayers.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripMenuItemSetupDefaultPlayers.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItemSetupDefaultPlayers.Image"))); - this.toolStripMenuItemSetupDefaultPlayers.Name = "toolStripMenuItemSetupDefaultPlayers"; - this.toolStripMenuItemSetupDefaultPlayers.Size = new System.Drawing.Size(23, 22); - this.toolStripMenuItemSetupDefaultPlayers.Text = "&Setup Default Players"; - this.toolStripMenuItemSetupDefaultPlayers.ToolTipText = "Setup the players for each spawnpoint placed."; - this.toolStripMenuItemSetupDefaultPlayers.Click += new System.EventHandler(this.ToolStripMenuItemSetupDefaultPlayersClick); - // - // toolStripSeparator11 - // - this.toolStripSeparator11.Name = "toolStripSeparator11"; - this.toolStripSeparator11.Size = new System.Drawing.Size(6, 25); - // - // eraserToolStripButton - // - this.eraserToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.eraserToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("eraserToolStripButton.Image"))); - this.eraserToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.eraserToolStripButton.Name = "eraserToolStripButton"; - this.eraserToolStripButton.Size = new System.Drawing.Size(23, 22); - this.eraserToolStripButton.Text = "Erase actors and resources."; - this.eraserToolStripButton.Click += new System.EventHandler(this.EraserToolStripButtonClick); - // - // toolStripMenuItemCopySelection - // - this.toolStripMenuItemCopySelection.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripMenuItemCopySelection.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItemCopySelection.Image"))); - this.toolStripMenuItemCopySelection.Name = "toolStripMenuItemCopySelection"; - this.toolStripMenuItemCopySelection.Size = new System.Drawing.Size(23, 22); - this.toolStripMenuItemCopySelection.Text = "Copy Selection"; - this.toolStripMenuItemCopySelection.ToolTipText = "Copy the current selection and paste it again on left-click."; - this.toolStripMenuItemCopySelection.Click += new System.EventHandler(this.ToolStripMenuItemCopySelectionClick); - // - // toolStripSeparator7 - // - this.toolStripSeparator7.Name = "toolStripSeparator7"; - this.toolStripSeparator7.Size = new System.Drawing.Size(6, 25); - // - // QuickhelpToolStripButton - // - this.quickhelpToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.quickhelpToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("QuickhelpToolStripButton.Image"))); - this.quickhelpToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.quickhelpToolStripButton.Name = "QuickhelpToolStripButton"; - this.quickhelpToolStripButton.Size = new System.Drawing.Size(23, 22); - this.quickhelpToolStripButton.Text = "Help"; - this.quickhelpToolStripButton.ToolTipText = "Display the mapping tutorial in the OpenRA wiki."; - this.quickhelpToolStripButton.Click += new System.EventHandler(this.HelpToolStripButton_Click); - // - // menuStrip1 - // - this.menuStrip1.Dock = System.Windows.Forms.DockStyle.None; - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.mapToolStripMenuItem, - this.toolStripComboBox1, - this.toolStripLabel1, - this.helpToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; - this.menuStrip1.Size = new System.Drawing.Size(985, 27); - this.menuStrip1.TabIndex = 1; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.newToolStripMenuItem, - this.toolStripSeparator1, - this.openToolStripMenuItem, - this.saveToolStripMenuItem, - this.saveAsToolStripMenuItem, - this.toolStripSeparator2, - this.miniMapExport, - this.toolStripSeparator3, - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 23); - this.fileToolStripMenuItem.Text = "&File"; - // - // newToolStripMenuItem - // - this.newToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("newToolStripMenuItem.Image"))); - this.newToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Fuchsia; - this.newToolStripMenuItem.Name = "newToolStripMenuItem"; - this.newToolStripMenuItem.Size = new System.Drawing.Size(123, 22); - this.newToolStripMenuItem.Text = "&New..."; - this.newToolStripMenuItem.ToolTipText = "Create a new blank map."; - this.newToolStripMenuItem.Click += new System.EventHandler(this.NewClicked); - // - // toolStripSeparator1 - // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(120, 6); - // - // openToolStripMenuItem - // - this.openToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("openToolStripMenuItem.Image"))); - this.openToolStripMenuItem.Name = "openToolStripMenuItem"; - this.openToolStripMenuItem.Size = new System.Drawing.Size(123, 22); - this.openToolStripMenuItem.Text = "&Open..."; - this.openToolStripMenuItem.ToolTipText = "Open an existing map."; - this.openToolStripMenuItem.Click += new System.EventHandler(this.OpenClicked); - // - // saveToolStripMenuItem - // - this.saveToolStripMenuItem.Enabled = false; - this.saveToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("saveToolStripMenuItem.Image"))); - this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; - this.saveToolStripMenuItem.Size = new System.Drawing.Size(123, 22); - this.saveToolStripMenuItem.Text = "&Save"; - this.saveToolStripMenuItem.ToolTipText = "Quicksave current map."; - this.saveToolStripMenuItem.Click += new System.EventHandler(this.SaveClicked); - // - // saveAsToolStripMenuItem - // - this.saveAsToolStripMenuItem.Enabled = false; - this.saveAsToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("saveAsToolStripMenuItem.Image"))); - this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; - this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(123, 22); - this.saveAsToolStripMenuItem.Text = "Save &As..."; - this.saveAsToolStripMenuItem.ToolTipText = "Save the map while choosing a filename."; - this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.SaveAsClicked); - // - // toolStripSeparator2 - // - this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(120, 6); - // - // mnuExport - // - this.miniMapExport.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.miniMapToPng, - this.fullMapRenderToolStripMenuItem}); - this.miniMapExport.Image = ((System.Drawing.Image)(resources.GetObject("mnuExport.Image"))); - this.miniMapExport.ImageTransparentColor = System.Drawing.Color.Magenta; - this.miniMapExport.Name = "mnuExport"; - this.miniMapExport.Size = new System.Drawing.Size(123, 22); - this.miniMapExport.Text = "&Export"; - // - // mnuMinimapToPNG - // - this.miniMapToPng.Enabled = false; - this.miniMapToPng.Image = ((System.Drawing.Image)(resources.GetObject("mnuMinimapToPNG.Image"))); - this.miniMapToPng.Name = "mnuMinimapToPNG"; - this.miniMapToPng.Size = new System.Drawing.Size(163, 22); - this.miniMapToPng.Text = "Minimap to PNG"; - this.miniMapToPng.ToolTipText = "Save the map radar display as an image."; - this.miniMapToPng.Click += new System.EventHandler(this.ExportMinimap); - // - // fullMapRenderToolStripMenuItem - // - this.fullMapRenderToolStripMenuItem.Enabled = false; - this.fullMapRenderToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("fullMapRenderToolStripMenuItem.Image"))); - this.fullMapRenderToolStripMenuItem.Name = "fullMapRenderToolStripMenuItem"; - this.fullMapRenderToolStripMenuItem.Size = new System.Drawing.Size(163, 22); - this.fullMapRenderToolStripMenuItem.Text = "Full Map Render"; - // - // toolStripSeparator3 - // - this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(120, 6); - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("exitToolStripMenuItem.Image"))); - this.exitToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta; - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(123, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.ToolTipText = "Quit the map editor."; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.CloseClicked); - // - // mapToolStripMenuItem - // - this.mapToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.propertiesToolStripMenuItem, - this.resizeToolStripMenuItem, - this.toolStripSeparator9, - this.showActorNamesToolStripMenuItem, - this.showGridToolStripMenuItem, - this.showRulerToolStripMenuItem, - this.toolStripSeparator5, - this.fixOpenAreasToolStripMenuItem, - this.setupDefaultPlayersMenuItem, - this.toolStripSeparator4, - this.copySelectionToolStripMenuItem}); - this.mapToolStripMenuItem.Name = "mapToolStripMenuItem"; - this.mapToolStripMenuItem.Size = new System.Drawing.Size(43, 23); - this.mapToolStripMenuItem.Text = "&Map"; - // - // propertiesToolStripMenuItem - // - this.propertiesToolStripMenuItem.Enabled = false; - this.propertiesToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("propertiesToolStripMenuItem.Image"))); - this.propertiesToolStripMenuItem.Name = "propertiesToolStripMenuItem"; - this.propertiesToolStripMenuItem.Size = new System.Drawing.Size(185, 22); - this.propertiesToolStripMenuItem.Text = "&Properties..."; - this.propertiesToolStripMenuItem.ToolTipText = "Edit Metadata"; - this.propertiesToolStripMenuItem.Click += new System.EventHandler(this.PropertiesClicked); - // - // resizeToolStripMenuItem - // - this.resizeToolStripMenuItem.Enabled = false; - this.resizeToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("resizeToolStripMenuItem.Image"))); - this.resizeToolStripMenuItem.Name = "resizeToolStripMenuItem"; - this.resizeToolStripMenuItem.Size = new System.Drawing.Size(185, 22); - this.resizeToolStripMenuItem.Text = "&Resize..."; - this.resizeToolStripMenuItem.ToolTipText = "Change the map borders and dimensions."; - this.resizeToolStripMenuItem.Click += new System.EventHandler(this.ResizeClicked); - // - // toolStripSeparator9 - // - this.toolStripSeparator9.Name = "toolStripSeparator9"; - this.toolStripSeparator9.Size = new System.Drawing.Size(182, 6); - // - // showActorNamesToolStripMenuItem - // - this.showActorNamesToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("showActorNamesToolStripMenuItem.Image"))); - this.showActorNamesToolStripMenuItem.Name = "showActorNamesToolStripMenuItem"; - this.showActorNamesToolStripMenuItem.Size = new System.Drawing.Size(185, 22); - this.showActorNamesToolStripMenuItem.Text = "Show &Actor Names"; - this.showActorNamesToolStripMenuItem.ToolTipText = "If the actor has a custom name, display it."; - this.showActorNamesToolStripMenuItem.Click += new System.EventHandler(this.ShowActorNamesClicked); - // - // showGridToolStripMenuItem - // - this.showGridToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("showGridToolStripMenuItem.Image"))); - this.showGridToolStripMenuItem.Name = "showGridToolStripMenuItem"; - this.showGridToolStripMenuItem.Size = new System.Drawing.Size(185, 22); - this.showGridToolStripMenuItem.Text = "Show &Grid"; - this.showGridToolStripMenuItem.ToolTipText = "Enable a grid overlay for better orientation."; - this.showGridToolStripMenuItem.Click += new System.EventHandler(this.ShowGridClicked); - // - // showRulerToolStripMenuItem - // - this.showRulerToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("showRulerToolStripMenuItem.Image"))); - this.showRulerToolStripMenuItem.Name = "showRulerToolStripMenuItem"; - this.showRulerToolStripMenuItem.Size = new System.Drawing.Size(185, 22); - this.showRulerToolStripMenuItem.Text = "Show Ruler"; - this.showRulerToolStripMenuItem.Click += new System.EventHandler(this.ShowRulerToolStripMenuItemClick); - // - // toolStripSeparator5 - // - this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(182, 6); - // - // fixOpenAreasToolStripMenuItem - // - this.fixOpenAreasToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("fixOpenAreasToolStripMenuItem.Image"))); - this.fixOpenAreasToolStripMenuItem.Name = "fixOpenAreasToolStripMenuItem"; - this.fixOpenAreasToolStripMenuItem.Size = new System.Drawing.Size(185, 22); - this.fixOpenAreasToolStripMenuItem.Text = "&Fix Open Areas"; - this.fixOpenAreasToolStripMenuItem.ToolTipText = "Add some randomness into clear tiles."; - this.fixOpenAreasToolStripMenuItem.Click += new System.EventHandler(this.FixOpenAreas); - // - // setupDefaultPlayersMenuItem - // - this.setupDefaultPlayersMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("setupDefaultPlayersMenuItem.Image"))); - this.setupDefaultPlayersMenuItem.Name = "setupDefaultPlayersMenuItem"; - this.setupDefaultPlayersMenuItem.Size = new System.Drawing.Size(185, 22); - this.setupDefaultPlayersMenuItem.Text = "&Setup Default Players"; - this.setupDefaultPlayersMenuItem.ToolTipText = "Setup the players for each spawnpoint placed."; - this.setupDefaultPlayersMenuItem.Click += new System.EventHandler(this.SetupDefaultPlayers); - // - // toolStripSeparator4 - // - this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(182, 6); - // - // copySelectionToolStripMenuItem - // - this.copySelectionToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("copySelectionToolStripMenuItem.Image"))); - this.copySelectionToolStripMenuItem.Name = "copySelectionToolStripMenuItem"; - this.copySelectionToolStripMenuItem.Size = new System.Drawing.Size(185, 22); - this.copySelectionToolStripMenuItem.Text = "Copy Selection"; - this.copySelectionToolStripMenuItem.ToolTipText = "Copy the current selection and paste it again on left-click."; - this.copySelectionToolStripMenuItem.Click += new System.EventHandler(this.CopySelectionToolStripMenuItemClick); - // - // toolStripComboBox1 - // - this.toolStripComboBox1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; - this.toolStripComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.toolStripComboBox1.Name = "toolStripComboBox1"; - this.toolStripComboBox1.Size = new System.Drawing.Size(121, 23); - // - // toolStripLabel1 - // - this.toolStripLabel1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; - this.toolStripLabel1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripLabel1.Image"))); - this.toolStripLabel1.Name = "toolStripLabel1"; - this.toolStripLabel1.Size = new System.Drawing.Size(87, 20); - this.toolStripLabel1.Text = "Active Mod:"; - this.toolStripLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - this.toolStripLabel1.TextDirection = System.Windows.Forms.ToolStripTextDirection.Horizontal; - this.toolStripLabel1.ToolTipText = "Choose the OpenRA mod whose tilesets and actors shall be used."; - // - // helpToolStripMenuItem - // - this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.openRAWebsiteToolStripMenuItem, - this.openRAResourcesToolStripMenuItem, - this.wikiDocumentationToolStripMenuItem, - this.discussionForumsToolStripMenuItem, - this.sourceCodeToolStripMenuItem, - this.issueTrackerToolStripMenuItem, - this.developerBountiesToolStripMenuItem, - this.toolStripSeparator6, - this.aboutToolStripMenuItem}); - this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; - this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 23); - this.helpToolStripMenuItem.Text = "&Help"; - // - // openRAWebsiteToolStripMenuItem - // - this.openRAWebsiteToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("openRAWebsiteToolStripMenuItem.Image"))); - this.openRAWebsiteToolStripMenuItem.Name = "openRAWebsiteToolStripMenuItem"; - this.openRAWebsiteToolStripMenuItem.Size = new System.Drawing.Size(183, 22); - this.openRAWebsiteToolStripMenuItem.Text = "OpenRA &Website"; - this.openRAWebsiteToolStripMenuItem.ToolTipText = "Visit the OpenRA homepage."; - this.openRAWebsiteToolStripMenuItem.Click += new System.EventHandler(this.OpenRAWebsiteToolStripMenuItemClick); - // - // openRAResourcesToolStripMenuItem - // - this.openRAResourcesToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("openRAResourcesToolStripMenuItem.Image"))); - this.openRAResourcesToolStripMenuItem.Name = "openRAResourcesToolStripMenuItem"; - this.openRAResourcesToolStripMenuItem.Size = new System.Drawing.Size(183, 22); - this.openRAResourcesToolStripMenuItem.Text = "OpenRA &Resources"; - this.openRAResourcesToolStripMenuItem.ToolTipText = "Share your maps and replays by uploading on this file exchange community."; - this.openRAResourcesToolStripMenuItem.Click += new System.EventHandler(this.OpenRAResourcesToolStripMenuItemClick); - // - // wikiDocumentationToolStripMenuItem - // - this.wikiDocumentationToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("wikiDocumentationToolStripMenuItem.Image"))); - this.wikiDocumentationToolStripMenuItem.Name = "wikiDocumentationToolStripMenuItem"; - this.wikiDocumentationToolStripMenuItem.Size = new System.Drawing.Size(183, 22); - this.wikiDocumentationToolStripMenuItem.Text = "Wiki &Documentation"; - this.wikiDocumentationToolStripMenuItem.ToolTipText = "Read and contribute to the developer documentation."; - this.wikiDocumentationToolStripMenuItem.Click += new System.EventHandler(this.WikiDocumentationToolStripMenuItemClick); - // - // discussionForumsToolStripMenuItem - // - this.discussionForumsToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("discussionForumsToolStripMenuItem.Image"))); - this.discussionForumsToolStripMenuItem.Name = "discussionForumsToolStripMenuItem"; - this.discussionForumsToolStripMenuItem.Size = new System.Drawing.Size(183, 22); - this.discussionForumsToolStripMenuItem.Text = "Discussion &Forums"; - this.discussionForumsToolStripMenuItem.ToolTipText = "Discuss OpenRA related matters in a bulletin board forum."; - this.discussionForumsToolStripMenuItem.Click += new System.EventHandler(this.DiscussionForumsToolStripMenuItemClick); - // - // sourceCodeToolStripMenuItem - // - this.sourceCodeToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("sourceCodeToolStripMenuItem.Image"))); - this.sourceCodeToolStripMenuItem.Name = "sourceCodeToolStripMenuItem"; - this.sourceCodeToolStripMenuItem.Size = new System.Drawing.Size(183, 22); - this.sourceCodeToolStripMenuItem.Text = "Source &Code"; - this.sourceCodeToolStripMenuItem.ToolTipText = "Browse and download the source code. Fix what annoys you. Patches are welcome."; - this.sourceCodeToolStripMenuItem.Click += new System.EventHandler(this.SourceCodeToolStripMenuItemClick); - // - // issueTrackerToolStripMenuItem - // - this.issueTrackerToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("issueTrackerToolStripMenuItem.Image"))); - this.issueTrackerToolStripMenuItem.Name = "issueTrackerToolStripMenuItem"; - this.issueTrackerToolStripMenuItem.Size = new System.Drawing.Size(183, 22); - this.issueTrackerToolStripMenuItem.Text = "Issue &Tracker"; - this.issueTrackerToolStripMenuItem.ToolTipText = "Report problems and request features."; - this.issueTrackerToolStripMenuItem.Click += new System.EventHandler(this.IssueTrackerToolStripMenuItemClick); - // - // developerBountiesToolStripMenuItem - // - this.developerBountiesToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("developerBountiesToolStripMenuItem.Image"))); - this.developerBountiesToolStripMenuItem.Name = "developerBountiesToolStripMenuItem"; - this.developerBountiesToolStripMenuItem.Size = new System.Drawing.Size(183, 22); - this.developerBountiesToolStripMenuItem.Text = "Developer &Bounties"; - this.developerBountiesToolStripMenuItem.ToolTipText = "Hire a developer to get OpenRA modified to your wishes."; - this.developerBountiesToolStripMenuItem.Click += new System.EventHandler(this.DeveloperBountiesToolStripMenuItemClick); - // - // toolStripSeparator6 - // - this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(180, 6); - // - // aboutToolStripMenuItem - // - this.aboutToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("aboutToolStripMenuItem.Image"))); - this.aboutToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta; - this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; - this.aboutToolStripMenuItem.Size = new System.Drawing.Size(183, 22); - this.aboutToolStripMenuItem.Text = "&About"; - this.aboutToolStripMenuItem.Click += new System.EventHandler(this.AboutToolStripMenuItemClick); - // - // statusStrip1 - // - this.statusStrip1.Dock = System.Windows.Forms.DockStyle.None; - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.cashToolStripStatusLabel, - this.toolStripStatusLabelFiller, - this.toolStripStatusLabelMousePosition}); - this.statusStrip1.Location = new System.Drawing.Point(0, 0); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(985, 22); - this.statusStrip1.TabIndex = 7; - this.statusStrip1.Text = "statusStrip1"; - // - // toolStripStatusLabelFiller - // - this.toolStripStatusLabelFiller.Name = "toolStripStatusLabelFiller"; - this.toolStripStatusLabelFiller.Size = new System.Drawing.Size(872, 17); - this.toolStripStatusLabelFiller.Spring = true; - // - // toolStripStatusLabelMousePosition - // - this.toolStripStatusLabelMousePosition.Image = ((System.Drawing.Image)(resources.GetObject("toolStripStatusLabelMousePosition.Image"))); - this.toolStripStatusLabelMousePosition.Name = "toolStripStatusLabelMousePosition"; - this.toolStripStatusLabelMousePosition.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.toolStripStatusLabelMousePosition.Size = new System.Drawing.Size(38, 17); - this.toolStripStatusLabelMousePosition.Text = "0,0"; - // - // BottomToolStripPanel - // - this.bottomToolStripPanel.Dock = System.Windows.Forms.DockStyle.Bottom; - this.bottomToolStripPanel.Location = new System.Drawing.Point(0, 25); - this.bottomToolStripPanel.Name = "BottomToolStripPanel"; - this.bottomToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal; - this.bottomToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0); - this.bottomToolStripPanel.Size = new System.Drawing.Size(985, 0); - // - // TopToolStripPanel - // - this.topToolStripPanel.Dock = System.Windows.Forms.DockStyle.Top; - this.topToolStripPanel.Location = new System.Drawing.Point(0, 0); - this.topToolStripPanel.Name = "TopToolStripPanel"; - this.topToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal; - this.topToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0); - this.topToolStripPanel.Size = new System.Drawing.Size(985, 0); - // - // RightToolStripPanel - // - this.rightToolStripPanel.Dock = System.Windows.Forms.DockStyle.Right; - this.rightToolStripPanel.Location = new System.Drawing.Point(985, 0); - this.rightToolStripPanel.Name = "RightToolStripPanel"; - this.rightToolStripPanel.Orientation = System.Windows.Forms.Orientation.Vertical; - this.rightToolStripPanel.RowMargin = new System.Windows.Forms.Padding(0, 3, 0, 0); - this.rightToolStripPanel.Size = new System.Drawing.Size(0, 25); - // - // LeftToolStripPanel - // - this.leftToolStripPanel.Dock = System.Windows.Forms.DockStyle.Left; - this.leftToolStripPanel.Location = new System.Drawing.Point(0, 0); - this.leftToolStripPanel.Name = "LeftToolStripPanel"; - this.leftToolStripPanel.Orientation = System.Windows.Forms.Orientation.Vertical; - this.leftToolStripPanel.RowMargin = new System.Windows.Forms.Padding(0, 3, 0, 0); - this.leftToolStripPanel.Size = new System.Drawing.Size(0, 25); - // - // ContentPanel - // - this.contentPanel.Size = new System.Drawing.Size(985, 25); - // - // toolStripContainer1 - // - // - // toolStripContainer1.BottomToolStripPanel - // - this.toolStripContainer1.BottomToolStripPanel.Controls.Add(this.statusStrip1); - // - // toolStripContainer1.ContentPanel - // - this.toolStripContainer1.ContentPanel.AutoScroll = true; - this.toolStripContainer1.ContentPanel.Controls.Add(this.splitContainer3); - this.toolStripContainer1.ContentPanel.Size = new System.Drawing.Size(985, 724); - 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(985, 773); - this.toolStripContainer1.TabIndex = 8; - this.toolStripContainer1.Text = "toolStripContainer1"; - // - // toolStripContainer1.TopToolStripPanel - // - this.toolStripContainer1.TopToolStripPanel.Controls.Add(this.menuStrip1); - // - // cashToolStripStatusLabel - // - this.cashToolStripStatusLabel.Image = ((System.Drawing.Image)(resources.GetObject("cashToolStripStatusLabel.Image"))); - this.cashToolStripStatusLabel.Name = "cashToolStripStatusLabel"; - this.cashToolStripStatusLabel.Size = new System.Drawing.Size(29, 17); - this.cashToolStripStatusLabel.Text = "0"; - this.cashToolStripStatusLabel.ToolTipText = "Net worth of the maps resources in cash"; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(985, 773); - this.Controls.Add(this.toolStripContainer1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.KeyPreview = true; - this.MainMenuStrip = this.menuStrip1; - this.Name = "Form1"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "OpenRA Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OnFormClosing); - this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown); - this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyUp); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.ResumeLayout(false); - this.splitContainer2.Panel1.ResumeLayout(false); - this.splitContainer2.Panel2.ResumeLayout(false); - this.splitContainer2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.miniMapBox)).EndInit(); - this.tabControl1.ResumeLayout(false); - this.tabPage1.ResumeLayout(false); - this.tabPage2.ResumeLayout(false); - this.panel1.ResumeLayout(false); - this.tabPage3.ResumeLayout(false); - this.splitContainer3.Panel1.ResumeLayout(false); - this.splitContainer3.Panel1.PerformLayout(); - this.splitContainer3.Panel2.ResumeLayout(false); - this.splitContainer3.ResumeLayout(false); - this.toolStrip1.ResumeLayout(false); - this.toolStrip1.PerformLayout(); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.toolStripContainer1.BottomToolStripPanel.ResumeLayout(false); - this.toolStripContainer1.BottomToolStripPanel.PerformLayout(); - this.toolStripContainer1.ContentPanel.ResumeLayout(false); - this.toolStripContainer1.TopToolStripPanel.ResumeLayout(false); - this.toolStripContainer1.TopToolStripPanel.PerformLayout(); - this.toolStripContainer1.ResumeLayout(false); - this.toolStripContainer1.PerformLayout(); - this.ResumeLayout(false); - } - private System.Windows.Forms.ToolStripStatusLabel cashToolStripStatusLabel; - private System.Windows.Forms.ToolStripButton panToolStripButton; - private System.Windows.Forms.ToolStripButton zoomOutToolStripButton; - private System.Windows.Forms.ToolStripButton zoomIntoolStripButton; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator12; - private System.Windows.Forms.ToolStripButton showRulerToolStripItem; - private System.Windows.Forms.ToolStripMenuItem showRulerToolStripMenuItem; - private System.Windows.Forms.ToolStripButton eraserToolStripButton; - - #endregion - - private System.Windows.Forms.SplitContainer splitContainer1; - private System.Windows.Forms.ToolTip tt; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tabPage1; - private System.Windows.Forms.FlowLayoutPanel tilePalette; - private System.Windows.Forms.TabPage tabPage2; - private System.Windows.Forms.TabPage tabPage3; - private System.Windows.Forms.FlowLayoutPanel resourcePalette; - private Surface surface1; - private System.Windows.Forms.PictureBox miniMapBox; - private System.Windows.Forms.SplitContainer splitContainer2; - private System.Windows.Forms.SplitContainer splitContainer3; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabelMousePosition; - private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabelFiller; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; - private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem saveAsToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; - private System.Windows.Forms.ToolStripMenuItem miniMapExport; - private System.Windows.Forms.ToolStripMenuItem miniMapToPng; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem mapToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem propertiesToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem resizeToolStripMenuItem; - private System.Windows.Forms.ToolStripLabel toolStripLabel1; - private System.Windows.Forms.ToolStripComboBox toolStripComboBox1; - private System.Windows.Forms.ToolStripMenuItem showActorNamesToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem showGridToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem fixOpenAreasToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem setupDefaultPlayersMenuItem; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.FlowLayoutPanel actorPalette; - private System.Windows.Forms.ComboBox actorOwnerChooser; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator4; - private System.Windows.Forms.ToolStripMenuItem copySelectionToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem openRAWebsiteToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem issueTrackerToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem developerBountiesToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem discussionForumsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem wikiDocumentationToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem openRAResourcesToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator6; - private System.Windows.Forms.ToolStripMenuItem sourceCodeToolStripMenuItem; - private System.Windows.Forms.ToolStripContainer toolStripContainer1; - private System.Windows.Forms.ToolStrip toolStrip1; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator7; - private System.Windows.Forms.ToolStripButton quickhelpToolStripButton; - private System.Windows.Forms.ToolStripPanel bottomToolStripPanel; - private System.Windows.Forms.ToolStripPanel topToolStripPanel; - private System.Windows.Forms.ToolStripPanel rightToolStripPanel; - private System.Windows.Forms.ToolStripPanel leftToolStripPanel; - private System.Windows.Forms.ToolStripContentPanel contentPanel; - private System.Windows.Forms.ToolStripButton toolStripMenuItemNew; - private System.Windows.Forms.ToolStripButton toolStripMenuItemOpen; - private System.Windows.Forms.ToolStripButton toolStripMenuItemSave; - private System.Windows.Forms.ToolStripButton toolStripMenuItemProperties; - private System.Windows.Forms.ToolStripButton toolStripMenuItemResize; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator8; - private System.Windows.Forms.ToolStripButton toolStripMenuItemShowActorNames; - private System.Windows.Forms.ToolStripButton toolStripMenuItemShowGrid; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator10; - private System.Windows.Forms.ToolStripButton toolStripMenuItemFixOpenAreas; - private System.Windows.Forms.ToolStripButton toolStripMenuItemSetupDefaultPlayers; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator11; - private System.Windows.Forms.ToolStripButton toolStripMenuItemCopySelection; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator9; - private System.Windows.Forms.ToolStripMenuItem fullMapRenderToolStripMenuItem; - } -} diff --git a/OpenRA.Editor/Form1.cs b/OpenRA.Editor/Form1.cs deleted file mode 100644 index 26ec0ea009..0000000000 --- a/OpenRA.Editor/Form1.cs +++ /dev/null @@ -1,735 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.IO; -using System.Linq; -using System.Windows.Forms; -using OpenRA.FileSystem; -using OpenRA.Graphics; -using OpenRA.Traits; - -namespace OpenRA.Editor -{ - public partial class Form1 : Form - { - public Form1(string[] args) - { - InitializeComponent(); - AppDomain.CurrentDomain.AssemblyResolve += GlobalFileSystem.ResolveAssembly; - - currentMod = args.FirstOrDefault() ?? "ra"; - - toolStripComboBox1.Items.AddRange(ModMetadata.AllMods.Keys.ToArray()); - - toolStripComboBox1.SelectedIndexChanged += (_, e) => - { - tilePalette.SuspendLayout(); - actorPalette.SuspendLayout(); - resourcePalette.SuspendLayout(); - tilePalette.Controls.Clear(); - actorPalette.Controls.Clear(); - resourcePalette.Controls.Clear(); - tilePalette.ResumeLayout(); - actorPalette.ResumeLayout(); - resourcePalette.ResumeLayout(); - surface1.Bind(null, null, null, null, null); - miniMapBox.Image = null; - currentMod = toolStripComboBox1.SelectedItem as string; - - Game.InitializeSettings(Arguments.Empty); - Game.ModData = new ModData(currentMod); - GlobalFileSystem.LoadFromManifest(Game.ModData.Manifest); - Program.Rules = Game.ModData.RulesetCache.LoadDefaultRules(); - - var mod = Game.ModData.Manifest.Mod; - Text = "{0} Mod Version: {1} - OpenRA Editor".F(mod.Title, mod.Version); - - loadedMapName = null; - }; - - toolStripComboBox1.SelectedItem = currentMod; - - surface1.AfterChange += OnMapChanged; - surface1.MousePositionChanged += s => toolStripStatusLabelMousePosition.Text = s; - surface1.ActorDoubleClicked += ActorDoubleClicked; - - if (args.Length >= 2) - LoadMap(args[1]); - } - - void OnMapChanged() - { - MakeDirty(); - var tileSet = Program.Rules.TileSets[surface1.Map.Tileset]; - miniMapBox.Image = Minimap.RenderMapPreview(tileSet, surface1.Map, true); - cashToolStripStatusLabel.Text = CalculateTotalResource().ToString(); - } - - void ActorDoubleClicked(KeyValuePair kv) - { - using (var apd = new ActorPropertiesDialog()) - { - var name = kv.Key; - apd.AddRow("(Name)", apd.MakeEditorControl(typeof(string), () => name, v => name = (string)v)); - apd.AddRow("(Type)", apd.MakeEditorControl(typeof(string), () => kv.Value.Type, v => kv.Value.Type = (string)v)); - - var objSaved = kv.Value.Save(); - - // TODO: make this work properly - foreach (var init in Program.Rules.Actors[kv.Value.Type].GetInitKeys()) - { - var initName = init.First; - apd.AddRow(initName, - apd.MakeEditorControl(init.Second, - () => - { - var nodesDict = objSaved.ToDictionary(); - return nodesDict.ContainsKey(initName) ? nodesDict[initName].Value : null; - }, - _ => { })); - } - - apd.ShowDialog(); - - // TODO: writeback - } - } - - void MakeDirty() { dirty = true; } - - string loadedMapName; - string currentMod = "ra"; - TileSet tileset; - TileSetRenderer tilesetRenderer; - bool dirty = false; - - void LoadMap(string mapname) - { - tilePalette.Controls.Clear(); - actorPalette.Controls.Clear(); - resourcePalette.Controls.Clear(); - - loadedMapName = mapname; - - // load the map - var map = new Map(mapname); - - // upgrade maps that have no player definitions. editor doesnt care, - // but this breaks the game pretty badly. - if (map.PlayerDefinitions.Count == 0) - { - var players = new MapPlayers(map.Rules, map.SpawnPoints.Value.Length); - map.PlayerDefinitions = players.ToMiniYaml(); - } - - PrepareMapResources(Game.ModData, map); - - // Calculate total net worth of resources in cash - cashToolStripStatusLabel.Text = CalculateTotalResource().ToString(); - - dirty = false; - } - - void NewMap(Map map) - { - tilePalette.Controls.Clear(); - actorPalette.Controls.Clear(); - resourcePalette.Controls.Clear(); - - loadedMapName = null; - PrepareMapResources(Game.ModData, map); - - MakeDirty(); - } - - // this code is insanely stupid, and mostly my fault -- chrisf - void PrepareMapResources(ModData modData, Map map) - { - Program.Rules = map.Rules; - - tileset = Program.Rules.TileSets[map.Tileset]; - tilesetRenderer = new TileSetRenderer(tileset, modData.Manifest.TileSize); - var shadowIndex = new int[] { 3, 4 }; - var palette = new ImmutablePalette(GlobalFileSystem.Open(tileset.Palette), shadowIndex); - - // required for desert terrain in RA - var playerPalette = tileset.PlayerPalette ?? tileset.Palette; - var shadowedPalette = new ImmutablePalette(GlobalFileSystem.Open(playerPalette), shadowIndex); - - surface1.Bind(map, tileset, tilesetRenderer, palette, shadowedPalette); - - // construct the palette of tiles - var palettes = new[] { tilePalette, actorPalette, resourcePalette }; - foreach (var p in palettes) { p.Visible = false; p.SuspendLayout(); } - - var templateOrder = tileset.EditorTemplateOrder ?? new string[] { }; - foreach (var tc in tileset.Templates.GroupBy(t => t.Value.Category).OrderBy(t => templateOrder.IndexOf(t.Key))) - { - var category = tc.Key ?? "(Uncategorized)"; - var categoryHeader = new Label - { - BackColor = SystemColors.Highlight, - ForeColor = SystemColors.HighlightText, - Text = category, - AutoSize = false, - Height = 24, - TextAlign = ContentAlignment.MiddleLeft, - Width = tilePalette.ClientSize.Width, - }; - - // hook this manually, anchoring inside FlowLayoutPanel is flaky. - tilePalette.Resize += (_, e) => categoryHeader.Width = tilePalette.ClientSize.Width; - - if (tilePalette.Controls.Count > 0) - tilePalette.SetFlowBreak( - tilePalette.Controls[tilePalette.Controls.Count - 1], true); - tilePalette.Controls.Add(categoryHeader); - - foreach (var t in tc) - { - try - { - var bitmap = tilesetRenderer.RenderTemplate((ushort)t.Key, palette); - var ibox = new PictureBox - { - Image = bitmap, - Width = bitmap.Width / 2, - Height = bitmap.Height / 2, - SizeMode = PictureBoxSizeMode.StretchImage - }; - - var brushTemplate = new BrushTemplate { Bitmap = bitmap, N = t.Key }; - ibox.Click += (_, e) => surface1.SetTool(new BrushTool(brushTemplate)); - - var template = t.Value; - tilePalette.Controls.Add(ibox); - tt.SetToolTip(ibox, "{1}:{0} ({2}x{3})".F(template.Images[0], template.Id, template.Size.X, template.Size.Y)); - } - catch { } - } - } - - var actorTemplates = new List(); - - foreach (var a in Program.Rules.Actors.Keys) - { - try - { - var info = Program.Rules.Actors[a]; - if (!info.Traits.Contains()) continue; - - var etf = info.Traits.GetOrDefault(); - if (etf != null && etf.ExcludeTilesets != null - && etf.ExcludeTilesets.Contains(tileset.Id)) continue; - if (etf != null && etf.RequireTilesets != null - && !etf.RequireTilesets.Contains(tileset.Id)) continue; - - var templatePalette = shadowedPalette; - var rsi = info.Traits.GetOrDefault(); - - // exception for desert buildings - if (rsi != null && rsi.EditorPalette != null && rsi.EditorPalette.Contains("terrain")) - templatePalette = palette; - - var race = Program.Rules.Actors["world"].Traits.WithInterface().First().Race; - var sequenceProvider = Program.Rules.Sequences[tileset.Id]; - var template = RenderUtils.RenderActor(info, sequenceProvider, tileset, templatePalette, race); - var ibox = new PictureBox - { - Image = template.Bitmap, - Width = 32, - Height = 32, - SizeMode = PictureBoxSizeMode.Zoom, - BorderStyle = BorderStyle.FixedSingle - }; - - ibox.Click += (_, e) => surface1.SetTool(new ActorTool(template)); - - actorPalette.Controls.Add(ibox); - - tt.SetToolTip(ibox, "{0}".F(info.Name)); - - actorTemplates.Add(template); - } - catch { } - } - - surface1.BindActorTemplates(actorTemplates); - - var resourceTemplates = new List(); - - foreach (var a in Program.Rules.Actors["world"].Traits.WithInterface()) - { - try - { - var template = RenderUtils.RenderResourceType(a, tileset, shadowedPalette); - var ibox = new PictureBox - { - Image = template.Bitmap, - Width = 32, - Height = 32, - SizeMode = PictureBoxSizeMode.Zoom, - BorderStyle = BorderStyle.FixedSingle - }; - - ibox.Click += (_, e) => surface1.SetTool(new ResourceTool(template)); - - resourcePalette.Controls.Add(ibox); - - tt.SetToolTip(ibox, "{0}:{1}cr".F(template.Info.Name, template.Info.ValuePerUnit)); - - resourceTemplates.Add(template); - } - catch { } - } - - surface1.BindResourceTemplates(resourceTemplates); - - foreach (var p in palettes) - { - p.Visible = true; - p.ResumeLayout(); - } - - miniMapBox.Image = Minimap.RenderMapPreview(tileset, surface1.Map, true); - - propertiesToolStripMenuItem.Enabled = true; - toolStripMenuItemProperties.Enabled = true; - resizeToolStripMenuItem.Enabled = true; - toolStripMenuItemResize.Enabled = true; - saveToolStripMenuItem.Enabled = true; - toolStripMenuItemSave.Enabled = true; - saveAsToolStripMenuItem.Enabled = true; - miniMapToPng.Enabled = true; - - PopulateActorOwnerChooser(); - } - - void PopulateActorOwnerChooser() - { - actorOwnerChooser.Items.Clear(); - actorOwnerChooser.Items.AddRange(new MapPlayers(surface1.Map.PlayerDefinitions).Players.Values.ToArray()); - actorOwnerChooser.SelectedIndex = 0; - surface1.NewActorOwner = ((PlayerReference)actorOwnerChooser.SelectedItem).Name; - } - - void ResizeClicked(object sender, EventArgs e) - { - using (var rd = new ResizeDialog()) - { - rd.MapWidth.Value = surface1.Map.MapSize.X; - rd.MapHeight.Value = surface1.Map.MapSize.Y; - rd.CordonLeft.Value = surface1.Map.Bounds.Left; - rd.CordonTop.Value = surface1.Map.Bounds.Top; - rd.CordonRight.Value = surface1.Map.Bounds.Right; - rd.CordonBottom.Value = surface1.Map.Bounds.Bottom; - - if (DialogResult.OK != rd.ShowDialog()) - return; - - surface1.Map.ResizeCordon((int)rd.CordonLeft.Value, - (int)rd.CordonTop.Value, - (int)rd.CordonRight.Value, - (int)rd.CordonBottom.Value); - - if ((int)rd.MapWidth.Value != surface1.Map.MapSize.X || (int)rd.MapHeight.Value != surface1.Map.MapSize.Y) - { - surface1.Map.Resize((int)rd.MapWidth.Value, (int)rd.MapHeight.Value); - surface1.Bind(surface1.Map, surface1.TileSet, surface1.TileSetRenderer, surface1.Palette, surface1.PlayerPalette); // rebind it to invalidate all caches - } - - surface1.Invalidate(); - } - } - - void SaveClicked(object sender, EventArgs e) - { - if (loadedMapName == null) - SaveAsClicked(sender, e); - else - { - surface1.Map.RequiresMod = currentMod; - surface1.Map.Save(loadedMapName); - dirty = false; - } - } - - void SaveAsClicked(object sender, EventArgs e) - { - using (var nms = new MapSelect(currentMod)) - { - nms.NewText.ReadOnly = false; - nms.ButtonOkay.Text = "Save"; - nms.NewText.Text = "unnamed"; - nms.PathOutText.ReadOnly = false; - - if (DialogResult.OK == nms.ShowDialog()) - { - if (nms.NewText.Text == "") - nms.NewText.Text = "unnamed"; - - // TODO: Allow the user to choose map format (directory vs oramap) - loadedMapName = Path.Combine(nms.MapFolderPath, nms.NewText.Text + ".oramap"); - SaveClicked(sender, e); - } - } - } - - void OpenClicked(object sender, EventArgs e) - { - using (var nms = new MapSelect(currentMod)) - { - nms.NewText.ReadOnly = true; - nms.PathOutText.ReadOnly = true; - nms.ButtonOkay.Text = "Open"; - - if (DialogResult.OK == nms.ShowDialog()) - LoadMap((string)nms.NewText.Tag); - } - } - - void NewClicked(object sender, EventArgs e) - { - using (var nmd = new NewMapDialog()) - { - nmd.TheaterBox.Items.Clear(); - nmd.TheaterBox.Items.AddRange(Program.Rules.TileSets.Select(a => a.Value.Id).ToArray()); - nmd.TheaterBox.SelectedIndex = 0; - - if (DialogResult.OK == nmd.ShowDialog()) - { - var tileset = Program.Rules.TileSets[nmd.TheaterBox.SelectedItem as string]; - var map = Map.FromTileset(tileset); - - map.Resize((int)nmd.MapWidth.Value, (int)nmd.MapHeight.Value); - map.ResizeCordon((int)nmd.CordonLeft.Value, (int)nmd.CordonTop.Value, - (int)nmd.CordonRight.Value, (int)nmd.CordonBottom.Value); - - var players = new MapPlayers(map.Rules, map.SpawnPoints.Value.Length); - map.PlayerDefinitions = players.ToMiniYaml(); - - map.FixOpenAreas(Program.Rules); - - NewMap(map); - } - } - } - - void PropertiesClicked(object sender, EventArgs e) - { - using (var pd = new PropertiesDialog()) - { - pd.TitleBox.Text = surface1.Map.Title; - pd.DescBox.Text = surface1.Map.Description; - pd.AuthorBox.Text = surface1.Map.Author; - pd.MapVisibilityComboBox.SelectedIndex = pd.MapVisibilityComboBox.FindStringExact(Enum.GetName(typeof(MapVisibility), surface1.Map.Visibility)); - - if (DialogResult.OK != pd.ShowDialog()) - return; - - surface1.Map.Title = pd.TitleBox.Text; - surface1.Map.Description = pd.DescBox.Text; - surface1.Map.Author = pd.AuthorBox.Text; - surface1.Map.Visibility = (MapVisibility)Enum.Parse(typeof(MapVisibility), pd.MapVisibilityComboBox.SelectedItem.ToString()); - } - } - - void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Space) surface1.IsPanning = true; } - void Form1_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Space) surface1.IsPanning = false; } - - void CloseClicked(object sender, EventArgs e) - { - Close(); - } - - void OnFormClosing(object sender, FormClosingEventArgs e) - { - if (!dirty) return; - - switch (MessageBox.Show("The map has been modified since it was last saved. " + "\r\n" + "Save changes now?", - "Unsaved Changes", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation)) - { - case DialogResult.Yes: SaveClicked(null, EventArgs.Empty); break; - case DialogResult.No: break; - case DialogResult.Cancel: e.Cancel = true; break; - } - } - - void ExportMinimap(object sender, EventArgs e) - { - using (var sfd = new SaveFileDialog() - { - InitialDirectory = Path.Combine(Environment.CurrentDirectory, "maps"), - DefaultExt = "*.png", - Filter = "PNG Image (*.png)|*.png", - Title = "Export Minimap to PNG", - FileName = Path.ChangeExtension(loadedMapName, ".png"), - RestoreDirectory = true - }) - if (DialogResult.OK == sfd.ShowDialog()) - miniMapBox.Image.Save(sfd.FileName); - } - - void ShowActorNamesClicked(object sender, EventArgs e) - { - showActorNamesToolStripMenuItem.Checked ^= true; - toolStripMenuItemShowActorNames.Checked ^= true; - surface1.ShowActorNames = showActorNamesToolStripMenuItem.Checked; - } - - void ShowGridClicked(object sender, EventArgs e) - { - showGridToolStripMenuItem.Checked ^= true; - toolStripMenuItemShowGrid.Checked ^= true; - surface1.ShowGrid = showGridToolStripMenuItem.Checked; - surface1.Chunks.Clear(); - } - - void FixOpenAreas(object sender, EventArgs e) - { - dirty = true; - surface1.Map.FixOpenAreas(Program.Rules); - surface1.Chunks.Clear(); - surface1.Invalidate(); - } - - void SetupDefaultPlayers(object sender, EventArgs e) - { - dirty = true; - var players = new MapPlayers(surface1.Map.Rules, surface1.Map.SpawnPoints.Value.Length); - surface1.Map.PlayerDefinitions = players.ToMiniYaml(); - - surface1.Chunks.Clear(); - surface1.Invalidate(); - - PopulateActorOwnerChooser(); - } - - void DrawPlayerListItem(object sender, DrawItemEventArgs e) - { - // color block - var player = e.Index >= 0 ? (PlayerReference)((ComboBox)sender).Items[e.Index] : null; - - e.DrawBackground(); - e.DrawFocusRectangle(); - - if (player == null) - return; - - var color = player.Color.RGB; - using (var brush = new SolidBrush(color)) - e.Graphics.FillRectangle(brush, e.Bounds.Left + 2, e.Bounds.Top + 2, e.Bounds.Height + 6, e.Bounds.Height - 4); - using (var foreBrush = new SolidBrush(e.ForeColor)) - e.Graphics.DrawString(player.Name, e.Font, foreBrush, e.Bounds.Left + e.Bounds.Height + 12, e.Bounds.Top); - } - - void OnSelectedPlayerChanged(object sender, EventArgs e) - { - var player = actorOwnerChooser.SelectedItem as PlayerReference; - surface1.NewActorOwner = player.Name; - } - - void CopySelectionToolStripMenuItemClick(object sender, EventArgs e) - { - surface1.CopySelection(); - } - - void OpenRAWebsiteToolStripMenuItemClick(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("http://www.openra.net"); - } - - void OpenRAResourcesToolStripMenuItemClick(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("http://resource.openra.net"); - } - - void WikiDocumentationToolStripMenuItemClick(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("http://wiki.openra.net"); - } - - void DiscussionForumsToolStripMenuItemClick(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("http://www.sleipnirstuff.com/forum/viewforum.php?f=80"); - } - - void IssueTrackerToolStripMenuItemClick(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("http://bugs.openra.net"); - } - - void DeveloperBountiesToolStripMenuItemClick(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://www.bountysource.com/trackers/36085-openra"); - } - - void SourceCodeToolStripMenuItemClick(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("http://github.com/OpenRA/OpenRA"); - } - - void AboutToolStripMenuItemClick(object sender, EventArgs e) - { - MessageBox.Show( - "OpenRA and OpenRA Editor are Free/Libre Open Source Software released under the GNU General Public License version 3. See AUTHORS and COPYING for details.", - "About", - MessageBoxButtons.OK, - MessageBoxIcon.Asterisk); - } - - void HelpToolStripButton_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("http://wiki.openra.net/Mapping"); - } - - void ToolStripMenuItemNewClick(object sender, EventArgs e) - { - NewClicked(sender, e); - } - - void ToolStripMenuItemOpenClick(object sender, EventArgs e) - { - OpenClicked(sender, e); - } - - void ToolStripMenuItemSaveClick(object sender, EventArgs e) - { - SaveClicked(sender, e); - } - - void ToolStripMenuItemPropertiesClick(object sender, EventArgs e) - { - PropertiesClicked(sender, e); - } - - void ToolStripMenuItemResizeClick(object sender, EventArgs e) - { - ResizeClicked(sender, e); - } - - void ToolStripMenuItemShowActorNamesClick(object sender, EventArgs e) - { - ShowActorNamesClicked(sender, e); - } - - void ToolStripMenuItemFixOpenAreasClick(object sender, EventArgs e) - { - FixOpenAreas(sender, e); - } - - void ToolStripMenuItemSetupDefaultPlayersClick(object sender, EventArgs e) - { - SetupDefaultPlayers(sender, e); - } - - void ToolStripMenuItemCopySelectionClick(object sender, EventArgs e) - { - CopySelectionToolStripMenuItemClick(sender, e); - } - - void ToolStripMenuItemShowGridClick(object sender, EventArgs e) - { - ShowGridClicked(sender, e); - } - - public int CalculateTotalResource() - { - var totalResource = 0; - for (var i = 0; i < surface1.Map.MapSize.X; i++) - for (var j = 0; j < surface1.Map.MapSize.Y; j++) - { - var cell = new CPos(i, j); - if (surface1.Map.MapResources.Value[cell].Type != 0) - totalResource += GetResourceValue(i, j); - } - - return totalResource; - } - - int GetAdjecentCellsWith(int resourceType, int x, int y) - { - var sum = 0; - for (var u = -1; u < 2; u++) - for (var v = -1; v < 2; v++) - { - var cell = new CPos(x + u, y + v); - - if (!surface1.Map.Contains(cell)) - continue; - - if (surface1.Map.MapResources.Value[cell].Type == resourceType) - ++sum; - } - - return sum; - } - - int GetResourceValue(int x, int y) - { - var imageLength = 0; - var type = surface1.Map.MapResources.Value[new CPos(x, y)].Type; - var template = surface1.ResourceTemplates.FirstOrDefault(a => a.Value.Info.ResourceType == type).Value; - if (type == 1) - imageLength = 12; - else if (type == 2) - imageLength = 3; - var density = (GetAdjecentCellsWith(type, x, y) * imageLength - 1) / 9; - var value = template.Info.ValuePerUnit; - return density * value; - } - - void ZoomInToolStripButtonClick(object sender, System.EventArgs e) - { - if (surface1.Map == null) return; - - surface1.Zoom /= .75f; - - surface1.Invalidate(); - } - - void ZoomOutToolStripButtonClick(object sender, System.EventArgs e) - { - if (surface1.Map == null) return; - - surface1.Zoom *= .75f; - - surface1.Invalidate(); - } - - void PanToolStripButtonClick(object sender, System.EventArgs e) - { - panToolStripButton.Checked ^= true; - surface1.IsPanning = panToolStripButton.Checked; - } - - void ShowRulerToolStripMenuItemClick(object sender, EventArgs e) - { - showRulerToolStripMenuItem.Checked ^= true; - showRulerToolStripItem.Checked ^= true; - surface1.ShowRuler = showRulerToolStripMenuItem.Checked; - surface1.Chunks.Clear(); - } - - void ShowRulerToolStripItemClick(object sender, System.EventArgs e) - { - ShowRulerToolStripMenuItemClick(sender, e); - } - - void EraserToolStripButtonClick(object sender, System.EventArgs e) - { - eraserToolStripButton.Checked ^= true; - surface1.IsErasing = eraserToolStripButton.Checked; - } - } -} diff --git a/OpenRA.Editor/Form1.resx b/OpenRA.Editor/Form1.resx deleted file mode 100755 index 84481a152c..0000000000 --- a/OpenRA.Editor/Form1.resx +++ /dev/null @@ -1,1074 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 429, 17 - - - - - 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 - rkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAFYSURBVDhPY6AqyJt9/z+UyZA1/TacHd93Cc4OaTwJZ2MAZAPSJt+Es2M6z8PZAbVHMQ0AaQTh - 7Bn3/mcAbU6fcuN/ysSr/xOBNsd2nfsf0Xr6P8hmkGafyoP/PUr3/ncp3I5pUNZUhLNBmqFMhpDm43C2 - R+luTI0wALIZykRxdmDtETjbpXAnpgEgZ2cgORukOaId5OzjQGcfBjvbDeTsgu3/7XK3/rfJ3PjfMm0d - pkEozgZqhjJRnA3SDGViAlCAQZnA0D4MZzshOdsifS2mAfE9VyDOBoc2wtkgm0F+dsje+t86c9N/89R1 - /02TVv03jF/x3yB6KaZByKEN8jOUieJskGYoExMEITkbObSRA0wvBpvNcGfvBycSkJ8doKFtDtRskrQa - 7Gy96GX/daIW/9eKWAjGUO0IgBLa2QhnG8Uvh7OxaoQBZGdbpCJCG9nZeA0gHTAwAACOffGU2o3WzAAA - AABJRU5ErkJggg== - - - - - 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 - 5wrrvlLxhgAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAEiSURBVDhPvVO7TgJBFN2fovAHNDb+gLGywsbCxoTOxF/wgaLGRPGJNUEeglBaaKExWhF8E1kh - Cwsyxzl3d83Gip3Ck5zMvTtzz97cOWPtnFVBbmcusXVaEaZOytg8vsDGUUmYPCxi/aCAtXReuLp/jpW9 - HCyCxWHML6X8yEP/G2i7wEcHqH8C96/AdQOITc56AvxzAMdxMD696GfAYAgeQlMXN1rAw5uX5+9CAmyZ - YDE5NhWXnAffW11Zb1+GstYeve/ZvwILy7uYmEno4jnZGJUiwIGF8bsxKjjtADqNLsBrCmDbjrmADs06 - oEmUUuj19T033egCdJg7UPjqGc6A1gycdvOkzAToNB2adcCH8WwDV3WI0yIL8FWxKEx/6z9gWT/PHGlW - lc2EywAAAABJRU5ErkJggg== - - - - - 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 - IPgFAlSB3U6URz4AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIVSURBVDhPtVJNaxNRFM1PyE+Yn1AUXLjK0uWgDWQZwUUX - KsGFBEEcCkIwqBEpGiydsSo2kupsasdo7Yi2toh0sFZjG5JpiZo20/TpVOmH5njvm8BYahEXHji8+968 - c+55l4n8F0zM+rhVWkHmdg29A/PoK1Yw8uIjOp/3xpvqBgrjLeilZbjNLXxZ34bwt6jexMVCGRndQenl - 0p+NWHzPXoP3rQ3bAbQhQM0E5Np2BKprbZzrm8TIs8puE+68+r0NwwZiacCwALEBCVcAqet8JlAjk1PZ - JzsNJt6u4+FMS3ZmMV9mmFNAMhesbBZLC6oFdOsd8oVXocmdx018Ej9k1FgqiJ0zgS6qlR6BVI4iEFRN - IJlxMF/1cfTMcGiQvbskB6ZqgairJ6BCTJKYu9tlAUW1oSRsNDwfB+JXQ4PzN6s07W0ZPxDS5aSgJEFn - 06Y9CaOqSauJRvMr9qmXQ4P8/RoWvU16eyBUEq5kbigwiKoOMTBQ0zbKlTq6TxihwejkZ1iOJwfEwmiC - BQ49yaW50J7Fh0xJw3IxbM3hwo2x0ICRHZzFgveTunYERK5lgo5YMxx8WPFw5Li+U8wYm66jNz+Naov+ - Beqiao58N5NrPluoryJO0QeKU7sNGKPPazh9aRzGo/eYmVvEMk270fTlmzl2N3XW9xL/jv7iaxw7+wAH - E9ew//AVxE8OItv/9O/Cf0ck8gud2vKswuxNZgAAAABJRU5ErkJggg== - - - - 198, 17 - - - - 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 - h1pVBKcAAAAASUVORK5CYII= - - - - - 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 - rkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAFYSURBVDhPY6AqyJt9/z+UyZA1/TacHd93Cc4OaTwJZ2MAZAPSJt+Es2M6z8PZAbVHMQ0AaQTh - 7Bn3/mcAbU6fcuN/ysSr/xOBNsd2nfsf0Xr6P8hmkGafyoP/PUr3/ncp3I5pUNZUhLNBmqFMhpDm43C2 - R+luTI0wALIZykRxdmDtETjbpXAnpgEgZ2cgORukOaId5OzjQGcfBjvbDeTsgu3/7XK3/rfJ3PjfMm0d - pkEozgZqhjJRnA3SDGViAlCAQZnA0D4MZzshOdsifS2mAfE9VyDOBoc2wtkgm0F+dsje+t86c9N/89R1 - /02TVv03jF/x3yB6KaZByKEN8jOUieJskGYoExMEITkbObSRA0wvBpvNcGfvBycSkJ8doKFtDtRskrQa - 7Gy96GX/daIW/9eKWAjGUO0IgBLa2QhnG8Uvh7OxaoQBZGdbpCJCG9nZeA0gHTAwAACOffGU2o3WzAAA - AABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAEiSURBVDhPvVO7TgJBFN2fovAHNDb+gLGywsbCxoTOxF/wgaLGRPGJNUEeglBaaKExWhF8E1kh - Cwsyxzl3d83Gip3Ck5zMvTtzz97cOWPtnFVBbmcusXVaEaZOytg8vsDGUUmYPCxi/aCAtXReuLp/jpW9 - HCyCxWHML6X8yEP/G2i7wEcHqH8C96/AdQOITc56AvxzAMdxMD696GfAYAgeQlMXN1rAw5uX5+9CAmyZ - YDE5NhWXnAffW11Zb1+GstYeve/ZvwILy7uYmEno4jnZGJUiwIGF8bsxKjjtADqNLsBrCmDbjrmADs06 - oEmUUuj19T033egCdJg7UPjqGc6A1gycdvOkzAToNB2adcCH8WwDV3WI0yIL8FWxKEx/6z9gWT/PHGlW - lc2EywAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAE/SURBVDhPY0ACokCsBaVhAJsYVsBvbGzsD6T/Q2l+HGI4gTwQ/wcBEA3lYxMDGQKjUQAxLpDH - ogYFIJsOY8MwjI/uIjAABRBMEQjg8jt2cSAnC00Qp01AAJOHGQoG6IpxugCIMTRjcwEIoCvGZSgYoIcB - NiBv6q79v3Rmwv+0Pv//EU32Xzwr9GqgcnCAbisIgMViGzz6G1cn/t9yZer/C892/e/fnfU/vF/3v3m2 - ZA9EGVAhFifCxWLanH9uvDzh/8Zrk8Dh1bMn9X//nnSQAd+B8mAAshksCaKhfLiYT7Xh/21X5oDZMLDp - 0lSQASC1YIDXBRbZ0j+7dyX9b9+VANbcvjMB7AKzLIkfQHk4wBkGJqni3cE9Gv97d6WAbQbRIL5xivhU - iDIiANC5HUD8CeRsoM1fjJPFJzEwMDAAAD8wxIeEhxEyAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAD0SURBVDhPY0AD/9FoogEuDaQZdCzROe5YsvOJwwnODw7EO1S7KomLQaXwArAtIM33WrNef1ra - /f9NT/7/U/H2X9f6mXeCVRDjEpDNIM0/N876/3FS8f9byTb/Fzhp34ZK4wVg00HOBtkM0vyiKvT/1WDN - /z3G8q/AKohxAcjPIGeDbAZpXmch9mteYfb/Gct2EhWQ/0EBBvIzyNkgm8t8A/9X10/6DwLEGoICXCKK - /vfP2fr/2p1nJBkCUwSmHUMLwIZcv/ucJENQAMyQG3coMMQprBBsyO17T8k3xNgj+b9rZBF1DAFhqBDp - AGQIlEkNwMAAAP7JtzLCVbRNAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAJVSURBVDhPpZPdS5NhGMZ3LKJ/gzsrHg3sIFsm5A46cC3ImmnWOy0/lrMtpdbct5tbH5Op6eZH - 6lrvtOYqTTdxrUyCTgoKlSwiAjHICAOro7VdPe+7aRSyhC64eeDhvn73/b4Xj+BvRcc8WRPDphKnUYG2 - iwxam07AY6sqsTVXZKVa0itypyeHQrD63LhZ1MxVTqolvSZZF5ke7dwKQFIt6RUYvJLD9tm3AmxvA2rO - uO+1iv0ey6a52yIX0zMj1fJvsb02srEFB7Coy7a3/obYXjsPSLzVQlt3GNp6aXrAk4nBzEf3+oWRQA8J - +ztIcOiq1N/rQGKpCecZMTrN9VK2x0R8XQbi7dAJh10tmSmrQPD4bl/2s7CXmR0fBI0Q4ZEOTPraMe67 - huCAA4EbbRj1tIJ1m0EBoADc6tIzbrs6CaFTc7ncvy3PAGtzfCW+zCL+OYqfn2YQ+xhCfDWyeb8yH8B1 - ayOc+hohD5hiXYVc7rx5qRnxhUboa/OhO50HrXwnWqoJjA17EV9UIfayHu8eHIW+4QgMytLkfxkbsBfe - 9lgRW5nC+sMSrE0dwPe5UhgUeyhoN3RnduHHUxnWoxJ8DRXjVX8+lBVFUJ0sTgL8bksul/nyCx/mhwqw - eHM/PkSq8H66EsrjO/AmKMHrETEWvCLeHGrLg0ImwtmyfclP8HWbsv1uU3W7vg4ODcOXjT4gmj2/qqb2 - EJrkB3GuspifzJnV5QWM4pjodxKdZmWmU1cjvHypitgvnCIUQMwqGaEAoqmREAogFEAayosIN/kP8/9J - IPgFAlSB3U6URz4AAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAI3SURBVDhPpVBtT1JxHPUz9GHatDSlWfbIxEkCAQJe - DJUIKEBEx4OkIiiKPC10QS7XyrU2KRFQUKcBEup06hfoVc1euLVe6OnvbVdN75vWi/O7+5+dh91TBuC/ - wEraS6Yta/EZuvP6I/Pqkxk2DYMLhL1kvGQvmjC1F0FsNwTDsvrbec1ZsJKWnO4gthtEcNMDXUY1z6Zh - QB/HeidsXwzoKTxFV04L04rmKLoTxPi2D49T1I+2Wfn31rh0X/FBtM8aYCXm13svMLkbRmwnhOhOABPb - fkS2fAhtDMO/7sZYyQXJ9AMiZwnoLujxipiPW/sKnTAuqaBfpKDNtpBvK7QZJQkYhPBNA5GzBJClYVxW - w5mz0K26LAVNRo6OeSlUaTGUSSG8pX6o40rwondxf7wOt8O1xHpuRE1aifCmF+qFZrSlJXiUEqElKYBs - jg/NAoXBNQcG8nb05624Eai5GNCeUCCw4YEq9adVMdeE5kQjxJ94aE/LidEG5+ce9BJwRqtOA8jSIEvD - nNHBR/61JdlEt0pnGyD6WA9BnIs+0ip/9xC1Y9W/OCOVuDZUcRpwbPYT4yhZWpdVYaj4HO61XrgKDrpV - mRTTrcRMm86CPtSMBCNkJFmCD0/RiY44RY/FnbgFxbQYjlULbCtdqPFeJXKWANl74UnrQN5BmxnBzQCH - mM2wLBlQ6Sk/4RnQR/yWD8EUD42TXNS/vIN7kbqfjOD6aNVh9fCVw0p3+UGF6/JXhmfw1+PfgbLfYY/G - d6iLJ+UAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAANqSURBVDhPXZJvTNR1AIdv03KuXL2pteV8QbnVVmuU - xESolRtJG5GxZJIgaN75h0MZZOMMwoOSIPRohAiecnceIGjHcdyheHfA8efAu+Pu4OD412FIBhThKMxJ - 29PvWJr24nn3fZ7fvt/fRwQ8QnpXapRAvcCkwJ8CdwVmBZqktpRt/z//sLha4EJQuPaTFudcK9Yb3TSP - ddPot3DJX8MBa9KyuDXRtMeU8OQjAUF6TKBLPfItM0suxuZ9DM73o5t0YwwMo/b5UHn6qfd0Udp3giRd - vHdnfdxTDwe01f4TBBbbGV60M7QwhHvWQ834EA2BCRSucYp7/Zzs6EM3ZKHULiNe875pJSDIkQL3pv5o - p3nByKXbRlrmO2i56ePsyCjfD44hNbqQGuwUOIxUTpbh+kVHbFX03zHl78YFA5eNgQqcvxqpXdBz8fc+ - +ua8lLiHKHaMIm52ITGbyRiuJDMgJ2NChsZTyoXeQraeiroaDEwN/GZAPVVFyZxS+LoP+5yH9KtuxHon - n/U5kIwfJXZUTKx/H0mDaeRey8Q2ruWtws23goGlidtW8keOIx3/nMqf26iddJJUd500i43isSukjNSw - vzaSfedD+dC8k7SGvfRPN7FZHnZHJO1MufPjgpUcbyZpXgXnbphJrrWT3DhI/Jke0s09yLw6PlVv4bgh - kYSKl5BoEum/qScsN/Qv0cG25Gn3bCMKXz5FE23IHZ3sUDs5rI1CqolAogojVRnKF7qPqXeUktUQR/Sp - 5zCPqHhd9tqMSBhGk87/Hc2Bao70FJDnqWOXtptDmnAa+8u57CpbEescChTmLFT2IvZrowkvXBsMtIlS - m3dEC8NYHpwzkmU+QIYlHanJyl7hvkH5ZOthvrlyiK9MYvIMqciNEips+eyqjmTjl6LllSEl1H2gL2k/ - isF/hrz2bHJtZj6pepmL1xVoe0tQ9RRxrrtQiBzktE2OWLuNF3IeX3o+W7R2JfCRKmadMAzv1y1HsM/8 - QPVAO9tPhxBTul7418+ypfhpks9HUN6Rxx5NNCE5a+6+Intxw4MpB3mv7J11wjBMbxdFLCu7q1DaDJzt - sKDstKIfaGRT4RPsVm0l5NiaxVdlG9ff9x4E7hNR8Ob28Lw3WjblhE4Lj7T0L7dCclbd23BsFc9ki1b/ - dx7RPxe0rmcJTZoRAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAI6SURBVDhPfZFtSFNRHMb3TQj61pe+VIJ9mPMGldcGyYJe1I2I1qbN6HVL2EJrKGzRmsWkJGaQ - RK8Mnc7MuVywNNmLLpNi0YtIm4X2NspkaC5LW7q1p3svbEzv1R88PJzDOT/+nMNzPX2PpXH2B2F3D6Ht - 0Qs6ZgC85cIIlsPieIICyckVJbyH/hDV3Nxoc8PzLJiSNFBbbIHDO0w1MPYlguevx+DyDTFrmuutvczl - VCjYgvuPX1HNTTzxj5GkRBRsgc0VoHrxBNauQVxr7sVcbAGRH3OMgBSr6GNsQZNzkGo28wsJTM/EEJ6Y - WVlw195PNfcE3ydnMRqexm1/Nyq8Rsg7L0Fm8kFZ2wJhuXE1I7h5z8MIMon9jWMy+gefx39Ca7PBMHoG - jmgHYslZnHhzHLvMduQp6lu2yg1ZPHo8Gq4JrN4RlPaUw/DtGNp/taLntx+HOz9hj3UE2ZYK5FRpC9MC - mmQymX64D1+jUF4NQHReglJPMdRhGY4+CGJn4wQEPj3WuqRYp1N3LxJkPlzo4xTISg/233kHUa0U+wIl - KGp+i8LL48htUmNNxwFsqNEk0gK6l6ZY78aO+jh2N4RQ5CyBsF2DbYYIyHM+5JiV2Hha42cE9BdxJV9u - BFk9DGHdFLbbykCa9NhSHQShHIBAZQJxqErE+tfMCBRX1m8+cutlvnYApO4UCnRdIFRe8BUW8MW6s4RE - u4rzYmZyZXXZRNnFxk0HLwTzpMZ5/l5dn0BSIyXElVkAeP8B187ybforr3QAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ4SURBVDhPpZN9SFNRGMZvBAVFUUFCQlEUUZBCnQoF - +6CMUiwNhUap2ebEr8BKlJKZqGEl1tRELaggNrGJZraKLaOv3TWnEU3ZAnOI5JhzG24T3Bg83XPiDqIJ - QX889+Oc9/2d533vezkA/yV2yX9gIqKkHTw53/aRZLe8I2JQxo0BklbTS45XdZMjFU/IgbKHJKGkg+2L - yajttaCm5ysU3V9QpTaj/DGPzFuv4tLrn8cVt+lRfO81CpQvIG3sQ26DBnvyW5BY2kk4WScP2f3PCIVC - ES0sLKCf/45Tdf3TqdU9032frAgGg39oV04jEorawQB57QaWODIygqGhIfA8D5/Ph2+2H7D/dCEcDmN4 - eBgmkwmDg4MMsP1MPYis+Tcgu/U9A9Akr9eLmZkZjI2NQavVwm63Y35+HnNzc5idncXExAQDbM5QIC73 - NjihaZDcecMA9BTqwGAwYHR0FF1dXbDZbAxgNpthNBqh1+tZibGpldghqQeX1/aBNosB6ClutxtOp5MB - 1Gp1BECduVwujI+PM8D65EvYmnkdXHbzW9osZkuskzqwWCwRQCAQiPRGp9MxwJqDJdh08ho4SZMOKQoN - A4gOHA4HA6hUKlitVgbweDysN6KDlYkFiD1RDi7r5kscrVQxgCgaQGFTU1Pw+/3sXVyn5dH78n1SxCSX - gUuvewZhsiBMFoi8FfF5Tdh5tgHbsmpRrtTgyt2niDl2GWsPX8SqpCKsSJBj2d4LWLo7F+sOlYJLrdYg - p3EgqracVmBj2tWoe1SrkwrBCbO9qIPEwlbslysXdbAk/tzff5coAfBoQ0rFpPC5JoVnXbQYqqiL/y5w - vwBd8t4lLDBzngAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHISURBVDhPjZCxT1NRFMa7kpA4sRkSBxIGF535N0hY - hEH+Ao27LDDQkHTWRZk0QCIMIuYShjIZSghLIUVMrS3tq21fW1773rMef+e2j4TyGhx+ee+ee77v3PMl - 5lZ2p2ENPo3gAzyHSRFJDKMGqf2Tgml6gXEjrvs0oNzwzGY6Z+h7PcpgW8V1mmvtwPxuBcZp+cZp+qbs - dm09X2mpwfuRBjpVxZWB6KrRNcV6xxRqHXu+z2Cn2QlMlcnaXEJ8cFr89vJNujaf/BougH7p86E+oADL - MK0GG1WEftizYp386u1hg1yE1YTX9bnuQy5CLkIugnZTDRaTGxmTyVVM8Kdneba6F6qY/YXVhFyEXIRc - hFfaOmupwbndg58Z+KiJfznK676hTlUxuVgRuQivE3Kx51sGA5N3exkr3oUWuQi52GZWuxHnq56U+P9V - bavBZSQegx34DFNwRS7SDXu3xPqKCnXykh/lphpkI4MJWIJHg/PK2taxnHx3hEwsavbTactFyZX1/ayK - PXhxs8IwXM6C63q+kIsK/kIOTiEFD7QvVhxB0xm5qLgLT+J67hQiEIyDCx14GtejxBYVRA9hCx7H3UfE - Fv8fSfwDwZ8JlGSjAbkAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAF+SURBVDhPrZDLSkJRGIWPiagPVO9QbxE1aWqjgkZNwmpQ - 3lIkSI0wzcCo0MiiC6RdLFSQog5aKOaFtMQ0deX+PaJZBx204OfsffZaH2tv7t/kPonir3H5wrB7grDt - +NnMC/bfYuZuyVfk4NM8rc2OYwyNjItDto8iZGRSGpXgMzw4LUdrJp3NA+95uAVZEGJtOQ7uyBjPxSHR - SiAzyMAZOfifAvRfY9mncGuEWFsbe1dkVBgVkOqleC2kCcTWTF/VGkFaICHWltV9QcZaHRQa0A0QoFPF - UoUAg8Nj4gDWQKKTwHntIghTvV6ncCpbFAesuk7JzMTufxO7FXZAuVJFLl9CLJkXB5jsPsH+U9XGnQrF - MhLpD9zHcuIA/bqXAuZNHzRru5gzODGzaIFq1oSJ6SWMTqoRekiLA9hBt9jLv71/4jlVQJTP4jKS7A1g - DZapwVajgbXZYKrRQKXGWfClvwbs0TofLvKYgT+UwGEg1hvAvr1GFMAO+p1miuO+Ab7ZFVkV6pPjAAAA - AElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALnSURBVDhPdZDrL1txGMf3D+z13oqOUavSlp621Gq2 - F7NiLhuZ2yRkExLDlNnMvSN0iE3EMKZza11Kx2hdasssWUhGsmwum5Bt6jI2jiLx3TlEU5u9+Jzf8+T3 - +36f831OAPgvHj1CeHQLJHTt3sb3d1O5bv395kgj6RcxLHuxhoB7O18Tq/CxFjW7RAtf8H5Z3tMcac7R - E7WC5MPeTc03iVpcV2IeXFT65Qu3hNXcveDbogJLjbmgEXcRa+6dhImu3VXEurDJBQIlD4I6HjIMiTDM - tyO1KALSaM6dQ80RAyqnxK3VFeJmYs1bdQHqyRr0fmyAYiQPrEd2iOjxRctoBZyLz8KpwAGOeUxqaiex - TuU0Z6dy7nkoBWgaK0Huqyika4KRoomEuIIAq8AeUQ3X4OVnO3X4ns65Q+WEsNGlXqwkjFfVflC+L0am - NhxJal+EPfdEfmcQJoZuoWqwEI459hCF2LSbDeiPoIH3lqjjgqjhQjVejozuUCSqfBBWJ0F4oy8+9Edi - ZaoV+r44sDKYYKbZbtin2MSbDWiIp1xTSLM/inTxSGiRIrTWE4H1l9HbH48lag+7G9OY6AiCTzYbdkmn - 984kMGAbZ30gpuE/5mzeVEehdECGsGdeCKj1RmV3IsbbrsC01A3TNwVWZ7SofSKGNNXhFK1hxFjdMxsI - y1zknCIWsrUyBNZIUdyVhrZGKZY/qWCaz4bhIRc7KyqM15zfG6uSBBzqzAY0XDl7mJFsheqhclSqovBF - n45tYz3I6RswyJ2xNSfD2uxL6EqIxXelxMl/DGgc05nDnLsO0NVewk9qcVtfk7H5OfiAqTAqSgnmhsvQ - kcsuOdaAJkvOHZ0zKLD9o2J/+ubUdSoCZ/8kZ2NBfu+EIYe1OJzlwDzWgPq9BXJ5BturepiM1A6MrRao - sft7EgujDRhIt2091uBNIWf5tdyJHMljk9Qksj+Tib4MewzetyMpEalPsyH1MgapS7Ee+QMga508U1fU - 1wAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ8SURBVDhPhZLLT1NBGMW70K2JS7cmxrjU+A9oIGIg - FGhEUYkYRYIYaiyCUPqgD2p42hb6BkqLoKUWegt9UKm0JQrSGjdaQErRmLhzY4pE0OPcIRBKfSzO5M7M - /Z3vzDfDAfBftUdb06oZ2aE/7WUt7FdbRJE2x3VQhqQQBxqzTDIm+/UwLE+b4j3wffLAsKBFs68Bdczd - DJMMYK9I5LQxxsIMHCt2eNfGoXnZAYG7FjWjt3ZNskBWrS9a0oaYFr6Pbjz9YIdt0YyGCQEmUmPoiKpQ - 7ajE9aFyapIFK0OStH5BAy+B26JKKMNSWBNGDCQMeLw0ACblREtQhKvWS+tZBvJp8brutZrEdSP5bQkb - W98x8nYIihnxNrzqhDQoxOWB0s0dhg7a+a5jsueiH73zj+hZ2yJKCusjvUh9TUIVkcG9OgrJlJCtjPLB - Mly08A5QA+18p0hGIvXMdVP4ybKNxJbQyiws90u34UATWxlzX2bR7H+AEmOhghqwkbRzXZgkDRpZHqRn - 7X+vh5zEVoVlGE+OQhRoRJXrBoVnP4cRWguAZ+LivCb3MEcxLbESwfJGD0/qGeo8fPS908G+2EdgB61W - P3WPwFFMLjOo9VdvlPWXIk+dK8jpPnOKowhJjrAp2EeiX1DTuLaEZRsma5XOCjCLLqhn21GkLwgU9OSp - 89Q5RzOa2OS9b7bGLRAwfGhedWJsxQGhtx4XzMUQEhOeqSjJ1eWfzdeeO7EDZhjUMfzjLcHmreCqD3ec - VSCGKDYU/iKd9vOM3Kb90F7RodZ1+yB5XWOVwxU/+a4aNupmqaXkNOn0btS/affj5nDFyWu2KzFyVfl7 - f/i3wPkNOLzMGxqYvkUAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJnSURBVDhPbZLtS1NxFMfvf9F/EARBEEFEQdCrXgRGvTMM - ClN8URBYkaDUC31RCCZFkj3YnGhmpuh0s+FS51Nr6iLnfMB0W27uSe/udrfr7vp0vdtQs8+Ly+X7Pef8 - Ducc4V98YYXhHyJ9DoneaYnu8Qg2Z4DNaIJ8yGH+AGNuEeNoBPuKzFJAYS2kshqQ+er0Yuibo2NgFjm9 - c7BIVss0O2N0TkZQtSIFtpMqW8mM/i8m0rQPOKlu7EeUUnsFHIvbNPZ59aACgajMmduTnCr7Qjgm5VV4 - 0zVGbZOZ1G4HybTKq/4Vrb2tvJ1jJ5Ol1jBPbYuLtJJ7PUeasmoDo45lhG/uEPWt3/PGHhshmbnlMP5w - PK9oBRVF+6aw2Bzce9qN0GNb4vkHR87dx+eRX5wosVBUadUmnWtbzaioaQmPe5HSqvcIQ1PrvPw4o5v7 - cXiCnC4e5fzNQXzhmK5lsyqppIh/bZXymlYEu2uDeqNDM3aXtcfcSohz16xcLDcR3BJ1LaOqSGIEj2eB - Gw9bEJa9UeqaR/QB7ce9HuXsFQuXSk1IiqxrcUlCjm9ittq5VW1E2E1q6pzCYl/UAwpM/Axx5GQnRy+0 - 4YvmhhYNbyKLfipq3vG6azy36xXt9UcvLIjJlB60S9ugh2NFbRy/bOCTdUGbltZ6Kkh79xDXH7QQ207u - HcqUa50nzWb8waCWukNWkUgoMRKJCFI0iBL302sa5uqdJmbmvYfvfNbto6qhh5qGLqadLlLSb7Yja9hG - J7hfZ+RuXScz7v8kFghpO+0wOah43E5x5VtKtBarn/UyPOU5eNOCIPwFCBKiGq2sGKsAAAAASUVORK5C - YII= - - - - 313, 17 - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALSSURBVDhPjVLbS5NxGN4/sLm5ZeqWJdlNJ7oIoQPR - hWBEIF4VGYUUUSBk0kUidCdTA0UMdBKGkugssxKdeMDcbHn43FjzgGtuNs+HuX07fPu+be7pLdnF1Isu - Hvi9vO/ved73fV4RgAMQLMezeHPGcsiUEeUYFYITKj4wpjQFjMq8/bUJQRwhc4Y/stYCcFYg8ANgBxDZ - aIHPkG7fX5sQxPFXFaFZwDMIbH0AVhux626DdziV0om1CUEcgXEVdr39iG12IEbKkYVSRJxlcA8cpXRi - bUIQh9+oRNilRnDyOvyjF8H2nwI3dQ9buv8kYA1piJJyeP4phJ/5CI1fQ5C5i/XuI5ROrBXxpgxJiDm2 - zE0oo8ExJQLf03mfPh28vZT2dxX+4Qvw9pyEMFeElS7FQQJuUlUR/l0L8E5a3BxtnUF4Qwuv/jSE2Ufg - zbfAGa/Q+wlcHYcQkL+IhWz00UJ2GYAdHWK+4X/z+kcvwzdwDp7PJ6ibfDhbkw8SsKNEEDQj5jUg5hlC - lPyPrmuwRvMK1vvgmRsI6rPBWwthbz6EwPMtDRGyi7e9BDddiOBUDvhfj7HcqYBvJBus7gx8X9IR0CnB - divg7ZLD/VHOb7bLTOutsjzR9kAqoqQcWdIg7KyEMP+CyB5isV1ODhSQAzlge1LoLvQ0polgpE77wC1W - wtUktYs2dJRkhxGij5ylgLzPQXS1GvaWZJo7F2zveeyQ6t5lDu1d5to7GvkT7A1JEK1+TdEGFqrpUxPC - jnKEF8rgsxbBqc0CaymE4CjBdu9ZBG2vENvpQWyrjbqtAWu+g9laiVbk6lQUuycfUEtVEJYqELA9w+pI - LmY00sHpeiljrUsS5jVS17bhJpGUIOR4Dr/1Nlb6LsFSJS4WOdrlmfb3crWtWcbMNcmEmUYZY62Xqi1v - pJnxTTveSjNtDUnquToJM10jESyvxYypUqxmysWZfwCSxP6Dn1PvvAAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAFNSURBVDhPxZDNSgJhGIW9hSCCbqRFl2B0CUKLoJWLQFoGCUKbVkURFlTQj9li6MckE81FgUqk - iUhWlP0Yk43ZjOOYzpzGz28ammwUNz1wePngPec7vBYDoLNr/iegYdLUwPheaTN/oJm6hgTsRjK4eeS+ - lc0VkLx6xszyHjdin3T19vX3kO0WkAAmnIYRoSxhcTOAcedCyTE1N022/8IbSFCbDl+uwOFawoB1lIiu - /oIcZuMgRm06igLcPrBwe4IYsk2Y32qVOaU2nVpNBleqwB9JwmoSQBq4vWFqayKr3/NiFU8sj/3QhWkA - YX79iFqbSNU62KKI61wRzPF5+waza4fUCtRlGe+8hPt8CZfZV+z44+0baAGKWl2UPvFSEJC5e0M0lceW - euCOGnwIIiLRNIJnKfhOEqS6xxeDezvUWQOb3UkWW2lweIwGWCxff/dVb00F4NUAAAAASUVORK5CYII= - - - - 45 - - - - AAABAAIAMDAAAAEAIACoJQAAJgAAACAgAAABACAAqBAAAM4lAAAoAAAAMAAAAGAAAAABACAAAAAAAAAk - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAQAAAAJQAA - ADcAAAA+AAAAOAAAACoAAAAYAAAACwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAUAAAApAAAAVAAAAGIBAQFNAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAASAAAAOgAA - AFkAAAA6AAAAMQEBAUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA - AAoAAAAkAAAAUQAAAHkAAACJAAAAhQAAAHMAAABTAAAAMAAAABUAAAAGAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAIAAAAkAAAAaQEBAZYCAgLaAAAAWgAAAAsAAAABAAAAAAAAAAAAAAAAAAAABwAA - AB8AAABMAAAAfwAAAHkAAAA8AgIAwgEBAWkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAA8AAAA9AAAAgwAAALMAAADFHRcU3QAAAMMAAACgAAAAdwAAAEUAAAAeAAAABwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAUgAAAJgDBATpAgIG/wEAAI8AAAAYAAAABAAA - AAIAAAAOAAAALgAAAGIAAACVAAAApgEAAJUEBADsAwQK/wAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABYAAABPAAAAngAAAMx3YFX3jXZv/5RuY/9mT0X2GxENygcG - BYsAAABKAAAAGgAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAKAAAAQAAAAJMBAQHRBApN/wQK - U/8CAADQAQEARwAAACkAAABIAAAAeQAAAKMAAAC5AgAA1QQGJf8FC1v/AQEHrAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABwAAACEAAABcAAAApQICAtOFc2z8hnJt/5h6 - cf+hfXL/mHty/3VkXewZExGLAAAAOQAAAAwAAAABAAAAAQAAAAIAAAAFAAAACAAAABAAAAAqAAAAYwAA - AKABAAC8AwAV+QUWxv8ED4P/BgcX/AEAALAAAACWAAAAsQAAAMkEBArzBAli/wMOtf8CCVD/AwIAbAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAEAAAADQAAAB1AAAAsgcE - BNmHcGj8mYiB/6GMhf+lkIj/moiB/5qIgP9dTUfqAgICYAAAACAAAAAGAAAABAAAAAoAAAAZAAAAKgAA - AEEAAABqAQEBmgEBAbkHCw7dBgcH+QEAi/8FHf//AgG0/wIABP8GFRntBiIw6wcYHf8BAET/AgR6/wMF - X/8DACD5AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAGwAA - AE8AAACXAAAAxQwLCuGSfHX9momC/5yLg/+cjIX/mYaA/5aGf/+MdWv/GhUSoQAAAEAAAAAXAAAAEAAA - AB8AAAA+AAAAZgAAAIwAAACtCQkJx0A5N+UYdqT/JsXu/wgdZ/8AAIr/Cyx0/x6Rwf8luf3/Jbv//yCd - 3P8TYIj/FWaB/xdtjf8EDhfkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAIAAAAKQAAAG4AAACxBwYD1HdiWPmcioL/mYiA/56Nhf+ejoX/lYV//5WGf/+Wgnv/U0M96AAA - AHUAAAA4AAAALwAAAEYAAABzAAAApAAAAMIkGRHhIBkT6F1WVfYqPUb/KM3//yOt5f8NN0b/J8r+/ybE - +P8ZfqT/G4ay/x6Tz/8hpej/IKTl/xuLwf8FExmmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAIAAAANAAAANwAAAIQAAAC+IhoW5Jt2av+Qfnf/no6G/5WHgP+vnpb/koJ7/5iG - f/+Zh4D/k4B6/kU4M8UAAABvAAAAagAAAIcAAACsAAAAzAMDAt+FW0z8fV5R/VtQS/2PgHn/UUhH/yKV - tf8z////I62//wcXX/8CBMz/AABw/w9HXv8muv3/Iq30/xh0p/8BAABfAAAABAAAAAIAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAYAAAAWAAAASAAAAJQAAADESzkz86CCd/+mlI3/rJyT/4Z5 - cf+djIX/m4qD/5CAef9xZF7/jHx1/3BiWe0GBQSzAAAAsAAAAMQBAQDWCgUE5U83KfaCa2D/lH11/3hp - Y/+QgHn/noyF/xQODf8SU4X/CBuY/wUK//8BAOn/Cypv/yfC5v8luvf/IJvN/yKx+f8MKzrlAAAAIgAA - ABAAAAAHAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAwAAAAqAAAAZgAAAKgAAADMVEdA+LKg - mP+pmZH/rp+U/4Z3b/9+cGr/joB5/4R3cf9zZ1//dmhi/4p5cv8fHRjlAAAA3AYEBOQgGhfzV0U4/pqA - df+wnpX/no6F/4V1bv9yZF7/ERIX/wUNzf8AAJ//AgK+/wAA8v8LJlr/K9bh/y/w//8NO0r/EEh+/ynZ - //8SVHj/AAAAywAAAEgAAAAnAAAAEgAAAAQAAAABAAAAAAAAAAAAAAABAAAABAAAABcAAABIAAAAjwAA - AMAAAADZZlxV+rSkmv+4qZ//oZGJ/419dv+QgHn/eGlh/35waP+Nf3b/emxl/5KCe/9kVEr+GxQO+Ug9 - OP2Mf3j+loZ+/52LhP+qmpH/oZGI/15STf8ICTL/CB30/wUTzv8il4j/HYac/wgcRf8qz93/NP///xZg - av8AAJb/D0W8/y3h/f8TWZ7/AQBY/wYEAPABAQCJAAAAQwAAAB0AAAAIAAAAAAAAAAAAAAABAAAACQAA - ACgAAABoAAAArQAAANCCaV74pJSN/8i4rf+omY//koF6/4t7dP9+b2j/koB5/5uJgv+UhHz/iXlx/3Bh - XP9lW1f/UEM8/4F0bf+jk4r/m4qC/52Nhf+gj4f/OjIs/wgUf/8KKv//AgDw/xlhU/87////L+b//y3g - 8P8w7v//F2N//wAAqP8BAP//E1SY/y7n//8PPn//AADr/wYWv/8GCCv/AQMEuQAAAEkAAAAWAAAAAAAA - AAAAAAAEAAAAEQAAADwAAACCAAAAvCUbGOKhjoT+sKCW/7ionf+Yh4D/gHBp/3hoYP+KeHH/kYF4/5+P - h/+Xhn//h3hx/3hoYf+XhoD/cF5V/5WEff+ejYX/nYyF/21hWv8LCQz/ChmV/wop//8IJPr/Ch/z/wcS - of8eiZD/Nv///zP///8jrKD/AABe/wYZ//8CAJ3/H4+m/yrT/v8IGoz/BAzS/wUWy/8GFKX/BQYm/wUG - BOUBAQFBAAAAAAAAAAEAAAAHAAAAHgAAAFUAAACbAAAAyUc/Ou6ejYX/pJOL/6WUjP+ejoX/iXpz/4t7 - cv+Xh37/mId//5+Ohv+pmI//koJ5/5GBeP+cjIP/dGNb/4t7dP+bioP/iHx2/zEtKf8hHyT/KipE/yYk - Jv8lIiX/ISEp/xkSPP8REA7/Gnh5/zb//f86//D/IqGV/wAAlf8NMYr/Nv///xhkgf8eKzT/KDg//xca - Hf8lLDP/ERUd/wYHCu0BAQFxAAAAAAAAAAEAAAAMAAAAMAAAAHQAAAC0AwMD1WleWfidjYT/pZSL/5yK - g/+OfHX/hnly/5CBef+Pfnb/m4uA/6aTiP+di4P/moqC/5mJgf+VhX3/lIN7/5eFfv+gjof/nIqE/5iH - gP+djYT/kIF4/5CAeP+Le3P/hnZv/4x9df+UhX3/SD04/xA6bf8XW6z/EESi/wYMPv8y+f//JKu7/1uA - kv+Nx+P/kcvn/1d4jv9KVmr/LD9N/xIfKacAAAAUAAAAAAAAAAIAAAAQAAAARAAAAJMAAADGKSYj5KWV - jP+woJb/pZSM/4V0b/+MfXb/nYyE/5iJgf+UhHv/pI+G/6GRh/+Qf3j/lYR9/6CRiv+ZiID/mYeA/5mI - gf+ci4P/n46G/5iIf/+KenP/gXBo/31tZf+GdG3/iHdv/4d1b/+LhYP/WGRm/wYASP8AAP//BAmf/zHr - 4f8jrK3/WH6O/3y71P+JxeH/jcjj/4292f9FWWj+JC86+QkPE3EAAAANAAAAAAAAAAIAAAATAAAAUAAA - AKIAAADNh3p0/K2dk/+snZL/no2F/4N0bf+RgXr/jXx1/5yLg/+YiID/mYiA/5ODfP+NfHX/mYiB/56M - hf+Yh4D/nY2E/5CBeP+Sgnr/loZ+/5qJgf+nl47/nY2E/5SEe/+PfXb/e3Rx/1Zocv9fg5L/Pml+/x4s - Pf8OKmv/Ip6E/xhrdf9kjqD/i8zm/4HC3P+Fwdz/iL7X/32xyv8xPkn/Hiw28wUIClcAAAAMAAAAAAAA - AAIAAAARAAAATQAAAKEAAADWqZqR/6STi/+ikon/b2Nd/3xqZP9wYlr/fm5n/4p5cv+OfXb/i3t0/4V1 - bv+MfHX/loR9/5qJgf+WhX3/jn53/4h3b/+Id2//mYmA/6OSiv+hkYn/qJiP/5uNhP9zdnj/T2h6/0uO - rf9UlbP/Z7LP/052hv8RMD3/CSPV/woMIf+GxOD/gsbf/3+/3P+Dvdf/erDJ/3epwv9jla//HTxM6wAD - BEQAAAAFAAAAAAAAAAMAAAAQAAAASgAAAJ4AAADQopOK/56Mhf+gj4f/kX95/4NzbP+DdG3/fGxl/35u - Z/96a2P/dGZf/4R0bf+Nfnb/i3pz/5B/d/+TgXj/nY2E/5+Ohv+di4T/o5KK/6CPiP+fjof/oJGJ/2Vw - dv8/X3T/Y6XF/1WiyP9cosb/drzY/3e51P8JD3b/Ch/e/z1WXv9/wNr/gL3W/4C92v+GxN3/baK9/4G8 - 1P9/wuH/ETJIlwAAABQAAAACAAAAAQAAAAYAAAAXAAAAUAAAAKIAAADMjoJ5/6iYj/+qmpH/oI+H/5GB - ev+SgXr/lYN8/5GBev+RgXn/koF6/41+dv+Le3L/jXdt/4x6c/+XhX3/mYeA/5iHgP+ejYX/opKJ/5qK - gf+NfnX/a3By/zhhdv9orsv/YKvP/0uZv/9krc3/c7zZ/3u72P8sP1P/Cg8t/2qbrv9zrsf/e7TN/4W/ - 2P+FwNv/erbR/3Oiwv9pqsf/AwkOUgAAAAgAAAABAAAAAwAAAA0AAAAoAAAAZQAAAKwAAADQm4yE/7Sl - mv+klIv/oI+H/5iGgP+Le3T/lIN8/5ODfP+Ug33/lIJ7/5iHf/+ch3//kX54/3JjXf+Ugnz/loV+/5WE - ff+ai4L/jHx0/4NzbP+HhYP/R2p//1iny/+Iyeb/O3Wo/0+fwv9vvNv/eL/c/3m72P9LcH7/DAoA/4jG - 3v93uNH/fL3X/4zD2/9/udX/f8De/4y+1/87cJDxAQIDLgAAAAcAAAAAAAAABwAAABwAAABKAAAAiQAA - AL4AAADap5iP/66elf+hkIj/oI+I/5SDfP+Qf3j/koB5/5KAef+aioL/lYR8/56Ohf+ci4T/mIZ//4Ry - bP+RgXr/momC/458df97bmX/gGRU/4l2bP9Qh6b/XqrO/2Oozf9hp8v/Ya3O/2q72v94vdz/gcbi/3y9 - 2/9nnbD/U3OB/4zN5/+Bw9z/gL7a/32zyf92sMn/iMfg/3251f8pUWjIAQEBIQAAAAIAAAAAAAAADQAA - ADQAAAB1AAAAsAAAAM8pIyDsrJuS/56Nhf+ejIX/k4J7/4Z1bv+Pfnf/kYF6/4d1b/+cjIP/mouD/5qI - gf+UhH3/i3pz/4t5cv+XhX7/koB5/2teVf94fH//dK/I/2e42P9RkL7/YrDR/1qoyf9eqsv/WqbJ/3bB - 3v97w9//fcTh/32+3P+DxN//g8Db/4TJ4/9/v93/gbzX/3Kmv/9qqMD/i7/b/1N/p/8ZLjp9AgQEFgAA - AAAAAAAAAAAAGAAAAEwAAACWAAAAxickIemAcWj/loV+/4t5cv9/bmf/fW1m/3BjW/96aGL/bmBZ/31t - Zv+Ne3X/koF6/4x8df+FdW7/i3t0/5SCe/+Qf3j/gnFq/2trav9rtdT/bLTU/2KjyP9tt9f/X6XI/2Ow - zf9Zp8r/Z7DQ/3m/3v+Axd//fL3b/3/B3v+IzOb/h8nk/4rL5P+ExeP/hMXe/2qeuf92scb/oc7q/0yC - pv8OHihoAQEBDQAAAAAAAAAAAAAAJwAAAGMAAACqBwYG03FjXvqTgnv/bl9Y/3dnYP91Z2D/d2dg/3Bg - W/98bGX/gnNs/3trZP+BcGj/fGxk/3NlXv+EdG3/lIV9/6COh/+NfHX/ZF5a/0p5nP9ajar/WJO9/3K+ - 2v9/vdz/YKPG/2muzv9cqcn/ZbHR/3K72P9+wN3/hcXi/4fI5P+Jy+T/f8Dc/4fF3/+NzOX/iMbf/3m3 - 0f9nlrT/b5uz/yhVb+YFCw5KAAEBCQAAAAAAAAAAAAAAQAAAAIMAAAC7CAUF21BEPv5uYFj/hndw/4l6 - cv+KenT/momB/5KBev+RgXr/k4F6/5mJgv+Tgnr/iHdw/4p5c/+ThH3/m4yF/6CPiP+CdXH/TnKL/0tv - k/8hITb/M0Zh/2OjyP90u9j/abHO/2etzf9cqMn/Z7HR/3e92f95u9j/eb7b/5PV8P+Mzeb/fsPd/3/D - 3f+Szeb/h8Lf/3/A3v+Mu9T/RnGF/hEiMcwAAABAAAAABwAAAAAAAAAAAAAAXgAAAKQAAADMKCUj6ZmH - gP+ejIX/lIN8/5iHf/+YiH//mYeA/5OCe/+UhH3/hXRu/4x6dP+SgHn/mYeA/5qJgf+bioP/loV+/4h3 - cf9bXl//bLrc/3S/4P9LdJj/KiNI/z1ehf9mr9L/d77b/1uoy/9Vo8b/bLDN/3q/3P97vdr/hMrj/5LQ - 7P+Oz+v/iMzm/4TF3/+Gwdz/hMbh/4rO6P+Oxd7/PGyF/hocHNUCAwNeAAABEQAAAAEAAAAAAAAAdQAA - ALUAAADekIB7/pODev+ejob/mIeA/6iXj/+jkor/mIZ//5KAef+RgHn/jn12/5qIgf+cioP/no2F/6OR - iv+hkYj/iHdw/2JVTf9NfJX/YqrR/3O31/93weH/VoKj/2+y0f9ppM3/ebvb/1Kfxf9nsdD/YKPG/3G3 - 1v96vNn/gsTg/4rL5/+FyuT/gsTh/4jK5v+Fw93/d7/b/5zT7/97r8//Y6vF/zVZaNwRGx5dAAABEgAA - AAIAAAAAAAAAiQAAAL8jHxzoq5yR/56Nhf+hkIj/rJyT/6mZkP+qmpH/m4uD/5KBev+WhX3/kH55/5WD - fP+VhH3/oo+J/6iXj/+cjIP/c2Ja/3xwaP9WncX/abLS/3O62f9qtNT/d8Hd/3vD4P+MxuP/Y6bM/1up - yv9qtdT/ZK3M/3jA3f95wN//hMrl/4rM5/+Ky+X/hcbk/4rO6P98u9v/hMni/6zZ9f9km77/K1V37gkQ - FGoBAQEHAAAAAAAAAAAAAAAAAAAAngAAAMlZUEzxoI+H/6uckv+omI//oZCJ/6STi/+ikIr/nImD/5aE - ff+aiIH/j313/4x7dP+UhH3/m4mC/6SUi/+Ugnv/cVxO/3ymuv9KibL/dLnZ/3rB3v9fpsj/b73b/3G5 - 1v99x+P/ZLLQ/02Xwf9rtNj/fMXh/3O52P91vt3/eb7b/37A3f+HyOL/js/p/4/Q6v+Dx+T/erPX/5XL - 5/9Jl7v+GjJBrgEBAQoAAAAAAAAAAAAAAAAAAAAAAAAApw0NDdaIeHD9kX95/6qbkf+unpX/j395/459 - dv+pmJD/n46H/56Ohf+gkIj/kH95/4x8dv+JeXL/kIB4/5WFfP9yZmH/b36H/2aqzv9nr8//esLe/3m/ - 3v9rtdT/arbW/2iz0P9rvdr/UqbG/2q41P9gqs3/crjX/2Spzf+AyeT/f8Hd/3m+2/+Cx+H/k9Ht/4rH - 5P+Fx+T/mc7p/2amxP8nSF36AAAAawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqBUSEN2Ug3r9lYV8/6OT - iv+klIv/l4V+/4p6dP+omI//p5aO/56Ohf+WhX3/j394/3hoZP9uXFb/emtk/3NnXv9ydXn/bLXV/2Sp - zv92vdz/fcbh/3zE4f9xu9v/Z67Q/16kx/9QnMD/Xq/O/2Wy0f94wN3/c7jV/3q83P9encj/gsrj/33C - 3v+CxN//jMjk/4bI4/+Lz+n/lM/q/0d+nf8sLiv3BQYHTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArg8P - DdqSgX38qZiQ/6WVjP+ci4P/lYR9/419d/+KeHH/opGJ/5WFfP91YlX/hGpX/2ZkY/9HUlj/OFVn/1eQ - tf9fpcj/Y6jP/3W+3f96wt7/drrX/36/3f9+x+L/bbjV/2241f9hsc7/ZrTS/2u41P92udX/h83o/4fI - 5f97wd3/dr3a/3K72/+DxuL/hsfj/3jA3P+c0+//fLPT/2avyf5HfZLyHzI3SwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAux0aGuGWhH39rp6V/6qbkf+Yh3//koB6/5B/ef+Rf3j/fWtk/4huXf+jrK//d7jX/2Ow - 1v9kstb/Up3I/2Wlyv9krdD/Y6/S/2y52f9ut9b/er3Z/4PG4v99wt7/f8Xh/3jE4P91wd7/bbrW/3W9 - 2v99w97/hMnl/4jL5/+BxuD/i8/p/3m+3v+Izef/fbzc/4XK4/+s2fX/ZZ7C/y1dhOwTJzK9FxobTQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAxzo0Muqbi4T/saKY/7Cgl/+fjYb/kIB6/49+d/+Bcmn/fGxg/3u7 - 1P9sqc3/Z6vP/2Kny/9vuNf/abfW/3O72P95w9//cLjV/3C+2v9wuNX/gsTh/33A3/9wudb/db7b/2i1 - 0v9uutf/cLzY/4HG4v+P0er/icvk/4XH4v+Ozej/itDr/43S7P+O0Ov/hcnm/3q02P+TyeX+SZu//yNH - XKEHBwcnCgkITAAAAAEAAAAAAAAAAAAAAAAAAAABCwsNtZKEfPicjIX/sqKY/66elP+hj4n/opGJ/5GC - ef+OfnP/icbj/1qdw/9ZmL//f8Xh/3fA3f91wd3/eb7d/4PL5f+EyuP/fsbg/3e+3f93vNv/gMHe/3u9 - 3P9wt9T/dbnW/2m21f9rtNP/cbnW/3693f9dh7T/Ypa8/4bH4f9zp8f/gsLf/47M6P+R0On/jtDs/5jP - 6v9mp8X/GTJFrgAAACYCAgISAgMDEwYGBxAAAAAAAAAAAAAAAAAAAAABExMTgJCGffWdj4f/t6ee/6iX - jv+tnJT/pZWM/5KBc/+WtML/ZqbL/2Gkyv9xvt3/fMXh/3rB3v93vdz/g8nl/37E4P90vdn/ecDd/3nA - 3f97vdz/d7jV/3a71/96wd7/fr/d/3G41f9zuNX/hcfk/1yMtP9Fa5n/LUd8/2yhxP9RcJj/cqPG/4nC - 3/+MyuP/hc3n/5PO6v9Hf5//AwUFYgAAAB8AAAAHBAMDCAsLDBoEBAQHAAAAAAAAAAAAAAAAAAAADwcH - BzMPDg1MPTk2ro6EevKbjYT/o5SK/6GKev95vNn/aqrO/3O61/99xOP/esLe/37E3/96xd//e8Pf/3i9 - 2v9qstL/a7bT/3W+2v9wtNH/dLnV/2+20/9yvdf/eLnW/36+2/+Mzur/i9Pt/16cxP85XpP/Q1mD/2CV - vf9roMP/jMfi/4nF4f+DyOL/hMnm/2yfwv5lvNn/TImj2wAAABMAAAADAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAABgAAABYAAAA4FBIQlIKCgux4qsn3dKvM/H/A3f+Ky+j/i8nl/4HG - 4v94vdz/gsLf/4TI4v90u9j/dbva/3W51v9xuNf/bbXS/3O82f99vtz/ervZ/4jK5f+T1fL/iMvn/3m8 - 3v98vt3/TnWg/1qQvP96ttf/h8jk/1aErf9qs9P/n9Tv/2ufv/8lUoL+ECQ0jwAAAAwAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAACgAAAB4OEBFRHiktejZN - WKdagZTVaY2i4GiRpPF+ssv/kdPv/5DV8f+Fy+f/hMPf/4bI5P9/xuP/ebzb/3m92v94vNn/fMHd/4/Q - 6v+W1PD/l9jy/4fF4f9HcqH/aqHI/3Ot0f9Mf6v/h8Xi/3y93f8lTIL/iL/f/3Cx1P8mTG3QAAAAHwAA - AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAAwAAAAcDBAQYBQYHJQYICTsNEhVlJTM8w1Buf/9Zeo7/i87q/4PE4P+SzOn/icbj/3e4 - 1f97wt//isbi/5PR7f+b2PX/ldPp/4S72v9hmcL/ZqHI/1mMuv+Gw+D/aaPK/1CLuf9hibj/ic3n/kh4 - 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 - Sf+Wh3//nIuE/25iXf8iJmH/CSPe/wYQ8v8ff6H/M/P//y3f5P8MMm//AwfR/xlyn/8chcL/Agbf/wYS - l/8DBBXcAgICYgAAAAAAAAAEAAAAHgAAAHgAAADJcmZg96STi/+ikYn/iXpz/5GBeP+Yh3//pJOL/5KC - ef+Xh37/dGNb/5ODfP+IfHb/KSYn/yoqRP8mIyb/ISEp/xURJf8aeHn/OP/3/yKhlf8HGZD/Nv///xtI - W/8oOD//HiMo/xEVHf8DBQWvAAAAAAAAAAgAAAA6AAAAoRcVEt2XiH/+pZSM/49+eP+Sg3v/k4R7/6CN - g/+ejIP/mIeA/5qKgv+XhX7/nIqD/56Mhf+Whn7/iXlw/4h4cP+Hd2//jX95/1BRT/8MJpn/Cieh/yOo - s/8+laX/fLLL/4/K5f9deY//KTZD/AcMEE8AAAAAAAAACwAAAFAAAAC4h3p0/K2dk/+ejYX/int0/418 - df+aioL/mYiA/5CAef+ZiIH/m4qD/52NhP+Rgnn/loZ+/6GQiP+djYT/koF5/3t0cf9bdoL/Pml+/xYr - VP8inoT/Pn2L/4vM5v+Dwtz/iL7X/1d4iv8eLDbzAwQFMgAAAAAAAAAKAAAATAAAALqml47/oZGI/4Bx - a/99bWb/fW1m/4R0bf+AcWr/iXly/5F/eP+VhHz/loZ+/5OCev+ejoX/oZGJ/6SVjP9tdXr/WYeg/1Wa - vP9vt9T/OFyE/woh2v9Teo//gcLb/4LA2/90qcP/d6/K/xc2S8EAAQEYAAAAAQAAAA8AAABQAAAAt46C - ef+pmZD/oI+H/5KBev+Vg3z/kYF6/5KBev+MfXT/jXdt/5KAeP+Zh4D/m4qD/6KSif+UhHv/a3By/1CI - of9gq8//WKPG/3O82f9UfZb/Cg8t/2+lu/97tM3/hcDa/3q20f9upsX/AwkOUgAAAAUAAAAFAAAAJwAA - AHcAAADFoZKK/6qakf+gj4j/koF6/5OCe/+VhH7/lYN8/5yKgv+Vgnz/h3dw/5iHgP+Pf3f/hnBk/3l+ - gf9Tiqf/abDT/06Ru/9otdX/fcPf/2qiuf8wP0H/hMTd/36+2f+AuNH/hMTf/1uPqu4BAgIoAAAAAwAA - AA0AAABVAAAAsBUREd6sm5L/no2F/5OCe/+LenP/kYF6/5KBef+ai4P/l4Z//4t6c/+Rf3j/koB5/3Jt - av90r8j/XKTL/2Kw0f9cqcr/WqbJ/3nC3/99xOH/gMHe/4PA2/+CxOD/gbzX/26nwP+Lv9v/NlZxvgIE - BBYAAAAAAAAAIAAAAHwDAgLNal9Z+YJya/9+bmf/empj/3ZmYP94amP/gnFq/4d3b/+Dc2z/kIB5/5WD - fP9zaGL/X4qh/2Kkyf9xttb/YKTH/2GszP9msdH/e8Dd/4HB3/+GyeP/g8Xg/4nJ4/+Gxt//cKjC/4i1 - z/8iQFOmAQEBCwAAAAAAAABAAAAAnwgFBdtfUkv/hndw/4p6c/+aiYH/koF6/5OBev+Whn7/iHdw/49/ - eP+bjIX/kYJ9/05yi/82SGX/M0Zh/2yv0P9psc7/YqvL/2ex0f94vNn/eb7b/5DR6/9+w93/icji/4fC - 3/+Gvtn/RnGF/gkRGYYAAAAHAAAAAAAAAGoAAADBXVJO9JuKgv+WhX7/n4+G/5mHgP+Tgnv/inly/5WD - ff+cioP/n46G/49+d/9lam3/Z7LX/2urzP9AU3b/X5m+/3i92/9bp8r/ZqrK/3m82v+Dx+L/jM7p/4XI - 5P+GxeD/fsPe/4zG4f9QjKb/GCUqnAAAARIAAAABAAAAiREQD9SrnJH/oI+H/6yck/+qmpH/m4uD/5SD - fP+Qfnn/lYR9/6KPif+ikon/c2Ja/2mHl/9pstL/b7fX/3fB3f+ExeL/Y6bM/2Ovz/9krcz/ecDe/4TK - 5f+KzOb/hcbk/4PF4v+EyeL/iLra/ytVd+4FCQs5AAAAAAAAAAAAAACjPDYz5JmHgP+rnJL/mIiB/6CP - h/+ejIX/nIuD/5B+eP+Ofnf/loV9/5CBef9wbWv/ZaPD/3e+3P9wt9b/bbrZ/3G82f9brMv/YazP/3e/ - 3P9zu9r/fMDc/4HE3/+R0Ov/icrm/4rB4P9blLH+DRohjQEBAQMAAAAAAAAAAAAAAKhVSkbtlYV8/6SU - i/+XhX7/mYmC/6eWjv+aioH/j394/3NiXf96a2T/c25s/2y11f9ts9X/fcbh/3fA3v9nrtD/V6DE/16v - zv9vudf/c7jV/2yt0v+CyuP/gMPf/4zI5P+JzOb/lM/q/zlWY/sFBgdPAAAAAAAAAAAAAAAAAAAAtVZM - SO2sm5P/oZGI/5SCfP+PfXf/kH53/46BeP9+kZf/Xoaa/0V5mP9gosb/Y6zR/3O82/94vNj/f8Tg/3a/ - 2/9vvNn/arfU/3W92f+Gy+f/g8fj/4HG4v9+xOH/gsLg/5LO6f9xqcv/PG2F5xsmKUwAAAAAAAAAAAAA - AAAAAADHa19a9bGimP+ol4//kIB6/4h4cP98bGD/dLLR/2erz/9psNH/abfW/3a/3P9wuNX/cLvY/4LE - 4f93vdv/db7b/2u41f9wvNj/iMzm/4nL5P+KyuX/itDr/47R7P+Fyeb/h7/f/0mbv/8VJzJkCgkITAAA - AAEAAAAAAAAAARAQEJuXioL7taWb/6qZkP+kk4v/ko6J/3i21/9ipsv/fsXh/3jA3f9+xOH/f8bh/3zD - 3/95vt3/fL3a/3e82v96vNr/brfV/3vA3f9gj7j/SG+c/26gwf96s9P/jsrl/4rP6v92sc//DhwliAEB - ARgDAwMOBgYGDQAAAAAAAAABAAAADwsLCkA9OTaulImA+aOUiv+No6r/aqrO/3i/3f96wt7/fMXf/3vD - 3/9xuNb/a7bT/3O51v90udX/cbrV/3i51v+FxuP/i9Pt/0x9rP9DWYP/ZpvA/4zH4v+Gx+L/hMnm/2mu - zv9MiaPbAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAVCgkIT0NPWJVJan27Zpas33mq - xPB4ssz8isvn/4TJ5f99v93/e8De/3O51/95vdv/e77b/5HR7f+Q0u3/ca3Q/1yLtP9lncT/h8fj/1mR - uP+Uyuf/Snuh9AgSGlcAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA - AAMCAgIQBQYHJQoND1AlMzzDVXSH/4vO6v+LyOX/icbj/3m92v+KxuL/l9Xx/5XT6f9zqs7/ZqHI/3Co - zf9po8r/WYq5/4nN5/4rSGe7AAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAAuFB0ieE9zhsNonLbpXo+k32SNo+CQxeD9ldHu/4K9 - 3P9fkbz/Un6x/4jA4P9vocn/S4Wv/ypEU4wAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQMEBRQBAQEVAAAAJRwl - KoJSeY7ubKLI/3Cjwv9WfKz/isPg/16Qvf86cZ//DRQlZAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAABAAAABgAAAA4DAwQ+ERcaa0BccbdWfpDWZY+092GVtvsJDxE3AAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABYLEBJGHC02gQAAAAYAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADwD4MD8AeAA+AAAAfgAAAH4AAAD+AAAAPAAAAAgAAAAIAAAACAAAAAgAAAAIAA - AACAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAwAAAAMAAAAHAAAABwAAAAIAAAACAAAAD4AA - AA/4AAAf/4AAH//wAB///gAf///wPw== - - - \ No newline at end of file diff --git a/OpenRA.Editor/ITool.cs b/OpenRA.Editor/ITool.cs deleted file mode 100644 index 9604e1077f..0000000000 --- a/OpenRA.Editor/ITool.cs +++ /dev/null @@ -1,20 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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 SGraphics = System.Drawing.Graphics; - -namespace OpenRA.Editor -{ - interface ITool - { - void Apply(Surface surface); - void Preview(Surface surface, SGraphics g); - } -} diff --git a/OpenRA.Editor/MapSelect.Designer.cs b/OpenRA.Editor/MapSelect.Designer.cs deleted file mode 100644 index d94588b6ec..0000000000 --- a/OpenRA.Editor/MapSelect.Designer.cs +++ /dev/null @@ -1,319 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Editor -{ - partial class MapSelect - { - // TODO: - private System.ComponentModel.IContainer components = null; - - // TODO: - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - - base.Dispose(disposing); - } - - // TODO: - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MapSelect)); - this.MapList = new System.Windows.Forms.ListView(); - this.ColumnMapName = new System.Windows.Forms.ColumnHeader("(none)"); - this.MapIconsList = new System.Windows.Forms.ImageList(this.components); - this.ButtonCancel = new System.Windows.Forms.Button(); - this.ButtonOkay = new System.Windows.Forms.Button(); - this.NewLabel = new System.Windows.Forms.Label(); - this.NewText = new System.Windows.Forms.TextBox(); - this.MiniMapBox = new System.Windows.Forms.PictureBox(); - this.BottomPanel = new System.Windows.Forms.Panel(); - this.PathOutText = new System.Windows.Forms.TextBox(); - this.PathOutLabel = new System.Windows.Forms.Label(); - this.PathLabel = new System.Windows.Forms.Label(); - this.SplitContainer1 = new System.Windows.Forms.SplitContainer(); - this.MapListLabel = new System.Windows.Forms.Label(); - this.DescTxt = new System.Windows.Forms.TextBox(); - this.DescLabel = new System.Windows.Forms.Label(); - this.TheaterText = new System.Windows.Forms.TextBox(); - this.TheaterLabel = new System.Windows.Forms.Label(); - this.AuthorText = new System.Windows.Forms.TextBox(); - this.AuthorLabel = new System.Windows.Forms.Label(); - this.TitleText = new System.Windows.Forms.TextBox(); - this.MapNameLabel = new System.Windows.Forms.Label(); - this.MiniMapLabel = new System.Windows.Forms.Label(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - ((System.ComponentModel.ISupportInitialize)this.MiniMapBox).BeginInit(); - this.BottomPanel.SuspendLayout(); - this.SplitContainer1.Panel1.SuspendLayout(); - this.SplitContainer1.Panel2.SuspendLayout(); - this.SplitContainer1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)this.pictureBox1).BeginInit(); - this.SuspendLayout(); - - this.MapList.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.MapList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.ColumnMapName }); - this.MapList.FullRowSelect = true; - this.MapList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; - this.MapList.LargeImageList = this.MapIconsList; - this.MapList.Location = new System.Drawing.Point(15, 25); - this.MapList.MultiSelect = false; - this.MapList.Name = "MapList"; - this.MapList.Size = new System.Drawing.Size(273, 294); - this.MapList.SmallImageList = this.MapIconsList; - this.MapList.StateImageList = this.MapIconsList; - this.MapList.TabIndex = 0; - this.MapList.UseCompatibleStateImageBehavior = false; - this.MapList.View = System.Windows.Forms.View.Details; - this.MapList.SelectedIndexChanged += new System.EventHandler(this.MapList_SelectedIndexChanged); - - this.ColumnMapName.Text = "Map name"; - this.ColumnMapName.Width = 240; - - this.MapIconsList.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; - this.MapIconsList.ImageSize = new System.Drawing.Size(24, 24); - this.MapIconsList.TransparentColor = System.Drawing.Color.Transparent; - - this.ButtonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.ButtonCancel.Location = new System.Drawing.Point(407, 35); - this.ButtonCancel.Name = "btnCancel"; - this.ButtonCancel.Size = new System.Drawing.Size(75, 23); - this.ButtonCancel.TabIndex = 3; - this.ButtonCancel.Text = "Cancel"; - this.ButtonCancel.UseVisualStyleBackColor = true; - - this.ButtonOkay.DialogResult = System.Windows.Forms.DialogResult.OK; - this.ButtonOkay.Location = new System.Drawing.Point(326, 35); - this.ButtonOkay.Name = "btnOk"; - this.ButtonOkay.Size = new System.Drawing.Size(75, 23); - this.ButtonOkay.TabIndex = 2; - this.ButtonOkay.Text = "Open"; - this.ButtonOkay.UseVisualStyleBackColor = true; - - this.NewLabel.AutoSize = true; - this.NewLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (byte)204); - this.NewLabel.Location = new System.Drawing.Point(12, 40); - this.NewLabel.Name = "lblNew"; - this.NewLabel.Size = new System.Drawing.Size(69, 13); - this.NewLabel.TabIndex = 3; - this.NewLabel.Text = "Map name:"; - - this.NewText.BackColor = System.Drawing.SystemColors.Window; - this.NewText.Location = new System.Drawing.Point(88, 37); - this.NewText.Name = "txtNew"; - this.NewText.ReadOnly = true; - this.NewText.Size = new System.Drawing.Size(232, 20); - this.NewText.TabIndex = 1; - - this.MiniMapBox.BackColor = System.Drawing.Color.Black; - this.MiniMapBox.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.MiniMapBox.Location = new System.Drawing.Point(32, 25); - this.MiniMapBox.Name = "pbMinimap"; - this.MiniMapBox.Size = new System.Drawing.Size(124, 124); - this.MiniMapBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.MiniMapBox.TabIndex = 5; - this.MiniMapBox.TabStop = false; - - this.BottomPanel.Controls.Add(this.pictureBox1); - this.BottomPanel.Controls.Add(this.PathOutText); - this.BottomPanel.Controls.Add(this.PathOutLabel); - this.BottomPanel.Controls.Add(this.PathLabel); - this.BottomPanel.Controls.Add(this.ButtonCancel); - this.BottomPanel.Controls.Add(this.ButtonOkay); - this.BottomPanel.Controls.Add(this.NewText); - this.BottomPanel.Controls.Add(this.NewLabel); - this.BottomPanel.Dock = System.Windows.Forms.DockStyle.Bottom; - this.BottomPanel.Location = new System.Drawing.Point(0, 332); - this.BottomPanel.MaximumSize = new System.Drawing.Size(0, 70); - this.BottomPanel.Name = "pnlBottom"; - this.BottomPanel.Size = new System.Drawing.Size(494, 70); - this.BottomPanel.TabIndex = 6; - - this.PathOutText.BackColor = System.Drawing.SystemColors.Window; - this.PathOutText.Location = new System.Drawing.Point(55, 10); - this.PathOutText.Name = "txtPathOut"; - this.PathOutText.ReadOnly = true; - this.PathOutText.Size = new System.Drawing.Size(265, 20); - this.PathOutText.TabIndex = 0; - this.PathOutText.TextChanged += new System.EventHandler(this.PathOutTextChanged); - - this.PathOutLabel.AutoSize = true; - this.PathOutLabel.Location = new System.Drawing.Point(55, 13); - this.PathOutLabel.Name = "lblPathOut"; - this.PathOutLabel.Size = new System.Drawing.Size(0, 13); - this.PathOutLabel.TabIndex = 6; - - this.PathLabel.AutoSize = true; - this.PathLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (byte)204); - this.PathLabel.Location = new System.Drawing.Point(12, 13); - this.PathLabel.Name = "lblPath"; - this.PathLabel.Size = new System.Drawing.Size(37, 13); - this.PathLabel.TabIndex = 5; - this.PathLabel.Text = "Path:"; - - this.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.SplitContainer1.Location = new System.Drawing.Point(0, 0); - this.SplitContainer1.Name = "splitContainer1"; - - this.SplitContainer1.Panel1.Controls.Add(this.MapListLabel); - this.SplitContainer1.Panel1.Controls.Add(this.MapList); - - this.SplitContainer1.Panel2.Controls.Add(this.DescTxt); - this.SplitContainer1.Panel2.Controls.Add(this.DescLabel); - this.SplitContainer1.Panel2.Controls.Add(this.TheaterText); - this.SplitContainer1.Panel2.Controls.Add(this.TheaterLabel); - this.SplitContainer1.Panel2.Controls.Add(this.AuthorText); - this.SplitContainer1.Panel2.Controls.Add(this.AuthorLabel); - this.SplitContainer1.Panel2.Controls.Add(this.TitleText); - this.SplitContainer1.Panel2.Controls.Add(this.MapNameLabel); - this.SplitContainer1.Panel2.Controls.Add(this.MiniMapLabel); - this.SplitContainer1.Panel2.Controls.Add(this.MiniMapBox); - this.SplitContainer1.Size = new System.Drawing.Size(494, 332); - this.SplitContainer1.SplitterDistance = 300; - this.SplitContainer1.TabIndex = 7; - - this.MapListLabel.AutoSize = true; - this.MapListLabel.Location = new System.Drawing.Point(12, 9); - this.MapListLabel.Name = "lblMapList"; - this.MapListLabel.Size = new System.Drawing.Size(81, 13); - this.MapListLabel.TabIndex = 1; - this.MapListLabel.Text = "Available maps:"; - - this.DescTxt.BackColor = System.Drawing.SystemColors.ButtonFace; - this.DescTxt.Location = new System.Drawing.Point(16, 289); - this.DescTxt.Name = "txtDesc"; - this.DescTxt.ReadOnly = true; - this.DescTxt.Size = new System.Drawing.Size(162, 20); - this.DescTxt.TabIndex = 14; - - this.DescLabel.AutoSize = true; - this.DescLabel.Location = new System.Drawing.Point(13, 273); - this.DescLabel.Name = "lblDesc"; - this.DescLabel.Size = new System.Drawing.Size(63, 13); - this.DescLabel.TabIndex = 13; - this.DescLabel.Text = "Description:"; - - this.TheaterText.BackColor = System.Drawing.SystemColors.ButtonFace; - this.TheaterText.Location = new System.Drawing.Point(16, 252); - this.TheaterText.Name = "txtTheater"; - this.TheaterText.ReadOnly = true; - this.TheaterText.Size = new System.Drawing.Size(162, 20); - this.TheaterText.TabIndex = 12; - - this.TheaterLabel.AutoSize = true; - this.TheaterLabel.Location = new System.Drawing.Point(13, 236); - this.TheaterLabel.Name = "lblTheater"; - this.TheaterLabel.Size = new System.Drawing.Size(47, 13); - this.TheaterLabel.TabIndex = 11; - this.TheaterLabel.Text = "Tileset:"; - - this.AuthorText.BackColor = System.Drawing.SystemColors.ButtonFace; - this.AuthorText.Location = new System.Drawing.Point(16, 214); - this.AuthorText.Name = "txtAuthor"; - this.AuthorText.ReadOnly = true; - this.AuthorText.Size = new System.Drawing.Size(162, 20); - this.AuthorText.TabIndex = 10; - - this.AuthorLabel.AutoSize = true; - this.AuthorLabel.Location = new System.Drawing.Point(13, 198); - this.AuthorLabel.Name = "lblAuthor"; - this.AuthorLabel.Size = new System.Drawing.Size(41, 13); - this.AuthorLabel.TabIndex = 9; - this.AuthorLabel.Text = "Author:"; - - this.TitleText.BackColor = System.Drawing.SystemColors.ButtonFace; - this.TitleText.Location = new System.Drawing.Point(16, 177); - this.TitleText.Name = "txtTitle"; - this.TitleText.ReadOnly = true; - this.TitleText.Size = new System.Drawing.Size(162, 20); - this.TitleText.TabIndex = 8; - - this.MapNameLabel.AutoSize = true; - this.MapNameLabel.Location = new System.Drawing.Point(13, 161); - this.MapNameLabel.Name = "lblMapName"; - this.MapNameLabel.Size = new System.Drawing.Size(30, 13); - this.MapNameLabel.TabIndex = 7; - this.MapNameLabel.Text = "Title:"; - - this.MiniMapLabel.AutoSize = true; - this.MiniMapLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, (byte)204); - this.MiniMapLabel.Location = new System.Drawing.Point(29, 9); - this.MiniMapLabel.Name = "lblMinimap"; - this.MiniMapLabel.Size = new System.Drawing.Size(71, 13); - this.MiniMapLabel.TabIndex = 6; - this.MiniMapLabel.Text = "Map preview:"; - - this.pictureBox1.Image = (System.Drawing.Image)resources.GetObject("pictureBox1.Image"); - this.pictureBox1.Location = new System.Drawing.Point(336, -9); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(54, 35); - this.pictureBox1.TabIndex = 7; - this.pictureBox1.TabStop = false; - this.pictureBox1.Visible = false; - - this.AcceptButton = this.ButtonOkay; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.ButtonCancel; - this.ClientSize = new System.Drawing.Size(494, 402); - this.Controls.Add(this.SplitContainer1); - this.Controls.Add(this.BottomPanel); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "MapSelect"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Select map"; - this.Load += new System.EventHandler(this.MapSelect_Load); - ((System.ComponentModel.ISupportInitialize)this.MiniMapBox).EndInit(); - this.BottomPanel.ResumeLayout(false); - this.BottomPanel.PerformLayout(); - this.SplitContainer1.Panel1.ResumeLayout(false); - this.SplitContainer1.Panel1.PerformLayout(); - this.SplitContainer1.Panel2.ResumeLayout(false); - this.SplitContainer1.Panel2.PerformLayout(); - this.SplitContainer1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)this.pictureBox1).EndInit(); - this.ResumeLayout(false); - } - - public System.Windows.Forms.ListView MapList; - public System.Windows.Forms.Button ButtonCancel; - public System.Windows.Forms.Button ButtonOkay; - public System.Windows.Forms.Label NewLabel; - public System.Windows.Forms.TextBox NewText; - public System.Windows.Forms.ColumnHeader ColumnMapName; - public System.Windows.Forms.ImageList MapIconsList; - public System.Windows.Forms.PictureBox MiniMapBox; - public System.Windows.Forms.Panel BottomPanel; - public System.Windows.Forms.SplitContainer SplitContainer1; - public System.Windows.Forms.Label MiniMapLabel; - public System.Windows.Forms.TextBox TheaterText; - public System.Windows.Forms.Label TheaterLabel; - public System.Windows.Forms.TextBox AuthorText; - public System.Windows.Forms.Label AuthorLabel; - public System.Windows.Forms.TextBox TitleText; - public System.Windows.Forms.Label MapNameLabel; - public System.Windows.Forms.TextBox DescTxt; - public System.Windows.Forms.Label DescLabel; - public System.Windows.Forms.Label MapListLabel; - public System.Windows.Forms.Label PathOutLabel; - public System.Windows.Forms.Label PathLabel; - public System.Windows.Forms.TextBox PathOutText; - private System.Windows.Forms.PictureBox pictureBox1; - } -} \ No newline at end of file diff --git a/OpenRA.Editor/MapSelect.cs b/OpenRA.Editor/MapSelect.cs deleted file mode 100644 index 2f52d1deb3..0000000000 --- a/OpenRA.Editor/MapSelect.cs +++ /dev/null @@ -1,92 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.IO; -using System.Linq; -using System.Windows.Forms; -using OpenRA.Graphics; - -namespace OpenRA.Editor -{ - public partial class MapSelect : Form - { - public string MapFolderPath; - - public bool DirectoryIsEmpty(string path) - { - return !Directory.GetFileSystemEntries(path).Any(); - } - - public MapSelect(string currentMod) - { - MapFolderPath = Platform.ResolvePath("^", "maps", currentMod); - - if (!Directory.Exists(MapFolderPath)) - Directory.CreateDirectory(MapFolderPath); - - InitializeComponent(); - MapIconsList.Images.Add(pictureBox1.Image); - } - - void MapSelect_Load(object sender, EventArgs e) - { - MapList.Items.Clear(); - PathOutText.Text = MapFolderPath; - - if (DirectoryIsEmpty(MapFolderPath)) - return; - - foreach (var map in MapCache.FindMapsIn(MapFolderPath)) - { - var map1 = new ListViewItem(); - map1.Tag = map; - map1.Text = Path.GetFileNameWithoutExtension(map); - map1.ImageIndex = 0; - MapList.Items.Add(map1); - } - - // hack - if (NewText.Text != "unnamed") - MapList.Items[0].Selected = true; - } - - void MapList_SelectedIndexChanged(object sender, EventArgs e) - { - if (MapList.SelectedItems.Count == 1) - { - NewText.Text = MapList.SelectedItems[0].Text; - NewText.Tag = MapList.SelectedItems[0].Tag; - - var map = new Map((string)NewText.Tag); - TitleText.Text = map.Title; - AuthorText.Text = map.Author; - TheaterText.Text = map.Tileset; - DescTxt.Text = map.Description; - MiniMapBox.Image = null; - - try - { - var tileset = Program.Rules.TileSets[map.Tileset]; - MiniMapBox.Image = Minimap.RenderMapPreview(tileset, map, true); - } - catch (Exception ed) - { - Console.WriteLine("No map preview image found: {0}", ed); - } - } - } - - void PathOutTextChanged(object sender, EventArgs e) - { - MapFolderPath = PathOutText.Text; - } - } -} diff --git a/OpenRA.Editor/MapSelect.resx b/OpenRA.Editor/MapSelect.resx deleted file mode 100644 index 8086131093..0000000000 --- a/OpenRA.Editor/MapSelect.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - - - 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 - ga8AAAAASUVORK5CYII= - - - \ No newline at end of file diff --git a/OpenRA.Editor/NewMapDialog.Designer.cs b/OpenRA.Editor/NewMapDialog.Designer.cs deleted file mode 100644 index a8a3bfd2d0..0000000000 --- a/OpenRA.Editor/NewMapDialog.Designer.cs +++ /dev/null @@ -1,295 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Editor -{ - partial class NewMapDialog - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - components.Dispose(); - - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.button2 = new System.Windows.Forms.Button(); - this.button1 = new System.Windows.Forms.Button(); - this.label3 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.CordonBottom = new System.Windows.Forms.NumericUpDown(); - this.CordonTop = new System.Windows.Forms.NumericUpDown(); - this.CordonRight = new System.Windows.Forms.NumericUpDown(); - this.CordonLeft = new System.Windows.Forms.NumericUpDown(); - this.MapHeight = new System.Windows.Forms.NumericUpDown(); - this.MapWidth = new System.Windows.Forms.NumericUpDown(); - this.label4 = new System.Windows.Forms.Label(); - this.TheaterBox = new System.Windows.Forms.ComboBox(); - ((System.ComponentModel.ISupportInitialize)(this.CordonBottom)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonTop)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonRight)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonLeft)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.MapHeight)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.MapWidth)).BeginInit(); - this.SuspendLayout(); - // - // button2 - // - this.button2.DialogResult = System.Windows.Forms.DialogResult.OK; - this.button2.Location = new System.Drawing.Point(229, 160); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(75, 23); - this.button2.TabIndex = 7; - this.button2.Text = "OK"; - this.button2.UseVisualStyleBackColor = true; - // - // button1 - // - this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.button1.Location = new System.Drawing.Point(310, 160); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(75, 23); - this.button1.TabIndex = 8; - this.button1.Text = "Cancel"; - this.button1.UseVisualStyleBackColor = true; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(31, 77); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(107, 13); - this.label3.TabIndex = 9; - this.label3.Text = "Cordon Right/Bottom"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(31, 51); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(86, 13); - this.label2.TabIndex = 11; - this.label2.Text = "Cordon Left/Top"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(31, 25); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(27, 13); - this.label1.TabIndex = 10; - this.label1.Text = "Size"; - // - // cordonBottom - // - this.CordonBottom.Location = new System.Drawing.Point(280, 75); - this.CordonBottom.Maximum = new decimal(new int[] { - 2048, - 0, - 0, - 0}); - this.CordonBottom.Name = "cordonBottom"; - this.CordonBottom.Size = new System.Drawing.Size(105, 20); - this.CordonBottom.TabIndex = 5; - this.CordonBottom.Value = new decimal(new int[] { - 112, - 0, - 0, - 0}); - this.CordonBottom.Enter += new System.EventHandler(this.SelectText); - // - // cordonTop - // - this.CordonTop.Location = new System.Drawing.Point(280, 49); - this.CordonTop.Maximum = new decimal(new int[] { - 2048, - 0, - 0, - 0}); - this.CordonTop.Name = "cordonTop"; - this.CordonTop.Size = new System.Drawing.Size(105, 20); - this.CordonTop.TabIndex = 3; - this.CordonTop.Value = new decimal(new int[] { - 16, - 0, - 0, - 0}); - this.CordonTop.Enter += new System.EventHandler(this.SelectText); - // - // cordonRight - // - this.CordonRight.Location = new System.Drawing.Point(169, 75); - this.CordonRight.Maximum = new decimal(new int[] { - 2048, - 0, - 0, - 0}); - this.CordonRight.Name = "cordonRight"; - this.CordonRight.Size = new System.Drawing.Size(105, 20); - this.CordonRight.TabIndex = 4; - this.CordonRight.Value = new decimal(new int[] { - 112, - 0, - 0, - 0}); - this.CordonRight.Enter += new System.EventHandler(this.SelectText); - // - // cordonLeft - // - this.CordonLeft.Location = new System.Drawing.Point(169, 49); - this.CordonLeft.Maximum = new decimal(new int[] { - 2048, - 0, - 0, - 0}); - this.CordonLeft.Name = "cordonLeft"; - this.CordonLeft.Size = new System.Drawing.Size(105, 20); - this.CordonLeft.TabIndex = 2; - this.CordonLeft.Value = new decimal(new int[] { - 16, - 0, - 0, - 0}); - this.CordonLeft.Enter += new System.EventHandler(this.SelectText); - // - // height - // - this.MapHeight.Increment = new decimal(new int[] { - 8, - 0, - 0, - 0}); - this.MapHeight.Location = new System.Drawing.Point(280, 23); - this.MapHeight.Maximum = new decimal(new int[] { - 2048, - 0, - 0, - 0}); - this.MapHeight.Name = "height"; - this.MapHeight.Size = new System.Drawing.Size(105, 20); - this.MapHeight.TabIndex = 1; - this.MapHeight.Value = new decimal(new int[] { - 128, - 0, - 0, - 0}); - this.MapHeight.Enter += new System.EventHandler(this.SelectText); - // - // width - // - this.MapWidth.Increment = new decimal(new int[] { - 8, - 0, - 0, - 0}); - this.MapWidth.Location = new System.Drawing.Point(169, 23); - this.MapWidth.Maximum = new decimal(new int[] { - 2048, - 0, - 0, - 0}); - this.MapWidth.Name = "width"; - this.MapWidth.Size = new System.Drawing.Size(105, 20); - this.MapWidth.TabIndex = 0; - this.MapWidth.Value = new decimal(new int[] { - 128, - 0, - 0, - 0}); - this.MapWidth.Enter += new System.EventHandler(this.SelectText); - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(31, 124); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(44, 13); - this.label4.TabIndex = 14; - this.label4.Text = "Tileset"; - // - // theater - // - this.TheaterBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.TheaterBox.FormattingEnabled = true; - this.TheaterBox.Location = new System.Drawing.Point(169, 121); - this.TheaterBox.Name = "theater"; - this.TheaterBox.Size = new System.Drawing.Size(216, 21); - this.TheaterBox.TabIndex = 6; - // - // NewMapDialog - // - this.AcceptButton = this.button2; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.button1; - this.ClientSize = new System.Drawing.Size(418, 210); - this.Controls.Add(this.TheaterBox); - this.Controls.Add(this.label4); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); - this.Controls.Add(this.label3); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.CordonBottom); - this.Controls.Add(this.CordonTop); - this.Controls.Add(this.CordonRight); - this.Controls.Add(this.CordonLeft); - this.Controls.Add(this.MapHeight); - this.Controls.Add(this.MapWidth); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Name = "NewMapDialog"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "New Map"; - ((System.ComponentModel.ISupportInitialize)(this.CordonBottom)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonTop)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonRight)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonLeft)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.MapHeight)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.MapWidth)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button button2; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label1; - public System.Windows.Forms.NumericUpDown CordonBottom; - public System.Windows.Forms.NumericUpDown CordonTop; - public System.Windows.Forms.NumericUpDown CordonRight; - public System.Windows.Forms.NumericUpDown CordonLeft; - public System.Windows.Forms.NumericUpDown MapHeight; - public System.Windows.Forms.NumericUpDown MapWidth; - private System.Windows.Forms.Label label4; - public System.Windows.Forms.ComboBox TheaterBox; - } -} \ No newline at end of file diff --git a/OpenRA.Editor/NewMapDialog.cs b/OpenRA.Editor/NewMapDialog.cs deleted file mode 100755 index 4b659ae8e4..0000000000 --- a/OpenRA.Editor/NewMapDialog.cs +++ /dev/null @@ -1,28 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Windows.Forms; - -namespace OpenRA.Editor -{ - public partial class NewMapDialog : Form - { - public NewMapDialog() - { - InitializeComponent(); - } - - void SelectText(object sender, System.EventArgs e) - { - var ud = sender as NumericUpDown; - ud.Select(0, ud.ToString().Length); - } - } -} diff --git a/OpenRA.Editor/NewMapDialog.resx b/OpenRA.Editor/NewMapDialog.resx deleted file mode 100644 index 19dc0dd8b3..0000000000 --- a/OpenRA.Editor/NewMapDialog.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenRA.Editor/OpenRA.Editor.Icon.ico b/OpenRA.Editor/OpenRA.Editor.Icon.ico deleted file mode 100644 index 538ac8f832b136d56132cb41eaeeff124c2dbf70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13942 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 diff --git a/OpenRA.Editor/OpenRA.Editor.csproj b/OpenRA.Editor/OpenRA.Editor.csproj deleted file mode 100644 index 9a17de2a74..0000000000 --- a/OpenRA.Editor/OpenRA.Editor.csproj +++ /dev/null @@ -1,211 +0,0 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {00038B75-405B-44F5-8691-BD2546DBE224} - WinExe - Properties - OpenRA.Editor - OpenRA.Editor - 512 - OpenRA.Editor.Icon.ico - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - ..\ - DEBUG;TRACE - prompt - true - x86 - false - AllRules.ruleset - - - true - ..\ - TRACE - true - pdbonly - x86 - false - prompt - AllRules.ruleset - true - - - - - 4.0 - - - 4.0 - - - 4.0 - - - - - - - ..\thirdparty\download\Eluant.dll - False - - - - - Form - - - ActorPropertiesDialog.cs - - - - - - Form - - - ErrorListDialog.cs - - - Form - - - Form1.cs - - - - Form - - - MapSelect.cs - - - Form - - - NewMapDialog.cs - - - - Form - - - PropertiesDialog.cs - - - ActorPropertiesDialog.cs - Designer - - - Form1.cs - - - MapSelect.cs - - - NewMapDialog.cs - - - PropertiesDialog.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - ResizeDialog.cs - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - Form - - - ResizeDialog.cs - - - - Component - - - - - - {0DFB103F-2962-400F-8C6D-E2C28CCBA633} - OpenRA.Game - False - - - {FE6C8CC0-2F07-442A-B29F-17617B3B7FC6} - OpenRA.Mods.Common - False - - - - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - False - Windows Installer 3.1 - true - - - - - \ No newline at end of file diff --git a/OpenRA.Editor/Program.cs b/OpenRA.Editor/Program.cs deleted file mode 100644 index fccad1df43..0000000000 --- a/OpenRA.Editor/Program.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Globalization; -using System.Windows.Forms; - -namespace OpenRA.Editor -{ - static class Program - { - public static Ruleset Rules; - - [STAThread] - static void Main(string[] args) - { - Log.AddChannel("perf", null); - - Application.CurrentCulture = CultureInfo.InvariantCulture; - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - - Application.Run(new Form1(args)); - } - } -} diff --git a/OpenRA.Editor/Properties/Resources.Designer.cs b/OpenRA.Editor/Properties/Resources.Designer.cs deleted file mode 100644 index f55a9c67eb..0000000000 --- a/OpenRA.Editor/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.269 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace OpenRA.Editor.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenRA.Editor.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/OpenRA.Editor/Properties/Resources.resx b/OpenRA.Editor/Properties/Resources.resx deleted file mode 100644 index ffecec851a..0000000000 --- a/OpenRA.Editor/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenRA.Editor/Properties/Settings.Designer.cs b/OpenRA.Editor/Properties/Settings.Designer.cs deleted file mode 100644 index 55608834a4..0000000000 --- a/OpenRA.Editor/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.269 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace OpenRA.Editor.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/OpenRA.Editor/Properties/Settings.settings b/OpenRA.Editor/Properties/Settings.settings deleted file mode 100644 index 39645652af..0000000000 --- a/OpenRA.Editor/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/OpenRA.Editor/PropertiesDialog.Designer.cs b/OpenRA.Editor/PropertiesDialog.Designer.cs deleted file mode 100644 index 66ef33092e..0000000000 --- a/OpenRA.Editor/PropertiesDialog.Designer.cs +++ /dev/null @@ -1,182 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Editor -{ - partial class PropertiesDialog - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - components.Dispose(); - - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.button2 = new System.Windows.Forms.Button(); - this.button1 = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.TitleBox = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.DescBox = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.AuthorBox = new System.Windows.Forms.TextBox(); - this.MapVisibilityComboBox = new System.Windows.Forms.ComboBox(); - this.label4 = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // button2 - // - this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.button2.DialogResult = System.Windows.Forms.DialogResult.OK; - this.button2.Location = new System.Drawing.Point(196, 193); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(75, 23); - this.button2.TabIndex = 14; - this.button2.Text = "OK"; - this.button2.UseVisualStyleBackColor = true; - // - // button1 - // - this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.button1.Location = new System.Drawing.Point(277, 193); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(75, 23); - this.button1.TabIndex = 15; - this.button1.Text = "Cancel"; - this.button1.UseVisualStyleBackColor = true; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 50); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(27, 13); - this.label1.TabIndex = 16; - this.label1.Text = "Title"; - // - // title - // - this.TitleBox.Location = new System.Drawing.Point(66, 47); - this.TitleBox.Name = "title"; - this.TitleBox.Size = new System.Drawing.Size(286, 20); - this.TitleBox.TabIndex = 17; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 76); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(32, 13); - this.label2.TabIndex = 16; - this.label2.Text = "Desc"; - // - // desc - // - this.DescBox.Location = new System.Drawing.Point(66, 73); - this.DescBox.Name = "desc"; - this.DescBox.Size = new System.Drawing.Size(286, 20); - this.DescBox.TabIndex = 17; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(12, 102); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(38, 13); - this.label3.TabIndex = 16; - this.label3.Text = "Author"; - // - // author - // - this.AuthorBox.Location = new System.Drawing.Point(66, 99); - this.AuthorBox.Name = "author"; - this.AuthorBox.Size = new System.Drawing.Size(286, 20); - this.AuthorBox.TabIndex = 17; - // - // - // mapVisibilityComboBox - // - this.MapVisibilityComboBox.FormattingEnabled = true; - this.MapVisibilityComboBox.Items.AddRange(new object[] { - "Lobby", - "Shellmap", - "MissionSelector"}); - this.MapVisibilityComboBox.Location = new System.Drawing.Point(150, 137); - this.MapVisibilityComboBox.Name = "mapVisibilityComboBox"; - this.MapVisibilityComboBox.Size = new System.Drawing.Size(121, 21); - this.MapVisibilityComboBox.TabIndex = 19; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(90, 140); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(58, 13); - this.label4.TabIndex = 20; - this.label4.Text = "Map class:"; - // PropertiesDialog - // - this.AcceptButton = this.button2; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.button1; - this.ClientSize = new System.Drawing.Size(370, 228); - this.Controls.Add(this.label4); - this.Controls.Add(this.MapVisibilityComboBox); - this.Controls.Add(this.AuthorBox); - this.Controls.Add(this.label3); - this.Controls.Add(this.DescBox); - this.Controls.Add(this.label2); - this.Controls.Add(this.TitleBox); - this.Controls.Add(this.label1); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Name = "PropertiesDialog"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Map Properties"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button button2; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Label label1; - public System.Windows.Forms.TextBox TitleBox; - private System.Windows.Forms.Label label2; - public System.Windows.Forms.TextBox DescBox; - private System.Windows.Forms.Label label3; - public System.Windows.Forms.TextBox AuthorBox; - public System.Windows.Forms.ComboBox MapVisibilityComboBox; - private System.Windows.Forms.Label label4; - } -} diff --git a/OpenRA.Editor/PropertiesDialog.cs b/OpenRA.Editor/PropertiesDialog.cs deleted file mode 100644 index f497b8caac..0000000000 --- a/OpenRA.Editor/PropertiesDialog.cs +++ /dev/null @@ -1,22 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Windows.Forms; - -namespace OpenRA.Editor -{ - public partial class PropertiesDialog : Form - { - public PropertiesDialog() - { - InitializeComponent(); - } - } -} diff --git a/OpenRA.Editor/PropertiesDialog.resx b/OpenRA.Editor/PropertiesDialog.resx deleted file mode 100644 index 19dc0dd8b3..0000000000 --- a/OpenRA.Editor/PropertiesDialog.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenRA.Editor/RenderUtils.cs b/OpenRA.Editor/RenderUtils.cs deleted file mode 100644 index 1416575bf7..0000000000 --- a/OpenRA.Editor/RenderUtils.cs +++ /dev/null @@ -1,112 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Drawing; -using System.Drawing.Imaging; -using System.Linq; -using OpenRA.FileFormats; -using OpenRA.FileSystem; -using OpenRA.Graphics; -using OpenRA.Mods.Common.Graphics; -using OpenRA.Mods.Common.SpriteLoaders; -using OpenRA.Traits; - -namespace OpenRA.Editor -{ - static class RenderUtils - { - static Bitmap RenderShp(ShpTDSprite shp, IPalette p) - { - var frame = shp.Frames.First(); - - var bitmap = new Bitmap(frame.Size.Width, frame.Size.Height, PixelFormat.Format8bppIndexed); - - bitmap.Palette = p.AsSystemPalette(); - - var data = bitmap.LockBits(bitmap.Bounds(), - ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed); - - unsafe - { - var q = (byte*)data.Scan0.ToPointer(); - var stride2 = data.Stride; - - for (var i = 0; i < frame.Size.Width; i++) - for (var j = 0; j < frame.Size.Height; j++) - q[j * stride2 + i] = frame.Data[i + frame.Size.Width * j]; - } - - bitmap.UnlockBits(data); - return bitmap; - } - - static readonly string[] LegacyExtensions = new[] { ".shp", ".tem", "" }; - - static string ResolveFilename(string name, TileSet tileSet) - { - var ssl = Game.ModData.SpriteSequenceLoader as TilesetSpecificSpriteSequenceLoader; - var extensions = ssl != null ? new[] { ssl.TilesetExtensions[tileSet.Id], ssl.DefaultSpriteExtension }.Append(LegacyExtensions) : - LegacyExtensions.AsEnumerable(); - - foreach (var e in extensions) - if (GlobalFileSystem.Exists(name + e)) - return name + e; - - return name; - } - - public static ActorTemplate RenderActor(ActorInfo info, SequenceProvider sequenceProvider, TileSet tileset, IPalette p, string race) - { - var image = info.Traits.Get().EditorImage(info, sequenceProvider, race); - image = ResolveFilename(image, tileset); - using (var s = GlobalFileSystem.Open(image)) - { - var shp = new ShpTDSprite(s); - var bitmap = RenderShp(shp, p); - - return new ActorTemplate - { - Bitmap = bitmap, - Info = info, - Appearance = info.Traits.GetOrDefault() - }; - } - } - - public static ResourceTemplate RenderResourceType(ResourceTypeInfo info, TileSet tileset, IPalette p) - { - var image = ResolveFilename(info.EditorSprite, tileset); - using (var s = GlobalFileSystem.Open(image)) - { - // TODO: Do this properly - var shp = new ShpTDSprite(s); - var frame = shp.Frames.Last(); - - var bitmap = new Bitmap(frame.Size.Width, frame.Size.Height, PixelFormat.Format8bppIndexed); - bitmap.Palette = p.AsSystemPalette(); - var data = bitmap.LockBits(bitmap.Bounds(), - ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed); - - unsafe - { - var q = (byte*)data.Scan0.ToPointer(); - var stride = data.Stride; - - for (var i = 0; i < frame.Size.Width; i++) - for (var j = 0; j < frame.Size.Height; j++) - q[j * stride + i] = frame.Data[i + frame.Size.Width * j]; - } - - bitmap.UnlockBits(data); - return new ResourceTemplate { Bitmap = bitmap, Info = info, Value = shp.Frames.Count - 1 }; - } - } - } -} diff --git a/OpenRA.Editor/ResizeDialog.Designer.cs b/OpenRA.Editor/ResizeDialog.Designer.cs deleted file mode 100644 index 51f617e741..0000000000 --- a/OpenRA.Editor/ResizeDialog.Designer.cs +++ /dev/null @@ -1,235 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Editor -{ - partial class ResizeDialog - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - components.Dispose(); - - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.MapWidth = new System.Windows.Forms.NumericUpDown(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.CordonLeft = new System.Windows.Forms.NumericUpDown(); - this.CordonTop = new System.Windows.Forms.NumericUpDown(); - this.CordonRight = new System.Windows.Forms.NumericUpDown(); - this.CordonBottom = new System.Windows.Forms.NumericUpDown(); - this.label3 = new System.Windows.Forms.Label(); - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.MapHeight = new System.Windows.Forms.NumericUpDown(); - ((System.ComponentModel.ISupportInitialize)(this.MapWidth)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonLeft)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonTop)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonRight)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonBottom)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.MapHeight)).BeginInit(); - this.SuspendLayout(); - // - // width - // - this.MapWidth.Increment = new decimal(new int[] { - 8, - 0, - 0, - 0}); - this.MapWidth.Location = new System.Drawing.Point(161, 18); - this.MapWidth.Maximum = new decimal(new int[] { - 2048, - 0, - 0, - 0}); - this.MapWidth.Name = "width"; - this.MapWidth.Size = new System.Drawing.Size(105, 20); - this.MapWidth.TabIndex = 0; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(23, 20); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(27, 13); - this.label1.TabIndex = 1; - this.label1.Text = "Size"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(23, 46); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(86, 13); - this.label2.TabIndex = 1; - this.label2.Text = "Cordon Left/Top"; - // - // cordonLeft - // - this.CordonLeft.Location = new System.Drawing.Point(161, 44); - this.CordonLeft.Maximum = new decimal(new int[] { - 2048, - 0, - 0, - 0}); - this.CordonLeft.Name = "cordonLeft"; - this.CordonLeft.Size = new System.Drawing.Size(105, 20); - this.CordonLeft.TabIndex = 0; - // - // cordonTop - // - this.CordonTop.Location = new System.Drawing.Point(272, 44); - this.CordonTop.Maximum = new decimal(new int[] { - 2048, - 0, - 0, - 0}); - this.CordonTop.Name = "cordonTop"; - this.CordonTop.Size = new System.Drawing.Size(105, 20); - this.CordonTop.TabIndex = 0; - // - // cordonRight - // - this.CordonRight.Location = new System.Drawing.Point(161, 70); - this.CordonRight.Maximum = new decimal(new int[] { - 2048, - 0, - 0, - 0}); - this.CordonRight.Name = "cordonRight"; - this.CordonRight.Size = new System.Drawing.Size(105, 20); - this.CordonRight.TabIndex = 0; - // - // cordonBottom - // - this.CordonBottom.Location = new System.Drawing.Point(272, 70); - this.CordonBottom.Maximum = new decimal(new int[] { - 2048, - 0, - 0, - 0}); - this.CordonBottom.Name = "cordonBottom"; - this.CordonBottom.Size = new System.Drawing.Size(105, 20); - this.CordonBottom.TabIndex = 0; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(23, 72); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(107, 13); - this.label3.TabIndex = 1; - this.label3.Text = "Cordon Right/Bottom"; - // - // button1 - // - this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.button1.Location = new System.Drawing.Point(302, 111); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(75, 23); - this.button1.TabIndex = 2; - this.button1.Text = "Cancel"; - this.button1.UseVisualStyleBackColor = true; - // - // button2 - // - this.button2.DialogResult = System.Windows.Forms.DialogResult.OK; - this.button2.Location = new System.Drawing.Point(221, 111); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(75, 23); - this.button2.TabIndex = 2; - this.button2.Text = "OK"; - this.button2.UseVisualStyleBackColor = true; - // - // height - // - this.MapHeight.Increment = new decimal(new int[] { - 8, - 0, - 0, - 0}); - this.MapHeight.Location = new System.Drawing.Point(272, 18); - this.MapHeight.Maximum = new decimal(new int[] { - 2048, - 0, - 0, - 0}); - this.MapHeight.Name = "height"; - this.MapHeight.Size = new System.Drawing.Size(105, 20); - this.MapHeight.TabIndex = 0; - // - // ResizeDialog - // - this.AcceptButton = this.button2; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.button1; - this.ClientSize = new System.Drawing.Size(409, 146); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); - this.Controls.Add(this.label3); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.CordonBottom); - this.Controls.Add(this.CordonTop); - this.Controls.Add(this.CordonRight); - this.Controls.Add(this.CordonLeft); - this.Controls.Add(this.MapHeight); - this.Controls.Add(this.MapWidth); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Name = "ResizeDialog"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Resize Map"; - ((System.ComponentModel.ISupportInitialize)(this.MapWidth)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonLeft)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonTop)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonRight)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.CordonBottom)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.MapHeight)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button button2; - public System.Windows.Forms.NumericUpDown MapWidth; - public System.Windows.Forms.NumericUpDown CordonLeft; - public System.Windows.Forms.NumericUpDown CordonTop; - public System.Windows.Forms.NumericUpDown CordonRight; - public System.Windows.Forms.NumericUpDown CordonBottom; - public System.Windows.Forms.NumericUpDown MapHeight; - } -} \ No newline at end of file diff --git a/OpenRA.Editor/ResizeDialog.cs b/OpenRA.Editor/ResizeDialog.cs deleted file mode 100644 index d15433b125..0000000000 --- a/OpenRA.Editor/ResizeDialog.cs +++ /dev/null @@ -1,22 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Windows.Forms; - -namespace OpenRA.Editor -{ - public partial class ResizeDialog : Form - { - public ResizeDialog() - { - InitializeComponent(); - } - } -} diff --git a/OpenRA.Editor/ResizeDialog.resx b/OpenRA.Editor/ResizeDialog.resx deleted file mode 100644 index 19dc0dd8b3..0000000000 --- a/OpenRA.Editor/ResizeDialog.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/OpenRA.Editor/ResourceTool.cs b/OpenRA.Editor/ResourceTool.cs deleted file mode 100644 index 4c9d638fc6..0000000000 --- a/OpenRA.Editor/ResourceTool.cs +++ /dev/null @@ -1,45 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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 SGraphics = System.Drawing.Graphics; - -namespace OpenRA.Editor -{ - class ResourceTool : ITool - { - ResourceTemplate resourceTemplate; - - public ResourceTool(ResourceTemplate resource) { resourceTemplate = resource; } - - public void Apply(Surface surface) - { - var type = (byte)resourceTemplate.Info.ResourceType; - var index = (byte)random.Next(resourceTemplate.Info.MaxDensity); - surface.Map.MapResources.Value[surface.GetBrushLocation()] = new ResourceTile(type, index); - - var ch = new int2(surface.GetBrushLocation().X / Surface.ChunkSize, - surface.GetBrushLocation().Y / Surface.ChunkSize); - - if (surface.Chunks.ContainsKey(ch)) - { - surface.Chunks[ch].Dispose(); - surface.Chunks.Remove(ch); - } - } - - public void Preview(Surface surface, SGraphics g) - { - surface.DrawImage(g, resourceTemplate.Bitmap, surface.GetBrushLocation(), false, null); - } - - Random random = new Random(); - } -} diff --git a/OpenRA.Editor/Surface.cs b/OpenRA.Editor/Surface.cs deleted file mode 100644 index e072864623..0000000000 --- a/OpenRA.Editor/Surface.cs +++ /dev/null @@ -1,588 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Linq; -using System.Windows.Forms; -using OpenRA.Graphics; -using OpenRA.Primitives; -using OpenRA.Traits; - -using SGraphics = System.Drawing.Graphics; - -namespace OpenRA.Editor -{ - static class ActorReferenceExts - { - public static CPos Location(this ActorReference ar) - { - return (CPos)ar.InitDict.Get().Value(null); - } - - public static void DrawStringContrast(this SGraphics g, Font f, string s, int x, int y, Brush fg, Brush bg) - { - g.DrawString(s, f, bg, x - 1, y - 1); - g.DrawString(s, f, bg, x + 1, y - 1); - g.DrawString(s, f, bg, x - 1, y + 1); - g.DrawString(s, f, bg, x + 1, y + 1); - - g.DrawString(s, f, fg, x, y); - } - } - - class Surface : Control - { - public Map Map { get; private set; } - public Dictionary Actors { get; private set; } - public TileSet TileSet { get; private set; } - public TileSetRenderer TileSetRenderer { get; private set; } - public IPalette Palette { get; private set; } - public IPalette PlayerPalette { get; private set; } - public int2 Offset; - - public int2 GetOffset() { return Offset; } - - public float Zoom = 1.0f; - - ITool currentTool; - - public bool IsPanning; - public bool IsErasing; - public bool ShowActorNames; - public bool ShowGrid; - public bool ShowRuler; - - public bool IsPaste { get { return TileSelection != null && ResourceSelection != null; } } - public TerrainTile[,] TileSelection; - public ResourceTile[,] ResourceSelection; - public CPos SelectionStart; - public CPos SelectionEnd; - - public string NewActorOwner; - - public event Action AfterChange = () => { }; - public event Action MousePositionChanged = _ => { }; - public event Action> ActorDoubleClicked = _ => { }; - - Dictionary actorTemplates = new Dictionary(); - public Dictionary ResourceTemplates = new Dictionary(); - - static readonly Font MarkerFont = new Font(FontFamily.GenericSansSerif, 12.0f, FontStyle.Regular); - static readonly SolidBrush TextBrush = new SolidBrush(Color.Red); - - public Keys GetModifiers() { return ModifierKeys; } - - public void Bind(Map m, TileSet ts, TileSetRenderer tsr, IPalette p, IPalette pp) - { - Map = m; - if (m != null) - Actors = m.ActorDefinitions.ToDictionary(n => n.Key, n => new ActorReference(n.Value.Value, n.Value.ToDictionary())); - - TileSet = ts; - TileSetRenderer = tsr; - Palette = p; - PlayerPalette = pp; - playerPalettes = null; - Chunks.Clear(); - currentTool = null; - } - - public void SetTool(ITool tool) { currentTool = tool; ClearSelection(); } - - public void BindActorTemplates(IEnumerable templates) - { - actorTemplates = templates.ToDictionary(a => a.Info.Name.ToLowerInvariant()); - } - - public void BindResourceTemplates(IEnumerable templates) - { - ResourceTemplates = templates.ToDictionary(a => a.Info.ResourceType); - } - - public Dictionary Chunks = new Dictionary(); - - public Surface() - { - BackColor = Color.Black; - - SetStyle(ControlStyles.OptimizedDoubleBuffer, true); - SetStyle(ControlStyles.ResizeRedraw, true); - UpdateStyles(); - } - - static readonly Pen SelectionPen = new Pen(Color.Blue); - static readonly Pen PastePen = new Pen(Color.Green); - static readonly Pen CordonPen = new Pen(Color.Red); - - int2 mousePos; - - public void Scroll(int2 dx) - { - Offset -= dx; - Invalidate(); - } - - protected override void OnDoubleClick(EventArgs e) - { - base.OnDoubleClick(e); - - var x = Actors.FirstOrDefault(a => a.Value.Location() == GetBrushLocation()); - if (x.Key != null) - ActorDoubleClicked(x); - } - - protected override void OnMouseWheel(MouseEventArgs e) - { - base.OnMouseWheel(e); - - if (Map == null) return; - - Zoom *= e.Delta > 0 ? 4.0f / 3.0f : .75f; - - Invalidate(); - } - - protected override void OnMouseLeave(EventArgs e) - { - base.OnMouseLeave(e); - - this.Parent.Focus(); - - Invalidate(); - } - - protected override void OnMouseEnter(EventArgs e) - { - base.OnMouseLeave(e); - - this.Focus(); - - Invalidate(); - } - - protected override void OnMouseMove(MouseEventArgs e) - { - base.OnMouseMove(e); - - if (Map == null) return; - - var oldMousePos = mousePos; - mousePos = new int2(e.Location); - MousePositionChanged(GetBrushLocation().ToString()); - - if (e.Button == MouseButtons.Middle || (e.Button != MouseButtons.None && IsPanning)) - Scroll(oldMousePos - mousePos); - else - { - if (e.Button == MouseButtons.Right || (IsErasing && e.Button == MouseButtons.Left)) - Erase(); - - if (e.Button == MouseButtons.Left && !IsErasing) - Draw(); - - Invalidate(); - } - } - - void Erase() - { - // Crash preventing - var brushLocation = GetBrushLocation(); - - if (Map == null || brushLocation.X >= Map.MapSize.X || - brushLocation.Y >= Map.MapSize.Y || - brushLocation.X < 0 || - brushLocation.Y < 0) - return; - - currentTool = null; - - var key = Actors.FirstOrDefault(a => a.Value.Location() == brushLocation); - if (key.Key != null) Actors.Remove(key.Key); - - if (Map.MapResources.Value[brushLocation].Type != 0) - { - Map.MapResources.Value[brushLocation] = new ResourceTile(0, 0); - var ch = new int2(brushLocation.X / ChunkSize, brushLocation.Y / ChunkSize); - if (Chunks.ContainsKey(ch)) - { - Chunks[ch].Dispose(); - Chunks.Remove(ch); - } - } - - AfterChange(); - ClearSelection(); - } - - void Draw() - { - if (currentTool != null) - { - currentTool.Apply(this); - AfterChange(); - } - else if (IsPaste) - PasteSelection(); - else - SelectionEnd = GetBrushLocationBR(); - } - - protected override void OnMouseDown(MouseEventArgs e) - { - base.OnMouseDown(e); - - if (Map == null) return; - - if (!IsPanning) - { - if (e.Button == MouseButtons.Right) Erase(); - if (e.Button == MouseButtons.Left && !IsErasing) - { - Draw(); - if (!IsPaste) - SelectionStart = SelectionEnd = GetBrushLocation(); - } - } - - Invalidate(); - } - - public const int ChunkSize = 8; // 8x8 chunks ==> 192x192 bitmaps. - - Bitmap RenderChunk(int u, int v) - { - var bitmap = new Bitmap(ChunkSize * TileSetRenderer.TileSize, ChunkSize * TileSetRenderer.TileSize); - - var data = bitmap.LockBits(bitmap.Bounds(), - ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb); - - unsafe - { - var p = (int*)data.Scan0.ToPointer(); - var stride = data.Stride >> 2; - - for (var i = 0; i < ChunkSize; i++) - for (var j = 0; j < ChunkSize; j++) - { - var ui = u * ChunkSize + i; - var vj = v * ChunkSize + j; - var uv = new MPos(ui, vj); - if (uv.U >= Map.MapSize.X || uv.V >= Map.MapSize.Y) - { - for (var x = 0; x < TileSetRenderer.TileSize; x++) - for (var y = 0; y < TileSetRenderer.TileSize; y++) - p[(j * TileSetRenderer.TileSize + y) * stride + i * TileSetRenderer.TileSize + x] = 0; - - continue; - } - - var tr = Map.MapTiles.Value[uv]; - var tile = TileSetRenderer.Data(tr.Type); - if (tile == null) - continue; - - var index = (tr.Index < tile.Length) ? tr.Index : (byte)0; - var rawImage = tile[index]; - for (var x = 0; x < TileSetRenderer.TileSize; x++) - for (var y = 0; y < TileSetRenderer.TileSize; y++) - p[(j * TileSetRenderer.TileSize + y) * stride + i * TileSetRenderer.TileSize + x] = - Palette.GetColor(rawImage[x + TileSetRenderer.TileSize * y]).ToArgb(); - - if (Map.MapResources.Value[uv].Type != 0) - { - var resourceImage = ResourceTemplates[Map.MapResources.Value[uv].Type].Bitmap; - var srcdata = resourceImage.LockBits(resourceImage.Bounds(), - ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); - - var q = (int*)srcdata.Scan0.ToPointer(); - var srcstride = srcdata.Stride >> 2; - - for (var x = 0; x < TileSetRenderer.TileSize; x++) - for (var y = 0; y < TileSetRenderer.TileSize; y++) - { - var c = q[y * srcstride + x]; - if ((c & 0xff000000) != 0) /* quick & dirty, i cbf doing real alpha */ - p[(j * TileSetRenderer.TileSize + y) * stride + i * TileSetRenderer.TileSize + x] = c; - } - - resourceImage.UnlockBits(srcdata); - } - } - } - - bitmap.UnlockBits(data); - - if (ShowGrid) - { - using (var g = SGraphics.FromImage(bitmap)) - { - var ts = Game.ModData.Manifest.TileSize; - var rect = new Rectangle(0, 0, bitmap.Width, bitmap.Height); - ControlPaint.DrawGrid(g, rect, new Size(2, ts.Height), Color.DarkRed); - ControlPaint.DrawGrid(g, rect, new Size(ts.Width, 2), Color.DarkRed); - ControlPaint.DrawGrid(g, rect, new Size(ts.Width, ts.Height), Color.Red); - } - } - - return bitmap; - } - - public CPos GetBrushLocation() - { - var vX = (int)Math.Floor((mousePos.X - Offset.X) / Zoom); - var vY = (int)Math.Floor((mousePos.Y - Offset.Y) / Zoom); - return new CPos(vX / TileSetRenderer.TileSize, vY / TileSetRenderer.TileSize); - } - - public CPos GetBrushLocationBR() - { - var vX = (int)Math.Floor((mousePos.X - Offset.X) / Zoom); - var vY = (int)Math.Floor((mousePos.Y - Offset.Y) / Zoom); - return new CPos( - (vX + TileSetRenderer.TileSize - 1) / TileSetRenderer.TileSize, - (vY + TileSetRenderer.TileSize - 1) / TileSetRenderer.TileSize); - } - - public void DrawActor(SGraphics g, CPos p, ActorTemplate t, ColorPalette cp) - { - var centered = t.Appearance == null || !t.Appearance.RelativeToTopLeft; - var actorPalette = cp; - if (t.Appearance != null && t.Appearance.UseTerrainPalette) - actorPalette = Palette.AsSystemPalette(); - DrawImage(g, t.Bitmap, p, centered, actorPalette); - } - - float2 GetDrawPosition(CPos location, Bitmap bmp, bool centered) - { - float offsetX = centered ? bmp.Width / 2 - TileSetRenderer.TileSize / 2 : 0; - var drawX = TileSetRenderer.TileSize * location.X * Zoom + Offset.X - offsetX; - - float offsetY = centered ? bmp.Height / 2 - TileSetRenderer.TileSize / 2 : 0; - var drawY = TileSetRenderer.TileSize * location.Y * Zoom + Offset.Y - offsetY; - - return new float2(drawX, drawY); - } - - public void DrawImage(SGraphics g, Bitmap bmp, CPos location, bool centered, ColorPalette cp) - { - var drawPos = GetDrawPosition(location, bmp, centered); - - var sourceRect = new RectangleF(0, 0, bmp.Width, bmp.Height); - var destRect = new RectangleF(drawPos.X, drawPos.Y, bmp.Width * Zoom, bmp.Height * Zoom); - - var restorePalette = bmp.Palette; - if (cp != null) bmp.Palette = cp; - g.DrawImage(bmp, destRect, sourceRect, GraphicsUnit.Pixel); - if (cp != null) bmp.Palette = restorePalette; - } - - void DrawActorBorder(SGraphics g, CPos p, ActorTemplate t) - { - var centered = t.Appearance == null || !t.Appearance.RelativeToTopLeft; - var drawPos = GetDrawPosition(p, t.Bitmap, centered); - - g.DrawRectangle(CordonPen, - drawPos.X, drawPos.Y, - t.Bitmap.Width * Zoom, t.Bitmap.Height * Zoom); - } - - ColorPalette GetPaletteForPlayerInner(string name) - { - var pr = new MapPlayers(Map.PlayerDefinitions).Players[name]; - var pcpi = Program.Rules.Actors["world"].Traits.Get(); - var remap = new PlayerColorRemap(pcpi.RemapIndex, pr.Color, pcpi.Ramp); - return new ImmutablePalette(PlayerPalette, remap).AsSystemPalette(); - } - - Cache playerPalettes; - - public ColorPalette GetPaletteForPlayer(string player) - { - if (playerPalettes == null) - playerPalettes = new Cache(GetPaletteForPlayerInner); - - return playerPalettes[player]; - } - - ColorPalette GetPaletteForActor(ActorReference ar) - { - var ownerInit = ar.InitDict.GetOrDefault(); - if (ownerInit == null) - return null; - - return GetPaletteForPlayer(ownerInit.PlayerName); - } - - protected override void OnPaint(PaintEventArgs e) - { - if (Map == null) return; - if (TileSet == null) return; - - for (var u = 0; u < Map.MapSize.X; u += ChunkSize) - for (var v = 0; v < Map.MapSize.Y; v += ChunkSize) - { - var x = new int2(u / ChunkSize, v / ChunkSize); - if (!Chunks.ContainsKey(x)) Chunks[x] = RenderChunk(u / ChunkSize, v / ChunkSize); - - var bmp = Chunks[x]; - - var drawX = TileSetRenderer.TileSize * (float)ChunkSize * (float)x.X * Zoom + Offset.X; - var drawY = TileSetRenderer.TileSize * (float)ChunkSize * (float)x.Y * Zoom + Offset.Y; - var sourceRect = new RectangleF(0, 0, bmp.Width, bmp.Height); - var destRect = new RectangleF(drawX, drawY, bmp.Width * Zoom, bmp.Height * Zoom); - e.Graphics.DrawImage(bmp, destRect, sourceRect, GraphicsUnit.Pixel); - } - - e.Graphics.DrawRectangle(CordonPen, - Map.Bounds.Left * TileSetRenderer.TileSize * Zoom + Offset.X, - Map.Bounds.Top * TileSetRenderer.TileSize * Zoom + Offset.Y, - Map.Bounds.Width * TileSetRenderer.TileSize * Zoom, - Map.Bounds.Height * TileSetRenderer.TileSize * Zoom); - - e.Graphics.DrawRectangle(SelectionPen, - (SelectionStart.X * TileSetRenderer.TileSize * Zoom) + Offset.X, - (SelectionStart.Y * TileSetRenderer.TileSize * Zoom) + Offset.Y, - (SelectionEnd - SelectionStart).X * TileSetRenderer.TileSize * Zoom, - (SelectionEnd - SelectionStart).Y * TileSetRenderer.TileSize * Zoom); - - if (IsPaste) - { - var loc = GetBrushLocation(); - var width = Math.Abs((SelectionStart - SelectionEnd).X); - var height = Math.Abs((SelectionStart - SelectionEnd).Y); - - e.Graphics.DrawRectangle(PastePen, - (loc.X * TileSetRenderer.TileSize * Zoom) + Offset.X, - (loc.Y * TileSetRenderer.TileSize * Zoom) + Offset.Y, - width * (TileSetRenderer.TileSize * Zoom), - height * (TileSetRenderer.TileSize * Zoom)); - } - - foreach (var ar in Actors) - { - if (actorTemplates.ContainsKey(ar.Value.Type)) - DrawActor(e.Graphics, ar.Value.Location(), actorTemplates[ar.Value.Type], - GetPaletteForActor(ar.Value)); - else - Console.WriteLine("Warning: Unknown or excluded actor: {0}", ar.Value.Type); - } - - if (ShowActorNames) - foreach (var ar in Actors) - if (!ar.Key.StartsWith("Actor")) // if it has a custom name - e.Graphics.DrawStringContrast(Font, ar.Key, - (int)(ar.Value.Location().X * TileSetRenderer.TileSize * Zoom + Offset.X), - (int)(ar.Value.Location().Y * TileSetRenderer.TileSize * Zoom + Offset.Y), - Brushes.White, - Brushes.Black); - - if (ShowRuler && Zoom > 0.2) - { - for (var i = Map.Bounds.Left; i <= Map.Bounds.Right; i += 8) - { - if (i % 8 == 0) - { - var point = new PointF(i * TileSetRenderer.TileSize * Zoom + Offset.X, (Map.Bounds.Top - 8) * TileSetRenderer.TileSize * Zoom + Offset.Y); - e.Graphics.DrawString((i - Map.Bounds.Left).ToString(), MarkerFont, TextBrush, point); - } - } - - for (var i = Map.Bounds.Top; i <= Map.Bounds.Bottom; i += 8) - { - if (i % 8 == 0) - { - var point = new PointF((Map.Bounds.Left - 8) * TileSetRenderer.TileSize * Zoom + Offset.X, i * TileSetRenderer.TileSize * Zoom + Offset.Y); - e.Graphics.DrawString((i - Map.Bounds.Left).ToString(), MarkerFont, TextBrush, point); - } - } - } - - if (currentTool != null) - currentTool.Preview(this, e.Graphics); - - if (currentTool == null) - { - var x = Actors.FirstOrDefault(a => a.Value.Location() == GetBrushLocation()); - if (x.Key != null && actorTemplates.ContainsKey(x.Value.Type)) - DrawActorBorder(e.Graphics, x.Value.Location(), actorTemplates[x.Value.Type]); - } - - base.OnPaint(e); - } - - public void CopySelection() - { - // Grab tiles and resources within selection (doesn't do actors) - var start = SelectionStart; - var end = SelectionEnd; - - if (start == end) return; - - var width = Math.Abs((start - end).X); - var height = Math.Abs((start - end).Y); - - TileSelection = new TerrainTile[width, height]; - ResourceSelection = new ResourceTile[width, height]; - - for (var x = 0; x < width; x++) - { - for (var y = 0; y < height; y++) - { - // TODO: crash prevention - var cell = new CPos(start.X + x, start.Y + y); - TileSelection[x, y] = Map.MapTiles.Value[cell]; - ResourceSelection[x, y] = Map.MapResources.Value[cell]; - } - } - } - - void PasteSelection() - { - var loc = GetBrushLocation(); - var width = Math.Abs((SelectionStart - SelectionEnd).X); - var height = Math.Abs((SelectionStart - SelectionEnd).Y); - - for (var x = 0; x < width; x++) - { - for (var y = 0; y < height; y++) - { - var mapX = loc.X + x; - var mapY = loc.Y + y; - var cell = new CPos(mapX, mapY); - - // TODO: crash prevention for outside of bounds - Map.MapTiles.Value[cell] = TileSelection[x, y]; - Map.MapResources.Value[cell] = ResourceSelection[x, y]; - - var ch = new int2(mapX / ChunkSize, mapY / ChunkSize); - if (Chunks.ContainsKey(ch)) - { - Chunks[ch].Dispose(); - Chunks.Remove(ch); - } - } - } - - AfterChange(); - } - - void ClearSelection() - { - SelectionStart = CPos.Zero; - SelectionEnd = CPos.Zero; - TileSelection = null; - ResourceSelection = null; - } - } -} \ No newline at end of file diff --git a/OpenRA.Editor/TileSetRenderer.cs b/OpenRA.Editor/TileSetRenderer.cs deleted file mode 100644 index e0864dddb2..0000000000 --- a/OpenRA.Editor/TileSetRenderer.cs +++ /dev/null @@ -1,117 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Linq; -using OpenRA.FileSystem; -using OpenRA.Graphics; - -namespace OpenRA.Editor -{ - public class TileSetRenderer - { - public readonly int TileSize; - public TileSet TileSet; - Dictionary templates; - - // Extract a square tile that the editor can render - byte[] ExtractSquareTile(ISpriteFrame frame) - { - var data = new byte[TileSize * TileSize]; - - // Invalid tile size: return blank tile - if (frame.Size.Width < TileSize || frame.Size.Height < TileSize) - return new byte[0]; - - var frameData = frame.Data; - var xOffset = (frame.Size.Width - TileSize) / 2; - var yOffset = (frame.Size.Height - TileSize) / 2; - - for (var y = 0; y < TileSize; y++) - for (var x = 0; x < TileSize; x++) - data[y * TileSize + x] = frameData[(yOffset + y) * frame.Size.Width + x + xOffset]; - - return data; - } - - public TileSetRenderer(TileSet tileset, Size tileSize) - { - this.TileSet = tileset; - this.TileSize = Math.Min(tileSize.Width, tileSize.Height); - - templates = new Dictionary(); - var frameCache = new FrameCache(Game.ModData.SpriteLoaders); - foreach (var t in tileset.Templates) - { - var allFrames = frameCache[t.Value.Images[0]]; - var frames = t.Value.Frames != null ? t.Value.Frames.Select(f => allFrames[f]).ToArray() : allFrames; - templates.Add(t.Value.Id, frames.Select(f => ExtractSquareTile(f)).ToArray()); - } - } - - public Bitmap RenderTemplate(ushort id, IPalette p) - { - var template = TileSet.Templates[id]; - var templateData = templates[id]; - - var bitmap = new Bitmap(TileSize * template.Size.X, TileSize * template.Size.Y, - PixelFormat.Format8bppIndexed); - - bitmap.Palette = p.AsSystemPalette(); - - var data = bitmap.LockBits(bitmap.Bounds(), - ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed); - - unsafe - { - var q = (byte*)data.Scan0.ToPointer(); - var stride = data.Stride; - - for (var u = 0; u < template.Size.X; u++) - { - for (var v = 0; v < template.Size.Y; v++) - { - var rawImage = templateData[u + v * template.Size.X]; - if (rawImage != null && rawImage.Length > 0) - { - for (var i = 0; i < TileSize; i++) - for (var j = 0; j < TileSize; j++) - q[(v * TileSize + j) * stride + u * TileSize + i] = rawImage[i + TileSize * j]; - } - else - { - for (var i = 0; i < TileSize; i++) - for (var j = 0; j < TileSize; j++) - q[(v * TileSize + j) * stride + u * TileSize + i] = 0; - } - } - } - } - - bitmap.UnlockBits(data); - return bitmap; - } - - public byte[][] Data(ushort id) - { - byte[][] template; - if (!templates.TryGetValue(id, out template)) - { - Console.WriteLine("warning: Unknown tile template {0}", id); - return null; - } - - return template; - } - } -} diff --git a/OpenRA.Game/OpenRA.Game.csproj b/OpenRA.Game/OpenRA.Game.csproj index 6f66baceeb..fa6d6941db 100644 --- a/OpenRA.Game/OpenRA.Game.csproj +++ b/OpenRA.Game/OpenRA.Game.csproj @@ -171,7 +171,6 @@ - diff --git a/OpenRA.Game/Traits/EditorAppearance.cs b/OpenRA.Game/Traits/EditorAppearance.cs deleted file mode 100644 index 19f23af489..0000000000 --- a/OpenRA.Game/Traits/EditorAppearance.cs +++ /dev/null @@ -1,20 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2015 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.Traits -{ - public class EditorAppearanceInfo : TraitInfo - { - public readonly bool RelativeToTopLeft = false; - public readonly bool UseTerrainPalette = false; - } - - public class EditorAppearance { } -} diff --git a/OpenRA.Game/Traits/TraitsInterfaces.cs b/OpenRA.Game/Traits/TraitsInterfaces.cs index e4d4ff7deb..5ff057493b 100644 --- a/OpenRA.Game/Traits/TraitsInterfaces.cs +++ b/OpenRA.Game/Traits/TraitsInterfaces.cs @@ -350,10 +350,4 @@ namespace OpenRA.Traits void OnObjectiveCompleted(Player player, int objectiveID); void OnObjectiveFailed(Player player, int objectiveID); } - - public interface ILegacyEditorRenderInfo - { - string EditorPalette { get; } - string EditorImage(ActorInfo actor, SequenceProvider sequenceProvider, string race); - } } diff --git a/OpenRA.Game/Traits/World/ResourceType.cs b/OpenRA.Game/Traits/World/ResourceType.cs index 19295ae009..865f3fbee2 100644 --- a/OpenRA.Game/Traits/World/ResourceType.cs +++ b/OpenRA.Game/Traits/World/ResourceType.cs @@ -15,9 +15,6 @@ namespace OpenRA.Traits { public class ResourceTypeInfo : ITraitInfo { - // HACK: The editor is getting really unmaintanable... - public readonly string EditorSprite; - public readonly string[] Variants = { }; public readonly string Palette = "terrain"; public readonly string Sequence = "resources"; diff --git a/OpenRA.Mods.Common/Traits/Render/RenderSprites.cs b/OpenRA.Mods.Common/Traits/Render/RenderSprites.cs index ac31eaa169..e1929b652c 100644 --- a/OpenRA.Mods.Common/Traits/Render/RenderSprites.cs +++ b/OpenRA.Mods.Common/Traits/Render/RenderSprites.cs @@ -24,7 +24,7 @@ namespace OpenRA.Mods.Common.Traits } [Desc("Render trait fundament that won't work without additional With* render traits.")] - public class RenderSpritesInfo : IRenderActorPreviewInfo, ITraitInfo, ILegacyEditorRenderInfo + public class RenderSpritesInfo : IRenderActorPreviewInfo, ITraitInfo { [Desc("The sequence name that defines the actor sprites. Defaults to the actor name.")] public readonly string Image = null; @@ -91,9 +91,6 @@ namespace OpenRA.Mods.Common.Traits return (Image ?? actor.Name).ToLowerInvariant(); } - - public string EditorPalette { get { return Palette; } } - public string EditorImage(ActorInfo actor, SequenceProvider sequenceProvider, string race) { return GetImage(actor, sequenceProvider, race); } } public class RenderSprites : IRender, ITick, INotifyOwnerChanged, INotifyEffectiveOwnerChanged diff --git a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs index ee98153315..e8eefd663f 100644 --- a/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs +++ b/OpenRA.Mods.Common/UtilityCommands/UpgradeRules.cs @@ -1175,6 +1175,20 @@ namespace OpenRA.Mods.Common.UtilityCommands Console.WriteLine("See RA and C&C bridge huts or crates for reference."); } + // WinForms editor was removed + if (engineVersion < 20150620) + { + if (depth == 0 && node.Value.Nodes.Exists(n => n.Key == "EditorAppearance")) + node.Value.Nodes.RemoveAll(n => n.Key == "EditorAppearance"); + + if (depth == 1 && node.Value.Nodes.Exists(n => n.Key == "ResourceType")) + { + var editorSprite = node.Value.Nodes.FirstOrDefault(n => n.Key == "EditorSprite"); + if (editorSprite != null) + node.Value.Nodes.Remove(editorSprite); + } + } + UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1); } } diff --git a/OpenRA.sln b/OpenRA.sln index 681845a93a..46b71c67de 100644 --- a/OpenRA.sln +++ b/OpenRA.sln @@ -9,8 +9,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Mods.RA", "OpenRA.Mo EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Mods.Cnc", "OpenRA.Mods.Cnc\OpenRA.Mods.Cnc.csproj", "{2881135D-4D62-493E-8F83-5EEE92CCC6BE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Editor", "OpenRA.Editor\OpenRA.Editor.csproj", "{00038B75-405B-44F5-8691-BD2546DBE224}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Utility", "OpenRA.Utility\OpenRA.Utility.csproj", "{F33337BE-CB69-4B24-850F-07D23E408DDF}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRA.Renderer.Null", "OpenRA.Renderer.Null\OpenRA.Renderer.Null.csproj", "{0C4AEC1A-E7D5-4114-8CCD-3EEC82872981}" @@ -101,10 +99,6 @@ Global {2881135D-4D62-493E-8F83-5EEE92CCC6BE}.Debug|x86.Build.0 = Debug|x86 {2881135D-4D62-493E-8F83-5EEE92CCC6BE}.Release|x86.ActiveCfg = Release|x86 {2881135D-4D62-493E-8F83-5EEE92CCC6BE}.Release|x86.Build.0 = Release|x86 - {00038B75-405B-44F5-8691-BD2546DBE224}.Debug|x86.ActiveCfg = Debug|x86 - {00038B75-405B-44F5-8691-BD2546DBE224}.Debug|x86.Build.0 = Debug|x86 - {00038B75-405B-44F5-8691-BD2546DBE224}.Release|x86.ActiveCfg = Release|x86 - {00038B75-405B-44F5-8691-BD2546DBE224}.Release|x86.Build.0 = Release|x86 {F33337BE-CB69-4B24-850F-07D23E408DDF}.Debug|x86.ActiveCfg = Debug|x86 {F33337BE-CB69-4B24-850F-07D23E408DDF}.Debug|x86.Build.0 = Debug|x86 {F33337BE-CB69-4B24-850F-07D23E408DDF}.Release|x86.ActiveCfg = Release|x86 diff --git a/launch-editor.sh b/launch-editor.sh deleted file mode 100755 index c390cb1ae0..0000000000 --- a/launch-editor.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -# launch script (executed by Desura) -exec mono OpenRA.Editor.exe "$@" \ No newline at end of file diff --git a/mods/cnc/rules/defaults.yaml b/mods/cnc/rules/defaults.yaml index 9107d871f4..adec086844 100644 --- a/mods/cnc/rules/defaults.yaml +++ b/mods/cnc/rules/defaults.yaml @@ -310,8 +310,6 @@ WithInfantryBody: WithDeathAnimation: UseDeathTypeSuffix: false - EditorAppearance: - UseTerrainPalette: true BodyOrientation: DrawLineToTarget: AutoTarget: @@ -407,8 +405,6 @@ NewOwnerVoice: no ActorLostNotification: Notification: BuildingLost - EditorAppearance: - RelativeToTopLeft: yes ShakeOnDeath: CombatDebugOverlay: Guardable: @@ -459,8 +455,6 @@ Dimensions: 1,1 Footprint: x RenderBuilding: - EditorAppearance: - RelativeToTopLeft: yes Tooltip: Name: Civilian Building (Destroyed) GenericVisibility: None @@ -491,16 +485,12 @@ -Demolishable: RenderBuilding: Palette: terrain - EditorAppearance: - UseTerrainPalette: true ^CivFieldHusk: AppearsOnRadar: Building: Dimensions: 1,1 Footprint: _ - EditorAppearance: - RelativeToTopLeft: yes Tooltip: Name: Field (Destroyed) GenericVisibility: None @@ -533,8 +523,6 @@ RenderBuildingWall: Palette: staticterrain GivesExperience: - EditorAppearance: - RelativeToTopLeft: yes AutoTargetIgnore: Sellable: SellSounds: cashturn.aud @@ -554,8 +542,6 @@ AppearsOnRadar: RadarColorFromTerrain: Terrain: Tree - EditorAppearance: - RelativeToTopLeft: yes Health: HP: 500 Armor: @@ -577,7 +563,6 @@ AppearsOnRadar: RadarColorFromTerrain: Terrain: Tiberium - EditorAppearance: BodyOrientation: FrozenUnderFog: StartsRevealed: true @@ -594,8 +579,6 @@ AppearsOnRadar: RadarColorFromTerrain: Terrain: Tree - EditorAppearance: - RelativeToTopLeft: yes BodyOrientation: FrozenUnderFog: StartsRevealed: true diff --git a/mods/cnc/rules/world.yaml b/mods/cnc/rules/world.yaml index dad3757148..3694600a82 100644 --- a/mods/cnc/rules/world.yaml +++ b/mods/cnc/rules/world.yaml @@ -26,7 +26,6 @@ ResourceType: 1 Palette: staticterrain TerrainType: Tiberium - EditorSprite: ti1 Variants: ti1,ti2,ti3,ti4,ti5,ti6,ti7,ti8,ti9,ti10,ti11,ti12 MaxDensity: 12 ValuePerUnit: 35 @@ -38,7 +37,6 @@ ResourceType: 2 Palette: bluetiberium TerrainType: BlueTiberium - EditorSprite: bti1 Variants: bti1,bti2,bti3,bti4,bti5,bti6,bti7,bti8,bti9,bti10,bti11,bti12 MaxDensity: 12 ValuePerUnit: 75 diff --git a/mods/d2k/bits/spice0.shp b/mods/d2k/bits/spice0.shp deleted file mode 100644 index 8233cbbb0ddb4a6bb3cf287071570262a91f766b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1924 zcmajgU#J~N9S895?8!BSDA_$Xfm+ez=0U86wn?~Y&t!KFH&=&Y=hs;>DYjWltG_-( zq}1Bd2dP4KXLoawP;XP?n^f@6o6>(T3Q?=5D6!gtqKLi-eNd?)#)m!_oV_O|`sAF4 z<*;Yw%+Bxk`EG)7?2n&u+yR^!udh#**KX(d?dE6=U7Ntaz}D!ZWJlyTHEB(z*5pen zysDh^nsc73qApGCnWek71KiG3oXTfOGZ}Bvjlha=Pg7xk=e%P~FGdgVa)yN$*?`)vQ_R^!DJD#;J>vjp3Rr zWr!53e0&0KT%4n<^>GhhYqiFsXO$$cY8~&Y))VF(S?%$cM&qkkZ>n?!KMrgyK8n@O z%1YzF__O!7+Tzv5;%aLpp6!@*i9?tmbXF^iOXud=7v36n;uZ7o^bZJzUg}lshqAdtV8^%-kI&Nv|Yb)@r+r&xy zT}&<*s;D4WvChSNyIj+z*o}kzOj2%eAfAW85AbG3wX$LjI(RyUrx)H>w%!?BZWI=c z5iE`@n52ozIh^b)c_$8sLa*bet+yyIXl?7fm@B_Y={vEnsl^w2UpQHbgJO3)i>A(Y-q@dvz=kT@}w9hs9F zS1`>U6W=~-D5rwU>E7UCwNG{AO^t8j;nqm;d@D^Xnru||!?CpKN?TOoYRhtpp=K&` zN?z}rv(*$qQh_J%R@}@Z2OhyB+iH|}0ILhBl`gDt;%%Hx?wbB+W2-6gi{y-Wy5qS% zCML;)O`Y7nwlzqlxX{@@+fs@h$rY@0-pFGj&$e2cCkRDVVQ(|TMzB1~euuX)X`I+< zy~+NV{yCF)boKbz!u!(GY;CKNY2U~s>8zh={1x99ho^{7L4%a!6s3>HHj)}&>PbnL zAI9o0lg|#C3tz8e5chXQCFhfS51k)KyE&Iu8i>r!I{$SCGSqH1^BR-n$X$+I6J(_`*}MtrQP* zm9{!PHNYGXjN2TW~-MVfx_UFCfrqOhM-ty*V!4(r@9Xr!khgl>_3ikzy z9RGA~bVQCuqv_RPrNy0LTWDNr1G_@(WLye!y@?}@$uQ(vvMz9><0uKA>X$<23({t0 zysy%`V=;GNFCJ>S!0++C#tJkBdwNUN4WD8^{wBEf+dRA47=?=si92F^;vtcok3M5= zZTtK@ZVfKx#0k6=l#$uz;zHMX;@6GGl?#?!PR?lNs56+DK(`EPn`ic|SRv9>i|3X) z8!xVim(Jb5DO9hm^R;+9M4mDA6rRV?5lJ)p{4#bl1xBBz#EX%{_rx1wj(@~eUJmTs z^fny8uKv2uVf1Mz*%c_>I{qJ_A8N_rD{ZCXVU>AQDzdSCmrlhijZXIA;m%0Tv%{T~ z`PiMy1dcHg|NZWuN2nLJp~etempbtYqKTj5iQwb3Tk*o7&m@<#Pl&YNR=WBw>~2hQ zS4@|uLgbj8Zu0B{cmp98a+|6+o&F3T>|?0ikct@iAxce>Ad4Cw6QAxVQk`N6bu<&# z+ZTMS{wpo1 Installed-Size: {SIZE} -Depends: libopenal1, mono-runtime (>= 2.10), libmono-system-core4.0-cil, libmono-system-drawing4.0-cil, libmono-system-windows-forms4.0-cil, libmono-system-data4.0-cil, libmono-system-numerics4.0-cil, libmono-system-runtime-serialization4.0-cil, libmono-system-xml-linq4.0-cil, libfreetype6, libc6, libasound2, libgl1-mesa-glx, libgl1-mesa-dri, xdg-utils, zenity, libsdl2 | libsdl2-2.0-0, liblua5.1-0 +Depends: libopenal1, mono-runtime (>= 2.10), libmono-system-core4.0-cil, libmono-system-drawing4.0-cil, libmono-system-data4.0-cil, libmono-system-numerics4.0-cil, libmono-system-runtime-serialization4.0-cil, libmono-system-xml-linq4.0-cil, libfreetype6, libc6, libasound2, libgl1-mesa-glx, libgl1-mesa-dri, xdg-utils, zenity, libsdl2 | libsdl2-2.0-0, liblua5.1-0 Section: games Priority: extra Homepage: http://www.openra.net/ diff --git a/packaging/linux/deb/buildpackage.sh b/packaging/linux/deb/buildpackage.sh index dbb4334bb3..446c9e97b3 100755 --- a/packaging/linux/deb/buildpackage.sh +++ b/packaging/linux/deb/buildpackage.sh @@ -28,9 +28,6 @@ mv "${DEB_BUILD_ROOT}/usr/bin/" "${DEB_BUILD_ROOT}/usr/games/" sed "s|/usr/bin|/usr/games|g" "${DEB_BUILD_ROOT}/usr/games/openra" > temp mv -f temp "${DEB_BUILD_ROOT}/usr/games/openra" chmod +x "${DEB_BUILD_ROOT}/usr/games/openra" -sed "s|/usr/bin|/usr/games|g" "${DEB_BUILD_ROOT}/usr/games/openra-editor" > temp -mv -f temp "${DEB_BUILD_ROOT}/usr/games/openra-editor" -chmod +x "${DEB_BUILD_ROOT}/usr/games/openra-editor" # Put the copyright and changelog in /usr/share/doc/openra/ mkdir -p "${DEB_BUILD_ROOT}/${DOCDIR}" diff --git a/packaging/linux/hicolor/32x32/apps/openra-editor.png b/packaging/linux/hicolor/32x32/apps/openra-editor.png deleted file mode 100644 index 3b2fa799a8068a9dddd9f1109cdb03425f2eefde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2788 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 diff --git a/packaging/linux/openra-editor.desktop b/packaging/linux/openra-editor.desktop deleted file mode 100644 index f1a378a0b8..0000000000 --- a/packaging/linux/openra-editor.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Type=Application -Version=1.0 -Name=OpenRA Map Editor -GenericName=Tile based RTS game map editor -Comment=Import legacy maps and create new ones from scratch -Icon=openra-editor -Exec=openra-editor -Terminal=false -Categories=Game;StrategyGame; \ No newline at end of file diff --git a/packaging/osx/buildpackage.sh b/packaging/osx/buildpackage.sh index b6f505088a..0c9d93faf5 100755 --- a/packaging/osx/buildpackage.sh +++ b/packaging/osx/buildpackage.sh @@ -24,9 +24,8 @@ cp -r $2/* "OpenRA.app/Contents/Resources/" || exit 3 # Remove unused icon rm OpenRA.app/Contents/Resources/OpenRA.ico -# Remove broken WinForms applications +# Remove WinForms applications rm OpenRA.app/Contents/Resources/OpenRA.exe -rm OpenRA.app/Contents/Resources/OpenRA.Editor.exe # Set version string sed "s/{DEV_VERSION}/${1}/" OpenRA.app/Contents/Info.plist > OpenRA.app/Contents/Info.plist.tmp diff --git a/packaging/package-all.sh b/packaging/package-all.sh index d804fcfc05..11ffa35bf4 100755 --- a/packaging/package-all.sh +++ b/packaging/package-all.sh @@ -31,7 +31,7 @@ markdown DOCUMENTATION.md > DOCUMENTATION.html markdown Lua-API.md > Lua-API.html # List of files that are packaged on all platforms -FILES=('OpenRA.Game.exe' 'OpenRA.Game.exe.config' 'OpenRA.Editor.exe' 'OpenRA.Utility.exe' \ +FILES=('OpenRA.Game.exe' 'OpenRA.Game.exe.config' 'OpenRA.Utility.exe' \ 'OpenRA.Renderer.Sdl2.dll' 'OpenRA.Renderer.Null.dll' \ 'lua' 'glsl' 'mods/common' 'mods/ra' 'mods/cnc' 'mods/d2k' 'mods/modchooser' \ 'AUTHORS' 'COPYING' 'README.html' 'CONTRIBUTING.html' 'DOCUMENTATION.html' 'CHANGELOG.html' \ diff --git a/packaging/windows/OpenRA.nsi b/packaging/windows/OpenRA.nsi index 1b0b16af99..01d41cf295 100644 --- a/packaging/windows/OpenRA.nsi +++ b/packaging/windows/OpenRA.nsi @@ -126,17 +126,6 @@ Section "Game" GAME File "${SRCDIR}\glsl\*.vert" SectionEnd -Section "Editor" EDITOR - SetOutPath "$INSTDIR" - File "${SRCDIR}\OpenRA.Editor.exe" - - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - CreateDirectory "$SMPROGRAMS\$StartMenuFolder" - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\OpenRA Editor.lnk" $OUTDIR\OpenRA.Editor.exe "" \ - "$OUTDIR\OpenRA.Editor.exe" "" "" "" "" - !insertmacro MUI_STARTMENU_WRITE_END -SectionEnd - SectionGroup /e "Settings" Section "Desktop Shortcut" DESKTOPSHORTCUT SetOutPath "$INSTDIR" @@ -200,7 +189,6 @@ Function ${UN}Clean Delete $INSTDIR\OpenRA.Game.exe Delete $INSTDIR\OpenRA.Game.exe.config Delete $INSTDIR\OpenRA.Utility.exe - Delete $INSTDIR\OpenRA.Editor.exe Delete $INSTDIR\OpenRA.Renderer.Null.dll Delete $INSTDIR\OpenRA.Renderer.Sdl2.dll Delete $INSTDIR\ICSharpCode.SharpZipLib.dll @@ -252,8 +240,6 @@ Section "Uninstall" IntCmp $R0 0 gameRunning ${nsProcess::FindProcess} "OpenRA.exe" $R0 IntCmp $R0 0 gameRunning - ${nsProcess::FindProcess} "OpenRA.Editor.exe" $R0 - IntCmp $R0 0 gameRunning ${nsProcess::Unload} Call un.Clean Goto end @@ -267,12 +253,10 @@ SectionEnd ;Section Descriptions ;*************************** LangString DESC_GAME ${LANG_ENGLISH} "OpenRA engine, official mods and dependencies" -LangString DESC_EDITOR ${LANG_ENGLISH} "OpenRA map editor" LangString DESC_DESKTOPSHORTCUT ${LANG_ENGLISH} "Place shortcut on the Desktop." !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${GAME} $(DESC_GAME) - !insertmacro MUI_DESCRIPTION_TEXT ${EDITOR} $(DESC_EDITOR) !insertmacro MUI_DESCRIPTION_TEXT ${DESKTOPSHORTCUT} $(DESC_DESKTOPSHORTCUT) !insertmacro MUI_FUNCTION_DESCRIPTION_END