diff --git a/Build/Configurations/Includes/GZDoom_things.cfg b/Build/Configurations/Includes/GZDoom_things.cfg
index 27a540291ffcf04a7145e85f816873df2736961c..7c9e87c8f85d1488b51aef7f9b9cfc54f964473d 100644
--- a/Build/Configurations/Includes/GZDoom_things.cfg
+++ b/Build/Configurations/Includes/GZDoom_things.cfg
@@ -39,7 +39,8 @@ gzdoom_lights
 		}
 		9801
 		{
-			title = "Light Pulse";
+			title = "Pulse Light";
+      fixedrotation = true;
 			arg0
 			{
 				title = "Red";
@@ -68,7 +69,8 @@ gzdoom_lights
 		}
 		9802
 		{
-			title = "Light Flicker";
+			title = "Flicker Light";
+      fixedrotation = true;
 			arg0
 			{
 				title = "Red";
@@ -97,7 +99,7 @@ gzdoom_lights
 		}
 		9803
 		{
-			title = "Light Sector";
+			title = "Sector Light";
 			arg0
 			{
 				title = "Red";
@@ -121,7 +123,8 @@ gzdoom_lights
 		}
 		9804
 		{
-			title = "Light Random";
+			title = "Random Light";
+      fixedrotation = true;
 			arg0
 			{
 				title = "Red";
@@ -150,7 +153,7 @@ gzdoom_lights
 		}
 		9810
 		{
-			title = "Light, Additive";
+			title = "Additive Light";
 			arg0
 			{
 				title = "Red";
@@ -174,7 +177,8 @@ gzdoom_lights
 		}
 		9811
 		{
-			title = "Light Pulse, Additive";
+			title = "Additive Pulse Light";
+      fixedrotation = true;
 			arg0
 			{
 				title = "Red";
@@ -203,7 +207,8 @@ gzdoom_lights
 		}
 		9812
 		{
-			title = "Light Flicker, Additive";
+			title = "Additive Flicker Light";
+      fixedrotation = true;
 			arg0
 			{
 				title = "Red";
@@ -232,7 +237,7 @@ gzdoom_lights
 		}
 		9813
 		{
-			title = "Light Sector, Additive";
+			title = "Additive Sector Light";
 			arg0
 			{
 				title = "Red";
@@ -256,7 +261,8 @@ gzdoom_lights
 		}
 		9814
 		{
-			title = "Light Random, Additive";
+			title = "Additive Random Light";
+      fixedrotation = true;
 			arg0
 			{
 				title = "Red";
@@ -285,7 +291,7 @@ gzdoom_lights
 		}
 		9820
 		{
-			title = "Light, Subtractive";
+			title = "Subtractive Light";
 			arg0
 			{
 				title = "Red";
@@ -309,7 +315,8 @@ gzdoom_lights
 		}
 		9821
 		{
-			title = "Light Pulse, Subtractive";
+			title = "Subtractive Pulse Light";
+      fixedrotation = true;
 			arg0
 			{
 				title = "Red";
@@ -338,7 +345,8 @@ gzdoom_lights
 		}
 		9822
 		{
-			title = "Light Flicker, Subtractive";
+			title = "Subtractive Flicker Light";
+      fixedrotation = true;
 			arg0
 			{
 				title = "Red";
@@ -367,7 +375,7 @@ gzdoom_lights
 		}
 		9823
 		{
-			title = "Light Sector, Subtractive";
+			title = "Subtractive Sector Light";
 			arg0
 			{
 				title = "Red";
@@ -391,7 +399,8 @@ gzdoom_lights
 		}
 		9824
 		{
-			title = "Light Random, Subtractive";
+			title = "Subtractive Random Light";
+      fixedrotation = true;
 			arg0
 			{
 				title = "Red";
diff --git a/Source/Core/Builder.csproj b/Source/Core/Builder.csproj
index d605387389253955e0b45fb5173139c3296e7f81..2238fa7195732cd5ef7ae75a55c07abf81d20da8 100644
--- a/Source/Core/Builder.csproj
+++ b/Source/Core/Builder.csproj
@@ -505,7 +505,6 @@
     <Reference Include="System.Design" />
     <Reference Include="System.Drawing" />
     <Reference Include="System.Windows.Forms" />
-    <Reference Include="System.Xml" />
     <Reference Include="Trackbar, Version=1.0.2486.37933, Culture=neutral, PublicKeyToken=503bf28f63ad27b4">
       <Private>False</Private>
     </Reference>
diff --git a/Source/Core/Compilers/Compiler.cs b/Source/Core/Compilers/Compiler.cs
index 9bd3c92e8cc20c594881e06910ef93dc4e7fd8d3..7e9c68d929520df1cfff4f6cbd6e8e8c7200762f 100644
--- a/Source/Core/Compilers/Compiler.cs
+++ b/Source/Core/Compilers/Compiler.cs
@@ -90,7 +90,7 @@ namespace CodeImp.DoomBuilder.Compilers
 		{
 			if(!isdisposed)
 			{
-				Exception deleteerror = null;
+				Exception deleteerror;
 				float starttime = General.Clock.CurrentTime;
 				
 				do
diff --git a/Source/Core/Config/DefinedTextureSet.cs b/Source/Core/Config/DefinedTextureSet.cs
index fbf7c456853b68e2561e7afa5573724e0fa81ac4..c1e5f1399a1ea35fa1e1815b848bb14f98c9c745 100644
--- a/Source/Core/Config/DefinedTextureSet.cs
+++ b/Source/Core/Config/DefinedTextureSet.cs
@@ -74,7 +74,7 @@ namespace CodeImp.DoomBuilder.Config
 			for(int i = 0; i < filters.Count; i++)
 			{
 				// Add filters
-				dic.Add("filter" + i.ToString(), filters[i].ToUpperInvariant());
+				dic.Add("filter" + i, filters[i].ToUpperInvariant());
 			}
 			
 			// Write to config
diff --git a/Source/Core/Config/GameConfiguration.cs b/Source/Core/Config/GameConfiguration.cs
index 474c3a60ba076466091268084874b6205ccb652d..b728dfa8b4f02423703ecd3e351eaea5848d92c0 100644
--- a/Source/Core/Config/GameConfiguration.cs
+++ b/Source/Core/Config/GameConfiguration.cs
@@ -787,7 +787,7 @@ namespace CodeImp.DoomBuilder.Config
 			dic = cfg.ReadSetting("skills", new Hashtable());
 			foreach(DictionaryEntry de in dic)
 			{
-				int num = 0;
+				int num;
 				if(int.TryParse(de.Key.ToString(), out num))
 				{
 					skills.Add(new SkillInfo(num, de.Value.ToString()));
@@ -808,7 +808,7 @@ namespace CodeImp.DoomBuilder.Config
 			dic = cfg.ReadSetting("texturesets", new Hashtable());
 			foreach(DictionaryEntry de in dic)
 			{
-				DefinedTextureSet s = new DefinedTextureSet(cfg, "texturesets." + de.Key.ToString());
+				DefinedTextureSet s = new DefinedTextureSet(cfg, "texturesets." + de.Key);
 				texturesets.Add(s);
 			}
 		}
@@ -822,7 +822,7 @@ namespace CodeImp.DoomBuilder.Config
 			dic = cfg.ReadSetting("thingsfilters", new Hashtable());
 			foreach(DictionaryEntry de in dic)
 			{
-				ThingsFilter f = new ThingsFilter(cfg, "thingsfilters." + de.Key.ToString());
+				ThingsFilter f = new ThingsFilter(cfg, "thingsfilters." + de.Key);
 				thingfilters.Add(f);
 			}
 		}
diff --git a/Source/Core/Config/GeneralizedCategory.cs b/Source/Core/Config/GeneralizedCategory.cs
index b457b3c7d05f41d6dbb082ebacf40852e4ea4039..71a8fa5d2a20a77022d1cb0eab12266874b693d1 100644
--- a/Source/Core/Config/GeneralizedCategory.cs
+++ b/Source/Core/Config/GeneralizedCategory.cs
@@ -23,7 +23,7 @@ namespace CodeImp.DoomBuilder.Config
 		private List<GeneralizedOption> options;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
diff --git a/Source/Core/Config/LinedefActionCategory.cs b/Source/Core/Config/LinedefActionCategory.cs
index f263d90eaebb5aa0da3e6f2e1754c1ba4c25af01..5c08ffdcd44a2d9c7f0f023a11ad989c64098cdd 100644
--- a/Source/Core/Config/LinedefActionCategory.cs
+++ b/Source/Core/Config/LinedefActionCategory.cs
@@ -39,7 +39,7 @@ namespace CodeImp.DoomBuilder.Config
 		private List<LinedefActionInfo> actions;
 
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
diff --git a/Source/Core/Config/MapLumpInfo.cs b/Source/Core/Config/MapLumpInfo.cs
index bef4a60e7e3f9f40df3f1e5b3fcd9d77d637d12e..55d1a7ba95965a8d208a9f3a28ded338d22f630b 100644
--- a/Source/Core/Config/MapLumpInfo.cs
+++ b/Source/Core/Config/MapLumpInfo.cs
@@ -35,8 +35,6 @@ namespace CodeImp.DoomBuilder.Config
 		// Construct from IDictionary
 		internal MapLumpInfo(string name, Configuration cfg)
 		{
-			string scriptconfig = "";
-			
 			// Apply settings
 			this.name = name;
 			this.script = null;
@@ -44,7 +42,7 @@ namespace CodeImp.DoomBuilder.Config
 			this.blindcopy = cfg.ReadSetting("maplumpnames." + name + ".blindcopy", false);
 			this.nodebuild = cfg.ReadSetting("maplumpnames." + name + ".nodebuild", false);
 			this.allowempty = cfg.ReadSetting("maplumpnames." + name + ".allowempty", false);
-			scriptconfig = cfg.ReadSetting("maplumpnames." + name + ".script", "");
+			string scriptconfig = cfg.ReadSetting("maplumpnames." + name + ".script", "");
 			
 			// Find script configuration
 			if(scriptconfig.Length > 0)
diff --git a/Source/Core/Config/ThingsFlagsCompare.cs b/Source/Core/Config/ThingsFlagsCompare.cs
index 1c6bce4d4b2662eb1fe97a1a6b7f30de62b23ca5..211d1c8cc86847e470e9d9317c99c6af7ed7ebff 100644
--- a/Source/Core/Config/ThingsFlagsCompare.cs
+++ b/Source/Core/Config/ThingsFlagsCompare.cs
@@ -44,7 +44,7 @@ namespace CodeImp.DoomBuilder.Config
 		private string group;
 
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
@@ -108,8 +108,8 @@ namespace CodeImp.DoomBuilder.Config
 		//	1 if the flag overlaps
 		public int Compare(Thing t1, Thing t2)
 		{
-			bool t1flag = false;
-			bool t2flag = false;
+			bool t1flag;
+			bool t2flag;
 
 			// Check if the flags exist
 			if(!t1.Flags.ContainsKey(flag) || !t2.Flags.ContainsKey(flag)) {
diff --git a/Source/Core/Controls/ActionSelectorControl.cs b/Source/Core/Controls/ActionSelectorControl.cs
index e941858d8e0c90dd4b42cf4cde0311ddf14388e5..20857006544d30fe506be093ed29132ded0a11f0 100644
--- a/Source/Core/Controls/ActionSelectorControl.cs
+++ b/Source/Core/Controls/ActionSelectorControl.cs
@@ -33,7 +33,7 @@ namespace CodeImp.DoomBuilder.Controls
 		
 		// Variables
 		private List<GeneralizedCategory> generalizedcategories;
-		private bool controlpressed = false;
+		private bool controlpressed;
 		
 		// Constants
 		private const string NUMBER_SEPERATOR = "\t";
@@ -99,8 +99,8 @@ namespace CodeImp.DoomBuilder.Controls
 			INumberedTitle item;
 			Brush displaybrush = SystemBrushes.WindowText;
 			Brush backbrush = SystemBrushes.Window;
-			string displayname = "";
-			int intnumber = 0;
+			string displayname = string.Empty;
+			int intnumber;
 			
 			// Only when running
 			if(!this.DesignMode)
diff --git a/Source/Core/Controls/ArgumentBox.cs b/Source/Core/Controls/ArgumentBox.cs
index 8e186fef0870ed88b4238547f17bc3d8bed7bd39..5e0119dc4130d7e03df2487b95172cffcff0f758 100644
--- a/Source/Core/Controls/ArgumentBox.cs
+++ b/Source/Core/Controls/ArgumentBox.cs
@@ -392,7 +392,7 @@ namespace CodeImp.DoomBuilder.Controls
 			if(gotTagArgument && combobox.SelectedItem != null)
 				return General.Clamp(((TagInfo)combobox.SelectedItem).Tag, General.Map.FormatInterface.MinArgument, General.Map.FormatInterface.MaxArgument);
 			
-			int result = 0;
+			int result;
 			
 			// Strip prefixes
 			string str = combobox.Text.Trim().ToLowerInvariant();
diff --git a/Source/Core/Controls/AutoSelectTextbox.cs b/Source/Core/Controls/AutoSelectTextbox.cs
index b18e3d77d18b496ec672f25eb30974f62e7948d4..3105a58eca609e923b7e55832d8860b834ad84ab 100644
--- a/Source/Core/Controls/AutoSelectTextbox.cs
+++ b/Source/Core/Controls/AutoSelectTextbox.cs
@@ -31,7 +31,7 @@ namespace CodeImp.DoomBuilder.Controls
 
 		#region ================== Variables
 
-		private int eventcount = 0;
+		private int eventcount;
 		
 		#endregion
 
diff --git a/Source/Core/Controls/ButtonsNumericTextbox.cs b/Source/Core/Controls/ButtonsNumericTextbox.cs
index 0bd65bd239b88acf3d775532e7c3344b24136b54..918384aca3ae7d1c7aa663067abdd559419aae19 100644
--- a/Source/Core/Controls/ButtonsNumericTextbox.cs
+++ b/Source/Core/Controls/ButtonsNumericTextbox.cs
@@ -37,8 +37,8 @@ namespace CodeImp.DoomBuilder.Controls
 
 		#region ================== Variables
 		
-		private bool ignorebuttonchange = false;
-		private StepsList steps = null;
+		private bool ignorebuttonchange;
+		private StepsList steps;
 		private int stepsize = 1;
 		private float stepsizeFloat = 1.0f; //mxd
 		
diff --git a/Source/Core/Controls/DockersControl.cs b/Source/Core/Controls/DockersControl.cs
index 2203e9a69864ade1ff83b7a8176db12b1790a57a..b2e9a88ad45caf7a74b924107cebe54cf846df84 100644
--- a/Source/Core/Controls/DockersControl.cs
+++ b/Source/Core/Controls/DockersControl.cs
@@ -90,7 +90,7 @@ namespace CodeImp.DoomBuilder.Controls
 			tabs.TabsOffsetTop = buttonTogglePinning.Bottom + 2; //mxd
 
 			if(General.Settings != null)
-				buttonTogglePinning.Image = General.Settings.CollapseDockers ? CodeImp.DoomBuilder.Properties.Resources.Unpin : CodeImp.DoomBuilder.Properties.Resources.Pin; //mxd
+				buttonTogglePinning.Image = General.Settings.CollapseDockers ? Properties.Resources.Unpin : Properties.Resources.Pin; //mxd
 		}
 		
 		#endregion
@@ -448,7 +448,7 @@ namespace CodeImp.DoomBuilder.Controls
 		private void buttonTogglePinning_Click(object sender, EventArgs e) {
 			General.Settings.CollapseDockers = !General.Settings.CollapseDockers;
 			General.MainWindow.SetupInterface();
-			buttonTogglePinning.Image = General.Settings.CollapseDockers ? CodeImp.DoomBuilder.Properties.Resources.Unpin : CodeImp.DoomBuilder.Properties.Resources.Pin;
+			buttonTogglePinning.Image = General.Settings.CollapseDockers ? Properties.Resources.Unpin : Properties.Resources.Pin;
 		}
 		
 		#endregion
diff --git a/Source/Core/Controls/FieldsEditorControl.cs b/Source/Core/Controls/FieldsEditorControl.cs
index c9be0b44c29feba09f4952c4e3b80b4b3b250b49..2452b15c1d71bf75e5f725cf375e3eb5ee393c19 100644
--- a/Source/Core/Controls/FieldsEditorControl.cs
+++ b/Source/Core/Controls/FieldsEditorControl.cs
@@ -471,7 +471,7 @@ namespace CodeImp.DoomBuilder.Controls
 			else if(e.ColumnIndex == 2)
 			{
 				// Get the row
-				FieldsEditorRow frow = null;
+				FieldsEditorRow frow;
 				DataGridViewRow row = fieldslist.Rows[e.RowIndex];
 				if(row is FieldsEditorRow)
 				{
@@ -526,10 +526,9 @@ namespace CodeImp.DoomBuilder.Controls
 		private void fieldslist_CellEndEdit(object sender, DataGridViewCellEventArgs e)
 		{
 			FieldsEditorRow frow = null;
-			DataGridViewRow row = null;
-			
+
 			// Get the row
-			row = fieldslist.Rows[e.RowIndex];
+			DataGridViewRow row = fieldslist.Rows[e.RowIndex];
 			if(row is FieldsEditorRow) frow = row as FieldsEditorRow;
 			
 			// Renaming a field?
@@ -825,13 +824,12 @@ namespace CodeImp.DoomBuilder.Controls
 		private void UpdateBrowseButton()
 		{
 			FieldsEditorRow frow = null;
-			DataGridViewRow row = null;
 
 			// Any row selected?
 			if(fieldslist.SelectedRows.Count > 0)
 			{
 				// Get selected row
-				row = fieldslist.SelectedRows[0];
+				DataGridViewRow row = fieldslist.SelectedRows[0];
 				if(row is FieldsEditorRow) frow = row as FieldsEditorRow;
 
 				// Not the new row and FieldsEditorRow available?
diff --git a/Source/Core/Controls/FlatSelectorControl.cs b/Source/Core/Controls/FlatSelectorControl.cs
index 5316ff6fb06c7043f5164b3e6ed8024507513131..929a394c648c83527eaaa1c71456534116669945 100644
--- a/Source/Core/Controls/FlatSelectorControl.cs
+++ b/Source/Core/Controls/FlatSelectorControl.cs
@@ -46,7 +46,7 @@ namespace CodeImp.DoomBuilder.Controls
 				DisplayImageSize(0, 0); //mxd
 				
 				// Flat required!
-				return CodeImp.DoomBuilder.Properties.Resources.MissingTexture;
+				return Properties.Resources.MissingTexture;
 			}
 			else
 			{
diff --git a/Source/Core/Controls/ImageBrowserItem.cs b/Source/Core/Controls/ImageBrowserItem.cs
index b7f8ba7eb95a5744c748f5f77fee2b74ac94ecd4..a6b02c59b3d3ec0daa64aa5e8c9a72a9c534f105 100644
--- a/Source/Core/Controls/ImageBrowserItem.cs
+++ b/Source/Core/Controls/ImageBrowserItem.cs
@@ -99,7 +99,7 @@ namespace CodeImp.DoomBuilder.Controls
 			Rectangle imagerect = new Rectangle(bounds.Left + ((bounds.Width - General.Map.Data.Previews.MaxImageWidth) >> 1),
 				bounds.Top + ((bounds.Height - General.Map.Data.Previews.MaxImageHeight - (int)textsize.Height) >> 1),
 				General.Map.Data.Previews.MaxImageWidth, General.Map.Data.Previews.MaxImageHeight);
-			PointF textpos = new PointF(bounds.Left + ((float)bounds.Width - textsize.Width) * 0.5f, bounds.Bottom - textsize.Height - 2);
+			PointF textpos = new PointF(bounds.Left + (bounds.Width - textsize.Width) * 0.5f, bounds.Bottom - textsize.Height - 2);
 
 			// Determine colors
 			if(this.Selected)
diff --git a/Source/Core/Controls/RenderTargetControl.cs b/Source/Core/Controls/RenderTargetControl.cs
index 4ea21f50f04be8f70b77ca093cf71dddd7946e60..2eb6c43c2e33cd6c572df34bd95dd8b8e0227e06 100644
--- a/Source/Core/Controls/RenderTargetControl.cs
+++ b/Source/Core/Controls/RenderTargetControl.cs
@@ -79,9 +79,9 @@ namespace CodeImp.DoomBuilder.Controls
 			this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
 			this.SetStyle(ControlStyles.Opaque, false);
 			this.UpdateStyles();
-			this.BackColor = System.Drawing.SystemColors.AppWorkspace;
-			this.BackgroundImage = global::CodeImp.DoomBuilder.Properties.Resources.Splash3_trans;
-			this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
+			this.BackColor = SystemColors.AppWorkspace;
+			this.BackgroundImage = Properties.Resources.Splash3_trans;
+			this.BackgroundImageLayout = ImageLayout.Center;
 		}
 		
 		// This sets up the control for manual rendering
@@ -97,7 +97,7 @@ namespace CodeImp.DoomBuilder.Controls
 			this.UpdateStyles();
 			this.BackColor = Color.Black;
 			this.BackgroundImage = null;
-			this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
+			this.BackgroundImageLayout = ImageLayout.None;
 		}
 
 		#endregion
diff --git a/Source/Core/Controls/ScintillaControl.cs b/Source/Core/Controls/ScintillaControl.cs
index 4f8f040b9a1c146c5db8e234f8868319deec3844..e566ea1783cffaea8d765dabffabefbd368b1ccb 100644
--- a/Source/Core/Controls/ScintillaControl.cs
+++ b/Source/Core/Controls/ScintillaControl.cs
@@ -2295,7 +2295,7 @@ namespace CodeImp.DoomBuilder.Controls
 		{
 			if(controlptr != IntPtr.Zero)
 			{
-				return (UInt32)Perform(directptr, message, (UInt32)wParam, (UInt32)lParam);
+				return (UInt32)Perform(directptr, message, wParam, lParam);
 			}
 			else
 			{
@@ -2309,7 +2309,7 @@ namespace CodeImp.DoomBuilder.Controls
 			this.ignoredkeys.Add(key, key);
 		}
 
-		public void AddIgnoredKey(System.Windows.Forms.Keys key, System.Windows.Forms.Keys modifier)
+		public void AddIgnoredKey(Keys key, Keys modifier)
 		{
 			this.ignoredkeys.Add((int)key + (int)modifier, (int)key + (int)modifier);
 		}
@@ -2370,7 +2370,7 @@ namespace CodeImp.DoomBuilder.Controls
 		#region ================== Message Pump
 		
 		// This handles messages
-		protected override void WndProc(ref System.Windows.Forms.Message m)
+		protected override void WndProc(ref Message m)
 		{
 			// Notify message?
 			if(m.Msg == WM_NOTIFY)
@@ -2524,7 +2524,7 @@ namespace CodeImp.DoomBuilder.Controls
 									string textstr = null;
 									try
 									{
-										textstr = System.Runtime.InteropServices.Marshal.PtrToStringAuto(scn.text);
+										textstr = Marshal.PtrToStringAuto(scn.text);
 									}
 									catch(IndexOutOfRangeException)
 									{
diff --git a/Source/Core/Controls/ScriptDocumentTab.cs b/Source/Core/Controls/ScriptDocumentTab.cs
index e1fa7241bb2c38505874a8bf2d12a671597f25f9..030d5d8f2452dff6821694770b21f31dc326cd14 100644
--- a/Source/Core/Controls/ScriptDocumentTab.cs
+++ b/Source/Core/Controls/ScriptDocumentTab.cs
@@ -92,7 +92,7 @@ namespace CodeImp.DoomBuilder.Controls
 			navigator.Name = "navigator";
 			navigator.TabStop = true;
 			navigator.TabIndex = 0;
-			navigator.DropDown += new EventHandler(navigator_DropDown);
+			navigator.DropDown += navigator_DropDown;
 			this.Controls.Add(navigator);
 			
 			// Make the script control
@@ -311,7 +311,7 @@ namespace CodeImp.DoomBuilder.Controls
 			if (Array.IndexOf(ScriptTypes.TYPES, config.Description) != -1) {
 				updateNavigator(new MemoryStream(editor.GetText()), config.Description);
 				navigator.Enabled = true;
-				navigator.SelectedIndexChanged += new EventHandler(navigator_SelectedIndexChanged);
+				navigator.SelectedIndexChanged += navigator_SelectedIndexChanged;
 			}else{
 				navigator.Items.Clear();
 				navigator.Enabled = false;
diff --git a/Source/Core/Controls/ScriptEditorControl.cs b/Source/Core/Controls/ScriptEditorControl.cs
index 4df15990f26b5304a1c8db3133f3ca86b5bfec27..480fa91b2f5776ba00fd5ad415fca83f77a7450f 100644
--- a/Source/Core/Controls/ScriptEditorControl.cs
+++ b/Source/Core/Controls/ScriptEditorControl.cs
@@ -77,8 +77,8 @@ namespace CodeImp.DoomBuilder.Controls
 		
 		// Current position information
 		private string curfunctionname = "";
-		private int curargumentindex = 0;
-		private int curfunctionstartpos = 0;
+		private int curargumentindex;
+		private int curfunctionstartpos;
 		
 		// Status
 		private bool changed;
@@ -158,7 +158,7 @@ namespace CodeImp.DoomBuilder.Controls
 
 			// Events
 			scriptedit.ModEventMask = 0x7FFFF;	// Which events to receive (see also ScriptModificationFlags)
-			scriptedit.Modified += new ScintillaControl.ModifiedHandler(scriptedit_Modified);
+			scriptedit.Modified += scriptedit_Modified;
 		}
 		
 		#endregion
@@ -333,7 +333,7 @@ namespace CodeImp.DoomBuilder.Controls
 					stylelookup.Add(stylenum, (ScriptStyleType)(int)de.Value);
 					
 					// Apply color to style
-					int colorindex = 0;
+					int colorindex;
 					switch((ScriptStyleType)(int)de.Value)
 					{
 						case ScriptStyleType.PlainText: colorindex = ColorCollection.PLAINTEXT; break;
@@ -570,7 +570,7 @@ namespace CodeImp.DoomBuilder.Controls
 		}
 		
 		// This registers an XPM image for the autocomplete list
-		private unsafe void RegisterAutoCompleteImage(ImageIndex index, byte[] imagedata)
+		private void RegisterAutoCompleteImage(ImageIndex index, byte[] imagedata)
 		{
 			// Convert to string
 			string bigstring = Encoding.UTF8.GetString(imagedata);
@@ -580,7 +580,7 @@ namespace CodeImp.DoomBuilder.Controls
 		}
 
 		// This registers an XPM image for the markes list
-		private unsafe void RegisterMarkerImage(ImageIndex index, byte[] imagedata)
+		private void RegisterMarkerImage(ImageIndex index, byte[] imagedata)
 		{
 			// Convert to string
 			string bigstring = Encoding.UTF8.GetString(imagedata);
diff --git a/Source/Core/Controls/ScriptEditorPanel.cs b/Source/Core/Controls/ScriptEditorPanel.cs
index 079d2dcc1b9ad11f98caaf2e2fdaa1207b3014c6..b17c925ec3be5f50c31aee8a7592d115e439807a 100644
--- a/Source/Core/Controls/ScriptEditorPanel.cs
+++ b/Source/Core/Controls/ScriptEditorPanel.cs
@@ -78,14 +78,14 @@ namespace CodeImp.DoomBuilder.Controls
 				item = new ToolStripMenuItem(cfg.Description);
 				//item.Image = buttonnew.Image;
 				item.Tag = cfg;
-				item.Click += new EventHandler(buttonnew_Click);
+				item.Click += buttonnew_Click;
 				buttonnew.DropDownItems.Add(item);
 				
 				// Button for script type menu
 				item = new ToolStripMenuItem(cfg.Description);
 				//item.Image = buttonnew.Image;
 				item.Tag = cfg;
-				item.Click += new EventHandler(buttonscriptconfig_Click);
+				item.Click += buttonscriptconfig_Click;
 				buttonscriptconfig.DropDownItems.Add(item);
 			}
 			
@@ -344,9 +344,9 @@ namespace CodeImp.DoomBuilder.Controls
 				ei.ImageIndex = 0;
 				ei.SubItems.Add(e.description);
 				if(e.filename.StartsWith("?"))
-					ei.SubItems.Add(e.filename.Replace("?", "") + " (line " + e.linenumber.ToString() + ")");
+					ei.SubItems.Add(e.filename.Replace("?", "") + " (line " + e.linenumber + ")");
 				else
-					ei.SubItems.Add(Path.GetFileName(e.filename) + " (line " + e.linenumber.ToString() + ")");
+					ei.SubItems.Add(Path.GetFileName(e.filename) + " (line " + e.linenumber + ")");
 				ei.Tag = e;
 				errorlist.Items.Add(ei);
 				listindex++;
@@ -735,7 +735,7 @@ namespace CodeImp.DoomBuilder.Controls
 
 			// Show warning
 			if((compilererrors != null) && (compilererrors.Count > 0))
-				General.MainWindow.DisplayStatus(StatusType.Warning, compilererrors.Count.ToString() + " errors while compiling " + t.Text + "!");
+				General.MainWindow.DisplayStatus(StatusType.Warning, compilererrors.Count + " errors while compiling " + t.Text + "!");
 			else
 				General.MainWindow.DisplayStatus(StatusType.Info, "Script " + t.Text + " compiled without errors.");
 
diff --git a/Source/Core/Controls/ScriptLumpDocumentTab.cs b/Source/Core/Controls/ScriptLumpDocumentTab.cs
index 5a04d56bee3270fdb2ac83b6415fdb98cf3e9bef..ec6ff9b1436898d1023f554f83033687df753cd5 100644
--- a/Source/Core/Controls/ScriptLumpDocumentTab.cs
+++ b/Source/Core/Controls/ScriptLumpDocumentTab.cs
@@ -88,7 +88,7 @@ namespace CodeImp.DoomBuilder.Controls
 		// Compile script
 		public override void Compile()
 		{
-			bool success = false; //mxd
+			bool success; //mxd
 
 			// Compile
 			if(ismapheader)
diff --git a/Source/Core/Controls/SectorInfoPanel.cs b/Source/Core/Controls/SectorInfoPanel.cs
index 8d1ccda49022f2697e714142846d11e44441a350..841cf0a1dd7aab575fde04d7c49bfc669553da19 100644
--- a/Source/Core/Controls/SectorInfoPanel.cs
+++ b/Source/Core/Controls/SectorInfoPanel.cs
@@ -42,7 +42,7 @@ namespace CodeImp.DoomBuilder.Controls
 		// This shows the info
 		public void ShowInfo(Sector s)
 		{
-			string effectinfo = "";
+			string effectinfo;
 			
 			int sheight = s.CeilHeight - s.FloorHeight;
 
@@ -50,9 +50,9 @@ namespace CodeImp.DoomBuilder.Controls
 			if(General.Map.Config.SectorEffects.ContainsKey(s.Effect))
 				effectinfo = General.Map.Config.SectorEffects[s.Effect].ToString();
 			else if(s.Effect == 0)
-				effectinfo = s.Effect.ToString() + " - Normal";
+				effectinfo = s.Effect + " - Normal";
 			else
-				effectinfo = s.Effect.ToString() + " - Unknown";
+				effectinfo = s.Effect + " - Unknown";
 
 			// Sector info
 			sectorinfo.Text = " Sector " + s.Index + " (" + (s.Sidedefs == null ? "no" : s.Sidedefs.Count.ToString()) + " sidedefs)"; //mxd
@@ -213,7 +213,7 @@ namespace CodeImp.DoomBuilder.Controls
 						showExtededCeilingInfo = true;
 						ceilingAngle.Enabled = true;
 						ceilingAngleLabel.Enabled = true;
-						ceilingAngle.Text = s.Fields["rotationceiling"].Value.ToString() + "\u00B0";
+						ceilingAngle.Text = s.Fields["rotationceiling"].Value + "\u00B0";
 					} else {
 						ceilingAngle.Text = "-";
 						ceilingAngle.Enabled = false;
@@ -224,7 +224,7 @@ namespace CodeImp.DoomBuilder.Controls
 						showExtededFloorInfo = true;
 						floorAngle.Enabled = true;
 						floorAngleLabel.Enabled = true;
-						floorAngle.Text = s.Fields["rotationfloor"].Value.ToString() + "\u00B0";
+						floorAngle.Text = s.Fields["rotationfloor"].Value + "\u00B0";
 					} else {
 						floorAngle.Text = "-";
 						floorAngle.Enabled = false;
diff --git a/Source/Core/Controls/TextureSelectorControl.cs b/Source/Core/Controls/TextureSelectorControl.cs
index e86cf2441463bc18528831203765781d81377cf9..9a252123c08f5dc03a7de3fdeaa6fe2851773516 100644
--- a/Source/Core/Controls/TextureSelectorControl.cs
+++ b/Source/Core/Controls/TextureSelectorControl.cs
@@ -47,16 +47,12 @@ namespace CodeImp.DoomBuilder.Controls
 			timer.Stop(); //mxd
 			
 			// Check if name is a "none" texture
-			if((imagename.Length < 1) || (imagename == "-"))
-			{
+			if((imagename.Length < 1) || (imagename == "-")) {
 				DisplayImageSize(0, 0); //mxd
 				
 				// Determine image to show
-				if(required)
-					return CodeImp.DoomBuilder.Properties.Resources.MissingTexture;
-				else
-					return null;
-			}
+				return (required ? Properties.Resources.MissingTexture : null);
+			} 
 			else
 			{
 				ImageData texture = General.Map.Data.GetTextureImage(imagename); //mxd
@@ -71,13 +67,10 @@ namespace CodeImp.DoomBuilder.Controls
 		}
 
 		// This browses for a texture
-		protected override string BrowseImage(string imagename)
-		{
-			string result;
-
+		protected override string BrowseImage(string imagename) {
 			// Browse for texture
-			result = TextureBrowserForm.Browse(this.ParentForm, imagename, false);
-			if(result != null) return result; else return imagename;
+			string result = TextureBrowserForm.Browse(this.ParentForm, imagename, false);
+			return result ?? imagename;
 		}
 	}
 }
diff --git a/Source/Core/Controls/ThingInfoPanel.cs b/Source/Core/Controls/ThingInfoPanel.cs
index db0f3b3ee47d3b531c761020f80396cb56e4954f..eef819a0c7151ebc13e14c881a9ba6aca20352bb 100644
--- a/Source/Core/Controls/ThingInfoPanel.cs
+++ b/Source/Core/Controls/ThingInfoPanel.cs
@@ -48,9 +48,8 @@ namespace CodeImp.DoomBuilder.Controls
 		// This shows the info
 		public void ShowInfo(Thing t)
 		{
-			ThingTypeInfo ti;
 			LinedefActionInfo act = null;
-			string actioninfo = "";
+			string actioninfo;
 			string zinfo;
 			float zvalue;
 
@@ -78,7 +77,7 @@ namespace CodeImp.DoomBuilder.Controls
 			flagsPanel.Left = spritepanel.Left + spritepanel.Width + spritepanel.Margin.Right + flagsPanel.Margin.Left; //mxd
 			
 			// Lookup thing info
-			ti = General.Map.Data.GetThingInfo(t.Type);
+			ThingTypeInfo ti = General.Map.Data.GetThingInfo(t.Type);
 
 			// Get thing action information
 			if(General.Map.Config.LinedefActions.ContainsKey(t.Action))
@@ -87,9 +86,9 @@ namespace CodeImp.DoomBuilder.Controls
 				actioninfo = act.ToString();
 			}
 			else if(t.Action == 0)
-				actioninfo = t.Action.ToString() + " - None";
+				actioninfo = t.Action + " - None";
 			else
-				actioninfo = t.Action.ToString() + " - Unknown";
+				actioninfo = t.Action + " - Unknown";
 			
 			// Determine z info to show
 			t.DetermineSector();
@@ -117,7 +116,7 @@ namespace CodeImp.DoomBuilder.Controls
 				else
 				{
 					zvalue = t.Position.z;
-					if(zvalue >= 0.0f) zinfo = "+" + zvalue.ToString(); else zinfo = zvalue.ToString();
+					if(zvalue >= 0.0f) zinfo = "+" + zvalue; else zinfo = zvalue.ToString();
 				}
 			}
 
diff --git a/Source/Core/Data/DataManager.cs b/Source/Core/Data/DataManager.cs
index 4a926be8009a5ec3b85bcc9532e4ab2b320708da..eab0910bee4dcbe140407e66c8e74e99bddeae44 100644
--- a/Source/Core/Data/DataManager.cs
+++ b/Source/Core/Data/DataManager.cs
@@ -98,7 +98,7 @@ namespace CodeImp.DoomBuilder.Data
 		private float loadfinishtime;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
@@ -1513,7 +1513,7 @@ namespace CodeImp.DoomBuilder.Data
 			// Go for all things
 			foreach(ThingTypeInfo ti in thingtypes.Values) {
 				// Valid sprite name?
-				string sprite = string.Empty;
+				string sprite;
 
 				if(ti.Sprite.Length == 0 || ti.Sprite.Length > 8) {
 					if(ti.Actor == null) continue;
diff --git a/Source/Core/Data/DataReader.cs b/Source/Core/Data/DataReader.cs
index d8e4891b5c6ac2ee344178f2ed99ac991c617cf8..40970a74b0b3e6ccee660a4f255fffe2d63eef16 100644
--- a/Source/Core/Data/DataReader.cs
+++ b/Source/Core/Data/DataReader.cs
@@ -36,8 +36,8 @@ namespace CodeImp.DoomBuilder.Data
 		#region ================== Variables
 
 		protected DataLocation location;
-		protected bool issuspended = false;
-		protected bool isdisposed = false;
+		protected bool issuspended;
+		protected bool isdisposed;
 		protected ResourceTextureSet textureset;
 
 		#endregion
diff --git a/Source/Core/Data/ImageData.cs b/Source/Core/Data/ImageData.cs
index 4689eaec0a099525009565f27adac554e713387e..fed972594745d490f0ee54720ff4aaf6596a66b2 100644
--- a/Source/Core/Data/ImageData.cs
+++ b/Source/Core/Data/ImageData.cs
@@ -67,12 +67,12 @@ namespace CodeImp.DoomBuilder.Data
 		protected Bitmap bitmap;
 		
 		// Direct3D texture
-		private int mipmaplevels = 0;	// 0 = all mipmaps
+		private int mipmaplevels;	// 0 = all mipmaps
 		protected bool dynamictexture;
 		private Texture texture;
 		
 		// Disposing
-		protected bool isdisposed = false;
+		protected bool isdisposed;
 		
 		#endregion
 		
diff --git a/Source/Core/Data/PK3StructuredReader.cs b/Source/Core/Data/PK3StructuredReader.cs
index 2fdde403a8e49464f8871bbf8fde6c1c56571f02..3834a81a5347835852afb66ded04a4b21363cb17 100644
--- a/Source/Core/Data/PK3StructuredReader.cs
+++ b/Source/Core/Data/PK3StructuredReader.cs
@@ -17,7 +17,6 @@
 #region ================== Namespaces
 
 using System;
-using System.Collections;
 using System.Collections.Generic;
 using System.IO;
 using System.Text.RegularExpressions;
diff --git a/Source/Core/Data/PreviewManager.cs b/Source/Core/Data/PreviewManager.cs
index 63ba70cdca1a766bb6e12707355212ec01a6acaf..611f35b3b221ac56c841eed6e242d66686f32a1c 100644
--- a/Source/Core/Data/PreviewManager.cs
+++ b/Source/Core/Data/PreviewManager.cs
@@ -52,7 +52,7 @@ namespace CodeImp.DoomBuilder.Data
 		private Queue<ImageData> imageque;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
diff --git a/Source/Core/Data/UnknownImage.cs b/Source/Core/Data/UnknownImage.cs
index 74afdb9d0b8c2fbecdd41bb199d482777f2efdd3..a8528336e094ea9de08302251d79734b2cec60ae 100644
--- a/Source/Core/Data/UnknownImage.cs
+++ b/Source/Core/Data/UnknownImage.cs
@@ -27,7 +27,7 @@ namespace CodeImp.DoomBuilder.Data
 	{
 		#region ================== Variables
 
-		private Bitmap loadbitmap = null;
+		private Bitmap loadbitmap;
 		
 		#endregion
 		
diff --git a/Source/Core/Editing/ClassicMode.cs b/Source/Core/Editing/ClassicMode.cs
index 6d9198c1929f1f330ffa1de07cb42666a69623c4..91278534935505192a2fdd3a5256fe3a2a9fbc61 100644
--- a/Source/Core/Editing/ClassicMode.cs
+++ b/Source/Core/Editing/ClassicMode.cs
@@ -449,7 +449,7 @@ namespace CodeImp.DoomBuilder.Editing
 				{
 					// Scale and power this for nicer usability
 					Vector2D pansign = panamount.GetSign();
-					panamount = (panamount * panamount) * pansign * 0.0001f * (float)General.Settings.AutoScrollSpeed / renderer.Scale;
+					panamount = (panamount * panamount) * pansign * 0.0001f * General.Settings.AutoScrollSpeed / renderer.Scale;
 					
 					// Multiply by delta time
 					panamount.x *= deltatime;
diff --git a/Source/Core/Editing/CopyPasteManager.cs b/Source/Core/Editing/CopyPasteManager.cs
index cf1c5afb38211dabe360ce5fc8142a33706a9284..ceafe38d5ce65be065531181b2de07bd5b4283ec 100644
--- a/Source/Core/Editing/CopyPasteManager.cs
+++ b/Source/Core/Editing/CopyPasteManager.cs
@@ -42,7 +42,7 @@ namespace CodeImp.DoomBuilder.Editing
 		#region ================== Variables
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 		
 		// Last inserted prefab
 		private string lastprefabfile;
@@ -161,7 +161,7 @@ namespace CodeImp.DoomBuilder.Editing
 			General.Map.UndoRedo.CreateUndo("Insert prefab");
 			
 			// Decompress stream
-			MemoryStream memstream = null; //mxd
+			MemoryStream memstream; //mxd
 			filedata.Seek(0, SeekOrigin.Begin);
 			
 			try {
diff --git a/Source/Core/Editing/EditModeAttribute.cs b/Source/Core/Editing/EditModeAttribute.cs
index fc4f8c500d1b6cd36745a8715eac565a68e51a33..86d805b6f38d56de863ebcf90a75897d7e0577ec 100644
--- a/Source/Core/Editing/EditModeAttribute.cs
+++ b/Source/Core/Editing/EditModeAttribute.cs
@@ -32,16 +32,16 @@ namespace CodeImp.DoomBuilder.Editing
 		#region ================== Variables
 		
 		// Properties
-		private string switchaction = null;
-		private string buttonimage = null;
-		private int buttonorder = 0;
+		private string switchaction;
+		private string buttonimage;
+		private int buttonorder;
 		private string buttongroup = "~none";
 		private bool optional = true;
-		private bool isvolatile = false;
+		private bool isvolatile;
 		private string displayname = "<unnamed mode>";
 		private bool allowcopypaste = true;
-		private bool usebydefault = false;
-		private bool safestartmode = false;
+		private bool usebydefault;
+		private bool safestartmode;
 		
 		#endregion
 		
diff --git a/Source/Core/Editing/EditModeInfo.cs b/Source/Core/Editing/EditModeInfo.cs
index bdeaf00649e741dc930f29bb1eae880202ad03cc..dce9c693f1f97d2ecaf98268a24c5fe44de5a480 100644
--- a/Source/Core/Editing/EditModeInfo.cs
+++ b/Source/Core/Editing/EditModeInfo.cs
@@ -41,13 +41,13 @@ namespace CodeImp.DoomBuilder.Editing
 		private EditModeAttribute attribs;
 		
 		// Mode switching
-		private BeginActionAttribute switchactionattr = null;
-		private ActionDelegate switchactiondel = null;
+		private BeginActionAttribute switchactionattr;
+		private ActionDelegate switchactiondel;
 
 		// Mode button
-		private Stream buttonimagestream = null;
-		private Image buttonimage = null;
-		private string buttondesc = null;
+		private Stream buttonimagestream;
+		private Image buttonimage;
+		private string buttondesc;
 		private int buttonorder = int.MaxValue;
 		
 		#endregion
@@ -115,7 +115,7 @@ namespace CodeImp.DoomBuilder.Editing
 		{
 			if((switchactiondel == null) && (switchactionattr != null))
 			{
-				switchactiondel = new ActionDelegate(UserSwitchToMode);
+				switchactiondel = UserSwitchToMode;
 				General.Actions.BindBeginDelegate(plugin.Assembly, switchactiondel, switchactionattr);
 			}
 		}
diff --git a/Source/Core/Editing/EditingManager.cs b/Source/Core/Editing/EditingManager.cs
index e99e2a603fb5b69a91d7ff97d6aedb8d805669d7..18090c23f215c3474798aefd2ce99b9e10ec115d 100644
--- a/Source/Core/Editing/EditingManager.cs
+++ b/Source/Core/Editing/EditingManager.cs
@@ -54,7 +54,7 @@ namespace CodeImp.DoomBuilder.Editing
 		private bool disengaging;
 
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 		
 		#endregion
 		
diff --git a/Source/Core/Editing/GridSetup.cs b/Source/Core/Editing/GridSetup.cs
index 31bdf05b6ac4f97f8c75f7720fafa2350d7b2826..a25593fb6ef90305517e65ef1251037078d0132e 100644
--- a/Source/Core/Editing/GridSetup.cs
+++ b/Source/Core/Editing/GridSetup.cs
@@ -135,8 +135,8 @@ namespace CodeImp.DoomBuilder.Editing
 			backsource = cfg.ReadSetting(path + ".backsource", 0);
 			backoffsetx = cfg.ReadSetting(path + ".backoffsetx", 0);
 			backoffsety = cfg.ReadSetting(path + ".backoffsety", 0);
-			backscalex = (float)cfg.ReadSetting(path + ".backscalex", 100) / 100.0f;
-			backscaley = (float)cfg.ReadSetting(path + ".backscaley", 100) / 100.0f;
+			backscalex = cfg.ReadSetting(path + ".backscalex", 100) / 100.0f;
+			backscaley = cfg.ReadSetting(path + ".backscaley", 100) / 100.0f;
 			gridsize = cfg.ReadSetting(path + ".gridsize", DEFAULT_GRID_SIZE);
 
 			// Setup
@@ -149,7 +149,7 @@ namespace CodeImp.DoomBuilder.Editing
 		{
 			// Change grid
 			this.gridsize = size;
-			this.gridsizef = (float)gridsize;
+			this.gridsizef = gridsize;
 			this.gridsizefinv = 1f / gridsizef;
 
 			// Update in main window
diff --git a/Source/Core/Editing/ThingsFilter.cs b/Source/Core/Editing/ThingsFilter.cs
index 3fefc3d1c043bd57dbdb51826997bb686489398c..45f2b82e2cf664da10ff077d1b7231649d1b9b9c 100644
--- a/Source/Core/Editing/ThingsFilter.cs
+++ b/Source/Core/Editing/ThingsFilter.cs
@@ -66,7 +66,7 @@ namespace CodeImp.DoomBuilder.Editing
 		protected Dictionary<Thing, bool> thingsvisiblestate;
 		
 		// Disposing
-		protected bool isdisposed = false;
+		protected bool isdisposed;
 
 		#endregion
 
@@ -140,7 +140,7 @@ namespace CodeImp.DoomBuilder.Editing
 			foreach(DictionaryEntry de in fields)
 			{
 				// Add to the corresponding list
-				if((bool)de.Value == true)
+				if((bool)de.Value)
 					requiredfields.Add(de.Key.ToString());
 				else
 					forbiddenfields.Add(de.Key.ToString());
@@ -150,7 +150,7 @@ namespace CodeImp.DoomBuilder.Editing
 			IDictionary fieldvalues = cfg.ReadSetting(path + ".customfieldvalues", new Hashtable());
 			foreach(DictionaryEntry fv in fieldvalues)
 			{
-				int ft = cfg.ReadSetting(path + ".customfieldtypes." + fv.Key.ToString(), 0);
+				int ft = cfg.ReadSetting(path + ".customfieldtypes." + fv.Key, 0);
 				customfields.Add(fv.Key.ToString(), new UniValue(ft, fv.Value));
 			}
 			
@@ -377,7 +377,7 @@ namespace CodeImp.DoomBuilder.Editing
 					{
 						if(t.Flags.ContainsKey(s))
 						{
-							if(t.Flags[s] == true)
+							if(t.Flags[s])
 							{
 								qualifies = false;
 								break;
diff --git a/Source/Core/Editing/UndoManager.cs b/Source/Core/Editing/UndoManager.cs
index 0c323c07f547ea93255a4276dedf21857be211c6..992d2b9013416ee4e6de02848dcc40f3d1667555 100644
--- a/Source/Core/Editing/UndoManager.cs
+++ b/Source/Core/Editing/UndoManager.cs
@@ -103,7 +103,7 @@ namespace CodeImp.DoomBuilder.Editing
 		private Thread backgroundthread;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
@@ -170,7 +170,7 @@ namespace CodeImp.DoomBuilder.Editing
 			General.Actions.BindMethods(this);
 
 			// Start background thread
-			backgroundthread = new Thread(new ThreadStart(BackgroundThread));
+			backgroundthread = new Thread(BackgroundThread);
 			backgroundthread.Name = "Snapshot Compressor";
 			backgroundthread.Priority = ThreadPriority.Lowest;
 			backgroundthread.IsBackground = true;
diff --git a/Source/Core/GZBuilder/Controls/ColorFieldsControl.cs b/Source/Core/GZBuilder/Controls/ColorFieldsControl.cs
index 976f1111a93cc2c76f4fdb39be2eee021aca18a2..95208e17ac580e7962077e04f1389f7fd04af4ed 100644
--- a/Source/Core/GZBuilder/Controls/ColorFieldsControl.cs
+++ b/Source/Core/GZBuilder/Controls/ColorFieldsControl.cs
@@ -76,7 +76,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.Controls
 
 		private void tbColor_TextChanged(object sender, EventArgs e) {
 			if(blockUpdate)	return;
-			int colorVal = defaultValue;
+			int colorVal;
 
 			if(int.TryParse(tbColor.Text, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out colorVal)){
 				colorVal = General.Clamp(colorVal, 0, 16777215);
diff --git a/Source/Core/GZBuilder/Controls/MultiSelectTreeview.cs b/Source/Core/GZBuilder/Controls/MultiSelectTreeview.cs
index 97a5e3fbc31feccaaf6876e79a88a8f341872300..534a590ce1ce740ed7dc34ff6584516c1f03ea08 100644
--- a/Source/Core/GZBuilder/Controls/MultiSelectTreeview.cs
+++ b/Source/Core/GZBuilder/Controls/MultiSelectTreeview.cs
@@ -13,7 +13,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.Controls
 	{
 		#region Selected Node(s) Properties
 
-		private List<TreeNode> m_SelectedNodes = null;
+		private List<TreeNode> m_SelectedNodes;
 		public List<TreeNode> SelectedNodes {
 			get {
 				return m_SelectedNodes;
diff --git a/Source/Core/GZBuilder/Controls/PairedIntControl.cs b/Source/Core/GZBuilder/Controls/PairedIntControl.cs
index 9215014e162af923e1c773cb7a3d974f199594e9..b60ec7d00c300f96e7c402e8ce6e9e3bcd7aba91 100644
--- a/Source/Core/GZBuilder/Controls/PairedIntControl.cs
+++ b/Source/Core/GZBuilder/Controls/PairedIntControl.cs
@@ -2,7 +2,6 @@
 
 using System;
 using System.Windows.Forms;
-using CodeImp.DoomBuilder.Map;
 
 #endregion
 
diff --git a/Source/Core/GZBuilder/Data/LinksCollector.cs b/Source/Core/GZBuilder/Data/LinksCollector.cs
index 16c93f837371d17f0d20ff7935a718ef7393ef32..e6925d93b08b112bc7a9c1f7bcc25fa9b483f1ab 100644
--- a/Source/Core/GZBuilder/Data/LinksCollector.cs
+++ b/Source/Core/GZBuilder/Data/LinksCollector.cs
@@ -106,8 +106,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.Data {
 				}
 			}
 
-			Vector3D start = new Vector3D();
-			Vector3D end = new Vector3D();
+			Vector3D start, end;
 
 			//process path nodes
 			if (result.ProcessPathNodes) {
diff --git a/Source/Core/GZBuilder/Data/ModelLoadState.cs b/Source/Core/GZBuilder/Data/ModelLoadState.cs
index a3c0007d1cae285d7a373c56431854a08d7d9b6e..a8abb6e2bcd00f53892b1ce91954b9b99d6a090c 100644
--- a/Source/Core/GZBuilder/Data/ModelLoadState.cs
+++ b/Source/Core/GZBuilder/Data/ModelLoadState.cs
@@ -1,9 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace CodeImp.DoomBuilder.GZBuilder.Data
+namespace CodeImp.DoomBuilder.GZBuilder.Data
 {
 	public enum ModelLoadState
 	{
diff --git a/Source/Core/GZBuilder/GZDoom/AcsParserSE.cs b/Source/Core/GZBuilder/GZDoom/AcsParserSE.cs
index a9e676535436231bd4f2329cb46d95fec1a3bfc4..0781dea3c76aeb495a0c4edf591bc8ec51bab448 100644
--- a/Source/Core/GZBuilder/GZDoom/AcsParserSE.cs
+++ b/Source/Core/GZBuilder/GZDoom/AcsParserSE.cs
@@ -78,7 +78,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
 							//check if we have something like "999(void)" as a token
 							if (token.Contains("(")) token = token.Substring(0, token.IndexOf("("));
 
-							int n = 0;
+							int n;
 							if (int.TryParse(token, NumberStyles.Integer, CultureInfo.InvariantCulture, out n)) {
 								int endPos = (int)stream.Position - 1;
 
diff --git a/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs b/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs
index 599417535bafcb020dcf881c5b66f0aab67aa2c2..c66a101cab5556735fbd185e75e340a64f5e2edb 100644
--- a/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs
+++ b/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs
@@ -1,5 +1,4 @@
-using System;
-using System.Drawing;
+using System.Drawing;
 using System.Globalization;
 using System.IO;
 using SlimDX;
diff --git a/Source/Core/GZBuilder/GZDoom/ScriptTypeParserSE.cs b/Source/Core/GZBuilder/GZDoom/ScriptTypeParserSE.cs
index f9e09faa66880b12929659bf8f4356371861c0a4..66043052e515cc5ccd6439cd78b11353b21ae6be 100644
--- a/Source/Core/GZBuilder/GZDoom/ScriptTypeParserSE.cs
+++ b/Source/Core/GZBuilder/GZDoom/ScriptTypeParserSE.cs
@@ -24,7 +24,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom {
 
 					if (token == "MODEL") {
 						SkipWhitespace(true);
-						token = ReadToken(); //should be model name
+						ReadToken(); //should be model name
 						SkipWhitespace(true);
 						token = ReadToken();//should be opening brace
 						
@@ -35,9 +35,9 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom {
 
 					}else if(token == "SCRIPT"){
 						SkipWhitespace(true);
-						token = ReadToken(); //should be script name or number
+						ReadToken(); //should be script name or number
 						SkipWhitespace(true);
-						token = ReadToken(); //should be script parameters/type
+						ReadToken(); //should be script parameters/type
 						SkipWhitespace(true);
 						token = ReadToken(); //should be opening brace
 						
@@ -48,7 +48,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom {
 
 					}else if(token == "ACTOR"){
 						SkipWhitespace(true);
-						token = ReadToken(); //should be actor name
+						ReadToken(); //should be actor name
 
 						SkipWhitespace(true);
 						token = ReadToken();
diff --git a/Source/Core/GZBuilder/GZGeneral.cs b/Source/Core/GZBuilder/GZGeneral.cs
index 76109c3cefff75497e37acf8bce76b05bf8e75de..be697ac257fcf603318804046bc5a81f74ba6f58 100644
--- a/Source/Core/GZBuilder/GZGeneral.cs
+++ b/Source/Core/GZBuilder/GZGeneral.cs
@@ -1,6 +1,4 @@
-using System;
-using System.Windows.Forms;
-using CodeImp.DoomBuilder.Actions;
+using CodeImp.DoomBuilder.Actions;
 using CodeImp.DoomBuilder.Windows;
 using CodeImp.DoomBuilder.GZBuilder.Data;
 
diff --git a/Source/Core/GZBuilder/Windows/TagStatisticsForm.cs b/Source/Core/GZBuilder/Windows/TagStatisticsForm.cs
index 96780c35c1fa249e84be327c974248cb1a5cff56..7c4d1d2e16391b388c4e735813f8d6cb4b2b4e73 100644
--- a/Source/Core/GZBuilder/Windows/TagStatisticsForm.cs
+++ b/Source/Core/GZBuilder/Windows/TagStatisticsForm.cs
@@ -251,7 +251,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.Windows
 						foreach(Thing t in list) {
 							t.Selected = true;
 
-							Vector2D p = (Vector2D)t.Position;
+							Vector2D p = t.Position;
 							points.Add(p);
 							points.Add(p + new Vector2D(t.Size * 2.0f, t.Size * 2.0f));
 							points.Add(p + new Vector2D(t.Size * 2.0f, -t.Size * 2.0f));
@@ -345,7 +345,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.Windows
 					foreach(Thing t in list) {
 						t.Selected = true;
 						
-						Vector2D p = (Vector2D)t.Position;
+						Vector2D p = t.Position;
 						points.Add(p);
 						points.Add(p + new Vector2D(t.Size * 2.0f, t.Size * 2.0f));
 						points.Add(p + new Vector2D(t.Size * 2.0f, -t.Size * 2.0f));
diff --git a/Source/Core/GZBuilder/md3/ModelReader.cs b/Source/Core/GZBuilder/md3/ModelReader.cs
index d7515a1fc8a96cd1286c80d6289b0d8c3a5ebdfc..a0484723476abc61dadca2fe2477dae503c73ae7 100644
--- a/Source/Core/GZBuilder/md3/ModelReader.cs
+++ b/Source/Core/GZBuilder/md3/ModelReader.cs
@@ -483,13 +483,13 @@ namespace CodeImp.DoomBuilder.GZBuilder.MD3
 					s.Position = ofs_tris + start;
 
 				for (int i = 0; i < num_tris; i++) {
-					polyIndecesList.Add((int)br.ReadUInt16());
-					polyIndecesList.Add((int)br.ReadUInt16());
-					polyIndecesList.Add((int)br.ReadUInt16());
+					polyIndecesList.Add(br.ReadUInt16());
+					polyIndecesList.Add(br.ReadUInt16());
+					polyIndecesList.Add(br.ReadUInt16());
 
-					uvIndecesList.Add((int)br.ReadUInt16());
-					uvIndecesList.Add((int)br.ReadUInt16());
-					uvIndecesList.Add((int)br.ReadUInt16());
+					uvIndecesList.Add(br.ReadUInt16());
+					uvIndecesList.Add(br.ReadUInt16());
+					uvIndecesList.Add(br.ReadUInt16());
 				}
 
 				//UV coords
@@ -504,8 +504,8 @@ namespace CodeImp.DoomBuilder.GZBuilder.MD3
 				if (s.Position != ofs_animFrame + start)
 					s.Position = ofs_animFrame + start;
 
-				Vector3 scale = new Vector3((float)br.ReadSingle(), (float)br.ReadSingle(), (float)br.ReadSingle());
-				Vector3 translate = new Vector3((float)br.ReadSingle(), (float)br.ReadSingle(), (float)br.ReadSingle());
+				Vector3 scale = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
+				Vector3 translate = new Vector3(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
 
 				s.Position += 16; //frame name
 
@@ -522,9 +522,9 @@ namespace CodeImp.DoomBuilder.GZBuilder.MD3
 				for (int i = 0; i < num_verts; i++) {
 					WorldVertex v = new WorldVertex();
 
-					v.x = ((float)br.ReadByte() * scale.X + translate.X);
-					v.y = ((float)br.ReadByte() * scale.Y + translate.Y);
-					v.z = ((float)br.ReadByte() * scale.Z + translate.Z);
+					v.x = (br.ReadByte() * scale.X + translate.X);
+					v.y = (br.ReadByte() * scale.Y + translate.Y);
+					v.z = (br.ReadByte() * scale.Z + translate.Z);
 
 					//rotate it
 					float rx = angleOfsetCos * v.x - angleOfsetSin * v.y;
@@ -900,7 +900,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.MD3
 				ms.Dispose();
 
 				if(bitmap != null) {
-					BitmapData bmlock = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, bitmap.PixelFormat);
+					BitmapData bmlock = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, bitmap.PixelFormat);
 					texture = new Texture(device, bitmap.Width, bitmap.Height, 1, Usage.None, Format.A8R8G8B8, Pool.Managed);
 
 					DataRectangle textureLock = texture.LockRectangle(0, LockFlags.None);
@@ -921,7 +921,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.MD3
 
 		private static string ReadString(BinaryReader br, int len) {
 			var NAME = string.Empty;
-			int i = 0;
+			int i;
 			for (i = 0; i < len; ++i) {
 				var c = br.ReadChar();
 				if (c == '\0') {
diff --git a/Source/Core/General/CRC.cs b/Source/Core/General/CRC.cs
index 3425257085d17d82a6c770dcf691a7ce903a3d95..eaa9d5b6f602106a0c61d7624fb12ad73ac28106 100644
--- a/Source/Core/General/CRC.cs
+++ b/Source/Core/General/CRC.cs
@@ -142,7 +142,7 @@ namespace CodeImp.DoomBuilder
 		};
 
 			internal static uint ComputeCrc32(uint oldCrc, byte value) {
-				return (uint)(Crc32.CrcTable[(oldCrc ^ value) & 0xFF] ^ (oldCrc >> 8));
+				return (Crc32.CrcTable[(oldCrc ^ value) & 0xFF] ^ (oldCrc >> 8));
 			}
 
 			/// <summary>
@@ -155,7 +155,7 @@ namespace CodeImp.DoomBuilder
 			/// </summary>
 			public long Value {
 				get {
-					return (long)crc;
+					return crc;
 				}
 				set {
 					crc = (uint)value;
diff --git a/Source/Core/General/General.cs b/Source/Core/General/General.cs
index d1aafaf06d1fa1cb0181a9dcd2a6a5695cf1e984..379bbffd89cf2ada60cb9dbfceec31dcb12e0272 100644
--- a/Source/Core/General/General.cs
+++ b/Source/Core/General/General.cs
@@ -373,7 +373,7 @@ namespace CodeImp.DoomBuilder
 								catch(Exception e)
 								{
 									// Unable to load configuration
-									errorlogger.Add(ErrorType.Error, "Unable to load the nodebuilder configuration '" + de.Key.ToString() + "' from \"" + Path.GetFileName(filepath) + "\". Error: " + e.Message);
+									errorlogger.Add(ErrorType.Error, "Unable to load the nodebuilder configuration '" + de.Key + "' from \"" + Path.GetFileName(filepath) + "\". Error: " + e.Message);
 								}
 							}
 						}
diff --git a/Source/Core/General/Launcher.cs b/Source/Core/General/Launcher.cs
index 7061f7e0e482bf45e30ad3f2731e97c8d551b4f5..4568c5cdcfa7204418723d6ea6e8837a3d65451b 100644
--- a/Source/Core/General/Launcher.cs
+++ b/Source/Core/General/Launcher.cs
@@ -164,7 +164,7 @@ namespace CodeImp.DoomBuilder
 					// Store the number if we found one
 					if(numstr.Length > 0)
 					{
-						int num = 0;
+						int num;
 						int.TryParse(numstr, out num);
 						if(first) p_l1 = num.ToString(); else p_l2 = num.ToString();
 						numstr = "";
@@ -176,7 +176,7 @@ namespace CodeImp.DoomBuilder
 			// Store the number if we found one
 			if(numstr.Length > 0)
 			{
-				int num = 0;
+				int num;
 				int.TryParse(numstr, out num);
 				if(first) p_l1 = num.ToString(); else p_l2 = num.ToString();
 			}
diff --git a/Source/Core/General/MapManager.cs b/Source/Core/General/MapManager.cs
index 8c55bccf0ecb762af1be4f6a8f07aa55f5a299b6..bd1f12a14639f6d1e54c06b01ff6b82d5d99b7a0 100644
--- a/Source/Core/General/MapManager.cs
+++ b/Source/Core/General/MapManager.cs
@@ -1121,7 +1121,7 @@ namespace CodeImp.DoomBuilder {
 							// We don't want to bother the user with this. There are a lot of lumps in
 							// the game configs that are trivial and don't need to be found.
 							if (lumprequired) {
-								General.ErrorLogger.Add(ErrorType.Warning, ml.Key.ToString() + " (required lump) should be read but was not found in the WAD file.");
+								General.ErrorLogger.Add(ErrorType.Warning, ml.Key + " (required lump) should be read but was not found in the WAD file.");
 							}
 						}
 					}
diff --git a/Source/Core/General/StepsList.cs b/Source/Core/General/StepsList.cs
index 9c32e4463ec99ef737a65ae5589d9be538630b40..b6f1696bb43aa40cae8a0fa09d172f0a1547662d 100644
--- a/Source/Core/General/StepsList.cs
+++ b/Source/Core/General/StepsList.cs
@@ -33,7 +33,7 @@ namespace CodeImp.DoomBuilder
 
 			while(low < high)
 			{
-				int mid = (int)Math.Floor((float)(low + high) * 0.5f);
+				int mid = (int)Math.Floor((low + high) * 0.5f);
 				int l = base[mid];
 
 				if(l <= level)
@@ -53,7 +53,7 @@ namespace CodeImp.DoomBuilder
 
 			while(low < high)
 			{
-				int mid = (int)Math.Ceiling((float)(low + high) * 0.5f);
+				int mid = (int)Math.Ceiling((low + high) * 0.5f);
 				int l = base[mid];
 
 				if(l >= level)
@@ -85,7 +85,7 @@ namespace CodeImp.DoomBuilder
 
 			while(low < high)
 			{
-				int mid = (int)Math.Floor((float)(low + high) * 0.5f);
+				int mid = (int)Math.Floor((low + high) * 0.5f);
 				int l = base[mid];
 
 				if(l <= level)
diff --git a/Source/Core/Geometry/Angle2D.cs b/Source/Core/Geometry/Angle2D.cs
index a098abaf082596306e29a1d9c7b8e63be431e019..367d5bbd7fe0d05f5e026a0d97b33c621f8f5ded 100644
--- a/Source/Core/Geometry/Angle2D.cs
+++ b/Source/Core/Geometry/Angle2D.cs
@@ -39,7 +39,7 @@ namespace CodeImp.DoomBuilder.Geometry
 		// This converts doom angle to real angle
 		public static float DoomToReal(int doomangle)
 		{
-			return (float)Math.Round(Normalized(DegToRad((float)(doomangle + 90))), 4);
+			return (float)Math.Round(Normalized(DegToRad((doomangle + 90))), 4);
 		}
 
 		// This converts real angle to doom angle
diff --git a/Source/Core/Geometry/CurveTools.cs b/Source/Core/Geometry/CurveTools.cs
index 43ad757c4977c1240b0f60152522baa9ce6c2415..777925d0f5cb43b1a1a4c28e5edea52c1f2611cc 100644
--- a/Source/Core/Geometry/CurveTools.cs
+++ b/Source/Core/Geometry/CurveTools.cs
@@ -214,7 +214,7 @@ namespace CodeImp.DoomBuilder.Geometry
 
 			int totalSteps = steps + 1;
 			Vector2D[] points = new Vector2D[totalSteps];
-			float step = 1f / (float)steps;
+			float step = 1f / steps;
 			float curStep = 0f;
 
 			for(int i = 0; i < totalSteps; i++) {
@@ -238,7 +238,7 @@ namespace CodeImp.DoomBuilder.Geometry
 
 			int totalSteps = steps + 1;
 			Vector2D[] points = new Vector2D[totalSteps];
-			float step = 1f / (float)steps;
+			float step = 1f / steps;
 			float curStep = 0f;
 
 			for(int i = 0; i < totalSteps; i++) {
diff --git a/Source/Core/Geometry/Triangulation.cs b/Source/Core/Geometry/Triangulation.cs
index 5d53d99b7185b7e6fc332d36e2911d269bfe97b8..69c2f06b37953f282ca792c3a16c6811233b48c9 100644
--- a/Source/Core/Geometry/Triangulation.cs
+++ b/Source/Core/Geometry/Triangulation.cs
@@ -17,7 +17,6 @@
 #region ================== Namespaces
 
 using System;
-using System.Collections;
 using System.Collections.Generic;
 using CodeImp.DoomBuilder.Map;
 using System.Collections.ObjectModel;
diff --git a/Source/Core/Geometry/Vector2D.cs b/Source/Core/Geometry/Vector2D.cs
index b7416651d45490cef8b97489c8604c99a39428bc..7432f8ef24ff6cac67a66e6fbd5c150bb115ae9f 100644
--- a/Source/Core/Geometry/Vector2D.cs
+++ b/Source/Core/Geometry/Vector2D.cs
@@ -320,19 +320,19 @@ namespace CodeImp.DoomBuilder.Geometry
 		}
 
 		// Transform
-		public unsafe Vector2D GetTransformed(float offsetx, float offsety, float scalex, float scaley)
+		public Vector2D GetTransformed(float offsetx, float offsety, float scalex, float scaley)
 		{
 			return new Vector2D((x + offsetx) * scalex, (y + offsety) * scaley);
 		}
 
 		// Inverse Transform
-		public unsafe Vector2D GetInvTransformed(float invoffsetx, float invoffsety, float invscalex, float invscaley)
+		public Vector2D GetInvTransformed(float invoffsetx, float invoffsety, float invscalex, float invscaley)
 		{
 			return new Vector2D((x * invscalex) + invoffsetx, (y * invscaley) + invoffsety);
 		}
 		
 		// Rotate (Added by Anders Åstrand 2008-05-18)
-		public unsafe Vector2D GetRotated(float theta)
+		public Vector2D GetRotated(float theta)
 		{
 			float cos = (float)Math.Cos(theta);
 			float sin = (float)Math.Sin(theta);
diff --git a/Source/Core/IO/ClipboardStreamWriter.cs b/Source/Core/IO/ClipboardStreamWriter.cs
index 6bf1857d4a1a52032f084f529fe9b9cfc45d6839..ce092e9db43066077b755dfed47076096548947c 100644
--- a/Source/Core/IO/ClipboardStreamWriter.cs
+++ b/Source/Core/IO/ClipboardStreamWriter.cs
@@ -2,7 +2,6 @@
 
 using System;
 using System.Collections.Generic;
-using System.Linq;
 using System.Text;
 using CodeImp.DoomBuilder.Map;
 using System.IO;
diff --git a/Source/Core/IO/ClippedStream.cs b/Source/Core/IO/ClippedStream.cs
index ef6e1435978759460a2984536475ce36db02fed2..65529bccf897bb3b4bead9c3a62bea65b6379892 100644
--- a/Source/Core/IO/ClippedStream.cs
+++ b/Source/Core/IO/ClippedStream.cs
@@ -36,7 +36,7 @@ namespace CodeImp.DoomBuilder.IO
 		private long position;
 
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 		
 		#endregion
 
diff --git a/Source/Core/IO/Configuration.cs b/Source/Core/IO/Configuration.cs
index fa497cb2dcc3885fb13de5b35abf47267b86e1b9..d86474d7c22ba1f584077d4f32ed579b483ae515 100644
--- a/Source/Core/IO/Configuration.cs
+++ b/Source/Core/IO/Configuration.cs
@@ -621,8 +621,8 @@ namespace CodeImp.DoomBuilder.IO
 							// Is it a number?
 							if(NUMBERS.IndexOf(c.ToString(CultureInfo.InvariantCulture)) > -1)
 							{
-								int vv = 0;
-								char vc = '0';
+								int vv;
+								char vc;
 
 								// Convert the next 3 characters to a number
 								string v = data.Substring(pos, 3);
@@ -712,7 +712,7 @@ namespace CodeImp.DoomBuilder.IO
 					// Floating point?
 					if(val.IndexOf("f") > -1)
 					{
-						float fval = 0;
+						float fval;
 						
 						// Convert to float (remove the f first)
 						try { fval = Convert.ToSingle(val.Trim().Replace("f", ""), CultureInfo.InvariantCulture); }
@@ -1188,7 +1188,7 @@ namespace CodeImp.DoomBuilder.IO
 						//db.Append("="); db.Append(spacing); db.Append("null;"); db.Append(newline);
 						
 						// Output key only
-						db.Append(leveltabs); db.Append(de.Key.ToString()); db.Append(";"); db.Append(newline);
+						db.Append(leveltabs); db.Append(de.Key); db.Append(";"); db.Append(newline);
 					}
 					// Check if the value if of ConfigStruct type
 					else if(de.Value is IDictionary)
@@ -1208,13 +1208,13 @@ namespace CodeImp.DoomBuilder.IO
 						if((bool)de.Value)
 						{
 							// Output the keyword "true"
-							db.Append(leveltabs); db.Append(de.Key.ToString()); db.Append(spacing);
+							db.Append(leveltabs); db.Append(de.Key); db.Append(spacing);
 							db.Append("="); db.Append(spacing); db.Append("true;"); db.Append(newline);
 						}
 						else
 						{
 							// Output the keyword "false"
-							db.Append(leveltabs); db.Append(de.Key.ToString()); db.Append(spacing);
+							db.Append(leveltabs); db.Append(de.Key); db.Append(spacing);
 							db.Append("="); db.Append(spacing); db.Append("false;"); db.Append(newline);
 						}
 					}
diff --git a/Source/Core/IO/DoomColormapReader.cs b/Source/Core/IO/DoomColormapReader.cs
index 66409cd75a2fafefbeeb5ab26c137e26d1d3db00..727cc774d01beedd69461a2585cef259b1007f31 100644
--- a/Source/Core/IO/DoomColormapReader.cs
+++ b/Source/Core/IO/DoomColormapReader.cs
@@ -27,7 +27,7 @@ using System.Drawing.Imaging;
 
 namespace CodeImp.DoomBuilder.IO
 {
-	internal unsafe class DoomColormapReader : IImageReader
+	internal class DoomColormapReader : IImageReader
 	{
 		#region ================== Variables
 
@@ -82,7 +82,7 @@ namespace CodeImp.DoomBuilder.IO
 
 		// This creates a Bitmap from the given data
 		// Returns null on failure
-		public Bitmap ReadAsBitmap(Stream stream)
+		public unsafe Bitmap ReadAsBitmap(Stream stream)
 		{
 			BitmapData bitmapdata;
 			PixelColorBlock pixeldata;
@@ -167,9 +167,9 @@ namespace CodeImp.DoomBuilder.IO
 
 		// This creates pixel color data from the given data
 		// Returns null on failure
-		private PixelColorBlock ReadAsPixelData(Stream stream, out int width, out int height)
+		private unsafe PixelColorBlock ReadAsPixelData(Stream stream, out int width, out int height)
 		{
-			PixelColorBlock pixeldata = null;
+			PixelColorBlock pixeldata;
 			byte[] bytes;
 			
 			// Image will be 128x128
diff --git a/Source/Core/IO/DoomFlatReader.cs b/Source/Core/IO/DoomFlatReader.cs
index dd3d4b9fec1dc177729e6e67e076d44a665d235f..fda81b06a73df22b31da0976337ffc67a340076a 100644
--- a/Source/Core/IO/DoomFlatReader.cs
+++ b/Source/Core/IO/DoomFlatReader.cs
@@ -167,7 +167,7 @@ namespace CodeImp.DoomBuilder.IO
 		private PixelColorBlock ReadAsPixelData(Stream stream, out int width, out int height)
 		{
 			new BinaryReader(stream);
-			PixelColorBlock pixeldata = null;
+			PixelColorBlock pixeldata;
 			float sqrlength;
 			byte[] bytes;
 			
diff --git a/Source/Core/IO/DoomMapSetIO.cs b/Source/Core/IO/DoomMapSetIO.cs
index 9c5d9b5a4b78f703d7b6740b37623b269249fe72..82891cd78bba352c921b05a69a2b8296c8f147c9 100644
--- a/Source/Core/IO/DoomMapSetIO.cs
+++ b/Source/Core/IO/DoomMapSetIO.cs
@@ -193,7 +193,7 @@ namespace CodeImp.DoomBuilder.IO
 				y = reader.ReadInt16();
 
 				// Create new item
-				v = map.CreateVertex(new Vector2D((float)x, (float)y));
+				v = map.CreateVertex(new Vector2D(x, y));
 				
 				// Add it to the lookup table
 				link.Add(i, v);
diff --git a/Source/Core/IO/DoomPictureReader.cs b/Source/Core/IO/DoomPictureReader.cs
index 180dfe463e0b9760f0f60a1d787d1a01952227ad..e50a746723abc4058863d326be8bf110d88962cb 100644
--- a/Source/Core/IO/DoomPictureReader.cs
+++ b/Source/Core/IO/DoomPictureReader.cs
@@ -179,7 +179,7 @@ namespace CodeImp.DoomBuilder.IO
 		private PixelColorBlock ReadAsPixelData(Stream stream, out int width, out int height, out int offsetx, out int offsety)
 		{
 			BinaryReader reader = new BinaryReader(stream);
-			PixelColorBlock pixeldata = null;
+			PixelColorBlock pixeldata;
 			int y, read_y, count, p;
 			int[] columns;
 			int dataoffset;
diff --git a/Source/Core/IO/HexenMapSetIO.cs b/Source/Core/IO/HexenMapSetIO.cs
index 7196a35d9a161229812fe23b253cfb5d50651d7f..d50df7abbac637bf23aa8146dae7da57debcd52c 100644
--- a/Source/Core/IO/HexenMapSetIO.cs
+++ b/Source/Core/IO/HexenMapSetIO.cs
@@ -203,7 +203,7 @@ namespace CodeImp.DoomBuilder.IO
 				y = reader.ReadInt16();
 
 				// Create new item
-				v = map.CreateVertex(new Vector2D((float)x, (float)y));
+				v = map.CreateVertex(new Vector2D(x, y));
 				
 				// Add it to the lookup table
 				link.Add(i, v);
diff --git a/Source/Core/IO/Lump.cs b/Source/Core/IO/Lump.cs
index ec52fba103f97da5118a80b9074f7a78304fc9f8..dd1b676681c363317d46bb95dc0df7d3c399f9dd 100644
--- a/Source/Core/IO/Lump.cs
+++ b/Source/Core/IO/Lump.cs
@@ -49,7 +49,7 @@ namespace CodeImp.DoomBuilder.IO
 		private int length;
 
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
diff --git a/Source/Core/IO/UniversalMapSetIO.cs b/Source/Core/IO/UniversalMapSetIO.cs
index 476c765da98071e66e820850422e9d6f62dffbed..6142db7b66a2454819b0e968947691f4e5185e6a 100644
--- a/Source/Core/IO/UniversalMapSetIO.cs
+++ b/Source/Core/IO/UniversalMapSetIO.cs
@@ -21,7 +21,6 @@ using System.Collections.Generic;
 using System.Text;
 using System.IO;
 using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Config;
 using System.Collections;
 using CodeImp.DoomBuilder.Types;
 
diff --git a/Source/Core/IO/UniversalParser.cs b/Source/Core/IO/UniversalParser.cs
index d319b5449d73a66077aa2e02a59bca06895e5f0f..a7ee757c50e9a3f746de2680d94e00a4053b865d 100644
--- a/Source/Core/IO/UniversalParser.cs
+++ b/Source/Core/IO/UniversalParser.cs
@@ -57,15 +57,13 @@ namespace CodeImp.DoomBuilder.IO
 		#region ================== Variables
 		
 		// Error result
-		private int cpErrorResult = 0;
+		private int cpErrorResult;
 		private string cpErrorDescription = "";
-		private int cpErrorLine = 0;
+		private int cpErrorLine;
 		
 		// Configuration root
-		private UniversalCollection root = null;
+		private UniversalCollection root;
 
-		private const string numbers = "0123456789";
-		private const string numbers2 = "0123456789-.&";
 		private const string newline = "\n";
 		private char[] newlineChar = new[] {'\n'};
 		private StringBuilder key;  //mxd
@@ -343,7 +341,7 @@ namespace CodeImp.DoomBuilder.IO
 						pm = PM_STRING; //numbers
 					}
 					// Check for numeric character numbers
-					else if(numbers2.IndexOf(c) > -1)
+					else if(Configuration.NUMBERS2.IndexOf(c) > -1)
 					{
 						// Now parsing number
 						pm = PM_NUMBER;
@@ -393,38 +391,38 @@ namespace CodeImp.DoomBuilder.IO
 							try
 							{
 								// Convert to value
-								int ival = System.Convert.ToInt32(s.Substring(2).Trim(), 16);
+								int ival = Convert.ToInt32(s.Substring(2).Trim(), 16);
 
 								// Add it to struct
 								UniversalEntry entry = new UniversalEntry(key.ToString().Trim().ToLowerInvariant(), ival);
 								cs.Add(entry);
 								matches.Add(data[line], entry);
 							}
-							catch(System.OverflowException)
+							catch(OverflowException)
 							{
 								// Too large for Int32, try Int64
 								try
 								{
 									// Convert to value
-									long lval = System.Convert.ToInt64(s.Substring(2).Trim(), 16);
+									long lval = Convert.ToInt64(s.Substring(2).Trim(), 16);
 
 									// Add it to struct
 									UniversalEntry entry = new UniversalEntry(key.ToString().Trim().ToLowerInvariant(), lval);
 									cs.Add(entry);
 									matches.Add(data[line], entry);
 								}
-								catch(System.OverflowException)
+								catch(OverflowException)
 								{
 									// Too large for Int64, return error
 									RaiseError(line, ERROR_VALUETOOBIG);
 								}
-								catch(System.FormatException)
+								catch(FormatException)
 								{
 									// ERROR: Invalid value in assignment
 									RaiseError(line, ERROR_VALUEINVALID);
 								}
 							}
-							catch(System.FormatException)
+							catch(FormatException)
 							{
 								// ERROR: Invalid value in assignment
 								RaiseError(line, ERROR_VALUEINVALID);
@@ -436,8 +434,8 @@ namespace CodeImp.DoomBuilder.IO
 							float fval = 0;
 							
 							// Convert to float (remove the f first)
-							try { fval = System.Convert.ToSingle(s.Trim(), CultureInfo.InvariantCulture); }
-							catch(System.FormatException)
+							try { fval = Convert.ToSingle(s.Trim(), CultureInfo.InvariantCulture); }
+							catch(FormatException)
 							{ 
 								// ERROR: Invalid value in assignment
 								RaiseError(line, ERROR_VALUEINVALID);
@@ -454,14 +452,14 @@ namespace CodeImp.DoomBuilder.IO
 							try
 							{
 								// Convert to value
-								int ival = System.Convert.ToInt32(s.Trim(), CultureInfo.InvariantCulture);
+								int ival = Convert.ToInt32(s.Trim(), CultureInfo.InvariantCulture);
 								
 								// Add it to struct
 								UniversalEntry entry = new UniversalEntry(key.ToString().Trim().ToLowerInvariant(), ival);
 								cs.Add(entry);
 								matches.Add(data[line], entry);
 							}
-							catch(System.OverflowException)
+							catch(OverflowException)
 							{
 								// Too large for Int32, try Int64
 								try
@@ -474,7 +472,7 @@ namespace CodeImp.DoomBuilder.IO
 									cs.Add(entry);
 									matches.Add(data[line], entry);
 								}
-								catch(System.OverflowException)
+								catch(OverflowException)
 								{
 									// Too large for Int64, return error
 									RaiseError(line, ERROR_VALUETOOBIG);
@@ -485,7 +483,7 @@ namespace CodeImp.DoomBuilder.IO
 									RaiseError(line, ERROR_VALUEINVALID);
 								}
 							}
-							catch(System.FormatException)
+							catch(FormatException)
 							{ 
 								// ERROR: Invalid value in assignment
 								RaiseError(line, ERROR_VALUEINVALID);
@@ -528,23 +526,23 @@ namespace CodeImp.DoomBuilder.IO
 							case 't': val.Append('\t'); break;
 							default:
 								// Is it a number?
-								if(numbers.IndexOf(c) > -1)
+								if(Configuration.NUMBERS.IndexOf(c) > -1)
 								{
 									int vv = 0;
 									char vc = '0';
 									
 									// Convert the next 3 characters to a number
 									string v = data[line].Substring(pos, 3);
-									try { vv = System.Convert.ToInt32(v.Trim(), CultureInfo.InvariantCulture); }
-									catch(System.FormatException)
+									try { vv = Convert.ToInt32(v.Trim(), CultureInfo.InvariantCulture); }
+									catch(FormatException)
 									{ 
 										// ERROR: Invalid value in assignment
 										RaiseError(line, ERROR_VALUEINVALID);
 									}
 									
 									// Convert the number to a char
-									try { vc = System.Convert.ToChar(vv, CultureInfo.InvariantCulture); }
-									catch(System.FormatException)
+									try { vc = Convert.ToChar(vv, CultureInfo.InvariantCulture); }
+									catch(FormatException)
 									{ 
 										// ERROR: Invalid value in assignment
 										RaiseError(line, ERROR_VALUEINVALID);
diff --git a/Source/Core/IO/UnknownImageReader.cs b/Source/Core/IO/UnknownImageReader.cs
index 8992a659ead5962362479154f12c8f823a3a4cec..d979891bfb918937b9a69b2011edbbeb7d34840f 100644
--- a/Source/Core/IO/UnknownImageReader.cs
+++ b/Source/Core/IO/UnknownImageReader.cs
@@ -26,7 +26,7 @@ using System.Drawing.Imaging;
 
 namespace CodeImp.DoomBuilder.IO
 {
-	internal unsafe class UnknownImageReader : IImageReader
+	internal class UnknownImageReader : IImageReader
 	{
 		public uint ImageType { get; private set; } //mxd
 		
@@ -56,13 +56,13 @@ namespace CodeImp.DoomBuilder.IO
 		// This reads the image and returns a Bitmap
 		public Bitmap ReadAsBitmap(Stream stream)
 		{
-			return new Bitmap(CodeImp.DoomBuilder.Properties.Resources.Failed);
+			return new Bitmap(Properties.Resources.Failed);
 		}
 
 		// This reads the image and returns a Bitmap
 		public static Bitmap ReadAsBitmap()
 		{
-			return new Bitmap(CodeImp.DoomBuilder.Properties.Resources.Failed);
+			return new Bitmap(Properties.Resources.Failed);
 		}
 
 		// This draws the picture to the given pixel color data
diff --git a/Source/Core/IO/WAD.cs b/Source/Core/IO/WAD.cs
index 859f1fd9425e9b5f595a26622afb9b4ff2ac6751..6fef2141194a649d63b89d1ad97e96fdb52a2535 100644
--- a/Source/Core/IO/WAD.cs
+++ b/Source/Core/IO/WAD.cs
@@ -54,8 +54,8 @@ namespace CodeImp.DoomBuilder.IO
 		private List<Lump> lumps;
 		
 		// Status
-		private bool isreadonly = false;
-		private bool isdisposed = false;
+		private bool isreadonly;
+		private bool isdisposed;
 
 		#endregion
 
diff --git a/Source/Core/Map/BlockMap.cs b/Source/Core/Map/BlockMap.cs
index 010cb075acc0642fc5960cacb907a5e66168c5ac..4d1f1d4425a6b02d06040b8192fb8ab82ef6cae7 100644
--- a/Source/Core/Map/BlockMap.cs
+++ b/Source/Core/Map/BlockMap.cs
@@ -114,8 +114,8 @@ namespace CodeImp.DoomBuilder.Map
 		// This returns the block center in world coordinates
 		protected Vector2D GetBlockCenter(Point p)
 		{
-			return new Vector2D((float)((p.X << blocksizeshift) + (blocksize >> 1)) + range.Left,
-								(float)((p.Y << blocksizeshift) + (blocksize >> 1)) + range.Top);
+			return new Vector2D(((p.X << blocksizeshift) + (blocksize >> 1)) + range.Left,
+								((p.Y << blocksizeshift) + (blocksize >> 1)) + range.Top);
 		}
 		
 		// This returns true when the given block is inside range
diff --git a/Source/Core/Map/Linedef.cs b/Source/Core/Map/Linedef.cs
index ae83af318aa433818fda0b841c01a313299f41b4..9f25434f740d2b86994fb26472a039ee13d91ce5 100644
--- a/Source/Core/Map/Linedef.cs
+++ b/Source/Core/Map/Linedef.cs
@@ -398,7 +398,7 @@ namespace CodeImp.DoomBuilder.Map
 		{
 			// First make a single integer with all bits from activation and flags
 			int bits = activate;
-			int flagbit = 0;
+			int flagbit;
 			foreach(KeyValuePair<string, bool> f in flags)
 				if(int.TryParse(f.Key, out flagbit) && f.Value) bits |= flagbit;
 			
@@ -444,7 +444,7 @@ namespace CodeImp.DoomBuilder.Map
 			foreach(KeyValuePair<string, string> f in General.Map.Config.LinedefFlags)
 			{
 				// Flag must be numeric
-				int flagbit = 0;
+				int flagbit;
 				if(int.TryParse(f.Key, out flagbit))
 				{
 					foreach(FlagTranslation ft in General.Map.Config.LinedefFlagsTranslation)
diff --git a/Source/Core/Map/MapElement.cs b/Source/Core/Map/MapElement.cs
index 4c4b476b12658ffecce2fe7ed0f6ada95aa3ef3e..f4544aaeac7f5c30511809205212859719ddc6e0 100644
--- a/Source/Core/Map/MapElement.cs
+++ b/Source/Core/Map/MapElement.cs
@@ -42,7 +42,7 @@ namespace CodeImp.DoomBuilder.Map
 		protected bool marked;
 		
 		// Disposing
-		protected bool isdisposed = false;
+		protected bool isdisposed;
 		
 		#endregion
 		
diff --git a/Source/Core/Map/Thing.cs b/Source/Core/Map/Thing.cs
index e5bde6920b0a1ade0e5aa1e459e588371a362914..4193ebb1b7be31ece07b81b496a2a56854c00280 100644
--- a/Source/Core/Map/Thing.cs
+++ b/Source/Core/Map/Thing.cs
@@ -43,7 +43,7 @@ namespace CodeImp.DoomBuilder.Map
 		private MapSet map;
 
 		// Sector
-		private Sector sector = null;
+		private Sector sector;
 
 		// List items
 		private LinkedListNode<Thing> selecteditem;
@@ -256,7 +256,7 @@ namespace CodeImp.DoomBuilder.Map
 		{
 			// First make a single integer with all flags
 			int bits = 0;
-			int flagbit = 0;
+			int flagbit;
 			foreach(KeyValuePair<string, bool> f in flags)
 				if(int.TryParse(f.Key, out flagbit) && f.Value) bits |= flagbit;
 
@@ -292,7 +292,7 @@ namespace CodeImp.DoomBuilder.Map
 			foreach(KeyValuePair<string, string> f in General.Map.Config.ThingFlags)
 			{
 				// Flag must be numeric
-				int flagbit = 0;
+				int flagbit;
 				if(int.TryParse(f.Key, out flagbit))
 				{
 					foreach(FlagTranslation ft in General.Map.Config.ThingFlagsTranslation)
@@ -496,7 +496,7 @@ namespace CodeImp.DoomBuilder.Map
 		public void SnapToGrid()
 		{
 			// Calculate nearest grid coordinates
-			this.Move(General.Map.Grid.SnappedToGrid((Vector2D)pos));
+			this.Move(General.Map.Grid.SnappedToGrid(pos));
 		}
 
 		// This snaps the vertex to the map format accuracy
diff --git a/Source/Core/Plugins/Plug.cs b/Source/Core/Plugins/Plug.cs
index 62dd13fb7acab4b8f8296407dd80732aa0ed605c..cb1231cf842a6543a0b9b009fd8159ade328fc48 100644
--- a/Source/Core/Plugins/Plug.cs
+++ b/Source/Core/Plugins/Plug.cs
@@ -31,7 +31,7 @@ namespace CodeImp.DoomBuilder.Plugins
 		private Plugin plugin;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		//mxd. It's nice to have these avaliable to plugins...
 		public static Point DisplayLocationAbs {
@@ -288,12 +288,12 @@ namespace CodeImp.DoomBuilder.Plugins
 		/// <summary>
 		/// Called when an Action begins.
 		/// </summary>
-		public virtual void OnActionBegin(CodeImp.DoomBuilder.Actions.Action action) { }
+		public virtual void OnActionBegin(Actions.Action action) { }
 
 		/// <summary>
 		/// Called when an Action ends.
 		/// </summary>
-		public virtual void OnActionEnd(CodeImp.DoomBuilder.Actions.Action action) { }
+		public virtual void OnActionEnd(Actions.Action action) { }
 
 		/// <summary>
 		/// Called when an Editing Mode engages
diff --git a/Source/Core/Plugins/Plugin.cs b/Source/Core/Plugins/Plugin.cs
index 3e55123740e4ade51c99fa3114c85000cd06239a..61d04947e5b49a0acf0768ff8e0560eb249a16cd 100644
--- a/Source/Core/Plugins/Plugin.cs
+++ b/Source/Core/Plugins/Plugin.cs
@@ -44,7 +44,7 @@ namespace CodeImp.DoomBuilder.Plugins
 		private string name;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
diff --git a/Source/Core/Plugins/PluginManager.cs b/Source/Core/Plugins/PluginManager.cs
index a146db48ef6c0357ad71c3165cd862e4aefe6c45..440507b8a1131f2088c70e40b500acf5564cdc87 100644
--- a/Source/Core/Plugins/PluginManager.cs
+++ b/Source/Core/Plugins/PluginManager.cs
@@ -47,7 +47,7 @@ namespace CodeImp.DoomBuilder.Plugins
 		private List<Plugin> plugins;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
@@ -286,8 +286,8 @@ namespace CodeImp.DoomBuilder.Plugins
 		public void OnSectorFloorSurfaceUpdate(Sector s, ref FlatVertex[] vertices) { foreach(Plugin p in plugins) p.Plug.OnSectorFloorSurfaceUpdate(s, ref vertices); }
 		public void OnShowPreferences(PreferencesController controller) { foreach(Plugin p in plugins) p.Plug.OnShowPreferences(controller); }
 		public void OnClosePreferences(PreferencesController controller) { foreach(Plugin p in plugins) p.Plug.OnClosePreferences(controller); }
-		public void OnActionBegin(CodeImp.DoomBuilder.Actions.Action action) { foreach(Plugin p in plugins) p.Plug.OnActionBegin(action); }
-		public void OnActionEnd(CodeImp.DoomBuilder.Actions.Action action) { foreach(Plugin p in plugins) p.Plug.OnActionEnd(action); }
+		public void OnActionBegin(Actions.Action action) { foreach(Plugin p in plugins) p.Plug.OnActionBegin(action); }
+		public void OnActionEnd(Actions.Action action) { foreach(Plugin p in plugins) p.Plug.OnActionEnd(action); }
 		public void OnEditEngage(EditMode oldmode, EditMode newmode) { foreach(Plugin p in plugins) p.Plug.OnEditEngage(oldmode, newmode); }
 		public void OnEditDisengage(EditMode oldmode, EditMode newmode) { foreach(Plugin p in plugins) p.Plug.OnEditDisengage(oldmode, newmode); }
 		public void OnEditCancel() { foreach(Plugin p in plugins) p.Plug.OnEditCancel(); }
diff --git a/Source/Core/Rendering/D3DDevice.cs b/Source/Core/Rendering/D3DDevice.cs
index 07038c98f337be68b6e4a2e229744f6b6e46b172..e469e3ca8de8a5f9d8acac8b6095ab1d5fc20ea0 100644
--- a/Source/Core/Rendering/D3DDevice.cs
+++ b/Source/Core/Rendering/D3DDevice.cs
@@ -21,7 +21,6 @@ using System.Collections.Generic;
 using System.Windows.Forms;
 using System.Drawing;
 using SlimDX.Direct3D9;
-using System.ComponentModel;
 using CodeImp.DoomBuilder.Geometry;
 using SlimDX;
 using CodeImp.DoomBuilder.Data;
@@ -61,7 +60,7 @@ namespace CodeImp.DoomBuilder.Rendering
 		private ResourceImage fonttexture;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
diff --git a/Source/Core/Rendering/D3DShader.cs b/Source/Core/Rendering/D3DShader.cs
index 2c8e54552380a873c7b62050fff7688b9601371e..2d21e52369cf25567e1fe3847296ef1d26a7c239 100644
--- a/Source/Core/Rendering/D3DShader.cs
+++ b/Source/Core/Rendering/D3DShader.cs
@@ -42,7 +42,7 @@ namespace CodeImp.DoomBuilder.Rendering
 		protected VertexDeclaration vertexdecl;
 		
 		// Disposing
-		protected bool isdisposed = false;
+		protected bool isdisposed;
 
 		#endregion
 
diff --git a/Source/Core/Rendering/PixelColor.cs b/Source/Core/Rendering/PixelColor.cs
index 93fcdff0620b19e647680190499aab663cd728cb..b3f0cf8b5da803bc00fc70f808fd9fa53a025b92 100644
--- a/Source/Core/Rendering/PixelColor.cs
+++ b/Source/Core/Rendering/PixelColor.cs
@@ -112,26 +112,25 @@ namespace CodeImp.DoomBuilder.Rendering
 		//To ColorRef (alpha-less). mxd. Changed function name to more descriptive one...
 		public int ToInversedColorRef()
 		{
-			return ((int)r + ((int)b << 16) + ((int)g << 8));
-			//return (((int)r << 16) + ((int)g << 8) + (int)b);
+			return (r + (b << 16) + (g << 8));
 		}
 		
 		// To ColorValue
 		public Color4 ToColorValue()
 		{
-			return new Color4((float)a * BYTE_TO_FLOAT,
-							  (float)r * BYTE_TO_FLOAT,
-							  (float)g * BYTE_TO_FLOAT,
-							  (float)b * BYTE_TO_FLOAT);
+			return new Color4(a * BYTE_TO_FLOAT,
+							  r * BYTE_TO_FLOAT,
+							  g * BYTE_TO_FLOAT,
+							  b * BYTE_TO_FLOAT);
 		}
 
 		// To ColorValue
 		public Color4 ToColorValue(float withalpha)
 		{
 			return new Color4(withalpha,
-							  (float)r * BYTE_TO_FLOAT,
-							  (float)g * BYTE_TO_FLOAT,
-							  (float)b * BYTE_TO_FLOAT);
+							  r * BYTE_TO_FLOAT,
+							  g * BYTE_TO_FLOAT,
+							  b * BYTE_TO_FLOAT);
 		}
 		
 		// This returns a new PixelColor with adjusted alpha
@@ -146,11 +145,11 @@ namespace CodeImp.DoomBuilder.Rendering
 			PixelColor c = new PixelColor();
 			float ba;
 			
-			ba = (float)a.a * BYTE_TO_FLOAT;
-			c.r = (byte)((float)a.r * (1f - ba) + (float)b.r * ba);
-			c.g = (byte)((float)a.g * (1f - ba) + (float)b.g * ba);
-			c.b = (byte)((float)a.b * (1f - ba) + (float)b.b * ba);
-			c.a = (byte)((float)a.a * (1f - ba) + ba);
+			ba = a.a * BYTE_TO_FLOAT;
+			c.r = (byte)(a.r * (1f - ba) + b.r * ba);
+			c.g = (byte)(a.g * (1f - ba) + b.g * ba);
+			c.b = (byte)(a.b * (1f - ba) + b.b * ba);
+			c.a = (byte)(a.a * (1f - ba) + ba);
 			
 			return c;
 		}
@@ -158,14 +157,14 @@ namespace CodeImp.DoomBuilder.Rendering
 		// This modulates two colors
 		public static PixelColor Modulate(PixelColor a, PixelColor b)
 		{
-			float aa = (float)a.a * BYTE_TO_FLOAT;
-			float ar = (float)a.r * BYTE_TO_FLOAT;
-			float ag = (float)a.g * BYTE_TO_FLOAT;
-			float ab = (float)a.b * BYTE_TO_FLOAT;
-			float ba = (float)b.a * BYTE_TO_FLOAT;
-			float br = (float)b.r * BYTE_TO_FLOAT;
-			float bg = (float)b.g * BYTE_TO_FLOAT;
-			float bb = (float)b.b * BYTE_TO_FLOAT;
+			float aa = a.a * BYTE_TO_FLOAT;
+			float ar = a.r * BYTE_TO_FLOAT;
+			float ag = a.g * BYTE_TO_FLOAT;
+			float ab = a.b * BYTE_TO_FLOAT;
+			float ba = b.a * BYTE_TO_FLOAT;
+			float br = b.r * BYTE_TO_FLOAT;
+			float bg = b.g * BYTE_TO_FLOAT;
+			float bb = b.b * BYTE_TO_FLOAT;
 			PixelColor c = new PixelColor();
 			c.a = (byte)((aa * ba) * 255.0f);
 			c.r = (byte)((ar * br) * 255.0f);
diff --git a/Source/Core/Rendering/PixelColorBlock.cs b/Source/Core/Rendering/PixelColorBlock.cs
index 965b80b216206240f3846c9c7338b37e7e52a050..8d35e38c34b20bcc82b50cb91e4978d4d78c3ea2 100644
--- a/Source/Core/Rendering/PixelColorBlock.cs
+++ b/Source/Core/Rendering/PixelColorBlock.cs
@@ -77,7 +77,7 @@ namespace CodeImp.DoomBuilder.Rendering
 		// This clears the memory black
 		public void Clear()
 		{
-			if(memorysize > 0) General.ZeroMemory(new IntPtr(memory), (int)memorysize);
+			if(memorysize > 0) General.ZeroMemory(new IntPtr(memory), memorysize);
 		}
 
 		#endregion
diff --git a/Source/Core/Rendering/Plotter.cs b/Source/Core/Rendering/Plotter.cs
index d133687d627c68788f8f212ebb54a06f657ebdef..084dcad18ed9c0e593e7ec0432321a40de05d346 100644
--- a/Source/Core/Rendering/Plotter.cs
+++ b/Source/Core/Rendering/Plotter.cs
@@ -201,11 +201,11 @@ namespace CodeImp.DoomBuilder.Rendering
 				else
 				{
 					// Blend with pixel
-					a = (float)c.a * 0.003921568627450980392156862745098f;
-					if((int)p->a + (int)c.a > 255) p->a = 255; else p->a += c.a;
-					p->r = (byte)((float)p->r * (1f - a) + (float)c.r * a);
-					p->g = (byte)((float)p->g * (1f - a) + (float)c.g * a);
-					p->b = (byte)((float)p->b * (1f - a) + (float)c.b * a);
+					a = c.a * 0.003921568627450980392156862745098f;
+					if(p->a + c.a > 255) p->a = 255; else p->a += c.a;
+					p->r = (byte)(p->r * (1f - a) + c.r * a);
+					p->g = (byte)(p->g * (1f - a) + c.g * a);
+					p->b = (byte)(p->b * (1f - a) + c.b * a);
 				}
 			}
 		}
diff --git a/Source/Core/Rendering/Renderer.cs b/Source/Core/Rendering/Renderer.cs
index cdb382a5a1877fe76f7247827369c6125eeac32f..10606707a31022dbbc88eb3eb906e146517d1049 100644
--- a/Source/Core/Rendering/Renderer.cs
+++ b/Source/Core/Rendering/Renderer.cs
@@ -91,7 +91,7 @@ namespace CodeImp.DoomBuilder.Rendering
 
 			// Simulat doom light levels
 			if((level < 192) && General.Map.Config.DoomLightLevels)
-				flevel = (192.0f - (float)(192 - level) * 1.5f);
+				flevel = (192.0f - (192 - level) * 1.5f);
 			
 			byte blevel = (byte)General.Clamp((int)flevel, 0, 255);
 			PixelColor c = new PixelColor(255, blevel, blevel, blevel);
diff --git a/Source/Core/Rendering/Renderer2D.cs b/Source/Core/Rendering/Renderer2D.cs
index 2dfa88b6ace0cc61b981de2f72473ab0c62eb6d4..bd85743479bb95b0663a33175727b7d57e3ff3d2 100644
--- a/Source/Core/Rendering/Renderer2D.cs
+++ b/Source/Core/Rendering/Renderer2D.cs
@@ -1425,10 +1425,10 @@ namespace CodeImp.DoomBuilder.Rendering
 		// The geometry must be a triangle list
 		public void RenderGeometry(FlatVertex[] vertices, ImageData texture, bool transformcoords)
 		{
-			Texture t = null;
-
 			if(vertices.Length > 0)
 			{
+				Texture t;
+				
 				if(texture != null)
 				{
 					// Make sure the texture is loaded
@@ -1456,7 +1456,7 @@ namespace CodeImp.DoomBuilder.Rendering
 				// Draw
 				graphics.Shaders.Display2D.Begin();
 				graphics.Shaders.Display2D.BeginPass(1);
-				graphics.Device.DrawUserPrimitives<FlatVertex>(PrimitiveType.TriangleList, 0, vertices.Length / 3, vertices);
+				graphics.Device.DrawUserPrimitives(PrimitiveType.TriangleList, 0, vertices.Length / 3, vertices);
 				graphics.Shaders.Display2D.EndPass();
 				graphics.Shaders.Display2D.End();
 			}
diff --git a/Source/Core/Rendering/Renderer3D.cs b/Source/Core/Rendering/Renderer3D.cs
index 4ccb286503249501599bc6d4634632fa388e1138..16f16e286e3cadd9af2cf6d1c3c3c73b33f60086 100644
--- a/Source/Core/Rendering/Renderer3D.cs
+++ b/Source/Core/Rendering/Renderer3D.cs
@@ -132,7 +132,7 @@ namespace CodeImp.DoomBuilder.Rendering
 			
 			// Dummy frustum
 			frustum = new ProjectedFrustum2D(new Vector2D(), 0.0f, 0.0f, PROJ_NEAR_PLANE,
-				General.Settings.ViewDistance, Angle2D.DegToRad((float)General.Settings.VisualFOV));
+				General.Settings.ViewDistance, Angle2D.DegToRad(General.Settings.VisualFOV));
 
 			// We have no destructor
 			GC.SuppressFinalize(this);
@@ -205,9 +205,9 @@ namespace CodeImp.DoomBuilder.Rendering
 		private void CreateCrosshairVerts(Size texturesize)
 		{
 			// Determine coordinates
-			float width = (float)windowsize.Width;
-			float height = (float)windowsize.Height;
-			float size = (float)height * CROSSHAIR_SCALE;
+			float width = windowsize.Width;
+			float height = windowsize.Height;
+			float size = height * CROSSHAIR_SCALE;
 			RectangleF rect = new RectangleF((width - size) / 2, (height - size) / 2, size, size);
 			
 			// Make vertices
@@ -269,14 +269,14 @@ namespace CodeImp.DoomBuilder.Rendering
 		{
 			// Calculate aspect
 			float aspect = (float)General.Map.Graphics.RenderTarget.ClientSize.Width /
-						   (float)General.Map.Graphics.RenderTarget.ClientSize.Height;
+						   General.Map.Graphics.RenderTarget.ClientSize.Height;
 			
 			// The DirectX PerspectiveFovRH matrix method calculates the scaling in X and Y as follows:
 			// yscale = 1 / tan(fovY / 2)
 			// xscale = yscale / aspect
 			// The fov specified in the method is the FOV over Y, but we want the user to specify the FOV
 			// over X, so calculate what it would be over Y first;
-			float fov = Angle2D.DegToRad((float)General.Settings.VisualFOV);
+			float fov = Angle2D.DegToRad(General.Settings.VisualFOV);
 			float reversefov = 1.0f / (float)Math.Tan(fov / 2.0f);
 			float reversefovy = reversefov * aspect;
 			float fovy = (float)Math.Atan(1.0f / reversefovy) * 2.0f;
@@ -291,14 +291,11 @@ namespace CodeImp.DoomBuilder.Rendering
 		// This creates matrices for a camera view
 		public void PositionAndLookAt(Vector3D pos, Vector3D lookat)
 		{
-			Vector3D delta;
-			float anglexy, anglez;
-			
 			// Calculate delta vector
 			cameraposition = pos;
-			delta = lookat - pos;
-			anglexy = delta.GetAngleXY();
-			anglez = delta.GetAngleZ();
+			Vector3D delta = lookat - pos;
+			float anglexy = delta.GetAngleXY();
+			float anglez = delta.GetAngleZ();
 
 			// Create frustum
 			frustum = new ProjectedFrustum2D(pos, anglexy, anglez, PROJ_NEAR_PLANE,
@@ -315,7 +312,7 @@ namespace CodeImp.DoomBuilder.Rendering
 		private void CreateMatrices2D()
 		{
 			windowsize = graphics.RenderTarget.ClientSize;
-			Matrix scaling = Matrix.Scaling((1f / (float)windowsize.Width) * 2f, (1f / (float)windowsize.Height) * -2f, 1f);
+			Matrix scaling = Matrix.Scaling((1f / windowsize.Width) * 2f, (1f / windowsize.Height) * -2f, 1f);
 			Matrix translate = Matrix.Translation(-(float)windowsize.Width * 0.5f, -(float)windowsize.Height * 0.5f, 0f);
 			view2d = Matrix.Multiply(translate, scaling);
 		}
@@ -582,7 +579,7 @@ namespace CodeImp.DoomBuilder.Rendering
 				ApplyMatrices3D();
 
 				// Setup color
-				Color4 thingColor = new Color4();
+				Color4 thingColor;
 				if (t.Selected && showselection) {
 					thingColor = General.Colors.Selection3D.ToColorValue();
 				} else {
@@ -644,7 +641,7 @@ namespace CodeImp.DoomBuilder.Rendering
 				ApplyMatrices3D();
 
 				// Setup color
-				Color4 color = new Color4();
+				Color4 color;
 				if(v.Selected && showselection) {
 					color = General.Colors.Selection3D.ToColorValue();
 				} else {
diff --git a/Source/Core/Rendering/ShaderManager.cs b/Source/Core/Rendering/ShaderManager.cs
index 8c208bab6e7df7e4ee852caab682b395435b95b9..243715413a279dcf8030dbeaa688472917da8888 100644
--- a/Source/Core/Rendering/ShaderManager.cs
+++ b/Source/Core/Rendering/ShaderManager.cs
@@ -44,7 +44,7 @@ namespace CodeImp.DoomBuilder.Rendering
 		private D3DDevice device;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
diff --git a/Source/Core/Rendering/SurfaceEntryCollection.cs b/Source/Core/Rendering/SurfaceEntryCollection.cs
index 8bedee69fd21d63fe07cbc76871479926fd05b82..04ad72b0bf6ffb0dfbe643e29af252a3563c4c11 100644
--- a/Source/Core/Rendering/SurfaceEntryCollection.cs
+++ b/Source/Core/Rendering/SurfaceEntryCollection.cs
@@ -26,6 +26,6 @@ namespace CodeImp.DoomBuilder.Rendering
 	// of sector vertices, the surface manager will take care of splitting it up in several SurfaceEntries.
 	internal class SurfaceEntryCollection : List<SurfaceEntry>
 	{
-		public int totalvertices = 0;
+		public int totalvertices;
 	}
 }
diff --git a/Source/Core/Rendering/TextFont.cs b/Source/Core/Rendering/TextFont.cs
index 039496eb9848ea37127d3fd1eb16b1520d94d78f..503e3ab5ecec8fe6c52c4993db233ffeb3f9a12a 100644
--- a/Source/Core/Rendering/TextFont.cs
+++ b/Source/Core/Rendering/TextFont.cs
@@ -63,7 +63,7 @@ namespace CodeImp.DoomBuilder.Rendering
 		private FontCharacter[] characters;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
@@ -122,8 +122,8 @@ namespace CodeImp.DoomBuilder.Rendering
 
 				// This is ancient code of mine.
 				// The charater sizes were based on 800x600 resolution.
-				characters[i].width = (float)(int)chr["width"] / 40f;
-				characters[i].height = (float)(int)chr["height"] / 30f;
+				characters[i].width = (int)chr["width"] / 40f;
+				characters[i].height = (int)chr["height"] / 30f;
 				characters[i].u1 = (float)chr["u1"];
 				characters[i].v1 = (float)chr["v1"];
 				characters[i].u2 = (float)chr["u2"];
diff --git a/Source/Core/Rendering/TextLabel.cs b/Source/Core/Rendering/TextLabel.cs
index fc5a2310e98e364e3119fc1cb885a07dd2b0a13f..ae357f5201ed1e61f7591ad38c6d41d6c40d09ed 100644
--- a/Source/Core/Rendering/TextLabel.cs
+++ b/Source/Core/Rendering/TextLabel.cs
@@ -59,7 +59,7 @@ namespace CodeImp.DoomBuilder.Rendering
 		private float lastscaley;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
diff --git a/Source/Core/Types/AngleDegreesFloatHandler.cs b/Source/Core/Types/AngleDegreesFloatHandler.cs
index 89ef7b4adcac92b93687974a9cb3b74869a1e59a..849320966d6eaa528f0538bccfb160404bb0a09f 100644
--- a/Source/Core/Types/AngleDegreesFloatHandler.cs
+++ b/Source/Core/Types/AngleDegreesFloatHandler.cs
@@ -57,13 +57,11 @@ namespace CodeImp.DoomBuilder.Types
 		{
 			int oldvalue = (int)Math.Round(value);
 			int newvalue = AngleForm.ShowDialog(parent, oldvalue);
-			if(newvalue != oldvalue) value = (float)newvalue;
+			if(newvalue != oldvalue) value = newvalue;
 		}
 		
 		public override void SetValue(object value)
 		{
-			float result;
-			
 			// Null?
 			if(value == null)
 			{
@@ -75,9 +73,9 @@ namespace CodeImp.DoomBuilder.Types
 				// Set directly
 				this.value = Convert.ToSingle(value);
 			}
-			else
-			{
+			else {
 				// Try parsing as string
+				float result;
 				if(float.TryParse(value.ToString(), NumberStyles.Float, CultureInfo.CurrentCulture, out result))
 				{
 					this.value = result;
diff --git a/Source/Core/Types/NullHandler.cs b/Source/Core/Types/NullHandler.cs
index e1f6726c3c04c384a179941d07e017286ed14670..b43d3d34481268fe9952b5e82ca61ee71d857712 100644
--- a/Source/Core/Types/NullHandler.cs
+++ b/Source/Core/Types/NullHandler.cs
@@ -28,7 +28,7 @@ namespace CodeImp.DoomBuilder.Types
 
 		#region ================== Variables
 
-		private object value = (int)0;
+		private object value = 0;
 
 		#endregion
 
@@ -43,7 +43,7 @@ namespace CodeImp.DoomBuilder.Types
 			if(value != null)
 				this.value = value;
 			else
-				this.value = (int)0;
+				this.value = 0;
 		}
 
 		public override object GetValue()
@@ -55,7 +55,7 @@ namespace CodeImp.DoomBuilder.Types
 		{
 			int result;
 			if(int.TryParse(this.value.ToString(), out result)) return result;
-				else return 0;
+			return 0;
 		}
 		
 		public override string GetStringValue()
diff --git a/Source/Core/Types/TypesManager.cs b/Source/Core/Types/TypesManager.cs
index 26aa90b696587b988037b68a4c87c1db8b5f35db..5c9945782c24acb425f23556699c4b65801965bd 100644
--- a/Source/Core/Types/TypesManager.cs
+++ b/Source/Core/Types/TypesManager.cs
@@ -36,7 +36,7 @@ namespace CodeImp.DoomBuilder.Types
 		private Dictionary<int, TypeHandlerAttribute> handlertypes;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
diff --git a/Source/Core/VisualModes/VisualBlockMap.cs b/Source/Core/VisualModes/VisualBlockMap.cs
index 432ca9069da58552bc43321fb5e37aa3455773d4..edabf57fa8450adddb7d311f4c715c29d6d5f578 100644
--- a/Source/Core/VisualModes/VisualBlockMap.cs
+++ b/Source/Core/VisualModes/VisualBlockMap.cs
@@ -89,15 +89,15 @@ namespace CodeImp.DoomBuilder.VisualModes
 		// This returns the block center in world coordinates
 		public Vector2D GetBlockCenter(Point p)
 		{
-			return new Vector2D((float)((p.X << BLOCK_SIZE_SHIFT) + (BLOCK_SIZE >> 1)),
-								(float)((p.Y << BLOCK_SIZE_SHIFT) + (BLOCK_SIZE >> 1)));
+			return new Vector2D((p.X << BLOCK_SIZE_SHIFT) + (BLOCK_SIZE >> 1),
+								(p.Y << BLOCK_SIZE_SHIFT) + (BLOCK_SIZE >> 1));
 		}
 
 		// This returns the key for a block at the given coordinates
 		// TODO: Could we just use the Point struct as key?
 		private ulong GetBlockKey(Point p)
 		{
-			return unchecked( ((ulong)(uint)p.X << 32) + (ulong)(uint)p.Y );
+			return unchecked( ((ulong)(uint)p.X << 32) + (uint)p.Y );
 		}
 		
 		// This returns the block with the given coordinates
diff --git a/Source/Core/VisualModes/VisualMode.cs b/Source/Core/VisualModes/VisualMode.cs
index be4674fb370904c71702a7f9fd2596e4fdab0ee7..9d1836c115f8276b93f404842b92dc0dc37e1238 100644
--- a/Source/Core/VisualModes/VisualMode.cs
+++ b/Source/Core/VisualModes/VisualMode.cs
@@ -451,18 +451,17 @@ namespace CodeImp.DoomBuilder.VisualModes
 			if (target.picked == null) return new Vector2D(float.NaN, float.NaN);
 
 			//now find where exactly did we hit
-			Vector2D hitCoords = new Vector2D();
 			if (target.picked is VisualGeometry) {
 				VisualGeometry vg = target.picked as VisualGeometry;
-				hitCoords = getIntersection(start, start + delta, new Vector3D(vg.BoundingBox[0].X, vg.BoundingBox[0].Y, vg.BoundingBox[0].Z), new Vector3D(vg.Vertices[0].nx, vg.Vertices[0].ny, vg.Vertices[0].nz));
-			} else if (target.picked is VisualThing) {
+				return getIntersection(start, start + delta, new Vector3D(vg.BoundingBox[0].X, vg.BoundingBox[0].Y, vg.BoundingBox[0].Z), new Vector3D(vg.Vertices[0].nx, vg.Vertices[0].ny, vg.Vertices[0].nz));
+			} 
+			
+			if (target.picked is VisualThing) {
 				VisualThing vt = target.picked as VisualThing;
-				hitCoords = getIntersection(start, start + delta, new Vector3D(vt.BoundingBox[0].X, vt.BoundingBox[0].Y, vt.BoundingBox[0].Z), D3DDevice.V3D(vt.Center - vt.PositionV3));
-			} else {
-				return new Vector2D(float.NaN, float.NaN);
-			}
+				return getIntersection(start, start + delta, new Vector3D(vt.BoundingBox[0].X, vt.BoundingBox[0].Y, vt.BoundingBox[0].Z), D3DDevice.V3D(vt.Center - vt.PositionV3));
+			} 
 
-			return hitCoords;
+			return new Vector2D(float.NaN, float.NaN);
 		}
 
 		//mxd. This checks intersection between line and plane 
@@ -1082,12 +1081,12 @@ namespace CodeImp.DoomBuilder.VisualModes
 
 			// Move the camera
 			if(General.Interface.ShiftState) multiplier = MOVE_SPEED_MULTIPLIER * 2.0f; else multiplier = MOVE_SPEED_MULTIPLIER;
-			if(keyforward) camdeltapos += camvec * cammovemul * (float)General.Settings.MoveSpeed * multiplier * deltatime;
-			if(keybackward) camdeltapos -= camvec * cammovemul * (float)General.Settings.MoveSpeed * multiplier * deltatime;
-			if(keyleft) camdeltapos -= camvecstrafe * cammovemul * (float)General.Settings.MoveSpeed * multiplier * deltatime;
-			if(keyright) camdeltapos += camvecstrafe * cammovemul * (float)General.Settings.MoveSpeed * multiplier * deltatime;
-			if(keyup) camdeltapos += upvec * cammovemul * (float)General.Settings.MoveSpeed * multiplier * deltatime;
-			if(keydown) camdeltapos += -upvec * cammovemul * (float)General.Settings.MoveSpeed * multiplier * deltatime;
+			if(keyforward) camdeltapos += camvec * cammovemul * General.Settings.MoveSpeed * multiplier * deltatime;
+			if(keybackward) camdeltapos -= camvec * cammovemul * General.Settings.MoveSpeed * multiplier * deltatime;
+			if(keyleft) camdeltapos -= camvecstrafe * cammovemul * General.Settings.MoveSpeed * multiplier * deltatime;
+			if(keyright) camdeltapos += camvecstrafe * cammovemul * General.Settings.MoveSpeed * multiplier * deltatime;
+			if(keyup) camdeltapos += upvec * cammovemul * General.Settings.MoveSpeed * multiplier * deltatime;
+			if(keydown) camdeltapos += -upvec * cammovemul * General.Settings.MoveSpeed * multiplier * deltatime;
 			
 			// Move the camera
 			General.Map.VisualCamera.ProcessMovement(camdeltapos);
@@ -1099,7 +1098,7 @@ namespace CodeImp.DoomBuilder.VisualModes
 			DoCulling();
 			
 			// Update labels in main window
-			General.MainWindow.UpdateCoordinates((Vector2D)General.Map.VisualCamera.Position);
+			General.MainWindow.UpdateCoordinates(General.Map.VisualCamera.Position);
 			
 			// Now redraw
 			General.Interface.RedrawDisplay();
diff --git a/Source/Core/VisualModes/VisualSector.cs b/Source/Core/VisualModes/VisualSector.cs
index d370da6b5f42b913429c954ec9e405b39820521f..d83430518811c7981846aa0bebec2a181202a7cb 100644
--- a/Source/Core/VisualModes/VisualSector.cs
+++ b/Source/Core/VisualModes/VisualSector.cs
@@ -45,7 +45,7 @@ namespace CodeImp.DoomBuilder.VisualModes
 		private Sector sector;
 		
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		#endregion
 
diff --git a/Source/Core/VisualModes/VisualThing.cs b/Source/Core/VisualModes/VisualThing.cs
index bcf9fa2e14216859d64a79af6113740799807a7f..7575d6f88b1c06f838fb80f351fd1c9381ae450f 100644
--- a/Source/Core/VisualModes/VisualThing.cs
+++ b/Source/Core/VisualModes/VisualThing.cs
@@ -67,7 +67,7 @@ namespace CodeImp.DoomBuilder.VisualModes
 		protected bool selected;
 
 		// Disposing
-		private bool isdisposed = false;
+		private bool isdisposed;
 
 		//mxd
 		private int cameraDistance3D;
diff --git a/Source/Core/Windows/BitFlagsForm.cs b/Source/Core/Windows/BitFlagsForm.cs
index db24cd74c2739d556077452bb346f68c6e396d9e..bacdf288e27c4007865e2c213b153401f78ab3f8 100644
--- a/Source/Core/Windows/BitFlagsForm.cs
+++ b/Source/Core/Windows/BitFlagsForm.cs
@@ -130,7 +130,7 @@ namespace CodeImp.DoomBuilder.Windows
 				CheckBox box = options.Add(item.Title, item.GetIntValue());
 				
 				// Bind checking event
-				box.CheckedChanged += new EventHandler(box_CheckedChanged);
+				box.CheckedChanged += box_CheckedChanged;
 
 				// Checking the box?
 				if((value & (int)box.Tag) == (int)box.Tag)
diff --git a/Source/Core/Windows/DelayedForm.cs b/Source/Core/Windows/DelayedForm.cs
index d636d06a52bb56761d8d68418286ef6b893d2d9d..924dbe3fc484d3c007f04ad5aa4a58bdc73da228 100644
--- a/Source/Core/Windows/DelayedForm.cs
+++ b/Source/Core/Windows/DelayedForm.cs
@@ -39,7 +39,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// Create a timer that we need to show the form
 			formshowtimer = new Timer();
 			formshowtimer.Interval = 1;
-			formshowtimer.Tick += new EventHandler(formshowtimer_Tick);
+			formshowtimer.Tick += formshowtimer_Tick;
 		}
 		
 		// When form is shown
diff --git a/Source/Core/Windows/ErrorsForm.cs b/Source/Core/Windows/ErrorsForm.cs
index 402f0cfc2f5d6b62521dbb95567250feeb59a8c5..85ae6e094589b78e5979a68671c25ea179998ba5 100644
--- a/Source/Core/Windows/ErrorsForm.cs
+++ b/Source/Core/Windows/ErrorsForm.cs
@@ -116,7 +116,7 @@ namespace CodeImp.DoomBuilder.Windows
 					if(c.ValueType != typeof(Image))
 					{
 						if(str.Length > 0) str.Append("\r\n");
-						str.Append(c.Value.ToString());
+						str.Append(c.Value);
 					}
 				}
 				Clipboard.SetText(str.ToString());
diff --git a/Source/Core/Windows/MainForm.cs b/Source/Core/Windows/MainForm.cs
index ddb9bfd2a17c5b07d40ab78f0d763c684ef6ace0..b7b9db36e732091209730c14e31e5c497d5c9a50 100644
--- a/Source/Core/Windows/MainForm.cs
+++ b/Source/Core/Windows/MainForm.cs
@@ -66,23 +66,23 @@ namespace CodeImp.DoomBuilder.Windows
 		private const int ACTION_FLASH_INTERVAL = 50;
 		private const int ACTION_RESET_DELAY = 5000;
 		
-		private readonly Image[,] STATUS_IMAGES = new Image[2, 4]
+		private readonly Image[,] STATUS_IMAGES = new Image[,]
 		{
 			// Normal versions
 			{
-			  Properties.Resources.Status0, Properties.Resources.Status1,
-			  Properties.Resources.Status2, Properties.Resources.Warning
+			  Resources.Status0, Resources.Status1,
+			  Resources.Status2, Resources.Warning
 			},
 			
 			// Flashing versions
 			{
-			  Properties.Resources.Status10, Properties.Resources.Status11,
-			  Properties.Resources.Status12, Properties.Resources.WarningOff
+			  Resources.Status10, Resources.Status11,
+			  Resources.Status12, Resources.WarningOff
 			}
 		};
 		
 		// Message pump
-		public enum ThreadMessages : int
+		public enum ThreadMessages
 		{
 			// Sent by the background threat to update the status
 			UpdateStatus = General.WM_USER + 1,
@@ -888,7 +888,7 @@ namespace CodeImp.DoomBuilder.Windows
 					zoom = int.Parse((sender as ToolStripMenuItem).Tag.ToString(), CultureInfo.InvariantCulture);
 
 					// Zoom now
-					(General.Editing.Mode as ClassicMode).SetZoom((float)zoom / 100f);
+					(General.Editing.Mode as ClassicMode).SetZoom(zoom / 100f);
 				}
 			}
 		}
@@ -1446,16 +1446,15 @@ namespace CodeImp.DoomBuilder.Windows
 			if(General.Map != null)
 			{
 				// Make the new skills list
-				//mxd
-				skills = new ToolStripItem[(General.Map.Config.Skills.Count * 2) + 3];
+				skills = new ToolStripItem[(General.Map.Config.Skills.Count * 2) + 3]; //mxd
 
 				//mxd. Add engine selector
-				ToolStripMenuItem menuitem = new ToolStripMenuItem("Engine:", Properties.Resources.Marine);
+				ToolStripMenuItem menuitem = new ToolStripMenuItem("Engine:", Resources.Marine);
 				for (int i = 0; i < General.Map.ConfigSettings.TestEngines.Count; i++) {
 					ToolStripMenuItem engineItem = new ToolStripMenuItem(General.Map.ConfigSettings.TestEngines[i].TestProgramName);
 					engineItem.Tag = i;
 					engineItem.Checked = (i == General.Map.ConfigSettings.CurrentEngineIndex);
-					engineItem.Click += new EventHandler(engineItem_Click);
+					engineItem.Click += engineItem_Click;
 					menuitem.DropDownItems.Add(engineItem);
 				}
 				skills[0] = menuitem;
@@ -1469,8 +1468,8 @@ namespace CodeImp.DoomBuilder.Windows
 				for(int i = 0; i < General.Map.Config.Skills.Count; i++)
 				{
 					menuitem = new ToolStripMenuItem(General.Map.Config.Skills[i].ToString());
-					menuitem.Image = Properties.Resources.Monster2;
-					menuitem.Click += new EventHandler(TestSkill_Click);
+					menuitem.Image = Resources.Monster2;
+					menuitem.Click += TestSkill_Click;
 					menuitem.Tag = General.Map.Config.Skills[i].Index;
 					menuitem.Checked = (General.Settings.TestMonsters && (General.Map.ConfigSettings.TestSkill == General.Map.Config.Skills[i].Index));
 					skills[addindex++] = menuitem;
@@ -1485,8 +1484,8 @@ namespace CodeImp.DoomBuilder.Windows
 				for(int i = 0; i < General.Map.Config.Skills.Count; i++)
 				{
 					menuitem = new ToolStripMenuItem(General.Map.Config.Skills[i].ToString());
-					menuitem.Image = Properties.Resources.Monster3;
-					menuitem.Click += new EventHandler(TestSkill_Click);
+					menuitem.Image = Resources.Monster3;
+					menuitem.Click += TestSkill_Click;
 					menuitem.Tag = -General.Map.Config.Skills[i].Index;
 					menuitem.Checked = (!General.Settings.TestMonsters && (General.Map.ConfigSettings.TestSkill == General.Map.Config.Skills[i].Index));
 					skills[addindex++] = menuitem;
@@ -1860,7 +1859,7 @@ namespace CodeImp.DoomBuilder.Windows
 			
 			// Create a button
 			index = toolbar.Items.IndexOf(seperatormodes);
-			item = new ToolStripButton(modeinfo.ButtonDesc, modeinfo.ButtonImage, new EventHandler(EditModeButtonHandler));
+			item = new ToolStripButton(modeinfo.ButtonDesc, modeinfo.ButtonImage, EditModeButtonHandler);
 			item.DisplayStyle = ToolStripItemDisplayStyle.Image;
 			item.Tag = modeinfo;
 			toolbar.Items.Insert(index, item);
@@ -1868,7 +1867,7 @@ namespace CodeImp.DoomBuilder.Windows
 			
 			// Create menu item
 			index = menumode.DropDownItems.Count;
-			item = new ToolStripMenuItem(controlname, modeinfo.ButtonImage, new EventHandler(EditModeButtonHandler));
+			item = new ToolStripMenuItem(controlname, modeinfo.ButtonImage, EditModeButtonHandler);
 			item.Tag = modeinfo;
 			menumode.DropDownItems.Insert(index, item);
 			editmodeitems.Add(item);
@@ -2208,7 +2207,7 @@ namespace CodeImp.DoomBuilder.Windows
 				// Create item
 				recentitems[i] = new ToolStripMenuItem("");
 				recentitems[i].Tag = "";
-				recentitems[i].Click += new EventHandler(recentitem_Click);
+				recentitems[i].Click += recentitem_Click;
 				menufile.DropDownItems.Insert(insertindex + i, recentitems[i]);
 
 				// Get configuration setting
@@ -2217,7 +2216,7 @@ namespace CodeImp.DoomBuilder.Windows
 				{
 					// Set up item
 					int number = i + 1;
-					recentitems[i].Text = "&" + number.ToString() + "  " + GetDisplayFilename(filename);
+					recentitems[i].Text = "&" + number + "  " + GetDisplayFilename(filename);
 					recentitems[i].Tag = filename;
 					recentitems[i].Visible = true;
 					anyitems = true;
@@ -2279,7 +2278,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				// Move recent file down the list
 				int number = i + 2;
-				recentitems[i + 1].Text = "&" + number.ToString() + "  " + GetDisplayFilename(recentitems[i].Tag.ToString());
+				recentitems[i + 1].Text = "&" + number + "  " + GetDisplayFilename(recentitems[i].Tag.ToString());
 				recentitems[i + 1].Tag = recentitems[i].Tag.ToString();
 				recentitems[i + 1].Visible = (recentitems[i].Tag.ToString() != "");
 			}
@@ -2411,7 +2410,7 @@ namespace CodeImp.DoomBuilder.Windows
 					menu.DropDown.Items[i].Visible = false;
 				} else {
 					menu.DropDown.Items[i].Visible = true;
-					menu.DropDown.Items[i].Text = (i + 1) + ": " + General.Map.Map.GroupInfos[i].ToString();
+					menu.DropDown.Items[i].Text = (i + 1) + ": " + General.Map.Map.GroupInfos[i];
 				}
 			}
 		}
@@ -2986,9 +2985,9 @@ namespace CodeImp.DoomBuilder.Windows
 				LinedefActionInfo act = General.Map.Config.LinedefActions[l.Action];
 				labelcollapsedinfo.Text = act.ToString();
 			} else if(l.Action == 0)
-				labelcollapsedinfo.Text = l.Action.ToString() + " - None";
+				labelcollapsedinfo.Text = l.Action + " - None";
 			else
-				labelcollapsedinfo.Text = l.Action.ToString() + " - Unknown";
+				labelcollapsedinfo.Text = l.Action + " - Unknown";
 
 			labelcollapsedinfo.Refresh();
 
@@ -3036,9 +3035,9 @@ namespace CodeImp.DoomBuilder.Windows
 			if(General.Map.Config.SectorEffects.ContainsKey(s.Effect))
 				labelcollapsedinfo.Text = General.Map.Config.SectorEffects[s.Effect].ToString();
 			else if(s.Effect == 0)
-				labelcollapsedinfo.Text = s.Effect.ToString() + " - Normal";
+				labelcollapsedinfo.Text = s.Effect + " - Normal";
 			else
-				labelcollapsedinfo.Text = s.Effect.ToString() + " - Unknown";
+				labelcollapsedinfo.Text = s.Effect + " - Unknown";
 
 			labelcollapsedinfo.Refresh();
 
@@ -3121,7 +3120,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// Show sector edit dialog
 			VertexEditForm f = new VertexEditForm();
 			f.Setup(vertices, allowPositionChange);
-			f.OnValuesChanged += new EventHandler(EditForm_OnValuesChanged);
+			f.OnValuesChanged += EditForm_OnValuesChanged;
 			editformopen = true; //mxd
 			DialogResult result = f.ShowDialog(this);
 			editformopen = false; //mxd
@@ -3136,7 +3135,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// Show line edit dialog
 			LinedefEditForm f = new LinedefEditForm();
 			f.Setup(lines);
-			f.OnValuesChanged += new EventHandler(EditForm_OnValuesChanged);
+			f.OnValuesChanged += EditForm_OnValuesChanged;
 			editformopen = true; //mxd
 			DialogResult result = f.ShowDialog(this);
 			editformopen = false; //mxd
@@ -3154,7 +3153,7 @@ namespace CodeImp.DoomBuilder.Windows
 			if(General.Map.UDMF){ //mxd
 				SectorEditFormUDMF f = new SectorEditFormUDMF();
 				f.Setup(sectors);
-				f.OnValuesChanged += new EventHandler(EditForm_OnValuesChanged);
+				f.OnValuesChanged += EditForm_OnValuesChanged;
 				editformopen = true; //mxd
 				result = f.ShowDialog(this);
 				editformopen = false; //mxd
@@ -3162,7 +3161,7 @@ namespace CodeImp.DoomBuilder.Windows
 			}else{
 				SectorEditForm f = new SectorEditForm();
 				f.Setup(sectors);
-				f.OnValuesChanged += new EventHandler(EditForm_OnValuesChanged);
+				f.OnValuesChanged += EditForm_OnValuesChanged;
 				editformopen = true; //mxd
 				result = f.ShowDialog(this);
 				editformopen = false; //mxd
@@ -3178,7 +3177,7 @@ namespace CodeImp.DoomBuilder.Windows
 			// Show thing edit dialog
 			ThingEditForm f = new ThingEditForm();
 			f.Setup(things);
-			f.OnValuesChanged += new EventHandler(EditForm_OnValuesChanged);
+			f.OnValuesChanged += EditForm_OnValuesChanged;
 			editformopen = true; //mxd
 			DialogResult result = f.ShowDialog(this);
 			editformopen = false; //mxd
@@ -3197,7 +3196,7 @@ namespace CodeImp.DoomBuilder.Windows
 		#region ================== Message Pump
 		
 		// This handles messages
-		protected override unsafe void WndProc(ref Message m)
+		protected override void WndProc(ref Message m)
 		{
 			// Notify message?
 			switch(m.Msg)
diff --git a/Source/Core/Windows/PreferencesForm.cs b/Source/Core/Windows/PreferencesForm.cs
index c595d74d74ac7fd4d34e6d76c4c85d0f056bc0ec..c227fdda0c51b6da3856b07e18938905e34aeecf 100644
--- a/Source/Core/Windows/PreferencesForm.cs
+++ b/Source/Core/Windows/PreferencesForm.cs
@@ -33,13 +33,13 @@ namespace CodeImp.DoomBuilder.Windows
 		#region ================== Variables
 
 		private PreferencesController controller;
-		private bool allowapplycontrol = false;
-		private bool disregardshift = false;
-		private bool disregardcontrol = false;
+		private bool allowapplycontrol;
+		private bool disregardshift;
+		private bool disregardcontrol;
 		private List<ListViewItem> actionListItems; //mxd
 		private List<int> actionListItemsGroupIndices; //mxd
 
-		private bool reloadresources = false;
+		private bool reloadresources;
 		
 		#endregion
 
@@ -359,7 +359,7 @@ namespace CodeImp.DoomBuilder.Windows
 		private void previewsize_ValueChanged(object sender, EventArgs e)
 		{
 			int size = PreviewManager.PREVIEW_SIZES[previewsize.Value];
-			previewsizelabel.Text = size.ToString() + " x " + size.ToString();
+			previewsizelabel.Text = size + " x " + size;
 		}
 		
 		private void fieldofview_ValueChanged(object sender, EventArgs e)
@@ -383,7 +383,7 @@ namespace CodeImp.DoomBuilder.Windows
 		private void viewdistance_ValueChanged(object sender, EventArgs e)
 		{
 			int value = viewdistance.Value * 200;
-			viewdistancelabel.Text = value.ToString() + " mp";
+			viewdistancelabel.Text = value + " mp";
 		}
 
 		private void autoscrollspeed_ValueChanged(object sender, EventArgs e)
@@ -391,12 +391,12 @@ namespace CodeImp.DoomBuilder.Windows
 			if(autoscrollspeed.Value == 0)
 				autoscrollspeedlabel.Text = "Off";
 			else
-				autoscrollspeedlabel.Text = autoscrollspeed.Value.ToString() + "x";
+				autoscrollspeedlabel.Text = autoscrollspeed.Value + "x";
 		}
 
 		private void zoomfactor_ValueChanged(object sender, EventArgs e)
 		{
-			zoomfactorlabel.Text = (zoomfactor.Value * 10).ToString() + "%";
+			zoomfactorlabel.Text = (zoomfactor.Value * 10) + "%";
 		}
 
 		//mxd
@@ -889,13 +889,13 @@ namespace CodeImp.DoomBuilder.Windows
 
 		private void imagebrightness_ValueChanged(object sender, EventArgs e)
 		{
-			imagebrightnesslabel.Text = "+ " + imagebrightness.Value.ToString() + " y";
+			imagebrightnesslabel.Text = "+ " + imagebrightness.Value + " y";
 		}
 
 		private void doublesidedalpha_ValueChanged(object sender, EventArgs e)
 		{
 			int percent = doublesidedalpha.Value * 10;
-			doublesidedalphalabel.Text = percent.ToString() + "%";
+			doublesidedalphalabel.Text = percent + "%";
 		}
 
 		//mxd
diff --git a/Source/Core/Windows/TanColorTable.cs b/Source/Core/Windows/TanColorTable.cs
index 16e98efc22621e8d31608a43f4f90a8c953afe3c..3ee9b87b73f1bfbed2ddfd93827c5f95af5d7cda 100644
--- a/Source/Core/Windows/TanColorTable.cs
+++ b/Source/Core/Windows/TanColorTable.cs
@@ -39,48 +39,48 @@ namespace CodeImp.DoomBuilder.Windows
 		{
 		}
 
-		internal Color FromKnownColor(TanColorTable.KnownColors color)
-		{
-			return (Color)this.ColorTable[color];
-		}
-
-		internal static void InitTanLunaColors(ref Dictionary<TanColorTable.KnownColors, Color> rgbTable)
-		{
-			rgbTable[TanColorTable.KnownColors.GripDark] = Color.FromArgb(0xc1, 190, 0xb3);
-			rgbTable[TanColorTable.KnownColors.SeparatorDark] = Color.FromArgb(0xc5, 0xc2, 0xb8);
-			rgbTable[TanColorTable.KnownColors.MenuItemSelected] = Color.FromArgb(0xc1, 210, 0xee);
-			rgbTable[TanColorTable.KnownColors.ButtonPressedBorder] = Color.FromArgb(0x31, 0x6a, 0xc5);
-			rgbTable[TanColorTable.KnownColors.CheckBackground] = Color.FromArgb(0xe1, 230, 0xe8);
-			rgbTable[TanColorTable.KnownColors.MenuItemBorder] = Color.FromArgb(0x31, 0x6a, 0xc5);
-			rgbTable[TanColorTable.KnownColors.CheckBackgroundMouseOver] = Color.FromArgb(0x31, 0x6a, 0xc5);
-			rgbTable[TanColorTable.KnownColors.MenuItemBorderMouseOver] = Color.FromArgb(0x4b, 0x4b, 0x6f);
-			rgbTable[TanColorTable.KnownColors.ToolStripDropDownBackground] = Color.FromArgb(0xfc, 0xfc, 0xf9);
-			rgbTable[TanColorTable.KnownColors.MenuBorder] = Color.FromArgb(0x8a, 0x86, 0x7a);
-			rgbTable[TanColorTable.KnownColors.SeparatorLight] = Color.FromArgb(0xff, 0xff, 0xff);
-			rgbTable[TanColorTable.KnownColors.ToolStripBorder] = Color.FromArgb(0xa3, 0xa3, 0x7c);
-			rgbTable[TanColorTable.KnownColors.MenuStripGradientBegin] = Color.FromArgb(0xe5, 0xe5, 0xd7);
-			rgbTable[TanColorTable.KnownColors.MenuStripGradientEnd] = Color.FromArgb(0xf4, 0xf2, 0xe8);
-			rgbTable[TanColorTable.KnownColors.ImageMarginGradientBegin] = Color.FromArgb(0xfe, 0xfe, 0xfb);
-			rgbTable[TanColorTable.KnownColors.ImageMarginGradientMiddle] = Color.FromArgb(0xec, 0xe7, 0xe0);
-			rgbTable[TanColorTable.KnownColors.ImageMarginGradientEnd] = Color.FromArgb(0xbd, 0xbd, 0xa3);
-			rgbTable[TanColorTable.KnownColors.OverflowButtonGradientBegin] = Color.FromArgb(0xf3, 0xf2, 240);
-			rgbTable[TanColorTable.KnownColors.OverflowButtonGradientMiddle] = Color.FromArgb(0xe2, 0xe1, 0xdb);
-			rgbTable[TanColorTable.KnownColors.OverflowButtonGradientEnd] = Color.FromArgb(0x92, 0x92, 0x76);
-			rgbTable[TanColorTable.KnownColors.MenuItemPressedGradientBegin] = Color.FromArgb(0xfc, 0xfc, 0xf9);
-			rgbTable[TanColorTable.KnownColors.MenuItemPressedGradientEnd] = Color.FromArgb(0xf6, 0xf4, 0xec);
-			rgbTable[TanColorTable.KnownColors.ImageMarginRevealedGradientBegin] = Color.FromArgb(0xf7, 0xf6, 0xef);
-			rgbTable[TanColorTable.KnownColors.ImageMarginRevealedGradientMiddle] = Color.FromArgb(0xf2, 240, 0xe4);
-			rgbTable[TanColorTable.KnownColors.ImageMarginRevealedGradientEnd] = Color.FromArgb(230, 0xe3, 210);
-			rgbTable[TanColorTable.KnownColors.ButtonCheckedGradientBegin] = Color.FromArgb(0xe1, 230, 0xe8);
-			rgbTable[TanColorTable.KnownColors.ButtonCheckedGradientMiddle] = Color.FromArgb(0xe1, 230, 0xe8);
-			rgbTable[TanColorTable.KnownColors.ButtonCheckedGradientEnd] = Color.FromArgb(0xe1, 230, 0xe8);
-			rgbTable[TanColorTable.KnownColors.ButtonSelectedGradientBegin] = Color.FromArgb(0xc1, 210, 0xee);
-			rgbTable[TanColorTable.KnownColors.ButtonSelectedGradientMiddle] = Color.FromArgb(0xc1, 210, 0xee);
-			rgbTable[TanColorTable.KnownColors.ButtonSelectedGradientEnd] = Color.FromArgb(0xc1, 210, 0xee);
-			rgbTable[TanColorTable.KnownColors.ButtonPressedGradientBegin] = Color.FromArgb(0x98, 0xb5, 0xe2);
-			rgbTable[TanColorTable.KnownColors.ButtonPressedGradientMiddle] = Color.FromArgb(0x98, 0xb5, 0xe2);
-			rgbTable[TanColorTable.KnownColors.ButtonPressedGradientEnd] = Color.FromArgb(0x98, 0xb5, 0xe2);
-			rgbTable[TanColorTable.KnownColors.GripLight] = Color.FromArgb(0xff, 0xff, 0xff);
+		internal Color FromKnownColor(KnownColors color)
+		{
+			return this.ColorTable[color];
+		}
+
+		internal static void InitTanLunaColors(ref Dictionary<KnownColors, Color> rgbTable)
+		{
+			rgbTable[KnownColors.GripDark] = Color.FromArgb(0xc1, 190, 0xb3);
+			rgbTable[KnownColors.SeparatorDark] = Color.FromArgb(0xc5, 0xc2, 0xb8);
+			rgbTable[KnownColors.MenuItemSelected] = Color.FromArgb(0xc1, 210, 0xee);
+			rgbTable[KnownColors.ButtonPressedBorder] = Color.FromArgb(0x31, 0x6a, 0xc5);
+			rgbTable[KnownColors.CheckBackground] = Color.FromArgb(0xe1, 230, 0xe8);
+			rgbTable[KnownColors.MenuItemBorder] = Color.FromArgb(0x31, 0x6a, 0xc5);
+			rgbTable[KnownColors.CheckBackgroundMouseOver] = Color.FromArgb(0x31, 0x6a, 0xc5);
+			rgbTable[KnownColors.MenuItemBorderMouseOver] = Color.FromArgb(0x4b, 0x4b, 0x6f);
+			rgbTable[KnownColors.ToolStripDropDownBackground] = Color.FromArgb(0xfc, 0xfc, 0xf9);
+			rgbTable[KnownColors.MenuBorder] = Color.FromArgb(0x8a, 0x86, 0x7a);
+			rgbTable[KnownColors.SeparatorLight] = Color.FromArgb(0xff, 0xff, 0xff);
+			rgbTable[KnownColors.ToolStripBorder] = Color.FromArgb(0xa3, 0xa3, 0x7c);
+			rgbTable[KnownColors.MenuStripGradientBegin] = Color.FromArgb(0xe5, 0xe5, 0xd7);
+			rgbTable[KnownColors.MenuStripGradientEnd] = Color.FromArgb(0xf4, 0xf2, 0xe8);
+			rgbTable[KnownColors.ImageMarginGradientBegin] = Color.FromArgb(0xfe, 0xfe, 0xfb);
+			rgbTable[KnownColors.ImageMarginGradientMiddle] = Color.FromArgb(0xec, 0xe7, 0xe0);
+			rgbTable[KnownColors.ImageMarginGradientEnd] = Color.FromArgb(0xbd, 0xbd, 0xa3);
+			rgbTable[KnownColors.OverflowButtonGradientBegin] = Color.FromArgb(0xf3, 0xf2, 240);
+			rgbTable[KnownColors.OverflowButtonGradientMiddle] = Color.FromArgb(0xe2, 0xe1, 0xdb);
+			rgbTable[KnownColors.OverflowButtonGradientEnd] = Color.FromArgb(0x92, 0x92, 0x76);
+			rgbTable[KnownColors.MenuItemPressedGradientBegin] = Color.FromArgb(0xfc, 0xfc, 0xf9);
+			rgbTable[KnownColors.MenuItemPressedGradientEnd] = Color.FromArgb(0xf6, 0xf4, 0xec);
+			rgbTable[KnownColors.ImageMarginRevealedGradientBegin] = Color.FromArgb(0xf7, 0xf6, 0xef);
+			rgbTable[KnownColors.ImageMarginRevealedGradientMiddle] = Color.FromArgb(0xf2, 240, 0xe4);
+			rgbTable[KnownColors.ImageMarginRevealedGradientEnd] = Color.FromArgb(230, 0xe3, 210);
+			rgbTable[KnownColors.ButtonCheckedGradientBegin] = Color.FromArgb(0xe1, 230, 0xe8);
+			rgbTable[KnownColors.ButtonCheckedGradientMiddle] = Color.FromArgb(0xe1, 230, 0xe8);
+			rgbTable[KnownColors.ButtonCheckedGradientEnd] = Color.FromArgb(0xe1, 230, 0xe8);
+			rgbTable[KnownColors.ButtonSelectedGradientBegin] = Color.FromArgb(0xc1, 210, 0xee);
+			rgbTable[KnownColors.ButtonSelectedGradientMiddle] = Color.FromArgb(0xc1, 210, 0xee);
+			rgbTable[KnownColors.ButtonSelectedGradientEnd] = Color.FromArgb(0xc1, 210, 0xee);
+			rgbTable[KnownColors.ButtonPressedGradientBegin] = Color.FromArgb(0x98, 0xb5, 0xe2);
+			rgbTable[KnownColors.ButtonPressedGradientMiddle] = Color.FromArgb(0x98, 0xb5, 0xe2);
+			rgbTable[KnownColors.ButtonPressedGradientEnd] = Color.FromArgb(0x98, 0xb5, 0xe2);
+			rgbTable[KnownColors.GripLight] = Color.FromArgb(0xff, 0xff, 0xff);
 		}
 
 		public override Color ButtonCheckedGradientBegin
@@ -89,7 +89,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonCheckedGradientBegin);
+					return this.FromKnownColor(KnownColors.ButtonCheckedGradientBegin);
 				}
 				return base.ButtonCheckedGradientBegin;
 			}
@@ -101,7 +101,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonCheckedGradientEnd);
+					return this.FromKnownColor(KnownColors.ButtonCheckedGradientEnd);
 				}
 				return base.ButtonCheckedGradientEnd;
 			}
@@ -113,7 +113,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonCheckedGradientMiddle);
+					return this.FromKnownColor(KnownColors.ButtonCheckedGradientMiddle);
 				}
 				return base.ButtonCheckedGradientMiddle;
 			}
@@ -126,7 +126,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonPressedBorder);
+					return this.FromKnownColor(KnownColors.ButtonPressedBorder);
 				}
 				return base.ButtonPressedBorder;
 			}
@@ -138,7 +138,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonPressedGradientBegin);
+					return this.FromKnownColor(KnownColors.ButtonPressedGradientBegin);
 				}
 				return base.ButtonPressedGradientBegin;
 			}
@@ -150,7 +150,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonPressedGradientEnd);
+					return this.FromKnownColor(KnownColors.ButtonPressedGradientEnd);
 				}
 				return base.ButtonPressedGradientEnd;
 			}
@@ -163,7 +163,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonPressedGradientMiddle);
+					return this.FromKnownColor(KnownColors.ButtonPressedGradientMiddle);
 				}
 				return base.ButtonPressedGradientMiddle;
 			}
@@ -175,7 +175,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonPressedBorder);
+					return this.FromKnownColor(KnownColors.ButtonPressedBorder);
 				}
 				return base.ButtonSelectedBorder;
 			}
@@ -188,7 +188,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonSelectedGradientBegin);
+					return this.FromKnownColor(KnownColors.ButtonSelectedGradientBegin);
 				}
 				return base.ButtonSelectedGradientBegin;
 			}
@@ -199,7 +199,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonSelectedGradientEnd);
+					return this.FromKnownColor(KnownColors.ButtonSelectedGradientEnd);
 				}
 				return base.ButtonSelectedGradientEnd;
 			}
@@ -210,7 +210,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonSelectedGradientMiddle);
+					return this.FromKnownColor(KnownColors.ButtonSelectedGradientMiddle);
 				}
 				return base.ButtonSelectedGradientMiddle;
 			}
@@ -222,7 +222,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.CheckBackground);
+					return this.FromKnownColor(KnownColors.CheckBackground);
 				}
 				return base.CheckBackground;
 			}
@@ -234,7 +234,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.CheckBackgroundMouseOver);
+					return this.FromKnownColor(KnownColors.CheckBackgroundMouseOver);
 				}
 				return base.CheckPressedBackground;
 			}
@@ -246,7 +246,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.CheckBackgroundMouseOver);
+					return this.FromKnownColor(KnownColors.CheckBackgroundMouseOver);
 				}
 				return base.CheckSelectedBackground;
 			}
@@ -257,7 +257,7 @@ namespace CodeImp.DoomBuilder.Windows
 		{
 			get
 			{
-				return TanColorTable.DisplayInformation.ColorScheme;
+				return DisplayInformation.ColorScheme;
 			}
 		}
 
@@ -268,7 +268,7 @@ namespace CodeImp.DoomBuilder.Windows
 				if(this.tanRGB == null)
 				{
 					this.tanRGB = new Dictionary<KnownColors, Color>((int)KnownColors.LastKnownColor);
-					TanColorTable.InitTanLunaColors(ref this.tanRGB);
+					InitTanLunaColors(ref this.tanRGB);
 				}
 				return this.tanRGB;
 			}
@@ -280,7 +280,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.GripDark);
+					return this.FromKnownColor(KnownColors.GripDark);
 				}
 				return base.GripDark;
 			}
@@ -292,7 +292,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.GripLight);
+					return this.FromKnownColor(KnownColors.GripLight);
 				}
 				return base.GripLight;
 			}
@@ -303,7 +303,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ImageMarginGradientBegin);
+					return this.FromKnownColor(KnownColors.ImageMarginGradientBegin);
 				}
 				return base.ImageMarginGradientBegin;
 			}
@@ -315,7 +315,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ImageMarginGradientEnd);
+					return this.FromKnownColor(KnownColors.ImageMarginGradientEnd);
 				}
 				return base.ImageMarginGradientEnd;
 			}
@@ -327,7 +327,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ImageMarginGradientMiddle);
+					return this.FromKnownColor(KnownColors.ImageMarginGradientMiddle);
 				}
 				return base.ImageMarginGradientMiddle;
 			}
@@ -339,7 +339,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ImageMarginRevealedGradientBegin);
+					return this.FromKnownColor(KnownColors.ImageMarginRevealedGradientBegin);
 				}
 				return base.ImageMarginRevealedGradientBegin;
 			}
@@ -351,7 +351,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ImageMarginRevealedGradientEnd);
+					return this.FromKnownColor(KnownColors.ImageMarginRevealedGradientEnd);
 				}
 				return base.ImageMarginRevealedGradientEnd;
 			}
@@ -363,7 +363,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ImageMarginRevealedGradientMiddle);
+					return this.FromKnownColor(KnownColors.ImageMarginRevealedGradientMiddle);
 				}
 				return base.ImageMarginRevealedGradientMiddle;
 			}
@@ -375,7 +375,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.MenuBorder);
+					return this.FromKnownColor(KnownColors.MenuBorder);
 				}
 				return base.MenuItemBorder;
 			}
@@ -388,7 +388,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.MenuItemBorder);
+					return this.FromKnownColor(KnownColors.MenuItemBorder);
 				}
 				return base.MenuItemBorder;
 			}
@@ -400,7 +400,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.MenuItemPressedGradientBegin);
+					return this.FromKnownColor(KnownColors.MenuItemPressedGradientBegin);
 				}
 				return base.MenuItemPressedGradientBegin;
 			}
@@ -412,7 +412,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.MenuItemPressedGradientEnd);
+					return this.FromKnownColor(KnownColors.MenuItemPressedGradientEnd);
 				}
 				return base.MenuItemPressedGradientEnd;
 			}
