Added Errors and Warnings dialog window (shows all issues with plugins, configs and resources)

This commit is contained in:
codeimp 2009-02-26 23:27:46 +00:00
parent 1b31d06c19
commit dd1af8cf6d
48 changed files with 682 additions and 190 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 B

After

Width:  |  Height:  |  Size: 871 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 636 B

After

Width:  |  Height:  |  Size: 841 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 623 B

After

Width:  |  Height:  |  Size: 801 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 729 B

View file

@ -137,7 +137,7 @@ namespace CodeImp.DoomBuilder.Actions
{
string errordesc = "Error in Actions configuration on line " + cfg.ErrorLine + ": " + cfg.ErrorDescription;
General.CancelAutoMapLoad();
General.WriteLogLine("ERROR: Unable to read Actions configuration from assembly " + Path.GetFileName(asm.Location) + "!");
General.ErrorLogger.Add(ErrorType.Error, "Unable to read Actions configuration from assembly " + Path.GetFileName(asm.Location) + "!");
General.WriteLogLine(errordesc);
General.ShowErrorMessage("Unable to read Actions configuration from assembly " + Path.GetFileName(asm.Location) + "!\n" + errordesc, MessageBoxButtons.OK);
}
@ -195,7 +195,7 @@ namespace CodeImp.DoomBuilder.Actions
else
{
// Action already exists!
General.WriteLogLine("WARNING: Action '" + name + "' already exists. Action names must be unique!");
General.ErrorLogger.Add(ErrorType.Warning, "Action '" + name + "' already exists. Action names must be unique!");
}
}
@ -282,7 +282,7 @@ namespace CodeImp.DoomBuilder.Actions
if(Exists(actionname))
actions[actionname].BindBegin(d);
else
General.WriteLogLine("WARNING: Could not bind delegate for " + d.Method.Name + " to action \"" + a.ActionName + "\" (" + actionname + "), that action does not exist! Refer to, or edit Actions.cfg for all available application actions.");
General.ErrorLogger.Add(ErrorType.Warning, "Could not bind delegate for " + d.Method.Name + " to action \"" + a.ActionName + "\" (" + actionname + "), that action does not exist! Refer to, or edit Actions.cfg for all available application actions.");
}
// This binds a delegate manually
@ -297,7 +297,7 @@ namespace CodeImp.DoomBuilder.Actions
if(Exists(actionname))
actions[actionname].BindEnd(d);
else
General.WriteLogLine("WARNING: Could not bind delegate for " + d.Method.Name + " to action \"" + a.ActionName + "\" (" + actionname + "), that action does not exist! Refer to, or edit Actions.cfg for all available application actions.");
General.ErrorLogger.Add(ErrorType.Warning, "Could not bind delegate for " + d.Method.Name + " to action \"" + a.ActionName + "\" (" + actionname + "), that action does not exist! Refer to, or edit Actions.cfg for all available application actions.");
}
// This unbinds all methods marked with this attribute

View file

@ -668,6 +668,12 @@
<Compile Include="Data\PK3StructuredReader.cs" />
<Compile Include="General\ErrorItem.cs" />
<Compile Include="General\ErrorLogger.cs" />
<Compile Include="Windows\ErrorsForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Windows\ErrorsForm.Designer.cs">
<DependentUpon>ErrorsForm.cs</DependentUpon>
</Compile>
<Compile Include="Windows\StatusInfo.cs" />
<Compile Include="ZDoom\ActorStructure.cs" />
<Compile Include="ZDoom\PatchStructure.cs" />
@ -780,6 +786,10 @@
<SubType>Designer</SubType>
<DependentUpon>CustomFieldsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Windows\ErrorsForm.resx">
<SubType>Designer</SubType>
<DependentUpon>ErrorsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Windows\ScriptEditorForm.resx">
<SubType>Designer</SubType>
<DependentUpon>ScriptEditorForm.cs</DependentUpon>

View file

@ -266,14 +266,14 @@ namespace CodeImp.DoomBuilder.BuilderModes
catch(TargetInvocationException ex)
{
// Error!
General.WriteLogLine("ERROR: Failed to create class instance '" + t.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Failed to create class instance '" + t.Name + "'!");
General.WriteLogLine(ex.InnerException.GetType().Name + ": " + ex.InnerException.Message);
throw ex;
}
catch(Exception ex)
{
// Error!
General.WriteLogLine("ERROR: Failed to create class instance '" + t.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Failed to create class instance '" + t.Name + "'!");
General.WriteLogLine(ex.GetType().Name + ": " + ex.Message);
throw ex;
}

View file

@ -83,14 +83,14 @@ namespace CodeImp.DoomBuilder.BuilderModes
catch(TargetInvocationException ex)
{
// Error!
General.WriteLogLine("ERROR: Failed to create class instance '" + t.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Failed to create class instance '" + t.Name + "'!");
General.WriteLogLine(ex.InnerException.GetType().Name + ": " + ex.InnerException.Message);
throw ex;
}
catch(Exception ex)
{
// Error!
General.WriteLogLine("ERROR: Failed to create class instance '" + t.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Failed to create class instance '" + t.Name + "'!");
General.WriteLogLine(ex.GetType().Name + ": " + ex.Message);
throw ex;
}

View file

@ -114,7 +114,7 @@ namespace CodeImp.DoomBuilder.Compilers
{
string sourcefile = Path.Combine(General.CompilersPath, f);
string targetfile = Path.Combine(tempdir.FullName, f);
if(!File.Exists(sourcefile)) General.WriteLogLine("ERROR: The file '" + f + "' required by the '" + info.Name + "' compiler is missing!");
if(!File.Exists(sourcefile)) General.ErrorLogger.Add(ErrorType.Error, "The file '" + f + "' required by the '" + info.Name + "' compiler is missing!");
File.Copy(sourcefile, targetfile, true);
}
}

View file

@ -86,7 +86,7 @@ namespace CodeImp.DoomBuilder.Config
}
else
{
General.WriteLogLine("WARNING: '" + argspath + ".arg" + istr + "' references unknown enumeration '" + argdic["enum"] + "'!");
General.ErrorLogger.Add(ErrorType.Warning, "'" + argspath + ".arg" + istr + "' references unknown enumeration '" + argdic["enum"] + "'!");
}
}
}

View file

@ -60,7 +60,7 @@ namespace CodeImp.DoomBuilder.Config
// Set the flag
if(!int.TryParse(de.Key.ToString(), out flag))
General.WriteLogLine("WARNING: Invalid flag translation key in configuration (must be numeric)");
General.ErrorLogger.Add(ErrorType.Warning, "Invalid flag translation key in configuration (must be numeric)");
// Set the fields
string[] fieldstrings = de.Value.ToString().Split(',');

View file

@ -370,7 +370,7 @@ namespace CodeImp.DoomBuilder.Config
}
catch(Exception)
{
General.WriteLogLine("WARNING: Unable to read universal field definition 'universalfields." + elementname + "." + de.Key + "'!");
General.ErrorLogger.Add(ErrorType.Warning, "Unable to read universal field definition 'universalfields." + elementname + "." + de.Key + "'!");
}
}
@ -400,7 +400,7 @@ namespace CodeImp.DoomBuilder.Config
}
else
{
General.WriteLogLine("WARNING: Thing number " + t.Index + " is defined more than once! (as '" + things[t.Index].Title + "' and '" + t.Title + "')");
General.ErrorLogger.Add(ErrorType.Warning, "Thing number " + t.Index + " is defined more than once! (as '" + things[t.Index].Title + "' and '" + t.Title + "')");
}
}
@ -478,7 +478,7 @@ namespace CodeImp.DoomBuilder.Config
else
{
// Failure
General.WriteLogLine("WARNING: Structure 'linedeftypes' contains invalid types! (all types must be expanded structures)");
General.ErrorLogger.Add(ErrorType.Warning, "Structure 'linedeftypes' contains invalid types! (all types must be expanded structures)");
}
}
}
@ -530,7 +530,7 @@ namespace CodeImp.DoomBuilder.Config
}
else
{
General.WriteLogLine("WARNING: Structure 'gen_linedeftypes' contains invalid entries!");
General.ErrorLogger.Add(ErrorType.Warning, "Structure 'gen_linedeftypes' contains invalid entries!");
}
}
}
@ -560,7 +560,7 @@ namespace CodeImp.DoomBuilder.Config
}
else
{
General.WriteLogLine("WARNING: Structure 'sectortypes' contains invalid keys!");
General.ErrorLogger.Add(ErrorType.Warning, "Structure 'sectortypes' contains invalid keys!");
}
}
@ -585,7 +585,7 @@ namespace CodeImp.DoomBuilder.Config
}
else
{
General.WriteLogLine("WARNING: Structure 'gen_sectortypes' contains invalid entries!");
General.ErrorLogger.Add(ErrorType.Warning, "Structure 'gen_sectortypes' contains invalid entries!");
}
}
}
@ -625,7 +625,7 @@ namespace CodeImp.DoomBuilder.Config
}
else
{
General.WriteLogLine("WARNING: Structure 'defaultthingflags' contains unknown thing flags!");
General.ErrorLogger.Add(ErrorType.Warning, "Structure 'defaultthingflags' contains unknown thing flags!");
}
}
}
@ -646,7 +646,7 @@ namespace CodeImp.DoomBuilder.Config
}
else
{
General.WriteLogLine("WARNING: Structure 'skills' contains invalid skill numbers!");
General.ErrorLogger.Add(ErrorType.Warning, "Structure 'skills' contains invalid skill numbers!");
}
}
}

View file

@ -80,7 +80,7 @@ namespace CodeImp.DoomBuilder.Config
}
else
{
General.WriteLogLine("WARNING: Structure '" + fullpath + "." + name + "' contains invalid entries!");
General.ErrorLogger.Add(ErrorType.Warning, "Structure '" + fullpath + "." + name + "' contains invalid entries!");
}
}

View file

@ -66,7 +66,7 @@ namespace CodeImp.DoomBuilder.Config
}
else
{
General.WriteLogLine("WARNING: Map lump '" + name + "' specifies unknown script configuration '" + scriptconfig + "'. Using plain text instead.");
General.ErrorLogger.Add(ErrorType.Warning, "Map lump '" + name + "' specifies unknown script configuration '" + scriptconfig + "'. Using plain text instead.");
this.script = new ScriptConfiguration();
}
}

View file

