Added feature to export the selected sectors as an image

This commit is contained in:
biwa 2020-06-17 22:22:00 +02:00
parent 1d9759aedf
commit b5b2979c8d
9 changed files with 1025 additions and 318 deletions

View file

@ -163,6 +163,12 @@
<Compile Include="Interface\FindReplaceForm.Designer.cs">
<DependentUpon>FindReplaceForm.cs</DependentUpon>
</Compile>
<Compile Include="Interface\ImageExportSettingsForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Interface\ImageExportSettingsForm.Designer.cs">
<DependentUpon>ImageExportSettingsForm.cs</DependentUpon>
</Compile>
<Compile Include="Interface\MakeDoorForm.cs">
<SubType>Form</SubType>
</Compile>
@ -187,6 +193,7 @@
<Compile Include="Interface\SlopeArchForm.Designer.cs">
<DependentUpon>SlopeArchForm.cs</DependentUpon>
</Compile>
<Compile Include="IO\ImageExporter.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
@ -202,6 +209,9 @@
<Compile Include="ClassicModes\VerticesMode.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Interface\ImageExportSettingsForm.resx">
<DependentUpon>ImageExportSettingsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Interface\SlopeArchForm.resx">
<DependentUpon>SlopeArchForm.cs</DependentUpon>
</EmbeddedResource>

View file

@ -163,6 +163,12 @@
<Compile Include="Interface\FindReplaceForm.Designer.cs">
<DependentUpon>FindReplaceForm.cs</DependentUpon>
</Compile>
<Compile Include="Interface\ImageExportSettingsForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Interface\ImageExportSettingsForm.Designer.cs">
<DependentUpon>ImageExportSettingsForm.cs</DependentUpon>
</Compile>
<Compile Include="Interface\MakeDoorForm.cs">
<SubType>Form</SubType>
</Compile>
@ -187,6 +193,7 @@
<Compile Include="Interface\SlopeArchForm.Designer.cs">
<DependentUpon>SlopeArchForm.cs</DependentUpon>
</Compile>
<Compile Include="IO\ImageExporter.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
@ -202,6 +209,9 @@
<Compile Include="ClassicModes\VerticesMode.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Interface\ImageExportSettingsForm.resx">
<DependentUpon>ImageExportSettingsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Interface\SlopeArchForm.resx">
<DependentUpon>SlopeArchForm.cs</DependentUpon>
</EmbeddedResource>

View file