@@ -424,7 +424,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ImageMarginRevealedGradientMiddle);
+					return this.FromKnownColor(KnownColors.ImageMarginRevealedGradientMiddle);
 				}
 				return base.MenuItemPressedGradientMiddle;
 			}
@@ -436,7 +436,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.MenuItemSelected);
+					return this.FromKnownColor(KnownColors.MenuItemSelected);
 				}
 				return base.MenuItemSelected;
 			}
@@ -448,7 +448,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonSelectedGradientBegin);
+					return this.FromKnownColor(KnownColors.ButtonSelectedGradientBegin);
 				}
 				return base.MenuItemSelectedGradientBegin;
 			}
@@ -460,7 +460,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ButtonSelectedGradientEnd);
+					return this.FromKnownColor(KnownColors.ButtonSelectedGradientEnd);
 				}
 				return base.MenuItemSelectedGradientEnd;
 			}
@@ -473,7 +473,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.MenuStripGradientBegin);
+					return this.FromKnownColor(KnownColors.MenuStripGradientBegin);
 				}
 				return base.MenuStripGradientBegin;
 			}
@@ -485,7 +485,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.MenuStripGradientEnd);
+					return this.FromKnownColor(KnownColors.MenuStripGradientEnd);
 				}
 				return base.MenuStripGradientEnd;
 			}
