Added emergency map backup system (EMBS). When the editor crashes, it will try to export a backup copy of the map structures. When the same map is loaded again, it will ask the user if he wants to restore the map.

High-DPI: fixed many issues with incorrect controls size (Tag selector width, Comment Editor size, icons size, tabs size etc.).
Cosmetic: changed map geometry dragging undo messages to more descriptive ones.
Fixed, Textures Browser, cosmetic: "Show textures in subdirectories" checkbox should be repositioned when "Long texture names" one is invisible.
Updated ZDoom_DECORATE.cfg (added A_SetFloatSpeed + a couple of fixes).
This commit is contained in:
MaxED 2015-09-25 13:20:53 +00:00
parent c3800fcf9c
commit dc840605aa
49 changed files with 679 additions and 631 deletions

View file

@ -166,16 +166,17 @@ keywords
A_Respawn = "A_Respawn[(int flags = RSF_FOG)]\nflags: RSF flags";
A_ScaleVelocity = "A_ScaleVelocity(float scale[, int pointer = AAPTR_DEFAULT])";
A_ScreamAndUnblock = "A_ScreamAndUnblock";
A_SetAngle = "A_SetAngle(float angle[, int flags = 0[, int pointer = AAPTR_DEFAULT]])\nangle: the actor\"s new angle, in degrees.\nflags: SPF flags.";
A_SetAngle = "A_SetAngle(float angle[, int flags = 0[, int pointer = AAPTR_DEFAULT]])\nangle: the actor's new angle, in degrees.\nflags: SPF flags.";
A_SetArg = "A_SetArg(int position, int value)";
A_SetDamageType = "A_SetDamageType(str damagetype)";
A_SetFloat = "A_SetFloat";
A_SetFloatSpeed = "A_SetFloatSpeed(float speed[, int pointer = AAPTR_DEFAULT])";
A_FloatBobPhase = "A_FloatBobPhase(int bob)\nChanges the calling actor's FloatBobPhase to bob, which takes a number from 0 to 63.\nIf the number is invalid or not in range, the function does nothing.";
A_SetFloorClip = "A_SetFloorClip";
A_SetHealth = "A_SetHealth(int health[, int pointer = AAPTR_DEFAULT])\nhealth: The health value to set for the actor. Valid values are 1 and above.\npointer: The actor to set its health. Default is AAPTR_DEFAULT, which corresponds to the calling actor.";
A_SetInvulnerable = "A_SetInvulnerable";
A_SetMass = "A_SetMass(int mass)";
A_SetPitch = "A_SetPitch(float pitch[, int flags = 0[, int pointer = AAPTR_DEFAULT]])\npitch: The actor\"s new pitch, in degrees.\nflags: SPF flags.";
A_SetPitch = "A_SetPitch(float pitch[, int flags = 0[, int pointer = AAPTR_DEFAULT]])\npitch: The actor's new pitch, in degrees.\nflags: SPF flags.";
A_SetReflective = "A_SetReflective";
A_SetReflectiveInvulnerable = "A_SetReflectiveInvulnerable";
A_SetScale = "A_SetScale(float scaleX[, float scaleY = scaleX[, int pointer = AAPTR_DEFAULT]])";

View file

@ -39,7 +39,7 @@
<OutputPath>..\..\Build\</OutputPath>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Optimize>true</Optimize>
<DebugType>none</DebugType>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
@ -47,6 +47,7 @@
<DefineConstants>
</DefineConstants>
<WarningLevel>3</WarningLevel>
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug + Profiler|x86' ">
<DebugSymbols>true</DebugSymbols>

View file

@ -7,7 +7,7 @@ namespace CodeImp.DoomBuilder.Controls
{
public class CheckedColoredListBox : CheckedListBox
{
public Image WarningIcon { private get; set; }
public Image WarningIcon { get; set; }
public CheckedColoredListBox()
{

View file

@ -39,9 +39,6 @@
//
// textbox
//
this.textbox.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.textbox.Location = new System.Drawing.Point(3, 29);
this.textbox.Multiline = true;
this.textbox.Name = "textbox";
@ -56,7 +53,6 @@
//
// clear
//
this.clear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.clear.Image = global::CodeImp.DoomBuilder.Properties.Resources.Clear;
this.clear.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.clear.Location = new System.Drawing.Point(424, 2);
@ -156,14 +152,15 @@
//
// CommentEditor
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.clear);
this.Controls.Add(this.panel1);
this.Controls.Add(this.label1);
this.Controls.Add(this.textbox);
this.Name = "CommentEditor";
this.Size = new System.Drawing.Size(487, 300);
this.Resize += new System.EventHandler(this.CommentEditor_Resize);
this.panel1.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();

View file

@ -136,6 +136,14 @@ namespace CodeImp.DoomBuilder.Controls
if(e.KeyCode == Keys.Enter) e.IsInputKey = true;
}
//mxd. Because anchor-based alignment fails when using high-Dpi settings...
private void CommentEditor_Resize(object sender, EventArgs e)
{
clear.Left = this.Width - clear.Margin.Right - clear.Width;
textbox.Width = this.Width - textbox.Left - textbox.Margin.Right;
textbox.Height = this.Height - textbox.Top - textbox.Margin.Bottom;
}
#endregion
}
}

View file

@ -67,7 +67,6 @@
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tabs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tabs.ItemSize = new System.Drawing.Size(100, 26);
this.tabs.Location = new System.Drawing.Point(0, 18);
this.tabs.Margin = new System.Windows.Forms.Padding(0);
this.tabs.Multiline = true;

View file

@ -119,7 +119,7 @@ namespace CodeImp.DoomBuilder.Controls
// showsubdirtextures
//
this.showsubdirtextures.AutoSize = true;
this.showsubdirtextures.Location = new System.Drawing.Point(595, 9);
this.showsubdirtextures.Location = new System.Drawing.Point(595, 8);
this.showsubdirtextures.Name = "showsubdirtextures";
this.showsubdirtextures.Size = new System.Drawing.Size(172, 17);
this.showsubdirtextures.TabIndex = 0;
@ -131,7 +131,7 @@ namespace CodeImp.DoomBuilder.Controls
// longtexturenames
//
this.longtexturenames.AutoSize = true;
this.longtexturenames.Location = new System.Drawing.Point(470, 9);
this.longtexturenames.Location = new System.Drawing.Point(470, 8);
this.longtexturenames.Name = "longtexturenames";
this.longtexturenames.Size = new System.Drawing.Size(119, 17);
this.longtexturenames.TabIndex = 0;

View file

@ -142,11 +142,14 @@ namespace CodeImp.DoomBuilder.Controls
//mxd. Use long texture names?
longtexturenames.Checked = (uselongtexturenames && General.Map.Config.UseLongTextureNames);
longtexturenames.Visible = General.Map.Config.UseLongTextureNames;
if(!General.Map.Config.UseLongTextureNames)
showsubdirtextures.Left = longtexturenames.Left; //mxd
}
else
{
longtexturenames.Visible = false; //mxd
uselongtexturenames = false; //mxd
showsubdirtextures.Left = longtexturenames.Left; //mxd
}
//mxd

View file

@ -29,8 +29,6 @@ namespace CodeImp.DoomBuilder.Controls
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.SplitContainer buttonsbar2;
System.Windows.Forms.SplitContainer buttonsbar1;
System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem(new string[] {
"C:\\Windows\\Doom\\Doom2.wad"}, 3, System.Drawing.SystemColors.GrayText, System.Drawing.SystemColors.Window, null);
System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem(new string[] {
@ -40,7 +38,6 @@ namespace CodeImp.DoomBuilder.Controls
this.editresource = new System.Windows.Forms.Button();
this.deleteresources = new System.Windows.Forms.Button();
this.addresource = new System.Windows.Forms.Button();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.resourceitems = new CodeImp.DoomBuilder.Controls.ResourceListView();
this.column = new System.Windows.Forms.ColumnHeader();
this.copypastemenu = new System.Windows.Forms.ContextMenuStrip(this.components);
@ -52,43 +49,13 @@ namespace CodeImp.DoomBuilder.Controls
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.removeresources = new System.Windows.Forms.ToolStripMenuItem();
this.images = new System.Windows.Forms.ImageList(this.components);
buttonsbar2 = new System.Windows.Forms.SplitContainer();
buttonsbar1 = new System.Windows.Forms.SplitContainer();
buttonsbar2.Panel1.SuspendLayout();
buttonsbar2.Panel2.SuspendLayout();
buttonsbar2.SuspendLayout();
buttonsbar1.Panel1.SuspendLayout();
buttonsbar1.Panel2.SuspendLayout();
buttonsbar1.SuspendLayout();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.copypastemenu.SuspendLayout();
this.SuspendLayout();
//
// buttonsbar2
//
buttonsbar2.Dock = System.Windows.Forms.DockStyle.Fill;
buttonsbar2.IsSplitterFixed = true;
buttonsbar2.Location = new System.Drawing.Point(0, 0);
buttonsbar2.Name = "buttonsbar2";
//
// buttonsbar2.Panel1
//
buttonsbar2.Panel1.Controls.Add(this.editresource);
//
// buttonsbar2.Panel2
//
buttonsbar2.Panel2.Controls.Add(this.deleteresources);
buttonsbar2.Size = new System.Drawing.Size(228, 24);
buttonsbar2.SplitterDistance = 136;
buttonsbar2.TabIndex = 0;
//
// editresource
//
this.editresource.Dock = System.Windows.Forms.DockStyle.Fill;
this.editresource.Enabled = false;
this.editresource.Location = new System.Drawing.Point(0, 0);
this.editresource.Location = new System.Drawing.Point(122, 140);
this.editresource.Name = "editresource";
this.editresource.Size = new System.Drawing.Size(136, 24);
this.editresource.TabIndex = 0;
@ -98,9 +65,8 @@ namespace CodeImp.DoomBuilder.Controls
//
// deleteresources
//
this.deleteresources.Dock = System.Windows.Forms.DockStyle.Fill;
this.deleteresources.Enabled = false;
this.deleteresources.Location = new System.Drawing.Point(0, 0);
this.deleteresources.Location = new System.Drawing.Point(259, 140);
this.deleteresources.Name = "deleteresources";
this.deleteresources.Size = new System.Drawing.Size(88, 24);
this.deleteresources.TabIndex = 0;
@ -108,28 +74,9 @@ namespace CodeImp.DoomBuilder.Controls
this.deleteresources.UseVisualStyleBackColor = true;
this.deleteresources.Click += new System.EventHandler(this.deleteresources_Click);
//
// buttonsbar1
//
buttonsbar1.Dock = System.Windows.Forms.DockStyle.Fill;
buttonsbar1.IsSplitterFixed = true;
buttonsbar1.Location = new System.Drawing.Point(0, 0);
buttonsbar1.Name = "buttonsbar1";
//
// buttonsbar1.Panel1
//
buttonsbar1.Panel1.Controls.Add(this.addresource);
//
// buttonsbar1.Panel2
//
buttonsbar1.Panel2.Controls.Add(buttonsbar2);
buttonsbar1.Size = new System.Drawing.Size(350, 24);
buttonsbar1.SplitterDistance = 118;
buttonsbar1.TabIndex = 0;
//
// addresource
//
this.addresource.Dock = System.Windows.Forms.DockStyle.Fill;
this.addresource.Location = new System.Drawing.Point(0, 0);
this.addresource.Location = new System.Drawing.Point(3, 140);
this.addresource.Name = "addresource";
this.addresource.Size = new System.Drawing.Size(118, 24);
this.addresource.TabIndex = 0;
@ -137,34 +84,12 @@ namespace CodeImp.DoomBuilder.Controls
this.addresource.UseVisualStyleBackColor = true;
this.addresource.Click += new System.EventHandler(this.addresource_Click);
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
this.splitContainer1.IsSplitterFixed = true;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.resourceitems);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(buttonsbar1);
this.splitContainer1.Panel2MinSize = 24;
this.splitContainer1.Size = new System.Drawing.Size(350, 166);
this.splitContainer1.SplitterDistance = 138;
this.splitContainer1.TabIndex = 0;
//
// resourceitems
//
this.resourceitems.AllowDrop = true;
this.resourceitems.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.column});
this.resourceitems.ContextMenuStrip = this.copypastemenu;
this.resourceitems.Dock = System.Windows.Forms.DockStyle.Fill;
this.resourceitems.FullRowSelect = true;
this.resourceitems.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.resourceitems.HideSelection = false;
@ -274,18 +199,13 @@ namespace CodeImp.DoomBuilder.Controls
this.AllowDrop = true;
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.resourceitems);
this.Controls.Add(this.addresource);
this.Controls.Add(this.editresource);
this.Controls.Add(this.deleteresources);
this.Name = "ResourceListEditor";
this.Size = new System.Drawing.Size(350, 166);
buttonsbar2.Panel1.ResumeLayout(false);
buttonsbar2.Panel2.ResumeLayout(false);
buttonsbar2.ResumeLayout(false);
buttonsbar1.Panel1.ResumeLayout(false);
buttonsbar1.Panel2.ResumeLayout(false);
buttonsbar1.ResumeLayout(false);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
this.splitContainer1.ResumeLayout(false);
this.Resize += new System.EventHandler(this.ResourceListEditor_Resize);
this.copypastemenu.ResumeLayout(false);
this.ResumeLayout(false);
@ -298,7 +218,6 @@ namespace CodeImp.DoomBuilder.Controls
private System.Windows.Forms.Button addresource;
private CodeImp.DoomBuilder.Controls.ResourceListView resourceitems;
private System.Windows.Forms.ColumnHeader column;
private System.Windows.Forms.SplitContainer splitContainer1;
private System.Windows.Forms.ImageList images;
private System.Windows.Forms.ContextMenuStrip copypastemenu;
private System.Windows.Forms.ToolStripMenuItem copyresources;