@ -156,7 +156,7 @@ namespace CodeImp.DoomBuilder.Controls
catch(Exception e)
{
// Failed
General.WriteLogLine("ERROR: Cannot open file '" + filepathname + "' for writing.");
General.ErrorLogger.Add(ErrorType.Error, "Cannot open file '" + filepathname + "' for writing.");
General.WriteLogLine(e.GetType().Name + ": " + e.Message);
General.ShowErrorMessage("Unable to open file \"" + filepathname + "\" for writing. Make sure the path exists and that the file is not in use by another application.", MessageBoxButtons.OK);
return false;
@ -196,7 +196,7 @@ namespace CodeImp.DoomBuilder.Controls
catch(Exception e)
{
// Failed
General.WriteLogLine("ERROR: Cannot open file '" + filepathname + "' for reading.");
General.ErrorLogger.Add(ErrorType.Error, "Cannot open file '" + filepathname + "' for reading.");
General.WriteLogLine(e.GetType().Name + ": " + e.Message);
General.ShowErrorMessage("Unable to open file \"" + filepathname + "\" for reading. Make sure the path exists and that the file is not in use by another application.", MessageBoxButtons.OK);
return false;

View file

@ -267,13 +267,13 @@ namespace CodeImp.DoomBuilder.Data
catch(Exception e)
{
// Unable to load resource
General.WriteLogLine("ERROR while creating data reader. " + e.GetType().Name + ": " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, "Error while creating data reader. " + e.GetType().Name + ": " + e.Message);
General.WriteLogLine(e.StackTrace);
General.ShowErrorMessage("Unable to load resources from location \"" + dl.location + "\". Please make sure the location is accessible and not in use by another program.", MessageBoxButtons.OK);
continue;
}
*/
// Add container
if(c != null) containers.Add(c);
}
@ -398,7 +398,7 @@ namespace CodeImp.DoomBuilder.Data
catch(Exception e)
{
// Unable to load resource
General.WriteLogLine("ERROR while resuming data reader. " + e.GetType().Name + ": " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, "Error while resuming data reader. " + e.GetType().Name + ": " + e.Message);
General.WriteLogLine(e.StackTrace);
General.ShowErrorMessage("Unable to load resources from location \"" + d.Location.location + "\". Please make sure the location is accessible and not in use by another program.", MessageBoxButtons.OK);
}
@ -624,7 +624,7 @@ namespace CodeImp.DoomBuilder.Data
// Make empty palette when still no palette found
if(palette == null)
{
General.WriteLogLine("WARNING: None of the loaded resources define a color palette!");
General.ErrorLogger.Add(ErrorType.Warning, "None of the loaded resources define a color palette!");
palette = new Playpal();
}
}
@ -1120,8 +1120,9 @@ namespace CodeImp.DoomBuilder.Data
// Check for errors
if(parser.HasError)
{
General.WriteLogLine("ERROR: Unable to parse DECORATE data from location " + dr.Location.location + "!");
General.WriteLogLine("ERROR: " + parser.ErrorDescription + " on line " + parser.ErrorLine + " in '" + parser.ErrorSource + "'");
General.ErrorLogger.Add(ErrorType.Error, "Unable to parse DECORATE data from location " +
dr.Location.location + "! " + parser.ErrorDescription + " on line " + parser.ErrorLine +
" in '" + parser.ErrorSource + "'");
break;
}
}

View file

@ -97,7 +97,7 @@ namespace CodeImp.DoomBuilder.Data
}
catch(Exception e)
{
General.WriteLogLine("ERROR: " + e.GetType().Name + " while loading patch '" + pname + "' from directory: " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, e.GetType().Name + " while loading patch '" + pname + "' from directory: " + e.Message);
}
// Nothing found
@ -130,7 +130,7 @@ namespace CodeImp.DoomBuilder.Data
}
catch(Exception e)
{
General.WriteLogLine("ERROR: " + e.GetType().Name + " while loading texture '" + pname + "' from directory: " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, e.GetType().Name + " while loading texture '" + pname + "' from directory: " + e.Message);
}
// Nothing found
@ -166,7 +166,7 @@ namespace CodeImp.DoomBuilder.Data
}
catch(Exception e)
{
General.WriteLogLine("ERROR: " + e.GetType().Name + " while loading sprite '" + pname + "' from directory: " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, e.GetType().Name + " while loading sprite '" + pname + "' from directory: " + e.Message);
}
// Nothing found
@ -197,7 +197,7 @@ namespace CodeImp.DoomBuilder.Data
}
catch(Exception e)
{
General.WriteLogLine("ERROR: " + e.GetType().Name + " while checking sprite '" + pname + "' existance in directory: " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, e.GetType().Name + " while checking sprite '" + pname + "' existance in directory: " + e.Message);
}
// Nothing found

View file