@ -818,6 +818,38 @@ namespace CodeImp.DoomBuilder.BuilderModes
}
}
[BeginAction("exporttoimage")]
private void ExportToImage()
{
// Convert geometry selection to sectors
General.Map.Map.ConvertSelection(SelectionType.Sectors);
// Get sectors
ICollection<Sector> sectors = General.Map.Map.SelectedSectorsCount == 0 ? General.Map.Map.Sectors : General.Map.Map.GetSelectedSectors(true);
if (sectors.Count == 0)
{
General.Interface.DisplayStatus(StatusType.Warning, "Image export failed. Map has no sectors!");
return;
}
ImageExporter exporter = new ImageExporter();
ImageExportSettingsForm form = new ImageExportSettingsForm();
if (form.ShowDialog() == DialogResult.OK)
{
ImageExportSettings settings = new ImageExportSettings(Path.GetFileName(form.FilePath), Path.GetDirectoryName(form.FilePath), form.Floor, form.GetPixelFormat(), form.GetImageFormat());
try
{
exporter.Export(sectors, settings);
}
catch(ArgumentException e) // Happens if there's not enough consecutive memory so create the file
{
MessageBox.Show("Exporting failed. There's likely not enough consecutive free memory to create the image. Try a lower color depth or file format", "Export failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
#endregion
}
}

View file

@ -0,0 +1,156 @@
#region ================== Copyright (c) 2020 Boris Iwanski
/*
* This program is free software: you can redistribute it and/or modify
*
* it under the terms of the GNU General Public License as published by
*
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
*
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
*
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program.If not, see<http://www.gnu.org/licenses/>.
*/
#endregion
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CodeImp.DoomBuilder.Geometry;
using CodeImp.DoomBuilder.Map;
using System.Diagnostics;
namespace CodeImp.DoomBuilder.BuilderModes.IO
{
internal struct ImageExportSettings
{
public string Name;
public string Path;
public bool Floor;
public PixelFormat PixelFormat;
public ImageFormat ImageFormat;
public ImageExportSettings(string name, string path, bool floor, PixelFormat pformat, ImageFormat iformat)
{
Name = name;
Path = path;
Floor = floor;
PixelFormat = pformat;
ImageFormat = iformat;
}
}
internal class ImageExporter
{
public void Export(ICollection<Sector> sectors, ImageExportSettings settings)
{
Bitmap bitmap;
Vector2D offset = new Vector2D(double.MaxValue, double.MinValue);
Vector2D size = new Vector2D(double.MinValue, double.MaxValue);
HashSet<Vertex> vertices = new HashSet<Vertex>();
// Find the top left and bottom right corners of the selection
foreach(Sector s in sectors)
{
foreach (Sidedef sd in s.Sidedefs)
{
foreach (Vertex v in new Vertex[] { sd.Line.Start, sd.Line.End })
{
if (v.Position.x < offset.x)
offset.x = v.Position.x;
if (v.Position.x > size.x)
size.x = v.Position.x;
if (v.Position.y > offset.y)
offset.y = v.Position.y;
if (v.Position.y < size.y)
size.y = v.Position.y;
}
}
}
// Right now "size" is the bottom right corener of the selection, so subtract the offset
// (top left corner of the selection). y will always be negative, so make it positive
size -= offset;
size.y *= -1.0;
bitmap = new Bitmap((int)size.x, (int)size.y, settings.PixelFormat);
Graphics g = Graphics.FromImage(bitmap);
g.Clear(Color.Black); // If we don't clear to black we'll see seams where the sectors touch, due to the AA
g.InterpolationMode = InterpolationMode.HighQualityBilinear;
g.CompositingQuality = CompositingQuality.HighQuality;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.SmoothingMode = SmoothingMode.AntiAlias; // Without AA the sector edges will be quite rough
foreach (Sector s in sectors)
{
GraphicsPath p = new GraphicsPath();
float rotation = (float)s.Fields.GetValue("rotationfloor", 0.0);
// If a sector is rotated any offset is on the rotated axes. But we need to offset by
// map coordinates. We'll use this vector to compute that offset
Vector2D rotationvector = Vector2D.FromAngle(Angle2D.DegToRad(rotation) + Angle2D.PIHALF);
// Sectors are triangulated, so draw every triangle
for (int i = 0; i < s.Triangles.Vertices.Count / 3; i++)
{
// The GDI image has the 0/0 coordinate in the top left, so invert the y component
Vector2D v1 = s.Triangles.Vertices[i * 3] - offset; v1.y *= -1.0;
Vector2D v2 = s.Triangles.Vertices[i * 3 + 1] - offset; v2.y *= -1.0;
Vector2D v3 = s.Triangles.Vertices[i * 3 + 2] - offset; v3.y *= -1.0;
p.AddLine((float)v1.x, (float)v1.y, (float)v2.x, (float)v2.y);
p.AddLine((float)v2.x, (float)v2.y, (float)v3.x, (float)v3.y);
p.CloseFigure();
}
Bitmap texture;
if(settings.Floor)
texture = General.Map.Data.GetFlatImage(s.FloorTexture).ExportBitmap();
else
texture = General.Map.Data.GetFlatImage(s.CeilTexture).ExportBitmap();
Vector2D textureoffset = new Vector2D();
textureoffset.x = s.Fields.GetValue("xpanningfloor", 0.0);
textureoffset.y = s.Fields.GetValue("ypanningfloor", 0.0);
// Create the transformation matrix
Matrix matrix = new Matrix();
matrix.Rotate(rotation);
matrix.Translate((float)(-offset.x * rotationvector.x), (float)(offset.x * rotationvector.y)); // Left/right offset from the map origin
matrix.Translate((float)(offset.y * rotationvector.y), (float)(offset.y * rotationvector.x)); // Up/down offset from the map origin
matrix.Translate(-(float)textureoffset.x, -(float)textureoffset.y); // Texture offset
// Create the texture brush and apply the matrix
TextureBrush t = new TextureBrush(texture);
t.Transform = matrix;
// Draw the islands of the sector
g.FillPath(t, p);
}
// Finally save the image
bitmap.Save(Path.Combine(settings.Path, settings.Name), settings.ImageFormat);
}
}
}

View file

@ -0,0 +1,205 @@
namespace CodeImp.DoomBuilder.BuilderModes.Interface
{
partial class ImageExportSettingsForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.tbExportPath = new System.Windows.Forms.TextBox();
this.browse = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.cancel = new System.Windows.Forms.Button();
this.export = new System.Windows.Forms.Button();
this.saveFileDialog = new System.Windows.Forms.SaveFileDialog();
this.cbImageFormat = new System.Windows.Forms.ComboBox();
this.cbPixelFormat = new System.Windows.Forms.ComboBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.rbFloor = new System.Windows.Forms.RadioButton();
this.rbCeiling = new System.Windows.Forms.RadioButton();
this.SuspendLayout();
//
// tbExportPath
//
this.tbExportPath.Location = new System.Drawing.Point(50, 9);
this.tbExportPath.Name = "tbExportPath";
this.tbExportPath.Size = new System.Drawing.Size(344, 20);
this.tbExportPath.TabIndex = 2;
//
// browse
//
this.browse.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Folder;
this.browse.Location = new System.Drawing.Point(400, 7);
this.browse.Name = "browse";
this.browse.Size = new System.Drawing.Size(30, 24);
this.browse.TabIndex = 3;
this.browse.UseVisualStyleBackColor = true;
this.browse.Click += new System.EventHandler(this.browse_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 12);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(32, 13);
this.label1.TabIndex = 4;
this.label1.Text = "Path:";
//
// cancel
//
this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.cancel.Location = new System.Drawing.Point(360, 110);
this.cancel.Name = "cancel";
this.cancel.Size = new System.Drawing.Size(75, 23);
this.cancel.TabIndex = 7;
this.cancel.Text = "Cancel";
this.cancel.UseVisualStyleBackColor = true;
this.cancel.Click += new System.EventHandler(this.cancel_Click);
//
// export
//
this.export.Location = new System.Drawing.Point(279, 110);
this.export.Name = "export";
this.export.Size = new System.Drawing.Size(75, 23);
this.export.TabIndex = 6;
this.export.Text = "Export";
this.export.UseVisualStyleBackColor = true;
this.export.Click += new System.EventHandler(this.export_Click);
//
// saveFileDialog
//
this.saveFileDialog.Filter = "PNG (*.png)|*.png|JPEG (*.jpg)|*.jpg|All files (*.*)|*.*";
//
// cbImageFormat
//
this.cbImageFormat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbImageFormat.FormattingEnabled = true;
this.cbImageFormat.Items.AddRange(new object[] {
"PNG",
"JPG"});
this.cbImageFormat.Location = new System.Drawing.Point(102, 35);
this.cbImageFormat.Name = "cbImageFormat";
this.cbImageFormat.Size = new System.Drawing.Size(71, 21);
this.cbImageFormat.TabIndex = 8;
this.cbImageFormat.SelectedIndexChanged += new System.EventHandler(this.cbImageFormat_SelectedIndexChanged);
//
// cbPixelFormat
//
this.cbPixelFormat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbPixelFormat.FormattingEnabled = true;
this.cbPixelFormat.Items.AddRange(new object[] {
"32 bit",
"24 bit",
"16 bit"});
this.cbPixelFormat.Location = new System.Drawing.Point(102, 62);
this.cbPixelFormat.Name = "cbPixelFormat";
this.cbPixelFormat.Size = new System.Drawing.Size(71, 21);
this.cbPixelFormat.TabIndex = 9;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(12, 38);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(71, 13);
this.label2.TabIndex = 10;
this.label2.Text = "Image format:";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(12, 65);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(64, 13);
this.label3.TabIndex = 11;
this.label3.Text = "Color depth:";
//
// rbFloor
//
this.rbFloor.AutoSize = true;
this.rbFloor.Checked = true;
this.rbFloor.Location = new System.Drawing.Point(227, 38);
this.rbFloor.Name = "rbFloor";
this.rbFloor.Size = new System.Drawing.Size(48, 17);
this.rbFloor.TabIndex = 12;
this.rbFloor.TabStop = true;
this.rbFloor.Text = "Floor";
this.rbFloor.UseVisualStyleBackColor = true;
//
// rbCeiling
//
this.rbCeiling.AutoSize = true;
this.rbCeiling.Location = new System.Drawing.Point(227, 60);
this.rbCeiling.Name = "rbCeiling";
this.rbCeiling.Size = new System.Drawing.Size(56, 17);
this.rbCeiling.TabIndex = 13;
this.rbCeiling.Text = "Ceiling";
this.rbCeiling.UseVisualStyleBackColor = true;
//
// ImageExportSettingsForm
//
this.AcceptButton = this.export;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.cancel;
this.ClientSize = new System.Drawing.Size(447, 145);
this.Controls.Add(this.rbCeiling);
this.Controls.Add(this.rbFloor);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.cbPixelFormat);
this.Controls.Add(this.cbImageFormat);
this.Controls.Add(this.cancel);
this.Controls.Add(this.export);
this.Controls.Add(this.label1);
this.Controls.Add(this.browse);
this.Controls.Add(this.tbExportPath);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "ImageExportSettingsForm";
this.Text = "Image export settings";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button browse;
private System.Windows.Forms.TextBox tbExportPath;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button cancel;
private System.Windows.Forms.Button export;
private System.Windows.Forms.SaveFileDialog saveFileDialog;
private System.Windows.Forms.ComboBox cbImageFormat;
private System.Windows.Forms.ComboBox cbPixelFormat;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.RadioButton rbFloor;
private System.Windows.Forms.RadioButton rbCeiling;
}
}