@@ -497,7 +497,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.OverflowButtonGradientBegin);
+					return this.FromKnownColor(KnownColors.OverflowButtonGradientBegin);
 				}
 				return base.OverflowButtonGradientBegin;
 			}
@@ -509,7 +509,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.OverflowButtonGradientEnd);
+					return this.FromKnownColor(KnownColors.OverflowButtonGradientEnd);
 				}
 				return base.OverflowButtonGradientEnd;
 			}
@@ -521,7 +521,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.OverflowButtonGradientMiddle);
+					return this.FromKnownColor(KnownColors.OverflowButtonGradientMiddle);
 				}
 				return base.OverflowButtonGradientMiddle;
 			}
@@ -534,7 +534,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.MenuStripGradientBegin);
+					return this.FromKnownColor(KnownColors.MenuStripGradientBegin);
 				}
 				return base.RaftingContainerGradientBegin;
 			}
@@ -546,7 +546,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.MenuStripGradientEnd);
+					return this.FromKnownColor(KnownColors.MenuStripGradientEnd);
 				}
 				return base.RaftingContainerGradientEnd;
 			}
@@ -559,7 +559,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.SeparatorDark);
+					return this.FromKnownColor(KnownColors.SeparatorDark);
 				}
 				return base.SeparatorDark;
 			}