View file

@ -33,9 +33,7 @@ namespace CodeImp.DoomBuilder.Controls
#region ================== Delegates / Events
public delegate void ContentChanged();
public event ContentChanged OnContentChanged;
public string StartPath; //mxd
#endregion
@ -592,5 +590,29 @@ namespace CodeImp.DoomBuilder.Controls
}
#endregion
#region ================== Events (mxd)
//mxd. Because anchor-based alignment fails when using high-Dpi settings...
private void ResourceListEditor_Resize(object sender, EventArgs e)
{
resourceitems.Width = this.Width;
resourceitems.Height = this.Height - addresource.Height - addresource.Margin.Top - addresource.Margin.Bottom;
addresource.Top = resourceitems.Bottom + addresource.Margin.Top;
editresource.Top = addresource.Top;
deleteresources.Top = addresource.Top;
int buttonwidth = (this.Width - addresource.Margin.Left * 2) / 3;
addresource.Width = buttonwidth;
editresource.Width = buttonwidth;
deleteresources.Width = buttonwidth;
addresource.Left = 0;
editresource.Left = addresource.Right + addresource.Margin.Left;
deleteresources.Left = editresource.Right + addresource.Margin.Left;
}
#endregion
}
}

View file

@ -117,30 +117,6 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="buttonsbar2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="buttonsbar2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="editresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="deleteresources.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="buttonsbar1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="buttonsbar1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="addresource.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="splitContainer1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="copypastemenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>195, 17</value>
</metadata>
@ -152,23 +128,23 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi
FgAAAk1TRnQBSQFMAgEBBgEAAZQBAAGUAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIDcAApYB/wEAApYB/wEAAkEB/wEAAkEB/wEAAkEB/wEAAkEB/y0AApYB/wEA
ApYB/wEAAkEB/wEAAkEB/wEAAkEB/wEAAkEB/5QAA4UB/wOFAf8DhQH/A4UB/wEAArkB/wEAApYB/wEA
ApYB/wEAAoEB/wEAAoEB/wEAAkEB/xAAA4AB/wOBAf8DgAH/A4AB/wOBAf8DgQH/A4AB/wEAArkB/wEA
ApYB/wEAApYB/wEAAoEB/wEAAoEB/wEAAkEB/5AAA4UB/wOFAf8DxgH/A8kB/wPGAf8BAAK5Af8DoAH/
A2sB/wNrAf8BAAKBAf8BAAJBAf8MAAOAAf8DVQH/A4AB/wOVAf8DyQH/A9oB/wPaAf8DvAH/AQACuQH/
A6gB/wOBAf8DgQH/AQACgQH/AQACQQH/jAADhQH/A8EB/wOFAf8D5QH/A+EB/wPlAf8BAAK5Af8BAAP/
AQAD/wEAA/8BAAKBAf8BAAJBAf8IAAOAAf8DgQH/A4EB/wOAAf8DgQH/A4AB/wOBAf8DgAH/A4EB/wEA
ArkB/wEAA/8BAAP/AQAD/wEAAoEB/wEAAkEB/4gAA4UB/wPBAf8D0QH/A4UB/wPhAf8D4QH/A+UB/wEA
ArkB/wEAApYB/wEAApYB/wEAAoEB/wEAAoEB/wEAAmQB/xAAA48B/wOAAf8DgQH/A4AB/wOBAf8DgAH/
A4EB/wEAArkB/wEAApYB/wEAApYB/wEAAoEB/wEAAoEB/wEAAmQB/4gAA4UB/wOFAf8DhQH/A8EB/wPe
Af8D3gH/A+EB/wEAArkB/wEAAkEB/wOxAf8DCwH/AQACgQH/AQACQQH/DAADjwH/A+MB/wOPAf8D1QH/
A9oB/wPeAf8D4wH/A4AB/wEAArkB/wEAAkEB/wOxAf8DgQH/AQACgQH/AQACQQH/iAADhQH/A+EB/wPR
Af8D1QH/A9kB/wPeAf8D4QH/AQACuQH/AQACQQH/AwAB/wMLAf8BAAKWAf8BAAJBAf8MAAOPAf8DjwH/
A48B/wPRAf8D2gH/A94B/wPeAf8DgAH/AQACuQH/AQACQQH/AwAB/wEQAQgBCQH/AQAClgH/AQACQQH/
iAADhQH/A94B/wPNAf8D0QH/A9UB/wPZAf8D2QH/A94B/wEAArkB/wEAArkB/wEAApYB/wEAAkEB/xAA
A48B/wPeAf8D0QH/A9EB/wPVAf8D2gH/A9oB/wOAAf8FAAK5Af8BAAK5Af8BAAKWAf8BAAJBAf+MAAOF
FgAAAk1TRnQBSQFMAgEBBgEAAZwBAAGcAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIDcAApYB/wEAApYB/wEAAkAB/wEAAkAB/wEAAkAB/wEAAkAB/y0AApYB/wEA
ApYB/wEAAkAB/wEAAkAB/wEAAkAB/wEAAkAB/5QAA4UB/wOFAf8DhQH/A4UB/wEAArkB/wEAApYB/wEA
ApYB/wEAAoEB/wEAAoEB/wEAAkAB/xAAA4AB/wOBAf8DgAH/A4AB/wOBAf8DgQH/A4AB/wEAArkB/wEA
ApYB/wEAApYB/wEAAoEB/wEAAoEB/wEAAkAB/5AAA4UB/wOFAf8DxgH/A8kB/wPGAf8BAAK5Af8DoAH/
A2oB/wNqAf8BAAKBAf8BAAJAAf8MAAOAAf8DVAH/A4AB/wOVAf8DyQH/A9oB/wPaAf8DvAH/AQACuQH/
A6gB/wOBAf8DgQH/AQACgQH/AQACQAH/jAADhQH/A8EB/wOFAf8D5QH/A+EB/wPlAf8BAAK5Af8BAAP/
AQAD/wEAA/8BAAKBAf8BAAJAAf8IAAOAAf8DgQH/A4EB/wOAAf8DgQH/A4AB/wOBAf8DgAH/A4EB/wEA
ArkB/wEAA/8BAAP/AQAD/wEAAoEB/wEAAkAB/4gAA4UB/wPBAf8D0QH/A4UB/wPhAf8D4QH/A+UB/wEA
ArkB/wEAApYB/wEAApYB/wEAAoEB/wEAAoEB/wEAAmMB/xAAA48B/wOAAf8DgQH/A4AB/wOBAf8DgAH/
A4EB/wEAArkB/wEAApYB/wEAApYB/wEAAoEB/wEAAoEB/wEAAmMB/4gAA4UB/wOFAf8DhQH/A8EB/wPe
Af8D3gH/A+EB/wEAArkB/wEAAkAB/wOxAf8DCgH/AQACgQH/AQACQAH/DAADjwH/A+MB/wOPAf8D1QH/
A9oB/wPeAf8D4wH/A4AB/wEAArkB/wEAAkAB/wOxAf8DgQH/AQACgQH/AQACQAH/iAADhQH/A+EB/wPR
Af8D1QH/A9kB/wPeAf8D4QH/AQACuQH/AQACQAH/AwAB/wMKAf8BAAKWAf8BAAJAAf8MAAOPAf8DjwH/
A48B/wPRAf8D2gH/A94B/wPeAf8DgAH/AQACuQH/AQACQAH/AwAB/wEPAQcBCAH/AQAClgH/AQACQAH/
iAADhQH/A94B/wPNAf8D0QH/A9UB/wPZAf8D2QH/A94B/wEAArkB/wEAArkB/wEAApYB/wEAAkAB/xAA
A48B/wPeAf8D0QH/A9EB/wPVAf8D2gH/A9oB/wOAAf8FAAK5Af8BAAK5Af8BAAKWAf8BAAJAAf+MAAOF
Af8D3gH/A80B/wPNAf8D0QH/A9UB/wPZAf8D2QH/A94B/wPZAf8DhQH/FAADjwH/A94B/wPNAf8DzQH/
A9EB/wPVAf8D2gH/A4AB/wQAA48B/wOPAf8DgQH/kAADhQH/A94B/wPJAf8DyQH/A80B/wPRAf8D1QH/
A9UB/wPZAf8D1QH/A4UB/xQAA48B/wPeAf8DyQH/A8kB/wPNAf8D0QH/A9UB/wOAAf8EAAOBAf8D0QH/
@ -178,68 +154,68 @@
A4AB/wPRAf8DpAH/kAADhQH/A9kB/wPBAf8DxgH/A8YB/wPJAf8DzQH/A80B/wPRAf8D0QH/A4UB/xQA
A48B/wOPAf8DjwH/A48B/wOPAf8DjwH/A48B/wOPAf8EAAOAAf8DoAH/A4EB/5AAA4UB/wP1Af8D4QH/
A94B/wPeAf8D2QH/A9kB/wPZAf8D1QH/A9UB/wOFAf8QAAOAAf8DgAH/A4EB/wOAAf8DgQH/A4EB/wOB
Af8DgQH/A4EB/wOAAf8DmgH/A58B/wNSAf8DgAH/jAADhQH/A4UB/wOFAf8DhQH/A4UB/wOFAf8DhQH/
A4UB/wOFAf8DhQH/A4UB/xQAA4EB/wNbAf8DlQH/A8kB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A7wB/wOA
Af8DgQH/A4EB/wOAAf8DmgH/A58B/wNRAf8DgAH/jAADhQH/A4UB/wOFAf8DhQH/A4UB/wOFAf8DhQH/
A4UB/wOFAf8DhQH/A4UB/xQAA4EB/wNaAf8DlQH/A8kB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A7wB/wOA
Af8DgAH/A4AB/9AAA4AB/wOAAf8DgAH/A4AB/wOAAf8DgAH/A4AB/wOAAf8DgAH/A4AB/wOAAf//ADQA
Af8DAAH/AwAB/wMAAf8tAAKWAf8BAAKWAf8BAAJBAf8BAAJBAf8BAAJBAf8BAAJBAf9YAAMQAf8DEAH/
AxAB/wMQAf8DEAH/AxAB/wMQAf8DEAH/GAABAwIAAf8BAwIAAf8BAwIAAf8BAwIAAf8BAwIAAf8BAwIA
Af8BAwIAAf8BHgEUARAB/wFlAWEBVwH/AVIBTQEgAf8BDwEKAQAB/wEDAgAB/ykAArkB/wEAApYB/wEA
ApYB/wEAAoEB/wEAAoEB/wEAAkEB/wQAAYEBiAGQAf8BYgGBAZAB/wFiAoEB/wFSAoEB/wFSAWIBgQH/
AUIBWgFiAf8BQgFKAVIB/wEyAToBQgH/ASICMgH/AiIBMgH/ARIBGgEiAf8DEgH/AhIBIgH/HAADEAH/
AwIB/wOwAf8DsQH/A7AB/wOtAf8DqwH/A6AB/wMQAf8UAAEOAgAB/wEyASABAQH/AVYBSAEiAf8BnwGC
ASkB/wHbAccBkAH/AeYB1wG0Af8B5gHXAbQB/wG0Aa4BjwH/AWgBXgE7Af8BbAFeAToB/wFLAT8BGAH/
ARIBBgEAAf8BAwIAAf8EAAOXAf8DkQH/A4kB/wOEAf8DgQH/A2IB/wNbAf8DTgH/A0EB/wEAArkB/wOg
Af8DawH/A2sB/wEAAoEB/wEAAkEB/wQAAYEBiAGQAf8BkAGoAbAB/wGQAagBsAH/AQIBkAHQAf8BAgGQ
AdAB/wECAZAB0AH/AQIBkAHAAf8BEgGIAcAB/wESAYEBsAH/ARIBgQGwAf8BIgGBAaAB/wEiAYEBkAH/
ASIBSgFiAf8DkgH/FAADEAH/A6oB/wMCAf8D1wH/A9kB/wPcAf8D3wH/A+EB/wPPAf8DEAH/EwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AQ8BCAEEAf8BXwFWAUIB/wFlAVQBJwH/AR0BDgEA
Af8BAwIAAf8EAAOXAf8DsQH/A7EB/wOEAf8DhAH/A4QB/wOBAf8DhAH/A4EB/wEAArkB/wEAA/8BAAP/
AQAD/wEAAoEB/wEAAkEB/wQAAYEBiAGQAf8BYgHYAv8BkAGoAbAB/wGBAeAC/wFiAdAC/wFSAcgC/wFS
AcgC/wFCAcAB8AH/ATIBsAHwAf8BMgGoAfAB/wEiAaAB4AH/ARIBkAHQAf8BIgFqAYEB/wFbAWMBaQH/
EAADEAH/A6oB/wPBAf8DAgH/A9UB/wPZAf8D3QH/A+EB/wPlAf8D0gH/AxAB/xgAA1UB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wQAASkBIQEbAf8BYQFbAVEB/wEMAQIBBQH/CAADngH/A74B/wOxAf8DywH/
A74B/wO4Af8DuAH/A6sB/wOkAf8BAAK5Af8BAAKWAf8BAAKWAf8BAAKBAf8BAAKBAf8BAAJkAf8EAAGB
AZABoAH/AWIB2AL/AZABqAGwAf8BkAHAAdAB/wGBAdgC/wFiAdAC/wFiAdAC/wFSAcgC/wFSAcAC/wFC
AbgB8AH/ATIBsAHwAf8BMgGoAfAB/wESAYgB0AH/ASIBSgFiAf8DkgH/DAADEAH/AwIB/wMCAf8DqgH/
A84B/wPTAf8D2AH/A9wB/wPgAf8D0QH/AxAB/xQAA1UB/wPYAf8DVQH/A8AB/wPOAf8D0wH/A9gB/wMA
Af8EAAEjARkBGAH/A8AB/wOBAf8IAAOkAf8DvgH/A7EB/wO+Af8DxAH/A74B/wO+Af8DuAH/A7gB/wEA
ArkB/wEAAkEB/wOxAf8DCwH/AQACgQH/AQACQQH/BAABgQGQAaAB/wGBAdgB8AH/AWIB2AL/AZABqAGw
Af8BgQHgAv8BgQHQAv8BYgHYAv8BYgHQAv8BYgHQAv8BUgHIAv8BQgHAAfAB/wFCAbgB8AH/ATIBsAHw
Af8BIgFqAYEB/wOBAf8MAAMQAf8D1QH/A8EB/wPEAf8DyQH/A88B/wPTAf8D1wH/A9sB/wPNAf8DEAH/
FAADVQH/A1UB/wNVAf8DwAH/A8kB/wPPAf8D0wH/AwAB/wQAA1UB/wNVAf8BDwEGAQgB/wgAA6QB/wPE
Af8DvgH/A7EB/wPLAf8DxAH/A74B/wO+Af8DvgH/AQACuQH/AQACQQH/AwAB/wMLAf8BAAKWAf8BAAJB
Af8EAAGBAZgBoAH/AZAB4AHwAf8BYgHYAv8BkAGoAbAB/wGQAbgBwAH/AYEB2AL/AWIB2AL/AWIB2AL/
AWIB2AL/AWIB0AL/AVIB0AL/AVIByAL/AUIBuAHwAf8BMgGgAeAB/wFLAWkBgQH/A5IB/wgAAxAB/wPT
Af8DvAH/A8AB/wPFAf8DyQH/A80B/wPRAf8D1QH/A8wB/wMQAf8UAANVAf8D0wH/A7wB/wPAAf8DxQH/
A8kB/wPNAf8DAAH/BAABHQETARQB/wPAAf8DgQH/CAADpAH/A8sB/wO+Af8DsQH/A7gB/wPEAf8DvgH/
A74B/wO+Af8DvgH/AQACuQH/AQACuQH/AQAClgH/AQACQQH/AToBWAFoAf8DpAH/AYEBmAGgAf8BkAHg
AfAB/wGgAegC/wFiAdgC/wGQAagBsAH/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/
AYEB4AL/AYEB2AL/AYEB2AL/AVIBqAHQAf8DgQH/CAADEAH/A9EB/wO3Af8DuwH/A8AB/wPEAf8DyAH/
A8wB/wPRAf8DyQH/AxAB/xQAA1UB/wPRAf8DtwH/A7sB/wPAAf8DxAH/A8gB/wMAAf8EAANVAf8DVQH/
AQgBAQECAf8IAAOkAf8DywH/A9gB/wO+Af8DsQH/A8sB/wPLAf8DywH/A8sB/wPLAf8DywH/A8sB/wPE
Af8DAAH/AwAB/wMAAf8tAAKWAf8BAAKWAf8BAAJAAf8BAAJAAf8BAAJAAf8BAAJAAf9YAAMPAf8DDwH/
Aw8B/wMPAf8DDwH/Aw8B/wMPAf8DDwH/GAABAgIAAf8BAgIAAf8BAgIAAf8BAgIAAf8BAgIAAf8BAgIA
Af8BAgIAAf8BHQETAQ8B/wFkAWABVgH/AVEBTAEfAf8BDgEJAQAB/wECAgAB/ykAArkB/wEAApYB/wEA
ApYB/wEAAoEB/wEAAoEB/wEAAkAB/wQAAYEBiAGQAf8BYQGBAZAB/wFhAoEB/wFRAoEB/wFRAWEBgQH/
AUEBWQFhAf8BQQFJAVEB/wExATkBQQH/ASECMQH/AiEBMQH/AREBGQEhAf8DEQH/AhEBIQH/HAADDwH/
AwEB/wOwAf8DsQH/A7AB/wOtAf8DqwH/A6AB/wMPAf8UAAENAgAB/wExAR8BAAH/AVUBRwEhAf8BnwGC
ASgB/wHbAccBkAH/AeYB1wG0Af8B5gHXAbQB/wG0Aa4BjwH/AWcBXQE6Af8BawFdATkB/wFKAT4BFwH/
AREBBQEAAf8BAgIAAf8EAAOXAf8DkQH/A4kB/wOEAf8DgQH/A2EB/wNaAf8DTQH/A0AB/wEAArkB/wOg
Af8DagH/A2oB/wEAAoEB/wEAAkAB/wQAAYEBiAGQAf8BkAGoAbAB/wGQAagBsAH/AQEBkAHQAf8BAQGQ
AdAB/wEBAZAB0AH/AQEBkAHAAf8BEQGIAcAB/wERAYEBsAH/AREBgQGwAf8BIQGBAaAB/wEhAYEBkAH/
ASEBSQFhAf8DkgH/FAADDwH/A6oB/wMBAf8D1wH/A9kB/wPcAf8D3wH/A+EB/wPPAf8DDwH/EwAB/wMA
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AQ4BBwEDAf8BXgFVAUEB/wFkAVMBJgH/ARwBDQEA
Af8BAgIAAf8EAAOXAf8DsQH/A7EB/wOEAf8DhAH/A4QB/wOBAf8DhAH/A4EB/wEAArkB/wEAA/8BAAP/
AQAD/wEAAoEB/wEAAkAB/wQAAYEBiAGQAf8BYQHYAv8BkAGoAbAB/wGBAeAC/wFhAdAC/wFRAcgC/wFR
AcgC/wFBAcAB8AH/ATEBsAHwAf8BMQGoAfAB/wEhAaAB4AH/AREBkAHQAf8BIQFpAYEB/wFaAWIBaAH/
EAADDwH/A6oB/wPBAf8DAQH/A9UB/wPZAf8D3QH/A+EB/wPlAf8D0gH/Aw8B/xgAA1QB/wMAAf8DAAH/
AwAB/wMAAf8DAAH/AwAB/wQAASgBIAEaAf8BYAFaAVAB/wELAQEBBAH/CAADngH/A74B/wOxAf8DywH/
A74B/wO4Af8DuAH/A6sB/wOkAf8BAAK5Af8BAAKWAf8BAAKWAf8BAAKBAf8BAAKBAf8BAAJjAf8EAAGB
AZABoAH/AWEB2AL/AZABqAGwAf8BkAHAAdAB/wGBAdgC/wFhAdAC/wFhAdAC/wFRAcgC/wFRAcAC/wFB
AbgB8AH/ATEBsAHwAf8BMQGoAfAB/wERAYgB0AH/ASEBSQFhAf8DkgH/DAADDwH/AwEB/wMBAf8DqgH/
A84B/wPTAf8D2AH/A9wB/wPgAf8D0QH/Aw8B/xQAA1QB/wPYAf8DVAH/A8AB/wPOAf8D0wH/A9gB/wMA
Af8EAAEiARgBFwH/A8AB/wOBAf8IAAOkAf8DvgH/A7EB/wO+Af8DxAH/A74B/wO+Af8DuAH/A7gB/wEA
ArkB/wEAAkAB/wOxAf8DCgH/AQACgQH/AQACQAH/BAABgQGQAaAB/wGBAdgB8AH/AWEB2AL/AZABqAGw
Af8BgQHgAv8BgQHQAv8BYQHYAv8BYQHQAv8BYQHQAv8BUQHIAv8BQQHAAfAB/wFBAbgB8AH/ATEBsAHw
Af8BIQFpAYEB/wOBAf8MAAMPAf8D1QH/A8EB/wPEAf8DyQH/A88B/wPTAf8D1wH/A9sB/wPNAf8DDwH/
FAADVAH/A1QB/wNUAf8DwAH/A8kB/wPPAf8D0wH/AwAB/wQAA1QB/wNUAf8BDgEFAQcB/wgAA6QB/wPE
Af8DvgH/A7EB/wPLAf8DxAH/A74B/wO+Af8DvgH/AQACuQH/AQACQAH/AwAB/wMKAf8BAAKWAf8BAAJA
Af8EAAGBAZgBoAH/AZAB4AHwAf8BYQHYAv8BkAGoAbAB/wGQAbgBwAH/AYEB2AL/AWEB2AL/AWEB2AL/
AWEB2AL/AWEB0AL/AVEB0AL/AVEByAL/AUEBuAHwAf8BMQGgAeAB/wFKAWgBgQH/A5IB/wgAAw8B/wPT
Af8DvAH/A8AB/wPFAf8DyQH/A80B/wPRAf8D1QH/A8wB/wMPAf8UAANUAf8D0wH/A7wB/wPAAf8DxQH/
A8kB/wPNAf8DAAH/BAABHAESARMB/wPAAf8DgQH/CAADpAH/A8sB/wO+Af8DsQH/A7gB/wPEAf8DvgH/
A74B/wO+Af8DvgH/AQACuQH/AQACuQH/AQAClgH/AQACQAH/ATkBVwFnAf8DpAH/AYEBmAGgAf8BkAHg
AfAB/wGgAegC/wFhAdgC/wGQAagBsAH/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/AYEB4AL/
AYEB4AL/AYEB2AL/AYEB2AL/AVEBqAHQAf8DgQH/CAADDwH/A9EB/wO3Af8DuwH/A8AB/wPEAf8DyAH/
A8wB/wPRAf8DyQH/Aw8B/xQAA1QB/wPRAf8DtwH/A7sB/wPAAf8DxAH/A8gB/wMAAf8EAANUAf8DVAH/
AQcBAAEBAf8IAAOkAf8DywH/A9gB/wO+Af8DsQH/A8sB/wPLAf8DywH/A8sB/wPLAf8DywH/A8sB/wPE
Af8DxAH/A6QB/wOJAf8BkAKgAf8BoAHoAfAB/wGgAegC/wGgAegC/wGQAagBsAH/AZABqAGwAf8BkAGo
AbAB/wGQAagBsAH/AYEBoAGwAf8BgQGgAbAB/wGBAZgBoAH/AYEBmAGgAf8BgQGQAaAB/wGBAZABoAH/
AYEBiAGQAf8BgQGIAZAB/wgAAxAB/wPRAf8DswH/A7UB/wO5Af8DvwH/A8MB/wPHAf8DywH/A8YB/wMQ
Af8UAANVAf8D0QH/A7MB/wO1Af8DuQH/A78B/wPDAf8DAAH/BAABHQETARQB/wPAAf8DgQH/CAADqwH/
AYEBiAGQAf8BgQGIAZAB/wgAAw8B/wPRAf8DswH/A7UB/wO5Af8DvwH/A8MB/wPHAf8DywH/A8YB/wMP
Af8UAANUAf8D0QH/A7MB/wO1Af8DuQH/A78B/wPDAf8DAAH/BAABHAESARMB/wPAAf8DgQH/CAADqwH/
A9IB/wPYAf8D2AH/A7EB/wOxAf8DsQH/A7EB/wOrAf8DqwH/A6QB/wOkAf8DpAH/A6QB/wOeAf8DlwH/
AZABoAGwAf8BoAHoAfAB/wGgAfAC/wGgAegC/wGgAegC/wGBAdgC/wFiAdgC/wFiAdgC/wFiAdgC/wFi
AdgC/wFiAdgC/wFiAdgC/wGBAYgBkAH/FAADEAH/A9EB/wOtAf8DsQH/A7QB/wO5Af8DvAH/A8EB/wPF
Af8DxAH/AxAB/xQAA1UB/wPRAf8DrQH/A7EB/wO0Af8DuQH/A7wB/wMAAf8EAANVAf8DVQH/AQgBAQEC
AZABoAGwAf8BoAHoAfAB/wGgAfAC/wGgAegC/wGgAegC/wGBAdgC/wFhAdgC/wFhAdgC/wFhAdgC/wFh
AdgC/wFhAdgC/wFhAdgC/wGBAYgBkAH/FAADDwH/A9EB/wOtAf8DsQH/A7QB/wO5Af8DvAH/A8EB/wPF
Af8DxAH/Aw8B/xQAA1QB/wPRAf8DrQH/A7EB/wO0Af8DuQH/A7wB/wMAAf8EAANUAf8DVAH/AQcBAAEB
Af8IAAOxAf8D0gH/A9gB/wPYAf8D2AH/A8sB/wO+Af8DvgH/A74B/wO+Af8DvgH/A74B/wOXAf8MAAGQ
AaABsAH/AaAC8AH/AbAC8AH/AaAB8AL/AaAB6AL/AaAB6AL/AYEB2AL/AZACoAH/AYEBmAGgAf8BgQGY
AaAB/wGBAZABoAH/AYECkAH/AYEBiAGQAf8UAAMQAf8DygH/A6gB/wOsAf8DsAH/A7QB/wO4Af8DvAH/
A8AB/wPBAf8DEAH/FAADVQH/A8oB/wOoAf8DrAH/A7AB/wO0Af8DuAH/AwAB/wQAAR0BEwEUAf8DwAH/
AaAB/wGBAZABoAH/AYECkAH/AYEBiAGQAf8UAAMPAf8DygH/A6gB/wOsAf8DsAH/A7QB/wO4Af8DvAH/
A8AB/wPBAf8DDwH/FAADVAH/A8oB/wOoAf8DrAH/A7AB/wO0Af8DuAH/AwAB/wQAARwBEgETAf8DwAH/
A4EB/wgAA7EB/wPSAf8D2AH/A9gB/wPYAf8D2AH/A8QB/wOrAf8DpAH/A6QB/wOkAf8DngH/A5cB/wwA
AZABqAGwAf8BoAHQAeAB/wGwAvAB/wGwAvAB/wGgAfAC/wGgAegC/wGQAaABsAH/A5IB/ygAAxAB/wPL
Af8DqQH/A6wB/wOwAf8DtAH/A7cB/wO7Af8DvQH/A8AB/wMQAf8UAANVAf8DVQH/A1UB/wNVAf8DVQH/
A1UB/wNVAf8DVQH/BAABEgEKAQsB/wGFAYMBYwH/ARQBCwEKAf8IAAOxAf8DywH/A9gB/wPYAf8D2AH/
AZABqAGwAf8BoAHQAeAB/wGwAvAB/wGwAvAB/wGgAfAC/wGgAegC/wGQAaABsAH/A5IB/ygAAw8B/wPL
Af8DqQH/A6wB/wOwAf8DtAH/A7cB/wO7Af8DvQH/A8AB/wMPAf8UAANUAf8DVAH/A1QB/wNUAf8DVAH/
A1QB/wNUAf8DVAH/BAABEQEJAQoB/wGFAYMBYgH/ARMBCgEJAf8IAAOxAf8DywH/A9gB/wPYAf8D2AH/
A9gB/wOxAf8DpAH/JAABkAGoAbAB/wGQAagBsAH/AZABqAGwAf8BkAGoAbAB/wGQAagBsAH/A5IB/ywA
AxAB/wPyAf8D1QH/A9IB/wPRAf8DzgH/A8sB/wPKAf8DxwH/A8YB/wMQAf8TAAH/AQMCAAH/AQMCAAH/
AQMCAAH/AQMCAAH/AQMCAAH/AQMCAAH/AQMCAAH/AQMCAAH/AQMCAAH/AYEBaQFaAf8BnQGRAUkB/wEu
AR4BAAH/AwAB/wgAA7EB/wOxAf8DsQH/A7EB/wOxAf8DpAH/bAADEAH/AxAB/wMQAf8DEAH/AxAB/wMQ
Af8DEAH/AxAB/wMQAf8DEAH/AxAB/xQAAQYCAAH/AUYBKgEAAf8BnwGCASkB/wHbAccBkAH/AeYB1wG0
Af8B5gHXAbQB/wHmAdcBtAH/AeYB1wG0Af8B4AHVAbEB/wG0Aa4BjwH/AVMBRwEkAf8BFgEJAQAB/wED
AgAB/9MAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8BAwIAAf9IAAFCAU0BPgcA
Aw8B/wPyAf8D1QH/A9IB/wPRAf8DzgH/A8sB/wPKAf8DxwH/A8YB/wMPAf8TAAH/AQICAAH/AQICAAH/
AQICAAH/AQICAAH/AQICAAH/AQICAAH/AQICAAH/AQICAAH/AQICAAH/AYEBaAFZAf8BnQGRAUgB/wEt
AR0BAAH/AwAB/wgAA7EB/wOxAf8DsQH/A7EB/wOxAf8DpAH/bAADDwH/Aw8B/wMPAf8DDwH/Aw8B/wMP
Af8DDwH/Aw8B/wMPAf8DDwH/Aw8B/xQAAQUCAAH/AUUBKQEAAf8BnwGCASgB/wHbAccBkAH/AeYB1wG0
Af8B5gHXAbQB/wHmAdcBtAH/AeYB1wG0Af8B4AHVAbEB/wG0Aa4BjwH/AVIBRgEjAf8BFQEIAQAB/wEC
AgAB/9MAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8BAgIAAf9IAAFCAU0BPgcA
AT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/AQAB/wGBAf8BwAQAAfgBAQHgBQAB8AEBAcAFAAHg
AQEBgAUAAcABAQHgBQABwAEBAcAFAAHAAQEBwAUAAcABAwHAASEEAAHAAQcBwAEjBAABwAEHAcABIwQA
AcABBwHAASMEAAHAAQcBwAEjBAABwAEHAcABIwQAAcABBwGAAQEEAAHAAQcBwAEBBAAC/wHgAQMEAAX/