@ -118,7 +118,7 @@ namespace CodeImp.DoomBuilder.Data
// Not loaded?
if(bitmap == null)
{
General.WriteLogLine("ERROR: Image file '" + filepathname + "' data format could not be read, while loading texture '" + this.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Image file '" + filepathname + "' data format could not be read, while loading texture '" + this.Name + "'!");
loadfailed = true;
}
else

View file

@ -77,7 +77,7 @@ namespace CodeImp.DoomBuilder.Data
if(reader is UnknownImageReader)
{
// Data is in an unknown format!
General.WriteLogLine("ERROR: Flat lump '" + Name + "' data format could not be read!");
General.ErrorLogger.Add(ErrorType.Error, "Flat lump '" + Name + "' data format could not be read!");
bitmap = null;
}
else
@ -107,7 +107,7 @@ namespace CodeImp.DoomBuilder.Data
else
{
// Missing a patch lump!
General.WriteLogLine("ERROR: Missing flat lump '" + Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Missing flat lump '" + Name + "'!");
loadfailed = true;
}

View file

@ -99,7 +99,7 @@ namespace CodeImp.DoomBuilder.Data
catch(Exception e)
{
// Unable to make bitmap
General.WriteLogLine("ERROR: Unable to load texture image '" + this.Name + "'. " + e.GetType().Name + ": " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, "Unable to load texture image '" + this.Name + "'. " + e.GetType().Name + ": " + e.Message);
loadfailed = true;
}
@ -124,7 +124,7 @@ namespace CodeImp.DoomBuilder.Data
if(reader is UnknownImageReader)
{
// Data is in an unknown format!
General.WriteLogLine("ERROR: Patch lump '" + p.lumpname + "' data format could not be read, while loading texture '" + this.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Patch lump '" + p.lumpname + "' data format could not be read, while loading texture '" + this.Name + "'!");
loadfailed = true;
}
else
@ -136,7 +136,7 @@ namespace CodeImp.DoomBuilder.Data
catch(InvalidDataException)
{
// Data cannot be read!
General.WriteLogLine("ERROR: Patch lump '" + p.lumpname + "' data format could not be read, while loading texture '" + this.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Patch lump '" + p.lumpname + "' data format could not be read, while loading texture '" + this.Name + "'!");
loadfailed = true;
}
if(patchbmp != null)
@ -151,7 +151,7 @@ namespace CodeImp.DoomBuilder.Data
}
catch(Exception e)
{
General.WriteLogLine("ERROR: Cannot lock image '" + p.lumpname + "' for alpha adjustment. " + e.GetType().Name + ": " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, "Cannot lock image '" + p.lumpname + "' for alpha adjustment. " + e.GetType().Name + ": " + e.Message);
}
if(bmpdata != null)
@ -179,7 +179,7 @@ namespace CodeImp.DoomBuilder.Data
else
{
// Missing a patch lump!
General.WriteLogLine("ERROR: Missing patch lump '" + p.lumpname + "' while loading texture '" + this.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Missing patch lump '" + p.lumpname + "' while loading texture '" + this.Name + "'!");
loadfailed = true;
}
}

View file

@ -240,7 +240,7 @@ namespace CodeImp.DoomBuilder.Data
// Bitmap has incorrect format?
if(bitmap.PixelFormat != PixelFormat.Format32bppArgb)
{
General.WriteLogLine("WARNING: Image '" + name + "' does not have A8R8G8B8 pixel format. Conversion was needed!");
General.ErrorLogger.Add(ErrorType.Warning, "Image '" + name + "' does not have A8R8G8B8 pixel format. Conversion was needed!");
Bitmap oldbitmap = bitmap;
try
{
@ -260,7 +260,7 @@ namespace CodeImp.DoomBuilder.Data
catch(Exception e)
{
bitmap = oldbitmap;
General.WriteLogLine("WARNING: Cannot lock image '" + name + "' for pixel format conversion. " + e.GetType().Name + ": " + e.Message);
General.ErrorLogger.Add(ErrorType.Warning, "Cannot lock image '" + name + "' for pixel format conversion. " + e.GetType().Name + ": " + e.Message);
}
}
@ -274,7 +274,7 @@ namespace CodeImp.DoomBuilder.Data
}
catch(Exception e)
{
General.WriteLogLine("WARNING: Cannot lock image '" + name + "' for color correction. " + e.GetType().Name + ": " + e.Message);
General.ErrorLogger.Add(ErrorType.Warning, "Cannot lock image '" + name + "' for color correction. " + e.GetType().Name + ": " + e.Message);
}
// Bitmap locked?

View file

@ -102,7 +102,7 @@ namespace CodeImp.DoomBuilder.Data
// Not loaded?
if(bitmap == null)
{
General.WriteLogLine("ERROR: Image file '" + filepathname + "' data format could not be read, while loading texture '" + this.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Image file '" + filepathname + "' data format could not be read, while loading texture '" + this.Name + "'!");
loadfailed = true;
}
else

View file

@ -108,7 +108,7 @@ namespace CodeImp.DoomBuilder.Data
// Not loaded?
if(bitmap == null)
{
General.WriteLogLine("ERROR: Image lump '" + lumpname + "' data format could not be read, while loading texture '" + this.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Image lump '" + lumpname + "' data format could not be read, while loading texture '" + this.Name + "'!");
loadfailed = true;
}
else
@ -125,7 +125,7 @@ namespace CodeImp.DoomBuilder.Data
}
else
{
General.WriteLogLine("ERROR: Image lump '" + lumpname + "' could not be found, while loading texture '" + this.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Image lump '" + lumpname + "' could not be found, while loading texture '" + this.Name + "'!");
loadfailed = true;
}

View file

@ -78,7 +78,7 @@ namespace CodeImp.DoomBuilder.Data
if(reader is UnknownImageReader)
{
// Data is in an unknown format!
General.WriteLogLine("ERROR: Sprite lump '" + Name + "' data format could not be read!");
General.ErrorLogger.Add(ErrorType.Error, "Sprite lump '" + Name + "' data format could not be read!");
bitmap = null;
}
else
@ -108,7 +108,7 @@ namespace CodeImp.DoomBuilder.Data
else
{
// Missing a patch lump!
General.WriteLogLine("ERROR: Missing sprite lump '" + Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Missing sprite lump '" + Name + "'!");
}
// Pass on to base

View file

@ -99,7 +99,7 @@ namespace CodeImp.DoomBuilder.Data
catch(Exception e)
{
// Unable to make bitmap
General.WriteLogLine("ERROR: Unable to load texture image '" + this.Name + "'. " + e.GetType().Name + ": " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, "Unable to load texture image '" + this.Name + "'. " + e.GetType().Name + ": " + e.Message);
loadfailed = true;
}
@ -124,7 +124,7 @@ namespace CodeImp.DoomBuilder.Data
if(reader is UnknownImageReader)
{
// Data is in an unknown format!
General.WriteLogLine("ERROR: Patch lump '" + p.lumpname + "' data format could not be read, while loading texture '" + this.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Patch lump '" + p.lumpname + "' data format could not be read, while loading texture '" + this.Name + "'!");
loadfailed = true;
}
else
@ -135,7 +135,7 @@ namespace CodeImp.DoomBuilder.Data
catch(InvalidDataException)
{
// Data cannot be read!
General.WriteLogLine("ERROR: Patch lump '" + p.lumpname + "' data format could not be read, while loading texture '" + this.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Patch lump '" + p.lumpname + "' data format could not be read, while loading texture '" + this.Name + "'!");
loadfailed = true;
}
}
@ -146,7 +146,7 @@ namespace CodeImp.DoomBuilder.Data
else
{
// Missing a patch lump!
General.WriteLogLine("ERROR: Missing patch lump '" + p.lumpname + "' while loading texture '" + this.Name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Missing patch lump '" + p.lumpname + "' while loading texture '" + this.Name + "'!");
loadfailed = true;
}
}

View file

@ -340,7 +340,7 @@ namespace CodeImp.DoomBuilder.Editing
catch(Exception e)
{
Cursor.Current = oldcursor;
General.WriteLogLine("ERROR: " + e.GetType().Name + " while writing prefab to file: " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, e.GetType().Name + " while writing prefab to file: " + e.Message);
General.ShowErrorMessage("Error while writing prefab to file! See log file for error details.", MessageBoxButtons.OK);
}
}
@ -391,7 +391,7 @@ namespace CodeImp.DoomBuilder.Editing
catch(Exception e)
{
Cursor.Current = oldcursor;
General.WriteLogLine("ERROR: " + e.GetType().Name + " while reading prefab from file: " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, e.GetType().Name + " while reading prefab from file: " + e.Message);
General.ShowErrorMessage("Error while reading prefab from file! See log file for error details.", MessageBoxButtons.OK);
}
@ -439,7 +439,7 @@ namespace CodeImp.DoomBuilder.Editing
catch(Exception e)
{
Cursor.Current = oldcursor;
General.WriteLogLine("ERROR: " + e.GetType().Name + " while reading prefab from file: " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, e.GetType().Name + " while reading prefab from file: " + e.Message);
General.ShowErrorMessage("Error while reading prefab from file! See log file for error details.", MessageBoxButtons.OK);
}

View file

@ -38,6 +38,8 @@ namespace CodeImp.DoomBuilder
private List<ErrorItem> errors;
private volatile bool changed;
private volatile bool erroradded;
private volatile bool warningadded;
#endregion
@ -45,6 +47,8 @@ namespace CodeImp.DoomBuilder
public bool HasErrors { get { return (errors.Count > 0); } }
public bool HasChanged { get { return changed; } set { changed = value; } }
public bool IsErrorAdded { get { return erroradded; } set { erroradded = value; } }
public bool IsWarningAdded { get { return warningadded; } set { warningadded = value; } }
#endregion
@ -65,18 +69,35 @@ namespace CodeImp.DoomBuilder
{
lock(this)
{
errors.Clear();
changed = false;
erroradded = false;
warningadded = false;
errors.Clear();
}
}
// This adds a new error
public void AddError(ErrorType type, string message)
public void Add(ErrorType type, string message)
{
string prefix = "";
lock(this)
{
errors.Add(new ErrorItem(type, message));
switch(type)
{
case ErrorType.Error:
erroradded = true;
prefix = "ERROR: ";
break;
case ErrorType.Warning:
warningadded = true;
prefix = "WARNING: ";
break;
}
changed = true;
General.WriteLogLine(prefix + message);
}
}

View file

@ -744,7 +744,7 @@ namespace CodeImp.DoomBuilder
else
{
// Note in the log that we cannot find this file
General.WriteLogLine("WARNING: Cannot find the specified file \"" + curarg + "\"");
General.ErrorLogger.Add(ErrorType.Warning, "Cannot find the specified file \"" + curarg + "\"");
}
}
}
@ -900,7 +900,7 @@ namespace CodeImp.DoomBuilder
if(map != null) map.Dispose();
// Set this to false so we can see if errors are added
General.ErrorLogger.HasChanged = false;
General.ErrorLogger.IsErrorAdded = false;
// Create map manager with given options
map = new MapManager();
@ -925,9 +925,9 @@ namespace CodeImp.DoomBuilder
mainwindow.RedrawDisplay();
mainwindow.UpdateInterface();
mainwindow.HideInfo();
if(errorlogger.HasChanged)
mainwindow.DisplayStatus(StatusType.Warning, "Errors or warnings during loading!");
if(errorlogger.IsErrorAdded)
mainwindow.DisplayStatus(StatusType.Warning, "There were errors during loading!");
else
mainwindow.DisplayReady();
@ -1041,7 +1041,7 @@ namespace CodeImp.DoomBuilder
if(map != null) map.Dispose();
// Set this to false so we can see if errors are added
General.ErrorLogger.HasChanged = false;
General.ErrorLogger.IsErrorAdded = false;
// Create map manager with given options
map = new MapManager();
@ -1067,9 +1067,9 @@ namespace CodeImp.DoomBuilder
mainwindow.RedrawDisplay();
mainwindow.UpdateInterface();
mainwindow.HideInfo();
if(errorlogger.HasChanged)
mainwindow.DisplayStatus(StatusType.Warning, "Errors or warnings during loading!");
if(errorlogger.IsErrorAdded)
mainwindow.DisplayStatus(StatusType.Warning, "There were errors during loading!");
else
mainwindow.DisplayReady();
@ -1100,7 +1100,7 @@ namespace CodeImp.DoomBuilder
Cursor.Current = Cursors.WaitCursor;
// Set this to false so we can see if errors are added
General.ErrorLogger.HasChanged = false;
General.ErrorLogger.IsErrorAdded = false;
// Save the map
if(map.SaveMap(map.FilePathName, MapManager.SAVE_NORMAL))
@ -1113,8 +1113,8 @@ namespace CodeImp.DoomBuilder
// All done
mainwindow.UpdateInterface();
if(errorlogger.HasChanged)
mainwindow.DisplayStatus(StatusType.Warning, "Errors or warnings during saving!");
if(errorlogger.IsErrorAdded)
mainwindow.DisplayStatus(StatusType.Warning, "There were errors during saving!");
else
mainwindow.DisplayReady();
@ -1152,7 +1152,7 @@ namespace CodeImp.DoomBuilder
Cursor.Current = Cursors.WaitCursor;
// Set this to false so we can see if errors are added
General.ErrorLogger.HasChanged = false;
General.ErrorLogger.IsErrorAdded = false;
// Save the map
if(map.SaveMap(savefile.FileName, MapManager.SAVE_AS))
@ -1165,8 +1165,8 @@ namespace CodeImp.DoomBuilder
// All done
mainwindow.UpdateInterface();
if(errorlogger.HasChanged)
mainwindow.DisplayStatus(StatusType.Warning, "Errors or warnings during loading!");
if(errorlogger.IsErrorAdded)
mainwindow.DisplayStatus(StatusType.Warning, "There were errors during saving!");
else
mainwindow.DisplayReady();
@ -1204,7 +1204,7 @@ namespace CodeImp.DoomBuilder
Cursor.Current = Cursors.WaitCursor;
// Set this to false so we can see if errors are added
General.ErrorLogger.HasChanged = false;
General.ErrorLogger.IsErrorAdded = false;
// Save the map
if(map.SaveMap(savefile.FileName, MapManager.SAVE_INTO))
@ -1217,8 +1217,8 @@ namespace CodeImp.DoomBuilder
// All done
mainwindow.UpdateInterface();
if(errorlogger.HasChanged)
mainwindow.DisplayStatus(StatusType.Warning, "Errors or warnings during loading!");
if(errorlogger.IsErrorAdded)
mainwindow.DisplayStatus(StatusType.Warning, "There were errors during saving!");
else
mainwindow.DisplayReady();

View file

@ -348,7 +348,7 @@ namespace CodeImp.DoomBuilder
try { map = io.Read(map, TEMP_MAP_HEADER); }
catch(Exception e)
{
General.WriteLogLine("ERROR: " + e.GetType().Name + ": " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, e.GetType().Name + ": " + e.Message);
General.ShowErrorMessage("Unable to read the map data structures with the specified configuration.", MessageBoxButtons.OK);
return false;
}
@ -616,8 +616,8 @@ namespace CodeImp.DoomBuilder
catch(Exception e)
{
// Warning only
General.WriteLogLine("WARNING: " + e.GetType().Name + ": " + e.Message);
General.WriteLogLine("WARNING: Could not write the map settings configuration file!");
General.ErrorLogger.Add(ErrorType.Warning, e.GetType().Name + ": " + e.Message);
General.ErrorLogger.Add(ErrorType.Warning, "Could not write the map settings configuration file!");
}
// Check for compile errors, if the scripts were compiled above
@ -965,7 +965,7 @@ namespace CodeImp.DoomBuilder
}
else
{
General.WriteLogLine("WARNING: " + ml.Key.ToString() + " should be copied but was not found!");
General.ErrorLogger.Add(ErrorType.Warning, ml.Key.ToString() + " should be copied but was not found!");
}
}
}
@ -1025,7 +1025,7 @@ namespace CodeImp.DoomBuilder
else
{
// Lump not found
//General.WriteLogLine("WARNING: " + lumpname + " should be removed but was not found!");
//General.ErrorLogger.Add(ErrorType.Warning, lumpname + " should be removed but was not found!");
}
// Return result

View file

@ -111,7 +111,7 @@ namespace CodeImp.DoomBuilder.IO
catch(Exception e)
{
// Unable to make bitmap
General.WriteLogLine("ERROR: Unable to make doom flat data. " + e.GetType().Name + ": " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, "Unable to make doom flat data. " + e.GetType().Name + ": " + e.Message);
return null;
}
}

View file