@@ -571,7 +571,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.SeparatorLight);
+					return this.FromKnownColor(KnownColors.SeparatorLight);
 				}
 				return base.SeparatorLight;
 			}
@@ -583,7 +583,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ToolStripBorder);
+					return this.FromKnownColor(KnownColors.ToolStripBorder);
 				}
 				return base.ToolStripBorder;
 			}
@@ -596,7 +596,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ToolStripDropDownBackground);
+					return this.FromKnownColor(KnownColors.ToolStripDropDownBackground);
 				}
 				return base.ToolStripDropDownBackground;
 			}
@@ -608,7 +608,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ImageMarginGradientBegin);
+					return this.FromKnownColor(KnownColors.ImageMarginGradientBegin);
 				}
 				return base.ToolStripGradientBegin;
 			}
@@ -620,7 +620,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ImageMarginGradientEnd);
+					return this.FromKnownColor(KnownColors.ImageMarginGradientEnd);
 				}
 				return base.ToolStripGradientEnd;
 			}
@@ -632,7 +632,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				if(!this.UseBaseColorTable)
 				{
-					return this.FromKnownColor(TanColorTable.KnownColors.ImageMarginGradientMiddle);
+					return this.FromKnownColor(KnownColors.ImageMarginGradientMiddle);
 				}
 				return base.ToolStripGradientMiddle;
 			}