View file

@ -0,0 +1,150 @@
#region ================== Copyright (c) 2020 Boris Iwanski
/*
* This program is free software: you can redistribute it and/or modify
*
* it under the terms of the GNU General Public License as published by
*
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
*
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
*
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program.If not, see<http://www.gnu.org/licenses/>.
*/
#endregion
using System;
using System.Drawing.Imaging;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CodeImp.DoomBuilder.BuilderModes.Interface
{
public partial class ImageExportSettingsForm : Form
{
#region ================== Properties
public string FilePath { get { return tbExportPath.Text.Trim(); } }
public bool Floor { get { return rbFloor.Checked; } }
#endregion
#region ================== Constructor
public ImageExportSettingsForm()
{
InitializeComponent();
cbImageFormat.SelectedIndex = 0;
cbPixelFormat.SelectedIndex = 0;
string name = Path.GetFileNameWithoutExtension(General.Map.FileTitle) + "_" + General.Map.Options.LevelName + "_" + Path.GetFileNameWithoutExtension(Path.GetRandomFileName());
if (string.IsNullOrEmpty(General.Map.FilePathName))
{
saveFileDialog.FileName = name;
}
else
{
saveFileDialog.InitialDirectory = Path.GetDirectoryName(General.Map.FilePathName);
saveFileDialog.FileName = Path.GetDirectoryName(General.Map.FilePathName) + Path.DirectorySeparatorChar + name + ".png";
tbExportPath.Text = saveFileDialog.FileName;
}
}
#endregion
#region ================== Methods
public ImageFormat GetImageFormat()
{
switch(cbImageFormat.SelectedIndex)
{
case 1: // JPG
return ImageFormat.Jpeg;
default: // PNG
return ImageFormat.Png;
}
}
public PixelFormat GetPixelFormat()
{
switch(cbPixelFormat.SelectedIndex)
{
case 1: // 24 bit
return PixelFormat.Format24bppRgb;
case 2: // 16 bit
return PixelFormat.Format16bppRgb555;
default: // 32 bit
return PixelFormat.Format32bppArgb;
}
}
private void browse_Click(object sender, EventArgs e)
{
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
tbExportPath.Text = saveFileDialog.FileName;
string extension = Path.GetExtension(saveFileDialog.FileName);
switch(extension)
{
case ".jpg":
cbImageFormat.SelectedIndex = 1;
break;
default:
cbImageFormat.SelectedIndex = 0;
break;
}
}
}
#endregion
private void cancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
private void export_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
private void cbImageFormat_SelectedIndexChanged(object sender, EventArgs e)
{
string newextension = "";
switch (cbImageFormat.SelectedIndex)
{
case 1: // JPG
newextension = ".jpg";
break;
default: // PNG
newextension = ".png";
break;
}
tbExportPath.Text = Path.ChangeExtension(tbExportPath.Text, newextension);
}
}
}

View file

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View file