@ -299,12 +299,12 @@ namespace CodeImp.DoomBuilder.IO
}
else
{
General.WriteLogLine("WARNING: Sidedef references invalid sector " + sc + "! Sidedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Sidedef references invalid sector " + sc + "! Sidedef has been removed.");
}
}
else
{
General.WriteLogLine("WARNING: Linedef references invalid sidedef! Sidedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Linedef references invalid sidedef! Sidedef has been removed.");
}
}
@ -330,18 +330,18 @@ namespace CodeImp.DoomBuilder.IO
}
else
{
General.WriteLogLine("WARNING: Sidedef references invalid sector " + sc + "! Sidedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Sidedef references invalid sector " + sc + "! Sidedef has been removed.");
}
}
else
{
General.WriteLogLine("WARNING: Linedef references invalid sidedef! Sidedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Linedef references invalid sidedef! Sidedef has been removed.");
}
}
}
else
{
General.WriteLogLine("WARNING: Linedef references one or more invalid vertices! Linedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Linedef references one or more invalid vertices! Linedef has been removed.");
}
}

View file

@ -127,7 +127,7 @@ namespace CodeImp.DoomBuilder.IO
catch(Exception e)
{
// Unable to make bitmap
General.WriteLogLine("ERROR: Unable to make doom picture data. " + e.GetType().Name + ": " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, "Unable to make doom picture data. " + e.GetType().Name + ": " + e.Message);
return null;
}
}

View file

@ -58,7 +58,7 @@ namespace CodeImp.DoomBuilder.IO
catch(Exception e)
{
// Unable to make bitmap
General.WriteLogLine("ERROR: Unable to make file image. " + e.GetType().Name + ": " + e.Message);
General.ErrorLogger.Add(ErrorType.Error, "Unable to make file image. " + e.GetType().Name + ": " + e.Message);
return null;
}
}

View file

@ -314,12 +314,12 @@ namespace CodeImp.DoomBuilder.IO
}
else
{
General.WriteLogLine("WARNING: Sidedef references invalid sector " + sc + "! Sidedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Sidedef references invalid sector " + sc + "! Sidedef has been removed.");
}
}
else
{
General.WriteLogLine("WARNING: Linedef references invalid sidedef! Sidedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Linedef references invalid sidedef! Sidedef has been removed.");
}
}
@ -345,18 +345,18 @@ namespace CodeImp.DoomBuilder.IO
}
else
{
General.WriteLogLine("WARNING: Sidedef references invalid sector " + sc + "! Sidedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Sidedef references invalid sector " + sc + "! Sidedef has been removed.");
}
}
else
{
General.WriteLogLine("WARNING: Linedef references invalid sidedef! Sidedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Linedef references invalid sidedef! Sidedef has been removed.");
}
}
}
else
{
General.WriteLogLine("WARNING: Linedef references one or more invalid vertices! Linedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Linedef references one or more invalid vertices! Linedef has been removed.");
}
}

View file

@ -243,7 +243,7 @@ namespace CodeImp.DoomBuilder.IO
if(s1 < sidescolls.Count)
ReadSidedef(map, sidescolls[s1], l, true, sectorlink);
else
General.WriteLogLine("WARNING: Linedef references invalid sidedef! Sidedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Linedef references invalid sidedef! Sidedef has been removed.");
}
if(s2 > -1)
@ -251,12 +251,12 @@ namespace CodeImp.DoomBuilder.IO
if(s2 < sidescolls.Count)
ReadSidedef(map, sidescolls[s2], l, false, sectorlink);
else
General.WriteLogLine("WARNING: Linedef references invalid sidedef! Sidedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Linedef references invalid sidedef! Sidedef has been removed.");
}
}
else
{
General.WriteLogLine("WARNING: Linedef references one or more invalid vertices! Linedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Linedef references one or more invalid vertices! Linedef has been removed.");
}
}
}
@ -284,7 +284,7 @@ namespace CodeImp.DoomBuilder.IO
}
else
{
General.WriteLogLine("WARNING: Sidedef references invalid sector " + sector + "! Sidedef has been removed.");
General.ErrorLogger.Add(ErrorType.Warning, "Sidedef references invalid sector " + sector + "! Sidedef has been removed.");
}
}

View file

@ -77,7 +77,7 @@ namespace CodeImp.DoomBuilder.Plugins
}
catch(Exception)
{
General.WriteLogLine("ERROR: Could not load plugin '" + name + "', the DLL file could not be read!");
General.ErrorLogger.Add(ErrorType.Error, "Could not load plugin '" + name + "', the DLL file could not be read!");
throw new InvalidProgramException();
}
@ -89,7 +89,7 @@ namespace CodeImp.DoomBuilder.Plugins
if(FindClasses(typeof(Plug)).Length > 1)
{
// Show a warning
General.WriteLogLine("WARNING: Plugin '" + name + "' has more than one plug!");
General.ErrorLogger.Add(ErrorType.Warning, "Plugin '" + name + "' has more than one plug!");
}
// Make plug instance
@ -99,7 +99,7 @@ namespace CodeImp.DoomBuilder.Plugins
else
{
// How can we plug something in without a plug?
General.WriteLogLine("ERROR: Could not load plugin '" + name + "', plugin is missing the plug!");
General.ErrorLogger.Add(ErrorType.Error, "Could not load plugin '" + name + "', plugin is missing the plug!");
throw new InvalidProgramException();
}
@ -189,14 +189,14 @@ namespace CodeImp.DoomBuilder.Plugins
catch(TargetInvocationException e)
{
// Error!
General.WriteLogLine("ERROR: Failed to create class instance '" + t.Name + "' from plugin '" + name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Failed to create class instance '" + t.Name + "' from plugin '" + name + "'!");
General.WriteLogLine(e.InnerException.GetType().Name + ": " + e.InnerException.Message);
return default(T);
}
catch(Exception e)
{
// Error!
General.WriteLogLine("ERROR: Failed to create class instance '" + t.Name + "' from plugin '" + name + "'!");
General.ErrorLogger.Add(ErrorType.Error, "Failed to create class instance '" + t.Name + "' from plugin '" + name + "'!");
General.WriteLogLine(e.GetType().Name + ": " + e.Message);
return default(T);
}

View file

@ -116,7 +116,7 @@ namespace CodeImp.DoomBuilder.Plugins
}
catch(InvalidProgramException)
{
General.WriteLogLine("WARNING: Plugin file '" + Path.GetFileName(fn) + "' was not loaded.");
General.ErrorLogger.Add(ErrorType.Warning, "Plugin file '" + Path.GetFileName(fn) + "' was not loaded.");
p = null;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 B

After

Width:  |  Height:  |  Size: 871 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 636 B

After

Width:  |  Height:  |  Size: 841 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 623 B

After

Width:  |  Height:  |  Size: 801 B

142
Source/Windows/ErrorsForm.Designer.cs generated Normal file
View file

@ -0,0 +1,142 @@
namespace CodeImp.DoomBuilder.Windows
{
partial class ErrorsForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if(disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ErrorsForm));
this.list = new System.Windows.Forms.ListView();
this.colmessage = new System.Windows.Forms.ColumnHeader();
this.images = new System.Windows.Forms.ImageList(this.components);
this.copyselected = new System.Windows.Forms.Button();
this.clearlist = new System.Windows.Forms.Button();
this.close = new System.Windows.Forms.Button();
this.checkerrors = new System.Windows.Forms.Timer(this.components);
this.SuspendLayout();
//
// list
//
this.list.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.list.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.colmessage});
this.list.FullRowSelect = true;
this.list.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.list.HideSelection = false;
this.list.Location = new System.Drawing.Point(12, 12);
this.list.Name = "list";
this.list.Size = new System.Drawing.Size(732, 395);
this.list.SmallImageList = this.images;
this.list.TabIndex = 0;
this.list.UseCompatibleStateImageBehavior = false;
this.list.View = System.Windows.Forms.View.Details;
//
// colmessage
//
this.colmessage.Text = "";
this.colmessage.Width = 702;
//
// images
//
this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream")));
this.images.TransparentColor = System.Drawing.Color.Transparent;
this.images.Images.SetKeyName(0, "ErrorLarge.png");
this.images.Images.SetKeyName(1, "WarningLarge.png");
//
// copyselected
//
this.copyselected.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.copyselected.Location = new System.Drawing.Point(12, 416);
this.copyselected.Name = "copyselected";
this.copyselected.Size = new System.Drawing.Size(122, 25);
this.copyselected.TabIndex = 1;
this.copyselected.Text = "Copy Selection";
this.copyselected.UseVisualStyleBackColor = true;
//
// clearlist
//
this.clearlist.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.clearlist.Location = new System.Drawing.Point(150, 416);
this.clearlist.Name = "clearlist";
this.clearlist.Size = new System.Drawing.Size(122, 25);
this.clearlist.TabIndex = 2;
this.clearlist.Text = "Clear";
this.clearlist.UseVisualStyleBackColor = true;
this.clearlist.Click += new System.EventHandler(this.clearlist_Click);
//
// close
//
this.close.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.close.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.close.Location = new System.Drawing.Point(622, 416);
this.close.Name = "close";
this.close.Size = new System.Drawing.Size(122, 25);
this.close.TabIndex = 3;
this.close.Text = "Close";
this.close.UseVisualStyleBackColor = true;
this.close.Click += new System.EventHandler(this.close_Click);
//
// checkerrors
//
this.checkerrors.Interval = 1000;
this.checkerrors.Tick += new System.EventHandler(this.checkerrors_Tick);
//
// ErrorsForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 14F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.close;
this.ClientSize = new System.Drawing.Size(756, 453);
this.Controls.Add(this.close);
this.Controls.Add(this.clearlist);
this.Controls.Add(this.copyselected);
this.Controls.Add(this.list);
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.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "ErrorsForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Errors and Warnings";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ErrorsForm_FormClosing);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ListView list;
private System.Windows.Forms.Button copyselected;
private System.Windows.Forms.Button clearlist;
private System.Windows.Forms.Button close;
private System.Windows.Forms.ColumnHeader colmessage;
private System.Windows.Forms.ImageList images;
private System.Windows.Forms.Timer checkerrors;
}
}

View file