View file

@ -127,7 +127,6 @@ namespace CodeImp.DoomBuilder.Controls
//
this.buttonnew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.buttonnew.Image = global::CodeImp.DoomBuilder.Properties.Resources.NewScript;
this.buttonnew.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.buttonnew.ImageTransparentColor = System.Drawing.Color.Magenta;
this.buttonnew.Margin = new System.Windows.Forms.Padding(6, 1, 0, 2);
this.buttonnew.Name = "buttonnew";
@ -138,7 +137,6 @@ namespace CodeImp.DoomBuilder.Controls
//
this.buttonopen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.buttonopen.Image = global::CodeImp.DoomBuilder.Properties.Resources.OpenScript;
this.buttonopen.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.buttonopen.ImageTransparentColor = System.Drawing.Color.Magenta;
this.buttonopen.Margin = new System.Windows.Forms.Padding(3, 1, 0, 2);
this.buttonopen.Name = "buttonopen";
@ -278,7 +276,6 @@ namespace CodeImp.DoomBuilder.Controls
this.buttonclose.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.buttonclose.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.buttonclose.Image = global::CodeImp.DoomBuilder.Properties.Resources.Close;
this.buttonclose.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.buttonclose.ImageTransparentColor = System.Drawing.Color.Magenta;
this.buttonclose.Name = "buttonclose";
this.buttonclose.Size = new System.Drawing.Size(23, 22);