@@ -642,9 +642,9 @@ namespace CodeImp.DoomBuilder.Windows
 		{
 			get
 			{
-				bool flag1 = !TanColorTable.DisplayInformation.IsLunaTheme ||
-								((TanColorTable.ColorScheme != oliveColorScheme) &&
-								 (TanColorTable.ColorScheme != blueColorScheme));
+				bool flag1 = !DisplayInformation.IsLunaTheme ||
+								((ColorScheme != oliveColorScheme) &&
+								 (ColorScheme != blueColorScheme));
 				if(flag1 && (this.tanRGB != null))
 				{
 					this.tanRGB.Clear();
diff --git a/Source/Core/Windows/TextureBrowserForm.cs b/Source/Core/Windows/TextureBrowserForm.cs
index 5baac3709c6c513c821d6df9950429cecc0aa89c..b0f28ad96ea78e11b43e904a2fc0f941a1a85483 100644
--- a/Source/Core/Windows/TextureBrowserForm.cs
+++ b/Source/Core/Windows/TextureBrowserForm.cs
@@ -177,7 +177,7 @@ namespace CodeImp.DoomBuilder.Windows
 		//mxd
 		private TreeNode findTextureByLongName(TreeNode node, long longname) {
 			//first search in child nodes
-			TreeNode match = null;
+			TreeNode match;
 
 			foreach(TreeNode n in node.Nodes) {
 				match = findTextureByLongName(n, longname);
diff --git a/Source/Core/Windows/ThingsFiltersForm.cs b/Source/Core/Windows/ThingsFiltersForm.cs
index 820e8a94d0543c5b17c1ecd788885a052bb38840..ec46fe92ffbc6a152264aa054132a493239d1478 100644
--- a/Source/Core/Windows/ThingsFiltersForm.cs
+++ b/Source/Core/Windows/ThingsFiltersForm.cs
@@ -72,7 +72,7 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				CheckBox box = filterfields.Add(flag.Value, flag.Key);
 				box.ThreeState = true;
-				box.CheckStateChanged += new EventHandler(filterfield_Check);
+				box.CheckStateChanged += filterfield_Check;
 			}
 			
 			// Fill list of filters
diff --git a/Source/Core/Windows/VertexEditForm.cs b/Source/Core/Windows/VertexEditForm.cs
index 84f881d00efda581c70cb5c0d123783902f0f4b5..99f020f7cc505d60bd3447daa80ec5626993809a 100644
--- a/Source/Core/Windows/VertexEditForm.cs
+++ b/Source/Core/Windows/VertexEditForm.cs
@@ -200,11 +200,13 @@ namespace CodeImp.DoomBuilder.Windows
 					v.Move(new Vector2D(vertexProps[i++].X, v.Position.y));
 			} else { //update values
 				// Verify the coordinates
-				float px = positionx.GetResultFloat(vertexProps[i++].X);
+				float px = positionx.GetResultFloat(vertexProps[i].X);
 				if(px < General.Map.FormatInterface.MinCoordinate) {
 					positionx.Text = General.Map.FormatInterface.MinCoordinate.ToString();
 					return;
-				} else if(px > General.Map.FormatInterface.MaxCoordinate) {
+				} 
+				
+				if(px > General.Map.FormatInterface.MaxCoordinate) {
 					positionx.Text = General.Map.FormatInterface.MaxCoordinate.ToString();
 					return;
 				}
@@ -229,11 +231,13 @@ namespace CodeImp.DoomBuilder.Windows
 					v.Move(new Vector2D(v.Position.x, vertexProps[i++].Y));
 			} else { //update values
 				// Verify the coordinates
-				float py = positiony.GetResultFloat(vertexProps[i++].Y);
+				float py = positiony.GetResultFloat(vertexProps[i].Y);
 				if(py < General.Map.FormatInterface.MinCoordinate) {
 					positiony.Text = General.Map.FormatInterface.MinCoordinate.ToString();
 					return;
-				} else if(py > General.Map.FormatInterface.MaxCoordinate) {
+				} 
+				
+				if(py > General.Map.FormatInterface.MaxCoordinate) {
 					positiony.Text = General.Map.FormatInterface.MaxCoordinate.ToString();
 					return;
 				}
diff --git a/Source/Core/ZDoom/DecorateParser.cs b/Source/Core/ZDoom/DecorateParser.cs
index ed0ef79d483224014f7a020011abf6bc05ff1899..c9745f777e80970b0a90cf3aacdcc5f3d075ec35 100644
--- a/Source/Core/ZDoom/DecorateParser.cs
+++ b/Source/Core/ZDoom/DecorateParser.cs
@@ -16,7 +16,6 @@
 
 #region ================== Namespaces
 
-using System.Collections;
 using System.Collections.Generic;
 using System.IO;
 
diff --git a/Source/Core/ZDoom/PatchStructure.cs b/Source/Core/ZDoom/PatchStructure.cs
index 2a612aba082bbebf31060771d890116f9c059c4a..44c1da3d611e2604dc2dab32dbd38a5fecb3e453 100644
--- a/Source/Core/ZDoom/PatchStructure.cs
+++ b/Source/Core/ZDoom/PatchStructure.cs
@@ -170,14 +170,14 @@ namespace CodeImp.DoomBuilder.ZDoom
 						break;
 
 					case "style": //mxd
-						string s = "";
+						string s;
 						if (!ReadTokenString(parser, token, out s)) return;
 						int index = Array.IndexOf(renderStyles, s.ToLowerInvariant());
 						renderStyle = index == -1 ? TexturePathRenderStyle.Copy : (TexturePathRenderStyle) index;
 						break;
 
 					case "blend": //mxd
-						int val = 0;
+						int val;
 						if (!ReadTokenColor(parser, token, out val)) return;
 						blendColor = PixelColor.FromInt(val);
 
diff --git a/Source/Core/ZDoom/TexturesParser.cs b/Source/Core/ZDoom/TexturesParser.cs
index 307b6eab5c7bd8b7428c88214834073ddd367831..243dda46e38161cd2be395ced6224cd630121bd4 100644
--- a/Source/Core/ZDoom/TexturesParser.cs
+++ b/Source/Core/ZDoom/TexturesParser.cs
@@ -91,7 +91,7 @@ namespace CodeImp.DoomBuilder.ZDoom
 						// if a limit for the texture name length is set make sure that it's not exceeded
 						if ((General.Map.Config.MaxTextureNamelength > 0) && (tx.Name.Length > General.Map.Config.MaxTextureNamelength))
 						{
-							General.ErrorLogger.Add(ErrorType.Error, "Texture name \"" + tx.Name + "\" too long. Texture names must have a length of " + General.Map.Config.MaxTextureNamelength.ToString() + " characters or less");
+							General.ErrorLogger.Add(ErrorType.Error, "Texture name \"" + tx.Name + "\" too long. Texture names must have a length of " + General.Map.Config.MaxTextureNamelength + " characters or less");
 						}
 						else
 						{
@@ -109,7 +109,7 @@ namespace CodeImp.DoomBuilder.ZDoom
 						// if a limit for the sprite name length is set make sure that it's not exceeded
 						if ((General.Map.Config.MaxTextureNamelength > 0) && (tx.Name.Length > General.Map.Config.MaxTextureNamelength))
 						{
-							General.ErrorLogger.Add(ErrorType.Error, "Sprite name \"" + tx.Name + "\" too long. Sprite names must have a length of " +  General.Map.Config.MaxTextureNamelength.ToString() + " characters or less");
+							General.ErrorLogger.Add(ErrorType.Error, "Sprite name \"" + tx.Name + "\" too long. Sprite names must have a length of " +  General.Map.Config.MaxTextureNamelength + " characters or less");
 						}
 						else
 						{
@@ -126,7 +126,7 @@ namespace CodeImp.DoomBuilder.ZDoom
 						// if a limit for the walltexture name length is set make sure that it's not exceeded
 						if((General.Map.Config.MaxTextureNamelength > 0) && (tx.Name.Length > General.Map.Config.MaxTextureNamelength))
 						{
-							General.ErrorLogger.Add(ErrorType.Error, "WallTexture name \"" + tx.Name + "\" too long. WallTexture names must have a length of " + General.Map.Config.MaxTextureNamelength.ToString() + " characters or less");
+							General.ErrorLogger.Add(ErrorType.Error, "WallTexture name \"" + tx.Name + "\" too long. WallTexture names must have a length of " + General.Map.Config.MaxTextureNamelength + " characters or less");
 						}
 						else
 						{
@@ -144,7 +144,7 @@ namespace CodeImp.DoomBuilder.ZDoom
 						// if a limit for the flat name length is set make sure that it's not exceeded
 						if((General.Map.Config.MaxTextureNamelength > 0) && (tx.Name.Length > General.Map.Config.MaxTextureNamelength))
 						{
-							General.ErrorLogger.Add(ErrorType.Error, "Flat name \"" + tx.Name + "\" too long. Flat names must have a length of " + General.Map.Config.MaxTextureNamelength.ToString() + " characters or less");
+							General.ErrorLogger.Add(ErrorType.Error, "Flat name \"" + tx.Name + "\" too long. Flat names must have a length of " + General.Map.Config.MaxTextureNamelength + " characters or less");
 						}
 						else
 						{
diff --git a/Source/Plugins/BuilderEffects/BuilderPlug.cs b/Source/Plugins/BuilderEffects/BuilderPlug.cs
index 98c6eabff88c867fd52703d8d789cebafd614f71..a9752ca1d353ae9de481531bd1149fe94f3884e2 100644
--- a/Source/Plugins/BuilderEffects/BuilderPlug.cs
+++ b/Source/Plugins/BuilderEffects/BuilderPlug.cs
@@ -1,6 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
+using System.Collections.Generic;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Plugins;
 using CodeImp.DoomBuilder.Actions;
@@ -137,7 +135,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 			}
 
 			form.Location = formLocation;
-			form.FormClosed += new FormClosedEventHandler(form_FormClosed);
+			form.FormClosed += form_FormClosed;
 			form.ShowDialog(Form.ActiveForm);
 		}
 
diff --git a/Source/Plugins/BuilderEffects/Controls/IntControl.cs b/Source/Plugins/BuilderEffects/Controls/IntControl.cs
index 68f6a62d516f026446e9627b84f8725278b53fc1..7f3081edb197c080a7bb9b21bfe66af6647d5020 100644
--- a/Source/Plugins/BuilderEffects/Controls/IntControl.cs
+++ b/Source/Plugins/BuilderEffects/Controls/IntControl.cs
@@ -1,12 +1,6 @@
 using System;
-using System.Collections.Generic;
 using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
 using System.Windows.Forms;
-using System.Globalization;
-using CodeImp.DoomBuilder;
 
 namespace CodeImp.DoomBuilder.BuilderEffects
 {
@@ -93,7 +87,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 
 		internal IntControl() {
 			InitializeComponent();
-			numericUpDown1.MouseLeave += new EventHandler<EventArgs>(numericUpDown1_MouseLeave);
+			numericUpDown1.MouseLeave += numericUpDown1_MouseLeave;
 		}
 
 		private void updateLimits() {
diff --git a/Source/Plugins/BuilderEffects/Controls/NumericUpDownEx.cs b/Source/Plugins/BuilderEffects/Controls/NumericUpDownEx.cs
index 0f0ec41e927c1826f190ceabc6cf49cb856d3ea7..832267391276bfad3d4506754b51da860b9005c5 100644
--- a/Source/Plugins/BuilderEffects/Controls/NumericUpDownEx.cs
+++ b/Source/Plugins/BuilderEffects/Controls/NumericUpDownEx.cs
@@ -11,10 +11,6 @@
 
 using System;
 using System.Reflection;
-using System.Collections;
-using System.Collections.Generic;
-using System.Data;
-using System.Diagnostics;
 using System.Drawing;
 using System.ComponentModel;
 using System.Windows.Forms;
@@ -33,7 +29,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 		/// <summary>
 		/// object creator
 		/// </summary>
-		public NumericUpDownEx() : base()
+		public NumericUpDownEx()
 		{
 			// extract a reference to the underlying TextBox field
 			_textbox = GetPrivateField<TextBox>(this, "upDownEdit");
@@ -77,7 +73,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 		}
 
 
-		protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
+		protected override void OnPaint(PaintEventArgs e)
 		{
 			if (_upDownButtons.Visible == false)
 			{
@@ -90,7 +86,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 		/// <summary>
 		/// WndProc override to kill WN_MOUSEWHEEL message
 		/// </summary>
-		protected override void WndProc(ref System.Windows.Forms.Message m)
+		protected override void WndProc(ref Message m)
 		{
 			const int WM_MOUSEWHEEL = 0x20a;
 
@@ -133,7 +129,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 			set { _autoSelect = value; }
 		}
 
-		private bool _autoSelect = false;
+		private bool _autoSelect;
 
 		[Browsable(false)]
 		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
@@ -220,7 +216,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 			get { return _wrapValue; }
 			set { _wrapValue = value; }
 		}
-		private bool _wrapValue = false;
+		private bool _wrapValue;
 	
 #endregion
 
@@ -228,7 +224,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 #region Text selection
 
 		// select all the text on focus enter
-		protected override void OnGotFocus(System.EventArgs e)
+		protected override void OnGotFocus(EventArgs e)
 		{
 			if (_autoSelect)
 			{
@@ -240,7 +236,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 
 		// MouseUp will kill the SelectAll made on GotFocus.
 		// Will restore it, but only if user have not made a partial text selection.
-		protected override void OnMouseUp(System.Windows.Forms.MouseEventArgs mevent)
+		protected override void OnMouseUp(MouseEventArgs mevent)
 		{
 			if (_autoSelect && _textbox.SelectionLength == 0)
 			{
@@ -263,10 +259,10 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 		public event CancelEventHandler BeforeValueIncrement;
 
 		// flag to track mouse position
-		private bool _mouseOver = false;
+		private bool _mouseOver;
 
 		// this handler is called at each mouse Enter/Leave movement
-		private void _mouseEnterLeave(object sender, System.EventArgs e)
+		private void _mouseEnterLeave(object sender, EventArgs e)
 		{
 			Rectangle cr = RectangleToScreen(ClientRectangle);
 			Point mp = MousePosition;
@@ -349,7 +345,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 		public void UpdateUpDownButtonsVisibility()
 		{
 			// test new state
-			bool newVisible = false;
+			bool newVisible;
 			switch (_showUpDownButtons)
 			{
 				case ShowUpDownButtonsMode.WhenMouseOver:
@@ -382,7 +378,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 		/// <summary>
 		/// Custom textbox size management
 		/// </summary>
-		protected override void OnTextBoxResize(object source, System.EventArgs e)
+		protected override void OnTextBoxResize(object source, EventArgs e)
 		{
 			if (_textbox == null)
 				return;
diff --git a/Source/Plugins/BuilderEffects/Interface/JitterSectorsForm.cs b/Source/Plugins/BuilderEffects/Interface/JitterSectorsForm.cs
index cfc24d2fe4bc8d5e5ef010c049e2b07e0fa225cd..62b0e3894241fd84f00070b7eb32cbf81b3354eb 100644
--- a/Source/Plugins/BuilderEffects/Interface/JitterSectorsForm.cs
+++ b/Source/Plugins/BuilderEffects/Interface/JitterSectorsForm.cs
@@ -450,7 +450,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 
 			for(int i = 0; i < sectorData.Count; i++) {
 				SectorData sd = sectorData[i];
-				sd.JitterFloorHeight = (float)(rnd.Next(-100, 100) / 100f);
+				sd.JitterFloorHeight = rnd.Next(-100, 100) / 100f;
 				sectorData[i] = sd;
 			}
 		}
@@ -460,7 +460,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 
 			for(int i = 0; i < sectorData.Count; i++) {
 				SectorData sd = sectorData[i];
-				sd.JitterCeilingHeight = (float)(rnd.Next(-100, 100) / 100f);
+				sd.JitterCeilingHeight = rnd.Next(-100, 100) / 100f;
 				sectorData[i] = sd;
 			}
 		}
diff --git a/Source/Plugins/BuilderEffects/Interface/JitterThingsForm.cs b/Source/Plugins/BuilderEffects/Interface/JitterThingsForm.cs
index 8d2791bd212108f3d95ae1cc2f0989f0d601a92d..306693ab36956acc9555cc6a049d34737bcf8de5 100644
--- a/Source/Plugins/BuilderEffects/Interface/JitterThingsForm.cs
+++ b/Source/Plugins/BuilderEffects/Interface/JitterThingsForm.cs
@@ -32,7 +32,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 
 		public JitterThingsForm(string editingModeName) {
 			this.editingModeName = editingModeName;
-			this.HelpRequested += new HelpEventHandler(JitterThingsForm_HelpRequested);
+			this.HelpRequested += JitterThingsForm_HelpRequested;
 
 			InitializeComponent();
 
diff --git a/Source/Plugins/BuilderEffects/Interface/JitterVerticesForm.cs b/Source/Plugins/BuilderEffects/Interface/JitterVerticesForm.cs
index 160b9f5e2a94b1f1ec6a9ae24f8f8c082a87a6d4..8bbddec2b35a9ce4ad2ef4f35c3caa98227a5e41 100644
--- a/Source/Plugins/BuilderEffects/Interface/JitterVerticesForm.cs
+++ b/Source/Plugins/BuilderEffects/Interface/JitterVerticesForm.cs
@@ -27,7 +27,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects
 		
 		public JitterVerticesForm(string editingModeName) {
 			this.editingModeName = editingModeName;
-			this.HelpRequested += new HelpEventHandler(JitterVerticesForm_HelpRequested);
+			this.HelpRequested += JitterVerticesForm_HelpRequested;
 
 			InitializeComponent();
 
diff --git a/Source/Plugins/BuilderEffects/Interface/MenusForm.cs b/Source/Plugins/BuilderEffects/Interface/MenusForm.cs
index 7351a9291f2c8bd5512492507c04e6e23cacf773..b5a030cb34986249e18f3e9811e43ccc4ad38882 100644
--- a/Source/Plugins/BuilderEffects/Interface/MenusForm.cs
+++ b/Source/Plugins/BuilderEffects/Interface/MenusForm.cs
@@ -1,10 +1,4 @@
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
 using System.Windows.Forms;
 
 namespace CodeImp.DoomBuilder.BuilderEffects
diff --git a/Source/Plugins/BuilderEffects/Properties/AssemblyInfo.cs b/Source/Plugins/BuilderEffects/Properties/AssemblyInfo.cs
index 032345a81ec5c1b7f615440d18ebf51678e93257..45cd99c7a0e90e657a94c8e659c398b291c55768 100644
--- a/Source/Plugins/BuilderEffects/Properties/AssemblyInfo.cs
+++ b/Source/Plugins/BuilderEffects/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
diff --git a/Source/Plugins/BuilderModes/ClassicModes/CurveLinedefsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/CurveLinedefsMode.cs
index ab7e2688145771db73a074e9ec6a9445185fd0eb..fd208439850cc256546239cec8b2dea1a497d9f5 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/CurveLinedefsMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/CurveLinedefsMode.cs
@@ -133,7 +133,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				y = ((float)Math.Sin(a) * R - d) * yDeform;
 
 				//rotate and transform to fit original line
-				vertex = new Vector2D((float)x, (float)y).GetRotated(line.Angle + Angle2D.PIHALF);
+				vertex = new Vector2D(x, y).GetRotated(line.Angle + Angle2D.PIHALF);
 				vertex = vertex.GetTransformed(line.GetCenterPoint().x, line.GetCenterPoint().y, 1, 1);
 
 				points.Add(vertex);
diff --git a/Source/Plugins/BuilderModes/ClassicModes/DragLinedefsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/DragLinedefsMode.cs
index 9cb7f60c07d1d1d3bf4e6207a6965e0335ff8a28..06c2831264791aa7ee1423308bcfcfcabf78216b 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/DragLinedefsMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/DragLinedefsMode.cs
@@ -17,7 +17,6 @@
 #region ================== Namespaces
 
 using System;
-using System.Collections;
 using System.Collections.Generic;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
diff --git a/Source/Plugins/BuilderModes/ClassicModes/DragSectorsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/DragSectorsMode.cs
index 057f6a4f792302f70df01aa2edfe5321b9475a90..8f577c62650d10d51e452d7472bddf2b410d7953 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/DragSectorsMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/DragSectorsMode.cs
@@ -17,7 +17,6 @@
 #region ================== Namespaces
 
 using System;
-using System.Collections;
 using System.Collections.Generic;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
diff --git a/Source/Plugins/BuilderModes/ClassicModes/DrawCurveMode.cs b/Source/Plugins/BuilderModes/ClassicModes/DrawCurveMode.cs
index b2c7b6e6c58e48354edd118538e9867d027b591e..fc7f6bcf1906ef6535207f4cbd040e2da46fca65 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/DrawCurveMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/DrawCurveMode.cs
@@ -164,7 +164,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				//if we have a curve...
 				if(points.Count > 2){
 					//is it a closed curve?
-					int lastPoint = 0;
+					int lastPoint;
 					if(points[0].pos == points[points.Count - 1].pos) {
 						lastPoint = curve.Segments.Count;
 					} else {
diff --git a/Source/Plugins/BuilderModes/ClassicModes/EditSelectionMode.cs b/Source/Plugins/BuilderModes/ClassicModes/EditSelectionMode.cs
index 6b4ca1d5f44589d2ce132bb750d33e8f4748a6ec..f3e4878e7b979a31acd060cbc5a76b2c6dff05f9 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/EditSelectionMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/EditSelectionMode.cs
@@ -1203,17 +1203,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
 							// loses both its sidedefs because it doesn't join any sector)
 							//if((s.Other != null) && !s.Other.Sector.Fields.ContainsKey(MapSet.VirtualSectorField))
 							{
-								Sidedef joinsidedef = null;
-								
 								// Find out in which sector this was pasted
 								Vector2D testpoint = s.Line.GetSidePoint(!s.IsFront);
 								Linedef nl = MapSet.NearestLinedef(General.Map.Map.GetMarkedLinedefs(false), testpoint);
-								if(nl != null)
-								{
-									if(nl.SideOfLine(testpoint) <= 0)
-										joinsidedef = nl.Front;
-									else
-										joinsidedef = nl.Back;
+								if(nl != null) {
+									Sidedef joinsidedef = (nl.SideOfLine(testpoint) <= 0 ? nl.Front : nl.Back);
 
 									// Join?
 									if(joinsidedef != null)
diff --git a/Source/Plugins/BuilderModes/ClassicModes/FlatAlignMode.cs b/Source/Plugins/BuilderModes/ClassicModes/FlatAlignMode.cs
index 423f53d21cd6407baae979c8db2f5b7af3f7662f..cd613cbebfa75d9ff7b447e87eecb2927a91a7f7 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/FlatAlignMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/FlatAlignMode.cs
@@ -447,7 +447,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 							for(int i = 0; i < 8; i++)
 							{
 								// Make the vectors
-								float angle = (float)i * Angle2D.PI * 0.25f;
+								float angle = i * Angle2D.PI * 0.25f;
 								Vector2D gridvec = Vector2D.FromAngle(angle);
 								Vector3D rotvec = Vector2D.FromAngle(deltaangle + rotationoffset);
 
diff --git a/Source/Plugins/BuilderModes/ClassicModes/MakeSectorMode.cs b/Source/Plugins/BuilderModes/ClassicModes/MakeSectorMode.cs
index 74cd99b185311ca67d8f10903b5d7a7b622aefa2..32ae16f3a8617c26dade31f8ce03dd142a06e290 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/MakeSectorMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/MakeSectorMode.cs
@@ -517,7 +517,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			{
 				// Determine the intensity of the flash by time elapsed
 				float curtime = General.Clock.CurrentTime;
-				flashintensity = 1f - (float)((curtime - flashstarttime) / FLASH_DURATION);
+				flashintensity = 1f - ((curtime - flashstarttime) / FLASH_DURATION);
 				if(flashintensity > 0.0f)
 				{
 					// Update vertices in polygon
diff --git a/Source/Plugins/BuilderModes/ClassicModes/SectorsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/SectorsMode.cs
index b259f003eee6b60d754fecff946592be4d2a269f..a750e7aead91a9945a013756a7ad070de69287d2 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/SectorsMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/SectorsMode.cs
@@ -805,7 +805,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 					if(General.Interface.IsActiveWindow)
 					{
 						//mxd. Show realtime vertex edit dialog
-						General.Interface.OnEditFormValuesChanged += new EventHandler(sectorEditForm_OnValuesChanged);
+						General.Interface.OnEditFormValuesChanged += sectorEditForm_OnValuesChanged;
 						DialogResult result = General.Interface.ShowEditSectors(selected);
 						General.Interface.OnEditFormValuesChanged -= sectorEditForm_OnValuesChanged;
 
@@ -1588,8 +1588,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				//mxd. Use UDMF light?
 				string mode = (string)BuilderPlug.Me.MenusForm.BrightnessGradientMode.SelectedItem;
 				if(General.Map.UDMF && (mode == MenusForm.BrightnessGradientModes.Ceilings || mode == MenusForm.BrightnessGradientModes.Floors)) {
-					string lightKey = string.Empty;
-					string lightAbsKey = string.Empty;
+					string lightKey;
+					string lightAbsKey;
 					float startbrightness, endbrightness;
 
 					if(mode == MenusForm.BrightnessGradientModes.Ceilings) {
@@ -1635,7 +1635,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 					}
 				//mxd. Use UDMF light/fade color?
 				} else if(General.Map.UDMF && (mode == MenusForm.BrightnessGradientModes.Fade || mode == MenusForm.BrightnessGradientModes.Light)) {
-					string key = string.Empty;
+					string key;
 					int defaultValue = 0;
 
 					if(mode == MenusForm.BrightnessGradientModes.Light) {
@@ -1737,14 +1737,14 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				General.Interface.DisplayStatus(StatusType.Action, "Created gradient ceiling heights over selected sectors.");
 				General.Map.UndoRedo.CreateUndo("Gradient ceiling heights");
 
-				float startlevel = (float)General.GetByIndex(orderedselection, 0).CeilHeight;
-				float endlevel = (float)General.GetByIndex(orderedselection, orderedselection.Count - 1).CeilHeight;
+				float startlevel = General.GetByIndex(orderedselection, 0).CeilHeight;
+				float endlevel = General.GetByIndex(orderedselection, orderedselection.Count - 1).CeilHeight;
 				float delta = endlevel - startlevel;
 
 				// Go for all sectors in between first and last
 				int index = 0;
 				foreach(Sector s in orderedselection) {
-					float u = (float)index / (float)(orderedselection.Count - 1);
+					float u = (float)index / (orderedselection.Count - 1);
 					float b = startlevel + delta * u;
 					s.CeilHeight = (int)b;
 					index++;
diff --git a/Source/Plugins/BuilderModes/ClassicModes/SnapVerticesMode.cs b/Source/Plugins/BuilderModes/ClassicModes/SnapVerticesMode.cs
index 559c28b39a5af0c412e435fd19aa84a9f21749f3..330a3fa0c89005ab4b7b37215b88ad818af06420 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/SnapVerticesMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/SnapVerticesMode.cs
@@ -1,6 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.Collections.ObjectModel;
 using System.Drawing;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Editing;
diff --git a/Source/Plugins/BuilderModes/ClassicModes/ThingsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/ThingsMode.cs
index 6d658813e69fb07b3810778eccfbaed1b6fd9247..5806c064ef071a44fbd0bf9c8558540abc563b17 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/ThingsMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/ThingsMode.cs
@@ -403,7 +403,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 						if(!thinginserted || BuilderPlug.Me.EditNewThing)
 						{
 							//mxd. Show realtime thing edit dialog
-							General.Interface.OnEditFormValuesChanged += new EventHandler(thingEditForm_OnValuesChanged);
+							General.Interface.OnEditFormValuesChanged += thingEditForm_OnValuesChanged;
 							DialogResult result = General.Interface.ShowEditThings(selected);
 							General.Interface.OnEditFormValuesChanged -= thingEditForm_OnValuesChanged;
 
diff --git a/Source/Plugins/BuilderModes/ClassicModes/VerticesMode.cs b/Source/Plugins/BuilderModes/ClassicModes/VerticesMode.cs
index 9f4175ee60dd0b380ae791f14adcde6d5235c524..f48e2354a7a457b47c4b56bbbee23463bcce9aad 100644
--- a/Source/Plugins/BuilderModes/ClassicModes/VerticesMode.cs
+++ b/Source/Plugins/BuilderModes/ClassicModes/VerticesMode.cs
@@ -365,7 +365,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 					if(General.Interface.IsActiveWindow)
 					{
 						//mxd. Show realtime vertex edit dialog
-						General.Interface.OnEditFormValuesChanged += new EventHandler(vertexEditForm_OnValuesChanged);
+						General.Interface.OnEditFormValuesChanged += vertexEditForm_OnValuesChanged;
 						DialogResult result = General.Interface.ShowEditVertices(selected);
 						General.Interface.OnEditFormValuesChanged -= vertexEditForm_OnValuesChanged;
 
@@ -737,13 +737,12 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			if(General.Interface.MouseInDisplay)
 			{
 				Vector2D insertpos;
-				Linedef l = null;
-				
+
 				// Create undo
 				General.Map.UndoRedo.CreateUndo("Insert vertex");
 
 				// Snap to geometry?
-				l = General.Map.Map.NearestLinedefRange(mousemappos, BuilderPlug.Me.SplitLinedefsRange / rendererscale);
+				Linedef l = General.Map.Map.NearestLinedefRange(mousemappos, BuilderPlug.Me.SplitLinedefsRange / rendererscale);
 				if(snaptonearest && (l != null))
 				{
 					// Snip to grid also?
diff --git a/Source/Plugins/BuilderModes/ErrorChecks/CheckClosedSectors.cs b/Source/Plugins/BuilderModes/ErrorChecks/CheckClosedSectors.cs
index a0c6edc999b14f2d378822ef4220e150b292af6b..b6799d721475d284391b407fe22b96d01b85bbc4 100644
--- a/Source/Plugins/BuilderModes/ErrorChecks/CheckClosedSectors.cs
+++ b/Source/Plugins/BuilderModes/ErrorChecks/CheckClosedSectors.cs
@@ -99,7 +99,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 					// This is from the sides point of view, where the side is always the "right" of line,
 					// so start and end are flipped depending if the current side is the front of the
 					// line or not
-					if(sd.IsFront == true) {
+					if(sd.IsFront) {
 						vertices[sd.Line.Start] |= 1;
 						vertices[sd.Line.End] |= 2;
 					}
diff --git a/Source/Plugins/BuilderModes/ErrorChecks/CheckStuckThings.cs b/Source/Plugins/BuilderModes/ErrorChecks/CheckStuckThings.cs
index 57b79f37ce464ef1e7abb5478574b368b3fb9bb0..db7210e18a378da9faf8644d77aed8497440fff6 100644
--- a/Source/Plugins/BuilderModes/ErrorChecks/CheckStuckThings.cs
+++ b/Source/Plugins/BuilderModes/ErrorChecks/CheckStuckThings.cs
@@ -169,7 +169,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 					if(info.ErrorCheck >= ThingTypeInfo.THING_ERROR_INSIDE)
 					{
 						// Get the nearest line to see if the thing is outside the map
-						bool outside = false;
+						bool outside;
 						Linedef l = General.Map.Map.NearestLinedef(t.Position);
 						if(l.SideOfLine(t.Position) <= 0)
 						{
diff --git a/Source/Plugins/BuilderModes/ErrorChecks/ErrorResult.cs b/Source/Plugins/BuilderModes/ErrorChecks/ErrorResult.cs
index 5a15a56b23b808518e3d26dcd4a916fa26d0f490..d56d288ffc48d85432d41af0a15307bc4a88b95a 100644
--- a/Source/Plugins/BuilderModes/ErrorChecks/ErrorResult.cs
+++ b/Source/Plugins/BuilderModes/ErrorChecks/ErrorResult.cs
@@ -140,7 +140,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				else if(obj is Thing)
 				{
 					Thing t = (obj as Thing);
-					Vector2D p = (Vector2D)t.Position;
+					Vector2D p = t.Position;
 					points.Add(p);
 					points.Add(p + new Vector2D(t.Size * 2.0f, t.Size * 2.0f));
 					points.Add(p + new Vector2D(t.Size * 2.0f, -t.Size * 2.0f));
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindLinedefNumber.cs b/Source/Plugins/BuilderModes/FindReplace/FindLinedefNumber.cs
index 7364ec04282ae405cf327591c0b19080e32b1033..c373a49a83cd9a124730a8f777043cb7d6673703 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindLinedefNumber.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindLinedefNumber.cs
@@ -53,7 +53,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			List<FindReplaceObject> objs = new List<FindReplaceObject>();
 
 			// Interpret the number given
-			int index = 0;
+			int index;
 			if(int.TryParse(value, out index))
 			{
 				Linedef l = General.Map.Map.GetLinedefByIndex(index);
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindLinedefSectorRef.cs b/Source/Plugins/BuilderModes/FindReplace/FindLinedefSectorRef.cs
index 70536fe55ac48f7394f93315aa4cbc2a297b2362..98dc2e20e40794e1bccd21e3ec7d49df18c37cf8 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindLinedefSectorRef.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindLinedefSectorRef.cs
@@ -76,7 +76,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			// Interpret the number given
-			int tag = 0;
+			int tag;
 			if(int.TryParse(value, out tag))
 			{
 				// Where to search?
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindLinedefTags.cs b/Source/Plugins/BuilderModes/FindReplace/FindLinedefTags.cs
index 64d8ddffc776610d64dab656373d6f7c4700bb58..1683fca5d686e5a73aa287963f9f540f047542dd 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindLinedefTags.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindLinedefTags.cs
@@ -75,7 +75,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			// Interpret the number given
-			int tag = 0;
+			int tag;
 			if(int.TryParse(value, out tag))
 			{
 				// Where to search?
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindLinedefThingRef.cs b/Source/Plugins/BuilderModes/FindReplace/FindLinedefThingRef.cs
index 2bc00222d7c26c6b61055181deb9ce11f5629298..c48441902b5035f39da1cbfad659bb8ed635237b 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindLinedefThingRef.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindLinedefThingRef.cs
@@ -76,7 +76,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			// Interpret the number given
-			int tag = 0;
+			int tag;
 			if(int.TryParse(value, out tag))
 			{
 				// Where to search?
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindLinedefTypes.cs b/Source/Plugins/BuilderModes/FindReplace/FindLinedefTypes.cs
index 4a37974ebd49f3756f5dfa4b652b0790370c8782..a6570136bb3cc35c085b52524f294725daade168 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindLinedefTypes.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindLinedefTypes.cs
@@ -53,7 +53,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		// This is called when the browse button is pressed
 		public override string Browse(string initialvalue)
 		{
-			int num = 0;
+			int num;
 			int.TryParse(initialvalue, out num);
 			return General.Interface.BrowseLinedefActions(BuilderPlug.Me.FindReplaceForm, num).ToString();
 		}
@@ -82,7 +82,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			// Interpret the number given
-			int action = 0;
+			int action;
 			int[] args = null;
 			string[] parts = value.Split(';');
 			bool match;
@@ -100,7 +100,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			{
 				//parse the arg value out
 				if (parts.Length > 1) {
-					args = new int[] {0, 0, 0, 0, 0};
+					args = new[] {0, 0, 0, 0, 0};
 					string[] argparts = parts[1].Split(',');
 					int argout;
 					for(int i = 0; i < argparts.Length && i < args.Length; i++) {
@@ -131,7 +131,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 									match = false;
 									break;
 								}
-								argtext += (x == 0 ? "" : ",") + l.Args[x].ToString();
+								argtext += (x == 0 ? "" : ",") + l.Args[x];
 							}
 							argtext += ")";
 						}
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindReplaceObject.cs b/Source/Plugins/BuilderModes/FindReplace/FindReplaceObject.cs
index 4fe13d65044177c938d0e6899a5357d485abdc09..3cc5a06bb2c3b7b4290adb2e242ea497900a831b 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindReplaceObject.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindReplaceObject.cs
@@ -94,7 +94,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			else if(obj is Thing)
 			{
 				Thing t = (obj as Thing);
-				Vector2D p = (Vector2D)t.Position;
+				Vector2D p = t.Position;
 				points.Add(p);
 				points.Add(p + new Vector2D(t.Size * 2.0f, t.Size * 2.0f));
 				points.Add(p + new Vector2D(t.Size * 2.0f, -t.Size * 2.0f));
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindSectorBrightness.cs b/Source/Plugins/BuilderModes/FindReplace/FindSectorBrightness.cs
index 8e47359d96a91c3565aa1c09b78cca5a53356bb4..0afcd7a173269bdc8652573e1f803ffefacc7ffa 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindSectorBrightness.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindSectorBrightness.cs
@@ -33,7 +33,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			// Interpret the number given
-			int brightness = 0;
+			int brightness;
 			if(int.TryParse(value, out brightness)) {
 				// Where to search?
 				ICollection<Sector> list = withinselection ? General.Map.Map.GetSelectedSectors(true) : General.Map.Map.Sectors;
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindSectorEffect.cs b/Source/Plugins/BuilderModes/FindReplace/FindSectorEffect.cs
index da01f5862d3f360d07488acdf5f229e160a63c0e..662d473cf99689b31baa95f0645c8cfd40fbe32c 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindSectorEffect.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindSectorEffect.cs
@@ -83,7 +83,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			// Interpret the number given
-			int effect = 0;
+			int effect;
 			if(int.TryParse(value, out effect))
 			{
 				// Where to search?
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindSectorFlat.cs b/Source/Plugins/BuilderModes/FindReplace/FindSectorFlat.cs
index 1bc3b17cb2896873daa41981a2d5d4a162d58ef0..e900278e3f3a580866edff5fddfd36ef24aa52c4 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindSectorFlat.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindSectorFlat.cs
@@ -16,12 +16,10 @@
 
 #region ================== Namespaces
 
-using System.Collections;
 using System.Collections.Generic;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.IO;
 using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Rendering;
 using System.Drawing;
 
 #endregion
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindSectorNumber.cs b/Source/Plugins/BuilderModes/FindReplace/FindSectorNumber.cs
index 33f2a54bcb1ce7fd50be1fed9ec91696d1788847..fbfaed896c866ee1e3568bd867786d8be9453e01 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindSectorNumber.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindSectorNumber.cs
@@ -53,7 +53,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			List<FindReplaceObject> objs = new List<FindReplaceObject>();
 
 			// Interpret the number given
-			int index = 0;
+			int index;
 			if(int.TryParse(value, out index))
 			{
 				Sector s = General.Map.Map.GetSectorByIndex(index);
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindSectorTags.cs b/Source/Plugins/BuilderModes/FindReplace/FindSectorTags.cs
index 552bc9452fd557763918c2df88b0f2b702eb7d67..c12410890fa6237a0d93d52273b33df20197c0d5 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindSectorTags.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindSectorTags.cs
@@ -69,7 +69,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 			
 			// Interpret the number given
-			int tag = 0;
+			int tag;
 			if(int.TryParse(value, out tag))
 			{
 				// Where to search?
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindSidedefNumber.cs b/Source/Plugins/BuilderModes/FindReplace/FindSidedefNumber.cs
index 9a6e9410fd69b47ca858b25cabf67fa28be7cab5..9a36d26ce13a442c84392aa9a8483de08f873e7e 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindSidedefNumber.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindSidedefNumber.cs
@@ -72,7 +72,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			List<FindReplaceObject> objs = new List<FindReplaceObject>();
 
 			// Interpret the number given
-			int index = 0;
+			int index;
 			if(int.TryParse(value, out index))
 			{
 				Sidedef sd = General.Map.Map.GetSidedefByIndex(index);
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindSidedefTexture.cs b/Source/Plugins/BuilderModes/FindReplace/FindSidedefTexture.cs
index 285fca57e71ea4f9e2ec2c8daac0ae9489a8c603..3f9870ff77e1f75cfe4da905726a2498a6f85876 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindSidedefTexture.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindSidedefTexture.cs
@@ -16,7 +16,6 @@
 
 #region ================== Namespaces
 
-using System.Collections;
 using System.Collections.Generic;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.IO;
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindThingAction.cs b/Source/Plugins/BuilderModes/FindReplace/FindThingAction.cs
index e8488e21f01038d57c365792e3a1060c09fc977b..a5ef596a2bac30d822244266c530c30014356839 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindThingAction.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindThingAction.cs
@@ -92,7 +92,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			// Interpret the number given
-			int findaction = 0;
+			int findaction;
 			int[] args = null;
 			string[] parts = value.Split(';');
 			bool match;
@@ -112,7 +112,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				//parse the arg value out
 				if (parts.Length > 1)
 				{
-					args = new int[] { 0, 0, 0, 0, 0 };
+					args = new[] { 0, 0, 0, 0, 0 };
 					string[] argparts = parts[1].Split(',');
 					int argout;
 					for (int i = 0; i < argparts.Length && i < args.Length; i++)
@@ -145,7 +145,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 									match = false;
 									break;
 								}
-								argtext += (x == 0 ? "" : ",") + t.Args[x].ToString();
+								argtext += (x == 0 ? "" : ",") + t.Args[x];
 							}
 							argtext += ")";
 						}
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindThingAngle.cs b/Source/Plugins/BuilderModes/FindReplace/FindThingAngle.cs
index 275b563594031a533a3362c3e1a9f8ec9c455c1f..74e42e9204819c1c9b50b3c582546e21f075ddff 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindThingAngle.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindThingAngle.cs
@@ -83,7 +83,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			// Interpret the number given
-			int angle = 0;
+			int angle;
 			if(int.TryParse(value, out angle))
 			{
 				// Where to search?
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindThingNumber.cs b/Source/Plugins/BuilderModes/FindReplace/FindThingNumber.cs
index a7095b31e88b487ac97afc1802e9084fe223146c..62da21ac1177acfaff4e0499f3c3757d1041030b 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindThingNumber.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindThingNumber.cs
@@ -56,7 +56,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			List<FindReplaceObject> objs = new List<FindReplaceObject>();
 
 			// Interpret the number given
-			int index = 0;
+			int index;
 			if(int.TryParse(value, out index))
 			{
 				Thing t = General.Map.Map.GetThingByIndex(index);
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindThingSectorRef.cs b/Source/Plugins/BuilderModes/FindReplace/FindThingSectorRef.cs
index f84eeca230f0f8a5d6d1f4e93a1aaffce6971c6f..ece1d4e3a4b221b1eb13260024d4fc501b9e84f5 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindThingSectorRef.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindThingSectorRef.cs
@@ -79,7 +79,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			// Interpret the number given
-			int tag = 0;
+			int tag;
 			if(int.TryParse(value, out tag))
 			{
 				// Where to search?
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindThingTag.cs b/Source/Plugins/BuilderModes/FindReplace/FindThingTag.cs
index d1133255e8a3a92781281309e2f469556892f507..7bdca71b6c2b1586a9a8c22d983d9d4277e8b556 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindThingTag.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindThingTag.cs
@@ -79,7 +79,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			// Interpret the number given
-			int tag = 0;
+			int tag;
 			if(int.TryParse(value, out tag))
 			{
 				// Where to search?
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindThingThingRef.cs b/Source/Plugins/BuilderModes/FindReplace/FindThingThingRef.cs
index d2e6fdcad1f0ddad519f29fd9e85f05c4f4b3f92..89f21909cacaa316e78520c2e434593eebbe9a1a 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindThingThingRef.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindThingThingRef.cs
@@ -79,7 +79,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			// Interpret the number given
-			int tag = 0;
+			int tag;
 			if(int.TryParse(value, out tag))
 			{
 				// Where to search?
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindThingType.cs b/Source/Plugins/BuilderModes/FindReplace/FindThingType.cs
index beb25a2ec1eb6ab343913e1b8099f5dd6c895429..fcc1031e5e86c6d8e500fa95ec4171f4b572d5ba 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindThingType.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindThingType.cs
@@ -85,7 +85,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			// Interpret the number given
-			int findtype = 0;
+			int findtype;
 			if(int.TryParse(value, out findtype))
 			{
 				// Where to search?
diff --git a/Source/Plugins/BuilderModes/FindReplace/FindVertexNumber.cs b/Source/Plugins/BuilderModes/FindReplace/FindVertexNumber.cs
index 09e30ed6c67971f069c96b924c0014449c92825d..f5b7f61368916fadf8f59b28e96a1dd5ea120d7d 100644
--- a/Source/Plugins/BuilderModes/FindReplace/FindVertexNumber.cs
+++ b/Source/Plugins/BuilderModes/FindReplace/FindVertexNumber.cs
@@ -72,7 +72,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			List<FindReplaceObject> objs = new List<FindReplaceObject>();
 
 			// Interpret the number given
-			int index = 0;
+			int index;
 			if(int.TryParse(value, out index))
 			{
 				Vertex v = General.Map.Map.GetVertexByIndex(index);
diff --git a/Source/Plugins/BuilderModes/Interface/CurveLinedefsForm.cs b/Source/Plugins/BuilderModes/Interface/CurveLinedefsForm.cs
index cb3657beeaaca95ad01f56182fdd6626b185db99..d985666a04ebc6c64de0f64fb90b09386e8f2556 100644
--- a/Source/Plugins/BuilderModes/Interface/CurveLinedefsForm.cs
+++ b/Source/Plugins/BuilderModes/Interface/CurveLinedefsForm.cs
@@ -42,8 +42,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		#region ================== Properties
 
 		public int Vertices { get { return -verticesbar.Value; } }
-		public float Distance { get { return (float)-distancebar.Value; } }
-		public float Angle { get { return Angle2D.DegToRad((float)-anglebar.Value); } }
+		public float Distance { get { return -distancebar.Value; } }
+		public float Angle { get { return Angle2D.DegToRad(-anglebar.Value); } }
 		public bool FixedCurve { get { return circular.Checked; } }
 		public bool Backwards { get { return backwards.Checked; } }
 
diff --git a/Source/Plugins/BuilderModes/Interface/ErrorCheckForm.cs b/Source/Plugins/BuilderModes/Interface/ErrorCheckForm.cs
index 73405dff1d8ef4cbe6467ec7fee01bdc3cf89060..8e02f7fd0a288b85304309b068e7781005c68077 100644
--- a/Source/Plugins/BuilderModes/Interface/ErrorCheckForm.cs
+++ b/Source/Plugins/BuilderModes/Interface/ErrorCheckForm.cs
@@ -48,7 +48,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		
 		#region ================== Variables
 		
-		private volatile bool running = false;
+		private volatile bool running;
 		private Thread checksthread;
 		private BlockMap<BlockEntry> blockmap;
 		private static bool applyToAll; //mxd
@@ -116,7 +116,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		{
 			if(results.InvokeRequired)
 			{
-				CallResultMethodDelegate d = new CallResultMethodDelegate(SubmitResult);
+				CallResultMethodDelegate d = SubmitResult;
 				try { progress.Invoke(d, result); }
 				catch(ThreadInterruptedException) { }
 			}
@@ -130,7 +130,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		{
 			if(progress.InvokeRequired)
 			{
-				CallIntMethodDelegate d = new CallIntMethodDelegate(SetProgressMaximum);
+				CallIntMethodDelegate d = SetProgressMaximum;
 				try { progress.Invoke(d, maximum); }
 				catch(ThreadInterruptedException) { }
 			}
@@ -144,7 +144,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		{
 			if(progress.InvokeRequired)
 			{
-				CallIntMethodDelegate d = new CallIntMethodDelegate(AddProgressValue);
+				CallIntMethodDelegate d = AddProgressValue;
 				try { progress.Invoke(d, value); }
 				catch(ThreadInterruptedException) { }
 			}
@@ -159,7 +159,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		{
 			if(this.InvokeRequired)
 			{
-				CallVoidMethodDeletage d = new CallVoidMethodDeletage(StopChecking);
+				CallVoidMethodDeletage d = StopChecking;
 				this.Invoke(d);
 			}
 			else
@@ -215,7 +215,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			
 			// Start checking
 			running = true;
-			checksthread = new Thread(new ThreadStart(RunChecks));
+			checksthread = new Thread(RunChecks);
 			checksthread.Name = "Error Checking Management";
 			checksthread.Priority = ThreadPriority.Normal;
 			checksthread.Start();
@@ -273,7 +273,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				if(c.Checked)
 				{
 					Type t = (c.Tag as Type);
-					ErrorChecker checker = null;
+					ErrorChecker checker;
 					
 					try
 					{
@@ -319,7 +319,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				while((threads.Count < maxthreads) && (nextchecker < checkers.Count))
 				{
 					ErrorChecker c = checkers[nextchecker++];
-					Thread t = new Thread(new ThreadStart(c.Run));
+					Thread t = new Thread(c.Run);
 					t.Name = "Error Checker '" + c.GetType().Name + "'";
 					t.Priority = ThreadPriority.BelowNormal;
 					t.Start();
diff --git a/Source/Plugins/BuilderModes/Interface/FindReplaceForm.cs b/Source/Plugins/BuilderModes/Interface/FindReplaceForm.cs
index b7b17aed6c1a4fed8a6a73d7557173d2c5d89f4f..f272228372b61b94e1140f6df508669ddd6f5818 100644
--- a/Source/Plugins/BuilderModes/Interface/FindReplaceForm.cs
+++ b/Source/Plugins/BuilderModes/Interface/FindReplaceForm.cs
@@ -39,9 +39,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		private FindReplaceType newfinder;
 		private FindReplaceType finder;
 		private List<FindReplaceType> findtypeslist;
-		bool controlpressed = false;
-		bool shiftpressed = false;
-		bool suppressevents = false;
+		bool controlpressed;
+		bool shiftpressed;
+		bool suppressevents;
 		
 		#endregion
 
diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs
index 0f06729bea18fa28c9ebdbd6d3506f434f918eaa..60f87922f26b6ddb73ff0059d267265b560609cc 100644
--- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs
@@ -26,9 +26,7 @@ using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.VisualModes;
-using CodeImp.DoomBuilder.Types;
 using CodeImp.DoomBuilder.GZBuilder.Tools;
-using CodeImp.DoomBuilder.Windows;
 
 #endregion
 
@@ -148,7 +146,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			//mxd. Modify offsets based on surface and camera angles
-			float angle = 0;
+			float angle;
 
 			if(GeometryType == VisualGeometryType.CEILING)
 				angle = Angle2D.DegToRad(level.sector.Fields.GetValue("rotationceiling", 0f));
@@ -231,8 +229,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			if(!(mode.HighlightedObject is BaseVisualSector)) return;
 			
 			//do we need to align this? (and also grab texture scale while we are at it)
-			float scaleX = 1.0f;
-			float scaleY = 1.0f;
+			float scaleX, scaleY;
 			bool isFloor = (geoType == VisualGeometryType.FLOOR);
 
 			if(mode.HighlightedTarget is VisualFloor) {
@@ -256,7 +253,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			//find a linedef to align to
 			Vector2D hitpos = mode.GetHitPosition();
 			if(!hitpos.IsFinite()) return;
-			bool isFront = false;
 
 			//align to line of highlighted sector, which is closest to hitpos
 			Sector highlightedSector = ((BaseVisualSector)mode.HighlightedObject).Sector;
@@ -266,7 +262,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			Linedef targetLine = MapSet.NearestLinedef(lines, hitpos);
 			if(targetLine == null) return;
 
-			isFront = targetLine.SideOfLine(hitpos) > 0;
+			bool isFront = targetLine.SideOfLine(hitpos) > 0;
 			Sector.Sector.Fields.BeforeFieldsChange();
 
 			//find an angle to rotate texture
@@ -576,7 +572,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			if(!General.Map.UDMF) return;
 
 			//create undo
-			string rest = string.Empty;
+			string rest;
 			if(alignx && aligny) rest = "(X and Y)";
 			else if(alignx)	rest = "(X)";
 			else rest = "(Y)";
@@ -680,7 +676,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 					}
 				}
 
-				General.Interface.OnEditFormValuesChanged += new System.EventHandler(Interface_OnEditFormValuesChanged); //mxd
+				General.Interface.OnEditFormValuesChanged += Interface_OnEditFormValuesChanged; //mxd
 				mode.StartRealtimeInterfaceUpdate(SelectionType.Sectors); //mxd
 				General.Interface.ShowEditSectors(sectors);
 				mode.StopRealtimeInterfaceUpdate(SelectionType.Sectors); //mxd
@@ -692,7 +688,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		}
 
 		//mxd
-		private void Interface_OnEditFormValuesChanged(object sender, System.EventArgs e) {
+		private void Interface_OnEditFormValuesChanged(object sender, EventArgs e) {
 			foreach(BaseVisualSector vs in updateList)
 				vs.UpdateSectorGeometry(true);
 		}
diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs
index 07b232ebe617a9947fab2bc4fb78ea885dc82d19..67d6c5023f904678cfb400464114bccbb686ad0f 100644
--- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs
@@ -98,7 +98,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		// This sets the renderstyle from linedef information and returns the alpha value or the vertices
 		protected byte SetLinedefRenderstyle(bool solidasmask)
 		{
-			byte alpha = 255;
+			byte alpha;
 
 			// From TranslucentLine action
 			if(Sidedef.Line.Action == 208)
@@ -804,7 +804,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		public virtual void OnTextureAlign(bool alignx, bool aligny)
 		{
 			//mxd
-			string rest = string.Empty;
+			string rest;
 			if(alignx && aligny) rest = "(X and Y)";
 			else if(alignx)	rest = "(X)";
 			else rest = "(Y)";
@@ -998,7 +998,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 						updateList.Add((BaseVisualSector)mode.GetVisualSector(l.Back.Sector));
 				}
 
-				General.Interface.OnEditFormValuesChanged += new System.EventHandler(Interface_OnEditFormValuesChanged);
+				General.Interface.OnEditFormValuesChanged += Interface_OnEditFormValuesChanged;
 				mode.StartRealtimeInterfaceUpdate(SelectionType.Linedefs);
 				DialogResult result = General.Interface.ShowEditLinedefs(linedefs);
 				mode.StopRealtimeInterfaceUpdate(SelectionType.Linedefs);
@@ -1030,7 +1030,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		}
 
 		//mxd
-		private void Interface_OnEditFormValuesChanged(object sender, System.EventArgs e) {
+		private void Interface_OnEditFormValuesChanged(object sender, EventArgs e) {
 			foreach(BaseVisualSector vs in updateList)
 				vs.UpdateSectorGeometry(false);
 		}
diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
index 9ed8ab1eb22e3d7024dc114d63e0370ffb55a3ff..f8479f031c54e08feb6eb34ad56442a81c7d15ec 100644
--- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
@@ -17,7 +17,6 @@
 #region ================== Namespaces
 
 using System;
-using System.Collections;
 using System.Collections.Generic;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Windows;
@@ -2166,7 +2165,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			//get target brightness
-			int targetBrightness = int.MinValue;
+			int targetBrightness;
 			if(highlighted is VisualFloor) {
 				VisualFloor v = highlighted as VisualFloor;
 				targetBrightness = v.Level.sector.Fields.GetValue("lightfloor", 0);
@@ -2203,11 +2202,6 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				return;
 			}
 
-			if (targetBrightness == int.MinValue) {
-				General.Interface.DisplayStatus(StatusType.Warning, "Highlight a surface, to which you want to match the brightness.");
-				return;
-			}
-
 			//make undo
 			CreateUndo("Match Brightness");
 			targetBrightness = General.Clamp(targetBrightness, 0, 255);
@@ -2502,7 +2496,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 
 		//mxd
 		private void autoAlignTexturesToSelected(bool alignX, bool alignY) {
-			string rest = string.Empty;
+			string rest;
 			if(alignX && alignY) rest = "(X and Y)";
 			else if(alignX) rest = "(X)";
 			else rest = "(Y)";
@@ -2996,7 +2990,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				return;
 			}
 
-			bool update = false;
+			bool update;
 			List<BaseVisualSector> toUpdate = new List<BaseVisualSector>();
 			General.Map.UndoRedo.CreateUndo("Toggle Slope");
 
@@ -3427,9 +3421,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
 						offset = (float)Math.Round(offset); //mxd
 
 						if(matchtop)
-							j.sidedef.Fields["offsety_top"] = new UniValue(UniversalType.Float, GetTopOffsetY(j.sidedef, offset, j.scaleY, true) % (float)texture.Height); //mxd
+							j.sidedef.Fields["offsety_top"] = new UniValue(UniversalType.Float, GetTopOffsetY(j.sidedef, offset, j.scaleY, true) % texture.Height); //mxd
 						if(matchbottom)
-							j.sidedef.Fields["offsety_bottom"] = new UniValue(UniversalType.Float, GetBottomOffsetY(j.sidedef, offset, j.scaleY, true) % (float)texture.Height); //mxd
+							j.sidedef.Fields["offsety_bottom"] = new UniValue(UniversalType.Float, GetBottomOffsetY(j.sidedef, offset, j.scaleY, true) % texture.Height); //mxd
 						if(matchmid) {
 							//mxd. Side is part of a 3D floor?
 							if(j.sidedef.Index != j.controlSide.Index) {
@@ -3437,7 +3431,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 								offset -= j.controlSide.Fields.GetValue("offsety_mid", 0.0f);
 								j.sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, offset % texture.Height); //mxd
 							} else {
-								j.sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, GetMiddleOffsetY(j.sidedef, offset, j.scaleY, true) % (float)texture.Height); //mxd
+								j.sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, GetMiddleOffsetY(j.sidedef, offset, j.scaleY, true) % texture.Height); //mxd
 							}
 						}
 					}
diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs
index 1ce3286db5a65fec97bc570d5211a410e17369a4..baa7667d7d3fff63cf6c8a38fc3c1cda736af2ce 100644
--- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs
@@ -25,7 +25,6 @@ using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.VisualModes;
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Data;
-using System.Drawing.Drawing2D;
 
 #endregion
 
@@ -533,7 +532,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 						updateList.Add(vt as BaseVisualThing);
 				}
 
-				General.Interface.OnEditFormValuesChanged += new System.EventHandler(Interface_OnEditFormValuesChanged);
+				General.Interface.OnEditFormValuesChanged += Interface_OnEditFormValuesChanged;
 				mode.StartRealtimeInterfaceUpdate(SelectionType.Things);
 				General.Interface.ShowEditThings(things);
 				mode.StopRealtimeInterfaceUpdate(SelectionType.Things);
@@ -545,7 +544,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		}
 
 		//mxd
-		private void Interface_OnEditFormValuesChanged(object sender, System.EventArgs e) {
+		private void Interface_OnEditFormValuesChanged(object sender, EventArgs e) {
 			foreach(BaseVisualThing vt in updateList)
 				vt.Changed = true;
 		}
@@ -582,7 +581,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			if ((General.Map.UndoRedo.NextUndo == null) || (General.Map.UndoRedo.NextUndo.TicketID != undoticket))
 				undoticket = mode.CreateUndo("Move thing");
 			Thing.Move(newPosition);
-			mode.SetActionResult("Changed thing position to " + Thing.Position.ToString() + ".");
+			mode.SetActionResult("Changed thing position to " + Thing.Position + ".");
 
 			// Update what must be updated
 			ThingData td = mode.GetThingData(this.Thing);
@@ -601,7 +600,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			if ((General.Map.UndoRedo.NextUndo == null) || (General.Map.UndoRedo.NextUndo.TicketID != undoticket))
 				undoticket = mode.CreateUndo("Rotate thing");
 			Thing.Rotate(ammount);
-			mode.SetActionResult("Changed thing rotation to " + Thing.AngleDoom.ToString() + ".");
+			mode.SetActionResult("Changed thing rotation to " + Thing.AngleDoom + ".");
 			this.Changed = true;
 		}
 		
diff --git a/Source/Plugins/BuilderModes/VisualModes/EffectPlaneCopySlope.cs b/Source/Plugins/BuilderModes/VisualModes/EffectPlaneCopySlope.cs
index 06b33415fa8ab21271efbb4188a1f51aacecd558..3bbfd9a0a032d07046e50867df8f311c04dc81f0 100644
--- a/Source/Plugins/BuilderModes/VisualModes/EffectPlaneCopySlope.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/EffectPlaneCopySlope.cs
@@ -38,8 +38,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			}
 
 			//check which arguments we must use
-			int floorArg = -1;
-			int ceilingArg = -1;
+			int floorArg, ceilingArg;
 
 			if(isFront) {
 				floorArg = floorCopyToFront ? 2 : 0;
diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs b/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs
index e1a3a04701cbe74a76f583e38e86d2e7c0f8f6fb..6d6bb19c8276f0038d59e08937052fd284d7e7c1 100644
--- a/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs
@@ -334,7 +334,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 
 				int light = Sector.Sector.Fields.GetValue("lightceiling", 0);
 				bool absolute = Sector.Sector.Fields.GetValue("lightceilingabsolute", false);
-				int newLight = 0;
+				int newLight;
 
 				if(up)
 					newLight = General.Map.Config.BrightnessLevels.GetNextHigher(light, absolute);
diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualLower.cs b/Source/Plugins/BuilderModes/VisualModes/VisualLower.cs
index 49595c5283e23d967bb916174e2219901fa4254a..33576411d2102a6727f031b64fe8be804d2da107 100644
--- a/Source/Plugins/BuilderModes/VisualModes/VisualLower.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/VisualLower.cs
@@ -135,10 +135,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			if(Sidedef.Line.IsFlagSet(General.Map.Config.LowerUnpeggedFlag))
 			{
 				// When lower unpegged is set, the lower texture is bound to the bottom
-				tp.tlt.y = (float)Sidedef.Sector.CeilHeight - (float)Sidedef.Other.Sector.FloorHeight;
+				tp.tlt.y = (float)Sidedef.Sector.CeilHeight - Sidedef.Other.Sector.FloorHeight;
 			}
 			tp.trb.x = tp.tlt.x + Sidedef.Line.Length;
-			tp.trb.y = tp.tlt.y + ((float)Sidedef.Other.Sector.FloorHeight - ((float)Sidedef.Sector.FloorHeight + floorbias));
+			tp.trb.y = tp.tlt.y + (Sidedef.Other.Sector.FloorHeight - (Sidedef.Sector.FloorHeight + floorbias));
 			
 			// Apply texture offset
 			tp.tlt += tof;
@@ -149,8 +149,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			tp.trb /= tsz;
 			
 			// Left top and right bottom of the geometry that
-			tp.vlt = new Vector3D(vl.x, vl.y, (float)Sidedef.Other.Sector.FloorHeight);
-			tp.vrb = new Vector3D(vr.x, vr.y, (float)Sidedef.Sector.FloorHeight + floorbias);
+			tp.vlt = new Vector3D(vl.x, vl.y, Sidedef.Other.Sector.FloorHeight);
+			tp.vrb = new Vector3D(vr.x, vr.y, Sidedef.Sector.FloorHeight + floorbias);
 			
 			// Make the right-top coordinates
 			tp.trt = new Vector2D(tp.trb.x, tp.tlt.y);
@@ -261,7 +261,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 
 			int light = Sidedef.Fields.GetValue("light", 0);
 			bool absolute = Sidedef.Fields.GetValue("lightabsolute", false);
-			int newLight = 0;
+			int newLight;
 
 			if(up)
 				newLight = General.Map.Config.BrightnessLevels.GetNextHigher(light, absolute);
diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualMiddle3D.cs b/Source/Plugins/BuilderModes/VisualModes/VisualMiddle3D.cs
index 7a05cc26eaa9f3e595aca4043de4fba4c8d7e3c0..70a7b067411494f18dec0a144262d542e5d793b8 100644
--- a/Source/Plugins/BuilderModes/VisualModes/VisualMiddle3D.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/VisualMiddle3D.cs
@@ -324,7 +324,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				((BaseVisualSector)mode.GetVisualSector(Sidedef.Other.Sector)).Rebuild();
 
 			//mxd. As well as model sector
-			((BaseVisualSector)mode.GetVisualSector(extrafloor.Linedef.Front.Sector)).UpdateSectorGeometry(false);
+			mode.GetVisualSector(extrafloor.Linedef.Front.Sector).UpdateSectorGeometry(false);
 		}
 
 		protected override void SetTextureOffsetX(int x)
@@ -344,8 +344,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			Sidedef.Fields.BeforeFieldsChange();
 			float oldx = Sidedef.Fields.GetValue("offsetx_mid", 0.0f);
 			float oldy = Sidedef.Fields.GetValue("offsety_mid", 0.0f);
-			Sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, oldx + (float)xy.X);
-			Sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, oldy + (float)xy.Y);
+			Sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, oldx + xy.X);
+			Sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, oldy + xy.Y);
 		}
 
 		protected override Point GetTextureOffset()
diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleBack.cs b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleBack.cs
index cb0bc34c0cda43db63be0290b94deec67cf4147c..413e76b4a0d1dca73c50ee2830f98de09e708c23 100644
--- a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleBack.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleBack.cs
@@ -175,7 +175,7 @@ namespace CodeImp.DoomBuilder.BuilderModes {
 				poly.Add(new Vector3D(vr.x, vr.y, fr));
 				
 				// Determine initial color
-				int lightlevel = 0;
+				int lightlevel;
 				if(((sourceside.Line.Args[2] & (int)Effect3DFloor.Flags.DisableLighting) != 0)) {
 					lightlevel = lightabsolute ? lightvalue : sd.Ceiling.brightnessbelow + lightvalue;
 				}else{
@@ -281,7 +281,7 @@ namespace CodeImp.DoomBuilder.BuilderModes {
 			((BaseVisualSector)mode.GetVisualSector(Sidedef.Other.Sector)).Rebuild();
 
 			//mxd. As well as model sector
-			((BaseVisualSector)mode.GetVisualSector(extrafloor.Linedef.Front.Sector)).UpdateSectorGeometry(false);
+			mode.GetVisualSector(extrafloor.Linedef.Front.Sector).UpdateSectorGeometry(false);
 		}
 
 		protected override void SetTextureOffsetX(int x)
@@ -326,7 +326,7 @@ namespace CodeImp.DoomBuilder.BuilderModes {
 
 			int light = Sidedef.Fields.GetValue("light", 0);
 			bool absolute = Sidedef.Fields.GetValue("lightabsolute", false);
-			int newLight = 0;
+			int newLight;
 
 			if(up)
 				newLight = General.Map.Config.BrightnessLevels.GetNextHigher(light, absolute);
diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleDouble.cs b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleDouble.cs
index 62486d9a1c0b4230a0dcf374d4606fa43edfde1f..ef203a498402c0a6cb3bde133f2f37f467116e66 100644
--- a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleDouble.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleDouble.cs
@@ -315,7 +315,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 
 			int light = Sidedef.Fields.GetValue("light", 0);
 			bool absolute = Sidedef.Fields.GetValue("lightabsolute", false);
-			int newLight = 0;
+			int newLight;
 
 			if(up)
 				newLight = General.Map.Config.BrightnessLevels.GetNextHigher(light, absolute);
diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleSingle.cs b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleSingle.cs
index de6ea4e49a9dee854c43e67e039291639324f104..8ce0c87e2dd0de5bb93a085eb08c7f670eadaeac 100644
--- a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleSingle.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleSingle.cs
@@ -133,10 +133,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			if(Sidedef.Line.IsFlagSet(General.Map.Config.LowerUnpeggedFlag))
 			{
 				// When lower unpegged is set, the middle texture is bound to the bottom
-				tp.tlt.y = tsz.y - (float)(Sidedef.Sector.CeilHeight - Sidedef.Sector.FloorHeight);
+				tp.tlt.y = tsz.y - (Sidedef.Sector.CeilHeight - Sidedef.Sector.FloorHeight);
 			}
 			tp.trb.x = tp.tlt.x + Sidedef.Line.Length;
-			tp.trb.y = tp.tlt.y + ((float)Sidedef.Sector.CeilHeight - ((float)Sidedef.Sector.FloorHeight + floorbias));
+			tp.trb.y = tp.tlt.y + (Sidedef.Sector.CeilHeight - (Sidedef.Sector.FloorHeight + floorbias));
 			
 			// Apply texture offset
 			tp.tlt += tof;
@@ -147,8 +147,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			tp.trb /= tsz;
 			
 			// Left top and right bottom of the geometry that
-			tp.vlt = new Vector3D(vl.x, vl.y, (float)Sidedef.Sector.CeilHeight);
-			tp.vrb = new Vector3D(vr.x, vr.y, (float)Sidedef.Sector.FloorHeight + floorbias);
+			tp.vlt = new Vector3D(vl.x, vl.y, Sidedef.Sector.CeilHeight);
+			tp.vrb = new Vector3D(vr.x, vr.y, Sidedef.Sector.FloorHeight + floorbias);
 			
 			// Make the right-top coordinates
 			tp.trt = new Vector2D(tp.trb.x, tp.tlt.y);
@@ -257,7 +257,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 
 			int light = Sidedef.Fields.GetValue("light", 0);
 			bool absolute = Sidedef.Fields.GetValue("lightabsolute", false);
-			int newLight = 0;
+			int newLight;
 
 			if(up)
 				newLight = General.Map.Config.BrightnessLevels.GetNextHigher(light, absolute);
diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualUpper.cs b/Source/Plugins/BuilderModes/VisualModes/VisualUpper.cs
index 13e59b1349c68068ce2a46138cac2d7cf488d1d9..5ab3cca60234915ac65283469c0a031611209749 100644
--- a/Source/Plugins/BuilderModes/VisualModes/VisualUpper.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/VisualUpper.cs
@@ -135,10 +135,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			if(!Sidedef.Line.IsFlagSet(General.Map.Config.UpperUnpeggedFlag))
 			{
 				// When lower unpegged is set, the lower texture is bound to the bottom
-				tp.tlt.y = tsz.y - ((float)Sidedef.Sector.CeilHeight - (float)Sidedef.Other.Sector.CeilHeight);
+				tp.tlt.y = tsz.y - ((float)Sidedef.Sector.CeilHeight - Sidedef.Other.Sector.CeilHeight);
 			}
 			tp.trb.x = tp.tlt.x + Sidedef.Line.Length;
-			tp.trb.y = tp.tlt.y + ((float)Sidedef.Sector.CeilHeight - ((float)Sidedef.Other.Sector.CeilHeight + ceilbias));
+			tp.trb.y = tp.tlt.y + (Sidedef.Sector.CeilHeight - (Sidedef.Other.Sector.CeilHeight + ceilbias));
 			
 			// Apply texture offset
 			tp.tlt += tof;
@@ -149,8 +149,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			tp.trb /= tsz;
 			
 			// Left top and right bottom of the geometry that
-			tp.vlt = new Vector3D(vl.x, vl.y, (float)Sidedef.Sector.CeilHeight);
-			tp.vrb = new Vector3D(vr.x, vr.y, (float)Sidedef.Other.Sector.CeilHeight + ceilbias);
+			tp.vlt = new Vector3D(vl.x, vl.y, Sidedef.Sector.CeilHeight);
+			tp.vrb = new Vector3D(vr.x, vr.y, Sidedef.Other.Sector.CeilHeight + ceilbias);
 			
 			// Make the right-top coordinates
 			tp.trt = new Vector2D(tp.trb.x, tp.tlt.y);
@@ -260,7 +260,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 
 			int light = Sidedef.Fields.GetValue("light", 0);
 			bool absolute = Sidedef.Fields.GetValue("lightabsolute", false);
-			int newLight = 0;
+			int newLight;
 
 			if(up)
 				newLight = General.Map.Config.BrightnessLevels.GetNextHigher(light, absolute);
diff --git a/Source/Plugins/ColorPicker/BuilderPlug.cs b/Source/Plugins/ColorPicker/BuilderPlug.cs
index 7ceb9be2f4490eb4f912b27f0052d60e83b95d77..58b3e107e17e096de7d1c51f156b92321beba2de 100644
--- a/Source/Plugins/ColorPicker/BuilderPlug.cs
+++ b/Source/Plugins/ColorPicker/BuilderPlug.cs
@@ -102,7 +102,7 @@ namespace CodeImp.DoomBuilder.ColorPicker
 					formLocation = new Point(displayLocation.X + displaySize.Width - form.Width - 16, displayLocation.Y + 32);
 				} 
 				form.Location = formLocation;
-				form.FormClosed += new FormClosedEventHandler(form_FormClosed);
+				form.FormClosed += form_FormClosed;
 				form.ShowDialog(Form.ActiveForm);
 			} else {
 				form.Dispose();
diff --git a/Source/Plugins/ColorPicker/ColorPickerType.cs b/Source/Plugins/ColorPicker/ColorPickerType.cs
index ef1aa52e0e5bfd88c763b31eea2fa676520065c9..71f073724c859c8c126c244ad24e5d9472d80aa3 100644
--- a/Source/Plugins/ColorPicker/ColorPickerType.cs
+++ b/Source/Plugins/ColorPicker/ColorPickerType.cs
@@ -1,10 +1,6 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
+
 namespace CodeImp.DoomBuilder.ColorPicker {
-	public enum ColorPickerType : int {
+	public enum ColorPickerType {
 		CP_NONE = 0,
 		CP_LIGHT = 1,
 		CP_SECTOR = 2
diff --git a/Source/Plugins/ColorPicker/ColorWheel.cs b/Source/Plugins/ColorPicker/ColorWheel.cs
index 22d641c8eff243da9d7c78ed122b3b6e24044001..10b440190f51c619adcc20d81759b3d89943aaf8 100644
--- a/Source/Plugins/ColorPicker/ColorWheel.cs
+++ b/Source/Plugins/ColorPicker/ColorWheel.cs
@@ -88,7 +88,7 @@ namespace CodeImp.DoomBuilder.ColorPicker {
 				// the point by the radius.
 				// Use the smaller of the width and height of
 				// the colorRectangle value.
-				this.radius = (int)Math.Min(colorRectangle.Width, colorRectangle.Height) / 2;
+				this.radius = Math.Min(colorRectangle.Width, colorRectangle.Height) / 2;
 				this.centerPoint = colorRectangle.Location;
 				this.centerPoint.Offset(radius, radius);
 
@@ -249,7 +249,7 @@ namespace CodeImp.DoomBuilder.ColorPicker {
 					}
 
 					// Calculate the new HSV and RGB values.
-					HSV.Hue = (int)(degrees * 255 / 360);
+					HSV.Hue = degrees * 255 / 360;
 					HSV.Saturation = (int)(distance * 255);
 					HSV.value = brightness;
 					RGB = ColorHandler.HSVtoRGB(HSV);
diff --git a/Source/Plugins/ColorPicker/Controls/ColorPickerControl.cs b/Source/Plugins/ColorPicker/Controls/ColorPickerControl.cs
index 3493bc042fcf29fe5fa84a9bc76d1ef4e96cbe03..82f5763652a3d721224bfbfb6b6bd510f3d3f935 100644
--- a/Source/Plugins/ColorPicker/Controls/ColorPickerControl.cs
+++ b/Source/Plugins/ColorPicker/Controls/ColorPickerControl.cs
@@ -1,9 +1,5 @@
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
 using System.Drawing;
-using System.Data;
-using System.Text;
 using System.Windows.Forms;
 using System.Globalization;
 
diff --git a/Source/Plugins/ColorPicker/Controls/ColorPickerSlider.cs b/Source/Plugins/ColorPicker/Controls/ColorPickerSlider.cs
index eb830d18b674d2de74f627e61966247aa3f69d95..ac4ac5e3ca513c4a3e437ee2efaa1cf027b1bb5f 100644
--- a/Source/Plugins/ColorPicker/Controls/ColorPickerSlider.cs
+++ b/Source/Plugins/ColorPicker/Controls/ColorPickerSlider.cs
@@ -1,10 +1,4 @@
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
 using System.Windows.Forms;
 
 namespace CodeImp.DoomBuilder.ColorPicker.Controls {
diff --git a/Source/Plugins/ColorPicker/IColorPicker.cs b/Source/Plugins/ColorPicker/IColorPicker.cs
index a03df46c2645d1db200679578421b3841df18e08..46804f4f07dd1bc235ab4b4a9974dda8dff44f9a 100644
--- a/Source/Plugins/ColorPicker/IColorPicker.cs
+++ b/Source/Plugins/ColorPicker/IColorPicker.cs
@@ -1,5 +1,4 @@
-using System;
-using System.Drawing;
+using System.Drawing;
 using System.Windows.Forms;
 
 namespace CodeImp.DoomBuilder.ColorPicker {
diff --git a/Source/Plugins/ColorPicker/Properties/AssemblyInfo.cs b/Source/Plugins/ColorPicker/Properties/AssemblyInfo.cs
index 7b31253aca7bad106196a8883c40e41406ea2867..a3e31677fb29bddec8e27ba4ea9a937fed38c23f 100644
--- a/Source/Plugins/ColorPicker/Properties/AssemblyInfo.cs
+++ b/Source/Plugins/ColorPicker/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 using System.Resources;
 
diff --git a/Source/Plugins/ColorPicker/Windows/LightColorPicker.cs b/Source/Plugins/ColorPicker/Windows/LightColorPicker.cs
index e7c17aef3d754fa2323108b7e374a7e10257cd6f..b50f61739914017158618a7489aaf238dbca806e 100644
--- a/Source/Plugins/ColorPicker/Windows/LightColorPicker.cs
+++ b/Source/Plugins/ColorPicker/Windows/LightColorPicker.cs
@@ -1,14 +1,9 @@
 using System;
 using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
 using System.Drawing;
-using System.Text;
 using System.Windows.Forms;
-
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Plugins;
 using CodeImp.DoomBuilder.Windows;
 using CodeImp.DoomBuilder.GZBuilder;
 using CodeImp.DoomBuilder.VisualModes;
@@ -20,7 +15,7 @@ namespace CodeImp.DoomBuilder.ColorPicker.Windows {
 
 		private static bool RELATIVE_MODE;
 		
-		private static int[] LIGHT_USES_ANGLE_VALUE = { 9801, 9802, 9804, 9811, 9812, 9814, 9821, 9822, 9824 };
+		private static readonly int[] LIGHT_USES_ANGLE_VALUE = { 9801, 9802, 9804, 9811, 9812, 9814, 9821, 9822, 9824 };
 		
 		private List<Thing> selection;
 		private List<VisualThing> visualSelection;
@@ -74,12 +69,12 @@ namespace CodeImp.DoomBuilder.ColorPicker.Windows {
 			setControlsMode();
 
 			colorPickerControl1.Initialize(getThingColor(selection[0]));
-			colorPickerControl1.ColorChanged += new EventHandler<ColorChangedEventArgs>(colorPickerControl1_ColorChanged);
-			colorPickerControl1.OnOkPressed += new EventHandler(colorPickerControl1_OnOkPressed);
-			colorPickerControl1.OnCancelPressed += new EventHandler(colorPickerControl1_OnCancelPressed);
+			colorPickerControl1.ColorChanged += colorPickerControl1_ColorChanged;
+			colorPickerControl1.OnOkPressed += colorPickerControl1_OnOkPressed;
+			colorPickerControl1.OnCancelPressed += colorPickerControl1_OnCancelPressed;
 
 			cbRelativeMode.Checked = RELATIVE_MODE;
-			cbRelativeMode.CheckStateChanged += new EventHandler(cbRelativeMode_CheckStateChanged);
+			cbRelativeMode.CheckStateChanged += cbRelativeMode_CheckStateChanged;
 
 			this.AcceptButton = colorPickerControl1.OkButton;
 			this.CancelButton = colorPickerControl1.CancelButton;
@@ -124,23 +119,23 @@ namespace CodeImp.DoomBuilder.ColorPicker.Windows {
 
 			//first slider is always used
 			colorPickerSlider1.Label = typeInfo.Args[firstArg].Title + ":";
-			colorPickerSlider1.OnValueChanged += new EventHandler<ColorPickerSliderEventArgs>(onSliderValueChanged);
+			colorPickerSlider1.OnValueChanged += onSliderValueChanged;
 
 			//either both of them or none are used
 			if (Array.IndexOf(LIGHT_USES_ANGLE_VALUE, referenceThing.Type) != -1) {
 				showAllControls = true;
 				colorPickerSlider2.Label = typeInfo.Args[4].Title + ":";
-				colorPickerSlider2.OnValueChanged += new EventHandler<ColorPickerSliderEventArgs>(onSliderValueChanged);
+				colorPickerSlider2.OnValueChanged += onSliderValueChanged;
 				
 				colorPickerSlider3.Label = "Interval:";
-				colorPickerSlider3.OnValueChanged += new EventHandler<ColorPickerSliderEventArgs>(onSliderValueChanged);
+				colorPickerSlider3.OnValueChanged += onSliderValueChanged;
 			} else {
 				colorPickerSlider2.Visible = false;
 				colorPickerSlider3.Visible = false;
 			}
 
 			//set window height
-			int newHeight = 0;
+			int newHeight;
 			if (showAllControls) {
 				newHeight = colorPickerSlider3.Location.Y + colorPickerSlider3.Height + 8;
 			} else {
diff --git a/Source/Plugins/ColorPicker/Windows/SectorColorPicker.cs b/Source/Plugins/ColorPicker/Windows/SectorColorPicker.cs
index 1bac4c58712f556118a06869628274d7e4289949..a67cd705664155baa7ee9bdfe3100c2753ce507f 100644
--- a/Source/Plugins/ColorPicker/Windows/SectorColorPicker.cs
+++ b/Source/Plugins/ColorPicker/Windows/SectorColorPicker.cs
@@ -77,17 +77,17 @@ namespace CodeImp.DoomBuilder.ColorPicker.Windows
 			InitializeComponent();
 
 			colorPickerControl1.Initialize(Color.FromArgb(currentColorTag == "lightcolor" ? curSectorColor : curFadeColor));
-			colorPickerControl1.ColorChanged += new EventHandler<ColorChangedEventArgs>(colorPickerControl1_ColorChanged);
-			colorPickerControl1.OnOkPressed += new EventHandler(colorPickerControl1_OnOkPressed);
-			colorPickerControl1.OnCancelPressed += new EventHandler(colorPickerControl1_OnCancelPressed);
+			colorPickerControl1.ColorChanged += colorPickerControl1_ColorChanged;
+			colorPickerControl1.OnOkPressed += colorPickerControl1_OnOkPressed;
+			colorPickerControl1.OnCancelPressed += colorPickerControl1_OnCancelPressed;
 
 			if (currentColorTag == "lightcolor")
 				rbSectorColor.Checked = true;
 			else
 				rbFadeColor.Checked = true;
 
-			rbSectorColor.CheckedChanged += new EventHandler(rbColor_CheckedChanged);
-			rbFadeColor.CheckedChanged += new EventHandler(rbColor_CheckedChanged);
+			rbSectorColor.CheckedChanged += rbColor_CheckedChanged;
+			rbFadeColor.CheckedChanged += rbColor_CheckedChanged;
 
 			Text = "Editing " + rest;
 
diff --git a/Source/Plugins/CommentsPanel/BuilderPlug.cs b/Source/Plugins/CommentsPanel/BuilderPlug.cs
index 95f9a41a02c5dd9275c682d33985a38b2026b04f..8e98f2b64cb10cf3f152c9bf3e4bfde6ef23e4ff 100644
--- a/Source/Plugins/CommentsPanel/BuilderPlug.cs
+++ b/Source/Plugins/CommentsPanel/BuilderPlug.cs
@@ -16,28 +16,10 @@
 
 #region ================== Namespaces
 
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Globalization;
-using System.Text;
-using System.Windows.Forms;
-using System.IO;
-using System.Reflection;
 using CodeImp.DoomBuilder.Controls;
-using CodeImp.DoomBuilder.Windows;
-using CodeImp.DoomBuilder.IO;
-using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Rendering;
-using CodeImp.DoomBuilder.Geometry;
-using System.Drawing;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Plugins;
-using CodeImp.DoomBuilder.Actions;
-using CodeImp.DoomBuilder.Types;
 using CodeImp.DoomBuilder.Config;
-using CodeImp.DoomBuilder.Data;
 
 #endregion
 
diff --git a/Source/Plugins/CommentsPanel/CommentInfo.cs b/Source/Plugins/CommentsPanel/CommentInfo.cs
index f372d4530bb2337d26390cb8826a8a265ea548ce..b11a9c2226f23fa637f1ba57094dead522cf3c5a 100644
--- a/Source/Plugins/CommentsPanel/CommentInfo.cs
+++ b/Source/Plugins/CommentsPanel/CommentInfo.cs
@@ -16,28 +16,9 @@
 
 #region ================== Namespaces
 
-using System;
-using System.Collections;
 using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Globalization;
-using System.Text;
 using System.Windows.Forms;
-using System.IO;
-using System.Reflection;
-using CodeImp.DoomBuilder.Controls;
-using CodeImp.DoomBuilder.Windows;
-using CodeImp.DoomBuilder.IO;
 using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Rendering;
-using CodeImp.DoomBuilder.Geometry;
-using System.Drawing;
-using CodeImp.DoomBuilder.Editing;
-using CodeImp.DoomBuilder.Plugins;
-using CodeImp.DoomBuilder.Actions;
-using CodeImp.DoomBuilder.Types;
-using CodeImp.DoomBuilder.Config;
-using CodeImp.DoomBuilder.Data;
 
 #endregion
 
@@ -45,7 +26,7 @@ namespace CodeImp.DoomBuilder.CommentsPanel
 {
 	public class CommentInfo
 	{
-		private string comment;
+		private readonly string comment;
 		private List<MapElement> elements;
 		private DataGridViewRow row;
 		
diff --git a/Source/Plugins/CommentsPanel/CommentObjectType.cs b/Source/Plugins/CommentsPanel/CommentObjectType.cs
index 7eb5f581228f69b08d899fb861b69bb53f34c34e..609ed4ecdc148d74c3787d0bf4782e1646e04131 100644
--- a/Source/Plugins/CommentsPanel/CommentObjectType.cs
+++ b/Source/Plugins/CommentsPanel/CommentObjectType.cs
@@ -16,29 +16,6 @@
 
 #region ================== Namespaces
 
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Globalization;
-using System.Text;
-using System.Windows.Forms;
-using System.IO;
-using System.Reflection;
-using CodeImp.DoomBuilder.Controls;
-using CodeImp.DoomBuilder.Windows;
-using CodeImp.DoomBuilder.IO;
-using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Rendering;
-using CodeImp.DoomBuilder.Geometry;
-using System.Drawing;
-using CodeImp.DoomBuilder.Editing;
-using CodeImp.DoomBuilder.Plugins;
-using CodeImp.DoomBuilder.Actions;
-using CodeImp.DoomBuilder.Types;
-using CodeImp.DoomBuilder.Config;
-using CodeImp.DoomBuilder.Data;
-
 #endregion
 
 namespace CodeImp.DoomBuilder.CommentsPanel
diff --git a/Source/Plugins/CommentsPanel/CommentsDocker.cs b/Source/Plugins/CommentsPanel/CommentsDocker.cs
index 385342a9c5143c3926be301fbc33f0a0452923a3..ef137bea828ebca71ff2dba503cd78a9babffca8 100644
--- a/Source/Plugins/CommentsPanel/CommentsDocker.cs
+++ b/Source/Plugins/CommentsPanel/CommentsDocker.cs
@@ -19,18 +19,8 @@ using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Drawing;
-using System.Text;
 using System.Windows.Forms;
-using Microsoft.Win32;
-using CodeImp.DoomBuilder.Actions;
-using CodeImp.DoomBuilder.Data;
-using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Controls;
-using CodeImp.DoomBuilder.Windows;
-using System.Reflection;
-using System.Globalization;
-using System.Threading;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Types;
@@ -47,7 +37,7 @@ namespace CodeImp.DoomBuilder.CommentsPanel
 		Dictionary<string, CommentInfo> l_comments = new Dictionary<string, CommentInfo>();
 		Dictionary<string, CommentInfo> s_comments = new Dictionary<string, CommentInfo>();
 		Dictionary<string, CommentInfo> t_comments = new Dictionary<string, CommentInfo>();
-		bool preventupdate = false;
+		bool preventupdate;
 		
 		#endregion
 		
@@ -266,7 +256,7 @@ namespace CodeImp.DoomBuilder.CommentsPanel
 				else if(obj is Thing)
 				{
 					Thing t = (obj as Thing);
-					Vector2D p = (Vector2D)t.Position;
+					Vector2D p = t.Position;
 					points.Add(p);
 					points.Add(p + new Vector2D(t.Size * 2.0f, t.Size * 2.0f));
 					points.Add(p + new Vector2D(t.Size * 2.0f, -t.Size * 2.0f));
diff --git a/Source/Plugins/CommentsPanel/Properties/AssemblyInfo.cs b/Source/Plugins/CommentsPanel/Properties/AssemblyInfo.cs
index 6264acefeeebc7786170432d8620d934473c4393..426557dccc554b571f66394fcf61809cd0aac8c6 100644
--- a/Source/Plugins/CommentsPanel/Properties/AssemblyInfo.cs
+++ b/Source/Plugins/CommentsPanel/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
diff --git a/Source/Plugins/CopyPasteSectorProps/BuilderPlug.cs b/Source/Plugins/CopyPasteSectorProps/BuilderPlug.cs
index 024dc811fe53ce7b658c56413135ae9c173762a9..89203e13f20541130b00a45fbaa78665abbaa10a 100644
--- a/Source/Plugins/CopyPasteSectorProps/BuilderPlug.cs
+++ b/Source/Plugins/CopyPasteSectorProps/BuilderPlug.cs
@@ -16,7 +16,6 @@
 
 #region ================== Namespaces
 
-using System.Collections;
 using System.Collections.Generic;
 using CodeImp.DoomBuilder.Windows;
 using CodeImp.DoomBuilder.Map;
@@ -58,7 +57,7 @@ namespace CodeImp.DoomBuilder.CopyPasteSectorProps
 		
         // This is set to true to know that we copied sector properties.
 		// If this is false, the variables above are uninitialized.
-        bool didCopyProps = false;
+        bool didCopyProps;
 
 		// This event is called when the plugin is initialized
 		public override void OnInitialize()
@@ -201,7 +200,7 @@ namespace CodeImp.DoomBuilder.CopyPasteSectorProps
             General.Interface.RedrawDisplay();
 
             // Let the user know to how many sectors the properties were copied
-            General.Interface.DisplayStatus(StatusType.Action, "Pasted sector properties to " + pasteCount.ToString() + " sector(s).");
+            General.Interface.DisplayStatus(StatusType.Action, "Pasted sector properties to " + pasteCount + " sector(s).");
         }
 
         #endregion
diff --git a/Source/Plugins/CopyPasteSectorProps/Properties/AssemblyInfo.cs b/Source/Plugins/CopyPasteSectorProps/Properties/AssemblyInfo.cs
index d58a227e30c11a76c71fb3dbef013cf43465ece6..8e1a1cb807361b8a5127c558ae309b40ce86ee4f 100644
--- a/Source/Plugins/CopyPasteSectorProps/Properties/AssemblyInfo.cs
+++ b/Source/Plugins/CopyPasteSectorProps/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
diff --git a/Source/Plugins/NodesViewer/BuilderPlug.cs b/Source/Plugins/NodesViewer/BuilderPlug.cs
index dd465a74630d293658713d2c0275ec00ed74b05e..d700ce8b653e286320bf0d443e46ccf3bd6e3530 100644
--- a/Source/Plugins/NodesViewer/BuilderPlug.cs
+++ b/Source/Plugins/NodesViewer/BuilderPlug.cs
@@ -18,7 +18,6 @@
 
 using System;
 using System.IO;
-using CodeImp.DoomBuilder.Windows;
 
 #endregion
 
diff --git a/Source/Plugins/NodesViewer/Node.cs b/Source/Plugins/NodesViewer/Node.cs
index 3d8839c814754aa0dd43792b86271f8b50c80441..95bf07303b345e6c3dae85d164d53b9d523dfa86 100644
--- a/Source/Plugins/NodesViewer/Node.cs
+++ b/Source/Plugins/NodesViewer/Node.cs
@@ -1,10 +1,6 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
-using System;
 using System.Drawing;
-using System.IO;
-using System.Windows.Forms;
-using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Geometry;
 
 #endregion
diff --git a/Source/Plugins/NodesViewer/NodesForm.cs b/Source/Plugins/NodesViewer/NodesForm.cs
index 2848ffdfa3beb8a0cf4d74e7f15d7463cf5ff385..7741647780a046bea8c5156a280862a162a6aaaf 100644
--- a/Source/Plugins/NodesViewer/NodesForm.cs
+++ b/Source/Plugins/NodesViewer/NodesForm.cs
@@ -3,9 +3,7 @@
 using System;
 using System.Collections.Generic;
 using System.Drawing;
-using System.IO;
 using System.Windows.Forms;
-using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Windows;
@@ -67,8 +65,8 @@ namespace CodeImp.DoomBuilder.Plugins.NodesViewer
 
 			// Calculate the tree balance. The balance is 100% when all leafs are equal depth and
 			// 0% when 1 leaf equals peakdepth and the others are at level 1.
-			int balance = (int)(((float)mindepth / (float)maxdepth) * 100f);
-			treebalance.Text = balance.ToString() + "%";
+			int balance = (int)(((float)mindepth / maxdepth) * 100f);
+			treebalance.Text = balance + "%";
 
 			// Start viewing root split
 			splitindex.Maximum = mode.Nodes.Length - 1;
diff --git a/Source/Plugins/NodesViewer/Properties/AssemblyInfo.cs b/Source/Plugins/NodesViewer/Properties/AssemblyInfo.cs
index 711bbdc0f9bf2b6b4975685d4cbea33d36ec556d..0de1f32a19a0ba691e7fa18d84100cded02d7170 100644
--- a/Source/Plugins/NodesViewer/Properties/AssemblyInfo.cs
+++ b/Source/Plugins/NodesViewer/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
diff --git a/Source/Plugins/NodesViewer/Seg.cs b/Source/Plugins/NodesViewer/Seg.cs
index 15f900a3ddd11987a8304a1f4085364ed4d7fffb..8fbb0c5ca4d9890585d883caecdeda0e3c686989 100644
--- a/Source/Plugins/NodesViewer/Seg.cs
+++ b/Source/Plugins/NodesViewer/Seg.cs
@@ -1,12 +1,5 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
-using System;
-using System.Drawing;
-using System.IO;
-using System.Windows.Forms;
-using CodeImp.DoomBuilder.Editing;
-using CodeImp.DoomBuilder.Geometry;
-
 #endregion
 
 namespace CodeImp.DoomBuilder.Plugins.NodesViewer
diff --git a/Source/Plugins/NodesViewer/Split.cs b/Source/Plugins/NodesViewer/Split.cs
index 2949159c15364491632c3b720d4bbe0c907c3df3..14031ade64d7b32614bd8cfd699a53c0a9094a0f 100644
--- a/Source/Plugins/NodesViewer/Split.cs
+++ b/Source/Plugins/NodesViewer/Split.cs
@@ -1,10 +1,5 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
-using System;
-using System.Drawing;
-using System.IO;
-using System.Windows.Forms;
-using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Geometry;
 
 #endregion
diff --git a/Source/Plugins/NodesViewer/Subsector.cs b/Source/Plugins/NodesViewer/Subsector.cs
index ebd6705dabe55cca1b96d36a87138955b4cfe3bd..ec6dfd20f59351217997fb92b9dfd00fbda3c3c6 100644
--- a/Source/Plugins/NodesViewer/Subsector.cs
+++ b/Source/Plugins/NodesViewer/Subsector.cs
@@ -1,11 +1,5 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-using System.IO;
-using System.Windows.Forms;
-using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Rendering;
 
diff --git a/Source/Plugins/Statistics/BuilderPlug.cs b/Source/Plugins/Statistics/BuilderPlug.cs
index 7b22cffae601d91f57dbac2bf7c424bae35112d2..e2ba57ca37197cff8ac8838908dca90476644f0c 100644
--- a/Source/Plugins/Statistics/BuilderPlug.cs
+++ b/Source/Plugins/Statistics/BuilderPlug.cs
@@ -16,25 +16,7 @@
 
 #region ================== Namespaces
 
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Text;
-using System.Windows.Forms;
-using System.IO;
-using System.Reflection;
-using CodeImp.DoomBuilder.Windows;
-using CodeImp.DoomBuilder.IO;
-using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Rendering;
-using CodeImp.DoomBuilder.Geometry;
-using System.Drawing;
-using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Plugins;
-using CodeImp.DoomBuilder.Types;
-using CodeImp.DoomBuilder.Config;
-using CodeImp.DoomBuilder.Data;
 
 #endregion
 
diff --git a/Source/Plugins/Statistics/Properties/AssemblyInfo.cs b/Source/Plugins/Statistics/Properties/AssemblyInfo.cs
index 2de45aff28264937628d39422e7d2e300d58de90..0a38bb65215e55a8e5027ac89b5d128591ee5885 100644
--- a/Source/Plugins/Statistics/Properties/AssemblyInfo.cs
+++ b/Source/Plugins/Statistics/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
diff --git a/Source/Plugins/Statistics/StatisticsForm.cs b/Source/Plugins/Statistics/StatisticsForm.cs
index 18e33370a8e8912872ffbb10df59d19b173e4d33..cde6ae99af3a348dca2cd1a3ee3a8dbfc4156c20 100644
--- a/Source/Plugins/Statistics/StatisticsForm.cs
+++ b/Source/Plugins/Statistics/StatisticsForm.cs
@@ -17,11 +17,7 @@
 #region ================== Namespaces
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
 using System.Drawing;
-using System.Linq;
-using System.Text;
 using System.Windows.Forms;
 
 #endregion
diff --git a/Source/Plugins/Statistics/StatisticsMode.cs b/Source/Plugins/Statistics/StatisticsMode.cs
index 4f635745acb8b304802368bd420a5f5fd51a163c..37b669e9a3fe1a92e7cc2996dd6553d1f2180a41 100644
--- a/Source/Plugins/Statistics/StatisticsMode.cs
+++ b/Source/Plugins/Statistics/StatisticsMode.cs
@@ -16,23 +16,9 @@
 
 #region ================== Namespaces
 
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Text;
 using System.Windows.Forms;
-using System.IO;
-using System.Reflection;
-using CodeImp.DoomBuilder.Windows;
-using CodeImp.DoomBuilder.IO;
-using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Rendering;
-using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Editing;
-using CodeImp.DoomBuilder.Actions;
-using CodeImp.DoomBuilder.Types;
-using CodeImp.DoomBuilder.Config;
 
 #endregion
 
diff --git a/Source/Plugins/TagExplorer/Controls/TagExplorer.cs b/Source/Plugins/TagExplorer/Controls/TagExplorer.cs
index abd0533e3f065a014223d68e338df011886da784..70e968b85eec448d346f47986c06fb653b5428d2 100644
--- a/Source/Plugins/TagExplorer/Controls/TagExplorer.cs
+++ b/Source/Plugins/TagExplorer/Controls/TagExplorer.cs
@@ -1,17 +1,15 @@
 using System;
 using System.Collections.Generic;
-using System.ComponentModel;
 using System.Globalization;
 using System.Drawing;
 using System.Text;
 using System.Windows.Forms;
 using System.IO;
-
 using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Geometry;
+using CodeImp.DoomBuilder.IO;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Editing;
-using CodeImp.DoomBuilder.Types;
 using CodeImp.DoomBuilder.Windows;
 
 namespace CodeImp.DoomBuilder.TagExplorer
@@ -30,7 +28,7 @@ namespace CodeImp.DoomBuilder.TagExplorer
 		private const string CAT_SECTORS = "Sectors:";
 		private const string CAT_LINEDEFS = "Linedefs:";
 
-		private Color commentColor = Color.DarkMagenta;
+		private readonly Color commentColor = Color.DarkMagenta;
 		private SelectedNode selection;
 
 		private static bool udmf;
@@ -43,12 +41,12 @@ namespace CodeImp.DoomBuilder.TagExplorer
 
 			cbDisplayMode.Items.AddRange(DISPLAY_MODES);
 			cbDisplayMode.SelectedIndex = General.Settings.ReadPluginSetting("displaymode", 0);
-			cbDisplayMode.SelectedIndexChanged += new EventHandler(cbDisplayMode_SelectedIndexChanged);
+			cbDisplayMode.SelectedIndexChanged += cbDisplayMode_SelectedIndexChanged;
 			currentDisplayMode = cbDisplayMode.SelectedItem.ToString();
 
 			cbSortMode.Items.AddRange(SortMode.SORT_MODES);
 			cbSortMode.SelectedIndex = General.Settings.ReadPluginSetting("sortmode", 0);
-			cbSortMode.SelectedIndexChanged += new EventHandler(cbSortMode_SelectedIndexChanged);
+			cbSortMode.SelectedIndexChanged += cbSortMode_SelectedIndexChanged;
 			currentSortMode = cbSortMode.SelectedItem.ToString();
 
 			cbCenterOnSelected.Checked = General.Settings.ReadPluginSetting("centeronselected", false);
@@ -97,9 +95,9 @@ namespace CodeImp.DoomBuilder.TagExplorer
 		private void updateTree(bool focusDisplay) {
 			bool showTags = (currentDisplayMode == DISPLAY_TAGS || currentDisplayMode == DISPLAY_TAGS_AND_ACTIONS);
 			bool showActions = (currentDisplayMode == DISPLAY_ACTIONS || currentDisplayMode == DISPLAY_TAGS_AND_ACTIONS);
-			bool hasComment = false;
+			bool hasComment;
 			string comment = "";
-			string serachStr = serachStr = tbSearch.Text.ToLowerInvariant();
+			string serachStr = tbSearch.Text.ToLowerInvariant();
 
 			int filteredTag = -1;
 			int filteredAction = -1;
@@ -472,13 +470,13 @@ namespace CodeImp.DoomBuilder.TagExplorer
 			string token = "";
 			int pos = startPoition;
 
-			while (pos < serachStr.Length && "1234567890".IndexOf(serachStr[pos]) != -1) {
+			while (pos < serachStr.Length && Configuration.NUMBERS.IndexOf(serachStr[pos]) != -1) {
 				token += serachStr[pos];
 				pos++;
 			}
 
 			if (token.Length > 0) {
-				int result = -1;
+				int result;
 				if(int.TryParse(token, NumberStyles.Integer, CultureInfo.InvariantCulture, out result))
 					return result;
 			}
@@ -626,7 +624,7 @@ namespace CodeImp.DoomBuilder.TagExplorer
 						}
 					} else if (info.Type == NodeInfoType.THING) {
 						Thing t = General.Map.Map.GetThingByIndex(info.Index);
-						Vector2D p = (Vector2D)t.Position;
+						Vector2D p = t.Position;
 						points.Add(p);
 						points.Add(p + new Vector2D(t.Size * 2.0f, t.Size * 2.0f));
 						points.Add(p + new Vector2D(t.Size * 2.0f, -t.Size * 2.0f));
diff --git a/Source/Plugins/TagExplorer/NodeInfo.cs b/Source/Plugins/TagExplorer/NodeInfo.cs
index d4492f1a739f277d01be38fd7a2ed396d44b0c69..fdea74fa5c62656252ce5934cb1b5c81983d520b 100644
--- a/Source/Plugins/TagExplorer/NodeInfo.cs
+++ b/Source/Plugins/TagExplorer/NodeInfo.cs
@@ -1,10 +1,5 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-using CodeImp.DoomBuilder.Config;
+using CodeImp.DoomBuilder.Config;
 using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Types;
 
 namespace CodeImp.DoomBuilder.TagExplorer
@@ -147,25 +142,19 @@ namespace CodeImp.DoomBuilder.TagExplorer
 		}
 
 		private string combineName(string name, int tag, int action, int index, string sortMode, bool isDefaultName) {
-			string combinedName = "";
 			switch (sortMode) {
 				case SortMode.SORT_BY_ACTION:
-					combinedName = (tag > 0 ? "Tag:" + tag + "; " : "") + name + (isDefaultName ? " " + index : "");
-					break;
+					return (tag > 0 ? "Tag:" + tag + "; " : "") + name + (isDefaultName ? " " + index : "");
 
 				case SortMode.SORT_BY_INDEX:
-					combinedName = index + (tag > 0 ? ": Tag:" + tag + "; " : ": ") + (action > 0 ? "Action:" + action + "; " : "") + name;
-					break;
+					return index + (tag > 0 ? ": Tag:" + tag + "; " : ": ") + (action > 0 ? "Action:" + action + "; " : "") + name;
 
 				case SortMode.SORT_BY_TAG:
-					combinedName = (action > 0 ? "Action:" + action + "; " : "") + name + (isDefaultName ? " " + index : "");
-					break;
+					return (action > 0 ? "Action:" + action + "; " : "") + name + (isDefaultName ? " " + index : "");
 
 				default:
-					combinedName = name;
-					break;
+					return name;
 			}
-			return combinedName;
 		}
 	}
 
diff --git a/Source/Plugins/TagExplorer/Properties/AssemblyInfo.cs b/Source/Plugins/TagExplorer/Properties/AssemblyInfo.cs
index 5f81ace48b4df37af08e82febeca9cb117dc8173..8e6b8e2e92952316ce1b90256fe4e0eaaf204080 100644
--- a/Source/Plugins/TagExplorer/Properties/AssemblyInfo.cs
+++ b/Source/Plugins/TagExplorer/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 using System.Resources;
 
diff --git a/Source/Plugins/TagRange/BuilderPlug.cs b/Source/Plugins/TagRange/BuilderPlug.cs
index 4ff9ea668e4272e067d88b3e5d98dac6789caea0..671897bc587a3908dcfe436596f3d51c59aba9a8 100644
--- a/Source/Plugins/TagRange/BuilderPlug.cs
+++ b/Source/Plugins/TagRange/BuilderPlug.cs
@@ -16,28 +16,11 @@
 
 #region ================== Namespaces
 
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Globalization;
-using System.Text;
 using System.Windows.Forms;
-using System.IO;
-using System.Reflection;
-using CodeImp.DoomBuilder.Controls;
 using CodeImp.DoomBuilder.Windows;
-using CodeImp.DoomBuilder.IO;
-using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Rendering;
-using CodeImp.DoomBuilder.Geometry;
-using System.Drawing;
 using CodeImp.DoomBuilder.Editing;
 using CodeImp.DoomBuilder.Plugins;
 using CodeImp.DoomBuilder.Actions;
-using CodeImp.DoomBuilder.Types;
-using CodeImp.DoomBuilder.Config;
-using CodeImp.DoomBuilder.Data;
 
 #endregion
 
diff --git a/Source/Plugins/TagRange/Properties/AssemblyInfo.cs b/Source/Plugins/TagRange/Properties/AssemblyInfo.cs
index 9ef2056025fe902ee7312dcabf74b38e93fa8be8..25c0c81d5cabd4bae5f521bcde12bcf6a7b20d7a 100644
--- a/Source/Plugins/TagRange/Properties/AssemblyInfo.cs
+++ b/Source/Plugins/TagRange/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
diff --git a/Source/Plugins/TagRange/TagRangeForm.cs b/Source/Plugins/TagRange/TagRangeForm.cs
index 7517fc209e0ee038837c5f2b4ad4962879de0923..4544e58c5462644118dcb2945fdc4076a61046ee 100644
--- a/Source/Plugins/TagRange/TagRangeForm.cs
+++ b/Source/Plugins/TagRange/TagRangeForm.cs
@@ -1,13 +1,9 @@
 using System;
 using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Text;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Windows;
 using CodeImp.DoomBuilder.Types;
 using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Controls;
 
 namespace CodeImp.DoomBuilder.TagRange
 {
@@ -124,7 +120,7 @@ namespace CodeImp.DoomBuilder.TagRange
 			doubletagwarning.Visible = tagsused && !outoftags;
 			skipdoubletags.Visible = tagsused && !outoftags;
 			skipdoubletags.BringToFront();
-			
+
 			tags = CreateRange(starttag, skipdoubletags.Checked, out tagsused, out outoftags);
 			
 			if(tags.Count > 0)
diff --git a/Source/Plugins/TagRange/ToolsForm.cs b/Source/Plugins/TagRange/ToolsForm.cs
index 67a0f2aa808446da690a0b1afc623f19245f1cdc..e496164cc35e133fc27532485fb7e5b4b74cf89c 100644
--- a/Source/Plugins/TagRange/ToolsForm.cs
+++ b/Source/Plugins/TagRange/ToolsForm.cs
@@ -1,8 +1,4 @@
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Text;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.IO;
 
diff --git a/Source/Plugins/VisplaneExplorer/BuilderPlug.cs b/Source/Plugins/VisplaneExplorer/BuilderPlug.cs
index 5f713a502faa2317d8b3261881b2326af0b42506..1cdd441c1b62495503a7dcd5f1d5187576923b4f 100644
--- a/Source/Plugins/VisplaneExplorer/BuilderPlug.cs
+++ b/Source/Plugins/VisplaneExplorer/BuilderPlug.cs
@@ -17,25 +17,9 @@
 #region ================== Namespaces
 
 using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Text;
 using System.IO;
-using System.Reflection;
-using CodeImp.DoomBuilder.Actions;
 using CodeImp.DoomBuilder.Plugins.VisplaneExplorer.Properties;
 using CodeImp.DoomBuilder.Windows;
-using CodeImp.DoomBuilder.IO;
-using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Rendering;
-using CodeImp.DoomBuilder.Geometry;
-using System.Drawing;
-using CodeImp.DoomBuilder.Editing;
-using CodeImp.DoomBuilder.Plugins;
-using CodeImp.DoomBuilder.Types;
-using CodeImp.DoomBuilder.Config;
-using CodeImp.DoomBuilder.Data;
 
 #endregion
 
diff --git a/Source/Plugins/VisplaneExplorer/InterfaceForm.cs b/Source/Plugins/VisplaneExplorer/InterfaceForm.cs
index 390fa86d445597bc1138161826afcd9ca2cc17ca..dcec48de455ede6a50170b8b271b0e8abd3913a4 100644
--- a/Source/Plugins/VisplaneExplorer/InterfaceForm.cs
+++ b/Source/Plugins/VisplaneExplorer/InterfaceForm.cs
@@ -1,12 +1,8 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
 using System;
-using System.Collections;
-using System.Collections.Generic;
 using System.Drawing;
 using System.Globalization;
-using System.Text;
-using System.ComponentModel;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Windows;
 
diff --git a/Source/Plugins/VisplaneExplorer/NearestLineBlockmap.cs b/Source/Plugins/VisplaneExplorer/NearestLineBlockmap.cs
index d34239a00c00f29f510695cba1b115bc93fd8102..15e7342fe2cbf142d6e787f03b41de0d0e843b15 100644
--- a/Source/Plugins/VisplaneExplorer/NearestLineBlockmap.cs
+++ b/Source/Plugins/VisplaneExplorer/NearestLineBlockmap.cs
@@ -1,11 +1,7 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
-using System;
-using System.Collections;
 using System.Collections.Generic;
 using System.Drawing;
-using System.Globalization;
-using System.Text;
 using CodeImp.DoomBuilder.Geometry;
 using CodeImp.DoomBuilder.Map;
 
diff --git a/Source/Plugins/VisplaneExplorer/Palette.cs b/Source/Plugins/VisplaneExplorer/Palette.cs
index 2ae3d4e163f3d45977435386d00b84f2ff10d317..47e96a6909b68639ef1c6c98953e5af73220e434 100644
--- a/Source/Plugins/VisplaneExplorer/Palette.cs
+++ b/Source/Plugins/VisplaneExplorer/Palette.cs
@@ -1,11 +1,6 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
-using System;
-using System.Collections;
-using System.Collections.Generic;
 using System.Drawing;
-using System.Globalization;
-using System.Text;
 
 #endregion
 
diff --git a/Source/Plugins/VisplaneExplorer/PointData.cs b/Source/Plugins/VisplaneExplorer/PointData.cs
index b1f0e8fa6e9cf82b412c464785fd88644963e674..ef91a8e269d263732f03b64eca86794149ff5f1e 100644
--- a/Source/Plugins/VisplaneExplorer/PointData.cs
+++ b/Source/Plugins/VisplaneExplorer/PointData.cs
@@ -1,11 +1,5 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Text;
-
 #endregion
 
 namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
diff --git a/Source/Plugins/VisplaneExplorer/PointResult.cs b/Source/Plugins/VisplaneExplorer/PointResult.cs
index 588d1af9cc918f3e641381035ca77ebcc52cd01f..52c6ebdf7d752fcd7d0f5fd93e0092cf9e679284 100644
--- a/Source/Plugins/VisplaneExplorer/PointResult.cs
+++ b/Source/Plugins/VisplaneExplorer/PointResult.cs
@@ -1,11 +1,5 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Text;
-
 #endregion
 
 namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
diff --git a/Source/Plugins/VisplaneExplorer/Properties/AssemblyInfo.cs b/Source/Plugins/VisplaneExplorer/Properties/AssemblyInfo.cs
index 9f65e7c8675114bb87a49ef54c6ef1a181f2e0e6..bbd142f4186b56df244795d8a5389f9368c37e17 100644
--- a/Source/Plugins/VisplaneExplorer/Properties/AssemblyInfo.cs
+++ b/Source/Plugins/VisplaneExplorer/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
diff --git a/Source/Plugins/VisplaneExplorer/Tile.cs b/Source/Plugins/VisplaneExplorer/Tile.cs
index f02f32e96d2cc9ff4f279236fc1eb814d9b2c756..162a72f633501d5c6a6af0b8a4db3162997cb829 100644
--- a/Source/Plugins/VisplaneExplorer/Tile.cs
+++ b/Source/Plugins/VisplaneExplorer/Tile.cs
@@ -1,12 +1,7 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
 using System;
-using System.Collections;
-using System.Collections.Generic;
 using System.Drawing;
-using System.Drawing.Imaging;
-using System.Globalization;
-using System.Text;
 
 #endregion
 
@@ -17,8 +12,8 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
 	{
 		// Constants
 		public const int TILE_SIZE = 64;
-		public static readonly int[] STATS_COMPRESSOR = new int[] { 1, 2, 1, 160 };
-		public static readonly int[] STATS_LIMITS = new int[] { 128, 256, 32, 320 * 64 };
+		public static readonly int[] STATS_COMPRESSOR = new[] { 1, 2, 1, 160 };
+		public static readonly int[] STATS_LIMITS = new[] { 128, 256, 32, 320 * 64 };
 		public const uint POINT_MAXRANGE = 254;
 		public const uint POINT_OVERFLOW = 0xFEFEFEFE;
 		public const uint POINT_VOID = 0xFFFFFFFF;
@@ -112,7 +107,7 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
 		public int GetPointValue(int x, int y, int stat)
 		{
 			byte b = GetPointByte(x, y, stat);
-			return (int)b * STATS_COMPRESSOR[stat];
+			return b * STATS_COMPRESSOR[stat];
 		}
 
 		// This returns the next point to process
diff --git a/Source/Plugins/VisplaneExplorer/TilePoint.cs b/Source/Plugins/VisplaneExplorer/TilePoint.cs
index 8a36135187a7f5e68965ccafc9fd942304222501..76ce9edacbd89d57352f4001974f26d3de34459d 100644
--- a/Source/Plugins/VisplaneExplorer/TilePoint.cs
+++ b/Source/Plugins/VisplaneExplorer/TilePoint.cs
@@ -1,11 +1,5 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Text;
-
 #endregion
 
 namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
diff --git a/Source/Plugins/VisplaneExplorer/VPOManager.cs b/Source/Plugins/VisplaneExplorer/VPOManager.cs
index 20b8cc616db377d0752c5bdec280042d024c118d..f5a9f968b3e2881234e0bb391c37bd852575eb1d 100644
--- a/Source/Plugins/VisplaneExplorer/VPOManager.cs
+++ b/Source/Plugins/VisplaneExplorer/VPOManager.cs
@@ -1,14 +1,10 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
 using System;
-using System.Collections;
 using System.Collections.Generic;
-using System.Drawing;
-using System.Globalization;
 using System.IO;
 using System.Reflection;
 using System.Runtime.InteropServices;
-using System.Text;
 using System.Threading;
 
 #endregion
diff --git a/Source/Plugins/VisplaneExplorer/ViewStats.cs b/Source/Plugins/VisplaneExplorer/ViewStats.cs
index 6444637b93bf2ba7c71220bbc6b23c45125bb0ad..43be4d9328927ed16ecd2638c6ccb71240a1bf29 100644
--- a/Source/Plugins/VisplaneExplorer/ViewStats.cs
+++ b/Source/Plugins/VisplaneExplorer/ViewStats.cs
@@ -1,22 +1,15 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Text;
-
 #endregion
 
 namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
 {
-	internal enum ViewStats : int
+	internal enum ViewStats
 	{
 		Visplanes = 0,
 		Drawsegs = 1,
 		Solidsegs = 2,
 		Openings = 3,
-		
 		NumStats = 4
 	}
 }
diff --git a/Source/Plugins/VisplaneExplorer/VisplaneExplorerMode.cs b/Source/Plugins/VisplaneExplorer/VisplaneExplorerMode.cs
index 231ebd4e587308f61ba7cb1ac026a21cf0b19065..b045239c98885b777e96851addbc6789e69cedf8 100644
--- a/Source/Plugins/VisplaneExplorer/VisplaneExplorerMode.cs
+++ b/Source/Plugins/VisplaneExplorer/VisplaneExplorerMode.cs
@@ -1,14 +1,10 @@
 #region === Copyright (c) 2010 Pascal van der Heiden ===
 
 using System;
-using System.Collections;
 using System.Collections.Generic;
 using System.Drawing;
-using System.Drawing.Drawing2D;
-using System.Globalization;
 using System.IO;
 using System.Runtime.InteropServices;
-using System.Text;
 using System.Windows.Forms;
 using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Editing;
@@ -116,7 +112,7 @@ namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
 		// This returns the tile position for the given map coordinate
 		private Point TileForPoint(float x, float y)
 		{
-			return new Point((int)Math.Floor(x / (float)Tile.TILE_SIZE) * Tile.TILE_SIZE, (int)Math.Floor(y / (float)Tile.TILE_SIZE) * Tile.TILE_SIZE);
+			return new Point((int)Math.Floor(x / Tile.TILE_SIZE) * Tile.TILE_SIZE, (int)Math.Floor(y / Tile.TILE_SIZE) * Tile.TILE_SIZE);
 		}
 
 		// This draws all tiles on the image