@ -0,0 +1,111 @@
#region ================== Copyright (c) 2007 Pascal vd Heiden
/*
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
* This program is released under GNU General Public License
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#endregion
#region ================== Namespaces
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Diagnostics;
using CodeImp.DoomBuilder.Actions;
using CodeImp.DoomBuilder.Data;
using CodeImp.DoomBuilder.Config;
using CodeImp.DoomBuilder.Map;
using CodeImp.DoomBuilder.Controls;
#endregion
namespace CodeImp.DoomBuilder.Windows
{
public partial class ErrorsForm : Form
{
#region ================== Variables
#endregion
#region ================== Constructor / Disposer
// Constructor
public ErrorsForm()
{
InitializeComponent();
list.Items.Clear();
FillList();
checkerrors.Start();
}
#endregion
#region ================== Methods
// This sets up the list
private void FillList()
{
// Fill the list with the items we don't have yet
list.BeginUpdate();
General.ErrorLogger.HasChanged = false;
List<ErrorItem> errors = General.ErrorLogger.GetErrors();
int startindex = list.Items.Count;
for(int i = startindex; i < errors.Count; i++)
{
ErrorItem e = errors[i];
int icon = (e.type == ErrorType.Error) ? 0 : 1;
ListViewItem item = new ListViewItem(e.message, icon);
list.Items.Add(item);
}
list.EndUpdate();
}
#endregion
#region ================== Events
// Close clicked
private void close_Click(object sender, EventArgs e)
{
this.Close();
}
// Closing
private void ErrorsForm_FormClosing(object sender, FormClosingEventArgs e)
{
checkerrors.Stop();
}
// Checking for more errors
private void checkerrors_Tick(object sender, EventArgs e)
{
// If errors have been added, update the list
if(General.ErrorLogger.HasChanged)
{
FillList();
}
}
// This clears all errors
private void clearlist_Click(object sender, EventArgs e)
{
General.ErrorLogger.Clear();
list.Items.Clear();
}
#endregion
}
}

View file

@ -0,0 +1,194 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="list.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="images.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="images.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACu
CgAAAk1TRnQBSQFMAgEBAgEAAQQBAAEEAQABEgEAARIBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFI
AwABEgMAAQEBAAEgBQABQAEUKgABFwIBAR4BLgIBAUUBNAIBAVEBKAIBATsBDQIBARD/AAUAAScCAQE4
AVECDgGdAXABQgFRAdkBdAFcAYYB7wFwAVsBkwHyAXYBVQF9AesBZAEsATQBygFFAgQBfgEUAgEBGvQA
AQQCAQEEAUcCBgGAAY4BgAGpAfYCOAGlAf8BCQEIAZYB/wICAZ4B/wIGAa4B/wIMAb8B/wIhAdMB/wFh
AV8B4gH/AXYBSQFYAd0BMAIBAUoQAAEXAgEBHgEqAgEBPgEtAgEBRAEtAgEBQwEtAgEBQwEtAgEBQwEs
AgEBQgEsAgEBQgEsAgEBQgEsAgEBQQErAgEBQAErAgEBPwEqAgEBPgEqAgEBPQEqAgEBPQEiAgEBMKAA
AU0CCQGLAXIBcQG/Af8CAgGHAf8CAgGLAf8CAwGVAf8BCAEHAZ8B/wEMAQsBrAH/AhABuQH/Ag8BxgH/
Ag4B1QH/Ai4B5QH/AYYBbgGZAfEBLgIBAUcMAAFoAiUBsAGnAY8BlAHpAZoBlQGbAeoBoAGWAZwB6gGl
AZYBngHpAakBngGkAekBrgGhAakB6QGyAakBsAHpAbIBqgGwAekBsQGjAaoB6AGsAZ4BowHoAacBlQGb
AecBoAGQAZgB5wGZAY0BkwHnAZoBiwGQAecBdAI0Ab6cAAEyAgIBTQGBAX0BvQH9AgIBjwH/AgIBjgH/
AhMBjwH/AgIBkwH/AgUBngH/AgkBpwH/AgkBsgH/AhsBvAH/AhkBwwH/Ag8B0gH/Ai4B4AH/AXABRAFR
AdsBEgIBARYIAAErAgEBPwGZAYUBhwHkAVwB9QL/AVUB8gL/AVYB7gL/AVQB6wL/AVIB7wL/AUcBoAG+
Af8BWgGEAZQB/wFXAdkC/wFXAeAC/wFYAd8C/wFYAeAC/wFOAeAC/wGaAekC/wFKAggBfZgAAQkCAQEK
AXEBNAE4AcECFgGkAf8CAgGXAf8CQQGhAf8CogGoAf8CSAGVAf8CAgGYAf8CAgGjAf8CGgGsAf8CtQHV
Af8CqQHWAf8BGgEZAb8B/wIKAckB/wFhAV8B1QH/AUICAwFzDAABQgIEAW4BjwHvAv8BGAHiAv8BIgHe
Av8BHgHZAv8BGQHdAv8BFQFCAU0B/wEzATABLQH/ASkBvQHvAf8BHQHKAv8BIwHFAv8BHgHFAv8BNgHL
Av8BkwFsAW4B2QENAgEBD5gAATUCAwFRAYcBdQGiAfQBFwEYAacB/wICAZ8B/wJjAbAB/wLBAbcB/wKt
AaoB/wJFAZgB/wIVAZwB/wKOAa4B/wLWAcoB/wLEAdcB/wEiASEBuAH/AgoBuQH/AiABwgH/AV4BIQEl
AcEMAAEJAgEBCgGQAV4BXwHSAUEB6wL/ARcB4gL/AR0B3gL/ARcB4QL/ATYB0AHrAf8BPwHBAdcB/wES
AcoC/wETAcsC/wEXAcYC/wENAcAC/wGkAeYC/wE4AQMBAgFZnAABXQEZARcBlwFsAWsBwAH/AS8BMAGy
Af8CGQGqAf8CBAGjAf8CbQG0Af8CvgG3Af8CqAGrAf8CkQGjAf8CrAGkAf8CmgGuAf8CJgGrAf8BBQEE
AaoB/wILAa0B/wIIAa4B/wFsAUgBZAHkEAABMwICAU4BvQH5AfoB/gEYAewC/wEeAeUC/wEcAegC/wEk
AWMBbgH/AUMBUgFQAf8BIwG8AeYB/wERAdMC/wELAcoC/wFKAdcC/wF5AjsBvAEEAgEBBJwAAXYCMwG0
AmEBwQH/ATUBNgG5Af8CNwG2Af8CIAGuAf8CAwGlAf8CdQG3Af8CvgG5Af8CsQGtAf8CmQGkAf8CHQGe
Af8CAgGgAf8CBgGhAf8CBgGiAf8CAgGgAf8BbAFSAXkB7RAAAQIDAQFyAi4BswF9A/8BLwH8Av8BMgH5
Av8BJAFEAUkB/wEuASUBJAH/ASwBvwHgAf8BGAHfAv8BEQHTAv8BxAHgAeMB+AEnAgEBOKAAAWoCJQGj
AWkBaAHFAf8COgHCAf8CPAG+Af8BNgE1AbgB/wFAAT8BuAH/AqwB0AH/As4ByQH/Ar8BugH/AqoBrQH/
AkUBmgH/AgIBmQH/AgIBnAH/AgIBmgH/AgIBmAH/AW4BSwFrAecUAAEiAgEBLwHVAtkB9QFBA/8BPwP/
AUIBWwFeAf8BOwEyATEB/wE/AckB4AH/ASAB8AL/AYAB+QL/AV0CGAGZpAABQgIHAWYBhQF5AbgB+QI+
AcsB/wI/AcUB/wJUAcgB/wLTAe0B/wL8AfIB/wLFAdkB/wGQAZEBwgH/AsQBwAH/ArQBsgH/AkwBmwH/
AggBlwH/AQgBBwGXAf8CEgGaAf8BZgEuATUByxgAAVUCEAGPAZ4D/wErA/8BTwFlAWgB/wFDAjsB/wFE
AcoB3QH/AUEB/gL/AcEBsAGxAekBFwIBAR2kAAESAgEBFwGRAV0BaAHVAkoB0QH/AkABzgH/ArQB7AX/
AuQB9QH/AlkBxQH/AjMBtwH/AowBxQH/As4BxwH/ArcBuAH/Aj0BowH/Ah8BmwH/Al0BtgH/AUkCBgGF
GAABEgIBARcBtQKbAeQBQQP/AVYBaAFqAf8BVgFDAUIB/wFEAc0B3QH/AacD/wFGAgYBc6wAAUcBCgEJ
AW4BgAF+AdAB/wFEAUUB1wH/AWUBZgHbAf8CvwHxAf8BaQFoAdUB/wI9AcQB/wI/AcEB/wI8AbwB/wKL
AcgB/wJ4Ab0B/wIyAa4B/wIyAaoB/wGQAXUBjQHsARoCAQEjHAABQAIEAWkBrAP/AUcBxgHMAf8BWAGy
AbcB/wFcAfMC/wGSAWMBZQHRAQoCAQELrAABCAIBAQkBewI7AbYBcQFwAdYB/wJIAdsB/wJJAdYB/wJI
AdIB/wJKAc8B/wJHAcsB/wJEAcYB/wI+AcEB/wI4AbsB/wI5AbgB/wGcAZkB0gH+ATwCAgFkIAABBwIB
AQcBiQJQAcsBRQP/AQUD/wGtAvoB/gEzAgIBT7QAARECAQEVAXoBNwE4AbMBhwGFAdUB/wJXAdwB/wJM
AdsB/wJLAdgB/wJJAdQB/wFFAUYBzwH/AkMBywH/AVwBWwHOAf8BngGNAbQB9QFBAgQBbygAAS4CAgFG
Aa4B7gHwAfwBSgP/AW0CKgGyAQMCAQECuAABBwIBAQcBQwIHAWcBjAFUAVoBzAGXAYEBswHzAYABfwHT
Af4BfQF8AdcB/wGHAYIB0AH8AZEBdgGVAeoBZQEhASIBqwEoAgEBOTAAAWECHAGmAcECugHyASECAQEt
/wD/APIAAUIBTQE+BwABPgMAASgDAAFIAwABEgMAAQEBAAEBBQAB2BcAA/8BAAH8AR8C/wHwBwAB8AEH
Av8B8AcAAcABAwHAAQABMAcAAcABAQHAAQABMAcAAYABAAHAAQABMAkAAeABAAEwCQAB4AEAAXAJAAHw
AQABcAkAAfABAAHwCQAB+AEBAfAJAAH8AQEB8AkAAfwBAwHwBwABgAEAAf4BAwHwBwABgAEBAf4BBwHw
BwABwAEDAf8BBwHwBwAB4AEHAf8BjwHwBwAE/wHwBwAE/wHwBwAL
</value>
</data>
<metadata name="copyselected.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="clearlist.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="close.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="checkerrors.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>103, 17</value>
</metadata>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

View file

@ -88,6 +88,7 @@ namespace CodeImp.DoomBuilder.Windows
this.itemcreateprefab = new System.Windows.Forms.ToolStripMenuItem();
this.menutools = new System.Windows.Forms.ToolStripMenuItem();
this.itemreloadresources = new System.Windows.Forms.ToolStripMenuItem();
this.itemshowerrors = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripSeparator();
this.configurationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.preferencesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -159,7 +160,6 @@ namespace CodeImp.DoomBuilder.Windows
this.processor = new System.Windows.Forms.Timer(this.components);
this.statusflasher = new System.Windows.Forms.Timer(this.components);
this.statusresetter = new System.Windows.Forms.Timer(this.components);
this.errorsAndWarningsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
@ -184,13 +184,13 @@ namespace CodeImp.DoomBuilder.Windows
//
toolStripMenuItem1.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
toolStripMenuItem1.Name = "toolStripMenuItem1";
toolStripMenuItem1.Size = new System.Drawing.Size(199, 6);
toolStripMenuItem1.Size = new System.Drawing.Size(198, 6);
//
// toolStripMenuItem3
//
toolStripMenuItem3.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
toolStripMenuItem3.Name = "toolStripMenuItem3";
toolStripMenuItem3.Size = new System.Drawing.Size(199, 6);
toolStripMenuItem3.Size = new System.Drawing.Size(198, 6);
//
// toolStripSeparator1
//
@ -220,7 +220,7 @@ namespace CodeImp.DoomBuilder.Windows
//
toolStripSeparator11.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
toolStripSeparator11.Name = "toolStripSeparator11";
toolStripSeparator11.Size = new System.Drawing.Size(160, 6);
toolStripSeparator11.Size = new System.Drawing.Size(162, 6);
//
// toolstripSeperator1
//
@ -232,7 +232,7 @@ namespace CodeImp.DoomBuilder.Windows
//
toolstripSeperator6.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
toolstripSeperator6.Name = "toolstripSeperator6";
toolstripSeperator6.Size = new System.Drawing.Size(160, 6);
toolstripSeperator6.Size = new System.Drawing.Size(162, 6);
//
// toolStripSeparator7
//
@ -249,12 +249,12 @@ namespace CodeImp.DoomBuilder.Windows
// toolStripMenuItem4
//
toolStripMenuItem4.Name = "toolStripMenuItem4";
toolStripMenuItem4.Size = new System.Drawing.Size(150, 6);
toolStripMenuItem4.Size = new System.Drawing.Size(161, 6);
//
// toolStripSeparator2
//
toolStripSeparator2.Name = "toolStripSeparator2";
toolStripSeparator2.Size = new System.Drawing.Size(153, 6);
toolStripSeparator2.Size = new System.Drawing.Size(164, 6);
//
// toolStripSeparator4
//
@ -306,7 +306,7 @@ namespace CodeImp.DoomBuilder.Windows
toolStripMenuItem3,
this.itemexit});
this.menufile.Name = "menufile";
this.menufile.Size = new System.Drawing.Size(37, 20);
this.menufile.Size = new System.Drawing.Size(35, 20);
this.menufile.Text = "File";
//
// itemnewmap
@ -314,7 +314,7 @@ namespace CodeImp.DoomBuilder.Windows
this.itemnewmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.File;
this.itemnewmap.Name = "itemnewmap";
this.itemnewmap.ShortcutKeyDisplayString = "";
this.itemnewmap.Size = new System.Drawing.Size(202, 22);
this.itemnewmap.Size = new System.Drawing.Size(201, 22);
this.itemnewmap.Tag = "builder_newmap";
this.itemnewmap.Text = "New Map";
this.itemnewmap.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -323,7 +323,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemopenmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.OpenMap;
this.itemopenmap.Name = "itemopenmap";
this.itemopenmap.Size = new System.Drawing.Size(202, 22);
this.itemopenmap.Size = new System.Drawing.Size(201, 22);
this.itemopenmap.Tag = "builder_openmap";
this.itemopenmap.Text = "Open Map...";
this.itemopenmap.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -331,7 +331,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemclosemap
//
this.itemclosemap.Name = "itemclosemap";
this.itemclosemap.Size = new System.Drawing.Size(202, 22);
this.itemclosemap.Size = new System.Drawing.Size(201, 22);
this.itemclosemap.Tag = "builder_closemap";
this.itemclosemap.Text = "Close Map";
this.itemclosemap.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -340,7 +340,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemsavemap.Image = global::CodeImp.DoomBuilder.Properties.Resources.SaveMap;
this.itemsavemap.Name = "itemsavemap";
this.itemsavemap.Size = new System.Drawing.Size(202, 22);
this.itemsavemap.Size = new System.Drawing.Size(201, 22);
this.itemsavemap.Tag = "builder_savemap";
this.itemsavemap.Text = "Save Map";
this.itemsavemap.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -348,7 +348,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemsavemapas
//
this.itemsavemapas.Name = "itemsavemapas";
this.itemsavemapas.Size = new System.Drawing.Size(202, 22);
this.itemsavemapas.Size = new System.Drawing.Size(201, 22);
this.itemsavemapas.Tag = "builder_savemapas";
this.itemsavemapas.Text = "Save Map As...";
this.itemsavemapas.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -356,7 +356,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemsavemapinto
//
this.itemsavemapinto.Name = "itemsavemapinto";
this.itemsavemapinto.Size = new System.Drawing.Size(202, 22);
this.itemsavemapinto.Size = new System.Drawing.Size(201, 22);
this.itemsavemapinto.Tag = "builder_savemapinto";
this.itemsavemapinto.Text = "Save Map Into...";
this.itemsavemapinto.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -365,19 +365,19 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem5.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem5.Name = "toolStripMenuItem5";
this.toolStripMenuItem5.Size = new System.Drawing.Size(199, 6);
this.toolStripMenuItem5.Size = new System.Drawing.Size(198, 6);
//
// itemnorecent
//
this.itemnorecent.Enabled = false;
this.itemnorecent.Name = "itemnorecent";
this.itemnorecent.Size = new System.Drawing.Size(202, 22);
this.itemnorecent.Size = new System.Drawing.Size(201, 22);
this.itemnorecent.Text = "No recently opened files";
//
// itemexit
//
this.itemexit.Name = "itemexit";
this.itemexit.Size = new System.Drawing.Size(202, 22);
this.itemexit.Size = new System.Drawing.Size(201, 22);
this.itemexit.Text = "Exit";
this.itemexit.Click += new System.EventHandler(this.itemexit_Click);
//
@ -400,14 +400,14 @@ namespace CodeImp.DoomBuilder.Windows
toolStripSeparator11,
this.itemmapoptions});
this.menuedit.Name = "menuedit";
this.menuedit.Size = new System.Drawing.Size(39, 20);
this.menuedit.Size = new System.Drawing.Size(37, 20);
this.menuedit.Text = "Edit";
//
// itemundo
//
this.itemundo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Undo;
this.itemundo.Name = "itemundo";
this.itemundo.Size = new System.Drawing.Size(163, 22);
this.itemundo.Size = new System.Drawing.Size(165, 22);
this.itemundo.Tag = "builder_undo";
this.itemundo.Text = "Undo";
this.itemundo.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -416,7 +416,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemredo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Redo;
this.itemredo.Name = "itemredo";
this.itemredo.Size = new System.Drawing.Size(163, 22);
this.itemredo.Size = new System.Drawing.Size(165, 22);
this.itemredo.Tag = "builder_redo";
this.itemredo.Text = "Redo";
this.itemredo.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -425,13 +425,13 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem7.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem7.Name = "toolStripMenuItem7";
this.toolStripMenuItem7.Size = new System.Drawing.Size(160, 6);
this.toolStripMenuItem7.Size = new System.Drawing.Size(162, 6);
//
// itemcut
//
this.itemcut.Image = global::CodeImp.DoomBuilder.Properties.Resources.Cut;
this.itemcut.Name = "itemcut";
this.itemcut.Size = new System.Drawing.Size(163, 22);
this.itemcut.Size = new System.Drawing.Size(165, 22);
this.itemcut.Tag = "builder_cutselection";
this.itemcut.Text = "Cut";
this.itemcut.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -440,7 +440,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemcopy.Image = global::CodeImp.DoomBuilder.Properties.Resources.Copy;
this.itemcopy.Name = "itemcopy";
this.itemcopy.Size = new System.Drawing.Size(163, 22);
this.itemcopy.Size = new System.Drawing.Size(165, 22);
this.itemcopy.Tag = "builder_copyselection";
this.itemcopy.Text = "Copy";
this.itemcopy.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -449,7 +449,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itempaste.Image = global::CodeImp.DoomBuilder.Properties.Resources.Paste;
this.itempaste.Name = "itempaste";
this.itempaste.Size = new System.Drawing.Size(163, 22);
this.itempaste.Size = new System.Drawing.Size(165, 22);
this.itempaste.Tag = "builder_pasteselection";
this.itempaste.Text = "Paste";
this.itempaste.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -460,7 +460,7 @@ namespace CodeImp.DoomBuilder.Windows
this.itemsnaptogrid.CheckState = System.Windows.Forms.CheckState.Checked;
this.itemsnaptogrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid4;
this.itemsnaptogrid.Name = "itemsnaptogrid";
this.itemsnaptogrid.Size = new System.Drawing.Size(163, 22);
this.itemsnaptogrid.Size = new System.Drawing.Size(165, 22);
this.itemsnaptogrid.Tag = "builder_togglesnap";
this.itemsnaptogrid.Text = "Snap to Grid";
this.itemsnaptogrid.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -471,7 +471,7 @@ namespace CodeImp.DoomBuilder.Windows
this.itemautomerge.CheckState = System.Windows.Forms.CheckState.Checked;
this.itemautomerge.Image = global::CodeImp.DoomBuilder.Properties.Resources.mergegeometry2;
this.itemautomerge.Name = "itemautomerge";
this.itemautomerge.Size = new System.Drawing.Size(163, 22);
this.itemautomerge.Size = new System.Drawing.Size(165, 22);
this.itemautomerge.Tag = "builder_toggleautomerge";
this.itemautomerge.Text = "Merge Geometry";
this.itemautomerge.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -480,12 +480,12 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem6.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem6.Name = "toolStripMenuItem6";
this.toolStripMenuItem6.Size = new System.Drawing.Size(160, 6);
this.toolStripMenuItem6.Size = new System.Drawing.Size(162, 6);
//
// itemgridinc
//
this.itemgridinc.Name = "itemgridinc";
this.itemgridinc.Size = new System.Drawing.Size(163, 22);
this.itemgridinc.Size = new System.Drawing.Size(165, 22);
this.itemgridinc.Tag = "builder_gridinc";
this.itemgridinc.Text = "Increase Grid";
this.itemgridinc.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -493,7 +493,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgriddec
//
this.itemgriddec.Name = "itemgriddec";
this.itemgriddec.Size = new System.Drawing.Size(163, 22);
this.itemgriddec.Size = new System.Drawing.Size(165, 22);
this.itemgriddec.Tag = "builder_griddec";
this.itemgriddec.Text = "Decrease Grid";
this.itemgriddec.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -502,7 +502,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemgridsetup.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2;
this.itemgridsetup.Name = "itemgridsetup";
this.itemgridsetup.Size = new System.Drawing.Size(163, 22);
this.itemgridsetup.Size = new System.Drawing.Size(165, 22);
this.itemgridsetup.Tag = "builder_gridsetup";
this.itemgridsetup.Text = "Grid Setup...";
this.itemgridsetup.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -511,7 +511,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemmapoptions.Image = global::CodeImp.DoomBuilder.Properties.Resources.Properties;
this.itemmapoptions.Name = "itemmapoptions";
this.itemmapoptions.Size = new System.Drawing.Size(163, 22);
this.itemmapoptions.Size = new System.Drawing.Size(165, 22);
this.itemmapoptions.Tag = "builder_mapoptions";
this.itemmapoptions.Text = "Map Options....";
this.itemmapoptions.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -528,14 +528,14 @@ namespace CodeImp.DoomBuilder.Windows
this.toolStripMenuItem10,
this.itemscripteditor});
this.menuview.Name = "menuview";
this.menuview.Size = new System.Drawing.Size(44, 20);
this.menuview.Size = new System.Drawing.Size(41, 20);
this.menuview.Text = "View";
//
// itemthingsfilter
//
this.itemthingsfilter.Image = global::CodeImp.DoomBuilder.Properties.Resources.Filter;
this.itemthingsfilter.Name = "itemthingsfilter";
this.itemthingsfilter.Size = new System.Drawing.Size(209, 22);
this.itemthingsfilter.Size = new System.Drawing.Size(210, 22);
this.itemthingsfilter.Tag = "builder_thingsfilterssetup";
this.itemthingsfilter.Text = "Configure Things Filters...";
this.itemthingsfilter.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -544,13 +544,13 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem9.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem9.Name = "toolStripMenuItem9";
this.toolStripMenuItem9.Size = new System.Drawing.Size(206, 6);
this.toolStripMenuItem9.Size = new System.Drawing.Size(207, 6);
//
// itemviewnormal
//
this.itemviewnormal.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewNormal;
this.itemviewnormal.Name = "itemviewnormal";
this.itemviewnormal.Size = new System.Drawing.Size(209, 22);
this.itemviewnormal.Size = new System.Drawing.Size(210, 22);
this.itemviewnormal.Tag = "builder_viewmodenormal";
this.itemviewnormal.Text = "Wireframe";
this.itemviewnormal.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -559,7 +559,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemviewbrightness.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewBrightness;
this.itemviewbrightness.Name = "itemviewbrightness";
this.itemviewbrightness.Size = new System.Drawing.Size(209, 22);
this.itemviewbrightness.Size = new System.Drawing.Size(210, 22);
this.itemviewbrightness.Tag = "builder_viewmodebrightness";
this.itemviewbrightness.Text = "Brightness Levels";
this.itemviewbrightness.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -568,7 +568,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemviewfloors.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewTextureFloor;
this.itemviewfloors.Name = "itemviewfloors";
this.itemviewfloors.Size = new System.Drawing.Size(209, 22);
this.itemviewfloors.Size = new System.Drawing.Size(210, 22);
this.itemviewfloors.Tag = "builder_viewmodefloors";
this.itemviewfloors.Text = "Floor Textures";
this.itemviewfloors.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -577,7 +577,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemviewceilings.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewTextureCeiling;
this.itemviewceilings.Name = "itemviewceilings";
this.itemviewceilings.Size = new System.Drawing.Size(209, 22);
this.itemviewceilings.Size = new System.Drawing.Size(210, 22);
this.itemviewceilings.Tag = "builder_viewmodeceilings";
this.itemviewceilings.Text = "Ceiling Textures";
this.itemviewceilings.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -586,13 +586,13 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem10.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem10.Name = "toolStripMenuItem10";
this.toolStripMenuItem10.Size = new System.Drawing.Size(206, 6);
this.toolStripMenuItem10.Size = new System.Drawing.Size(207, 6);
//
// itemscripteditor
//
this.itemscripteditor.Image = global::CodeImp.DoomBuilder.Properties.Resources.Script2;
this.itemscripteditor.Name = "itemscripteditor";
this.itemscripteditor.Size = new System.Drawing.Size(209, 22);
this.itemscripteditor.Size = new System.Drawing.Size(210, 22);
this.itemscripteditor.Tag = "builder_openscripteditor";
this.itemscripteditor.Text = "Script Editor...";
this.itemscripteditor.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -600,7 +600,7 @@ namespace CodeImp.DoomBuilder.Windows
// menumode
//
this.menumode.Name = "menumode";
this.menumode.Size = new System.Drawing.Size(50, 20);
this.menumode.Size = new System.Drawing.Size(45, 20);
this.menumode.Text = "Mode";
//
// menuprefabs
@ -611,13 +611,13 @@ namespace CodeImp.DoomBuilder.Windows
this.toolStripMenuItem12,
this.itemcreateprefab});
this.menuprefabs.Name = "menuprefabs";
this.menuprefabs.Size = new System.Drawing.Size(58, 20);
this.menuprefabs.Size = new System.Drawing.Size(56, 20);
this.menuprefabs.Text = "Prefabs";
//
// iteminsertprefabfile
//
this.iteminsertprefabfile.Name = "iteminsertprefabfile";
this.iteminsertprefabfile.Size = new System.Drawing.Size(199, 22);
this.iteminsertprefabfile.Size = new System.Drawing.Size(205, 22);
this.iteminsertprefabfile.Tag = "builder_insertprefabfile";
this.iteminsertprefabfile.Text = "Insert Prefab from File...";
this.iteminsertprefabfile.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -625,7 +625,7 @@ namespace CodeImp.DoomBuilder.Windows
// iteminsertpreviousprefab
//
this.iteminsertpreviousprefab.Name = "iteminsertpreviousprefab";
this.iteminsertpreviousprefab.Size = new System.Drawing.Size(199, 22);
this.iteminsertpreviousprefab.Size = new System.Drawing.Size(205, 22);
this.iteminsertpreviousprefab.Tag = "builder_insertpreviousprefab";
this.iteminsertpreviousprefab.Text = "Insert Previous Prefab";
this.iteminsertpreviousprefab.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -634,12 +634,12 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem12.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem12.Name = "toolStripMenuItem12";
this.toolStripMenuItem12.Size = new System.Drawing.Size(196, 6);
this.toolStripMenuItem12.Size = new System.Drawing.Size(202, 6);
//
// itemcreateprefab
//
this.itemcreateprefab.Name = "itemcreateprefab";
this.itemcreateprefab.Size = new System.Drawing.Size(199, 22);
this.itemcreateprefab.Size = new System.Drawing.Size(205, 22);
this.itemcreateprefab.Tag = "builder_createprefab";
this.itemcreateprefab.Text = "Create From Selection...";
this.itemcreateprefab.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -648,34 +648,43 @@ namespace CodeImp.DoomBuilder.Windows
//
this.menutools.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.itemreloadresources,
this.errorsAndWarningsToolStripMenuItem,
this.itemshowerrors,
this.toolStripMenuItem8,
this.configurationToolStripMenuItem,
this.preferencesToolStripMenuItem,
this.toolStripMenuItem11,
this.itemtestmap});
this.menutools.Name = "menutools";
this.menutools.Size = new System.Drawing.Size(48, 20);
this.menutools.Size = new System.Drawing.Size(44, 20);
this.menutools.Text = "Tools";
//
// itemreloadresources
//
this.itemreloadresources.Name = "itemreloadresources";
this.itemreloadresources.Size = new System.Drawing.Size(196, 22);
this.itemreloadresources.Size = new System.Drawing.Size(197, 22);
this.itemreloadresources.Tag = "builder_reloadresources";
this.itemreloadresources.Text = "Reload Resources";
this.itemreloadresources.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// itemshowerrors
//
this.itemshowerrors.Image = global::CodeImp.DoomBuilder.Properties.Resources.Warning;
this.itemshowerrors.Name = "itemshowerrors";
this.itemshowerrors.Size = new System.Drawing.Size(197, 22);
this.itemshowerrors.Tag = "builder_showerrors";
this.itemshowerrors.Text = "Errors and Warnings...";
this.itemshowerrors.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStripMenuItem8
//
this.toolStripMenuItem8.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem8.Name = "toolStripMenuItem8";
this.toolStripMenuItem8.Size = new System.Drawing.Size(193, 6);
this.toolStripMenuItem8.Size = new System.Drawing.Size(194, 6);
//
// configurationToolStripMenuItem
//
this.configurationToolStripMenuItem.Name = "configurationToolStripMenuItem";
this.configurationToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.configurationToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
this.configurationToolStripMenuItem.Tag = "builder_configuration";
this.configurationToolStripMenuItem.Text = "Game Configurations...";
this.configurationToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -683,7 +692,7 @@ namespace CodeImp.DoomBuilder.Windows
// preferencesToolStripMenuItem
//
this.preferencesToolStripMenuItem.Name = "preferencesToolStripMenuItem";
this.preferencesToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.preferencesToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
this.preferencesToolStripMenuItem.Tag = "builder_preferences";
this.preferencesToolStripMenuItem.Text = "Preferences...";
this.preferencesToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -692,13 +701,13 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem11.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem11.Name = "toolStripMenuItem11";
this.toolStripMenuItem11.Size = new System.Drawing.Size(193, 6);
this.toolStripMenuItem11.Size = new System.Drawing.Size(194, 6);
//
// itemtestmap
//
this.itemtestmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.Test;
this.itemtestmap.Name = "itemtestmap";
this.itemtestmap.Size = new System.Drawing.Size(196, 22);
this.itemtestmap.Size = new System.Drawing.Size(197, 22);
this.itemtestmap.Tag = "builder_testmap";
this.itemtestmap.Text = "Test Map";
this.itemtestmap.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -708,13 +717,13 @@ namespace CodeImp.DoomBuilder.Windows
this.menuhelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.itemhelpabout});
this.menuhelp.Name = "menuhelp";
this.menuhelp.Size = new System.Drawing.Size(44, 20);
this.menuhelp.Size = new System.Drawing.Size(40, 20);
this.menuhelp.Text = "Help";
//
// itemhelpabout
//
this.itemhelpabout.Name = "itemhelpabout";
this.itemhelpabout.Size = new System.Drawing.Size(192, 22);
this.itemhelpabout.Size = new System.Drawing.Size(191, 22);
this.itemhelpabout.Text = "About Doom Builder...";
this.itemhelpabout.Click += new System.EventHandler(this.itemhelpabout_Click);
//
@ -1104,7 +1113,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid1024
//
this.itemgrid1024.Name = "itemgrid1024";
this.itemgrid1024.Size = new System.Drawing.Size(153, 22);
this.itemgrid1024.Size = new System.Drawing.Size(164, 22);
this.itemgrid1024.Tag = "1024";
this.itemgrid1024.Text = "1024 mp";
this.itemgrid1024.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1112,7 +1121,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid512
//
this.itemgrid512.Name = "itemgrid512";
this.itemgrid512.Size = new System.Drawing.Size(153, 22);
this.itemgrid512.Size = new System.Drawing.Size(164, 22);
this.itemgrid512.Tag = "512";
this.itemgrid512.Text = "512 mp";
this.itemgrid512.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1120,7 +1129,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid256
//
this.itemgrid256.Name = "itemgrid256";
this.itemgrid256.Size = new System.Drawing.Size(153, 22);
this.itemgrid256.Size = new System.Drawing.Size(164, 22);
this.itemgrid256.Tag = "256";
this.itemgrid256.Text = "256 mp";
this.itemgrid256.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1128,7 +1137,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid128
//
this.itemgrid128.Name = "itemgrid128";
this.itemgrid128.Size = new System.Drawing.Size(153, 22);
this.itemgrid128.Size = new System.Drawing.Size(164, 22);
this.itemgrid128.Tag = "128";
this.itemgrid128.Text = "128 mp";
this.itemgrid128.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1136,7 +1145,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid64
//
this.itemgrid64.Name = "itemgrid64";
this.itemgrid64.Size = new System.Drawing.Size(153, 22);
this.itemgrid64.Size = new System.Drawing.Size(164, 22);
this.itemgrid64.Tag = "64";
this.itemgrid64.Text = "64 mp";
this.itemgrid64.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1144,7 +1153,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid32
//
this.itemgrid32.Name = "itemgrid32";
this.itemgrid32.Size = new System.Drawing.Size(153, 22);
this.itemgrid32.Size = new System.Drawing.Size(164, 22);
this.itemgrid32.Tag = "32";
this.itemgrid32.Text = "32 mp";
this.itemgrid32.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1152,7 +1161,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid16
//
this.itemgrid16.Name = "itemgrid16";
this.itemgrid16.Size = new System.Drawing.Size(153, 22);
this.itemgrid16.Size = new System.Drawing.Size(164, 22);
this.itemgrid16.Tag = "16";
this.itemgrid16.Text = "16 mp";
this.itemgrid16.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1160,7 +1169,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid8
//
this.itemgrid8.Name = "itemgrid8";
this.itemgrid8.Size = new System.Drawing.Size(153, 22);
this.itemgrid8.Size = new System.Drawing.Size(164, 22);
this.itemgrid8.Tag = "8";
this.itemgrid8.Text = "8 mp";
this.itemgrid8.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1168,7 +1177,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid4
//
this.itemgrid4.Name = "itemgrid4";
this.itemgrid4.Size = new System.Drawing.Size(153, 22);
this.itemgrid4.Size = new System.Drawing.Size(164, 22);
this.itemgrid4.Tag = "4";
this.itemgrid4.Text = "4 mp";
this.itemgrid4.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1176,7 +1185,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgridcustom
//
this.itemgridcustom.Name = "itemgridcustom";
this.itemgridcustom.Size = new System.Drawing.Size(153, 22);
this.itemgridcustom.Size = new System.Drawing.Size(164, 22);
this.itemgridcustom.Text = "Customize...";
this.itemgridcustom.Click += new System.EventHandler(this.itemgridcustom_Click);
//
@ -1215,7 +1224,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoom200
//
this.itemzoom200.Name = "itemzoom200";
this.itemzoom200.Size = new System.Drawing.Size(156, 22);
this.itemzoom200.Size = new System.Drawing.Size(167, 22);
this.itemzoom200.Tag = "200";
this.itemzoom200.Text = "200%";
this.itemzoom200.Click += new System.EventHandler(this.itemzoomto_Click);
@ -1223,7 +1232,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoom100
//
this.itemzoom100.Name = "itemzoom100";
this.itemzoom100.Size = new System.Drawing.Size(156, 22);
this.itemzoom100.Size = new System.Drawing.Size(167, 22);
this.itemzoom100.Tag = "100";
this.itemzoom100.Text = "100%";
this.itemzoom100.Click += new System.EventHandler(this.itemzoomto_Click);
@ -1231,7 +1240,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoom50
//
this.itemzoom50.Name = "itemzoom50";
this.itemzoom50.Size = new System.Drawing.Size(156, 22);
this.itemzoom50.Size = new System.Drawing.Size(167, 22);
this.itemzoom50.Tag = "50";
this.itemzoom50.Text = "50%";
this.itemzoom50.Click += new System.EventHandler(this.itemzoomto_Click);
@ -1239,7 +1248,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoom25
//
this.itemzoom25.Name = "itemzoom25";
this.itemzoom25.Size = new System.Drawing.Size(156, 22);
this.itemzoom25.Size = new System.Drawing.Size(167, 22);
this.itemzoom25.Tag = "25";
this.itemzoom25.Text = "25%";
this.itemzoom25.Click += new System.EventHandler(this.itemzoomto_Click);
@ -1247,7 +1256,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoom10
//
this.itemzoom10.Name = "itemzoom10";
this.itemzoom10.Size = new System.Drawing.Size(156, 22);
this.itemzoom10.Size = new System.Drawing.Size(167, 22);
this.itemzoom10.Tag = "10";
this.itemzoom10.Text = "10%";
this.itemzoom10.Click += new System.EventHandler(this.itemzoomto_Click);
@ -1255,7 +1264,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoom5
//
this.itemzoom5.Name = "itemzoom5";
this.itemzoom5.Size = new System.Drawing.Size(156, 22);
this.itemzoom5.Size = new System.Drawing.Size(167, 22);
this.itemzoom5.Tag = "5";
this.itemzoom5.Text = "5%";
this.itemzoom5.Click += new System.EventHandler(this.itemzoomto_Click);
@ -1263,7 +1272,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoomfittoscreen
//
this.itemzoomfittoscreen.Name = "itemzoomfittoscreen";
this.itemzoomfittoscreen.Size = new System.Drawing.Size(156, 22);
this.itemzoomfittoscreen.Size = new System.Drawing.Size(167, 22);
this.itemzoomfittoscreen.Text = "Fit to screen";
this.itemzoomfittoscreen.Click += new System.EventHandler(this.itemzoomfittoscreen_Click);
//
@ -1422,13 +1431,6 @@ namespace CodeImp.DoomBuilder.Windows
//
this.statusresetter.Tick += new System.EventHandler(this.statusresetter_Tick);
//
// errorsAndWarningsToolStripMenuItem
//
this.errorsAndWarningsToolStripMenuItem.Image = global::CodeImp.DoomBuilder.Properties.Resources.Warning;
this.errorsAndWarningsToolStripMenuItem.Name = "errorsAndWarningsToolStripMenuItem";
this.errorsAndWarningsToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.errorsAndWarningsToolStripMenuItem.Text = "Errors and Warnings...";
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@ -1586,6 +1588,6 @@ namespace CodeImp.DoomBuilder.Windows
private System.Windows.Forms.Button buttontoggleinfo;
private System.Windows.Forms.Label labelcollapsedinfo;
private System.Windows.Forms.Timer statusresetter;
private System.Windows.Forms.ToolStripMenuItem errorsAndWarningsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem itemshowerrors;
}
}

View file

@ -58,9 +58,11 @@ namespace CodeImp.DoomBuilder.Windows
private const string STATUS_LOADING_TEXT = "Loading resources...";
private const int WARNING_FLASH_COUNT = 10;
private const int WARNING_FLASH_INTERVAL = 100;
private const int WARNING_RESET_DELAY = 3000;
private const int WARNING_RESET_DELAY = 4000;
private const int INFO_RESET_DELAY = 4000;
private const int ACTION_FLASH_COUNT = 1;
private const int ACTION_FLASH_INTERVAL = 100;
private const int ACTION_RESET_DELAY = 4000;
private readonly Image[,] STATUS_IMAGES = new Image[2, 4]
{
@ -564,14 +566,21 @@ namespace CodeImp.DoomBuilder.Windows
else
newstatus.message = STATUS_READY_TEXT;
break;
// Shows information without flashing the icon.
case StatusType.Info:
statusresetter.Interval = INFO_RESET_DELAY;
statusresetter.Start();
break;
// Shows action information and flashes up the status icon once.
case StatusType.Action:
MessageBeep(MessageBeepType.Warning);
statusflashicon = true;
statusflasher.Interval = ACTION_FLASH_INTERVAL;
statusflashcount = ACTION_FLASH_COUNT;
statusflasher.Start();
statusresetter.Interval = ACTION_RESET_DELAY;
statusresetter.Start();
break;
// Shows a warning, makes a warning sound and flashes a warning icon.
@ -1855,7 +1864,9 @@ namespace CodeImp.DoomBuilder.Windows
[BeginAction("showerrors")]
internal void ShowErrors()
{
// TODO
ErrorsForm errform = new ErrorsForm();
errform.ShowDialog(this);
errform.Dispose();
}
// Game Configuration action

View file

@ -136,7 +136,7 @@ namespace CodeImp.DoomBuilder.ZDoom
if(other != null)
InheritFrom(other);
else
General.WriteLogLine("WARNING: Unable to find the DECORATE class '" + inheritclass + "' to inherit from, while parsing '" + classname + "'");
General.ErrorLogger.Add(ErrorType.Warning, "Unable to find the DECORATE class '" + inheritclass + "' to inherit from, while parsing '" + classname + "'");
}
}
else if(token == "replaces")

View file

@ -115,7 +115,7 @@ namespace CodeImp.DoomBuilder.ZDoom
if(GetArchivedActorByName(actor.ReplacesClass) != null)
archivedactors[actor.ReplacesClass.ToLowerInvariant()] = actor;
else
General.WriteLogLine("WARNING: Unable to find the DECORATE class '" + actor.ReplacesClass + "' to replace, while parsing '" + actor.ClassName + "'");
General.ErrorLogger.Add(ErrorType.Warning, "Unable to find the DECORATE class '" + actor.ReplacesClass + "' to replace, while parsing '" + actor.ClassName + "'");
if(actor.CheckActorSupported())
{