View file

@ -40,15 +40,15 @@ namespace CodeImp.DoomBuilder.Controls
this.thingimages = new System.Windows.Forms.ImageList(this.components);
this.infopanel = new System.Windows.Forms.Panel();
this.spritepanel = new System.Windows.Forms.Panel();
this.spritetex = new CodeImp.DoomBuilder.Controls.ConfigurablePictureBox();
this.classname = new System.Windows.Forms.LinkLabel();
this.labelclassname = new System.Windows.Forms.Label();
this.typeid = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.label1 = new System.Windows.Forms.Label();
this.tbFilter = new System.Windows.Forms.TextBox();
this.bClear = new System.Windows.Forms.Button();
this.updatetimer = new System.Windows.Forms.Timer(this.components);
this.typelist = new CodeImp.DoomBuilder.GZBuilder.Controls.MultiSelectTreeview();
this.spritetex = new CodeImp.DoomBuilder.Controls.ConfigurablePictureBox();
this.typeid = new CodeImp.DoomBuilder.Controls.NumericTextbox();
this.infopanel.SuspendLayout();
this.spritepanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.spritetex)).BeginInit();
@ -191,6 +191,22 @@ namespace CodeImp.DoomBuilder.Controls
this.spritepanel.Size = new System.Drawing.Size(68, 68);
this.spritepanel.TabIndex = 23;
//
// spritetex
//
this.spritetex.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.Default;
this.spritetex.Dock = System.Windows.Forms.DockStyle.Fill;
this.spritetex.Highlighted = false;
this.spritetex.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
this.spritetex.Location = new System.Drawing.Point(0, 0);
this.spritetex.Name = "spritetex";
this.spritetex.PageUnit = System.Drawing.GraphicsUnit.Pixel;
this.spritetex.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.None;
this.spritetex.Size = new System.Drawing.Size(64, 64);
this.spritetex.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.spritetex.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default;
this.spritetex.TabIndex = 0;
this.spritetex.TabStop = false;
//
// classname
//
this.classname.ActiveLinkColor = System.Drawing.SystemColors.Highlight;
@ -214,6 +230,19 @@ namespace CodeImp.DoomBuilder.Controls
this.labelclassname.Text = "Class:";
this.labelclassname.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// typeid
//
this.typeid.AllowDecimal = false;
this.typeid.AllowNegative = false;
this.typeid.AllowRelative = false;
this.typeid.ForeColor = System.Drawing.SystemColors.WindowText;
this.typeid.ImeMode = System.Windows.Forms.ImeMode.Off;
this.typeid.Location = new System.Drawing.Point(60, 2);
this.typeid.Name = "typeid";
this.typeid.Size = new System.Drawing.Size(68, 20);
this.typeid.TabIndex = 1;
this.typeid.TextChanged += new System.EventHandler(this.typeid_TextChanged);
//
// label1
//
this.label1.AutoSize = true;
@ -225,8 +254,6 @@ namespace CodeImp.DoomBuilder.Controls
//
// tbFilter
//
this.tbFilter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tbFilter.Location = new System.Drawing.Point(42, 3);
this.tbFilter.Name = "tbFilter";
this.tbFilter.Size = new System.Drawing.Size(232, 20);
@ -236,7 +263,6 @@ namespace CodeImp.DoomBuilder.Controls
//
// bClear
//
this.bClear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.bClear.Image = global::CodeImp.DoomBuilder.Properties.Resources.SearchClear;
this.bClear.Location = new System.Drawing.Point(277, 1);
this.bClear.Name = "bClear";
@ -266,35 +292,6 @@ namespace CodeImp.DoomBuilder.Controls
this.typelist.MouseEnter += new System.EventHandler(this.typelist_MouseEnter);
this.typelist.SelectionsChanged += new System.EventHandler(this.typelist_SelectionsChanged);
//
// spritetex
//
this.spritetex.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.Default;
this.spritetex.Dock = System.Windows.Forms.DockStyle.Fill;
this.spritetex.Highlighted = false;
this.spritetex.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
this.spritetex.Location = new System.Drawing.Point(0, 0);
this.spritetex.Name = "spritetex";
this.spritetex.PageUnit = System.Drawing.GraphicsUnit.Pixel;
this.spritetex.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.None;
this.spritetex.Size = new System.Drawing.Size(64, 64);
this.spritetex.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.spritetex.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default;
this.spritetex.TabIndex = 0;
this.spritetex.TabStop = false;
//
// typeid
//
this.typeid.AllowDecimal = false;
this.typeid.AllowNegative = false;
this.typeid.AllowRelative = false;
this.typeid.ForeColor = System.Drawing.SystemColors.WindowText;
this.typeid.ImeMode = System.Windows.Forms.ImeMode.Off;
this.typeid.Location = new System.Drawing.Point(60, 2);
this.typeid.Name = "typeid";
this.typeid.Size = new System.Drawing.Size(68, 20);
this.typeid.TabIndex = 1;
this.typeid.TextChanged += new System.EventHandler(this.typeid_TextChanged);
//
// ThingBrowserControl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);

