Added "Apply to all errors of this type" checkbox to Map Analysis window.

Updated ZDoom ACC to r3889.
This commit is contained in:
MaxED 2012-11-30 14:43:11 +00:00
parent 94dce70ada
commit ad46513126
6 changed files with 229 additions and 192 deletions

Binary file not shown.

View file

@ -214,6 +214,9 @@
// HUD message.
#define HUDMSG_ADDBLEND 0x20000000
// OR this with one of the above to use the extra alpha parameter
#define HUDMSG_ALPHA 0x10000000
// HUD message layers; these are not flags
#define HUDMSG_LAYER_OVERHUD 0x00000000
#define HUDMSG_LAYER_UNDERHUD 0x00001000

View file

@ -289,6 +289,9 @@ special
-45:ACS_NamedExecuteAlways(2,5),
-46:UniqueTID(0,2),
-47:IsTIDUsed(1),
-48:Sqrt(1),
-49:FixedSqrt(1),
-50:VectorLength(2),
-1000:__EndOfList__(10);

View file

@ -28,167 +28,180 @@ namespace CodeImp.DoomBuilder.BuilderModes
/// </summary>
private void InitializeComponent()
{
this.checks = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
this.buttoncheck = new System.Windows.Forms.Button();
this.results = new System.Windows.Forms.ListBox();
this.resultspanel = new System.Windows.Forms.Panel();
this.fix3 = new System.Windows.Forms.Button();
this.fix2 = new System.Windows.Forms.Button();
this.resultinfo = new System.Windows.Forms.Label();
this.fix1 = new System.Windows.Forms.Button();
this.progress = new System.Windows.Forms.ProgressBar();
this.closebutton = new System.Windows.Forms.Button();
this.resultspanel.SuspendLayout();
this.SuspendLayout();
//
// checks
//
this.checks.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.checks.AutoScroll = true;
this.checks.AutoSize = true;
this.checks.Columns = 2;
this.checks.Location = new System.Drawing.Point(10, 15);
this.checks.Margin = new System.Windows.Forms.Padding(1);
this.checks.Name = "checks";
this.checks.Size = new System.Drawing.Size(360, 63);
this.checks.TabIndex = 0;
//
// buttoncheck
//
this.buttoncheck.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttoncheck.Location = new System.Drawing.Point(254, 89);
this.buttoncheck.Margin = new System.Windows.Forms.Padding(1);
this.buttoncheck.Name = "buttoncheck";
this.buttoncheck.Size = new System.Drawing.Size(116, 25);
this.buttoncheck.TabIndex = 1;
this.buttoncheck.Text = "Start Analysis";
this.buttoncheck.UseVisualStyleBackColor = true;
this.buttoncheck.Click += new System.EventHandler(this.buttoncheck_Click);
//
// results
//
this.results.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.results.FormattingEnabled = true;
this.results.IntegralHeight = false;
this.results.ItemHeight = 14;
this.results.Location = new System.Drawing.Point(10, 34);
this.results.Margin = new System.Windows.Forms.Padding(1);
this.results.Name = "results";
this.results.Size = new System.Drawing.Size(360, 175);
this.results.TabIndex = 0;
this.results.SelectedIndexChanged += new System.EventHandler(this.results_SelectedIndexChanged);
//
// resultspanel
//
this.resultspanel.Controls.Add(this.fix3);
this.resultspanel.Controls.Add(this.fix2);
this.resultspanel.Controls.Add(this.resultinfo);
this.resultspanel.Controls.Add(this.fix1);
this.resultspanel.Controls.Add(this.progress);
this.resultspanel.Controls.Add(this.results);
this.resultspanel.Location = new System.Drawing.Point(0, 124);
this.resultspanel.Name = "resultspanel";
this.resultspanel.Size = new System.Drawing.Size(383, 329);
this.resultspanel.TabIndex = 2;
//
// fix3
//
this.fix3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.fix3.Location = new System.Drawing.Point(256, 292);
this.fix3.Name = "fix3";
this.fix3.Size = new System.Drawing.Size(114, 26);
this.fix3.TabIndex = 3;
this.fix3.Text = "Fix 3";
this.fix3.UseVisualStyleBackColor = true;
this.fix3.Visible = false;
this.fix3.Click += new System.EventHandler(this.fix3_Click);
//
// fix2
//
this.fix2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.fix2.Location = new System.Drawing.Point(133, 292);
this.fix2.Name = "fix2";
this.fix2.Size = new System.Drawing.Size(114, 26);
this.fix2.TabIndex = 2;
this.fix2.Text = "Fix 2";
this.fix2.UseVisualStyleBackColor = true;
this.fix2.Visible = false;
this.fix2.Click += new System.EventHandler(this.fix2_Click);
//
// resultinfo
//
this.resultinfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.resultinfo.Enabled = false;
this.resultinfo.Location = new System.Drawing.Point(12, 215);
this.resultinfo.Name = "resultinfo";
this.resultinfo.Size = new System.Drawing.Size(358, 74);
this.resultinfo.TabIndex = 5;
this.resultinfo.Text = "Select a result from the list to see more information.";
//
// fix1
//
this.fix1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.fix1.Location = new System.Drawing.Point(10, 292);
this.fix1.Name = "fix1";
this.fix1.Size = new System.Drawing.Size(114, 26);
this.fix1.TabIndex = 1;
this.fix1.Text = "Fix 1";
this.fix1.UseVisualStyleBackColor = true;
this.fix1.Visible = false;
this.fix1.Click += new System.EventHandler(this.fix1_Click);
//
// progress
//
this.progress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.progress.Location = new System.Drawing.Point(10, 3);
this.progress.Margin = new System.Windows.Forms.Padding(1);
this.progress.Name = "progress";
this.progress.Size = new System.Drawing.Size(360, 18);
this.progress.TabIndex = 3;
this.progress.Value = 30;
//
// closebutton
//
this.closebutton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.closebutton.Location = new System.Drawing.Point(-500, 134);
this.closebutton.Name = "closebutton";
this.closebutton.Size = new System.Drawing.Size(116, 25);
this.closebutton.TabIndex = 4;
this.closebutton.Text = "Close";
this.closebutton.UseVisualStyleBackColor = true;
this.closebutton.Click += new System.EventHandler(this.closebutton_Click);
//
// ErrorCheckForm
//
this.AcceptButton = this.buttoncheck;
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.CancelButton = this.closebutton;
this.ClientSize = new System.Drawing.Size(380, 453);
this.Controls.Add(this.closebutton);
this.Controls.Add(this.resultspanel);
this.Controls.Add(this.buttoncheck);
this.Controls.Add(this.checks);
this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "ErrorCheckForm";
this.Opacity = 0;
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
this.Text = "Map Analysis";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ErrorCheckForm_FormClosing);
this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.ErrorCheckForm_HelpRequested);
this.resultspanel.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
this.checks = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
this.buttoncheck = new System.Windows.Forms.Button();
this.results = new System.Windows.Forms.ListBox();
this.resultspanel = new System.Windows.Forms.Panel();
this.fix3 = new System.Windows.Forms.Button();
this.fix2 = new System.Windows.Forms.Button();
this.resultinfo = new System.Windows.Forms.Label();
this.fix1 = new System.Windows.Forms.Button();
this.progress = new System.Windows.Forms.ProgressBar();
this.closebutton = new System.Windows.Forms.Button();
this.cbApplyToAll = new System.Windows.Forms.CheckBox();
this.resultspanel.SuspendLayout();
this.SuspendLayout();
//
// checks
//
this.checks.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.checks.AutoScroll = true;
this.checks.AutoSize = true;
this.checks.Columns = 2;
this.checks.Location = new System.Drawing.Point(10, 15);
this.checks.Margin = new System.Windows.Forms.Padding(1);
this.checks.Name = "checks";
this.checks.Size = new System.Drawing.Size(360, 63);
this.checks.TabIndex = 0;
//
// buttoncheck
//
this.buttoncheck.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttoncheck.Location = new System.Drawing.Point(254, 89);
this.buttoncheck.Margin = new System.Windows.Forms.Padding(1);
this.buttoncheck.Name = "buttoncheck";
this.buttoncheck.Size = new System.Drawing.Size(116, 25);
this.buttoncheck.TabIndex = 1;
this.buttoncheck.Text = "Start Analysis";
this.buttoncheck.UseVisualStyleBackColor = true;
this.buttoncheck.Click += new System.EventHandler(this.buttoncheck_Click);
//
// results
//
this.results.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.results.FormattingEnabled = true;
this.results.IntegralHeight = false;
this.results.ItemHeight = 14;
this.results.Location = new System.Drawing.Point(10, 34);
this.results.Margin = new System.Windows.Forms.Padding(1);
this.results.Name = "results";
this.results.Size = new System.Drawing.Size(360, 168);
this.results.TabIndex = 0;
this.results.SelectedIndexChanged += new System.EventHandler(this.results_SelectedIndexChanged);
//
// resultspanel
//
this.resultspanel.Controls.Add(this.cbApplyToAll);
this.resultspanel.Controls.Add(this.fix3);
this.resultspanel.Controls.Add(this.fix2);
this.resultspanel.Controls.Add(this.resultinfo);
this.resultspanel.Controls.Add(this.fix1);
this.resultspanel.Controls.Add(this.progress);
this.resultspanel.Controls.Add(this.results);
this.resultspanel.Location = new System.Drawing.Point(0, 124);
this.resultspanel.Name = "resultspanel";
this.resultspanel.Size = new System.Drawing.Size(383, 343);
this.resultspanel.TabIndex = 2;
//
// fix3
//
this.fix3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.fix3.Location = new System.Drawing.Point(256, 285);
this.fix3.Name = "fix3";
this.fix3.Size = new System.Drawing.Size(114, 26);
this.fix3.TabIndex = 3;
this.fix3.Text = "Fix 3";
this.fix3.UseVisualStyleBackColor = true;
this.fix3.Visible = false;
this.fix3.Click += new System.EventHandler(this.fix3_Click);
//
// fix2
//
this.fix2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.fix2.Location = new System.Drawing.Point(133, 285);
this.fix2.Name = "fix2";
this.fix2.Size = new System.Drawing.Size(114, 26);
this.fix2.TabIndex = 2;
this.fix2.Text = "Fix 2";
this.fix2.UseVisualStyleBackColor = true;
this.fix2.Visible = false;
this.fix2.Click += new System.EventHandler(this.fix2_Click);
//
// resultinfo
//
this.resultinfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.resultinfo.Enabled = false;
this.resultinfo.Location = new System.Drawing.Point(12, 208);
this.resultinfo.Name = "resultinfo";
this.resultinfo.Size = new System.Drawing.Size(358, 74);
this.resultinfo.TabIndex = 5;
this.resultinfo.Text = "Select a result from the list to see more information.";
//
// fix1
//
this.fix1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.fix1.Location = new System.Drawing.Point(10, 285);
this.fix1.Name = "fix1";
this.fix1.Size = new System.Drawing.Size(114, 26);
this.fix1.TabIndex = 1;
this.fix1.Text = "Fix 1";
this.fix1.UseVisualStyleBackColor = true;
this.fix1.Visible = false;
this.fix1.Click += new System.EventHandler(this.fix1_Click);
//
// progress
//
this.progress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.progress.Location = new System.Drawing.Point(10, 3);
this.progress.Margin = new System.Windows.Forms.Padding(1);
this.progress.Name = "progress";
this.progress.Size = new System.Drawing.Size(360, 18);
this.progress.TabIndex = 3;
this.progress.Value = 30;
//
// closebutton
//
this.closebutton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.closebutton.Location = new System.Drawing.Point(-500, 134);
this.closebutton.Name = "closebutton";
this.closebutton.Size = new System.Drawing.Size(116, 25);
this.closebutton.TabIndex = 4;
this.closebutton.Text = "Close";
this.closebutton.UseVisualStyleBackColor = true;
this.closebutton.Click += new System.EventHandler(this.closebutton_Click);
//
// cbApplyToAll
//
this.cbApplyToAll.AutoSize = true;
this.cbApplyToAll.Location = new System.Drawing.Point(12, 317);
this.cbApplyToAll.Name = "cbApplyToAll";
this.cbApplyToAll.Size = new System.Drawing.Size(169, 18);
this.cbApplyToAll.TabIndex = 6;
this.cbApplyToAll.Text = "Apply to all errors of this type";
this.cbApplyToAll.UseVisualStyleBackColor = true;
//
// ErrorCheckForm
//
this.AcceptButton = this.buttoncheck;
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.CancelButton = this.closebutton;
this.ClientSize = new System.Drawing.Size(380, 468);
this.Controls.Add(this.closebutton);
this.Controls.Add(this.resultspanel);
this.Controls.Add(this.buttoncheck);
this.Controls.Add(this.checks);
this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "ErrorCheckForm";
this.Opacity = 0;
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
this.Text = "Map Analysis";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ErrorCheckForm_FormClosing);
this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.ErrorCheckForm_HelpRequested);
this.resultspanel.ResumeLayout(false);
this.resultspanel.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
@ -204,5 +217,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
private System.Windows.Forms.Label resultinfo;
private System.Windows.Forms.Button fix1;
private System.Windows.Forms.Button closebutton;
private System.Windows.Forms.CheckBox cbApplyToAll;
}
}