@ -31,11 +31,17 @@ namespace CodeImp.DoomBuilder.BuilderModes
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MenusForm));
this.menustrip = new System.Windows.Forms.MenuStrip();
this.linedefsmenu = new System.Windows.Forms.ToolStripMenuItem();
this.placethingsl = new System.Windows.Forms.ToolStripMenuItem();
this.syncthingeditlinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.selectsinglesideditem = new System.Windows.Forms.ToolStripMenuItem();
this.selectdoublesideditem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator();
this.fliplinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.alignlinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.flipsidedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
this.curvelinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
this.splitlinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.updatelightfogitem = new System.Windows.Forms.ToolStripMenuItem();
@ -45,42 +51,52 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.alignCeilingToFrontItem = new System.Windows.Forms.ToolStripMenuItem();
this.alignCeilingToBackItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
this.selectSimilarLinesItem = new System.Windows.Forms.ToolStripMenuItem();
this.sectorsmenu = new System.Windows.Forms.ToolStripMenuItem();
this.placethingss = new System.Windows.Forms.ToolStripMenuItem();
this.syncthingeditsectorsitem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.joinsectorsitem = new System.Windows.Forms.ToolStripMenuItem();
this.mergesectorsitem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
this.flipsectorlinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.alignsectorlinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
this.makedooritem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.selectSimilarSectors = new System.Windows.Forms.ToolStripMenuItem();
this.thingsmenu = new System.Windows.Forms.ToolStripMenuItem();
this.selectInSectorsItem = new System.Windows.Forms.ToolStripMenuItem();
this.filterSelectionItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.alignToWallItem = new System.Windows.Forms.ToolStripMenuItem();
this.pointAtCursorItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
this.selectSimilarThingsItem = new System.Windows.Forms.ToolStripMenuItem();
this.vertsmenu = new System.Windows.Forms.ToolStripMenuItem();
this.placethingsv = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
this.selectSimilarVertsItem = new System.Windows.Forms.ToolStripMenuItem();
this.globalstrip = new System.Windows.Forms.ToolStrip();
this.manualstrip = new System.Windows.Forms.ToolStrip();
this.seperatorcopypaste = new System.Windows.Forms.ToolStripSeparator();
this.separatorsectors1 = new System.Windows.Forms.ToolStripSeparator();
this.separatorsectors2 = new System.Windows.Forms.ToolStripSeparator();
this.gradientModeMenu = new System.Windows.Forms.ToolStripComboBox();
this.gradientInterpolationMenu = new System.Windows.Forms.ToolStripComboBox();
this.separatorsectors3 = new System.Windows.Forms.ToolStripSeparator();
this.fileMenuStrip = new System.Windows.Forms.MenuStrip();
this.exportStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem();
this.editmenuitem = new System.Windows.Forms.ToolStripMenuItem();
this.separatorcopyprops = new System.Windows.Forms.ToolStripSeparator();
this.viewmenuitem = new System.Windows.Forms.ToolStripMenuItem();
this.buttoncopyproperties = new System.Windows.Forms.ToolStripButton();
this.buttonpasteproperties = new System.Windows.Forms.ToolStripButton();
this.buttonpastepropertiesoptions = new System.Windows.Forms.ToolStripButton();
this.seperatorcopypaste = new System.Windows.Forms.ToolStripSeparator();
this.buttonselectionnumbers = new System.Windows.Forms.ToolStripButton();
this.buttonselectioneffects = new System.Windows.Forms.ToolStripButton();
this.separatorsectors1 = new System.Windows.Forms.ToolStripSeparator();
this.buttonMakeDoor = new System.Windows.Forms.ToolStripButton();
this.separatorsectors2 = new System.Windows.Forms.ToolStripSeparator();
this.buttonbrightnessgradient = new System.Windows.Forms.ToolStripButton();
this.buttonfloorgradient = new System.Windows.Forms.ToolStripButton();
this.buttonceilinggradient = new System.Windows.Forms.ToolStripButton();
this.buttonflipselectionh = new System.Windows.Forms.ToolStripButton();
this.buttonflipselectionv = new System.Windows.Forms.ToolStripButton();
this.buttoncurvelinedefs = new System.Windows.Forms.ToolStripButton();
this.gradientModeMenu = new System.Windows.Forms.ToolStripComboBox();
this.gradientInterpolationMenu = new System.Windows.Forms.ToolStripComboBox();
this.separatorsectors3 = new System.Windows.Forms.ToolStripSeparator();
this.buttonMarqueSelectTouching = new System.Windows.Forms.ToolStripButton();
this.syncthingteditbutton = new System.Windows.Forms.ToolStripButton();
this.buttonAlignThingsToWall = new System.Windows.Forms.ToolStripButton();
@ -88,31 +104,16 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.buttonTextureOffset3DFloorLock = new System.Windows.Forms.ToolStripButton();
this.buttonlightradii = new System.Windows.Forms.ToolStripButton();
this.buttonsoundradii = new System.Windows.Forms.ToolStripButton();
this.placethingsl = new System.Windows.Forms.ToolStripMenuItem();
this.syncthingeditlinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.fliplinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.alignlinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.flipsidedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.curvelinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.selectSimilarLinesItem = new System.Windows.Forms.ToolStripMenuItem();
this.placethingss = new System.Windows.Forms.ToolStripMenuItem();
this.syncthingeditsectorsitem = new System.Windows.Forms.ToolStripMenuItem();
this.joinsectorsitem = new System.Windows.Forms.ToolStripMenuItem();
this.mergesectorsitem = new System.Windows.Forms.ToolStripMenuItem();
this.flipsectorlinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.alignsectorlinedefsitem = new System.Windows.Forms.ToolStripMenuItem();
this.makedooritem = new System.Windows.Forms.ToolStripMenuItem();
this.selectSimilarSectors = new System.Windows.Forms.ToolStripMenuItem();
this.selectInSectorsItem = new System.Windows.Forms.ToolStripMenuItem();
this.filterSelectionItem = new System.Windows.Forms.ToolStripMenuItem();
this.alignToWallItem = new System.Windows.Forms.ToolStripMenuItem();
this.pointAtCursorItem = new System.Windows.Forms.ToolStripMenuItem();
this.selectSimilarThingsItem = new System.Windows.Forms.ToolStripMenuItem();
this.placethingsv = new System.Windows.Forms.ToolStripMenuItem();
this.selectSimilarVertsItem = new System.Windows.Forms.ToolStripMenuItem();
this.fileMenuStrip = new System.Windows.Forms.MenuStrip();
this.exportStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem();
this.selectionToImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.editmenuitem = new System.Windows.Forms.ToolStripMenuItem();
this.separatorcopyprops = new System.Windows.Forms.ToolStripSeparator();
this.itemcopyprops = new System.Windows.Forms.ToolStripMenuItem();
this.itempasteprops = new System.Windows.Forms.ToolStripMenuItem();
this.itempastepropsoptions = new System.Windows.Forms.ToolStripMenuItem();
this.viewmenuitem = new System.Windows.Forms.ToolStripMenuItem();
this.itemlightradii = new System.Windows.Forms.ToolStripMenuItem();
this.itemsoundradii = new System.Windows.Forms.ToolStripMenuItem();
this.menustrip.SuspendLayout();
@ -159,6 +160,28 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.linedefsmenu.Visible = false;
this.linedefsmenu.DropDownOpening += new System.EventHandler(this.linedefsmenu_DropDownOpening);
//
// placethingsl
//
this.placethingsl.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings;
this.placethingsl.Name = "placethingsl";
this.placethingsl.Size = new System.Drawing.Size(223, 22);
this.placethingsl.Tag = "placethings";
this.placethingsl.Text = "&Place Things...";
this.placethingsl.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// syncthingeditlinedefsitem
//
this.syncthingeditlinedefsitem.CheckOnClick = true;
this.syncthingeditlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors;
this.syncthingeditlinedefsitem.Name = "syncthingeditlinedefsitem";
this.syncthingeditlinedefsitem.Size = new System.Drawing.Size(223, 22);
this.syncthingeditlinedefsitem.Tag = "syncedthingedit";
this.syncthingeditlinedefsitem.Text = "&Synchronized Things Editing";
this.syncthingeditlinedefsitem.ToolTipText = "When enabled, selected things will be dragged when dragging linedefs.\r\nRectangula" +
"r selection will also select things (holding Alt while selecting \r\ninverts this " +
"behaviour).";
this.syncthingeditlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
@ -185,11 +208,46 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
this.toolStripMenuItem4.Size = new System.Drawing.Size(220, 6);
//
// fliplinedefsitem
//
this.fliplinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.fliplinedefsitem.Name = "fliplinedefsitem";
this.fliplinedefsitem.Size = new System.Drawing.Size(223, 22);
this.fliplinedefsitem.Tag = "fliplinedefs";
this.fliplinedefsitem.Text = "&Flip Linedefs";
this.fliplinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// alignlinedefsitem
//
this.alignlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.alignlinedefsitem.Name = "alignlinedefsitem";
this.alignlinedefsitem.Size = new System.Drawing.Size(223, 22);
this.alignlinedefsitem.Tag = "alignlinedefs";
this.alignlinedefsitem.Text = "Align &Linedefs";
//
// flipsidedefsitem
//
this.flipsidedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.flipsidedefsitem.Name = "flipsidedefsitem";
this.flipsidedefsitem.Size = new System.Drawing.Size(223, 22);
this.flipsidedefsitem.Tag = "flipsidedefs";
this.flipsidedefsitem.Text = "F&lip Sidedefs";
this.flipsidedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripMenuItem1
//
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
this.toolStripMenuItem1.Size = new System.Drawing.Size(220, 6);
//
// curvelinedefsitem
//
this.curvelinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CurveLines;
this.curvelinedefsitem.Name = "curvelinedefsitem";
this.curvelinedefsitem.Size = new System.Drawing.Size(223, 22);
this.curvelinedefsitem.Tag = "curvelinesmode";
this.curvelinedefsitem.Text = "&Curve Linedefs...";
this.curvelinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripMenuItem3
//
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
@ -259,6 +317,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(220, 6);
//
// selectSimilarLinesItem
//
this.selectSimilarLinesItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
this.selectSimilarLinesItem.Name = "selectSimilarLinesItem";
this.selectSimilarLinesItem.Size = new System.Drawing.Size(223, 22);
this.selectSimilarLinesItem.Tag = "selectsimilar";
this.selectSimilarLinesItem.Text = "Select Similar...";
this.selectSimilarLinesItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// sectorsmenu
//
this.sectorsmenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -279,27 +346,101 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.sectorsmenu.Text = "&Sectors";
this.sectorsmenu.Visible = false;
//
// placethingss
//
this.placethingss.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings;
this.placethingss.Name = "placethingss";
this.placethingss.Size = new System.Drawing.Size(223, 22);
this.placethingss.Tag = "placethings";
this.placethingss.Text = "&Place Things...";
this.placethingss.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// syncthingeditsectorsitem
//
this.syncthingeditsectorsitem.CheckOnClick = true;
this.syncthingeditsectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors;
this.syncthingeditsectorsitem.Name = "syncthingeditsectorsitem";
this.syncthingeditsectorsitem.Size = new System.Drawing.Size(223, 22);
this.syncthingeditsectorsitem.Tag = "syncedthingedit";
this.syncthingeditsectorsitem.Text = "&Synchronized Things Editing";
this.syncthingeditsectorsitem.ToolTipText = resources.GetString("syncthingeditsectorsitem.ToolTipText");
this.syncthingeditsectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(220, 6);
//
// joinsectorsitem
//
this.joinsectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Join;
this.joinsectorsitem.Name = "joinsectorsitem";
this.joinsectorsitem.Size = new System.Drawing.Size(223, 22);
this.joinsectorsitem.Tag = "joinsectors";
this.joinsectorsitem.Text = "&Join Sectors";
this.joinsectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// mergesectorsitem
//
this.mergesectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Merge;
this.mergesectorsitem.Name = "mergesectorsitem";
this.mergesectorsitem.Size = new System.Drawing.Size(223, 22);
this.mergesectorsitem.Tag = "mergesectors";
this.mergesectorsitem.Text = "&Merge Sectors";
this.mergesectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripMenuItem2
//
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
this.toolStripMenuItem2.Size = new System.Drawing.Size(220, 6);
//
// flipsectorlinedefsitem
//
this.flipsectorlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.flipsectorlinedefsitem.Name = "flipsectorlinedefsitem";
this.flipsectorlinedefsitem.Size = new System.Drawing.Size(223, 22);
this.flipsectorlinedefsitem.Tag = "fliplinedefs";
this.flipsectorlinedefsitem.Text = "&Flip Linedefs";
this.flipsectorlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// alignsectorlinedefsitem
//
this.alignsectorlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.alignsectorlinedefsitem.Name = "alignsectorlinedefsitem";
this.alignsectorlinedefsitem.Size = new System.Drawing.Size(223, 22);
this.alignsectorlinedefsitem.Tag = "alignlinedefs";
this.alignsectorlinedefsitem.Text = "Align &Linedefs";
this.alignsectorlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripSeparator8
//
this.toolStripSeparator8.Name = "toolStripSeparator8";
this.toolStripSeparator8.Size = new System.Drawing.Size(220, 6);
//
// makedooritem
//
this.makedooritem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Door;
this.makedooritem.Name = "makedooritem";
this.makedooritem.Size = new System.Drawing.Size(223, 22);
this.makedooritem.Tag = "makedoor";
this.makedooritem.Text = "Make &Door";
this.makedooritem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripSeparator4
//
this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(220, 6);
this.toolStripSeparator4.Visible = false;
//
// selectSimilarSectors
//
this.selectSimilarSectors.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
this.selectSimilarSectors.Name = "selectSimilarSectors";
this.selectSimilarSectors.Size = new System.Drawing.Size(223, 22);
this.selectSimilarSectors.Tag = "selectsimilar";
this.selectSimilarSectors.Text = "Select Similar...";
this.selectSimilarSectors.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// thingsmenu
//
this.thingsmenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -315,16 +456,61 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.thingsmenu.Text = "Things";
this.thingsmenu.Visible = false;
//
// selectInSectorsItem
//
this.selectInSectorsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors;
this.selectInSectorsItem.Name = "selectInSectorsItem";
this.selectInSectorsItem.Size = new System.Drawing.Size(244, 22);
this.selectInSectorsItem.Tag = "thingsselectinsectors";
this.selectInSectorsItem.Text = "&Select Things in Selected Sectors";
this.selectInSectorsItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// filterSelectionItem
//
this.filterSelectionItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.FilterThings;
this.filterSelectionItem.Name = "filterSelectionItem";
this.filterSelectionItem.Size = new System.Drawing.Size(244, 22);
this.filterSelectionItem.Tag = "filterselectedthings";
this.filterSelectionItem.Text = "Filter Selection...";
this.filterSelectionItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(241, 6);
//
// alignToWallItem
//
this.alignToWallItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.AlignThings;
this.alignToWallItem.Name = "alignToWallItem";
this.alignToWallItem.Size = new System.Drawing.Size(244, 22);
this.alignToWallItem.Tag = "thingaligntowall";
this.alignToWallItem.Text = "&Align Things to Nearest Linedef";
this.alignToWallItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// pointAtCursorItem
//
this.pointAtCursorItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.ThingPointAtCursor;
this.pointAtCursorItem.Name = "pointAtCursorItem";
this.pointAtCursorItem.Size = new System.Drawing.Size(244, 22);
this.pointAtCursorItem.Tag = "thinglookatcursor";
this.pointAtCursorItem.Text = "&Point to Cursor";
this.pointAtCursorItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripSeparator6
//
this.toolStripSeparator6.Name = "toolStripSeparator6";
this.toolStripSeparator6.Size = new System.Drawing.Size(241, 6);
//
// selectSimilarThingsItem
//
this.selectSimilarThingsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
this.selectSimilarThingsItem.Name = "selectSimilarThingsItem";
this.selectSimilarThingsItem.Size = new System.Drawing.Size(244, 22);
this.selectSimilarThingsItem.Tag = "selectsimilar";
this.selectSimilarThingsItem.Text = "Select Similar...";
this.selectSimilarThingsItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// vertsmenu
//
this.vertsmenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -336,11 +522,29 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.vertsmenu.Text = "Vertices";
this.vertsmenu.Visible = false;
//
// placethingsv
//
this.placethingsv.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings;
this.placethingsv.Name = "placethingsv";
this.placethingsv.Size = new System.Drawing.Size(153, 22);
this.placethingsv.Tag = "placethings";
this.placethingsv.Text = "&Place Things...";
this.placethingsv.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripSeparator7
//
this.toolStripSeparator7.Name = "toolStripSeparator7";
this.toolStripSeparator7.Size = new System.Drawing.Size(150, 6);
//
// selectSimilarVertsItem
//
this.selectSimilarVertsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
this.selectSimilarVertsItem.Name = "selectSimilarVertsItem";
this.selectSimilarVertsItem.Size = new System.Drawing.Size(153, 22);
this.selectSimilarVertsItem.Tag = "selectsimilar";
this.selectSimilarVertsItem.Text = "Select Similar...";
this.selectSimilarVertsItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// globalstrip
//
this.globalstrip.Location = new System.Drawing.Point(0, 48);
@ -383,99 +587,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.manualstrip.TabIndex = 2;
this.manualstrip.Text = "toolStrip1";
//
// seperatorcopypaste
//
this.seperatorcopypaste.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
this.seperatorcopypaste.Name = "seperatorcopypaste";
this.seperatorcopypaste.Size = new System.Drawing.Size(6, 25);
//
// separatorsectors1
//
this.separatorsectors1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
this.separatorsectors1.Name = "separatorsectors1";
this.separatorsectors1.Size = new System.Drawing.Size(6, 25);
//
// separatorsectors2
//
this.separatorsectors2.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
this.separatorsectors2.Name = "separatorsectors2";
this.separatorsectors2.Size = new System.Drawing.Size(6, 25);
//
// gradientModeMenu
//
this.gradientModeMenu.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.gradientModeMenu.Name = "gradientModeMenu";
this.gradientModeMenu.Size = new System.Drawing.Size(144, 25);
this.gradientModeMenu.ToolTipText = "Brightness Gradient Target";
this.gradientModeMenu.DropDownClosed += new System.EventHandler(this.gradientMode_DropDownClosed);
//
// gradientInterpolationMenu
//
this.gradientInterpolationMenu.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.gradientInterpolationMenu.Name = "gradientInterpolationMenu";
this.gradientInterpolationMenu.Size = new System.Drawing.Size(108, 25);
this.gradientInterpolationMenu.ToolTipText = "Brightness and Height Gradient Interpolation Mode";
this.gradientInterpolationMenu.DropDownClosed += new System.EventHandler(this.gradientMode_DropDownClosed);
//
// separatorsectors3
//
this.separatorsectors3.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
this.separatorsectors3.Name = "separatorsectors3";
this.separatorsectors3.Size = new System.Drawing.Size(6, 25);
//
// fileMenuStrip
//
this.fileMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.exportStripMenuItem,
this.editmenuitem,
this.viewmenuitem});
this.fileMenuStrip.Location = new System.Drawing.Point(0, 0);
this.fileMenuStrip.Name = "fileMenuStrip";
this.fileMenuStrip.Size = new System.Drawing.Size(794, 24);
this.fileMenuStrip.TabIndex = 3;
this.fileMenuStrip.Text = "menuStrip1";
//
// exportStripMenuItem
//
this.exportStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripMenuItem5});
this.exportStripMenuItem.Name = "exportStripMenuItem";
this.exportStripMenuItem.Size = new System.Drawing.Size(53, 20);
this.exportStripMenuItem.Text = "Export";
//
// toolStripMenuItem5
//
this.toolStripMenuItem5.Name = "toolStripMenuItem5";
this.toolStripMenuItem5.Size = new System.Drawing.Size(226, 22);
this.toolStripMenuItem5.Tag = "exporttoobj";
this.toolStripMenuItem5.Text = "Selection to Wavefront .obj...";
this.toolStripMenuItem5.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// editmenuitem
//
this.editmenuitem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.separatorcopyprops,
this.itemcopyprops,
this.itempasteprops,
this.itempastepropsoptions});
this.editmenuitem.Name = "editmenuitem";
this.editmenuitem.Size = new System.Drawing.Size(39, 20);
this.editmenuitem.Text = "Edit";
//
// separatorcopyprops
//
this.separatorcopyprops.Name = "separatorcopyprops";
this.separatorcopyprops.Size = new System.Drawing.Size(204, 6);
//
// viewmenuitem
//
this.viewmenuitem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.itemlightradii,
this.itemsoundradii});
this.viewmenuitem.Name = "viewmenuitem";
this.viewmenuitem.Size = new System.Drawing.Size(44, 20);
this.viewmenuitem.Text = "View";
//
// buttoncopyproperties
//
this.buttoncopyproperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
@ -510,6 +621,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.buttonpastepropertiesoptions.TextAlign = System.Drawing.ContentAlignment.TopRight;
this.buttonpastepropertiesoptions.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// seperatorcopypaste
//
this.seperatorcopypaste.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
this.seperatorcopypaste.Name = "seperatorcopypaste";
this.seperatorcopypaste.Size = new System.Drawing.Size(6, 25);
//
// buttonselectionnumbers
//
this.buttonselectionnumbers.CheckOnClick = true;
@ -532,6 +649,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.buttonselectioneffects.Text = "View Tags and Effects";
this.buttonselectioneffects.Click += new System.EventHandler(this.buttonselectioneffects_Click);
//
// separatorsectors1
//
this.separatorsectors1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
this.separatorsectors1.Name = "separatorsectors1";
this.separatorsectors1.Size = new System.Drawing.Size(6, 25);
//
// buttonMakeDoor
//
this.buttonMakeDoor.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
@ -543,6 +666,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.buttonMakeDoor.Text = "Make Door From Selection";
this.buttonMakeDoor.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// separatorsectors2
//
this.separatorsectors2.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
this.separatorsectors2.Name = "separatorsectors2";
this.separatorsectors2.Size = new System.Drawing.Size(6, 25);
//
// buttonbrightnessgradient
//
this.buttonbrightnessgradient.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
@ -609,6 +738,28 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.buttoncurvelinedefs.Text = "Curve Linedefs";
this.buttoncurvelinedefs.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// gradientModeMenu
//
this.gradientModeMenu.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.gradientModeMenu.Name = "gradientModeMenu";
this.gradientModeMenu.Size = new System.Drawing.Size(144, 25);
this.gradientModeMenu.ToolTipText = "Brightness Gradient Target";
this.gradientModeMenu.DropDownClosed += new System.EventHandler(this.gradientMode_DropDownClosed);
//
// gradientInterpolationMenu
//
this.gradientInterpolationMenu.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.gradientInterpolationMenu.Name = "gradientInterpolationMenu";
this.gradientInterpolationMenu.Size = new System.Drawing.Size(108, 25);
this.gradientInterpolationMenu.ToolTipText = "Brightness and Height Gradient Interpolation Mode";
this.gradientInterpolationMenu.DropDownClosed += new System.EventHandler(this.gradientMode_DropDownClosed);
//
// separatorsectors3
//
this.separatorsectors3.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
this.separatorsectors3.Name = "separatorsectors3";
this.separatorsectors3.Size = new System.Drawing.Size(6, 25);
//
// buttonMarqueSelectTouching
//
this.buttonMarqueSelectTouching.CheckOnClick = true;
@ -691,208 +842,58 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.buttonsoundradii.Text = "Ambient Sound Radii";
this.buttonsoundradii.Click += new System.EventHandler(this.buttonsoundradii_Click);
//
// placethingsl
// fileMenuStrip
//
this.placethingsl.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings;
this.placethingsl.Name = "placethingsl";
this.placethingsl.Size = new System.Drawing.Size(223, 22);
this.placethingsl.Tag = "placethings";
this.placethingsl.Text = "&Place Things...";
this.placethingsl.Click += new System.EventHandler(this.InvokeTaggedAction);
this.fileMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.exportStripMenuItem,
this.editmenuitem,
this.viewmenuitem});
this.fileMenuStrip.Location = new System.Drawing.Point(0, 0);
this.fileMenuStrip.Name = "fileMenuStrip";
this.fileMenuStrip.Size = new System.Drawing.Size(794, 24);
this.fileMenuStrip.TabIndex = 3;
this.fileMenuStrip.Text = "menuStrip1";
//
// syncthingeditlinedefsitem
// exportStripMenuItem
//
this.syncthingeditlinedefsitem.CheckOnClick = true;
this.syncthingeditlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors;
this.syncthingeditlinedefsitem.Name = "syncthingeditlinedefsitem";
this.syncthingeditlinedefsitem.Size = new System.Drawing.Size(223, 22);
this.syncthingeditlinedefsitem.Tag = "syncedthingedit";
this.syncthingeditlinedefsitem.Text = "&Synchronized Things Editing";
this.syncthingeditlinedefsitem.ToolTipText = "When enabled, selected things will be dragged when dragging linedefs.\r\nRectangula" +
"r selection will also select things (holding Alt while selecting \r\ninverts this " +
"behaviour).";
this.syncthingeditlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
this.exportStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripMenuItem5,
this.selectionToImageToolStripMenuItem});
this.exportStripMenuItem.Name = "exportStripMenuItem";
this.exportStripMenuItem.Size = new System.Drawing.Size(53, 20);
this.exportStripMenuItem.Text = "Export";
//
// fliplinedefsitem
// toolStripMenuItem5
//
this.fliplinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.fliplinedefsitem.Name = "fliplinedefsitem";
this.fliplinedefsitem.Size = new System.Drawing.Size(223, 22);
this.fliplinedefsitem.Tag = "fliplinedefs";
this.fliplinedefsitem.Text = "&Flip Linedefs";
this.fliplinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
this.toolStripMenuItem5.Name = "toolStripMenuItem5";
this.toolStripMenuItem5.Size = new System.Drawing.Size(226, 22);
this.toolStripMenuItem5.Tag = "exporttoobj";
this.toolStripMenuItem5.Text = "Selection to Wavefront .obj...";
this.toolStripMenuItem5.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// alignlinedefsitem
// selectionToImageToolStripMenuItem
//
this.alignlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.alignlinedefsitem.Name = "alignlinedefsitem";
this.alignlinedefsitem.Size = new System.Drawing.Size(223, 22);
this.alignlinedefsitem.Tag = "alignlinedefs";
this.alignlinedefsitem.Text = "Align &Linedefs";
this.selectionToImageToolStripMenuItem.Name = "selectionToImageToolStripMenuItem";
this.selectionToImageToolStripMenuItem.Size = new System.Drawing.Size(226, 22);
this.selectionToImageToolStripMenuItem.Tag = "exporttoimage";
this.selectionToImageToolStripMenuItem.Text = "Selection to image";
this.selectionToImageToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// flipsidedefsitem
// editmenuitem
//
this.flipsidedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.flipsidedefsitem.Name = "flipsidedefsitem";
this.flipsidedefsitem.Size = new System.Drawing.Size(223, 22);
this.flipsidedefsitem.Tag = "flipsidedefs";
this.flipsidedefsitem.Text = "F&lip Sidedefs";
this.flipsidedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
this.editmenuitem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.separatorcopyprops,
this.itemcopyprops,
this.itempasteprops,
this.itempastepropsoptions});
this.editmenuitem.Name = "editmenuitem";
this.editmenuitem.Size = new System.Drawing.Size(39, 20);
this.editmenuitem.Text = "Edit";
//
// curvelinedefsitem
// separatorcopyprops
//
this.curvelinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CurveLines;
this.curvelinedefsitem.Name = "curvelinedefsitem";
this.curvelinedefsitem.Size = new System.Drawing.Size(223, 22);
this.curvelinedefsitem.Tag = "curvelinesmode";
this.curvelinedefsitem.Text = "&Curve Linedefs...";
this.curvelinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// selectSimilarLinesItem
//
this.selectSimilarLinesItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
this.selectSimilarLinesItem.Name = "selectSimilarLinesItem";
this.selectSimilarLinesItem.Size = new System.Drawing.Size(223, 22);
this.selectSimilarLinesItem.Tag = "selectsimilar";
this.selectSimilarLinesItem.Text = "Select Similar...";
this.selectSimilarLinesItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// placethingss
//
this.placethingss.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings;
this.placethingss.Name = "placethingss";
this.placethingss.Size = new System.Drawing.Size(223, 22);
this.placethingss.Tag = "placethings";
this.placethingss.Text = "&Place Things...";
this.placethingss.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// syncthingeditsectorsitem
//
this.syncthingeditsectorsitem.CheckOnClick = true;
this.syncthingeditsectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors;
this.syncthingeditsectorsitem.Name = "syncthingeditsectorsitem";
this.syncthingeditsectorsitem.Size = new System.Drawing.Size(223, 22);
this.syncthingeditsectorsitem.Tag = "syncedthingedit";
this.syncthingeditsectorsitem.Text = "&Synchronized Things Editing";
this.syncthingeditsectorsitem.ToolTipText = resources.GetString("syncthingeditsectorsitem.ToolTipText");
this.syncthingeditsectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// joinsectorsitem
//
this.joinsectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Join;
this.joinsectorsitem.Name = "joinsectorsitem";
this.joinsectorsitem.Size = new System.Drawing.Size(223, 22);
this.joinsectorsitem.Tag = "joinsectors";
this.joinsectorsitem.Text = "&Join Sectors";
this.joinsectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// mergesectorsitem
//
this.mergesectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Merge;
this.mergesectorsitem.Name = "mergesectorsitem";
this.mergesectorsitem.Size = new System.Drawing.Size(223, 22);
this.mergesectorsitem.Tag = "mergesectors";
this.mergesectorsitem.Text = "&Merge Sectors";
this.mergesectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// flipsectorlinedefsitem
//
this.flipsectorlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.flipsectorlinedefsitem.Name = "flipsectorlinedefsitem";
this.flipsectorlinedefsitem.Size = new System.Drawing.Size(223, 22);
this.flipsectorlinedefsitem.Tag = "fliplinedefs";
this.flipsectorlinedefsitem.Text = "&Flip Linedefs";
this.flipsectorlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// alignsectorlinedefsitem
//
this.alignsectorlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.alignsectorlinedefsitem.Name = "alignsectorlinedefsitem";
this.alignsectorlinedefsitem.Size = new System.Drawing.Size(223, 22);
this.alignsectorlinedefsitem.Tag = "alignlinedefs";
this.alignsectorlinedefsitem.Text = "Align &Linedefs";
this.alignsectorlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// makedooritem
//
this.makedooritem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Door;
this.makedooritem.Name = "makedooritem";
this.makedooritem.Size = new System.Drawing.Size(223, 22);
this.makedooritem.Tag = "makedoor";
this.makedooritem.Text = "Make &Door";
this.makedooritem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// selectSimilarSectors
//
this.selectSimilarSectors.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
this.selectSimilarSectors.Name = "selectSimilarSectors";
this.selectSimilarSectors.Size = new System.Drawing.Size(223, 22);
this.selectSimilarSectors.Tag = "selectsimilar";
this.selectSimilarSectors.Text = "Select Similar...";
this.selectSimilarSectors.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// selectInSectorsItem
//
this.selectInSectorsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors;
this.selectInSectorsItem.Name = "selectInSectorsItem";
this.selectInSectorsItem.Size = new System.Drawing.Size(244, 22);
this.selectInSectorsItem.Tag = "thingsselectinsectors";
this.selectInSectorsItem.Text = "&Select Things in Selected Sectors";
this.selectInSectorsItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// filterSelectionItem
//
this.filterSelectionItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.FilterThings;
this.filterSelectionItem.Name = "filterSelectionItem";
this.filterSelectionItem.Size = new System.Drawing.Size(244, 22);
this.filterSelectionItem.Tag = "filterselectedthings";
this.filterSelectionItem.Text = "Filter Selection...";
this.filterSelectionItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// alignToWallItem
//
this.alignToWallItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.AlignThings;
this.alignToWallItem.Name = "alignToWallItem";
this.alignToWallItem.Size = new System.Drawing.Size(244, 22);
this.alignToWallItem.Tag = "thingaligntowall";
this.alignToWallItem.Text = "&Align Things to Nearest Linedef";
this.alignToWallItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// pointAtCursorItem
//
this.pointAtCursorItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.ThingPointAtCursor;
this.pointAtCursorItem.Name = "pointAtCursorItem";
this.pointAtCursorItem.Size = new System.Drawing.Size(244, 22);
this.pointAtCursorItem.Tag = "thinglookatcursor";
this.pointAtCursorItem.Text = "&Point to Cursor";
this.pointAtCursorItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// selectSimilarThingsItem
//
this.selectSimilarThingsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
this.selectSimilarThingsItem.Name = "selectSimilarThingsItem";
this.selectSimilarThingsItem.Size = new System.Drawing.Size(244, 22);
this.selectSimilarThingsItem.Tag = "selectsimilar";
this.selectSimilarThingsItem.Text = "Select Similar...";
this.selectSimilarThingsItem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// placethingsv
//
this.placethingsv.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings;
this.placethingsv.Name = "placethingsv";
this.placethingsv.Size = new System.Drawing.Size(153, 22);
this.placethingsv.Tag = "placethings";
this.placethingsv.Text = "&Place Things...";
this.placethingsv.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// selectSimilarVertsItem
//
this.selectSimilarVertsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
this.selectSimilarVertsItem.Name = "selectSimilarVertsItem";
this.selectSimilarVertsItem.Size = new System.Drawing.Size(153, 22);
this.selectSimilarVertsItem.Tag = "selectsimilar";
this.selectSimilarVertsItem.Text = "Select Similar...";
this.selectSimilarVertsItem.Click += new System.EventHandler(this.InvokeTaggedAction);
this.separatorcopyprops.Name = "separatorcopyprops";
this.separatorcopyprops.Size = new System.Drawing.Size(204, 6);
//
// itemcopyprops
//
@ -921,6 +922,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.itempastepropsoptions.Text = "Paste Properties Special...";
this.itempastepropsoptions.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// viewmenuitem
//
this.viewmenuitem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.itemlightradii,
this.itemsoundradii});
this.viewmenuitem.Name = "viewmenuitem";
this.viewmenuitem.Size = new System.Drawing.Size(44, 20);
this.viewmenuitem.Text = "View";
//
// itemlightradii
//
this.itemlightradii.CheckOnClick = true;
@ -1055,5 +1065,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
private System.Windows.Forms.ToolStripMenuItem itemlightradii;
private System.Windows.Forms.ToolStripMenuItem itemsoundradii;
private System.Windows.Forms.ToolStripButton buttonTextureOffset3DFloorLock;
private System.Windows.Forms.ToolStripMenuItem selectionToImageToolStripMenuItem;
}
}

View file

@ -1372,6 +1372,16 @@ exporttoobj
allowscroll = false;
}
exporttoimage
{
title = "Export to image";
category = "tools";
description = "Exports selected sectors (or the whole map if no sectors selected) to an image";
allowkeys = true;
allowmouse = false;
allowscroll = false;
}
flooralignmode
{
title = "Floor Align Mode";