View file

@ -429,6 +429,8 @@ namespace CodeImp.DoomBuilder.Controls
spritepanel.Left = infopanel.Width - spritepanel.Width;
typelist.Height = infopanel.Top - typelist.Top;
typelist.Width = this.Width;
bClear.Left = this.Width - bClear.Width - bClear.Margin.Right;
tbFilter.Width = bClear.Left - tbFilter.Left - bClear.Margin.Left;
}
//mxd. If it's clickable, all data is valid.

View file

@ -163,7 +163,6 @@ namespace CodeImp.DoomBuilder.Editing
// Decompress stream
MemoryStream memstream; //mxd
filedata.Seek(0, SeekOrigin.Begin);
try
{

View file

@ -138,7 +138,6 @@ namespace CodeImp.DoomBuilder.Editing
MemoryStream instream = new MemoryStream(File.ReadAllBytes(filename));
// Decompress data
instream.Seek(0, SeekOrigin.Begin);
MemoryStream outstream = SharpCompressHelper.DecompressStream(instream); //mxd
recstream = new MemoryStream(outstream.ToArray());

View file

@ -53,8 +53,6 @@
//
// cbTagPicker
//
this.cbTagPicker.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.cbTagPicker.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
this.cbTagPicker.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.cbTagPicker.FormattingEnabled = true;
@ -65,7 +63,6 @@
//
// newTag
//
this.newTag.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.newTag.Location = new System.Drawing.Point(213, 5);
this.newTag.Name = "newTag";
this.newTag.Size = new System.Drawing.Size(54, 24);
@ -78,7 +75,6 @@
//
// unusedTag
//
this.unusedTag.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.unusedTag.Location = new System.Drawing.Point(270, 5);
this.unusedTag.Name = "unusedTag";
this.unusedTag.Size = new System.Drawing.Size(54, 24);
@ -97,7 +93,6 @@
//
// clear
//
this.clear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.clear.Image = global::CodeImp.DoomBuilder.Properties.Resources.Reset;
this.clear.Location = new System.Drawing.Point(327, 5);
this.clear.Name = "clear";
@ -118,6 +113,7 @@
this.Controls.Add(this.label1);
this.Name = "TagSelector";
this.Size = new System.Drawing.Size(356, 35);
this.Resize += new System.EventHandler(this.TagSelector_Resize);
this.ResumeLayout(false);
this.PerformLayout();

View file

@ -251,6 +251,15 @@ namespace CodeImp.DoomBuilder.GZBuilder.Controls
valid = true;
}
//mxd. Because anchor-based alignment fails when using high-Dpi settings...
private void TagSelector_Resize(object sender, EventArgs e)
{
clear.Left = this.Width - clear.Width - clear.Margin.Right;
unusedTag.Left = clear.Left - clear.Margin.Left - unusedTag.Margin.Right - unusedTag.Width;
newTag.Left = unusedTag.Left - unusedTag.Margin.Left - newTag.Margin.Right - newTag.Width;
cbTagPicker.Width = newTag.Left - newTag.Margin.Left - cbTagPicker.Margin.Right - cbTagPicker.Left;
}
#endregion
}
}

View file

@ -34,9 +34,9 @@
this.removetag = new System.Windows.Forms.Button();
this.addtag = new System.Windows.Forms.Button();
this.clear = new System.Windows.Forms.Button();
this.clearalltags = new System.Windows.Forms.Button();
this.tagslist = new System.Windows.Forms.LinkLabel();
this.label1 = new System.Windows.Forms.Label();
this.clearalltags = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// curtaglabel
@ -55,8 +55,6 @@
//
// tagpicker
//
this.tagpicker.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tagpicker.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
this.tagpicker.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.tagpicker.FormattingEnabled = true;
@ -68,7 +66,6 @@
//
// newtag
//
this.newtag.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.newtag.Location = new System.Drawing.Point(299, 5);
this.newtag.Name = "newtag";
this.newtag.Size = new System.Drawing.Size(54, 24);
@ -81,7 +78,6 @@
//
// unusedtag
//
this.unusedtag.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.unusedtag.Location = new System.Drawing.Point(356, 5);
this.unusedtag.Name = "unusedtag";
this.unusedtag.Size = new System.Drawing.Size(54, 24);
@ -93,7 +89,6 @@
//
// removetag
//
this.removetag.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.removetag.Image = global::CodeImp.DoomBuilder.Properties.Resources.SearchClear;
this.removetag.Location = new System.Drawing.Point(413, 33);
this.removetag.Name = "removetag";
@ -105,7 +100,6 @@
//
// addtag
//
this.addtag.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.addtag.Image = global::CodeImp.DoomBuilder.Properties.Resources.Add;
this.addtag.Location = new System.Drawing.Point(384, 33);
this.addtag.Name = "addtag";
@ -117,7 +111,6 @@
//
// clear
//
this.clear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.clear.Image = global::CodeImp.DoomBuilder.Properties.Resources.Reset;
this.clear.Location = new System.Drawing.Point(413, 5);
this.clear.Name = "clear";
@ -127,6 +120,17 @@
this.clear.UseVisualStyleBackColor = true;
this.clear.Click += new System.EventHandler(this.clear_Click);
//
// clearalltags
//
this.clearalltags.Image = global::CodeImp.DoomBuilder.Properties.Resources.Clear;
this.clearalltags.Location = new System.Drawing.Point(0, 33);
this.clearalltags.Name = "clearalltags";
this.clearalltags.Size = new System.Drawing.Size(24, 24);
this.clearalltags.TabIndex = 10;
this.tooltip.SetToolTip(this.clearalltags, "Remove all tags");
this.clearalltags.UseVisualStyleBackColor = true;
this.clearalltags.Click += new System.EventHandler(this.clearalltags_Click);
//
// tagslist
//
this.tagslist.AutoSize = true;
@ -147,17 +151,6 @@
this.label1.TabIndex = 6;
this.label1.Text = "Tags:";
//
// clearalltags
//
this.clearalltags.Image = global::CodeImp.DoomBuilder.Properties.Resources.Clear;
this.clearalltags.Location = new System.Drawing.Point(0, 33);
this.clearalltags.Name = "clearalltags";
this.clearalltags.Size = new System.Drawing.Size(24, 24);
this.clearalltags.TabIndex = 10;
this.tooltip.SetToolTip(this.clearalltags, "Remove all tags");
this.clearalltags.UseVisualStyleBackColor = true;
this.clearalltags.Click += new System.EventHandler(this.clearalltags_Click);
//
// TagsSelector
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@ -174,6 +167,7 @@
this.Controls.Add(this.curtaglabel);
this.Name = "TagsSelector";
this.Size = new System.Drawing.Size(442, 60);
this.Resize += new System.EventHandler(this.TagsSelector_Resize);
this.ResumeLayout(false);
this.PerformLayout();

View file

@ -409,6 +409,17 @@ namespace CodeImp.DoomBuilder.GZBuilder.Controls
}
}
//mxd. Because anchor-based alignment fails when using high-Dpi settings...
private void TagsSelector_Resize(object sender, EventArgs e)
{
clear.Left = this.Width - clear.Width - clear.Margin.Right;
unusedtag.Left = clear.Left - clear.Margin.Left - unusedtag.Margin.Right - unusedtag.Width;
newtag.Left = unusedtag.Left - unusedtag.Margin.Left - newtag.Margin.Right - newtag.Width;
tagpicker.Width = newtag.Left - newtag.Margin.Left - tagpicker.Margin.Right - tagpicker.Left;
removetag.Left = clear.Left;
addtag.Left = removetag.Left - removetag.Margin.Left - addtag.Margin.Right - addtag.Width;
}
#endregion
}
}

View file

@ -120,10 +120,4 @@
<metadata name="tooltip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="tooltip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="tooltip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View file

@ -22,6 +22,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.Data
internal static MemoryStream DecompressStream(Stream stream)
{
stream.Seek(0, SeekOrigin.Begin);
BZip2Stream bzip = new BZip2Stream(stream, CompressionMode.Decompress, false, false);
byte[] buffer = new byte[16 * 1024];

View file

@ -203,6 +203,13 @@ namespace CodeImp.DoomBuilder.GZBuilder.Windows
this.Close();
}
private void bQuit_Click(object sender, EventArgs e)
{
if(General.Map != null) General.Map.SaveMapBackup();
this.DialogResult = DialogResult.Cancel;
this.Close();
}
private void bToClipboard_Click(object sender, EventArgs e)
{
errorMessage.SelectAll();

View file

@ -51,6 +51,7 @@
this.bQuit.Text = "Quit";
this.bQuit.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.bQuit.UseVisualStyleBackColor = true;
this.bQuit.Click += new System.EventHandler(this.bQuit_Click);
//
// bContinue
//

View file

@ -127,6 +127,7 @@ namespace CodeImp.DoomBuilder
private const string SCRIPTS_DIR = "Scripting";
private const string SCREENSHOTS_DIR = "Screenshots"; //mxd
private const string SNIPPETS_DIR = "Snippets"; //mxd
private const string MAP_RESTORE_DIR = "Restore"; //mxd
private const string SETUP_DIR = "Setup";
private const string SPRITES_DIR = "Sprites";
private const string HELP_FILE = "Refmanual.chm";
@ -151,6 +152,7 @@ namespace CodeImp.DoomBuilder
private static string apppath;
private static string setuppath;
private static string settingspath;
private static string restorepath; //mxd
private static string logfile;
private static string temppath;
private static string configspath;
@ -174,7 +176,7 @@ namespace CodeImp.DoomBuilder
private static TypesManager types;
private static Clock clock;
private static ErrorLogger errorlogger;
private static Mutex appmutex;
//private static Mutex appmutex;
// Configurations
private static List<ConfigurationInfo> configs;
@ -209,6 +211,7 @@ namespace CodeImp.DoomBuilder
public static string TempPath { get { return temppath; } }
public static string ConfigsPath { get { return configspath; } }
internal static string SettingsPath { get { return settingspath; } } //mxd
internal static string MapRestorePath { get { return restorepath; } } //mxd
internal static string LogFile { get { return logfile; } } //mxd
public static string CompilersPath { get { return compilerspath; } }
public static string PluginsPath { get { return pluginspath; } }
@ -567,7 +570,7 @@ namespace CodeImp.DoomBuilder
Thread.CurrentThread.Name = "Main Application";
// Application is running
appmutex = new Mutex(false, "gzdoombuilder"); //"doombuilder2"
//appmutex = new Mutex(false, "gzdoombuilder"); //"doombuilder2"
// Get a reference to this assembly
thisasm = Assembly.GetExecutingAssembly();
@ -584,6 +587,7 @@ namespace CodeImp.DoomBuilder
temppath = Path.GetTempPath();
setuppath = Path.Combine(apppath, SETUP_DIR);
settingspath = (portablemode ? apppath : Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), SETTINGS_DIR)); //mxd
restorepath = Path.Combine(settingspath, MAP_RESTORE_DIR);
configspath = Path.Combine(apppath, GAME_CONFIGS_DIR);
compilerspath = Path.Combine(apppath, COMPILERS_DIR);
pluginspath = Path.Combine(apppath, PLUGINS_DIR);
@ -728,6 +732,20 @@ namespace CodeImp.DoomBuilder
mainwindow.ShowConfiguration();
}
//mxd. Check backup files
if(Directory.Exists(restorepath))
{
foreach(string backup in Directory.GetFiles(restorepath, "*.restore"))
{
// Remove if created more than a month ago
if((DateTime.Now - File.GetLastWriteTime(backup)).TotalDays > 30)
{
File.Delete(backup);
WriteLogLine("Removed '" + backup + "' map backup.");
}
}
}
//mxd. Check for updates?
if(General.Settings.CheckForUpdates) UpdateChecker.PerformCheck(false);

