diff --git a/Resources/Icons/ErrorLarge.png b/Resources/Icons/ErrorLarge.png
new file mode 100644
index 00000000..5788df92
Binary files /dev/null and b/Resources/Icons/ErrorLarge.png differ
diff --git a/Resources/Icons/Status10.png b/Resources/Icons/Status10.png
index 64d5d60d..092d0987 100644
Binary files a/Resources/Icons/Status10.png and b/Resources/Icons/Status10.png differ
diff --git a/Resources/Icons/Status11.png b/Resources/Icons/Status11.png
index 2ce67b41..2b033bc0 100644
Binary files a/Resources/Icons/Status11.png and b/Resources/Icons/Status11.png differ
diff --git a/Resources/Icons/Status12.png b/Resources/Icons/Status12.png
index 0130d23a..68a477d9 100644
Binary files a/Resources/Icons/Status12.png and b/Resources/Icons/Status12.png differ
diff --git a/Resources/Icons/WarningLarge.png b/Resources/Icons/WarningLarge.png
new file mode 100644
index 00000000..8da19896
Binary files /dev/null and b/Resources/Icons/WarningLarge.png differ
diff --git a/Source/Actions/ActionManager.cs b/Source/Actions/ActionManager.cs
index 9e487d92..8f527d90 100644
--- a/Source/Actions/ActionManager.cs
+++ b/Source/Actions/ActionManager.cs
@@ -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
diff --git a/Source/Builder.csproj b/Source/Builder.csproj
index cac55ec8..ccd3581a 100644
--- a/Source/Builder.csproj
+++ b/Source/Builder.csproj
@@ -668,6 +668,12 @@
+
+ Form
+
+
+ ErrorsForm.cs
+
@@ -780,6 +786,10 @@
Designer
CustomFieldsForm.cs
+
+ Designer
+ ErrorsForm.cs
+
Designer
ScriptEditorForm.cs
diff --git a/Source/BuilderModes/Interface/ErrorCheckForm.cs b/Source/BuilderModes/Interface/ErrorCheckForm.cs
index ae4ad3a1..24289ebe 100644
--- a/Source/BuilderModes/Interface/ErrorCheckForm.cs
+++ b/Source/BuilderModes/Interface/ErrorCheckForm.cs
@@ -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;
}
diff --git a/Source/BuilderModes/Interface/FindReplaceForm.cs b/Source/BuilderModes/Interface/FindReplaceForm.cs
index 080cf8c1..f0c68df6 100644
--- a/Source/BuilderModes/Interface/FindReplaceForm.cs
+++ b/Source/BuilderModes/Interface/FindReplaceForm.cs
@@ -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;
}
diff --git a/Source/Compilers/Compiler.cs b/Source/Compilers/Compiler.cs
index 234452a9..74c5c65a 100644
--- a/Source/Compilers/Compiler.cs
+++ b/Source/Compilers/Compiler.cs
@@ -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);
}
}
diff --git a/Source/Config/ArgumentInfo.cs b/Source/Config/ArgumentInfo.cs
index 581f04c9..c32855db 100644
--- a/Source/Config/ArgumentInfo.cs
+++ b/Source/Config/ArgumentInfo.cs
@@ -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"] + "'!");
}
}
}
diff --git a/Source/Config/FlagTranslation.cs b/Source/Config/FlagTranslation.cs
index a74754b6..20f72989 100644
--- a/Source/Config/FlagTranslation.cs
+++ b/Source/Config/FlagTranslation.cs
@@ -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(',');
diff --git a/Source/Config/GameConfiguration.cs b/Source/Config/GameConfiguration.cs
index 669264eb..c567ae6a 100644
--- a/Source/Config/GameConfiguration.cs
+++ b/Source/Config/GameConfiguration.cs
@@ -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!");
}
}
}
diff --git a/Source/Config/GeneralizedOption.cs b/Source/Config/GeneralizedOption.cs
index a2bde4ab..bd047c5b 100644
--- a/Source/Config/GeneralizedOption.cs
+++ b/Source/Config/GeneralizedOption.cs
@@ -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!");
}
}
diff --git a/Source/Config/MapLumpInfo.cs b/Source/Config/MapLumpInfo.cs
index b2423acc..118cfcb5 100644
--- a/Source/Config/MapLumpInfo.cs
+++ b/Source/Config/MapLumpInfo.cs
@@ -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();
}
}
diff --git a/Source/Controls/ScriptFileDocumentTab.cs b/Source/Controls/ScriptFileDocumentTab.cs
index 9f880923..1d16b12c 100644
--- a/Source/Controls/ScriptFileDocumentTab.cs
+++ b/Source/Controls/ScriptFileDocumentTab.cs
@@ -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;
diff --git a/Source/Data/DataManager.cs b/Source/Data/DataManager.cs
index bad54c79..5b9ecc0e 100644
--- a/Source/Data/DataManager.cs
+++ b/Source/Data/DataManager.cs
@@ -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;
}
}
diff --git a/Source/Data/DirectoryReader.cs b/Source/Data/DirectoryReader.cs
index 3e1f6a1f..78581ebd 100644
--- a/Source/Data/DirectoryReader.cs
+++ b/Source/Data/DirectoryReader.cs
@@ -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
diff --git a/Source/Data/FileImage.cs b/Source/Data/FileImage.cs
index 8b6e94ee..924ff3e6 100644
--- a/Source/Data/FileImage.cs
+++ b/Source/Data/FileImage.cs
@@ -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
diff --git a/Source/Data/FlatImage.cs b/Source/Data/FlatImage.cs
index 88efdf8d..1d768476 100644
--- a/Source/Data/FlatImage.cs
+++ b/Source/Data/FlatImage.cs
@@ -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;
}
diff --git a/Source/Data/HighResImage.cs b/Source/Data/HighResImage.cs
index 00cac2a5..4b7a3955 100644
--- a/Source/Data/HighResImage.cs
+++ b/Source/Data/HighResImage.cs
@@ -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;
}
}
diff --git a/Source/Data/ImageData.cs b/Source/Data/ImageData.cs
index 12732a0f..4ecca92d 100644
--- a/Source/Data/ImageData.cs
+++ b/Source/Data/ImageData.cs
@@ -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?
diff --git a/Source/Data/PK3FileImage.cs b/Source/Data/PK3FileImage.cs
index f2b2d497..4abf3851 100644
--- a/Source/Data/PK3FileImage.cs
+++ b/Source/Data/PK3FileImage.cs
@@ -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
diff --git a/Source/Data/SimpleTextureImage.cs b/Source/Data/SimpleTextureImage.cs
index 092bd2e4..119bcd87 100644
--- a/Source/Data/SimpleTextureImage.cs
+++ b/Source/Data/SimpleTextureImage.cs
@@ -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;
}
diff --git a/Source/Data/SpriteImage.cs b/Source/Data/SpriteImage.cs
index c90889ab..1caada02 100644
--- a/Source/Data/SpriteImage.cs
+++ b/Source/Data/SpriteImage.cs
@@ -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
diff --git a/Source/Data/TextureImage.cs b/Source/Data/TextureImage.cs
index b0cbdab2..2a701e3f 100644
--- a/Source/Data/TextureImage.cs
+++ b/Source/Data/TextureImage.cs
@@ -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;
}
}
diff --git a/Source/Editing/CopyPasteManager.cs b/Source/Editing/CopyPasteManager.cs
index 15f3da88..ed616549 100644
--- a/Source/Editing/CopyPasteManager.cs
+++ b/Source/Editing/CopyPasteManager.cs
@@ -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);
}
diff --git a/Source/General/ErrorLogger.cs b/Source/General/ErrorLogger.cs
index 810965c9..d8e224cc 100644
--- a/Source/General/ErrorLogger.cs
+++ b/Source/General/ErrorLogger.cs
@@ -38,6 +38,8 @@ namespace CodeImp.DoomBuilder
private List 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);
}
}
diff --git a/Source/General/General.cs b/Source/General/General.cs
index 8d06bf3c..8e7b4803 100644
--- a/Source/General/General.cs
+++ b/Source/General/General.cs
@@ -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();
diff --git a/Source/General/MapManager.cs b/Source/General/MapManager.cs
index 636b7388..a79209e6 100644
--- a/Source/General/MapManager.cs
+++ b/Source/General/MapManager.cs
@@ -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
diff --git a/Source/IO/DoomFlatReader.cs b/Source/IO/DoomFlatReader.cs
index bbc0456b..12e22608 100644
--- a/Source/IO/DoomFlatReader.cs
+++ b/Source/IO/DoomFlatReader.cs
@@ -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;
}
}
diff --git a/Source/IO/DoomMapSetIO.cs b/Source/IO/DoomMapSetIO.cs
index fda2a53c..1ce2a8f3 100644
--- a/Source/IO/DoomMapSetIO.cs
+++ b/Source/IO/DoomMapSetIO.cs
@@ -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.");
}
}
diff --git a/Source/IO/DoomPictureReader.cs b/Source/IO/DoomPictureReader.cs
index f8eae896..32b64d44 100644
--- a/Source/IO/DoomPictureReader.cs
+++ b/Source/IO/DoomPictureReader.cs
@@ -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;
}
}
diff --git a/Source/IO/FileImageReader.cs b/Source/IO/FileImageReader.cs
index 337bdcb3..2fad251c 100644
--- a/Source/IO/FileImageReader.cs
+++ b/Source/IO/FileImageReader.cs
@@ -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;
}
}
diff --git a/Source/IO/HexenMapSetIO.cs b/Source/IO/HexenMapSetIO.cs
index 723450ca..710230e0 100644
--- a/Source/IO/HexenMapSetIO.cs
+++ b/Source/IO/HexenMapSetIO.cs
@@ -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.");
}
}
diff --git a/Source/IO/UniversalStreamReader.cs b/Source/IO/UniversalStreamReader.cs
index c04763e7..b907787a 100644
--- a/Source/IO/UniversalStreamReader.cs
+++ b/Source/IO/UniversalStreamReader.cs
@@ -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.");
}
}
diff --git a/Source/Plugins/Plugin.cs b/Source/Plugins/Plugin.cs
index c5b6e9d3..c9811bb5 100644
--- a/Source/Plugins/Plugin.cs
+++ b/Source/Plugins/Plugin.cs
@@ -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);
}
diff --git a/Source/Plugins/PluginManager.cs b/Source/Plugins/PluginManager.cs
index 0faaed6b..4ad6925f 100644
--- a/Source/Plugins/PluginManager.cs
+++ b/Source/Plugins/PluginManager.cs
@@ -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;
}
diff --git a/Source/Resources/Status10.png b/Source/Resources/Status10.png
index 64d5d60d..092d0987 100644
Binary files a/Source/Resources/Status10.png and b/Source/Resources/Status10.png differ
diff --git a/Source/Resources/Status11.png b/Source/Resources/Status11.png
index 2ce67b41..2b033bc0 100644
Binary files a/Source/Resources/Status11.png and b/Source/Resources/Status11.png differ
diff --git a/Source/Resources/Status12.png b/Source/Resources/Status12.png
index 0130d23a..68a477d9 100644
Binary files a/Source/Resources/Status12.png and b/Source/Resources/Status12.png differ
diff --git a/Source/Windows/ErrorsForm.Designer.cs b/Source/Windows/ErrorsForm.Designer.cs
new file mode 100644
index 00000000..79758f7a
--- /dev/null
+++ b/Source/Windows/ErrorsForm.Designer.cs
@@ -0,0 +1,142 @@
+namespace CodeImp.DoomBuilder.Windows
+{
+ partial class ErrorsForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if(disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(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;
+ }
+}
\ No newline at end of file
diff --git a/Source/Windows/ErrorsForm.cs b/Source/Windows/ErrorsForm.cs
new file mode 100644
index 00000000..cff3e4aa
--- /dev/null
+++ b/Source/Windows/ErrorsForm.cs
@@ -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 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
+ }
+}
\ No newline at end of file
diff --git a/Source/Windows/ErrorsForm.resx b/Source/Windows/ErrorsForm.resx
new file mode 100644
index 00000000..7bb3dbd8
--- /dev/null
+++ b/Source/Windows/ErrorsForm.resx
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ True
+
+
+ 17, 17
+
+
+
+ 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
+
+
+
+ True
+
+
+ True
+
+
+ True
+
+
+ 103, 17
+
+
+ True
+
+
\ No newline at end of file
diff --git a/Source/Windows/MainForm.Designer.cs b/Source/Windows/MainForm.Designer.cs
index f7475e57..b8bf0987 100644
--- a/Source/Windows/MainForm.Designer.cs
+++ b/Source/Windows/MainForm.Designer.cs
@@ -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;
}
}
\ No newline at end of file
diff --git a/Source/Windows/MainForm.cs b/Source/Windows/MainForm.cs
index 718e6b29..e0f3e60a 100644
--- a/Source/Windows/MainForm.cs
+++ b/Source/Windows/MainForm.cs
@@ -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
diff --git a/Source/ZDoom/ActorStructure.cs b/Source/ZDoom/ActorStructure.cs
index 4f62d240..886829e3 100644
--- a/Source/ZDoom/ActorStructure.cs
+++ b/Source/ZDoom/ActorStructure.cs
@@ -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")
diff --git a/Source/ZDoom/DecorateParser.cs b/Source/ZDoom/DecorateParser.cs
index f0dfb744..ae35f7bf 100644
--- a/Source/ZDoom/DecorateParser.cs
+++ b/Source/ZDoom/DecorateParser.cs
@@ -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())
{