View file

@ -56,6 +56,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
private volatile bool running = false;
private Thread checksthread;
private BlockMap<BlockEntry> blockmap;
private static bool applyToAll; //mxd
#endregion
@ -97,13 +98,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
checks.PerformLayout();
buttoncheck.Top = checks.Bottom + 14;
resultspanel.Top = buttoncheck.Bottom + 14;
// First time showing?
//if((this.Location.X == 0) && (this.Location.Y == 0))
{
// Position at left-top of owner
this.Location = new Point(owner.Location.X + 20, owner.Location.Y + 90);
}
//mxd
cbApplyToAll.Checked = applyToAll;
// Position at left-top of owner
this.Location = new Point(owner.Location.X + 20, owner.Location.Y + 90);
// Close results part
resultspanel.Visible = false;
@ -236,6 +236,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
}
ClearSelectedResult();
//mxd
applyToAll = cbApplyToAll.Checked;
this.Hide();
}
@ -248,6 +252,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
fix1.Visible = false;
fix2.Visible = false;
fix3.Visible = false;
cbApplyToAll.Visible = false;//mxd
}
// This runs in a seperate thread to manage the checking threads
@ -405,6 +410,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
fix1.Visible = (r.Buttons >= 1);
fix2.Visible = (r.Buttons >= 2);
fix3.Visible = (r.Buttons >= 3);
cbApplyToAll.Visible = true;//mxd
r.ZoomToObject();
}
else
@ -428,7 +434,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
else
{
ErrorResult r = (results.SelectedItem as ErrorResult);
if(r.Button1Click()) StartChecking(); else General.Interface.RedrawDisplay();
if (r.Button1Click()) {
if (cbApplyToAll.Checked) fixSimilarErrors(r.GetType(), 1); //mxd
StartChecking();
} else {
General.Interface.RedrawDisplay();
}
}
}
}
@ -446,7 +457,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
else
{
ErrorResult r = (results.SelectedItem as ErrorResult);
if(r.Button2Click()) StartChecking(); else General.Interface.RedrawDisplay();
if (r.Button2Click()) {
if (cbApplyToAll.Checked) fixSimilarErrors(r.GetType(), 2); //mxd
StartChecking();
} else {
General.Interface.RedrawDisplay();
}
}
}
}
@ -464,11 +480,33 @@ namespace CodeImp.DoomBuilder.BuilderModes
else
{
ErrorResult r = (results.SelectedItem as ErrorResult);
if(r.Button3Click()) StartChecking(); else General.Interface.RedrawDisplay();
if (r.Button3Click()) {
if (cbApplyToAll.Checked) fixSimilarErrors(r.GetType(), 3); //mxd
StartChecking();
} else {
General.Interface.RedrawDisplay();
}
}
}
}
//mxd
private void fixSimilarErrors(Type type, int fixIndex) {
foreach (Object item in results.Items) {
if (item == results.SelectedItem) continue;
if (item.GetType() != type) continue;
ErrorResult r = item as ErrorResult;
if (fixIndex == 1)
r.Button1Click();
else if (fixIndex == 2)
r.Button2Click();
else if (fixIndex == 3)
r.Button3Click();
}
}
private void ErrorCheckForm_HelpRequested(object sender, HelpEventArgs hlpevent)
{
General.ShowHelp("e_mapanalysis.html");

View file

@ -123,31 +123,10 @@
<metadata name="buttoncheck.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="results.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="resultspanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="fix3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="fix2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="resultinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="fix1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="progress.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="closebutton.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>