View file

@ -101,7 +101,7 @@ namespace CodeImp.DoomBuilder
public MapOptions Options { get { return options; } }
public MapSet Map { get { return map; } }
public DataManager Data { get { return data; } }
public bool IsChanged { get { return changed | CheckScriptChanged(); } set { changed |= value; } }
public bool IsChanged { get { return changed | CheckScriptChanged(); } set { changed |= value; General.MainWindow.UpdateMapChangedStatus(); } }
public bool IsDisposed { get { return isdisposed; } }
internal D3DDevice Graphics { get { return graphics; } }
public IRenderer2D Renderer2D { get { return renderer2d; } }
@ -326,6 +326,7 @@ namespace CodeImp.DoomBuilder
// Success
this.changed = false;
General.WriteLogLine("Map creation done");
General.MainWindow.UpdateMapChangedStatus(); //mxd
return true;
}
@ -400,22 +401,9 @@ namespace CodeImp.DoomBuilder
// Close the map file
mapwad.Dispose();
// Read the map from temp file
map.BeginAddRemove();
General.WriteLogLine("Initializing map format interface " + config.FormatInterface + "...");
io = MapSetIO.Create(config.FormatInterface, tempwad, this);
General.WriteLogLine("Reading map data structures from file...");
#if DEBUG
map = io.Read(map, TEMP_MAP_HEADER);
#else
try { map = io.Read(map, TEMP_MAP_HEADER); } catch(Exception e)
{
General.ErrorLogger.Add(ErrorType.Error, "Unable to read the map data structures with the specified configuration. " + e.GetType().Name + ": " + e.Message);
General.ShowErrorMessage("Unable to read the map data structures with the specified configuration.", MessageBoxButtons.OK);
return false;
}
#endif
map.EndAddRemove();
//mxd. Create MapSet
bool maprestored;
if(!CreateMapSet(map, filepathname, options, out maprestored)) return false;
// Load data manager
General.WriteLogLine("Loading data resources...");
@ -459,8 +447,9 @@ namespace CodeImp.DoomBuilder
//if (General.Editing.Mode is ClassicMode) (General.Editing.Mode as ClassicMode).CenterInScreen();
// Success
this.changed = false;
this.changed = maprestored; //mxd
General.WriteLogLine("Map loading done");
General.MainWindow.UpdateMapChangedStatus(); //mxd
return true;
}
@ -513,23 +502,11 @@ namespace CodeImp.DoomBuilder
// Close the map file
mapwad.Dispose();
// Read the map from temp file
newmap.BeginAddRemove();
General.WriteLogLine("Initializing map format interface " + config.FormatInterface + "...");
io = MapSetIO.Create(config.FormatInterface, tempwad, this);
General.WriteLogLine("Reading map data structures from file...");
#if DEBUG
newmap = io.Read(newmap, TEMP_MAP_HEADER);
#else
try { newmap = io.Read(newmap, TEMP_MAP_HEADER); } catch(Exception e)
{
General.ErrorLogger.Add(ErrorType.Error, "Unable to read the map data structures with the specified configuration. " + e.GetType().Name + ": " + e.Message);
General.ShowErrorMessage("Unable to read the map data structures with the specified configuration.", MessageBoxButtons.OK);
return false;
}
#endif
newmap.EndAddRemove();
//mxd. Create MapSet
bool maprestored;
if(!CreateMapSet(newmap, filepathname, options, out maprestored)) return false;
//mxd. And switch to it
ChangeMapSet(newmap);
//mxd. Translate texture names
@ -546,7 +523,7 @@ namespace CodeImp.DoomBuilder
options.ReadSelectionGroups();
//mxd. Center map in screen or on stored coordinates
if (General.Editing.Mode is ClassicMode)
if(General.Editing.Mode is ClassicMode)
{
ClassicMode mode = General.Editing.Mode as ClassicMode;
mode.OnRedoEnd();
@ -558,8 +535,76 @@ namespace CodeImp.DoomBuilder
}
// Success
this.changed = false;
this.changed = maprestored;
General.WriteLogLine("Map switching done");
General.MainWindow.UpdateMapChangedStatus(); //mxd
return true;
}
//mxd
private bool CreateMapSet(MapSet newmap, string filepathname, MapOptions options, out bool maprestored)
{
maprestored = false;
string wadname = Path.GetFileNameWithoutExtension(filepathname);
if(!string.IsNullOrEmpty(wadname))
{
string hash = MurmurHash2.Hash(wadname + options.LevelName + File.GetLastWriteTime(filepathname)).ToString();
string backuppath = Path.Combine(General.MapRestorePath, wadname + "." + hash + ".restore");
// Backup exists and it's newer than the map itself?
if(File.Exists(backuppath) && File.GetLastWriteTime(backuppath) > File.GetLastWriteTime(filepathname))
{
if(General.ShowWarningMessage("Looks like your previous editing session has gone terribly wrong." + Environment.NewLine
+ "Would you like to restore the map from the backup?", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
General.WriteLogLine("Initializing map format interface " + config.FormatInterface + "...");
io = MapSetIO.Create(config.FormatInterface, tempwad, this);
General.WriteLogLine("Restoring map from '" + backuppath + "'...");
#if DEBUG
// Restore map
newmap.Deserialize(SharpCompressHelper.DecompressStream(new MemoryStream(File.ReadAllBytes(backuppath))));
#else
try
{
// Restore map
newmap.Deserialize(SharpCompressHelper.DecompressStream(new MemoryStream(File.ReadAllBytes(backuppath))));
// Delete the backup
File.Delete(backuppath);
}
catch(Exception e)
{
General.ErrorLogger.Add(ErrorType.Error, "Unable to restore the map data structures from the backup. " + e.GetType().Name + ": " + e.Message);
General.ShowErrorMessage("Unable to restore the map data structures from the backup.", MessageBoxButtons.OK);
return false;
}
#endif
maprestored = true;
}
}
}
// Read the map from temp file
if(!maprestored)
{
newmap.BeginAddRemove();
General.WriteLogLine("Initializing map format interface " + config.FormatInterface + "...");
io = MapSetIO.Create(config.FormatInterface, tempwad, this);
General.WriteLogLine("Reading map data structures from file...");
#if DEBUG
newmap = io.Read(map, TEMP_MAP_HEADER);
#else
try { newmap = io.Read(map, TEMP_MAP_HEADER); } catch(Exception e)
{
General.ErrorLogger.Add(ErrorType.Error, "Unable to read the map data structures with the specified configuration. " + e.GetType().Name + ": " + e.Message);
General.ShowErrorMessage("Unable to read the map data structures with the specified configuration.", MessageBoxButtons.OK);
return false;
}
#endif
newmap.EndAddRemove();
}
return true;
}
@ -918,6 +963,7 @@ namespace CodeImp.DoomBuilder
// Success!
General.WriteLogLine("Map saving done");
General.MainWindow.UpdateMapChangedStatus(); //mxd
return true;
}
@ -946,6 +992,50 @@ namespace CodeImp.DoomBuilder
return true;
}
//mxd
internal void SaveMapBackup()
{
if(isdisposed || map == null || map.IsDisposed || string.IsNullOrEmpty(filepathname) || options == null)
{
General.WriteLogLine("Map backup saving failed: required structures already disposed...");
return;
}
#if !DEBUG
try
{
#endif
string wadname = Path.GetFileNameWithoutExtension(filepathname);
if(!string.IsNullOrEmpty(wadname))
{
// Make backup file path
if(!Directory.Exists(General.MapRestorePath)) Directory.CreateDirectory(General.MapRestorePath);
string hash = MurmurHash2.Hash(wadname + options.LevelName + File.GetLastWriteTime(filepathname)).ToString();
string backuppath = Path.Combine(General.MapRestorePath, wadname + "." + hash + ".restore");
// Export map
MemoryStream ms = map.Serialize();
ms.Seek(0, SeekOrigin.Begin);
File.WriteAllBytes(backuppath, SharpCompressHelper.CompressStream(ms).ToArray());
// Log it
General.WriteLogLine("Map backup saved to '" + backuppath + "'");
}
else
{
// Log it
General.WriteLogLine("Map backup saving failed: invalid map WAD name");
}
#if !DEBUG
}
catch(Exception e)
{
// Log it
General.WriteLogLine("Map backup saving failed: " + e.Source + ": " + e.Message);
}
#endif
}
#endregion
#region ================== Nodebuild
@ -1858,7 +1948,7 @@ namespace CodeImp.DoomBuilder
}
// This sets a new mapset for editing
internal void ChangeMapSet(MapSet newmap)
private void ChangeMapSet(MapSet newmap)
{
// Let the plugin and editing mode know
General.Plugins.OnMapSetChangeBegin();

View file

@ -146,7 +146,7 @@ namespace CodeImp.DoomBuilder.Geometry
#region ================== Serialization
// Serialize / deserialize
/*internal void ReadWrite(IReadWriteStream s)
internal void ReadWrite(IReadWriteStream s)
{
if(s.IsWriting)
{
@ -183,7 +183,7 @@ namespace CodeImp.DoomBuilder.Geometry
sidedefindices = new int[c];
for(int i = 0; i < c; i++) s.rInt(out sidedefindices[i]);
}
}*/
}
// After deserialization we need to find the actual sidedefs back
internal void PostDeserialize(MapSet map)

View file

@ -16,6 +16,7 @@
#region ================== Namespaces
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
@ -89,11 +90,11 @@ namespace CodeImp.DoomBuilder.IO
}
// Destructor
~WAD()
/*~WAD()
{
// Make sure everything is disposed
this.Dispose();
}
}*/
// Disposer
public void Dispose()
@ -101,8 +102,13 @@ namespace CodeImp.DoomBuilder.IO
// Not already disposed?
if(!isdisposed)
{
// Flush all changes
Flush();
// Only possible when not read-only
if(!isreadonly)
{
// Flush writing changes
if(writer != null) writer.Flush();
if(file != null) file.Flush();
}
// Clean up
if(lumps != null) foreach(Lump l in lumps) l.Dispose();
@ -112,6 +118,7 @@ namespace CodeImp.DoomBuilder.IO
// Done
isdisposed = true;
GC.SuppressFinalize(this); //mxd
}
}
@ -248,7 +255,7 @@ namespace CodeImp.DoomBuilder.IO
}
// This flushes writing changes
public void Flush()
/*public void Flush()
{
// Only possible when not read-only
if(!isreadonly)
@ -257,7 +264,7 @@ namespace CodeImp.DoomBuilder.IO
if(writer != null) writer.Flush();
if(file != null) file.Flush();
}
}
}*/
#endregion

View file

@ -867,6 +867,7 @@ namespace CodeImp.DoomBuilder.Map
s.SerializedIndex = index++;
s.ReadWrite(stream);
s.Triangles.ReadWrite(stream); //mxd
}
}
@ -874,8 +875,8 @@ namespace CodeImp.DoomBuilder.Map
#region ================== Deserialization
// This serializes the MapSet
private void Deserialize(MemoryStream stream)
// This deserializes the MapSet
internal void Deserialize(MemoryStream stream)
{
stream.Seek(0, SeekOrigin.Begin);
DeserializerStream deserializer = new DeserializerStream(stream);
@ -999,6 +1000,7 @@ namespace CodeImp.DoomBuilder.Map
{
array[i] = CreateSector();
array[i].ReadWrite(stream);
array[i].Triangles.ReadWrite(stream); //mxd
}
return array;

View file

@ -148,6 +148,7 @@ namespace CodeImp.DoomBuilder.Map
this.tags = new List<int> { 0 }; //mxd
this.updateneeded = true;
this.triangulationneeded = true;
this.triangles = new Triangulation(); //mxd
this.surfaceentries = new SurfaceEntryCollection();
if(map == General.Map.Map)

View file

@ -29,7 +29,6 @@ namespace CodeImp.DoomBuilder.Rendering
// Properties
ProjectedFrustum2D Frustum2D { get; }
bool DrawThingCages { get; set; }
bool FullBrightness { get; set; }
bool ShowSelection { get; set; }
bool ShowHighlight { get; set; }

View file

@ -138,7 +138,6 @@ namespace CodeImp.DoomBuilder.Rendering
public ViewMode ViewMode { get { return viewmode; } }
public SurfaceManager Surfaces { get { return surfaces; } }
public RectangleF Viewport { get { return viewport; } } //mxd
new public bool FullBrightness { get { return fullbrightness; } set { fullbrightness = value; } } //mxd
#endregion

View file

@ -112,7 +112,6 @@ namespace CodeImp.DoomBuilder.Rendering
public ProjectedFrustum2D Frustum2D { get { return frustum; } }
public bool DrawThingCages { get { return renderthingcages; } set { renderthingcages = value; } }
new public bool FullBrightness { get { return fullbrightness; } set { fullbrightness = value; } }
public bool ShowSelection { get { return showselection; } set { showselection = value; } }
public bool ShowHighlight { get { return showhighlight; } set { showhighlight = value; } }
@ -371,7 +370,7 @@ namespace CodeImp.DoomBuilder.Rendering
}
// Determine shader pass to use
if(fullbrightness) shaderpass = 1; else shaderpass = 0;
shaderpass = (fullbrightness ? 1 : 0);
// Create crosshair vertices
if(crosshairverts == null)

View file

@ -400,7 +400,6 @@ namespace CodeImp.DoomBuilder.Windows
this.tabs.Controls.Add(this.tabactions);
this.tabs.Controls.Add(this.tabgeneralized);
this.tabs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tabs.ItemSize = new System.Drawing.Size(150, 19);
this.tabs.Location = new System.Drawing.Point(10, 10);
this.tabs.Margin = new System.Windows.Forms.Padding(1);
this.tabs.Name = "tabs";

View file

@ -264,7 +264,6 @@ namespace CodeImp.DoomBuilder.Windows
this.tabs.Controls.Add(this.tabmodes);
this.tabs.Enabled = false;
this.tabs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tabs.ItemSize = new System.Drawing.Size(108, 18);
this.tabs.Location = new System.Drawing.Point(277, 12);
this.tabs.Name = "tabs";
this.tabs.Padding = new System.Drawing.Point(24, 3);

View file

@ -1487,7 +1487,7 @@ namespace CodeImp.DoomBuilder.Windows
this.thingfilters.ImageTransparentColor = System.Drawing.Color.Magenta;
this.thingfilters.Margin = new System.Windows.Forms.Padding(1, 1, 0, 2);
this.thingfilters.Name = "thingfilters";
this.thingfilters.Size = new System.Drawing.Size(120, 22);
this.thingfilters.Size = new System.Drawing.Size((int)(120 * MainForm.DPIScaler.Width), (int)(22 * MainForm.DPIScaler.Height));
this.thingfilters.Text = "(show all)";
this.thingfilters.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.thingfilters.DropDownClosed += new System.EventHandler(this.LoseFocus);
@ -1517,7 +1517,7 @@ namespace CodeImp.DoomBuilder.Windows
this.linedefcolorpresets.ImageTransparentColor = System.Drawing.Color.Magenta;
this.linedefcolorpresets.Margin = new System.Windows.Forms.Padding(1, 1, 0, 2);
this.linedefcolorpresets.Name = "linedefcolorpresets";
this.linedefcolorpresets.Size = new System.Drawing.Size(120, 22);
this.linedefcolorpresets.Size = new System.Drawing.Size((int)(120 * MainForm.DPIScaler.Width), (int)(22 * MainForm.DPIScaler.Height));
this.linedefcolorpresets.Text = "No presets";
this.linedefcolorpresets.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.linedefcolorpresets.DropDownItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.linedefcolorpresets_DropDownItemClicked);
@ -1852,7 +1852,6 @@ namespace CodeImp.DoomBuilder.Windows
//
this.buttontest.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.buttontest.Image = global::CodeImp.DoomBuilder.Properties.Resources.Test;
this.buttontest.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.buttontest.ImageTransparentColor = System.Drawing.Color.Magenta;
this.buttontest.Name = "buttontest";
this.buttontest.Size = new System.Drawing.Size(32, 20);
@ -1895,7 +1894,6 @@ namespace CodeImp.DoomBuilder.Windows
//
this.statuslabel.Image = global::CodeImp.DoomBuilder.Properties.Resources.Status2;
this.statuslabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.statuslabel.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.statuslabel.Name = "statuslabel";
this.statuslabel.Size = new System.Drawing.Size(340, 18);
this.statuslabel.Spring = true;
@ -1907,7 +1905,7 @@ namespace CodeImp.DoomBuilder.Windows
this.configlabel.AutoSize = false;
this.configlabel.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.configlabel.Name = "configlabel";
this.configlabel.Size = new System.Drawing.Size(280, 18);
this.configlabel.Size = new System.Drawing.Size((int)(280 * MainForm.DPIScaler.Width), (int)(18 * MainForm.DPIScaler.Height));
this.configlabel.Text = "ZDoom (Doom in Hexen Format)";
this.configlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.configlabel.ToolTipText = "Current Game Configuration";
@ -2168,7 +2166,6 @@ namespace CodeImp.DoomBuilder.Windows
this.warnsLabel.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.warnsLabel.Image = global::CodeImp.DoomBuilder.Properties.Resources.WarningOff;
this.warnsLabel.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.warnsLabel.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.warnsLabel.Name = "warnsLabel";
this.warnsLabel.Size = new System.Drawing.Size(44, 18);
this.warnsLabel.Text = "0";

View file

@ -164,6 +164,7 @@ namespace CodeImp.DoomBuilder.Windows
// Updating
private int lockupdatecount;
private bool mapchanged; //mxd
//mxd. Hints
private Docker hintsDocker;
@ -398,21 +399,8 @@ namespace CodeImp.DoomBuilder.Windows
// This updates all menus for the current status
internal void UpdateInterface()
{
// Map opened?
if(General.Map != null)
{
// Show map name and filename in caption
this.Text = General.Map.FileTitle + " (" + General.Map.Options.CurrentName + ") - " + Application.ProductName;
}
else
{
// Show normal caption
#if DEBUG
this.Text = Application.ProductName + " - DEVBUILD";
#else
this.Text = Application.ProductName + " R" + General.ThisAssembly.GetName().Version.Revision;
#endif
}
//mxd. Update title
UpdateTitle();
// Update the status bar
UpdateStatusbar();
@ -429,6 +417,26 @@ namespace CodeImp.DoomBuilder.Windows
UpdateHelpMenu();
}
//mxd
private void UpdateTitle()
{
// Map opened?
if(General.Map != null)
{
// Show map name and filename in caption
this.Text = General.Map.FileTitle + (mapchanged ? "* (" : " (") + General.Map.Options.CurrentName + ") - " + Application.ProductName;
}
else
{
// Show normal caption
#if DEBUG
this.Text = Application.ProductName + " - DEVBUILD";
#else
this.Text = Application.ProductName + " R" + General.ThisAssembly.GetName().Version.Revision;
#endif
}
}
// Generic event that invokes the tagged action
public void InvokeTaggedAction(object sender, EventArgs e)
{
@ -470,6 +478,14 @@ namespace CodeImp.DoomBuilder.Windows
lockupdatecount = 0;
}*/
//mxd
internal void UpdateMapChangedStatus()
{
if(General.Map == null || General.Map.IsChanged == mapchanged) return;
mapchanged = General.Map.IsChanged;
UpdateTitle();
}
// This sets the focus on the display for correct key input
public bool FocusDisplay()
{
@ -1715,7 +1731,7 @@ namespace CodeImp.DoomBuilder.Windows
if(!(f is NullThingsFilter) && !f.IsValid())
{
item.Image = Resources.Warning;
item.ImageScaling = ToolStripItemImageScaling.None;
//item.ImageScaling = ToolStripItemImageScaling.None;
}
return item;
@ -1771,7 +1787,7 @@ namespace CodeImp.DoomBuilder.Windows
{
CheckOnClick = true,
Tag = p,
ImageScaling = ToolStripItemImageScaling.None,
//ImageScaling = ToolStripItemImageScaling.None,
Checked = p.Enabled,
ToolTipText = "Hold Shift to toggle several items at once"
};

View file

@ -799,7 +799,6 @@ namespace CodeImp.DoomBuilder.Windows
this.tabs.Controls.Add(this.tabcolors);
this.tabs.Controls.Add(this.tabpasting);
this.tabs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tabs.ItemSize = new System.Drawing.Size(110, 19);
this.tabs.Location = new System.Drawing.Point(11, 13);
this.tabs.Name = "tabs";
this.tabs.Padding = new System.Drawing.Point(24, 3);

View file

@ -99,7 +99,6 @@ namespace CodeImp.DoomBuilder.Windows
this.tabs.Controls.Add(this.directorytab);
this.tabs.Controls.Add(this.pk3filetab);
this.tabs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.tabs.ItemSize = new System.Drawing.Size(110, 19);
this.tabs.Location = new System.Drawing.Point(9, 11);
this.tabs.Name = "tabs";
this.tabs.Padding = new System.Drawing.Point(16, 3);

View file

@ -84,7 +84,7 @@
this.actionhelp = new CodeImp.DoomBuilder.Controls.ActionSpecialHelpButton();
this.action = new CodeImp.DoomBuilder.Controls.ActionSelectorControl();
this.browseaction = new System.Windows.Forms.Button();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.grouptag = new System.Windows.Forms.GroupBox();
this.tagSelector = new CodeImp.DoomBuilder.GZBuilder.Controls.TagSelector();
this.tabcomment = new System.Windows.Forms.TabPage();
this.commenteditor = new CodeImp.DoomBuilder.Controls.CommentEditor();
@ -109,7 +109,7 @@
this.groupbehaviour.SuspendLayout();
this.grouprendering.SuspendLayout();
this.actiongroup.SuspendLayout();
this.groupBox3.SuspendLayout();
this.grouptag.SuspendLayout();
this.tabcomment.SuspendLayout();
this.tabcustom.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.hint)).BeginInit();
@ -310,7 +310,6 @@
this.tabs.Controls.Add(this.tabcomment);
this.tabs.Controls.Add(this.tabcustom);
this.tabs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tabs.ItemSize = new System.Drawing.Size(120, 19);
this.tabs.Location = new System.Drawing.Point(10, 10);
this.tabs.Margin = new System.Windows.Forms.Padding(1);
this.tabs.Name = "tabs";
@ -339,8 +338,6 @@
//
// settingsgroup
//
this.settingsgroup.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.settingsgroup.Controls.Add(this.missingflags);
this.settingsgroup.Controls.Add(this.flags);
this.settingsgroup.Location = new System.Drawing.Point(242, 6);
@ -538,7 +535,7 @@
this.tabeffects.Controls.Add(this.groupbehaviour);
this.tabeffects.Controls.Add(this.grouprendering);
this.tabeffects.Controls.Add(this.actiongroup);
this.tabeffects.Controls.Add(this.groupBox3);
this.tabeffects.Controls.Add(this.grouptag);
this.tabeffects.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tabeffects.Location = new System.Drawing.Point(4, 23);
this.tabeffects.Name = "tabeffects";
@ -815,21 +812,21 @@
this.browseaction.UseVisualStyleBackColor = true;
this.browseaction.Click += new System.EventHandler(this.browseaction_Click);
//
// groupBox3
// grouptag
//
this.groupBox3.Controls.Add(this.tagSelector);
this.groupBox3.Location = new System.Drawing.Point(3, 330);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(615, 66);
this.groupBox3.TabIndex = 0;
this.groupBox3.TabStop = false;
this.groupBox3.Text = " Identification ";
this.grouptag.Controls.Add(this.tagSelector);
this.grouptag.Location = new System.Drawing.Point(3, 330);
this.grouptag.Name = "grouptag";
this.grouptag.Size = new System.Drawing.Size(615, 66);
this.grouptag.TabIndex = 0;
this.grouptag.TabStop = false;
this.grouptag.Text = " Identification ";
//
// tagSelector
//
this.tagSelector.Location = new System.Drawing.Point(6, 21);
this.tagSelector.Name = "tagSelector";
this.tagSelector.Size = new System.Drawing.Size(569, 35);
this.tagSelector.Size = new System.Drawing.Size(603, 35);
this.tagSelector.TabIndex = 8;
//
// tabcomment
@ -845,9 +842,6 @@
//
// commenteditor
//
this.commenteditor.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.commenteditor.Location = new System.Drawing.Point(3, 3);
this.commenteditor.Name = "commenteditor";
this.commenteditor.Size = new System.Drawing.Size(621, 396);
@ -976,7 +970,7 @@
this.grouprendering.ResumeLayout(false);
this.actiongroup.ResumeLayout(false);
this.actiongroup.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.grouptag.ResumeLayout(false);
this.tabcomment.ResumeLayout(false);
this.tabcustom.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.hint)).EndInit();
@ -993,7 +987,7 @@
private System.Windows.Forms.Button cancel;
private System.Windows.Forms.Button apply;
private System.Windows.Forms.TabPage tabcustom;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.GroupBox grouptag;
private System.Windows.Forms.GroupBox actiongroup;
private CodeImp.DoomBuilder.Controls.ActionSelectorControl action;
private System.Windows.Forms.Button browseaction;

View file

@ -32,6 +32,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug + Profiler|x86' ">
<DebugSymbols>true</DebugSymbols>

View file

@ -30,9 +30,10 @@
<OutputPath>..\..\..\Build\Plugins\</OutputPath>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Optimize>true</Optimize>
<DebugType>none</DebugType>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug + Profiler|x86' ">
<DebugSymbols>true</DebugSymbols>

View file

@ -74,6 +74,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
// Text labels for all unstable lines
protected LineLengthLabel[] labels;
//mxd. Undo description
protected string undodescription = "Drag geometry";
// Keep track of view changes
private float lastoffsetx;
private float lastoffsety;
@ -417,7 +420,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
General.Map.UndoRedo.IgnorePropChanges = false;
// Make undo for the dragging
General.Map.UndoRedo.CreateUndo("Drag geometry");
General.Map.UndoRedo.CreateUndo(undodescription);
// Move selected geometry to final position
MoveGeometryRelative(mousemappos - dragstartmappos, snaptogrid, snaptogridincrement, snaptonearest, snaptocardinaldirection);

View file

@ -71,6 +71,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// Initialize
base.StartDrag(dragstartmappos);
undodescription = (selectedlines.Count == 1 ? "Drag linedef" : "Drag " + selectedlines.Count + " linedefs"); //mxd
// We have no destructor
GC.SuppressFinalize(this);

View file

@ -71,6 +71,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// Initialize
base.StartDrag(dragstartmappos);
undodescription = (selectedsectors.Count == 1 ? "Drag sector" : "Drag " + selectedsectors.Count + " sectors"); //mxd
// We have no destructor
GC.SuppressFinalize(this);

View file

@ -371,7 +371,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
}
// Make undo for the dragging
General.Map.UndoRedo.CreateUndo("Drag things");
General.Map.UndoRedo.CreateUndo((selectedthings.Count == 1 ? "Drag thing" : "Drag " + selectedthings.Count + " things"));
// Move selected geometry to final position
if(aligndata != null && aligndata.Active) //mxd. Apply aligning

View file

@ -61,6 +61,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// Initialize
base.StartDrag(dragstartmappos);
undodescription = (selectedverts.Count == 1 ? "Drag vertex" : "Drag " + selectedverts.Count + " vertices"); //mxd
// We have no destructor
GC.SuppressFinalize(this);

View file

@ -19,7 +19,6 @@
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using CodeImp.DoomBuilder.Config;
using CodeImp.DoomBuilder.Map;
using CodeImp.DoomBuilder.Rendering;
using CodeImp.DoomBuilder.Geometry;
@ -323,17 +322,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
base.OnDisengage();
// Check which mode we are switching to
if(General.Editing.NewMode is VerticesMode)
if(General.Editing.NewMode is VerticesMode || General.Editing.NewMode is LinedefsMode)
{
// Convert selection to vertices
// Clear selected sectors
General.Map.Map.ClearSelectedSectors();
}
else if(General.Editing.NewMode is LinedefsMode)
{
// Convert selection to linedefs
// Clear selected sectors
General.Map.Map.ClearSelectedSectors();
}

View file

@ -36,7 +36,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
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.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();
@ -46,61 +49,58 @@ 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.selectInSectorsItem2 = 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.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.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.buttonDragThingsInSelectedSectors = new System.Windows.Forms.ToolStripButton();
this.buttonAlignThingsToWall = new System.Windows.Forms.ToolStripButton();
this.buttonTextureOffsetLock = new System.Windows.Forms.ToolStripButton();
this.fliplinedefsitem = 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.selectInSectorsItem2 = 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.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.menustrip.SuspendLayout();
this.manualstrip.SuspendLayout();
this.fileMenuStrip.SuspendLayout();
@ -187,11 +187,38 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
this.toolStripMenuItem4.Size = new System.Drawing.Size(242, 6);
//
// fliplinedefsitem
//
this.fliplinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.fliplinedefsitem.Name = "fliplinedefsitem";
this.fliplinedefsitem.Size = new System.Drawing.Size(245, 22);
this.fliplinedefsitem.Tag = "fliplinedefs";
this.fliplinedefsitem.Text = "&Flip Linedefs";
this.fliplinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// flipsidedefsitem
//
this.flipsidedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.flipsidedefsitem.Name = "flipsidedefsitem";
this.flipsidedefsitem.Size = new System.Drawing.Size(245, 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(242, 6);
//
// curvelinedefsitem
//
this.curvelinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CurveLines;
this.curvelinedefsitem.Name = "curvelinedefsitem";
this.curvelinedefsitem.Size = new System.Drawing.Size(245, 22);
this.curvelinedefsitem.Tag = "curvelinesmode";
this.curvelinedefsitem.Text = "&Curve Linedefs...";
this.curvelinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripMenuItem3
//
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
@ -261,6 +288,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(242, 6);
//
// selectSimilarLinesItem
//
this.selectSimilarLinesItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
this.selectSimilarLinesItem.Name = "selectSimilarLinesItem";
this.selectSimilarLinesItem.Size = new System.Drawing.Size(245, 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[] {
@ -280,27 +316,89 @@ 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(245, 22);
this.placethingss.Tag = "placethings";
this.placethingss.Text = "&Place Things...";
this.placethingss.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// selectInSectorsItem2
//
this.selectInSectorsItem2.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors;
this.selectInSectorsItem2.Name = "selectInSectorsItem2";
this.selectInSectorsItem2.Size = new System.Drawing.Size(245, 22);
this.selectInSectorsItem2.Tag = "thingsselectinsectors";
this.selectInSectorsItem2.Text = "&Select Things in Selected Sectors";
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(242, 6);
//
// joinsectorsitem
//
this.joinsectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Join;
this.joinsectorsitem.Name = "joinsectorsitem";
this.joinsectorsitem.Size = new System.Drawing.Size(245, 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(245, 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(242, 6);
//
// flipsectorlinedefsitem
//
this.flipsectorlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.flipsectorlinedefsitem.Name = "flipsectorlinedefsitem";
this.flipsectorlinedefsitem.Size = new System.Drawing.Size(245, 22);
this.flipsectorlinedefsitem.Tag = "fliplinedefs";
this.flipsectorlinedefsitem.Text = "&Flip Linedefs";
this.flipsectorlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripSeparator8
//
this.toolStripSeparator8.Name = "toolStripSeparator8";
this.toolStripSeparator8.Size = new System.Drawing.Size(242, 6);
//
// makedooritem
//
this.makedooritem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Door;
this.makedooritem.Name = "makedooritem";
this.makedooritem.Size = new System.Drawing.Size(245, 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(242, 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(245, 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[] {
@ -316,16 +414,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(245, 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(245, 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(242, 6);
//
// alignToWallItem
//
this.alignToWallItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.AlignThings;
this.alignToWallItem.Name = "alignToWallItem";
this.alignToWallItem.Size = new System.Drawing.Size(245, 22);
this.alignToWallItem.Tag = "thingaligntowall";
this.alignToWallItem.Text = "&Align To Closest 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(245, 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(242, 6);
//
// selectSimilarThingsItem
//
this.selectSimilarThingsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar;
this.selectSimilarThingsItem.Name = "selectSimilarThingsItem";
this.selectSimilarThingsItem.Size = new System.Drawing.Size(245, 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[] {
@ -337,11 +480,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);
@ -381,72 +542,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.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(52, 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);
//
// buttoncopyproperties
//
this.buttoncopyproperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
@ -480,6 +575,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.buttonpastepropertiesoptions.Text = "Choose Properties to Paste";
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;
@ -502,6 +603,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;
@ -513,11 +620,16 @@ 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;
this.buttonbrightnessgradient.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.BrightnessGradient;
this.buttonbrightnessgradient.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.buttonbrightnessgradient.ImageTransparentColor = System.Drawing.Color.Magenta;
this.buttonbrightnessgradient.Name = "buttonbrightnessgradient";
this.buttonbrightnessgradient.Size = new System.Drawing.Size(23, 22);
@ -580,6 +692,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;
@ -629,166 +763,31 @@ namespace CodeImp.DoomBuilder.BuilderModes
"tant while sector is dragged";
this.buttonTextureOffsetLock.Click += new System.EventHandler(this.buttonTextureOffsetLock_Click);
//
// fliplinedefsitem
// fileMenuStrip
//
this.fliplinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.fliplinedefsitem.Name = "fliplinedefsitem";
this.fliplinedefsitem.Size = new System.Drawing.Size(245, 22);
this.fliplinedefsitem.Tag = "fliplinedefs";
this.fliplinedefsitem.Text = "&Flip Linedefs";
this.fliplinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
this.fileMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.exportStripMenuItem});
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";
//
// flipsidedefsitem
// exportStripMenuItem
//
this.flipsidedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip;
this.flipsidedefsitem.Name = "flipsidedefsitem";
this.flipsidedefsitem.Size = new System.Drawing.Size(245, 22);
this.flipsidedefsitem.Tag = "flipsidedefs";
this.flipsidedefsitem.Text = "F&lip Sidedefs";
this.flipsidedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction);
this.exportStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripMenuItem5});
this.exportStripMenuItem.Name = "exportStripMenuItem";
this.exportStripMenuItem.Size = new System.Drawing.Size(52, 20);
this.exportStripMenuItem.Text = "Export";
//
// curvelinedefsitem
// toolStripMenuItem5
//
this.curvelinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CurveLines;
this.curvelinedefsitem.Name = "curvelinedefsitem";
this.curvelinedefsitem.Size = new System.Drawing.Size(245, 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(245, 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(245, 22);
this.placethingss.Tag = "placethings";
this.placethingss.Text = "&Place Things...";
this.placethingss.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// selectInSectorsItem2
//
this.selectInSectorsItem2.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors;
this.selectInSectorsItem2.Name = "selectInSectorsItem2";
this.selectInSectorsItem2.Size = new System.Drawing.Size(245, 22);
this.selectInSectorsItem2.Tag = "thingsselectinsectors";
this.selectInSectorsItem2.Text = "&Select Things in Selected Sectors";
//
// joinsectorsitem
//
this.joinsectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Join;
this.joinsectorsitem.Name = "joinsectorsitem";
this.joinsectorsitem.Size = new System.Drawing.Size(245, 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(245, 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(245, 22);
this.flipsectorlinedefsitem.Tag = "fliplinedefs";
this.flipsectorlinedefsitem.Text = "&Flip Linedefs";
this.flipsectorlinedefsitem.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(245, 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(245, 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(245, 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(245, 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(245, 22);
this.alignToWallItem.Tag = "thingaligntowall";
this.alignToWallItem.Text = "&Align To Closest 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(245, 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(245, 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.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);
//
// MenusForm
//