From 6b62b4f3d2f8536a20b1bbca51ce4e2dae4b9df5 Mon Sep 17 00:00:00 2001
From: MaxED <j.maxed@gmail.com>
Date: Fri, 2 Nov 2012 23:11:38 +0000
Subject: [PATCH] Added multiple engine support for any game configuration.
 Floor and ceiling textures are now moved more predictably by arrow keys in
 GZDoom Visual mode. Walls texture coordinates are always rounded when moved
 by arrow keys in Visual modes. Linedef info panel: relative UDMF light values
 are now shown like this: 16 (128), which means "UDMF light value" ("total
 surface brightness (UDMF light value + sector brightness)") Player is now
 spawned at camera height when testing from current location in Visual modes.
 Focus is now properly restored after testing from current location in Visual
 modes. Updated Heretic_sectors.cfg and Heretic_things.cfg as described here:
 http://www.doombuilder.com/forums/viewtopic.php?f=11&t=357 Changed sprites of
 artifacts in Hexen_things.cfg to proper ones. Renamed Skulltag configs to
 Zandronum

---
 .../GZDoom_Action2Hexen.cfg                   |    2 +-
 .../GZDoom_Action2UDMF.cfg                    |    2 +-
 .../GZDoom_Chex3Hexen.cfg                     |    2 +-
 .../GZDoom_Chex3UDMF.cfg                      |    2 +-
 .../GZDoom_ChexDoom.cfg                       |    2 +-
 .../GZDoom_ChexHexen.cfg                      |    2 +-
 .../GZDoom_ChexUDMF.cfg                       |    2 +-
 .../GZDoom_DoomDoom.cfg                       |    2 +-
 .../GZDoom_HarmonyDoom.cfg                    |    2 +-
 .../GZDoom_HarmonyHexen.cfg                   |    2 +-
 .../GZDoom_HarmonyUDMF.cfg                    |    2 +-
 .../GZDoom_HereticDoom.cfg                    |    2 +-
 .../GZDoom_HereticHexen.cfg                   |    2 +-
 .../GZDoom_HereticUDMF.cfg                    |    2 +-
 .../GZDoom_HexenHexen.cfg                     |    2 +-
 .../GZDoom_HexenUDMF.cfg                      |    2 +-
 .../GZDoom_StrifeDoom.cfg                     |    2 +-
 .../GZDoom_StrifeHexen.cfg                    |    2 +-
 .../GZDoom_StrifeUDMF.cfg                     |    2 +-
 .../ZDoomFamily_template.txt                  |   16 +-
 .../ZDoom_Action2Hexen.cfg                    |    2 +-
 .../ZDoom_Action2UDMF.cfg                     |    2 +-
 .../ZDoom_Chex3Hexen.cfg                      |    2 +-
 .../ZDoom_Chex3UDMF.cfg                       |    2 +-
 .../ZDoom_ChexDoom.cfg                        |    2 +-
 .../ZDoom_ChexHexen.cfg                       |    2 +-
 .../ZDoom_ChexUDMF.cfg                        |    2 +-
 .../ZDoom_DoomDoom.cfg                        |    2 +-
 .../ZDoom_DoomHexen.cfg                       |    2 +-
 .../ZDoom_DoomUDMF.cfg                        |    2 +-
 .../ZDoom_HarmonyDoom.cfg                     |    2 +-
 .../ZDoom_HarmonyHexen.cfg                    |    2 +-
 .../ZDoom_HarmonyUDMF.cfg                     |    2 +-
 .../ZDoom_HereticDoom.cfg                     |    2 +-
 .../ZDoom_HereticHexen.cfg                    |    2 +-
 .../ZDoom_HereticUDMF.cfg                     |    2 +-
 .../ZDoom_HexenHexen.cfg                      |    2 +-
 .../ZDoom_HexenUDMF.cfg                       |    2 +-
 .../ZDoom_StrifeDoom.cfg                      |    2 +-
 .../ZDoom_StrifeHexen.cfg                     |    2 +-
 .../ZDoom_StrifeUDMF.cfg                      |    2 +-
 ...n2Hexen.cfg => Zandronum_Action2Hexen.cfg} |   10 +-
 ...ion2UDMF.cfg => Zandronum_Action2UDMF.cfg} |   10 +-
 ...hex3Hexen.cfg => Zandronum_Chex3Hexen.cfg} |   10 +-
 ..._Chex3UDMF.cfg => Zandronum_Chex3UDMF.cfg} |   10 +-
 ...ag_ChexDoom.cfg => Zandronum_ChexDoom.cfg} |   10 +-
 ..._ChexHexen.cfg => Zandronum_ChexHexen.cfg} |   10 +-
 ...ag_ChexUDMF.cfg => Zandronum_ChexUDMF.cfg} |   10 +-
 ...ag_DoomDoom.cfg => Zandronum_DoomDoom.cfg} |   10 +-
 ..._DoomHexen.cfg => Zandronum_DoomHexen.cfg} |   10 +-
 ...ag_DoomUDMF.cfg => Zandronum_DoomUDMF.cfg} |   10 +-
 ...monyDoom.cfg => Zandronum_HarmonyDoom.cfg} |   10 +-
 ...nyHexen.cfg => Zandronum_HarmonyHexen.cfg} |   10 +-
 ...monyUDMF.cfg => Zandronum_HarmonyUDMF.cfg} |   10 +-
 ...eticDoom.cfg => Zandronum_HereticDoom.cfg} |   10 +-
 ...icHexen.cfg => Zandronum_HereticHexen.cfg} |   10 +-
 ...eticUDMF.cfg => Zandronum_HereticUDMF.cfg} |   10 +-
 ...exenHexen.cfg => Zandronum_HexenHexen.cfg} |   10 +-
 ..._HexenUDMF.cfg => Zandronum_HexenUDMF.cfg} |   10 +-
 ...trifeDoom.cfg => Zandronum_StrifeDoom.cfg} |   10 +-
 ...ifeHexen.cfg => Zandronum_StrifeHexen.cfg} |   10 +-
 ...trifeUDMF.cfg => Zandronum_StrifeUDMF.cfg} |   10 +-
 Build/Configurations/GZDoom_DoomHexen.cfg     |    2 +-
 Build/Configurations/GZDoom_DoomUDMF.cfg      |    2 +-
 .../Includes/Heretic_sectors.cfg              |   80 +-
 .../Includes/Heretic_things.cfg               |  470 +--
 .../Configurations/Includes/Hexen_things.cfg  |   30 +-
 .../Includes/Skulltag_things.cfg              |   42 -
 .../Configurations/Includes/ZDoom_common.cfg  |    2 +-
 .../Includes/ZDoom_linedefs.cfg               |    6 +-
 ...ulltag_common.cfg => Zandronum_common.cfg} |  570 +--
 ...ag_linedefs.cfg => Zandronum_linedefs.cfg} |    2 +-
 .../{Skulltag_misc.cfg => Zandronum_misc.cfg} |    2 +-
 ...turesets.cfg => Zandronum_texturesets.cfg} |    2 +-
 .../Includes/Zandronum_things.cfg             |   42 +
 Build/Plugins/PropertiesDock.dll              |  Bin 26624 -> 0 bytes
 Source/Core/Builder.csproj                    |    3 +
 Source/Core/Builder.sln                       |   12 -
 Source/Core/Config/ConfigurationInfo.cs       |  118 +-
 Source/Core/Controls/FieldsEditorRow.cs       |    2 +-
 Source/Core/Controls/LinedefInfoPanel.cs      |   18 +-
 Source/Core/Controls/SectorInfoPanel.cs       |   14 +-
 Source/Core/GZBuilder/Data/EngineInfo.cs      |   39 +
 Source/Core/GZBuilder/GZGeneral.cs            |    2 +-
 Source/Core/General/Launcher.cs               |    7 +-
 Source/Core/Plugins/Plug.cs                   |    6 +-
 Source/Core/Properties/Resources.Designer.cs  |   16 +-
 Source/Core/Properties/Resources.resx         |   40 +-
 .../PropertiesDock => Core}/Resources/Add.png |  Bin
 Source/Core/Resources/Marine.png              |  Bin 0 -> 501 bytes
 Source/Core/VisualModes/VisualMode.cs         |    8 +-
 Source/Core/Windows/ConfigForm.Designer.cs    | 1375 +++----
 Source/Core/Windows/ConfigForm.cs             |  110 +-
 Source/Core/Windows/ConfigForm.resx           |   41 +-
 Source/Core/Windows/MainForm.Designer.cs      | 3260 ++++++++---------
 Source/Core/Windows/MainForm.cs               |   29 +-
 Source/Core/Windows/MainForm.resx             |   24 +
 Source/Core/Windows/OpenMapOptionsForm.cs     |    3 +
 .../VisualModes/BaseVisualGeometrySector.cs   |   21 +
 .../VisualModes/BaseVisualGeometrySidedef.cs  |    8 +-
 .../VisualModes/VisualCeiling.cs              |    1 +
 .../GZDoomEditing/VisualModes/VisualFloor.cs  |    1 +
 .../GZDoomEditing/VisualModes/VisualLower.cs  |    6 +-
 .../VisualModes/VisualMiddleDouble.cs         |    6 +-
 .../VisualModes/VisualMiddleSingle.cs         |    6 +-
 .../GZDoomEditing/VisualModes/VisualUpper.cs  |    6 +-
 Source/Plugins/PropertiesDock/BuilderPlug.cs  |  137 -
 .../Controls/PropertiesDocker.Designer.cs     |  207 --
 .../Controls/PropertiesDocker.cs              |  257 --
 .../Controls/PropertiesDocker.resx            |  120 -
 .../Data/CustomPropertiesCollection.cs        |  135 -
 .../PropertiesDock/Data/CustomProperty.cs     |   41 -
 .../Data/CustomPropertyDescriptor.cs          |   84 -
 .../PropertiesDock/Data/MapElementsData.cs    |   29 -
 .../PropertiesDock/Info/IMapElementInfo.cs    |   12 -
 .../Plugins/PropertiesDock/Info/ThingInfo.cs  |   80 -
 .../Plugins/PropertiesDock/Info/VertexInfo.cs |   49 -
 .../PropertiesDock/Properties/AssemblyInfo.cs |   36 -
 .../Properties/Resources.Designer.cs          |   77 -
 .../PropertiesDock/Properties/Resources.resx  |  127 -
 .../PropertiesDock/PropertiesDock.csproj      |   97 -
 .../PropertiesDock/Resources/Remove.png       |  Bin 1178 -> 0 bytes
 122 files changed, 3546 insertions(+), 4682 deletions(-)
 rename Build/Configurations/Configs for other games/{Skulltag_Action2Hexen.cfg => Zandronum_Action2Hexen.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_Action2UDMF.cfg => Zandronum_Action2UDMF.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_Chex3Hexen.cfg => Zandronum_Chex3Hexen.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_Chex3UDMF.cfg => Zandronum_Chex3UDMF.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_ChexDoom.cfg => Zandronum_ChexDoom.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_ChexHexen.cfg => Zandronum_ChexHexen.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_ChexUDMF.cfg => Zandronum_ChexUDMF.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_DoomDoom.cfg => Zandronum_DoomDoom.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_DoomHexen.cfg => Zandronum_DoomHexen.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_DoomUDMF.cfg => Zandronum_DoomUDMF.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_HarmonyDoom.cfg => Zandronum_HarmonyDoom.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_HarmonyHexen.cfg => Zandronum_HarmonyHexen.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_HarmonyUDMF.cfg => Zandronum_HarmonyUDMF.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_HereticDoom.cfg => Zandronum_HereticDoom.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_HereticHexen.cfg => Zandronum_HereticHexen.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_HereticUDMF.cfg => Zandronum_HereticUDMF.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_HexenHexen.cfg => Zandronum_HexenHexen.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_HexenUDMF.cfg => Zandronum_HexenUDMF.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_StrifeDoom.cfg => Zandronum_StrifeDoom.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_StrifeHexen.cfg => Zandronum_StrifeHexen.cfg} (87%)
 rename Build/Configurations/Configs for other games/{Skulltag_StrifeUDMF.cfg => Zandronum_StrifeUDMF.cfg} (87%)
 delete mode 100644 Build/Configurations/Includes/Skulltag_things.cfg
 rename Build/Configurations/Includes/{Skulltag_common.cfg => Zandronum_common.cfg} (66%)
 rename Build/Configurations/Includes/{Skulltag_linedefs.cfg => Zandronum_linedefs.cfg} (63%)
 rename Build/Configurations/Includes/{Skulltag_misc.cfg => Zandronum_misc.cfg} (92%)
 rename Build/Configurations/Includes/{Skulltag_texturesets.cfg => Zandronum_texturesets.cfg} (95%)
 create mode 100644 Build/Configurations/Includes/Zandronum_things.cfg
 delete mode 100644 Build/Plugins/PropertiesDock.dll
 create mode 100644 Source/Core/GZBuilder/Data/EngineInfo.cs
 rename Source/{Plugins/PropertiesDock => Core}/Resources/Add.png (100%)
 create mode 100644 Source/Core/Resources/Marine.png
 delete mode 100644 Source/Plugins/PropertiesDock/BuilderPlug.cs
 delete mode 100644 Source/Plugins/PropertiesDock/Controls/PropertiesDocker.Designer.cs
 delete mode 100644 Source/Plugins/PropertiesDock/Controls/PropertiesDocker.cs
 delete mode 100644 Source/Plugins/PropertiesDock/Controls/PropertiesDocker.resx
 delete mode 100644 Source/Plugins/PropertiesDock/Data/CustomPropertiesCollection.cs
 delete mode 100644 Source/Plugins/PropertiesDock/Data/CustomProperty.cs
 delete mode 100644 Source/Plugins/PropertiesDock/Data/CustomPropertyDescriptor.cs
 delete mode 100644 Source/Plugins/PropertiesDock/Data/MapElementsData.cs
 delete mode 100644 Source/Plugins/PropertiesDock/Info/IMapElementInfo.cs
 delete mode 100644 Source/Plugins/PropertiesDock/Info/ThingInfo.cs
 delete mode 100644 Source/Plugins/PropertiesDock/Info/VertexInfo.cs
 delete mode 100644 Source/Plugins/PropertiesDock/Properties/AssemblyInfo.cs
 delete mode 100644 Source/Plugins/PropertiesDock/Properties/Resources.Designer.cs
 delete mode 100644 Source/Plugins/PropertiesDock/Properties/Resources.resx
 delete mode 100644 Source/Plugins/PropertiesDock/PropertiesDock.csproj
 delete mode 100644 Source/Plugins/PropertiesDock/Resources/Remove.png

diff --git a/Build/Configurations/Configs for other games/GZDoom_Action2Hexen.cfg b/Build/Configurations/Configs for other games/GZDoom_Action2Hexen.cfg
index 248aa08c0..0cbe465c7 100644
--- a/Build/Configurations/Configs for other games/GZDoom_Action2Hexen.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_Action2Hexen.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_Action2UDMF.cfg b/Build/Configurations/Configs for other games/GZDoom_Action2UDMF.cfg
index 79d1b9c5c..ca46072a9 100644
--- a/Build/Configurations/Configs for other games/GZDoom_Action2UDMF.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_Action2UDMF.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_Chex3Hexen.cfg b/Build/Configurations/Configs for other games/GZDoom_Chex3Hexen.cfg
index a8a5fe5da..a28ba63d4 100644
--- a/Build/Configurations/Configs for other games/GZDoom_Chex3Hexen.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_Chex3Hexen.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_Chex3UDMF.cfg b/Build/Configurations/Configs for other games/GZDoom_Chex3UDMF.cfg
index 1742944ac..236f20423 100644
--- a/Build/Configurations/Configs for other games/GZDoom_Chex3UDMF.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_Chex3UDMF.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_ChexDoom.cfg b/Build/Configurations/Configs for other games/GZDoom_ChexDoom.cfg
index 5ccb8238e..ba32c637b 100644
--- a/Build/Configurations/Configs for other games/GZDoom_ChexDoom.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_ChexDoom.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_ChexHexen.cfg b/Build/Configurations/Configs for other games/GZDoom_ChexHexen.cfg
index 29df01392..0e7b9d992 100644
--- a/Build/Configurations/Configs for other games/GZDoom_ChexHexen.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_ChexHexen.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_ChexUDMF.cfg b/Build/Configurations/Configs for other games/GZDoom_ChexUDMF.cfg
index c76b54048..cbbc50d92 100644
--- a/Build/Configurations/Configs for other games/GZDoom_ChexUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_ChexUDMF.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_DoomDoom.cfg b/Build/Configurations/Configs for other games/GZDoom_DoomDoom.cfg
index 572d53783..d8f5b1f5e 100644
--- a/Build/Configurations/Configs for other games/GZDoom_DoomDoom.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_DoomDoom.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_HarmonyDoom.cfg b/Build/Configurations/Configs for other games/GZDoom_HarmonyDoom.cfg
index 146cf69ef..a6a383be8 100644
--- a/Build/Configurations/Configs for other games/GZDoom_HarmonyDoom.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_HarmonyDoom.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_HarmonyHexen.cfg b/Build/Configurations/Configs for other games/GZDoom_HarmonyHexen.cfg
index 7db2f8a05..54996dd5e 100644
--- a/Build/Configurations/Configs for other games/GZDoom_HarmonyHexen.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_HarmonyHexen.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_HarmonyUDMF.cfg b/Build/Configurations/Configs for other games/GZDoom_HarmonyUDMF.cfg
index ad2715e21..5ca80105d 100644
--- a/Build/Configurations/Configs for other games/GZDoom_HarmonyUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_HarmonyUDMF.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_HereticDoom.cfg b/Build/Configurations/Configs for other games/GZDoom_HereticDoom.cfg
index f07ecda2d..54100b68a 100644
--- a/Build/Configurations/Configs for other games/GZDoom_HereticDoom.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_HereticDoom.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_HereticHexen.cfg b/Build/Configurations/Configs for other games/GZDoom_HereticHexen.cfg
index 50a29a654..3767ca06d 100644
--- a/Build/Configurations/Configs for other games/GZDoom_HereticHexen.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_HereticHexen.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_HereticUDMF.cfg b/Build/Configurations/Configs for other games/GZDoom_HereticUDMF.cfg
index 1cf1b8817..e1298b688 100644
--- a/Build/Configurations/Configs for other games/GZDoom_HereticUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_HereticUDMF.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_HexenHexen.cfg b/Build/Configurations/Configs for other games/GZDoom_HexenHexen.cfg
index 4cf151a28..90be7889d 100644
--- a/Build/Configurations/Configs for other games/GZDoom_HexenHexen.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_HexenHexen.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_HexenUDMF.cfg b/Build/Configurations/Configs for other games/GZDoom_HexenUDMF.cfg
index 5c25006ac..13a8ee0c8 100644
--- a/Build/Configurations/Configs for other games/GZDoom_HexenUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_HexenUDMF.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_StrifeDoom.cfg b/Build/Configurations/Configs for other games/GZDoom_StrifeDoom.cfg
index 7f35a10e1..9b0b1caee 100644
--- a/Build/Configurations/Configs for other games/GZDoom_StrifeDoom.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_StrifeDoom.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_StrifeHexen.cfg b/Build/Configurations/Configs for other games/GZDoom_StrifeHexen.cfg
index 00d87812e..c2f9b5026 100644
--- a/Build/Configurations/Configs for other games/GZDoom_StrifeHexen.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_StrifeHexen.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/GZDoom_StrifeUDMF.cfg b/Build/Configurations/Configs for other games/GZDoom_StrifeUDMF.cfg
index b27240511..eeca13f41 100644
--- a/Build/Configurations/Configs for other games/GZDoom_StrifeUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/GZDoom_StrifeUDMF.cfg	
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoomFamily_template.txt b/Build/Configurations/Configs for other games/ZDoomFamily_template.txt
index 3d25d54ef..9d12b42e2 100644
--- a/Build/Configurations/Configs for other games/ZDoomFamily_template.txt	
+++ b/Build/Configurations/Configs for other games/ZDoomFamily_template.txt	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -103,11 +103,11 @@ thingtypes
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
 	include("Includes\\GZDoom_things.cfg", "gzdoom");
-	include("Includes\\Skulltag_things.cfg", "doom");
-	include("Includes\\Skulltag_things.cfg", "heretic");
-	include("Includes\\Skulltag_things.cfg", "hexen");
-	include("Includes\\Skulltag_things.cfg", "strife");
-	include("Includes\\Skulltag_things.cfg", "default");
+	include("Includes\\Zandronum_things.cfg", "doom");
+	include("Includes\\Zandronum_things.cfg", "heretic");
+	include("Includes\\Zandronum_things.cfg", "hexen");
+	include("Includes\\Zandronum_things.cfg", "strife");
+	include("Includes\\Zandronum_things.cfg", "default");
 }
 
 // ENUMERATIONS
@@ -128,6 +128,6 @@ enums
 	include("Includes\\ZDoom_misc.cfg", "enums_chex3");
 	include("Includes\\ZDoom_misc.cfg", "enums_harmony");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_doom");
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_doom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/ZDoom_Action2Hexen.cfg b/Build/Configurations/Configs for other games/ZDoom_Action2Hexen.cfg
index fb411f994..7caca32fe 100644
--- a/Build/Configurations/Configs for other games/ZDoom_Action2Hexen.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_Action2Hexen.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_Action2UDMF.cfg b/Build/Configurations/Configs for other games/ZDoom_Action2UDMF.cfg
index b44961833..dc014eccb 100644
--- a/Build/Configurations/Configs for other games/ZDoom_Action2UDMF.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_Action2UDMF.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_Chex3Hexen.cfg b/Build/Configurations/Configs for other games/ZDoom_Chex3Hexen.cfg
index c1c7f02f9..be6009a6e 100644
--- a/Build/Configurations/Configs for other games/ZDoom_Chex3Hexen.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_Chex3Hexen.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_Chex3UDMF.cfg b/Build/Configurations/Configs for other games/ZDoom_Chex3UDMF.cfg
index 10e63c36b..c4b13becb 100644
--- a/Build/Configurations/Configs for other games/ZDoom_Chex3UDMF.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_Chex3UDMF.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_ChexDoom.cfg b/Build/Configurations/Configs for other games/ZDoom_ChexDoom.cfg
index 83c951e7e..39ffaf267 100644
--- a/Build/Configurations/Configs for other games/ZDoom_ChexDoom.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_ChexDoom.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_ChexHexen.cfg b/Build/Configurations/Configs for other games/ZDoom_ChexHexen.cfg
index ceee3b3d4..a4708f9c1 100644
--- a/Build/Configurations/Configs for other games/ZDoom_ChexHexen.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_ChexHexen.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_ChexUDMF.cfg b/Build/Configurations/Configs for other games/ZDoom_ChexUDMF.cfg
index 721e200b7..5a6ca1989 100644
--- a/Build/Configurations/Configs for other games/ZDoom_ChexUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_ChexUDMF.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_DoomDoom.cfg b/Build/Configurations/Configs for other games/ZDoom_DoomDoom.cfg
index 51508ebe6..1ba749f9f 100644
--- a/Build/Configurations/Configs for other games/ZDoom_DoomDoom.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_DoomDoom.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_DoomHexen.cfg b/Build/Configurations/Configs for other games/ZDoom_DoomHexen.cfg
index 2638d64eb..ad757557d 100644
--- a/Build/Configurations/Configs for other games/ZDoom_DoomHexen.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_DoomHexen.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_DoomUDMF.cfg b/Build/Configurations/Configs for other games/ZDoom_DoomUDMF.cfg
index bb70617e6..0c4cf4dca 100644
--- a/Build/Configurations/Configs for other games/ZDoom_DoomUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_DoomUDMF.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_HarmonyDoom.cfg b/Build/Configurations/Configs for other games/ZDoom_HarmonyDoom.cfg
index 6765d07a5..2419c2b1d 100644
--- a/Build/Configurations/Configs for other games/ZDoom_HarmonyDoom.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_HarmonyDoom.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_HarmonyHexen.cfg b/Build/Configurations/Configs for other games/ZDoom_HarmonyHexen.cfg
index e3069f664..0f263e540 100644
--- a/Build/Configurations/Configs for other games/ZDoom_HarmonyHexen.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_HarmonyHexen.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_HarmonyUDMF.cfg b/Build/Configurations/Configs for other games/ZDoom_HarmonyUDMF.cfg
index 449c18fd9..763ed5bbc 100644
--- a/Build/Configurations/Configs for other games/ZDoom_HarmonyUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_HarmonyUDMF.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_HereticDoom.cfg b/Build/Configurations/Configs for other games/ZDoom_HereticDoom.cfg
index 7fcdfc301..d91962f3e 100644
--- a/Build/Configurations/Configs for other games/ZDoom_HereticDoom.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_HereticDoom.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_HereticHexen.cfg b/Build/Configurations/Configs for other games/ZDoom_HereticHexen.cfg
index 0039894b2..c8f617517 100644
--- a/Build/Configurations/Configs for other games/ZDoom_HereticHexen.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_HereticHexen.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_HereticUDMF.cfg b/Build/Configurations/Configs for other games/ZDoom_HereticUDMF.cfg
index bb6ae37b3..02797c5f6 100644
--- a/Build/Configurations/Configs for other games/ZDoom_HereticUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_HereticUDMF.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_HexenHexen.cfg b/Build/Configurations/Configs for other games/ZDoom_HexenHexen.cfg
index c54e745d1..d25ea6b92 100644
--- a/Build/Configurations/Configs for other games/ZDoom_HexenHexen.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_HexenHexen.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_HexenUDMF.cfg b/Build/Configurations/Configs for other games/ZDoom_HexenUDMF.cfg
index 77d6f9530..989549bfa 100644
--- a/Build/Configurations/Configs for other games/ZDoom_HexenUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_HexenUDMF.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_StrifeDoom.cfg b/Build/Configurations/Configs for other games/ZDoom_StrifeDoom.cfg
index 50c4c0820..d4637b3b0 100644
--- a/Build/Configurations/Configs for other games/ZDoom_StrifeDoom.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_StrifeDoom.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_StrifeHexen.cfg b/Build/Configurations/Configs for other games/ZDoom_StrifeHexen.cfg
index 15cd70513..82bd1f997 100644
--- a/Build/Configurations/Configs for other games/ZDoom_StrifeHexen.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_StrifeHexen.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/ZDoom_StrifeUDMF.cfg b/Build/Configurations/Configs for other games/ZDoom_StrifeUDMF.cfg
index e7a438cbc..3443efd1a 100644
--- a/Build/Configurations/Configs for other games/ZDoom_StrifeUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/ZDoom_StrifeUDMF.cfg	
@@ -15,7 +15,7 @@ engine = "zdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Configs for other games/Skulltag_Action2Hexen.cfg b/Build/Configurations/Configs for other games/Zandronum_Action2Hexen.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_Action2Hexen.cfg
rename to Build/Configurations/Configs for other games/Zandronum_Action2Hexen.cfg
index 4ca22fad8..c6bfca489 100644
--- a/Build/Configurations/Configs for other games/Skulltag_Action2Hexen.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_Action2Hexen.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "GZDoom: Urban Brawl (Hexen format)";
+game = "Zandronum: Urban Brawl (Hexen format)";
 
 // This is the simplified game engine/sourceport name
-engine = "zdoom";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "default");
+	include("Includes\\Zandronum_things.cfg", "default");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_action2");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_Action2UDMF.cfg b/Build/Configurations/Configs for other games/Zandronum_Action2UDMF.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_Action2UDMF.cfg
rename to Build/Configurations/Configs for other games/Zandronum_Action2UDMF.cfg
index 687664201..c960b7289 100644
--- a/Build/Configurations/Configs for other games/Skulltag_Action2UDMF.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_Action2UDMF.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "GZDoom: Urban Brawl (UDMF)";
+game = "Zandronum: Urban Brawl (UDMF)";
 
 // This is the simplified game engine/sourceport name
-engine = "zdoom";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "default");
+	include("Includes\\Zandronum_things.cfg", "default");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_action2");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_Chex3Hexen.cfg b/Build/Configurations/Configs for other games/Zandronum_Chex3Hexen.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_Chex3Hexen.cfg
rename to Build/Configurations/Configs for other games/Zandronum_Chex3Hexen.cfg
index 0c02f25f2..d923c00fe 100644
--- a/Build/Configurations/Configs for other games/Skulltag_Chex3Hexen.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_Chex3Hexen.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Chex Quest 3 (Hexen format)";
+game = "Zandronum: Chex Quest 3 (Hexen format)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -51,7 +51,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "default");
+	include("Includes\\Zandronum_things.cfg", "default");
 }
 
 // ENUMERATIONS
@@ -66,5 +66,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_chex3");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_Chex3UDMF.cfg b/Build/Configurations/Configs for other games/Zandronum_Chex3UDMF.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_Chex3UDMF.cfg
rename to Build/Configurations/Configs for other games/Zandronum_Chex3UDMF.cfg
index cca3b8454..04a6da8f6 100644
--- a/Build/Configurations/Configs for other games/Skulltag_Chex3UDMF.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_Chex3UDMF.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Chex Quest 3 (UDMF)";
+game = "Zandronum: Chex Quest 3 (UDMF)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -51,7 +51,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "default");
+	include("Includes\\Zandronum_things.cfg", "default");
 }
 
 // ENUMERATIONS
@@ -66,5 +66,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_chex3");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_ChexDoom.cfg b/Build/Configurations/Configs for other games/Zandronum_ChexDoom.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_ChexDoom.cfg
rename to Build/Configurations/Configs for other games/Zandronum_ChexDoom.cfg
index c2b1aca4e..6fe78d882 100644
--- a/Build/Configurations/Configs for other games/Skulltag_ChexDoom.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_ChexDoom.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Chex Quest 1 (Doom format)";
+game = "Zandronum: Chex Quest 1 (Doom format)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "default");
+	include("Includes\\Zandronum_things.cfg", "default");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_chex");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_ChexHexen.cfg b/Build/Configurations/Configs for other games/Zandronum_ChexHexen.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_ChexHexen.cfg
rename to Build/Configurations/Configs for other games/Zandronum_ChexHexen.cfg
index ec855c90d..cf814f8fd 100644
--- a/Build/Configurations/Configs for other games/Skulltag_ChexHexen.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_ChexHexen.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Chex Quest 1 (Hexen format)";
+game = "Zandronum: Chex Quest 1 (Hexen format)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "default");
+	include("Includes\\Zandronum_things.cfg", "default");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_chex");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_ChexUDMF.cfg b/Build/Configurations/Configs for other games/Zandronum_ChexUDMF.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_ChexUDMF.cfg
rename to Build/Configurations/Configs for other games/Zandronum_ChexUDMF.cfg
index 5edaa035c..b6e737374 100644
--- a/Build/Configurations/Configs for other games/Skulltag_ChexUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_ChexUDMF.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Chex Quest 1 (UDMF)";
+game = "Zandronum: Chex Quest 1 (UDMF)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "default");
+	include("Includes\\Zandronum_things.cfg", "default");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_chex");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_DoomDoom.cfg b/Build/Configurations/Configs for other games/Zandronum_DoomDoom.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_DoomDoom.cfg
rename to Build/Configurations/Configs for other games/Zandronum_DoomDoom.cfg
index 4d270ff4a..559741f76 100644
--- a/Build/Configurations/Configs for other games/Skulltag_DoomDoom.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_DoomDoom.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Doom (Doom format)";
+game = "Zandronum: Doom (Doom format)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -51,7 +51,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "doom");
+	include("Includes\\Zandronum_things.cfg", "doom");
 }
 
 // ENUMERATIONS
@@ -66,5 +66,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_doom");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_doom");
+	include("Includes\\Zandronum_misc.cfg", "enums_doom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_DoomHexen.cfg b/Build/Configurations/Configs for other games/Zandronum_DoomHexen.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_DoomHexen.cfg
rename to Build/Configurations/Configs for other games/Zandronum_DoomHexen.cfg
index 24090f04e..2b92648e9 100644
--- a/Build/Configurations/Configs for other games/Skulltag_DoomHexen.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_DoomHexen.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Doom (Hexen format)";
+game = "Zandronum: Doom (Hexen format)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -51,7 +51,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "doom");
+	include("Includes\\Zandronum_things.cfg", "doom");
 }
 
 // ENUMERATIONS
@@ -66,5 +66,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_doom");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_doom");
+	include("Includes\\Zandronum_misc.cfg", "enums_doom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_DoomUDMF.cfg b/Build/Configurations/Configs for other games/Zandronum_DoomUDMF.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_DoomUDMF.cfg
rename to Build/Configurations/Configs for other games/Zandronum_DoomUDMF.cfg
index 4892000a5..26c2bff17 100644
--- a/Build/Configurations/Configs for other games/Skulltag_DoomUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_DoomUDMF.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Doom (UDMF)";
+game = "Zandronum: Doom (UDMF)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -51,7 +51,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "doom");
+	include("Includes\\Zandronum_things.cfg", "doom");
 }
 
 // ENUMERATIONS
@@ -66,5 +66,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_doom");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_doom");
+	include("Includes\\Zandronum_misc.cfg", "enums_doom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_HarmonyDoom.cfg b/Build/Configurations/Configs for other games/Zandronum_HarmonyDoom.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_HarmonyDoom.cfg
rename to Build/Configurations/Configs for other games/Zandronum_HarmonyDoom.cfg
index 83f0e8198..3d1c97ac9 100644
--- a/Build/Configurations/Configs for other games/Skulltag_HarmonyDoom.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_HarmonyDoom.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Harmony (Doom format)";
+game = "Zandronum: Harmony (Doom format)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "default");
+	include("Includes\\Zandronum_things.cfg", "default");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_harmony");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_HarmonyHexen.cfg b/Build/Configurations/Configs for other games/Zandronum_HarmonyHexen.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_HarmonyHexen.cfg
rename to Build/Configurations/Configs for other games/Zandronum_HarmonyHexen.cfg
index 61ebe89a5..b5ec5458a 100644
--- a/Build/Configurations/Configs for other games/Skulltag_HarmonyHexen.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_HarmonyHexen.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Harmony (Hexen format)";
+game = "Zandronum: Harmony (Hexen format)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "default");
+	include("Includes\\Zandronum_things.cfg", "default");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_harmony");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_HarmonyUDMF.cfg b/Build/Configurations/Configs for other games/Zandronum_HarmonyUDMF.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_HarmonyUDMF.cfg
rename to Build/Configurations/Configs for other games/Zandronum_HarmonyUDMF.cfg
index 88d13c7a4..32850429c 100644
--- a/Build/Configurations/Configs for other games/Skulltag_HarmonyUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_HarmonyUDMF.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Harmony (UDMF)";
+game = "Zandronum: Harmony (UDMF)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "default");
+	include("Includes\\Zandronum_things.cfg", "default");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_harmony");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_HereticDoom.cfg b/Build/Configurations/Configs for other games/Zandronum_HereticDoom.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_HereticDoom.cfg
rename to Build/Configurations/Configs for other games/Zandronum_HereticDoom.cfg
index 7b5ecc83c..d16f6fb3e 100644
--- a/Build/Configurations/Configs for other games/Skulltag_HereticDoom.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_HereticDoom.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Heretic (Doom format)";
+game = "Zandronum: Heretic (Doom format)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "heretic");
+	include("Includes\\Zandronum_things.cfg", "heretic");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_heretic");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_HereticHexen.cfg b/Build/Configurations/Configs for other games/Zandronum_HereticHexen.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_HereticHexen.cfg
rename to Build/Configurations/Configs for other games/Zandronum_HereticHexen.cfg
index 467b74df0..372c269cd 100644
--- a/Build/Configurations/Configs for other games/Skulltag_HereticHexen.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_HereticHexen.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Heretic (Hexen format)";
+game = "Zandronum: Heretic (Hexen format)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "heretic");
+	include("Includes\\Zandronum_things.cfg", "heretic");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_heretic");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_HereticUDMF.cfg b/Build/Configurations/Configs for other games/Zandronum_HereticUDMF.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_HereticUDMF.cfg
rename to Build/Configurations/Configs for other games/Zandronum_HereticUDMF.cfg
index 0ac5bbc79..ca5511452 100644
--- a/Build/Configurations/Configs for other games/Skulltag_HereticUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_HereticUDMF.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Heretic (UDMF)";
+game = "Zandronum: Heretic (UDMF)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "heretic");
+	include("Includes\\Zandronum_things.cfg", "heretic");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_heretic");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_HexenHexen.cfg b/Build/Configurations/Configs for other games/Zandronum_HexenHexen.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_HexenHexen.cfg
rename to Build/Configurations/Configs for other games/Zandronum_HexenHexen.cfg
index 226d532fb..b23028cca 100644
--- a/Build/Configurations/Configs for other games/Skulltag_HexenHexen.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_HexenHexen.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Hexen (Hexen format)";
+game = "Zandronum: Hexen (Hexen format)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "hexen");
+	include("Includes\\Zandronum_things.cfg", "hexen");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_hexen");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_HexenUDMF.cfg b/Build/Configurations/Configs for other games/Zandronum_HexenUDMF.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_HexenUDMF.cfg
rename to Build/Configurations/Configs for other games/Zandronum_HexenUDMF.cfg
index ed9ad6673..60760b378 100644
--- a/Build/Configurations/Configs for other games/Skulltag_HexenUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_HexenUDMF.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Hexen (UDMF)";
+game = "Zandronum: Hexen (UDMF)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "hexen");
+	include("Includes\\Zandronum_things.cfg", "hexen");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_hexen");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_StrifeDoom.cfg b/Build/Configurations/Configs for other games/Zandronum_StrifeDoom.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_StrifeDoom.cfg
rename to Build/Configurations/Configs for other games/Zandronum_StrifeDoom.cfg
index ba5973298..b80743ec5 100644
--- a/Build/Configurations/Configs for other games/Skulltag_StrifeDoom.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_StrifeDoom.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Strife (Doom format)";
+game = "Zandronum: Strife (Doom format)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "strife");
+	include("Includes\\Zandronum_things.cfg", "strife");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_strife");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_StrifeHexen.cfg b/Build/Configurations/Configs for other games/Zandronum_StrifeHexen.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_StrifeHexen.cfg
rename to Build/Configurations/Configs for other games/Zandronum_StrifeHexen.cfg
index 97e7762b8..98242ee50 100644
--- a/Build/Configurations/Configs for other games/Skulltag_StrifeHexen.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_StrifeHexen.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Strife (Hexen format)";
+game = "Zandronum: Strife (Hexen format)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "strife");
+	include("Includes\\Zandronum_things.cfg", "strife");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_strife");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/Configs for other games/Skulltag_StrifeUDMF.cfg b/Build/Configurations/Configs for other games/Zandronum_StrifeUDMF.cfg
similarity index 87%
rename from Build/Configurations/Configs for other games/Skulltag_StrifeUDMF.cfg
rename to Build/Configurations/Configs for other games/Zandronum_StrifeUDMF.cfg
index 6acb0f251..7f1d836ef 100644
--- a/Build/Configurations/Configs for other games/Skulltag_StrifeUDMF.cfg	
+++ b/Build/Configurations/Configs for other games/Zandronum_StrifeUDMF.cfg	
@@ -6,16 +6,16 @@
 type = "Doom Builder 2 Game Configuration";
 
 // This is the title to show for this game
-game = "Skulltag: Strife (UDMF)";
+game = "Zandronum: Strife (UDMF)";
 
 // This is the simplified game engine/sourceport name
-engine = "skulltag";
+engine = "zandronum";
 
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
@@ -50,7 +50,7 @@ thingtypes
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
 	// Additional actors from the engine
-	include("Includes\\Skulltag_things.cfg", "strife");
+	include("Includes\\Zandronum_things.cfg", "strife");
 }
 
 // ENUMERATIONS
@@ -65,5 +65,5 @@ enums
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_strife");
 	// Additional enums from the engine
-	include("Includes\\Skulltag_misc.cfg", "enums_notdoom");
+	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
 }
diff --git a/Build/Configurations/GZDoom_DoomHexen.cfg b/Build/Configurations/GZDoom_DoomHexen.cfg
index b06d66d6e..2cc4fa637 100644
--- a/Build/Configurations/GZDoom_DoomHexen.cfg
+++ b/Build/Configurations/GZDoom_DoomHexen.cfg
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/GZDoom_DoomUDMF.cfg b/Build/Configurations/GZDoom_DoomUDMF.cfg
index 4a85d9d64..7cae43069 100644
--- a/Build/Configurations/GZDoom_DoomUDMF.cfg
+++ b/Build/Configurations/GZDoom_DoomUDMF.cfg
@@ -15,7 +15,7 @@ engine = "gzdoom";
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
 // *   because they were common to ZDoom, GZDoom and     *
-// *   Skulltag have been moved to ZDoom_common.cfg.     *
+// *   Zandronum have been moved to ZDoom_common.cfg.     *
 // *                                                     *
 // *******************************************************
 
diff --git a/Build/Configurations/Includes/Heretic_sectors.cfg b/Build/Configurations/Includes/Heretic_sectors.cfg
index 322de189e..88f3ceebb 100644
--- a/Build/Configurations/Includes/Heretic_sectors.cfg
+++ b/Build/Configurations/Includes/Heretic_sectors.cfg
@@ -1,41 +1,49 @@
 
 0 = "Normal";
-1 = "Light Blinks (randomly)";
-2 = "Light Blinks (2 Hz)";
-3 = "Light Blinks (1 Hz)";
-4 = "Damage -10 or 20% health and Light Blinks (2 Hz)";
-5 = "Damage -5 or 10% health";
-7 = "Damage -2 or 5% health";
-8 = "Light Glows (1+ sec)";
+1 = "Light Blinks (Randomly)";
+2 = "Light Blinks (0.5s)";
+3 = "Light Blinks (1.0s)";
+4 = "Damage (5 Points, Fast, Fire), Light Blinks (0.5s), Scroll East (Fast)";
+5 = "Damage (5 Points, Fast, Fire)";
+7 = "Damage (4 Points, Slow, Normal)";
+8 = "Light Glows (1.0s)";
 9 = "Secret";
-10 = "Door Close Stay (after 30 sec)";
-12 = "Light Blinks (1 Hz synchronized)";
-13 = "Light Blinks (2 Hz synchronized)";
-14 = "Door Open Close (opens after 5 min)";
+10 = "Door Close Stay (After 30s)";
+12 = "Light Blinks (0.5s Synchronized)";
+13 = "Light Blinks (1.0s Synchronized)";
+14 = "Door Open Stay (After 300s)";
 15 = "Friction";
-16 = "Damage -10 or 20% health";
-21 = "Scroll East (slow)";
-22 = "Scroll East (medium)";
-23 = "Scroll East (fast)";
-26 = "Scroll North (slow)";
-27 = "Scroll North (medium)";
-28 = "Scroll North (fast)";
-31 = "Scroll South (slow)";
-32 = "Scroll South (medium)";
-33 = "Scroll South (fast)";
-36 = "Scroll West (slow)";
-37 = "Scroll West (medium)";
-38 = "Scroll West (fast)";
-40 = "Wind East (weak)";
-41 = "Wind East (medium)";
-42 = "Wind East (strong)";
-43 = "Wind North (weak)";
-44 = "Wind North (medium)";
-45 = "Wind North (strong)";
-46 = "Wind South (weak)";
-47 = "Wind South (medium)";
-48 = "Wind South (strong)";
-49 = "Wind West (weak)";
-50 = "Wind West (medium)";
-51 = "Wind West (strong)";
+16 = "Damage (8 Points, Fast, Fire)";
+20 = "Scroll East (Slowest)";
+21 = "Scroll East (Slow)";
+22 = "Scroll East (Medium)";
+23 = "Scroll East (Fast)";
+24 = "Scroll East (Fastest)";
+25 = "Scroll North (Slowest)";
+26 = "Scroll North (Slow)";
+27 = "Scroll North (Medium)";
+28 = "Scroll North (Fast)";
+29 = "Scroll North (Fastest)";
+30 = "Scroll South (Slowest)";
+31 = "Scroll South (Slow)";
+32 = "Scroll South (Medium)";
+33 = "Scroll South (Fast)";
+34 = "Scroll South (Fastest)";
+35 = "Scroll West (Slowest)";
+36 = "Scroll West (Slow)";
+37 = "Scroll West (Medium)";
+38 = "Scroll West (Fast)";
+39 = "Scroll West (Fastest)";
+40 = "Wind East (Weak)";
+41 = "Wind East (Medium)";
+42 = "Wind East (Strong)";
+43 = "Wind North (Weak)";
+44 = "Wind North (Medium)";
+45 = "Wind North (Strong)";
+46 = "Wind South (Weak)";
+47 = "Wind South (Medium)";
+48 = "Wind South (Strong)";
+49 = "Wind West (Weak)";
+50 = "Wind West (Medium)";
+51 = "Wind West (Strong)";
 
diff --git a/Build/Configurations/Includes/Heretic_things.cfg b/Build/Configurations/Includes/Heretic_things.cfg
index 8bf8ccb65..c8295ea24 100644
--- a/Build/Configurations/Includes/Heretic_things.cfg
+++ b/Build/Configurations/Includes/Heretic_things.cfg
@@ -8,31 +8,31 @@ players
 	height = 56;
 	blocking = 2;
 	error = 2;
-	sort = 1;
+	sort = 0;
 	
 	1
 	{
-		title = "Player 1 start";
+		title = "Player 1 Start";
 		sprite = "PLAYA1";
 	}
 	2
 	{
-		title = "Player 2 start";
+		title = "Player 2 Start";
 		sprite = "PLAYA1";
 	}
 	3
 	{
-		title = "Player 3 start";
+		title = "Player 3 Start";
 		sprite = "PLAYA1";
 	}
 	4
 	{
-		title = "Player 4 start";
+		title = "Player 4 Start";
 		sprite = "PLAYA1";
 	}
 	11
 	{
-		title = "Player Deathmatch start";
+		title = "Player Deathmatch Start";
 		sprite = "PLAYQ0";
 	}
 }
@@ -46,47 +46,58 @@ teleports
 	height = 56;
 	blocking = 0;
 	error = 0;
-	sort = 1;
+	sort = 0;
 	
 	14
 	{
 		title = "Teleport Landing";
 		sprite = "TELEA0";
 	}
+	56
+	{
+		title = "D'Sparil Teleport Location";
+		sprite = "SOR2I0";
+	}
 	52
 	{
-		title = "Teleport Glitter (Exit)";
+		title = "Teleport Glitter (Exit/Blue)";
 		sprite = "TGLTF0";
 	}
 	74
 	{
-		title = "Teleport Glitter";
+		title = "Teleport Glitter (Normal/Red)";
 		sprite = "TGLTA0";
 	}
+
 }
 
 sounds
 {
 	color = 5;	// Purple
-	arrow = 0;
+	arrow = 1;
 	title = "Sounds";
-	width = 0;
-	height = 0;
+	width = 20;
+	height = 16;
 	blocking = 0;
-	sort = 1;
+	error = 0;
+	sort = 0;
+	
+	41 = "Looping Sound: Waterfall";
+	42 = "Looping Sound: Wind";
+
+	1203 = "Sequence: Slow Footsteps";
+	1209 = "Sequence: Fast Footsteps";
+
+	1200 = "Sequence: Scream";
+	1206 = "Sequence: Growl";
+	1208 = "Sequence: Laughter";
+	
+	1204 = "Sequence: Heartbeat";
+	1201 = "Sequence: Squish";
 	
-	41 = "Waterfall";
-	42 = "Wind";
-	1200 = "Scream";
-	1201 = "Squish";
-	1202 = "Drops";
-	1203 = "Slow Footsteps";
-	1204 = "Heartbeat";
-	1205 = "Bells";
-	1206 = "Growl";
-	1207 = "Magic";
-	1208 = "Laughter";
-	1209 = "Fast Footsteps";
+	1202 = "Sequence: Water Drops";
+	1205 = "Sequence: Bells";
+	1207 = "Sequence: Magic";
 }
 
 monsters
@@ -95,7 +106,7 @@ monsters
 	arrow = 1;
 	title = "Monsters";
 	width = 16;
-	sort = 1;
+	sort = 0;
 	error = 2;
 	blocking = 2;
 	
@@ -125,7 +136,7 @@ monsters
 		width = 22;
 		height = 62;
 	}
-	45 
+	45
 	{
 		title = "Nitrogolem";
 		sprite = "MUMMY1";
@@ -139,6 +150,41 @@ monsters
 		width = 22;
 		height = 62;
 	}
+	90
+	{
+		title = "Sabreclaw";
+		sprite = "CLNKA1";
+		width = 20;
+		height = 64;
+	}
+	64
+	{
+		title = "Undead Warrior";
+		sprite = "KNIGA1";
+		width = 24;
+		height = 78;
+	}
+	65
+	{
+		title = "Undead Warrior Ghost";
+		sprite = "KNIGA1";
+		width = 24;
+		height = 78;
+	}
+	70
+	{
+		title = "Weredragon";
+		sprite = "BEASA1";
+		width = 32;
+		height = 74;
+	}
+	92
+	{
+		title = "Ophidian";
+		sprite = "SNKEA1";
+		width = 22;
+		height = 70;
+	}
 	15
 	{
 		title = "Disciple Of D'Sparil";
@@ -152,86 +198,75 @@ monsters
 		width = 40;
 		height = 72;
 	}
-	7
-	{
-		title = "D'Sparil";
-		sprite = "SRCRA1";
-		width = 28;
-		height = 100;
-	}
-	56
-	{
-		title = "D'Sparil Teleport Location";
-		sprite = "SOR2I0";
-	}
-	9 
+	9
 	{
 		title = "Maulotaur";
 		sprite = "MNTRA1";
 		width = 28;
 		height = 100;
 	}
-	64 
+	7
 	{
-		title = "Undead Warrior";
-		sprite = "KNIGA1";
-		width = 24;
-		height = 48;
+		title = "D'Sparil";
+		sprite = "SRCRA1";
+		width = 28;
+		height = 100;
 	}
-	65 
+}
+
+hazards
+{
+	color = 4;	// Red
+	arrow = 1;
+	title = "Hazards";
+	width = 20;
+	blocking = 2;
+	sort = 0;
+
+	87
 	{
-		title = "Undead Warrior Ghost";
-		sprite = "KNIGA1";
-		width = 24;
-		height = 78;
+		title = "Volcano";
+		sprite = "VLCOE0";
+		height = 20;
 	}
-	70 
+	2035
 	{
-		title = "Weredragon";
-		sprite = "BEASA1";
-		width = 32;
-		height = 74;
+		title = "Gasbag";
+		sprite = "PPODA0";
+		height = 54;
 	}
-	90 
-	{
-		title = "Sabreclaw";
-		sprite = "CLNKA1";
-		width = 20;
-		height = 64;
-	}                
-	92
+	43
 	{
-		title = "Ophidian";
-		sprite = "SNKEA1";
-		width = 22;
-		height = 70;
+		title = "Gasbag Generator";
+		sprite = "PPODA0";
+		height = 16;
 	}
 }
 
 weapons
 {
 	color = 14;	// Yellow
-	arrow = 0;
+	arrow = 1;
 	title = "Weapons";
 	width = 20;
 	height = 16;
 	blocking = 0;
-	sort = 1;
-	
-	53
+	sort = 0;
+
+	2005
 	{
-		title = "Dragon Claw";
-		sprite = "WBLSA0";
+		title = "Gauntlets Of The Necromancer";
+		sprite = "WGNTA0";
 	}
 	2001
 	{
 		title = "Ethereal Crossbow";
 		sprite = "WBOWA0";
 	}
-	2002
+	53
 	{
-		title = "Firemace";
-		sprite = "WMCEA0";
+		title = "Dragon Claw";
+		sprite = "WBLSA0";
 	}
 	2003
 	{
@@ -243,20 +278,20 @@ weapons
 		title = "Hellstaff";
 		sprite = "WSKLA0";
 	}
-	2005
+	2002
 	{
-		title = "Gauntlets Of The Necromancer";
-		sprite = "WGNTA0";
+		title = "Firemace";
+		sprite = "WMCEA0";
 	}
 }
 
 ammunition
 {
 	color = 6;	// Brown
-	arrow = 0;
+	arrow = 1;
 	title = "Ammunition";
 	width = 20;
-	sort = 1;
+	sort = 0;
 	height = 16;
 	blocking = 0;
 	
@@ -270,16 +305,6 @@ ammunition
 		title = "Crystal Geode";
 		sprite = "AMG2A0";
 	}
-	13
-	{
-		title = "Mace Spheres";
-		sprite = "AMM1A0";
-	}
-	16
-	{
-		title = "Pile Of Mace Spheres";
-		sprite = "AMM2A0";
-	}
 	18
 	{
 		title = "Ethereal Arrows";
@@ -290,15 +315,15 @@ ammunition
 		title = "Quiver Of Ethereal Arrows";
 		sprite = "AMC2A0";
 	}
-	20
+	54
 	{
-		title = "Lesser Runes";
-		sprite = "AMS1A0";
+		title = "Claw Orb";
+		sprite = "AMB1A0";
 	}
-	21
+	55
 	{
-		title = "Greater Runes";
-		sprite = "AMS2A0";
+		title = "Energy Orb";
+		sprite = "AMB2A0";
 	}
 	22
 	{
@@ -310,38 +335,68 @@ ammunition
 		title = "Inferno Orb";
 		sprite = "AMP2A0";
 	}
-	54
+	20
 	{
-		title = "Claw Orb";
-		sprite = "AMB1A0";
+		title = "Lesser Runes";
+		sprite = "AMS1A0";
 	}
-	55
+	21
 	{
-		title = "Energy Orb";
-		sprite = "AMB2A0";
+		title = "Greater Runes";
+		sprite = "AMS2A0";
+	}
+	13
+	{
+		title = "Mace Spheres";
+		sprite = "AMM1A0";
+	}
+	16
+	{
+		title = "Pile Of Mace Spheres";
+		sprite = "AMM2A0";
 	}
 	8
 	{
 		title = "Bag Of Holding";
 		sprite = "BAGHA0";
 	}
+	34
+	{
+		title = "Time Bomb Of The Ancients";
+		sprite = "FBMBA0";
+	}
+	30
+	{
+		title = "Morph Ovum";
+		sprite = "EGGCA0";
+	}
 }
 
 health
 {
 	color = 1;	// Blue
-	arrow = 0;
+	arrow = 1;
 	title = "Health and Armor";
 	width = 20;
 	height = 16;
 	blocking = 0;
-	sort = 1;
+	sort = 0;
 	
 	81
 	{
 		title = "Crystal Vial";
 		sprite = "PTN1A0";
 	}
+	82
+	{
+		title = "Quartz Flask";
+		sprite = "PTN2A0";
+	}
+	32
+	{
+		title = "Mystic Urn";
+		sprite = "SPHLA0";
+	}
 	85
 	{
 		title = "Silver Shield";
@@ -357,80 +412,65 @@ health
 powerups
 {
 	color = 9;	// Light Blue
-	arrow = 0;
+	arrow = 1;
 	title = "Artifacts";
 	width = 20;
 	height = 20;
 	blocking = 0;
-	sort = 1;
-	
-	30
-	{
-		title = "Morph Ovum";
-		sprite = "ARTIEGGC";
-	}
-	32
+	sort = 0;
+
+	35
 	{
-		title = "Mystic Urn";
-		sprite = "ARTISPHL";
+		title = "Map Scroll";
+		sprite = "SPMPA0";
 	}
 	33
 	{
 		title = "Torch";
-		sprite = "ARTITRCH";
-	}
-	34
-	{
-		title = "Time Bomb Of The Ancients";
-		sprite = "ARTIFBMB";
-	}
-	35
-	{
-		title = "Map Scroll";
-		sprite = "SPMPA0";
+		sprite = "TRCHA0";
 	}
 	36
 	{
 		title = "Chaos Device";
-		sprite = "ARTIATLP";
+		sprite = "ATLPA0";
 	}
 	75
 	{
 		title = "Shadowsphere";
-		sprite = "ARTIINVS";
-	}
-	82
-	{
-		title = "Quartz Flask";
-		sprite = "ARTIPTN2";
-	}
-	83
-	{
-		title = "Wings Of Wrath";
-		sprite = "ARTISOAR";
+		sprite = "INVSA0";
 	}
 	84
 	{
 		title = "Ring of Invulnerability";
-		sprite = "ARTIINVU";
+		sprite = "INVUA0";
 	}
 	86
 	{
 		title = "Tome of Power";
-		sprite = "ARTIPWBK";
+		sprite = "PWBKA0";
+	}
+	83
+	{
+		title = "Wings Of Wrath";
+		sprite = "SOARA0";
 	}
 }
 
 keys
 {
 	color = 13;	// Light Magenta
-	arrow = 0;
+	arrow = 1;
 	title = "Keys";
 	width = 20;
 	height = 16;
 	blocking = 0;
-	sort = 1;
-	
+	sort = 0;
+
+	80
+	{
+		title = "Yellow Key";
+		sprite = "CKYYA0";
+	}
 	73
 	{
 		title = "Green Key";
@@ -441,28 +481,18 @@ keys
 		title = "Blue Key";
 		sprite = "BKYYA0";
 	}
-	80
-	{
-		title = "Yellow Key";
-		sprite = "CKYYA0";
-	}
+
 }
 
 obstacles
 {
 	color = 3;	// Cyan
-	arrow = 0;
+	arrow = 1;
 	title = "Obstacles";
 	width = 20;
 	blocking = 2;
-	sort = 1;
+	sort = 0;
 	
-	29
-	{
-		title = "Small Pillar";
-		sprite = "SMPLA0";
-		height = 34;
-	}
 	37
 	{
 		title = "Stalagmite (Small)";
@@ -495,108 +525,58 @@ obstacles
 		sprite = "BARLA0";
 		height = 32;
 	}
+	29
+	{
+		title = "Small Pillar";
+		sprite = "SMPLA0";
+		height = 34;
+	}
 	47
 	{
 		title = "Brown Pillar";
 		sprite = "BRPLA0";
 		height = 128;
 	}
-	87
-	{
-		title = "Volcano";
-		sprite = "VLCOE0";
-		height = 20;
-	}
-	2035
-	{
-		title = "Gasbag";
-		sprite = "PPODA0";
-		height = 54;
-	}
-	43
-	{
-		title = "Gasbag Generator";
-		sprite = "PPODA0";
-		height = 16;
-	}
-}
-
-lights
-{
-	color = 11;	// Light Cyan
-	arrow = 0;
-	title = "Light sources";
-	width = 16;
-	sort = 1;
-	blocking = 2;
-	
-	27
-	{
-		title = "Serpent Torch";
-		sprite = "SRTCA0";
-		height = 54;
-	}
-	28
-	{
-		title = "Chandelier";
-		sprite = "CHDLA0";
-		hangs = 1;
-		height = 62;
-	}
-	50
-	{
-		title = "Wall Torch";
-		sprite = "WTRHA0";
-		height = 64;
-	}
-	76
-	{
-		title = "Fire Brazier";
-		sprite = "KFR1A0";
-		height = 44;
-	}
 }
 
 decoration
 {
-	color = 4;	// Red
-	arrow = 0;
+	color = 11;	// Light Cyan
+	arrow = 1;
 	title = "Decoration";
 	width = 16;
-	sort = 1;
+	sort = 0;
+	blocking = 2;
 
-	94
+	96
 	{
-		title = "Blue Key Marker";
-		sprite = "KGZBA0";
+		title = "Yellow Key Marker";
+		sprite = "KGZYA0";
 		height = 50;
-		blocking = 2;
 	}
 	95
 	{
 		title = "Green Key Marker";
 		sprite = "KGZGA0";
 		height = 50;
-		blocking = 2;
 	}
-	96
+	94
 	{
-		title = "Yellow Key Marker";
-		sprite = "KGZYA0";
+		title = "Blue Key Marker";
+		sprite = "KGZBA0";
 		height = 50;
-		blocking = 2;
 	}
+
 	51
 	{
 		title = "Hanging Corpse";
 		sprite = "HCORA0";
 		hangs = 1;
 		height = 104;
-		blocking = 2;
 	}
 	17
 	{
-		title = "Hanging Skull";
+		title = "Hanging Skull 1";
 		sprite = "SKH1A0";
 		hangs = 1;
 		height = 70;
@@ -624,14 +604,52 @@ decoration
 	}
 	48
 	{
-		title = "Moss";
+		title = "Moss 1";
 		sprite = "MOS1A0";
 		height = 23;
+		hangs = 1;
 	}
 	49
 	{
 		title = "Moss 2";
 		sprite = "MOS2A0";
 		height = 27;
+		hangs = 1;
+	}
+}
+
+lights
+{
+	color = 7;	// Light Grey
+	arrow = 1;
+	title = "Light Sources";
+	width = 16;
+	sort = 0;
+	blocking = 2;
+
+	50
+	{
+		title = "Wall Torch";
+		sprite = "WTRHA0";
+		height = 64;
+	}
+	27
+	{
+		title = "Serpent Torch";
+		sprite = "SRTCA0";
+		height = 54;
+	}
+	76
+	{
+		title = "Fire Brazier";
+		sprite = "KFR1A0";
+		height = 44;
+	}
+	28
+	{
+		title = "Chandelier";
+		sprite = "CHDLA0";
+		hangs = 1;
+		height = 62;
 	}
 }
diff --git a/Build/Configurations/Includes/Hexen_things.cfg b/Build/Configurations/Includes/Hexen_things.cfg
index 9f076637a..a369628a7 100644
--- a/Build/Configurations/Includes/Hexen_things.cfg
+++ b/Build/Configurations/Includes/Hexen_things.cfg
@@ -378,77 +378,77 @@ powerups
 	30
 	{
 		title = "Porkalator";
-		sprite = "ARTIPORK";
+		sprite = "PORKB0";
 	}
 	32
 	{
 		title = "Mystic Urn";
-		sprite = "ARTISPHL";
+		sprite = "SPHLA0";
 	}
 	33
 	{
 		title = "Torch";
-		sprite = "ARTITRCH";
+		sprite = "TRCHA0";
 	}
 	36
 	{
 		title = "Chaos Device";
-		sprite = "ARTIATLP";
+		sprite = "ATLPA0";
 	}
 	82
 	{
 		title = "Quartz Flask";
-		sprite = "ARTIPTN2";
+		sprite = "PTN2A0";
 	}
 	83
 	{
 		title = "Wings Of Wrath";
-		sprite = "ARTISOAR";
+		sprite = "SOARA0";
 	}
 	84
 	{
 		title = "Icon Of The Defender";
-		sprite = "ARTIINVU";
+		sprite = "INVUA0";
 	}
 	86
 	{
 		title = "Dark Servant";
-		sprite = "ARTISUMN";
+		sprite = "SUMNA0";
 	}
 	10110
 	{
 		title = "Disc Of Repulsion";
-		sprite = "ARTIBLST";
+		sprite = "BLSTB0";
 	}
 	10120
 	{
 		title = "Mystic Ambit Incant";
-		sprite = "ARTIHRAD";
+		sprite = "HRADB0";
 	}
 	10040
 	{
 		title = "Banishment Device";
-		sprite = "ARTITELO";
+		sprite = "TELOA0";
 	}
 	8000
 	{
 		title = "Flechette";
-		sprite = "ARTIPSBG";
+		sprite = "PSBGA0";
 	}
 	8002
 	{
 		title = "Boots Of Speed";
-		sprite = "ARTISPED";
+		sprite = "SPEDB0";
 	}
 	8003
 	{
 		title = "Krater Of Might";
-		sprite = "ARTIBMAN";
+		sprite = "BMANA0";
 	}
 	8041
 	{
 		title = "Dragonskin Bracers";
-		sprite = "ARTIBRAC";
+		sprite = "BRACC0";
 	}
 }
 
diff --git a/Build/Configurations/Includes/Skulltag_things.cfg b/Build/Configurations/Includes/Skulltag_things.cfg
deleted file mode 100644
index c0c6ab4c4..000000000
--- a/Build/Configurations/Includes/Skulltag_things.cfg
+++ /dev/null
@@ -1,42 +0,0 @@
-// Skulltag things that aren't found in ZDoom.
-// Simple interface file to access the listing easily.
-// The things themselves are actually listed in Skulltag_common.cfg.
-
-doom
-{
-	include("Skulltag_common.cfg", "skulltag")
-	include("Skulltag_common.cfg", "doomheretichexenstrife")
-	include("Skulltag_common.cfg", "doomheretichexen")
-	include("Skulltag_common.cfg", "doom")
-}
-
-heretic
-{
-	include("Skulltag_common.cfg", "skulltag")
-	include("Skulltag_common.cfg", "doomheretichexenstrife")
-	include("Skulltag_common.cfg", "doomheretichexen")
-	include("Skulltag_common.cfg", "raven")
-	include("Skulltag_common.cfg", "heretic")
-}
-
-hexen
-{
-	include("Skulltag_common.cfg", "skulltag")
-	include("Skulltag_common.cfg", "doomheretichexenstrife")
-	include("Skulltag_common.cfg", "doomheretichexen")
-	include("Skulltag_common.cfg", "raven")
-	include("Skulltag_common.cfg", "hexen")
-}
-
-strife
-{
-	include("Skulltag_common.cfg", "skulltag")
-	include("Skulltag_common.cfg", "doomheretichexenstrife")
-	include("Skulltag_common.cfg", "strife")
-}
-
-default
-{
-	include("Skulltag_common.cfg", "skulltag")
-}
-
diff --git a/Build/Configurations/Includes/ZDoom_common.cfg b/Build/Configurations/Includes/ZDoom_common.cfg
index 8eef67fca..0142da770 100644
--- a/Build/Configurations/Includes/ZDoom_common.cfg
+++ b/Build/Configurations/Includes/ZDoom_common.cfg
@@ -1,7 +1,7 @@
 // ***********************************************************
 // *                                                         *
 // * These values are the same for Doom format, Hexen format *
-// * and UDMF; as well as for ZDoom, GZDoom and Skulltag     *
+// * and UDMF; as well as for ZDoom, GZDoom and Zandronum     *
 // *                                                         *
 // ***********************************************************
 
diff --git a/Build/Configurations/Includes/ZDoom_linedefs.cfg b/Build/Configurations/Includes/ZDoom_linedefs.cfg
index 5199d478d..7a07ad184 100644
--- a/Build/Configurations/Includes/ZDoom_linedefs.cfg
+++ b/Build/Configurations/Includes/ZDoom_linedefs.cfg
@@ -3422,7 +3422,7 @@ zdoom
 		
 		145
 		{
-			title = "Player Set Team (Skulltag only)";
+			title = "Player Set Team (Zandronum only)";
 			arg0
 			{
 				title = "Team";
@@ -3455,7 +3455,7 @@ zdoom
 		
 		152
 		{
-			title = "Team Player Score (Skulltag only)";
+			title = "Team Player Score (Zandronum only)";
 			arg0
 			{
 				title = "Points";
@@ -3463,7 +3463,7 @@ zdoom
 		}
 		153
 		{
-			title = "Team Give Points (Skulltag only)";
+			title = "Team Give Points (Zandronum only)";
 			arg0
 			{
 				title = "Team";
diff --git a/Build/Configurations/Includes/Skulltag_common.cfg b/Build/Configurations/Includes/Zandronum_common.cfg
similarity index 66%
rename from Build/Configurations/Includes/Skulltag_common.cfg
rename to Build/Configurations/Includes/Zandronum_common.cfg
index 5a9aea198..98058ab32 100644
--- a/Build/Configurations/Includes/Skulltag_common.cfg
+++ b/Build/Configurations/Includes/Zandronum_common.cfg
@@ -1,5 +1,5 @@
 // New things available in all games
-skulltag
+zandronum
 {
     //dynamic lights
     include("GZDoom_things.cfg", "gzdoom_lights")
@@ -74,7 +74,7 @@ skulltag
 		}
 	}
 
-	// This one is from Skulltag_data.pk3, not Skulltag.pk3...
+	// This one is from Zandronum_data.pk3, not Zandronum.pk3...
 	bridges
 	{
 		color = 8;	// Grey
@@ -125,7 +125,7 @@ skulltag
 		blocking = 2;
 		error = 2;
 		
-		// MBF stuff that's not in Skulltag yet
+		// MBF stuff that's not in Zandronum yet
 		888 = NULL; // MBF helper dog
 		
 	}
@@ -210,7 +210,7 @@ doomheretichexen
 		}
 	}
 
-	// Skulltag runes
+	// Zandronum runes
 	runes
 	{
 		color = 9;	// Light Blue
@@ -644,61 +644,61 @@ doomheretichexen
 		{
 			title = "Strength Spawner";
 			sprite = "STRRA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5249
 		{
 			title = "Rage Spawner";
 			sprite = "RAGRA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5250
 		{
 			title = "Drain Spawner";
 			sprite = "DRARA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5251
 		{
 			title = "Spread Spawner";
 			sprite = "SPRRA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5252
 		{
 			title = "Resistance Spawner";
 			sprite = "RESRA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5253
 		{
 			title = "Regeneration Spawner";
 			sprite = "REGRA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5254
 		{
 			title = "Prosperity Spawner";
 			sprite = "PRSRA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5255
 		{
 			title = "Reflection Spawner";
 			sprite = "REFRA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5256
 		{
 			title = "Haste Spawner";
 			sprite = "HIJRA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5257
 		{
 			title = "High jump Spawner";
 			sprite = "HIJRA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -762,7 +762,7 @@ doom
 			sprite = "BOS3A2A8";
 		}
 		
-		// MBF stuff that's not in Skulltag yet
+		// MBF stuff that's not in Zandronum yet
 		9037 = NULL; // Beta lost soul
 	}
 	
@@ -849,7 +849,7 @@ doom
 			height = 45;
 		}
 
-		// MBF stuff that's not in Skulltag yet
+		// MBF stuff that's not in Zandronum yet
 		2016 = NULL; // Beta evil sceptre
 		2017 = NULL; // Beta unholy bible
 	}
@@ -889,85 +889,85 @@ doom
 		{
 			title = "Imp Spawner";
 			sprite = "TROOA2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5206
 		{
 			title = "Dark Imp Spawner";
 			sprite = "DIMPA2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5207
 		{
 			title = "Demon Spawner";
 			width = 30;
 			sprite = "SARGA2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5208
 		{
 			title = "Spectre Spawner";
 			width = 30;
 			sprite = "SARGA2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5209
 		{
 			title = "Blood Demon Spawner";
 			width = 30;
 			sprite = "SRG2A2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5210
 		{
 			title = "Former Human Spawner";
 			sprite = "POSSA2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5211
 		{
 			title = "Former Sergeant Spawner";
 			sprite = "SPOSA2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5212
 		{
 			title = "Chaingunner Spawner";
 			sprite = "CPOSA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5213
 		{
 			title = "Super Shotgunner Spawner";
 			sprite = "GPOSA2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5214
 		{
 			title = "Cacodemon Spawner";
 			width = 31;
 			sprite = "HEADA2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5215
 		{
 			title = "Cacolantern Spawner";
 			width = 31;
 			sprite = "HED2A2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5216
 		{
 			title = "Abaddon Spawner";
 			width = 31;
 			sprite = "HED3A2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5217
 		{
 			title = "Revenant Spawner";
 			sprite = "SKELA2D8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5218
 		{
@@ -975,7 +975,7 @@ doom
 			width = 48;
 			sprite = "FATTC2C8";
 			height = 64;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5219
 		{
@@ -983,7 +983,7 @@ doom
 			width = 48;
 			sprite = "HECTC2C8";
 			height = 64;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5220
 		{
@@ -991,7 +991,7 @@ doom
 			width = 64;
 			sprite = "BSPIA2A8";
 			height = 64;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5221
 		{
@@ -999,7 +999,7 @@ doom
 			width = 24;
 			sprite = "BOS2A2C8";
 			height = 64;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5222
 		{
@@ -1007,7 +1007,7 @@ doom
 			width = 24;
 			sprite = "BOSSA2A8";
 			height = 64;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5223
 		{
@@ -1015,21 +1015,21 @@ doom
 			width = 24;
 			sprite = "BOS3A2A8";
 			height = 64;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5224
 		{
 			title = "Lost Soul Spawner";
 			width = 16;
 			sprite = "SKULA8A2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5225
 		{
 			title = "Pain Elemental Spawner";
 			width = 31;
 			sprite = "PAINA2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5226
 		{
@@ -1037,7 +1037,7 @@ doom
 			width = 40;
 			sprite = "CYBRA2";
 			height = 110;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5227
 		{
@@ -1045,13 +1045,13 @@ doom
 			width = 128;
 			sprite = "SPIDA2A8";
 			height = 100;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5228
 		{
 			title = "Arch-Vile Spawner";
 			sprite = "VILEA2D8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 
 		5280
@@ -1059,7 +1059,7 @@ doom
 			title = "Wolfenstein SS Spawner";
 			sprite = "SSWVA2";
 			height = 25;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -1078,68 +1078,68 @@ doom
 		{
 			title = "Chainsaw Spawner";
 			sprite = "CSAWA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5268
 		{
 			title = "Shotgun Spawner";
 			sprite = "SHOTA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5269
 		{
 			title = "Super Shotgun Spawner";
 			sprite = "SGN2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5270
 		{
 			title = "Chaingun Spawner";
 			sprite = "MGUNA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5271
 		{
 			title = "Minigun Spawner";
 			sprite = "MNGNA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5272
 		{
 			title = "Rocket Launcher Spawner";
 			sprite = "LAUNA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5273
 		{
 			title = "Grenade Launcher Spawner";
 			sprite = "GLAUA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5274
 		{
 			title = "Plasma Gun Spawner";
 			sprite = "PLASA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5275
 		{
 			title = "Railgun Spawner";
 			sprite = "RAILA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5276
 		{
 			title = "BFG9000 Spawner";
 			sprite = "BFUGA0";
 			height = 30;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5277
 		{
 			title = "BFG10000 Spawner";
 			sprite = "BFG2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -1158,38 +1158,38 @@ doom
 		{
 			title = "Ammo Clip Spawner";
 			sprite = "CLIPA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5259
 		{
 			title = "Shotgun Shells Spawner";
 			sprite = "SHELA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5260
 		{
 			title = "Rocket Spawner";
 			sprite = "ROCKA0";
 			height = "25";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5261
 		{
 			title = "Cell Charge Spawner";
 			sprite = "CELLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5262
 		{
 			title = "Box of Ammo Spawner";
 			sprite = "AMMOA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5263
 		{
 			title = "Box of Shells Spawner";
 			sprite = "SBOXA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5264
 		{
@@ -1197,21 +1197,21 @@ doom
 			width = 30;
 			sprite = "BROKA0";
 			height = 25;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5265
 		{
 			title = "Cell Charge Pack Spawner";
 			sprite = "CELPA0";
 			height = 25;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5281
 		{
 			title = "Backpack Spawner";
 			sprite = "BPAKA0";
 			height = "25";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -1230,56 +1230,56 @@ doom
 		{
 			title = "Stimpack Spawner";
 			sprite = "STIMA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5230
 		{
 			title = "Medkit Spawner";
 			sprite = "MEDIA0";
 			height = 25;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5231
 		{
 			title = "Health Bonus Spawner";
 			sprite = "BON1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5232
 		{
 			title = "Armor Bonus Spawner";
 			sprite = "BON2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5233
 		{
 			title = "Max. Health Bonus Spawner";
 			sprite = "BON3A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5234
 		{
 			title = "Max. Armor Bonus Spawner";
 			sprite = "BON4A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5235
 		{
 			title = "Green Armor Spawner";
 			sprite = "ARM1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5236
 		{
 			title = "Blue Armor Spawner";
 			sprite = "ARM2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5237
 		{
 			title = "Red Armor Spawner";
 			sprite = "ARM3A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -1298,64 +1298,64 @@ doom
 		{
 			title = "Doomsphere Spawner";
 			sprite = "DOOMA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5239
 		{
 			title = "Guardsphere Spawner";
 			sprite = "GARDA0";
 			height = 30;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5240
 		{
 			title = "Invisibility Spawner";
 			sprite = "INVSA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5241
 		{
 			title = "Partial Invisibility Spawner";
 			sprite = "PINSA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5242
 		{
 			title = "Invulnerability Spawner";
 			sprite = "PINVA0";
 			height = 30;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5243
 		{
 			title = "Megasphere Spawner";
 			sprite = "MEGAA0";
 			height = 40;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5244
 		{
 			title = "Random Powerup Spawner";
 			sprite = "DOOMA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5245
 		{
 			title = "Soulsphere Spawner";
 			sprite = "SOULA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5246
 		{
 			title = "Time Freeze Spawner";
 			sprite = "TIMEA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5247
 		{
 			title = "Turbosphere Spawner";
 			sprite = "TURBA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 
 		5266
@@ -1363,7 +1363,7 @@ doom
 			title = "Berserk Spawner";
 			sprite = "PSTRA0";
 			height = 20;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -1383,14 +1383,14 @@ doom
 			title = "Generic Item/Monster Spawner";
 			sprite = "TFOGB0";
 			height = 45;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5201
 		{
 			title = "Random Weak Monster Spawner";
 			width = 30;
 			sprite = "TFOGB0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5202
 		{
@@ -1398,7 +1398,7 @@ doom
 			width = 64;
 			sprite = "TFOGB0";
 			height = 64;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5203
 		{
@@ -1406,7 +1406,7 @@ doom
 			width = 128;
 			sprite = "TFOGB0";
 			height = 110;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5204
 		{
@@ -1414,20 +1414,20 @@ doom
 			width = 128;
 			sprite = "TFOGB0";
 			height = 110;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 
 		5278
 		{
 			title = "Random Clip Ammo Spawner";
 			sprite = "CELLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5279
 		{
 			title = "Random Box Ammo Spawner";
 			sprite = "CELPA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 }
@@ -1452,13 +1452,13 @@ heretic
 		{
 			title = "Gargoyle Spawner";
 			sprite = "IMPXA1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5401
 		{
 			title = "Fire Gargoyle Spawner";
 			sprite = "IMPXF1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5402
 		{
@@ -1466,7 +1466,7 @@ heretic
 			sprite = "MUMMA1";
 			width = 22;
 			height = 62;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5403
 		{
@@ -1474,7 +1474,7 @@ heretic
 			sprite = "MUMMY1";
 			width = 22;
 			height = 62;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5404
 		{
@@ -1482,7 +1482,7 @@ heretic
 			sprite = "MUMMA1";
 			width = 22;
 			height = 62;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5405
 		{
@@ -1490,7 +1490,7 @@ heretic
 			sprite = "MUMMY1";
 			width = 22;
 			height = 62;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5406 
 		{
@@ -1498,13 +1498,13 @@ heretic
 			sprite = "BEASA1";
 			width = 32;
 			height = 74;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5407
 		{
 			title = "Chicken Spawner";
 			sprite = "CHKNA2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5408
 		{
@@ -1512,7 +1512,7 @@ heretic
 			sprite = "CLNKA1";
 			width = 20;
 			height = 64;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}                
 		5409
 		{
@@ -1520,7 +1520,7 @@ heretic
 			sprite = "HEADA1";
 			width = 40;
 			height = 72;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5410
 		{
@@ -1528,7 +1528,7 @@ heretic
 			sprite = "KNIGA1";
 			width = 24;
 			height = 48;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5411
 		{
@@ -1536,7 +1536,7 @@ heretic
 			sprite = "KNIGA1";
 			width = 24;
 			height = 78;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5412
 		{
@@ -1544,7 +1544,7 @@ heretic
 			sprite = "MNTRA1";
 			width = 28;
 			height = 100;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5413
 		{
@@ -1552,7 +1552,7 @@ heretic
 			sprite = "SNKEA1";
 			width = 22;
 			height = 70;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5414
 		{
@@ -1560,7 +1560,7 @@ heretic
 			sprite = "SRCRA1";
 			width = 28;
 			height = 100;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5415
 		{
@@ -1568,14 +1568,14 @@ heretic
 			sprite = "SOR2P1";
 			width = 28;
 			height = 100;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5416
 		{
 			title = "Disciple Of D'Sparil Spawner";
 			sprite = "WZRDA1";
 			height = 68;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -1594,37 +1594,37 @@ heretic
 		{
 			title = "Dragon Claw Spawner";
 			sprite = "WBLSA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5418
 		{
 			title = "Ethereal Crossbow Spawner";
 			sprite = "WBOWA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5419
 		{
 			title = "Gauntlets Of The Necromancer Spawner";
 			sprite = "WGNTA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5420
 		{
 			title = "Firemace Spawner";
 			sprite = "WMCEA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5421
 		{
 			title = "Phoenix Rod Spawner";
 			sprite = "WPHXA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5422
 		{
 			title = "Hellstaff Spawner";
 			sprite = "WSKLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -1643,79 +1643,79 @@ heretic
 		{
 			title = "Claw Orb Spawner";
 			sprite = "AMB1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5424
 		{
 			title = "Energy Orb Spawner";
 			sprite = "AMB2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5425
 		{
 			title = "Ethereal Arrows Spawner";
 			sprite = "AMC1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5426
 		{
 			title = "Quiver Of Ethereal Arrows Spawner";
 			sprite = "AMC2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5427
 		{
 			title = "Mace Spheres Spawner";
 			sprite = "AMM1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5428
 		{
 			title = "Pile Of Mace Spheres Spawner";
 			sprite = "AMM2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5429
 		{
 			title = "Flame Orb Spawner";
 			sprite = "AMP1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5430
 		{
 			title = "Inferno Orb Spawner";
 			sprite = "AMP2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5431
 		{
 			title = "Lesser Runes Spawner";
 			sprite = "AMS1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5432
 		{
 			title = "Greater Runes Spawner";
 			sprite = "AMS2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5433
 		{
 			title = "Wand Crystal Spawner";
 			sprite = "AMG1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5434
 		{
 			title = "Crystal Geode Spawner";
 			sprite = "AMG2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5435
 		{
 			title = "Bag Of Holding Spawner";
 			sprite = "BAGHA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -1734,13 +1734,13 @@ heretic
 		{
 			title = "Silver Shield Spawner";
 			sprite = "SHLDA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5438
 		{
 			title = "Enchanted Shield Spawner";
 			sprite = "SHD2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -1759,37 +1759,37 @@ heretic
 		{
 			title = "Map Scroll Spawner";
 			sprite = "SPMPA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5440
 		{
 			title = "Morph Ovum Spawner";
 			sprite = "ARTIEGGC";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5443
 		{
 			title = "Shadowsphere Spawner";
 			sprite = "ARTIINVS";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5444
 		{
 			title = "Ring of Invulnerability Spawner";
 			sprite = "ARTIINVU";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5447
 		{
 			title = "Time Bomb Of The Ancients Spawner";
 			sprite = "ARTIFBMB";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5448
 		{
 			title = "Tome of Power Spawner";
 			sprite = "ARTIPWBK";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -1808,31 +1808,31 @@ heretic
 		{
 			title = "Random Artifact Spawner";
 			sprite = "ARTIATLP";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5451
 		{
 			title = "Weak Monster Spawner";
 			sprite = "IMPXA1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5452
 		{
 			title = "Tough Monster Spawner";
 			sprite = "HEADA1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5453
 		{
 			title = "Random Monster Spawner";
 			sprite = "MUMMY1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5454
 		{
 			title = "Ghost Monster Spawner";
 			sprite = "KNIGA1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 }
@@ -1858,141 +1858,141 @@ hexen
 			title = "Ettin Spawner";
 			sprite = "ETTNA1";
 			width = 25;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5502
 		{
 			title = "Phantasmal Ettin Spawner";
 			sprite = "ETTNA1";
 			width = 25;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5503
 		{
 			title = "Centaur Spawner";
 			sprite = "CENTA1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5504
 		{
 			title = "Phantasmal Centaur Spawner";
 			sprite = "CENTA1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5505
 		{
 			title = "Slaughtaur Spawner";
 			sprite = "CENTF1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5506
 		{
 			title = "Affrit Spawner";
 			sprite = "FDMNA1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5507
 		{
 			title = "Dark Bishop Spawner";
 			sprite = "BISHA1";
 			width = 22;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5508
 		{
 			title = "Green Chaos Serpent Spawner";
 			sprite = "DEMNA1";
 			width = 32;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5509
 		{
 			title = "Phantasmal Green Chaos Serpent Spawner";
 			sprite = "DEMNA1";
 			width = 32;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5510
 		{
 			title = "Brown Chaos Serpent Spawner";
 			sprite = "DEM2A1";
 			width = 32;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5511
 		{
 			title = "Phantasmal Brown Chaos Serpent Spawner";
 			sprite = "DEM2A1";
 			width = 32;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5512
 		{
 			title = "Wendigo Spawner";
 			sprite = "ICEYA1";
 			width = 22;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5513
 		{
 			title = "Stalker Spawner";
 			sprite = "SSPTB0";
 			width = 32;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5514
 		{
 			title = "Stalker Boss Spawner";
 			sprite = "SSPTD0";
 			width = 32;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5515
 		{
 			title = "Reiver Spawner";
 			sprite = "WRTHA1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5516
 		{
 			title = "Traductus (cleric boss) Spawner";
 			sprite = "CLERE8";
 			width = 16;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5517
 		{        
 			title = "Zedek (fighter boss) Spawner";
 			sprite = "PLAYE8";
 			width = 16;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5518
 		{
 			title = "Menelkir (mage boss) Spawner";
 			sprite = "MAGEE8";
 			width = 16;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5520
 		{
 			title = "Heresiarch Spawner Spawner";
 			sprite = "SORCA1";
 			width = 40;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5521
 		{
 			title = "Korax Spawner Spawner";
 			sprite = "KORXA1";
 			width = 65;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5522
 		{
 			title = "Pig Spawner Spawner";
 			sprite = "PIGA2A8";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -2011,37 +2011,37 @@ hexen
 		{
 			title = "Firestorm Spawner";
 			sprite = "WCFMA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5531
 		{
 			title = "Serpent Staff Spawner";
 			sprite = "WCSSA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5532
 		{
 			title = "Timon's Axe Spawner";
 			sprite = "WFAXA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5533
 		{
 			title = "Hammer Of Retribution Spawner";
 			sprite = "WFHMA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5534
 		{
 			title = "Frost Shards Spawner";
 			sprite = "WMCSA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5535
 		{
 			title = "Arc Of Death Spawner";
 			sprite = "WMLGG0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5554
 		{
@@ -2105,19 +2105,19 @@ hexen
 		{
 			title = "Blue Mana Spawner";
 			sprite = "MAN1H0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5524
 		{
 			title = "Green Mana Spawner";
 			sprite = "MAN2H0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5525
 		{
 			title = "Combined Mana Spawner";
 			sprite = "MAN3A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -2136,25 +2136,25 @@ hexen
 		{
 			title = "Amulet Of Warding Spawner";
 			sprite = "ARM4A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5550
 		{
 			title = "Falcon Shield Spawner";
 			sprite = "ARM2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5551
 		{
 			title = "Mesh Armor Spawner";
 			sprite = "ARM1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5552
 		{
 			title = "Platinum Helm Spawner";
 			sprite = "ARM3A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -2173,79 +2173,79 @@ hexen
 		{
 			title = "Icon Of The Defender Spawner";
 			sprite = "ARTIINVU";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5536
 		{
 			title = "Disc Of Repulsion Spawner";
 			sprite = "ARTIBLST";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5537
 		{
 			title = "Dragonskin Bracers Spawner";
 			sprite = "ARTIBRAC";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5538
 		{
 			title = "Krater Of Might Spawner";
 			sprite = "ARTIBMAN";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5539
 		{
 			title = "Dark Servant Spawner";
 			sprite = "ARTISUMN";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5540
 		{
 			title = "Mystic Ambit Incant Spawner";
 			sprite = "ARTIHRAD";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5541
 		{
 			title = "Flechette Spawner";
 			sprite = "ARTIPSBG";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5542
 		{
 			title = "Poison Cloud Flechette Spawner";
 			sprite = "ARTIPSBG";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5543
 		{
 			title = "Delayed Blast Flechette Spawner";
 			sprite = "ARTIPSBG";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5544
 		{
 			title = "Bouncing Grenade Flechette Spawner";
 			sprite = "ARTIPSBG";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5545
 		{
 			title = "Porkelator Spawner";
 			sprite = "ARTIPORK";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5546
 		{
 			title = "Boots Of Speed Spawner";
 			sprite = "ARTISPED";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5547
 		{
 			title = "Banishment Device Spawner";
 			sprite = "ARTITELO";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -2266,99 +2266,99 @@ hexen
 			title = "Random Deathking Spawner";
 			sprite = "CLERE8";
 			width = 16;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5526
 		{
 			title = "Random Weapon Piece Spawner";
 			sprite = "WFR2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5527
 		{
 			title = "Random Wraithverge Piece Spawner";
 			sprite = "WCH3A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5528
 		{
 			title = "Random Quietus Piece Spawner";
 			sprite = "WFR3A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5529
 		{
 			title = "Random BloodScourge Piece Spawner";
 			sprite = "WMS3A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5548
 		{
 			title = "Random Artifact Spawner";
 			sprite = "ARTIATLP";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5553
 		{
 			title = "Random Flechette Spawner";
 			sprite = "ARTIPSBG";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5563
 		{
 			title = "Cleric Weapon Spawner";
 			sprite = "WCSSA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5564
 		{
 			title = "Fighter Weapon Spawner";
 			sprite = "WFAXA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5565
 		{
 			title = "Mage Weapon Spawner";
 			sprite = "WMCSA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5566
 		{
 			title = "Blue Mana Weapon Spawner";
 			sprite = "WCSSA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5567
 		{
 			title = "Green Mana Weapon Spawner";
 			sprite = "WFHMA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5568
 		{
 			title = "Weak Monster Spawner";
 			sprite = "FDMNA1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5569
 		{
 			title = "Tough Monster Spawner";
 			sprite = "BISHA1";
 			width = 22;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5570
 		{
 			title = "Random Monster Spawner";
 			sprite = "DEMNA1";
 			width = 32;
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5571
 		{
 			title = "Phantasmal Monster Spawner";
 			sprite = "CENTA1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 }
@@ -2367,7 +2367,7 @@ hexen
 raven
 {
 	// The stalagmite is only defined for Doom in ZDoom, but it 
-	// is also defined for Heretic and Hexen in Skulltag.
+	// is also defined for Heretic and Hexen in Zandronum.
 	obstacles
 	{
 		color = 3;	// Cyan
@@ -2405,7 +2405,7 @@ raven
 		{
 			title = "Friendly Allied Minotaur Spawner";
 			sprite = "MNTRA1";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 	
@@ -2424,7 +2424,7 @@ raven
 		{
 			title = "Crystal Vial Spawner";
 			sprite = "PTN1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -2443,31 +2443,31 @@ raven
 		{
 			title = "Wings Of Wrath Spawner";
 			sprite = "ARTISOAR";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5442
 		{
 			title = "Quartz Flask Spawner";
 			sprite = "ARTIPTN2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5445
 		{
 			title = "Mystic Urn Spawner";
 			sprite = "ARTISPHL";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5446
 		{
 			title = "Chaos Device Spawner";
 			sprite = "ARTIATLP";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5449
 		{
 			title = "Torch Spawner";
 			sprite = "ARTITRCH";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 }
@@ -2492,211 +2492,211 @@ strife
 		{
 			title="Acolyte spawner";
 			sprite= "AGRDA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5601
 		{
 			title="Acolyte spawner (tan)";
 			sprite= "AGRDA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5602
 		{
 			title="Acolyte spawner (red)";
 			sprite= "AGRDA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5603
 		{
 			title="Acolyte spawner (rust)";
 			sprite= "AGRDA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5604
 		{
 			title="Acolyte spawner (gray)";
 			sprite= "AGRDA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5605
 		{
 			title="Acolyte spawner (dark green)";
 			sprite= "AGRDA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5606
 		{
 			title="Acolyte spawner (gold)";
 			sprite= "AGRDA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5607
 		{
 			title="Acolyte spawner (light green)";
 			sprite= "AGRDA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5608
 		{
 			title="Acolyte spawner (blue)";
 			sprite= "AGRDA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5609
 		{
 			title="Acolyte spawner (shadow)";
 			sprite= "AGRDA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5610
 		{
 			title="Random Acolyte spawner";
 			sprite= "AGRDA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5611
 		{
 			title="Sentinel Spawner";
 			sprite= "SEWRA8A2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 23;
 		}
 		5612
 		{
 			title="Crusader Spawner";
 			sprite= "ROB2A2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5613
 		{
 			title="Inquisitor Spawner";
 			sprite= "ROB3A2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 40;
 		}
 		5614
 		{
 			title="Stalker Spawner";
 			sprite= "SPIDJ2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 31;
 		}
 		5615
 		{
 			title="Ceiling Turret Spawner";
 			sprite= "TURTA8A2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 20;
 		}
 		5616
 		{
 			title="Templar Spawner";
 			sprite= "PGRDA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5617
 		{
 			title="Reaver Spawner";
 			sprite= "ROB1A2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 20;
 		}
 		5618
 		{
 			title="Random Small Robot Spawner";
 			sprite= "SEWRA8A2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 31;
 		}
 		5619
 		{
 			title="Random Medium Robot Spawner";
 			sprite= "ROB2A2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 40;
 		}
 		5620
 		{
 			title="Random Robot Spawner";
 			sprite= "ROB3A2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 40;
 		}
 		5621
 		{
 			title="Bishop Spawner";
 			sprite= "MLDRA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 40;
 		}
 		5622
 		{
 			title="Programmer Spawner";
 			sprite= "PRGRD0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 45;
 		}
 		5623
 		{
 			title="Loremaster Spawner";
 			sprite= "PRSTA2";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 15;
 		}
 		5624
 		{
 			title="Entity Spawner";
 			sprite= "MNALA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 130;
 		}
 		5625
 		{
 			title="Sub-Entity Spawner";
 			sprite= "MNALA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		    width = 130;
 		}
 		5626
 		{
 			title="Spectre 1 Spawner";
 			sprite= "ALN1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 			width = 64;
 		}
 		5627
 		{
 			title="Spectre 2 Spawner";
 			sprite= "ALN1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 			width = 64;
 		}
 		5628
 		{
 			title="Spectre 3 Spawner";
 			sprite= "ALN1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 			width = 64;
 		}
 		5629
 		{
 			title="Spectre 4 Spawner";
 			sprite= "ALN1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 			width = 64;
 		}
 		5630
 		{
 			title="Spectre 5 Spawner";
 			sprite= "ALN1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 			width = 64;
 		}
 		5631
 		{
 			title="Random Spectre Spawner";
 			sprite= "ALN1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 			width = 64;
 		}
 	}
@@ -2716,85 +2716,85 @@ strife
 		{
 			title="Crossbow Spawner";
 			sprite= "CBOWA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5633
 		{
 			title="Assault Gun Spawner";
 			sprite= "RIFLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5634
 		{
 			title="Assault Gun (Standing) Spawner";
 			sprite= "RIFLB0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5635
 		{
 			title="Random Assault Gun Spawner";
 			sprite= "RIFLB0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5636
 		{
 			title="Mini-Missile Launcher Spawner";
 			sprite= "MMSLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5637
 		{
 			title="Flame Thrower Spawner";
 			sprite= "FLAMA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5638
 		{
 			title="Mauler Spawner";
 			sprite= "TRPDA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5639
 		{
 			title="Grenade Launcher Spawner";
 			sprite= "GRNDA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5640
 		{
 			title="Sigil 1 Spawner";
 			sprite= "SIGLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5641
 		{
 			title="Sigil 2 Spawner";
 			sprite= "SIGLB0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5642
 		{
 			title="Sigil 3 Spawner";
 			sprite= "SIGLC0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5643
 		{
 			title="Sigil 4 Spawner";
 			sprite= "SIGLD0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5644
 		{
 			title="Sigil 5 Spawner";
 			sprite= "SIGLE0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5645
 		{
 			title="Random Sigil Spawner";
 			sprite= "SIGLE0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -2813,109 +2813,109 @@ strife
 		{
 			title="High Explosive Grenade Rounds Spawner";
 			sprite= "GRN1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5647
 		{
 			title="Phosphorous Grenade Rounds Spawner";
 			sprite= "GRN2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5648
 		{
 			title="Random Grenade Rounds Spawner";
 			sprite= "GRN1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5649
 		{
 			title="Bullet Clip Spawner";
 			sprite= "BLITA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5650
 		{
 			title="Bullet Box Spawner";
 			sprite= "BBOXA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5651
 		{
 			title="Bullet Spawner";
 			sprite= "BBOXA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5652
 		{
 			title="Mini Missiles Spawner";
 			sprite= "MSSLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5653
 		{
 			title="Missile Crate Spawner";
 			sprite= "ROKTA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5654
 		{
 			title="Random Missiles Spawner";
 			sprite= "MSSLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5655
 		{
 			title="Energy Pod Spawner";
 			sprite= "BRY1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5656
 		{
 			title="Energy Pack Spawner";
 			sprite= "CPACA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5657
 		{
 			title="Random Energy Spawner";
 			sprite= "BRY1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5658
 		{
 			title="Poison Bolts Spawner";
 			sprite= "PQRLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5659
 		{
 			title="Electric Bolts Spawner";
 			sprite= "XQRLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5660
 		{
 			title="Random Bolts Spawner";
 			sprite= "XQRLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5661
 		{
 			title="Ammo Satchel Spawner";
 			sprite= "BKPKA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5662
 		{
 			title="Large or Rare Ammo Spawner";
 			sprite= "PQRLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5663
 		{
 			title="Small or Common Ammo Spawner";
 			sprite= "BLITA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -2934,43 +2934,43 @@ strife
 		{
 			title="Metal Armor Spawner";
 			sprite= "ARM1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5665
 		{
 			title="Leather Armor Spawner";
 			sprite= "ARM2A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5667
 		{
 			title="Med Patch Spawner";
 			sprite= "STMPA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5668
 		{
 			title="Medkit Spawner";
 			sprite= "MDKTA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5669
 		{
 			title="Surgery Kit Spawner";
 			sprite= "FULLA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5675
 		{
 			title="Random Health Spawner";
 			sprite= "MDKTA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5676
 		{
 			title="Random Armor Spawner";
 			sprite= "ARM1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 
@@ -2989,37 +2989,37 @@ strife
 		{
 			title="Teleport Beacon Spawner";
 			sprite= "BEACA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5670
 		{
 			title="Map Spawner";
 			sprite= "PMAPA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5671
 		{
 			title="Shadow Armor Spawner";
 			sprite= "SHD1A0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5672
 		{
 			title="Environmental Suit Spawner";
 			sprite= "MASKA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5673
 		{
 			title="Targeter Spawner";
 			sprite= "TARGA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 		5674
 		{
 			title="Scanner Spawner";
 			sprite= "PMUPA0";
-			include("Skulltag_misc.cfg", "invasionspawnerargs");
+			include("Zandronum_misc.cfg", "invasionspawnerargs");
 		}
 	}
 }
diff --git a/Build/Configurations/Includes/Skulltag_linedefs.cfg b/Build/Configurations/Includes/Zandronum_linedefs.cfg
similarity index 63%
rename from Build/Configurations/Includes/Skulltag_linedefs.cfg
rename to Build/Configurations/Includes/Zandronum_linedefs.cfg
index 1ee6d574d..8b9649b16 100644
--- a/Build/Configurations/Includes/Skulltag_linedefs.cfg
+++ b/Build/Configurations/Includes/Zandronum_linedefs.cfg
@@ -13,7 +13,7 @@ hexen
 		
 		152
 		{
-			title = "Team Score (Skulltag)";
+			title = "Team Score (Zandronum)";
 		}
 	}
 
diff --git a/Build/Configurations/Includes/Skulltag_misc.cfg b/Build/Configurations/Includes/Zandronum_misc.cfg
similarity index 92%
rename from Build/Configurations/Includes/Skulltag_misc.cfg
rename to Build/Configurations/Includes/Zandronum_misc.cfg
index 11ebe8551..4203af408 100644
--- a/Build/Configurations/Includes/Skulltag_misc.cfg
+++ b/Build/Configurations/Includes/Zandronum_misc.cfg
@@ -1,4 +1,4 @@
-// Miscellaneous Skulltag settings.
+// Miscellaneous Zandronum settings.
 // Only contains ST-exclusive stuff, imports the rest from ZDoom configuration.
 
 enums_doom
diff --git a/Build/Configurations/Includes/Skulltag_texturesets.cfg b/Build/Configurations/Includes/Zandronum_texturesets.cfg
similarity index 95%
rename from Build/Configurations/Includes/Skulltag_texturesets.cfg
rename to Build/Configurations/Includes/Zandronum_texturesets.cfg
index 7611dd279..18a9487a9 100644
--- a/Build/Configurations/Includes/Skulltag_texturesets.cfg
+++ b/Build/Configurations/Includes/Zandronum_texturesets.cfg
@@ -1,4 +1,4 @@
-// Default texture sets for Skulltag
+// Default texture sets for Zandronum
 // (these are not required, but useful for new users)
 texturesets
 {
diff --git a/Build/Configurations/Includes/Zandronum_things.cfg b/Build/Configurations/Includes/Zandronum_things.cfg
new file mode 100644
index 000000000..a0d16927d
--- /dev/null
+++ b/Build/Configurations/Includes/Zandronum_things.cfg
@@ -0,0 +1,42 @@
+// Zandronum things that aren't found in ZDoom.
+// Simple interface file to access the listing easily.
+// The things themselves are actually listed in Zandronum_common.cfg.
+
+doom
+{
+	include("Zandronum_common.cfg", "zandronum")
+	include("Zandronum_common.cfg", "doomheretichexenstrife")
+	include("Zandronum_common.cfg", "doomheretichexen")
+	include("Zandronum_common.cfg", "doom")
+}
+
+heretic
+{
+	include("Zandronum_common.cfg", "zandronum")
+	include("Zandronum_common.cfg", "doomheretichexenstrife")
+	include("Zandronum_common.cfg", "doomheretichexen")
+	include("Zandronum_common.cfg", "raven")
+	include("Zandronum_common.cfg", "heretic")
+}
+
+hexen
+{
+	include("Zandronum_common.cfg", "zandronum")
+	include("Zandronum_common.cfg", "doomheretichexenstrife")
+	include("Zandronum_common.cfg", "doomheretichexen")
+	include("Zandronum_common.cfg", "raven")
+	include("Zandronum_common.cfg", "hexen")
+}
+
+strife
+{
+	include("Zandronum_common.cfg", "zandronum")
+	include("Zandronum_common.cfg", "doomheretichexenstrife")
+	include("Zandronum_common.cfg", "strife")
+}
+
+default
+{
+	include("Zandronum_common.cfg", "zandronum")
+}
+
diff --git a/Build/Plugins/PropertiesDock.dll b/Build/Plugins/PropertiesDock.dll
deleted file mode 100644
index 2ca75f0c93c60f65043d4f79e3429d571648a964..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 26624
zcmeHw3wTu3wf{Qj%sa`DOkPBS3@;f72}yV(2q6g=<q=6hu~?X7hA=XjGt5kYfN0Xz
zD)m+CTidJkQLo-=ZELmO){52_T5IXOy{)~K(wD8a{nx9t)<?<zx7I#q9uTPae)s!-
z_q*SJaMs!DvDaRE?X~w_`<ydz_4%JAgNPjXj*Jj}6IcE$6L@kk1h#*|Kl|xn?@JTE
zsjYfxV)wRKI+#qEeW`GNus57Yn3-TtG?*Gl1Y?O{+uE*RzZr=(l$7|USgJeQiB@R_
z{r2$APP?@uq)#l;JVaYSaVhH6m*5)2cL-m$E{Kb+>_$oK=PMn+7j*s@wCqx%Qu!};
zwNNEO%b@pcE)NkcU`HJLxr3+}v@c&wRC_G%WO$GWJ;;7Mz|YKLL=Bnf?hNqjHv@nt
zeYNZcCZ8av4XJdh7ns;KgaQv#559SyWpGGCDjGK-$hOiQ__D68_~w0<5iQR{rI=*D
z;={J-<fLUN#OJZ^)aM`1AiCLWAs^v#2I-+PBA;Of08g7Su2H8x)YFJSRy?yDtfIOm
zw^@NgrU-N&xy<u1*hZ)lq^hG@v8TS&5_g$ZpwZ!}<Tk5O0_&N>)$W1Qp|!+YA+m0-
zIhKWfMl^#o47pBzTDqDbPgD*YxB!=wWzDOBxN5qNTr-y2bccBg>zToIN>B%WK%MH)
zI8c2oY3XAghC+CVi{p59z44>)oL0S4N8usdMdyT3cy5aqEZ`aFsl*!U8P%bQIc9mI
z;$ip{Z&E%_^-uAtLz8nX_{&Lc(CL$Up(!X`g|;<cRZ(3H>Fy9Z=PGu&1G<q8qj)E|
ztIsQP>mqs7QSK;n)c?elo{D-Ub>tOaVps_SEqyzU+k#K|T2x1F<x`E&2G1GDh^J50
zL(?EJgT^(w=`eVR?J|iVI7v75A*3973NUGyAqeiB4sa#nRZBrrvZ^}01;&LS;37SR
z0kq}N-ihQ4vkuIe<?3qA1X6WWM?BVP)kW_53lI<@Vb+6FTsO;OHlW}mJwTyZDB;qG
zi`fK_ns}@g<dFb|qUR2mdJwrNxjos)Md(_wdlfBtffp{0T_;6xMZA?!sF`)oW-td}
zyDyJ0mkCAsUhztm43P<QUH7m<T<#F&H2a)~?l^jSKC4^+Kr>Qsts}G$<>T##ed7>Q
zSHm8}Tp4_^h$~_uvI|0saV@Dk%bT0lMVPWYtwpZb<1&{(q`uN)!YH3hVD))NHRWH4
zn<6wH!bEk^;hE$WcM1Le!?j+S@#W4kCp;%aPnk38ysYmk>3mZy)id-E);k}podG`@
zv=pT=Z1=@zz)=xu1ye0GlPI+kgY^T<Og)6q_nGYg=@kGz*APpqIx1Sr8#Rt)9w6v~
zM;#KclSm(81o3VV#vV-k7s7htN<9kgB59%>=*)np<zoLh`6vFK{2u7X3R|XE?8B6C
z=%EhiW$Q6=2=^h(0Ee#c#q@TVXMt61o(;GUOI87StRkb|4i!tQ#Ju`bN#Bd^IjYRn
ztXC<jG1o9cb#MsHK&;@utHHy(bQtMQ9_O_pU2T}aeAOXLOIN-OR)OPWrisjHFdb75
z(i~$>`XidaHetv7IjqiH2be(@#vyjPP*ziuLt)XqkcV!jUWHEUMODQ>yMdNF>#76J
z(0UY0$nBY0eO|FwjJ=aU-oO&PVEydyn1J(W6+AJ{jw#hMw|OpPNLR`gtZpzW>xx}f
z=6PV{_f>h#+z2uvOB9zVS~X7ub{<yH%E~I`8r#W=g|1ukzl}n14%M75uu~TL;$zU3
z!9vKs*d)#IGL`QOrd|baS-!wxVEf|ZDCT^@gCf4z%o2INKn$JG7pz=0ob|;PkSt%w
zn0|C$<cU{VZW_%O<&6%)FiPB$?yL%7!FQ2Sc~tYc>X+vQdzD1BQQcUbdI=NBaV17s
zOTCI>C=4U(N)1K%1yg$1>|Ov4J**S|`8M7?SsPAmls0sF(e8%>qXzT0S#wM#s~Leg
z)v_*v)tJxH_wp1rqik<pkM+Ggg%ufe>=q6~c~aktII<C{Ta{l++Nn8NJ6lI@N63gQ
zHT6|PyvFKuyWKA%Rn0v|aPdq)Hv+t8BVe&sP33W;x<MmVUns+?zsOMCCL`5;LgrE<
zwYiX)r~NdgeVmaRER^wPwa-ABs_$iELKt)`Ixo=0h<1nc$L!-yE1VsfkFzfoj(Xf*
z1eFz!qAu6znWf4*<~HR4BoJ_dAIlsv2DH53OQ@-A$a!J(O7IFN7pPR1v1%Oe8qPad
zVx1+C_0NfQB1z#IL952`-r_9*61>izO6eFnvd6yi9=8@f!1$I?>LxhaXZ80&h+Q44
zmaGZ+&G-Vcns@i`xbVF5VH9}xFu9T|gv<tGVK*Ur_I9*^^xt0lfcjF8p}GSLB<5{D
zz-eS)wXdskdv3)sB7-eh=fejK_h7B}xUY^Kb(DDPkH`jBZ6;8~%A|N#F-^gfT-?FM
z8N3zMizTC#U=R2GHC(INt_t)U8<oRMu?Eg-)UJe6$`*UBrG?6A4yYJS>9ddO&ah@M
z^VM{>_#AfNpPI)XE7KHwM6pb1A55G%)+O;Zv(zOnygHW6Rv~#NB!pa2Rqm*3@Rm7l
zMM5SH%Cq?gi?BGVqzC<g*UB8#=kYe+Wye9ybG$HetYd#xv2M&nqRD9o60vMt3qft2
zoWo_%CsZ_$yFZDkB_BOK0O~$YO7!$jE}|1C?&2cHfkiFKQP~p~)t{sCG}P0(xmu|d
z2f4_@pr?@;`Sz7baW5AU3J%MU7XgR&xKYz8b5nMi8?ei))+&cAQ8s(R7;~Re!kBq6
z%9g%Mjw6fe<H^!W9y#?4!g&(3wN%vvzXw01hoH(F&grX}ups>jrhPI;OC3Tj^HVuO
zm3e6n3HmhLRag&@{xny-EXS%cFIR|oL3Kc;pk)%1Pnl4y8r+`~P5m~nK^Ce>e}+|G
zkrN5(-0GrZTV>%Y^U9o@QYBlia$dE0mEy7?ITtflWnP_Q)z%jHf%&QT^2}mF@Go#-
zu;ExElrF35jOa&QI77M8*Fe4bS=EM&m~sinooTs*$;Y~cX{ky*HwH{7bO}>V;1Xt4
z+b+qevRtCLmP^=>oJ$zXx`dHqT*9Q(v^=wzpj^TS;eu#jR<#`sjKC#xk9CPet8xiX
zI@={oKGr2nOSR^;&4d#;fLUX02jnVR4q!qyCb-$00~pIXfRSSyz@*grJR_KJ0tYZF
z>i|aJfO*F{fER)ZCHAbBWkI=vR~y?Md1PLBMj`VmluthStY>{SH3h-Wq|}bQjxj;z
z`Gi>o!^-q*uNbK^uT|kKDz0G_mY=x`xxNYJn@~~EEE7{-&uf+mK`bf+!Thy_={0sV
zu@feEZKp978V|>spHqe~A^1DiQC`p((^D_zH70s$u^Q#K#Kdd|6>?opFUD{_kKy$o
znKvjpJ3nU*V`I%5bF6CfrW_JP#bfQ_8mXV>*(C})CsY;K#YB5`#d>~Vxq$S|&>gx(
z8W<b8RjwfwK|CH-Ojs1zRMe`IdKc}TXj@2?8OWg2>K`oSRrj;@><$&I^|z^xsU_G#
zczLNZErh397E#e+am2dMOZ}>l&}P6h_Pvj>ocml{h1zoOgKztOL1c%R#yOPv4~(li
zPPztl;UMI3t1voN{)M7-I4Gge?Lb1SnTajB0!olvsFTA+($f>b*vC{oH5+|TZ3a+c
z={rzyAM#K~D2bB3my6~XQMB}g?nK$Vi^1It?qLAC(2zQ_EVgaSwu?-?p7Paw33X1x
zy%yH3q|AFkB9Pc9b-%cFG(9-}vxH#=xkb4bdUCmmA5m`dN0dVhS?%6GihYX^p17$w
zfR1SuM-AohD$8?<Y>Eb|OBw^{$!JncHpOnLJIffrQZSknla&{!Zi+F0$jeDpWLspi
zDShMNk-T%<D0bHuTf;C#x+ij{jV4#E<Q&J2{YTMVm(zVx8~zJ&O@+43tkU;ZOPKs4
z!iu-*I^5P!xwYL>s}=T%gBno32J=a;xr+05pQ|c0fGKgOt2%X?T*s!Klj}ZKtA{Z5
zG8ygpdy33o%wjcv<-RT^JE5Otl>R434>8l4s9y$dKEU8Xfa1E10X_5;lzecI`4H2;
z3Q$rvF<^wghEfq-%(dO-*MYdrhgsqq09XTz&?6|wZKfaMmYZ=DH|lb?nFxv>wfVP#
zuOF>Kt?X^685$;!P7A4dyShK7<4)^^SEw>~koyOPd;=KI5%$7Gs)JaNjD3vF*lFJt
z1_54h=!W@Cv?xsbuBN?i8N@M#t*eY2KiB|2%Q;EbB^+%X)xNqSzFYon)R$$D$Hqxm
z-RV@W<9Fl^SF`=j0oI@<8AcW-t5xK@hiSgh*>I%Gd>nezA#nn^)KU2z45G#T4!Cmv
zs;F+F#r+#|dq6L$^TQCQ-w}F3FnOrL=hQs=IZj5m{{ZS_?RU`mw*AfluA?l5xu;W=
z&zWHo9&<d2I-s3OsR<5BDspNvilL{#sS14;@HDFzMRmn&UFd1h<fb<s?L33>47H!|
zc*)+N?}e+?c-iA<sBuJCj!MTc7t$>~aDO4)qx4`KQFMt1#$bbiv+X+Az#skMXJObr
zZqF)m6MEG?woI?y$BMD&bIrUs5^;y3I+dv3A+j{%<LJ8I;dh2M^J;?omit&E&A3oE
zI{D6-%Mp4GO@d=|?h6VFc5wgQxJrMj)Zo}OG|u-O<Y^?+kONuI&GvGAdAwr{r|4n6
z<wxOjqbK8k?C<bLt8e*T^l!B5V;b2u=k)`*g4pRWKMp}_&Q`%j>6hY3A7sh44E+fP
z@cS?P={r~%=~{f_U4!XNw7+3pG;I!~dZX!VX<alNiKb=-`_sK<Djw^Z8Qc&}rDJAd
zNpnLZ|C<?X9f)TJQqd)e=s+eFj?WBs4)nxhy=O-UyUp#<#FC!*^TTs{=gw<dID1aC
zalyjL$2T^R$i(`icI#cyj1Hst%LZ<<<l9o=U9m)8!}3_BKb)KyEF}L|3~QXdb?(;r
zTbr69a~s36!<{W{_^-8o<I|C^T~<_trulOwY;d(u1poL`ybezg`^lu8xDLR^Wn$zA
zK5Q(1irMmW{@cxSvi{0KwU#rO<7f+K!fu`0_98xM41*tnqwnurv$Di@3MK`Wbe!47
zlN0GEm3lCNXu{hgVO+HIx|Pf6!SC0;4#d&dvbu%ntJf5L7<PhpQAb-#_ky*(TMp>&
zU-RbQRzCNWfBi*;5j%SH?ca~wwshK1tn~JX@yL?5N1k}&k!MCOnALi4_LjGMUmmGT
z+<NrqfBD`u8Dq~F?}wXr{ru?2TeqzknZG18^7Fl&^l0@z|HV7v{?*@}8u?Z@9(??*
z8($fj`r~&-zVdiq(Y2TLMCKkz#(qB4Kc=zsjwkiR>m`31x#GbKjgmv(oiXNz?s<0%
z-uCB_d(N#t`tlQZ`k%gVq<Yha50;KJU;cnUV#I=<KGgV^ul>^_BQ5VAaQ&;<{oxaD
ze(mtcW7Rhtefe?6)4})eY`(ta&f&2QuCmRkXa2DC%n3gkdSmYWBTw$Gzy9NQ{pAVQ
z^Z&4~<><)FATIt%k8UXWNB^h7Z*=c)$KUfkFf#l59W8Heyl<p(*%^D5U-;^s)2^7k
z<A#}sK3MwBm46+H^*w!H?9<bxPpxWbe1GY09)5G=;Ju$3S*!i>sY_SfUGv$cFaLVv
zt>4c}7XR|PU+U+4)|DxqGxYPxw|v2Q`71*=dv6;4<udO;aGu`do-@<=>rXaf%ziqh
zBRaIB^Hz)tb+oT(dvN)dPZa%+4!Yfr|AwHWnoRq7nJ#l{W>+{BrIv_^SD!li!+lsL
z!jZup2cwIz4hLi1=Vi`Yy=qaf+20UmnTFl{IJn@mc<JtBxOaP$-<j%*C6-M3)3=_O
z6pTfdOgeY&>c-W{*66m_nR`;vu03nId-rVbT^O0P^o-!*-HV{0Kbi>#clXB==|#Jj
zOcK3|P-gP1NkI|GY+o`-8Fk+3&S0yViU#L4G}iYv&T9<LYiekkJ!k&>`7?vfjZKZS
z8k=V|HP<)IUo^XUQDbA!`b<J=smRtv>)KXWZ2?;{X<H_fTr_Leu3fttcFk@uQ+>0V
z7A{=KI+~m7AyJ<mOk~2l>l5k8wuZK7x;GU|X0R*=S!1}z9LOx01WQ#H`jc6;iL~V=
zIBeGLaB@~tLnC*|7F@mh<f8rkS?P3UT{LI!sEX6wgURSDdtHb4WNs?Cs5KQ0XUtT$
zX~u0Yc5X8>W_p{M47PU74W1iIM9f`jkzT!eQAZ-32`74^9c@b{p?*Uw7Fjf}ZFbAN
z<qMlyn_JqOn%bKdtY~R%Uooe>c}44j*>hGj+I8E^-huvTB4gK$<mxt`ur3Eee-bUX
zMN_ez(a4IF*&mb+FN&SemIW(LsL!e!Ik7E`C#*XQ#?0bj%^PN$gxKL?HfVul!#<io
ztfvsvXMXDN988EqY8Aidx+ecqjm7PgH;fIpUVg(ZSIti9r}=+y)fX<E+?bmD^cT)}
z<o9Ez?f6XTch6ma`pAzGmy{3v`5NEb>6;F`q22Wz?diWxs+<0aKfkX(^jd$>Lo=T5
z-c0Yd-4y@MgW8SDzxVmy?^(0>*WakTJNe3$r`&i~X6m<oeDS<$y6xBB*3Y|laQXv#
z(?;X-J2c1rFHKyw^NjB;Z{K|H!QnqVesAjTBjt}SJmTF$FMa0ryT7MRNYderfBDM+
z-&+S;wtWBEM9>jWy_sD5nZu7<w(7ND^9LQ@dF{xLH-Av_$q(*6_^~y6+IhNXmqtc#
zMEakf->{+lQE5jf+q}H%tmT^I6YAZ=ot$LNZJggcp9P&12mCfp{*x~z3RR$tL~n9e
zCWW*p%@V&x{=EsS@8tDev}~5z<|nUQ-_ZtMC-7P%!IPKA%^nuU2g!nVZuOmBFK(65
z``T=NILNugPJH<s5yY3<T#qlO6G*LDgmX*Dr(ue`3&^ru56MC{ZR0GQX`GcV)~0Jd
z+NQ13Ty(K^w&tf>wM%jCc|m&+^p`>R(W?Sa(Ybs+po^~3&qn$4Qhr3rFQ6Qt3ygNd
zMHd;{0Ut1KHmb<sc*pS5X%5!e;b=Dk6c)G(&`)<dFNL=0F4orST8GvLT$ciVLEx(b
z-x26?GkqK&T5&IP2WYyd#1o+NJxc-a^n4mA)4zDWiSjIOrPoKpUbb_3adokamI=H-
z;6(y&5cr_Lg93jou(srHkZ%-tMhVwFSKwtOnUWXjHat9V(F-N_m$>K+fz^JNY4A@+
zTT29X2sHg?gK`C+k8bj_XI}C@<ag0;Knc+Q@v|S^1N4!94BI?z4Et>g$}Vaa$^~OO
z#snxT@R~8Z$GGTcV_4g~(o;)aw7N6{8!jwmOKvFTwjL|3F80wYr94J&0rrs_$00w>
zDr1jrD`Wj;8SB3WuuHoUTo?VQjO)G&7@)}k_UDek`hcIl7GQ550$i!Rjw4MKdCK3x
zXqE`97FaLvV}O3zS<dp02>cMRirf|NpvCG6j;MwT=B@#(q9o{kx*FvGy-`sDd#Wng
z@`g$tuLYHC$+?whR0b$s$s>C;ppU)^u8*D<_)|bXIjdM_0FdKYMKjM&4GHvkT7Y=x
z@*UuP3>ZrUgtr}-2PNDGgyc>d!W)M=?l5t^2f@P)5X>RQo&Z)!6|{(k@uKaEz)EN=
z-l1mRzYA7FYXtiZuo~P^>K5#;!W%~$1#@c)U{8?3z#_&D=)cm~3;39E2`CMYhXCgY
zT;zBd^c9XrL0RK^8*s?=A>b7*mbqTw{Vvip`li5Vh4QkLUvoJ?|Ip<D9OEtqoa`<I
zoaJV15qE{gn#Y5Za!*A0ea|^4@AM7;?)B~lEb%=I$#Q|UzI#DAP2eow{U~4HdqL|A
z!e#VndJ`j|(H0B)Gkl}duNCI`K&!-R<en&!9)~^--W)5~Yg&mu2@yBP!WwkkG@(ul
zTP(b|g{{_c<fqFm>_WW}*xeSkN1qGqfQ5ZdUj*!D7Ir{ihPCgnS?o-Vbj2jL<u&cM
z`f6a2EViD!bh(ASqn{7#Ho-nU)@5wryA<+y)>&47ooZZ|$7?i7u@>K*tv7%OxnnX{
zd`;teekz-yFs|pPMhoM5rSvnwJ}K>$(eDJi&U4WCB%)x>RIYcO=T+l!U}sy{>&8{U
zx-G28@p;7br!1^ou!jXxeF)H^(^$)==^V$mAi2cCwmF`}8;8p*Y@g#f#CXKQu5b(>
z<}bIfTOC_4^RE|dnC=(sj%loOn4T2u%OQpR)bSD|OQ$RBx4>#BV_|PO{uOsAS7HBS
zTmI%K#XZA!Ev(qN1+&eKJHA9WQn~Y|z!nQOOyh(%btdzMX_{am3tK2yqlK*!Y=MPs
z5$rk(OAGdS3;T@oFj^?DS2_<ke?t>#yoLP=*kqb!VJ_EiXe!OIu-UFZ&@|#VnuwmJ
zjjnfTI)1XCw1iz-Xa+UTW9&xHcK29q2CWqAS=!@f-nkZbnP3qMyG}5Y{NY);L$EU~
z>>>BJP%mj=-*rEUcT#S)uphYxXeJ%7u;03$qk8(Ch5gk%RcoL-c)_D*iN|jiJ#S&n
zo*CLK`q0AqJae=rnzB$yraW7ynO0fYMS^84>^{%wS~EQ?n2M~~^rm1pdX9KjA~o?W
zVl6jPsrRQeo4#jZZQk?2;~T>mcTdC{*XGdgEUe#~1ooD~Faw^Wxm0>OORAYOkIF5K
zXU;sTvM`=G3#eAGXYqTDA#EXbTG&0_{o3jDGYk6)cuT1iCsFpqcf2=fEwocG)rU43
zQkdrj@9kO}-E3h$_D;fY0v@ukBZ56|VSg0KBNq0a_b$}?tA!c9slXgdxIJ#+0j-^S
zve-AY4%(B&zOSvJn+1E8w)uXdb<&p==Gp0cRXc|cSiH-9zXW!~;$7>T#CLDckREy1
zvUL=+urCU4nT37Tce}QZE>IX9fMx4wi-o<2_PQu-VMlzw)w=0ZR=wBJ`Ua@i=v*v-
z8np;qP{d`1I-McqHi2Dv@Z(Yr1M1jSSf0xoZ9M^9>DeaS3kAmW<P#|C(xO59(-n=5
zr^ruQ=px~&wl0@iR||!8>U7gd%eUmo+#!<r_9)AhRrd?`%Od}<l)o+TX@M^aR6SDi
z$NS+BWORB(Bvtu!lnwExqk#S&qsnNO=SwgmY7`8rMcIK}n*EbcFBdv<ofh{)Y295c
zk|%+zS;tQ3z^>-Sw@GthzAY5kBCtc?IRZBd3=512+yVG54N7@f;C_ME0=}hv5iqIU
z2e^g4Ds(T+@f-SM+MAkJe^OiT_v;6>UjJR%A#JC>0`xy?Q?-NIC;Yc-uV@>w%08xj
zpq&P~LvPf7fqY^fV1vF4aIutE>#I<{P(KfFj~)U1oSp<cpkE~L3f)Uz^2fCpet-2j
zP=2f50}9)-gZ|C`b^UeiSN_KU{{Z-&W{ml^UM%v(wBG+cy@GoEf6!~GWemgjydUUg
zI<EoK_2igwMw5Qan2E+h{edyl0G|Myt{)mxXS|M{HXA$W$72>4E&6L?+KfZmJ7Xr%
zA<b1f30~%2AJU3S&jP)?G_G~%F5?2@9KbEKQDBW&SVNbV-e;Uc_m+MI@Tt;AjX}^K
z2Yk8ohsF*_{@j=-k_V}#>`%t9{(<%mtU9gic5S~tzwBMwueX*ZwL^4v*;MU4?c-%}
ztqGQo7}x6i%AAfV($guhXRKqU^mHb%=MT{r%VvQ4f!65Quk#AHU;hTQU8_G?w#G3>
zYR!>ai>20LsWnIB4{85iHtb+{IqLqhtdxdz_W!W{rgpVsSpPHNe!Uz!^nU&Ku=6qL
z?;#o!xZcsE&kFp5)V<sBq`o+C7W%R>!0mF*FkRmpxZiP5-yh(*Hw7lqLAoOl*AD5t
zHy;!~Tr2R9z*hwRhrnM5d|lvv{kx*!aNsFe@<HIB;}@{)WykBV<ljJ<QvNH4X1I(u
zP@Y}>Cg8I2Qt0m}PikI^zNP$K&|{!nODt0cdJ<l`xcsQ&T2l1Sl)p=d=u3b#;5wa$
z=*Q(n&R6J7P$n8B6#?f&gJqh8i*_q&oUha3ilDQ_IKSdu>HxjjIHd2anC3jBf4-u@
zxnF+}^!@s`D&P&tGo}+~6w~Qo#Ukf>=v|BRpnjy{Ea!Cny^2ofM#EXT!C6E8%2&0p
z!Mof+ePZP%XUyQ4Ri-gzhf!48<D4#@X%pC__f}r!95nV+UgcaRquec{JZyZv@_y$g
zp+tnT-{6SaZ`@nS`{$e5bIyoFLbt&Ci1+_%(ThJiZviZ&F9If!f$$y<`N|Gg8)9ay
ztBH6YZzA5mzp8&&xyi-x)9ae9PpP^PT;9o>#I{4)+^UE1gxqChTn)%*ZvY%8a4$|m
z4ah`p15DG~fJHP6c)D;W3#=1L7kwS{?eqrV*+TE7S6!|2NqP@EcB}rH5fgY98T#GE
zT~s9S1FhHaYX9y$-R0F@biVEMYX9PFaGj#p>5KK1dY8Ug->&c0Kds-Qe_1DEsj=30
z#(2qi#rVLO=ZHCOaXjSsrem%%=^Svr?0ntX=Gx%8$faWycVcaK<2>U5^a2*iD(uIO
zTx>)DFEYLec&g(|fNyI51o&rx-|*np6s__00A8hE1h~M*4-i{?PXVqFxK=3V`kn>l
zecvAeJw-Wgg_MIuT&u3=j~dLzKMgy90h>+{%f`Vf4Vk<fl<}}kM;?!Nym3C}6ZF}5
zH9^ODxC}CD0d<^z%K^{Fc|yk-yc%#5P6aw$fKk%u<A6H#LX(cCbrS%$A{Xc1&`t*2
zhTL1n{jF*Al>VyzA9|@{l4GMI?6|~vv-6A2Z#ci>bPVxsmjCg<QF<Ohqo4>B(#{@*
zrtTr|2<TMlQYyZ5oZNMUcNDA-Gf%G~I)bOQT;7Lrmlk)TxOlZ08Hh*Epw5(;jHWWN
zXd3sqw>L!MacUh%XUzT_qt%SZqrLoafLif;@ebTSZ!^vQ<pZ%e9_=>d1X%-htPUsJ
z<59U|p4e&<9{1wM)g4^4@8hRGf}T9J$JiK6k=1l(e4vkV&87JPCgDf#i9TsgO8fw!
z)lBSUD^i7B8$1TJZ;#`*1NPHuvYwXaT)?*5?pPj9M=gn*V1Lp~;AsK;8;w(k@+BLQ
zr+sbDh480c#d=iHu)<9Br)hmUnu5KVlo_|XIl8ydcRWcT@j+oHtpOR#Yq2E~f%p5(
zol)wGW;S==Sv{rg!pdl-H6Bi<*M$4=oGgR8!94>RIL+=RK_E*`GuCQay_70Kusz(q
z6P?d%8O*lm)-WFN3x{i4xNRn}^-OP%#PCdqj?s{3N7e|D=7!LJ6~B3%&8q;Vx#;9d
zw)EOv2}DCfFSjSoXh|mHgRR@biN0tW&k7?2b70W&-7&<`CIh0;ig=Qc+ij0>F81xx
z>Tn|52P;z6I}^Zd;gz_<9*)QMgw>=|??*^X+rrj66Ed2|D(u6++I${lyIlC>pVVs*
zqJhJMYgr*;SLhD+bizbR0yGPpO}zuDloj5Da9I^gL?h9y)V0mrWtGLwE(ADy%Vbr|
z%}62UW+{v0tr2SzXU6)r#qrIoGSeBt6Fq3)^(PvUN@>xQPv+V&ymKOqow2B>V*)Xv
zD$zhP63#@?BTQf!W{x(Vq_kc*7~-vP?lww?cSh|%2y;}3f&z-_Q31*7djU=Ls*n^*
z4}{~~YynxOU#vHuZb#~daD2cLj>ybtN#RjV(u(?(saT|G^JuaKBF%qaWcKJHxh8uM
zBr9Ukcw}=cUe3Wf&#P1z!=EBN3Ra6=n%ZLNq={9rBN5BQIE1l|SWJTR?UgN4P~;$M
zBG9<doSo9#xq@yq6=2PFjoAg{*|aic4kVYGyQ!~7%~&xzjpa0x!5)_F2-em99+L%o
zdqhMQqHg>p5T<1mO;$L|-PR__`^YH!pw&0{0NWsB@T`_EJg-(qDJ&akn${+At^tDe
zVoh{cdm^IBYm?DL7HN&clgs(t12A*5!kTe;Bx|zeQB>&VSCc5tCs^?wjf~nEo*mdn
zDLYHnCb-z1=;H<91l`{n>!Z#vUIbe!uM%))1ywy-k0<h~v@WVjqp4}J{G_hXpbA_O
zUOav~Zde&b2*!F5c~Uc+8r;$>PM03%@4QH0(v;!!;5aIe$*8?z$+YZHXND7zcr=yU
zgSd{x9#tm~Jo9Cvl|qIwF@QRlklQ9XcK9#Qw1yKX?!<!DZNi>xDNE+}2yBLw)v_Iq
ztWCrRrP~s)Ol`$_*Jq{_bwey2>xrw~UzQZH$|^~fUR%6}-;WV>J$5a#=Rzf#Wl5E6
z3$~mR>d!7E+#l>t(Trk<RrYcq9$A^svfaUnCX4b~5)Th%JJgZRHlL>y`^P{$(uEk1
z<wmuHHvn@@+RLM~m|czp%WpEjxxA(dYU8bv=x*A{YcfS8UEv&1RE6!t39EC25}Zrz
z#MuB5hxHNfCsH&K#t1}YM{9}4Wh;sy5lhnmW<~_B;NXanj-myu9kPt_1T@KvNBVi6
zN<??b)wCv;T2Uw?5!!175Y%AaO5Pw=^{U)~)N7eS>L0YbL~L_9w|v{v3rmBY@VBJX
z(f%H6g0W0Inu~p#oaevenTTJk2m>jxW;AwxGMpGZo&obB1HHMFlkC=7&E#N;GlS#n
zbf@r|X@5Ai{dks@&Ey!?BC<}sG}_RCsfX<p5wug121JMz&$%iq2V#*NX4`{RmfvJO
zp0Oepj~>Ug)2~>#FM-S^){C7Y+B4AC$6=Avp=cO-&IZ!iA+e0*@P+bJzO^8Ti`PZt
z;oVY7=hRuf<a%KB#Nx3`p3ALBur@Z>BboYY40*vyw<?BAjHjd&I@%L>Au7dY<E<H0
z=420(IS*s;R+TK0dc%aw<mUDr$bVo0t;Sho4KH~eDrFFD9G`YbL7}LSxii{Mu`+7n
zeLAdf8zk3kZWH-VGmV`KD+n@gI1whIt?Y@E)+b_CHo(fQVwZ`-VTAjJtpgHj>B#Ha
zmL|g6$U^Q6$5Pe?1JY=F2K;~>DIDi!?Hr#Q<D<c7{peULXJ#x}D2Y`#2!=BfmRrNU
zYRz69!^U8yB0RS(N_cl31sNn>TV$saZ<ssz?KqOR<f8VwZ`5tBPvWfKk=Pl=Vu=;0
zI~D6kriLYL?N&9s(L`Tnn;mm(Y#UySv}4Zd7+l4iT!^WNji%O^33YnSXWEsOQ&2Zo
z56esxXNlgZ1Vx&xP~{*{n=MBaW4zH>6npB4xmg5q)|r}<6f?Cvg?Il7r`0ixt_=GT
zYcQvrc_&8pzeP<;8|&Lvuiy<=4&;2AviCYJcbiGsN9_ZOWdth`w{i$zTsc>^57P)G
zSZi0193_oY6hg0w@@5Zfw}q6}w6xT2Z6bL(IM<Vf3lTHBnQg^ZF2bD3N+;}EYs?Jp
z-l&^1(MbF5-l*&)B6DnOoUY}EFXNoJSy9EPG}4h)N14&{NbBYXM|dp3cQ~Z2Tx>%l
z-paSOUg2epwhdCA<ROsLhCLQt18F47kyYVAysJtriQa8ysw*=X$C}B`Qv`eDa{iY#
zEFEcD0j&b0CQc6F<TfnKSOb&?h2Lq$AjL{onQ$#HE{sTCl0Qz$&@P;Lgr6-So)oJy
z9Ki(c6K;MPvj$Oxg;A_nj+c&MFXk^RKQkIn+97A}+p-W@UY7%!m75auXLGN7A<+ag
zx-tk@bqtbwSMoZvFjeU|W$LJhIV|TS<s`PM4I5^gxhtV49KQCjFqg+UoZ<6>9eC`E
z71B`4K*sFq4acKx_`ybkw@=(}v1z>J6-o&O*&a3=Yot4)sjbj&VVDQ%j0YcPR~EU0
zW1Yfy-t%T^-E85hX^|unL_d^BW~BB#xs9OigjhOw4U?OC)RIbtM_u$A+W6ihgZ!3+
zD04iUDzgFk6l}ffmL*#tO=l(40wkH2oIv1WJ{jci%(mKW*X=D_Mn6a8(ZTFV^On_}
z8te?Ga7J%K#%%VnbK@BtuF`2Ng*f@D_(0}?J1_02l$o+v)ZU-O#y#2=R+vWQ-MY>G
z3@DAih-v*a=s%}H4MARQJTN{Fck`*d6S;AkV#u#!C?%NY+{kchD-B5AZQ^$}K}u2z
z{3Md=l*l5&Sjub#H3Dh}q>|Kt=RwG|QC^PPF=Xz{!#zUk9Hl<X_Tq`m=-dXp^T4f`
z(1g1qQYN?c6QGj(-~Z5<4blou2S`|gc-RihDuXyV*w(7rpq6ywc|#2S>|?pIAo^nC
z(x1v4KTWIAHrr3tU4XriHDO5}y=Il@ii*_M0*-A_%(6VIYy5J&ADD)|4XBG#3os-(
zc1tC;&D;|zKfVuC)Q;A8ykLJ(3+#!B2CB^9+Cw}Z32=F|;^?8Gc7oT3Hk<IX)54J)
zq?Mv0!n|Xon@=JQ-Z9d%Pa+N8_&%{N7gH->c~l|<FHKKY;~IpwauPv2C$eQQcGVeZ
z$kkedKJ`NbmG_XUo#Rn;Z-Hz#@>h;ss>yjQh$mQK^qoDmi)iA>B9!9@KNc6+!Z{E@
zZH{4<NJ3vi`b3qZX``t<1+!wa#7!JEIC6PR`8RD;cdS$|yu>lX^R!oDhwE@WQvGPM
zxK9RaIL2%_HMhwf#QS4G(k80wdRV(1U+#Yb^jz#~#x&CAPXmo(G$=A0abbLS0>(j)
zpq#70GfDYaqvl;7`{kXRzrOP7Pab|?rE@_!c^=)fX+zDNBm12}O$*F)0Qyl3%=EbM
zw^TfVnMM%5D-Kd%B7+(RQyGkhP;Fqk8>02&15He-XJoF0%oYB4)YhCKTb(~J-EajK
zN>d9_T7qwjgD9|sK?`0M)&eb_hn8->r0hq&MNDgVc$f>&!T_&N2k>f!AD6MBWwpR_
z1g>`l4b9`xoiJS2@sLpCE{w1B^QAVhQC%)T-7t4kM<I%D4Bviyci=mK?;yVXhbsfM
zDBwFD-Pg2QFO&p^hVh>ZXkh44b=l8m)#6>N%D~W7y2tNvSp__$)y4;guJw9s7JT7h
zRUX~tf$H@}h&-O4t_Oy02uv>uI%>Jl0;hU|hE+xt9p75rrR%O*chI5vYjxcdbmHnq
zA4B}7ugH%t8#|M2EDg+*A<*<%9+c^5v9^|7Qd{c?0cW$zhF<dGsj@s6A}6GVUWJ$k
zVkrIw&%brQzsT(f%mfDW{>VB!4mXC86+w=4*kQOeyi2bKCf4fAo5<xFRj%RkR8^kJ
z<?*UK-c3d=ddPL*G$T-73uC2vJ&V<&r?78)V0@9=35fU$%+;AQ7aTV(0R$G64ZWkg
zirLy>&0855cIy7Xu(vb_PY;)9m1V<adO4MA{v67DxTBoB!nIND6t|Hj=!N1=g8CY1
zgu}QPfBLZ)AND|TvGU?O4z~^p@l0R``b*p{e_*EHavO{K{mV3(ZQqfxQ-lWoVOP2V
zw+&1j;RiW2iXcyspB7use%;p3hw*lqM*I?)uGiw%DOzB9*>ICsHP_Ah1H*IOZX>WH
zuteP0f+(-`V=lS%+CaOQIlRQfkJR}i^;$4n0v#R<0j3K2*x?Im==y3cuwHkga1IJy
z__Azxy;e?cxdztr6dR8S0m)PCMwE-(_`nnos#!8wMGI|33$5x4vsD(350rWW3#}>(
z;Z=Vv0+b_)wZk%u)A(9=*00P9Gtcjr;fT83j@t3H9^LD924b~3imHqK(vuyG1cuv-
zd4d#|4G)$L?{g~JfJCk(EmOE`Sf+5<FqS^dj<HJaDs{O*U2fq^+3*+C<sNmpkE6X7
zFDUTz_F&ENV-VWK_I+aI18mIDFerLppSM)gJ>yTsTN;K>^P}o`zt;_a%W464%T=s@
z+$RAH_YXhmQU2uu4+AJU<})@E1;u=ZBY`8n25uRCGBEs%UCS2W3Fi?Lr{fQ%&HV^D
zuH^6>nAxlx@4w)W1lTu!2tlPj7%Ck@rD4v&LFF*S={7u=ue^@%Z>S9npC50klnwvL
zUpD-Tge|X8aO3oHjr@h#HKJ5B<L`L}vNuG7Pu&;fpNb;4nXb{4`QdPH7(ZgH=O3rn
z&zT*bQ@^ljZn%EV+};RoDfP^m+k{uK*<Ad3lmFp88z7<=1-veT&#C;=ly1H1TpWsV
zYbSfRpnDtNT~WQW|33jdeUSCh^B3d0g=k$@Th|${%$agYO<mg)JN3RRf6_U3Jos&k
zHnp~GY7KU63#XEsR-T{t9?9me4QrY=b;%sx#BVj=xU#9R>znW#V$<#g^ESyHr(>86
z$w&`vy9A9`pNqL1w6Vgg{de|>HshDKZSgqYo=|UnM5FQ&49ky9rQou{ivLeB{tXY|
z*E}>-*enkW5eDrzI?J7j?|I-HQEM8LP@V(0fx2ijU^~tyT{!owMIN~s*EPsZ*NWWZ
zjz1kmVt}$5U;DaLxcnw>;oD10Zo^lDR?gfwkLAp*19{h0WM}-DBDK1~<s36D8KHe<
z69Ib2u?)6qu!*yOb;dbfQ?1A}qTlM@9OTLH0s1=zb#3`Jw2ns_q9+M`R{jXN(ehgR
z9LIJvBJOi~)G3JbRz8*RrwOOM#_X5dEr&e!l(XLyuAE(FbNiFF*MJ-}j(_|)6Tf=V
zXcctyi3UCgC6SS`C;D*4L#`}mqe5Dc?n7_~@q36yScZ9z_Sl}aRz3D2+hhBMF*$R5
zWV@D$UzOJ)$o@HN&-L!_`*V)?v#|cLUOm>Q>Q`?q7(qS*^kanM@I(;N#U9R$#<BI-
bkN+z^Ni56g$Y<>d_rIc3|GyI-)dT+*<3ePV

diff --git a/Source/Core/Builder.csproj b/Source/Core/Builder.csproj
index 46c02f088..c61fd4e90 100644
--- a/Source/Core/Builder.csproj
+++ b/Source/Core/Builder.csproj
@@ -703,6 +703,7 @@
       <DependentUpon>ConsoleDocker.cs</DependentUpon>
     </Compile>
     <Compile Include="GZBuilder\Data\BoundingBox.cs" />
+    <Compile Include="GZBuilder\Data\EngineInfo.cs" />
     <Compile Include="GZBuilder\Data\GameType.cs" />
     <Compile Include="GZBuilder\Data\GZDoomLight.cs" />
     <Compile Include="GZBuilder\Data\LinksCollector.cs" />
@@ -807,6 +808,7 @@
     <None Include="Resources\Builder16.png" />
     <None Include="Resources\CLogo.png" />
     <None Include="Resources\Angle.png" />
+    <None Include="Resources\Add.png" />
     <Content Include="Resources\DB2.ico" />
     <None Include="Resources\GZDB2.ico" />
     <None Include="Resources\fog.png" />
@@ -819,6 +821,7 @@
     <Content Include="Resources\Light.png" />
     <Content Include="Resources\Light_animate.png" />
     <None Include="Resources\MLogo.png" />
+    <None Include="Resources\Marine.png" />
     <Content Include="Resources\Model.png" />
     <Content Include="Resources\Model_selected.png" />
     <None Include="Resources\SearchClear.png" />
diff --git a/Source/Core/Builder.sln b/Source/Core/Builder.sln
index 078aa2583..69e66fa1a 100644
--- a/Source/Core/Builder.sln
+++ b/Source/Core/Builder.sln
@@ -13,8 +13,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UDMFControls", "..\Plugins\
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TagExplorer", "..\Plugins\TagExplorer\TagExplorer.csproj", "{BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PropertiesDock", "..\Plugins\PropertiesDock\PropertiesDock.csproj", "{507E4F00-9929-436F-8E29-70C3C43DC7A3}"
-EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -85,16 +83,6 @@ Global
 		{BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Release|Mixed Platforms.Build.0 = Release|x86
 		{BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Release|x86.ActiveCfg = Release|x86
 		{BE7917F3-E6FE-4D5B-8FA9-B8E7668AC731}.Release|x86.Build.0 = Release|x86
-		{507E4F00-9929-436F-8E29-70C3C43DC7A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{507E4F00-9929-436F-8E29-70C3C43DC7A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{507E4F00-9929-436F-8E29-70C3C43DC7A3}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
-		{507E4F00-9929-436F-8E29-70C3C43DC7A3}.Debug|Mixed Platforms.Build.0 = Debug|x86
-		{507E4F00-9929-436F-8E29-70C3C43DC7A3}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{507E4F00-9929-436F-8E29-70C3C43DC7A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{507E4F00-9929-436F-8E29-70C3C43DC7A3}.Release|Any CPU.Build.0 = Release|Any CPU
-		{507E4F00-9929-436F-8E29-70C3C43DC7A3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
-		{507E4F00-9929-436F-8E29-70C3C43DC7A3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
-		{507E4F00-9929-436F-8E29-70C3C43DC7A3}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/Source/Core/Config/ConfigurationInfo.cs b/Source/Core/Config/ConfigurationInfo.cs
index 8b8d89adb..fac1cfecc 100644
--- a/Source/Core/Config/ConfigurationInfo.cs
+++ b/Source/Core/Config/ConfigurationInfo.cs
@@ -26,6 +26,7 @@ using CodeImp.DoomBuilder.Data;
 using System.IO;
 using CodeImp.DoomBuilder.Editing;
 using System.Collections.Specialized;
+using CodeImp.DoomBuilder.GZBuilder.Data;
 
 #endregion
 
@@ -52,11 +53,14 @@ namespace CodeImp.DoomBuilder.Config
 		private string nodebuildersave;
 		private string nodebuildertest;
 		private DataLocationList resources;
-		private string testprogram;
-		private string testparameters;
-		private bool testshortpaths;
-		private bool customparameters;
-		private int testskill;
+		//private string testprogram; //mxd
+		//private string testparameters;
+		//private bool testshortpaths;
+		//private bool customparameters;
+		//private int testskill;
+        private List<EngineInfo> testEngines;
+        private int currentEngineIndex;
+
 		private List<ThingsFilter> thingsfilters;
 		private List<DefinedTextureSet> texturesets;
 		private Dictionary<string, bool> editmodes;
@@ -72,11 +76,23 @@ namespace CodeImp.DoomBuilder.Config
 		public string NodebuilderSave { get { return nodebuildersave; } internal set { nodebuildersave = value; } }
 		public string NodebuilderTest { get { return nodebuildertest; } internal set { nodebuildertest = value; } }
 		internal DataLocationList Resources { get { return resources; } }
-		public string TestProgram { get { return testprogram; } internal set { testprogram = value; } }
-		public string TestParameters { get { return testparameters; } internal set { testparameters = value; } }
-		public bool TestShortPaths { get { return testshortpaths; } internal set { testshortpaths = value; } }
-		public int TestSkill { get { return testskill; } internal set { testskill = value; } }
-		public bool CustomParameters { get { return customparameters; } internal set { customparameters = value; } }
+        
+        //mxd
+        public string TestProgramName { get { return testEngines[currentEngineIndex].TestProgramName; } internal set { testEngines[currentEngineIndex].TestProgramName = value; } }
+        public string TestProgram { get { return testEngines[currentEngineIndex].TestProgram; } internal set { testEngines[currentEngineIndex].TestProgram = value; } }
+        public string TestParameters { get { return testEngines[currentEngineIndex].TestParameters; } internal set { testEngines[currentEngineIndex].TestParameters = value; } }
+        public bool TestShortPaths { get { return testEngines[currentEngineIndex].TestShortPaths; } internal set { testEngines[currentEngineIndex].TestShortPaths = value; } }
+        public int TestSkill { get { return testEngines[currentEngineIndex].TestSkill; } internal set { testEngines[currentEngineIndex].TestSkill = value; } }
+        public bool CustomParameters { get { return testEngines[currentEngineIndex].CustomParameters; } internal set { testEngines[currentEngineIndex].CustomParameters = value; } }
+        //public string TestProgram { get { return testprogram; } internal set { testprogram = value; } }
+        //public string TestParameters { get { return testparameters; } internal set { testparameters = value; } }
+		//public bool TestShortPaths { get { return testshortpaths; } internal set { testshortpaths = value; } }
+		//public int TestSkill { get { return testskill; } internal set { testskill = value; } }
+		//public bool CustomParameters { get { return customparameters; } internal set { customparameters = value; } }
+        public List<EngineInfo> TestEngines { get { return testEngines; } internal set { testEngines = value; } }
+        //public EngineInfo CurrentTestEngine { get { return testEngines[currentEngineIndex]; } }
+        public int CurrentEngineIndex { get { return currentEngineIndex; } internal set { currentEngineIndex = value; } }
+
 		internal ICollection<ThingsFilter> ThingsFilters { get { return thingsfilters; } }
 		internal List<DefinedTextureSet> TextureSets { get { return texturesets; } }
 		internal Dictionary<string, bool> EditModes { get { return editmodes; } }
@@ -100,14 +116,48 @@ namespace CodeImp.DoomBuilder.Config
 			// Load settings from program configuration
 			this.nodebuildersave = General.Settings.ReadSetting("configurations." + settingskey + ".nodebuildersave", MISSING_NODEBUILDER);
 			this.nodebuildertest = General.Settings.ReadSetting("configurations." + settingskey + ".nodebuildertest", MISSING_NODEBUILDER);
-			this.testprogram = General.Settings.ReadSetting("configurations." + settingskey + ".testprogram", "");
-			this.testparameters = General.Settings.ReadSetting("configurations." + settingskey + ".testparameters", "");
-			this.testshortpaths = General.Settings.ReadSetting("configurations." + settingskey + ".testshortpaths", false);
-			this.customparameters = General.Settings.ReadSetting("configurations." + settingskey + ".customparameters", false);
-			this.testskill = General.Settings.ReadSetting("configurations." + settingskey + ".testskill", 3);
+            //mxd
+            //this.testprogram = General.Settings.ReadSetting("configurations." + settingskey + ".testprogram", ""); 
+			//this.testparameters = General.Settings.ReadSetting("configurations." + settingskey + ".testparameters", "");
+			//this.testshortpaths = General.Settings.ReadSetting("configurations." + settingskey + ".testshortpaths", false);
+			//this.customparameters = General.Settings.ReadSetting("configurations." + settingskey + ".customparameters", false);
+			//this.testskill = General.Settings.ReadSetting("configurations." + settingskey + ".testskill", 3);
 			this.resources = new DataLocationList(General.Settings.Config, "configurations." + settingskey + ".resources");
 			this.startmode = General.Settings.ReadSetting("configurations." + settingskey + ".startmode", "VerticesMode");
 			
+            //mxd. read test engines
+            testEngines = new List<EngineInfo>();
+            IDictionary list = General.Settings.ReadSetting("configurations." + settingskey + ".engines", new ListDictionary());
+            currentEngineIndex = General.Settings.ReadSetting("configurations." + settingskey + ".currentengineindex", 0);
+            
+            //no engine list found? use old engine properties
+            if (list.Count == 0) {
+                EngineInfo info = new EngineInfo();
+                info.TestProgram = General.Settings.ReadSetting("configurations." + settingskey + ".testprogram", "");
+                info.TestProgramName = General.Settings.ReadSetting("configurations." + settingskey + ".testprogramname", EngineInfo.DEFAULT_ENGINE_NAME);
+                info.CheckProgramName(false);
+                info.TestParameters = General.Settings.ReadSetting("configurations." + settingskey + ".testparameters", "");
+                info.TestShortPaths = General.Settings.ReadSetting("configurations." + settingskey + ".testshortpaths", false);
+                info.CustomParameters = General.Settings.ReadSetting("configurations." + settingskey + ".customparameters", false);
+                info.TestSkill = General.Settings.ReadSetting("configurations." + settingskey + ".testskill", 3);
+                testEngines.Add(info);
+                currentEngineIndex = 0;
+            } else {
+                //read engines settings from config
+                foreach (DictionaryEntry de in list) {
+                    string path = "configurations." + settingskey + ".engines." + de.Key;
+                    EngineInfo info = new EngineInfo();
+                    info.TestProgram = General.Settings.ReadSetting(path + ".testprogram", "");
+                    info.TestProgramName = General.Settings.ReadSetting(path + ".testprogramname", EngineInfo.DEFAULT_ENGINE_NAME);
+                    info.CheckProgramName(false);
+                    info.TestParameters = General.Settings.ReadSetting(path + ".testparameters", "");
+                    info.TestShortPaths = General.Settings.ReadSetting(path + ".testshortpaths", false);
+                    info.CustomParameters = General.Settings.ReadSetting(path + ".customparameters", false);
+                    info.TestSkill = General.Settings.ReadSetting(path + ".testskill", 3);
+                    testEngines.Add(info);
+                }
+            }
+
 			// Make list of things filters
 			thingsfilters = new List<ThingsFilter>();
 			IDictionary cfgfilters = General.Settings.ReadSetting("configurations." + settingskey + ".thingsfilters", new Hashtable());
@@ -166,11 +216,23 @@ namespace CodeImp.DoomBuilder.Config
 			// Write to configuration
 			General.Settings.WriteSetting("configurations." + settingskey + ".nodebuildersave", nodebuildersave);
 			General.Settings.WriteSetting("configurations." + settingskey + ".nodebuildertest", nodebuildertest);
-			General.Settings.WriteSetting("configurations." + settingskey + ".testprogram", testprogram);
-			General.Settings.WriteSetting("configurations." + settingskey + ".testparameters", testparameters);
-			General.Settings.WriteSetting("configurations." + settingskey + ".testshortpaths", testshortpaths);
-			General.Settings.WriteSetting("configurations." + settingskey + ".customparameters", customparameters);
-			General.Settings.WriteSetting("configurations." + settingskey + ".testskill", testskill);
+			//General.Settings.WriteSetting("configurations." + settingskey + ".testprogram", testprogram);
+			//General.Settings.WriteSetting("configurations." + settingskey + ".testparameters", testparameters);
+			//General.Settings.WriteSetting("configurations." + settingskey + ".testshortpaths", testshortpaths);
+			//General.Settings.WriteSetting("configurations." + settingskey + ".customparameters", customparameters);
+			//General.Settings.WriteSetting("configurations." + settingskey + ".testskill", testskill);
+            //mxd
+            General.Settings.WriteSetting("configurations." + settingskey + ".currentengineindex", currentEngineIndex);
+            for (int i = 0; i < testEngines.Count; i++ ) {
+                string path = "configurations." + settingskey + ".engines.engine" + i.ToString(CultureInfo.InvariantCulture);
+                General.Settings.WriteSetting(path + ".testprogramname", testEngines[i].TestProgramName);
+                General.Settings.WriteSetting(path + ".testprogram", testEngines[i].TestProgram);
+                General.Settings.WriteSetting(path + ".testparameters", testEngines[i].TestParameters);
+                General.Settings.WriteSetting(path + ".testshortpaths", testEngines[i].TestShortPaths);
+                General.Settings.WriteSetting(path + ".customparameters", testEngines[i].CustomParameters);
+                General.Settings.WriteSetting(path + ".testskill", testEngines[i].TestSkill);
+            }
+
 			General.Settings.WriteSetting("configurations." + settingskey + ".startmode", startmode);
 			resources.WriteToConfig(General.Settings.Config, "configurations." + settingskey + ".resources");
 			
@@ -221,11 +283,15 @@ namespace CodeImp.DoomBuilder.Config
 			ci.nodebuildertest = this.nodebuildertest;
 			ci.resources = new DataLocationList();
 			ci.resources.AddRange(this.resources);
-			ci.testprogram = this.testprogram;
+			//mxd
+            /*ci.testprogram = this.testprogram;
 			ci.testparameters = this.testparameters;
 			ci.testshortpaths = this.testshortpaths;
 			ci.customparameters = this.customparameters;
-			ci.testskill = this.testskill;
+			ci.testskill = this.testskill;*/
+            ci.TestEngines = new List<EngineInfo>();
+            foreach (EngineInfo info in testEngines) ci.TestEngines.Add(new EngineInfo(info));
+
 			ci.startmode = this.startmode;
 			ci.texturesets = new List<DefinedTextureSet>();
 			foreach(DefinedTextureSet s in this.texturesets) ci.texturesets.Add(s.Copy());
@@ -245,11 +311,15 @@ namespace CodeImp.DoomBuilder.Config
 			this.nodebuildertest = ci.nodebuildertest;
 			this.resources = new DataLocationList();
 			this.resources.AddRange(ci.resources);
-			this.testprogram = ci.testprogram;
+			//mxd
+            /*this.testprogram = ci.testprogram;
 			this.testparameters = ci.testparameters;
 			this.testshortpaths = ci.testshortpaths;
 			this.customparameters = ci.customparameters;
-			this.testskill = ci.testskill;
+			this.testskill = ci.testskill;*/
+            this.testEngines = new List<EngineInfo>();
+            foreach (EngineInfo info in ci.TestEngines) testEngines.Add(new EngineInfo(info));
+
 			this.startmode = ci.startmode;
 			this.texturesets = new List<DefinedTextureSet>();
 			foreach(DefinedTextureSet s in ci.texturesets) this.texturesets.Add(s.Copy());
diff --git a/Source/Core/Controls/FieldsEditorRow.cs b/Source/Core/Controls/FieldsEditorRow.cs
index cb7400e53..db029a9a7 100644
--- a/Source/Core/Controls/FieldsEditorRow.cs
+++ b/Source/Core/Controls/FieldsEditorRow.cs
@@ -247,7 +247,7 @@ namespace CodeImp.DoomBuilder.Controls
 			if(typeindex != fieldtype.Index)
 			{
 				// Change field type!
-				TypeHandlerAttribute attrib = General.Types.GetAttribute(typeindex);
+				//TypeHandlerAttribute attrib = General.Types.GetAttribute(typeindex); //mxd
 				fieldtype = General.Types.GetFieldHandler(typeindex, this.Cells[2].Value);
 				this.Cells[1].Value = fieldtype.GetDisplayType();
 			}
diff --git a/Source/Core/Controls/LinedefInfoPanel.cs b/Source/Core/Controls/LinedefInfoPanel.cs
index 3ef4b0c72..5e1dc33ec 100644
--- a/Source/Core/Controls/LinedefInfoPanel.cs
+++ b/Source/Core/Controls/LinedefInfoPanel.cs
@@ -170,7 +170,7 @@ namespace CodeImp.DoomBuilder.Controls
 				if(General.Map.UDMF) {
 					//light
 					frontoffsetlabel.Text = "Front light:";
-					setUDMFLight(l.Front.Fields, frontoffsetlabel, frontoffset);
+					setUDMFLight(l.Front, frontoffsetlabel, frontoffset);
 
 					bool hasTopFields = false;
 					bool hasMiddleFields = false;
@@ -268,7 +268,7 @@ namespace CodeImp.DoomBuilder.Controls
 				if(General.Map.UDMF) {
 					//light
 					backoffsetlabel.Text = "Back light:";
-					setUDMFLight(l.Back.Fields, backoffsetlabel, backoffset);
+					setUDMFLight(l.Back, backoffsetlabel, backoffset);
 
 					bool hasTopFields = false;
 					bool hasMiddleFields = false;
@@ -382,12 +382,14 @@ namespace CodeImp.DoomBuilder.Controls
 		}
 
 		//mxd
-		private void setUDMFLight(UniFields fields, Label label, Label value) {
-			if(fields.ContainsKey("light")) {
-				value.Text = fields["light"].Value.ToString();
-
-				if(fields.ContainsKey("lightabsolute") && Boolean.Parse(fields["lightabsolute"].Value.ToString()))
-					value.Text += " (abs)";
+		private void setUDMFLight(Sidedef sd, Label label, Label value) {
+			if(sd.Fields.ContainsKey("light")) {
+                int light = (int)sd.Fields["light"].Value;
+                
+                if (sd.Fields.ContainsKey("lightabsolute") && Boolean.Parse(sd.Fields["lightabsolute"].Value.ToString()))
+					value.Text = light + " (abs.)";
+                else
+                    value.Text = light + " (" + Math.Min(255, Math.Max(0, (light + sd.Sector.Brightness))) + ")";
 
 				value.Enabled = true;
 				label.Enabled = true;
diff --git a/Source/Core/Controls/SectorInfoPanel.cs b/Source/Core/Controls/SectorInfoPanel.cs
index 85fa6c755..4fcca1deb 100644
--- a/Source/Core/Controls/SectorInfoPanel.cs
+++ b/Source/Core/Controls/SectorInfoPanel.cs
@@ -81,10 +81,13 @@ namespace CodeImp.DoomBuilder.Controls
 					ceilingLight.Enabled = true;
 					ceilingLightLabel.Enabled = true;
 
-					ceilingLight.Text = s.Fields["lightceiling"].Value.ToString();
+                    int cl = (int)s.Fields["lightceiling"].Value;
 
 					if(s.Fields.ContainsKey("lightceilingabsolute") && Boolean.Parse(s.Fields["lightceilingabsolute"].Value.ToString()))
-						ceilingLight.Text += " (abs.)";
+                        ceilingLight.Text = cl + " (abs.)";
+                    else
+                        ceilingLight.Text = cl + " (" + Math.Min(255, Math.Max(0, (cl + s.Brightness))) + ")";
+
 				} else {
 					ceilingLight.Text = "--";
 					ceilingLight.Enabled = false;
@@ -96,10 +99,13 @@ namespace CodeImp.DoomBuilder.Controls
 					floorLight.Enabled = true;
 					floorLightLabel.Enabled = true;
 
-					floorLight.Text = s.Fields["lightfloor"].Value.ToString();
+                    int fl = (int)s.Fields["lightfloor"].Value;
 
 					if(s.Fields.ContainsKey("lightfloorabsolute") && Boolean.Parse(s.Fields["lightfloorabsolute"].Value.ToString()))
-						floorLight.Text += " (abs.)";
+						floorLight.Text = fl + " (abs.)";
+                    else
+                        floorLight.Text = fl + " (" + Math.Min(255, Math.Max(0, (fl + s.Brightness))) + ")";
+
 				} else {
 					floorLight.Text = "--";
 					floorLight.Enabled = false;
diff --git a/Source/Core/GZBuilder/Data/EngineInfo.cs b/Source/Core/GZBuilder/Data/EngineInfo.cs
new file mode 100644
index 000000000..868ab8dd2
--- /dev/null
+++ b/Source/Core/GZBuilder/Data/EngineInfo.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+
+namespace CodeImp.DoomBuilder.GZBuilder.Data {
+    public class EngineInfo {
+        public const string DEFAULT_ENGINE_NAME = "Engine with no name";
+        
+        public string TestProgramName;
+        public string TestProgram;
+        public string TestParameters;
+        public bool CustomParameters;
+        public int TestSkill;
+        public bool TestShortPaths;
+
+        public EngineInfo() {
+            TestProgramName = DEFAULT_ENGINE_NAME;
+        }
+
+        public EngineInfo(EngineInfo other) {
+            TestProgramName = other.TestProgramName;
+            TestProgram = other.TestProgram;
+            TestParameters = other.TestParameters;
+            CustomParameters = other.CustomParameters;
+            TestSkill = other.TestSkill;
+            TestShortPaths = other.TestShortPaths;
+        }
+
+        public void CheckProgramName(bool forced) {
+            if ((forced || TestProgramName == DEFAULT_ENGINE_NAME) && !String.IsNullOrEmpty(TestProgram)) {
+                //get engine name from folder name
+                string n = Path.GetDirectoryName(TestProgram);
+                int pos = n.LastIndexOf(Path.DirectorySeparatorChar);
+                TestProgramName = n.Substring(pos + 1, n.Length - pos - 1);
+            }
+        }
+    }
+}
diff --git a/Source/Core/GZBuilder/GZGeneral.cs b/Source/Core/GZBuilder/GZGeneral.cs
index af9e9b1cb..238f1a3f6 100644
--- a/Source/Core/GZBuilder/GZGeneral.cs
+++ b/Source/Core/GZBuilder/GZGeneral.cs
@@ -33,7 +33,7 @@ namespace CodeImp.DoomBuilder.GZBuilder
 
         //version
         public const float Version = 1.13f;
-        public const char Revision = ' ';
+        public const char Revision = 'a';
 
         //debug console
 #if DEBUG
diff --git a/Source/Core/General/Launcher.cs b/Source/Core/General/Launcher.cs
index 9dfb947a7..6a4e7c766 100644
--- a/Source/Core/General/Launcher.cs
+++ b/Source/Core/General/Launcher.cs
@@ -240,7 +240,6 @@ namespace CodeImp.DoomBuilder
             TestAtSkill(General.Map.ConfigSettings.TestSkill);
 
             General.Editing.Mode.OnMapTestEnd(); //mxd
-            //General.Plugins.OnMapTestEnd(); //mxd
 		}
 
         //mxd
@@ -254,10 +253,10 @@ namespace CodeImp.DoomBuilder
 
             General.MainWindow.StopProcessing();
             TestAtSkill(General.Map.ConfigSettings.TestSkill);
-            General.MainWindow.EnableProcessing();
-
+            
             General.Editing.Mode.OnMapTestEnd();
-            General.MainWindow.RedrawDisplay();
+            General.MainWindow.EnableProcessing();
+            General.MainWindow.FocusDisplay();
         }
 		
 		// This saves the map to a temporary file and launches a test wit hthe given skill
diff --git a/Source/Core/Plugins/Plug.cs b/Source/Core/Plugins/Plug.cs
index 1d0b51490..594a9957e 100644
--- a/Source/Core/Plugins/Plug.cs
+++ b/Source/Core/Plugins/Plug.cs
@@ -15,7 +15,7 @@ using CodeImp.DoomBuilder.Data;
 using CodeImp.DoomBuilder.Map;
 using CodeImp.DoomBuilder.Windows;
 using CodeImp.DoomBuilder.Config;
-using CodeImp.DoomBuilder.Types;
+//using CodeImp.DoomBuilder.Types;
 
 #endregion
 
@@ -53,10 +53,10 @@ namespace CodeImp.DoomBuilder.Plugins
 
 
         //mxd
-        public static TypeHandlerAttribute[] GetCustomUseAttributes() {
+        /*public static TypeHandlerAttribute[] GetCustomUseAttributes() {
             //TypeHandlerAttribute[] attrs = General.Types.GetCustomUseAttributes();
             return General.Types.GetCustomUseAttributes();
-        }
+        }*/
 
 		#endregion
 		
diff --git a/Source/Core/Properties/Resources.Designer.cs b/Source/Core/Properties/Resources.Designer.cs
index 334b10a16..1c64d4c72 100644
--- a/Source/Core/Properties/Resources.Designer.cs
+++ b/Source/Core/Properties/Resources.Designer.cs
@@ -1,7 +1,7 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     Этот код создан программой.
-//     Исполняемая версия:2.0.50727.5420
+//     Исполняемая версия:2.0.50727.4927
 //
 //     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
 //     повторной генерации кода.
@@ -60,6 +60,13 @@ namespace CodeImp.DoomBuilder.Properties {
             }
         }
         
+        internal static System.Drawing.Bitmap Add {
+            get {
+                object obj = ResourceManager.GetObject("Add", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         internal static System.Drawing.Bitmap Angle {
             get {
                 object obj = ResourceManager.GetObject("Angle", resourceCulture);
@@ -242,6 +249,13 @@ namespace CodeImp.DoomBuilder.Properties {
             }
         }
         
+        internal static System.Drawing.Bitmap Marine {
+            get {
+                object obj = ResourceManager.GetObject("Marine", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         internal static System.Drawing.Bitmap mergegeometry {
             get {
                 object obj = ResourceManager.GetObject("mergegeometry", resourceCulture);
diff --git a/Source/Core/Properties/Resources.resx b/Source/Core/Properties/Resources.resx
index 4128af5ab..8b6b0cb74 100644
--- a/Source/Core/Properties/Resources.resx
+++ b/Source/Core/Properties/Resources.resx
@@ -148,6 +148,9 @@
   <data name="ScriptError" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\ScriptError.xpm;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
+  <data name="ViewTextureCeiling" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\ViewTextureCeiling.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="Filter" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Filter.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -160,11 +163,8 @@
   <data name="Status10" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Status10.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Script2" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Script2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="Model" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Model.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="Splash3_small" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Splash3_small.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="ScriptPalette" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\ScriptPalette.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -190,8 +190,8 @@
   <data name="ViewBrightness" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\ViewBrightness.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Zoom" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Zoom.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="Model" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Model.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="mergegeometry" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\mergegeometry.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -211,8 +211,8 @@
   <data name="ScriptConstant" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\ScriptConstant.xpm;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="ViewTextureCeiling" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\ViewTextureCeiling.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="Warning" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Warning.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="fx" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\fx.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -226,9 +226,6 @@
   <data name="List" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\List.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Warning" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Warning.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="Question" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Question.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -259,6 +256,9 @@
   <data name="fog" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\fog.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="InfoLine" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\InfoLine.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="MissingTexture" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\MissingTexture.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -271,6 +271,9 @@
   <data name="Zoom_arrowup" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Zoom_arrowup.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="Zoom" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Zoom.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="Model_selected" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Model_selected.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -283,6 +286,9 @@
   <data name="Properties" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Properties.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="Script2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Script2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="Cut" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Cut.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -301,9 +307,6 @@
   <data name="Light_animate" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Light_animate.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Splash3_small" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Splash3_small.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="Undo" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Undo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -352,7 +355,10 @@
   <data name="Text" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Text.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="InfoLine" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\InfoLine.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="Add" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Marine" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Marine.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
 </root>
\ No newline at end of file
diff --git a/Source/Plugins/PropertiesDock/Resources/Add.png b/Source/Core/Resources/Add.png
similarity index 100%
rename from Source/Plugins/PropertiesDock/Resources/Add.png
rename to Source/Core/Resources/Add.png
diff --git a/Source/Core/Resources/Marine.png b/Source/Core/Resources/Marine.png
new file mode 100644
index 0000000000000000000000000000000000000000..7fb05ff9656730deb74b79bd00498e9921e8f4d0
GIT binary patch
literal 501
zcmV<R0Sf+!P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzmq|oHRCwB)l1obhQ547j*Q_xeQ8!L*
z!~`|)MGPuEz(vp}a242N7k!0VwvQIATJ+pWegj>&sTMvKt=vc;F)HR1+N2HL979UY
z(tdEbk8{qSbI-Y;l%n4}J8lXdR9S!We>WBSSl`^B+6;^1?E~nu1MUF^BF<0Gh*qmb
zv)P2#>-|%JC}k)tZ7ovcoDuf$EYj&Tu1{_e@(1uv0N0EY7yFk)iQ{>mmP#cQi$&5S
zFy)z~uCNO=_7PUA6^%Qoo#;R;eg%|)$Z`bLY89ze3bHJdZUyS@<}kDh17pBm>;^(R
zqt$AGE;uni!9$!Dp%SuK@%fNUekJ$xpjNA4EgFT}?FPdz;5e@H6ha7WHXACH3U-g;
zWM~f*SeB(4S^jib^qtjb_aTu;kddZPuh)s$Y(_8`?3@FE01Ab|uTxO>U%W9@JUqWb
zGQHqQCyxIQbUGaxjRyRFKSp6dAeSo>Niu=C*T6xY?FL%M6Hw@W5@iyiD2^|nkk98K
r2m&&h9Ql{Ps0<b0ILk=-9|8;jV*jrIBLZ7X00000NkvXXu0mjfy6DkD

literal 0
HcmV?d00001

diff --git a/Source/Core/VisualModes/VisualMode.cs b/Source/Core/VisualModes/VisualMode.cs
index 4660d4c03..12ac92316 100644
--- a/Source/Core/VisualModes/VisualMode.cs
+++ b/Source/Core/VisualModes/VisualMode.cs
@@ -297,13 +297,19 @@ namespace CodeImp.DoomBuilder.VisualModes
                     return false;
                 }
 
+                //check camera Z
+				float pz = camPos.z - s.FloorHeight;
+				int ceilRel = s.CeilHeight - s.FloorHeight - 41; //relative ceiling height
+				if(pz > ceilRel) pz = ceilRel; //above ceiling?
+				else if(pz < 0) pz = 0; //below floor?
+
                 //store initial position
                 playerStart = start;
                 playerStartPosition = start.Position;
                 playerStartAngle = start.Angle;
 
                 //everything should be valid, let's move player start here
-                start.Move(new Vector3D(camPos.x, camPos.y, s.FloorHeight));
+                start.Move(new Vector3D(camPos.x, camPos.y, pz));
                 start.Rotate(General.Map.VisualCamera.AngleXY - (float)Math.PI);
             }
             return true;
diff --git a/Source/Core/Windows/ConfigForm.Designer.cs b/Source/Core/Windows/ConfigForm.Designer.cs
index b8bc3dd0e..db59914ad 100644
--- a/Source/Core/Windows/ConfigForm.Designer.cs
+++ b/Source/Core/Windows/ConfigForm.Designer.cs
@@ -28,671 +28,718 @@ namespace CodeImp.DoomBuilder.Windows
 		/// </summary>
 		private void InitializeComponent()
 		{
-            this.components = new System.ComponentModel.Container();
-            System.Windows.Forms.Label label5;
-            System.Windows.Forms.Label label6;
-            System.Windows.Forms.Label label3;
-            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfigForm));
-            System.Windows.Forms.Label label2;
-            System.Windows.Forms.Label label7;
-            System.Windows.Forms.Label label9;
-            System.Windows.Forms.Label label1;
-            System.Windows.Forms.Label label8;
-            System.Windows.Forms.Label label4;
-            System.Windows.Forms.Label label10;
-            this.labelparameters = new System.Windows.Forms.Label();
-            this.cancel = new System.Windows.Forms.Button();
-            this.apply = new System.Windows.Forms.Button();
-            this.tabs = new System.Windows.Forms.TabControl();
-            this.tabresources = new System.Windows.Forms.TabPage();
-            this.configdata = new CodeImp.DoomBuilder.Controls.ResourceListEditor();
-            this.tabnodebuilder = new System.Windows.Forms.TabPage();
-            this.nodebuildertest = new System.Windows.Forms.ComboBox();
-            this.nodebuildersave = new System.Windows.Forms.ComboBox();
-            this.tabtesting = new System.Windows.Forms.TabPage();
-            this.shortpaths = new System.Windows.Forms.CheckBox();
-            this.customparameters = new System.Windows.Forms.CheckBox();
-            this.skill = new CodeImp.DoomBuilder.Controls.ActionSelectorControl();
-            this.browsetestprogram = new System.Windows.Forms.Button();
-            this.noresultlabel = new System.Windows.Forms.Label();
-            this.testresult = new System.Windows.Forms.TextBox();
-            this.labelresult = new System.Windows.Forms.Label();
-            this.testparameters = new System.Windows.Forms.TextBox();
-            this.testapplication = new System.Windows.Forms.TextBox();
-            this.tabtextures = new System.Windows.Forms.TabPage();
-            this.listtextures = new System.Windows.Forms.ListView();
-            this.smallimages = new System.Windows.Forms.ImageList(this.components);
-            this.restoretexturesets = new System.Windows.Forms.Button();
-            this.edittextureset = new System.Windows.Forms.Button();
-            this.pastetexturesets = new System.Windows.Forms.Button();
-            this.copytexturesets = new System.Windows.Forms.Button();
-            this.removetextureset = new System.Windows.Forms.Button();
-            this.addtextureset = new System.Windows.Forms.Button();
-            this.tabmodes = new System.Windows.Forms.TabPage();
-            this.startmode = new System.Windows.Forms.ComboBox();
-            this.label11 = new System.Windows.Forms.Label();
-            this.listmodes = new System.Windows.Forms.ListView();
-            this.colmodename = new System.Windows.Forms.ColumnHeader();
-            this.colmodeplugin = new System.Windows.Forms.ColumnHeader();
-            this.listconfigs = new System.Windows.Forms.ListView();
-            this.columnname = new System.Windows.Forms.ColumnHeader();
-            this.testprogramdialog = new System.Windows.Forms.OpenFileDialog();
-            label5 = new System.Windows.Forms.Label();
-            label6 = new System.Windows.Forms.Label();
-            label3 = new System.Windows.Forms.Label();
-            label2 = new System.Windows.Forms.Label();
-            label7 = new System.Windows.Forms.Label();
-            label9 = new System.Windows.Forms.Label();
-            label1 = new System.Windows.Forms.Label();
-            label8 = new System.Windows.Forms.Label();
-            label4 = new System.Windows.Forms.Label();
-            label10 = new System.Windows.Forms.Label();
-            this.tabs.SuspendLayout();
-            this.tabresources.SuspendLayout();
-            this.tabnodebuilder.SuspendLayout();
-            this.tabtesting.SuspendLayout();
-            this.tabtextures.SuspendLayout();
-            this.tabmodes.SuspendLayout();
-            this.SuspendLayout();
-            // 
-            // label5
-            // 
-            label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-            label5.AutoSize = true;
-            label5.Location = new System.Drawing.Point(12, 276);
-            label5.Name = "label5";
-            label5.Size = new System.Drawing.Size(312, 14);
-            label5.TabIndex = 19;
-            label5.Text = "Drag items to change order (lower items override higher items).";
-            // 
-            // label6
-            // 
-            label6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            label6.AutoEllipsis = true;
-            label6.Location = new System.Drawing.Point(12, 15);
-            label6.Name = "label6";
-            label6.Size = new System.Drawing.Size(452, 37);
-            label6.TabIndex = 21;
-            label6.Text = "These are the resources that will be loaded when this configuration is chosen for" +
-                " editing. Usually you add your IWAD (like doom.wad or doom2.wad) here.";
-            // 
-            // label3
-            // 
-            label3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            label3.AutoEllipsis = true;
-            label3.Location = new System.Drawing.Point(12, 15);
-            label3.Name = "label3";
-            label3.Size = new System.Drawing.Size(443, 54);
-            label3.TabIndex = 22;
-            label3.Text = resources.GetString("label3.Text");
-            // 
-            // label2
-            // 
-            label2.AutoSize = true;
-            label2.Location = new System.Drawing.Point(12, 86);
-            label2.Name = "label2";
-            label2.Size = new System.Drawing.Size(149, 14);
-            label2.TabIndex = 24;
-            label2.Text = "Configuration for saving map:";
-            // 
-            // label7
-            // 
-            label7.AutoSize = true;
-            label7.Location = new System.Drawing.Point(35, 125);
-            label7.Name = "label7";
-            label7.Size = new System.Drawing.Size(126, 14);
-            label7.TabIndex = 26;
-            label7.Text = "Configuration for testing:";
-            // 
-            // label9
-            // 
-            label9.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            label9.AutoEllipsis = true;
-            label9.Location = new System.Drawing.Point(12, 15);
-            label9.Name = "label9";
-            label9.Size = new System.Drawing.Size(452, 54);
-            label9.TabIndex = 23;
-            label9.Text = "Here you can specify the program settings to use for launching a game engine when" +
-                " testing the map. Press F1 for help with custom parameters.";
-            // 
-            // label1
-            // 
-            label1.AutoSize = true;
-            label1.Location = new System.Drawing.Point(15, 62);
-            label1.Name = "label1";
-            label1.Size = new System.Drawing.Size(63, 14);
-            label1.TabIndex = 24;
-            label1.Text = "Application:";
-            // 
-            // label8
-            // 
-            label8.AutoSize = true;
-            label8.Location = new System.Drawing.Point(21, 97);
-            label8.Name = "label8";
-            label8.Size = new System.Drawing.Size(57, 14);
-            label8.TabIndex = 34;
-            label8.Text = "Skill Level:";
-            // 
-            // label4
-            // 
-            label4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            label4.AutoEllipsis = true;
-            label4.Location = new System.Drawing.Point(12, 15);
-            label4.Name = "label4";
-            label4.Size = new System.Drawing.Size(458, 46);
-            label4.TabIndex = 24;
-            label4.Text = "Texture Sets are a way to group textures and flats into categories, so that you c" +
-                "an easily find a texture for the specific style or purpose you need by selecting" +
-                " one of the categories.";
-            // 
-            // label10
-            // 
-            label10.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            label10.AutoEllipsis = true;
-            label10.Location = new System.Drawing.Point(12, 15);
-            label10.Name = "label10";
-            label10.Size = new System.Drawing.Size(445, 58);
-            label10.TabIndex = 25;
-            label10.Text = resources.GetString("label10.Text");
-            // 
-            // labelparameters
-            // 
-            this.labelparameters.AutoSize = true;
-            this.labelparameters.Location = new System.Drawing.Point(15, 159);
-            this.labelparameters.Name = "labelparameters";
-            this.labelparameters.Size = new System.Drawing.Size(65, 14);
-            this.labelparameters.TabIndex = 27;
-            this.labelparameters.Text = "Parameters:";
-            this.labelparameters.Visible = false;
-            // 
-            // cancel
-            // 
-            this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-            this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-            this.cancel.Location = new System.Drawing.Point(617, 381);
-            this.cancel.Name = "cancel";
-            this.cancel.Size = new System.Drawing.Size(112, 25);
-            this.cancel.TabIndex = 3;
-            this.cancel.Text = "Cancel";
-            this.cancel.UseVisualStyleBackColor = true;
-            this.cancel.Click += new System.EventHandler(this.cancel_Click);
-            // 
-            // apply
-            // 
-            this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-            this.apply.Location = new System.Drawing.Point(499, 381);
-            this.apply.Name = "apply";
-            this.apply.Size = new System.Drawing.Size(112, 25);
-            this.apply.TabIndex = 2;
-            this.apply.Text = "OK";
-            this.apply.UseVisualStyleBackColor = true;
-            this.apply.Click += new System.EventHandler(this.apply_Click);
-            // 
-            // tabs
-            // 
-            this.tabs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                        | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.tabs.Controls.Add(this.tabresources);
-            this.tabs.Controls.Add(this.tabnodebuilder);
-            this.tabs.Controls.Add(this.tabtesting);
-            this.tabs.Controls.Add(this.tabtextures);
-            this.tabs.Controls.Add(this.tabmodes);
-            this.tabs.Enabled = false;
-            this.tabs.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.tabs.ItemSize = new System.Drawing.Size(100, 19);
-            this.tabs.Location = new System.Drawing.Point(248, 12);
-            this.tabs.Name = "tabs";
-            this.tabs.Padding = new System.Drawing.Point(20, 3);
-            this.tabs.SelectedIndex = 0;
-            this.tabs.Size = new System.Drawing.Size(481, 358);
-            this.tabs.TabIndex = 1;
-            // 
-            // tabresources
-            // 
-            this.tabresources.Controls.Add(label6);
-            this.tabresources.Controls.Add(this.configdata);
-            this.tabresources.Controls.Add(label5);
-            this.tabresources.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.tabresources.Location = new System.Drawing.Point(4, 23);
-            this.tabresources.Name = "tabresources";
-            this.tabresources.Padding = new System.Windows.Forms.Padding(6);
-            this.tabresources.Size = new System.Drawing.Size(473, 331);
-            this.tabresources.TabIndex = 0;
-            this.tabresources.Text = "Resources";
-            this.tabresources.UseVisualStyleBackColor = true;
-            // 
-            // configdata
-            // 
-            this.configdata.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                        | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.configdata.DialogOffset = new System.Drawing.Point(-120, 10);
-            this.configdata.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.configdata.Location = new System.Drawing.Point(15, 55);
-            this.configdata.Name = "configdata";
-            this.configdata.Size = new System.Drawing.Size(440, 208);
-            this.configdata.TabIndex = 0;
-            this.configdata.OnContentChanged += new CodeImp.DoomBuilder.Controls.ResourceListEditor.ContentChanged(this.resourcelocations_OnContentChanged);
-            // 
-            // tabnodebuilder
-            // 
-            this.tabnodebuilder.Controls.Add(label7);
-            this.tabnodebuilder.Controls.Add(this.nodebuildertest);
-            this.tabnodebuilder.Controls.Add(label2);
-            this.tabnodebuilder.Controls.Add(this.nodebuildersave);
-            this.tabnodebuilder.Controls.Add(label3);
-            this.tabnodebuilder.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.tabnodebuilder.Location = new System.Drawing.Point(4, 23);
-            this.tabnodebuilder.Name = "tabnodebuilder";
-            this.tabnodebuilder.Padding = new System.Windows.Forms.Padding(6);
-            this.tabnodebuilder.Size = new System.Drawing.Size(473, 331);
-            this.tabnodebuilder.TabIndex = 1;
-            this.tabnodebuilder.Text = "Nodebuilder";
-            this.tabnodebuilder.UseVisualStyleBackColor = true;
-            // 
-            // nodebuildertest
-            // 
-            this.nodebuildertest.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.nodebuildertest.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-            this.nodebuildertest.FormattingEnabled = true;
-            this.nodebuildertest.Location = new System.Drawing.Point(167, 122);
-            this.nodebuildertest.Name = "nodebuildertest";
-            this.nodebuildertest.Size = new System.Drawing.Size(288, 22);
-            this.nodebuildertest.Sorted = true;
-            this.nodebuildertest.TabIndex = 1;
-            this.nodebuildertest.SelectedIndexChanged += new System.EventHandler(this.nodebuildertest_SelectedIndexChanged);
-            // 
-            // nodebuildersave
-            // 
-            this.nodebuildersave.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.nodebuildersave.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-            this.nodebuildersave.FormattingEnabled = true;
-            this.nodebuildersave.Location = new System.Drawing.Point(167, 83);
-            this.nodebuildersave.Name = "nodebuildersave";
-            this.nodebuildersave.Size = new System.Drawing.Size(288, 22);
-            this.nodebuildersave.Sorted = true;
-            this.nodebuildersave.TabIndex = 0;
-            this.nodebuildersave.SelectedIndexChanged += new System.EventHandler(this.nodebuildersave_SelectedIndexChanged);
-            // 
-            // tabtesting
-            // 
-            this.tabtesting.Controls.Add(this.shortpaths);
-            this.tabtesting.Controls.Add(this.customparameters);
-            this.tabtesting.Controls.Add(this.skill);
-            this.tabtesting.Controls.Add(label8);
-            this.tabtesting.Controls.Add(this.browsetestprogram);
-            this.tabtesting.Controls.Add(this.noresultlabel);
-            this.tabtesting.Controls.Add(this.testresult);
-            this.tabtesting.Controls.Add(this.labelresult);
-            this.tabtesting.Controls.Add(this.testparameters);
-            this.tabtesting.Controls.Add(this.labelparameters);
-            this.tabtesting.Controls.Add(this.testapplication);
-            this.tabtesting.Controls.Add(label1);
-            this.tabtesting.Controls.Add(label9);
-            this.tabtesting.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.tabtesting.Location = new System.Drawing.Point(4, 23);
-            this.tabtesting.Name = "tabtesting";
-            this.tabtesting.Padding = new System.Windows.Forms.Padding(6);
-            this.tabtesting.Size = new System.Drawing.Size(473, 331);
-            this.tabtesting.TabIndex = 2;
-            this.tabtesting.Text = "Testing";
-            this.tabtesting.UseVisualStyleBackColor = true;
-            // 
-            // shortpaths
-            // 
-            this.shortpaths.AutoSize = true;
-            this.shortpaths.Location = new System.Drawing.Point(87, 203);
-            this.shortpaths.Name = "shortpaths";
-            this.shortpaths.Size = new System.Drawing.Size(276, 18);
-            this.shortpaths.TabIndex = 5;
-            this.shortpaths.Text = "Use short paths and file names (MSDOS 8.3 format)";
-            this.shortpaths.UseVisualStyleBackColor = true;
-            this.shortpaths.Visible = false;
-            this.shortpaths.CheckedChanged += new System.EventHandler(this.shortpaths_CheckedChanged);
-            // 
-            // customparameters
-            // 
-            this.customparameters.AutoSize = true;
-            this.customparameters.Location = new System.Drawing.Point(86, 132);
-            this.customparameters.Name = "customparameters";
-            this.customparameters.Size = new System.Drawing.Size(134, 18);
-            this.customparameters.TabIndex = 3;
-            this.customparameters.Text = "Customize parameters";
-            this.customparameters.UseVisualStyleBackColor = true;
-            this.customparameters.CheckedChanged += new System.EventHandler(this.customparameters_CheckedChanged);
-            // 
-            // skill
-            // 
-            this.skill.BackColor = System.Drawing.Color.Transparent;
-            this.skill.Cursor = System.Windows.Forms.Cursors.Default;
-            this.skill.Empty = false;
-            this.skill.GeneralizedCategories = null;
-            this.skill.Location = new System.Drawing.Point(87, 94);
-            this.skill.Name = "skill";
-            this.skill.Size = new System.Drawing.Size(329, 21);
-            this.skill.TabIndex = 2;
-            this.skill.Value = 402;
-            this.skill.ValueChanges += new System.EventHandler(this.skill_ValueChanges);
-            // 
-            // browsetestprogram
-            // 
-            this.browsetestprogram.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.browsetestprogram.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.browsetestprogram.Image = global::CodeImp.DoomBuilder.Properties.Resources.Folder;
-            this.browsetestprogram.Location = new System.Drawing.Point(422, 58);
-            this.browsetestprogram.Name = "browsetestprogram";
-            this.browsetestprogram.Padding = new System.Windows.Forms.Padding(0, 0, 1, 3);
-            this.browsetestprogram.Size = new System.Drawing.Size(30, 23);
-            this.browsetestprogram.TabIndex = 1;
-            this.browsetestprogram.Text = " ";
-            this.browsetestprogram.UseVisualStyleBackColor = true;
-            this.browsetestprogram.Click += new System.EventHandler(this.browsetestprogram_Click);
-            // 
-            // noresultlabel
-            // 
-            this.noresultlabel.Location = new System.Drawing.Point(84, 236);
-            this.noresultlabel.Name = "noresultlabel";
-            this.noresultlabel.Size = new System.Drawing.Size(272, 43);
-            this.noresultlabel.TabIndex = 32;
-            this.noresultlabel.Text = "An example result cannot be displayed, because it requires a map to be loaded.";
-            this.noresultlabel.Visible = false;
-            // 
-            // testresult
-            // 
-            this.testresult.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.testresult.BackColor = System.Drawing.SystemColors.Control;
-            this.testresult.Location = new System.Drawing.Point(86, 233);
-            this.testresult.Multiline = true;
-            this.testresult.Name = "testresult";
-            this.testresult.ReadOnly = true;
-            this.testresult.Size = new System.Drawing.Size(366, 79);
-            this.testresult.TabIndex = 6;
-            this.testresult.Visible = false;
-            // 
-            // labelresult
-            // 
-            this.labelresult.AutoSize = true;
-            this.labelresult.Location = new System.Drawing.Point(38, 236);
-            this.labelresult.Name = "labelresult";
-            this.labelresult.Size = new System.Drawing.Size(40, 14);
-            this.labelresult.TabIndex = 30;
-            this.labelresult.Text = "Result:";
-            this.labelresult.Visible = false;
-            // 
-            // testparameters
-            // 
-            this.testparameters.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.testparameters.Location = new System.Drawing.Point(86, 156);
-            this.testparameters.Multiline = true;
-            this.testparameters.Name = "testparameters";
-            this.testparameters.Size = new System.Drawing.Size(366, 41);
-            this.testparameters.TabIndex = 4;
-            this.testparameters.Visible = false;
-            this.testparameters.TextChanged += new System.EventHandler(this.testparameters_TextChanged);
-            // 
-            // testapplication
-            // 
-            this.testapplication.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.testapplication.Location = new System.Drawing.Point(86, 59);
-            this.testapplication.Name = "testapplication";
-            this.testapplication.ReadOnly = true;
-            this.testapplication.Size = new System.Drawing.Size(330, 20);
-            this.testapplication.TabIndex = 0;
-            this.testapplication.TextChanged += new System.EventHandler(this.testapplication_TextChanged);
-            // 
-            // tabtextures
-            // 
-            this.tabtextures.Controls.Add(this.listtextures);
-            this.tabtextures.Controls.Add(this.restoretexturesets);
-            this.tabtextures.Controls.Add(this.edittextureset);
-            this.tabtextures.Controls.Add(this.pastetexturesets);
-            this.tabtextures.Controls.Add(this.copytexturesets);
-            this.tabtextures.Controls.Add(this.removetextureset);
-            this.tabtextures.Controls.Add(this.addtextureset);
-            this.tabtextures.Controls.Add(label4);
-            this.tabtextures.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.tabtextures.Location = new System.Drawing.Point(4, 23);
-            this.tabtextures.Name = "tabtextures";
-            this.tabtextures.Size = new System.Drawing.Size(473, 331);
-            this.tabtextures.TabIndex = 3;
-            this.tabtextures.Text = "Textures";
-            this.tabtextures.UseVisualStyleBackColor = true;
-            // 
-            // listtextures
-            // 
-            this.listtextures.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                        | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.listtextures.FullRowSelect = true;
-            this.listtextures.HideSelection = false;
-            this.listtextures.Location = new System.Drawing.Point(15, 64);
-            this.listtextures.Name = "listtextures";
-            this.listtextures.ShowGroups = false;
-            this.listtextures.Size = new System.Drawing.Size(442, 175);
-            this.listtextures.SmallImageList = this.smallimages;
-            this.listtextures.Sorting = System.Windows.Forms.SortOrder.Ascending;
-            this.listtextures.TabIndex = 0;
-            this.listtextures.UseCompatibleStateImageBehavior = false;
-            this.listtextures.View = System.Windows.Forms.View.List;
-            this.listtextures.SelectedIndexChanged += new System.EventHandler(this.listtextures_SelectedIndexChanged);
-            this.listtextures.DoubleClick += new System.EventHandler(this.listtextures_DoubleClick);
-            // 
-            // smallimages
-            // 
-            this.smallimages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("smallimages.ImageStream")));
-            this.smallimages.TransparentColor = System.Drawing.Color.Transparent;
-            this.smallimages.Images.SetKeyName(0, "KnownTextureSet.ico");
-            // 
-            // restoretexturesets
-            // 
-            this.restoretexturesets.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-            this.restoretexturesets.Location = new System.Drawing.Point(15, 283);
-            this.restoretexturesets.Name = "restoretexturesets";
-            this.restoretexturesets.Size = new System.Drawing.Size(140, 24);
-            this.restoretexturesets.TabIndex = 6;
-            this.restoretexturesets.Text = "Add Default Sets";
-            this.restoretexturesets.UseVisualStyleBackColor = true;
-            this.restoretexturesets.Click += new System.EventHandler(this.restoretexturesets_Click);
-            // 
-            // edittextureset
-            // 
-            this.edittextureset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-            this.edittextureset.Enabled = false;
-            this.edittextureset.Location = new System.Drawing.Point(88, 245);
-            this.edittextureset.Name = "edittextureset";
-            this.edittextureset.Size = new System.Drawing.Size(67, 24);
-            this.edittextureset.TabIndex = 2;
-            this.edittextureset.Text = "Edit...";
-            this.edittextureset.UseVisualStyleBackColor = true;
-            this.edittextureset.Click += new System.EventHandler(this.edittextureset_Click);
-            // 
-            // pastetexturesets
-            // 
-            this.pastetexturesets.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-            this.pastetexturesets.Enabled = false;
-            this.pastetexturesets.Location = new System.Drawing.Point(399, 245);
-            this.pastetexturesets.Name = "pastetexturesets";
-            this.pastetexturesets.Size = new System.Drawing.Size(58, 24);
-            this.pastetexturesets.TabIndex = 5;
-            this.pastetexturesets.Text = "Paste";
-            this.pastetexturesets.UseVisualStyleBackColor = true;
-            this.pastetexturesets.Click += new System.EventHandler(this.pastetexturesets_Click);
-            // 
-            // copytexturesets
-            // 
-            this.copytexturesets.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-            this.copytexturesets.Enabled = false;
-            this.copytexturesets.Location = new System.Drawing.Point(335, 245);
-            this.copytexturesets.Name = "copytexturesets";
-            this.copytexturesets.Size = new System.Drawing.Size(58, 24);
-            this.copytexturesets.TabIndex = 4;
-            this.copytexturesets.Text = "Copy";
-            this.copytexturesets.UseVisualStyleBackColor = true;
-            this.copytexturesets.Click += new System.EventHandler(this.copytexturesets_Click);
-            // 
-            // removetextureset
-            // 
-            this.removetextureset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-            this.removetextureset.Enabled = false;
-            this.removetextureset.Location = new System.Drawing.Point(161, 245);
-            this.removetextureset.Name = "removetextureset";
-            this.removetextureset.Size = new System.Drawing.Size(68, 24);
-            this.removetextureset.TabIndex = 3;
-            this.removetextureset.Text = "Remove";
-            this.removetextureset.UseVisualStyleBackColor = true;
-            this.removetextureset.Click += new System.EventHandler(this.removetextureset_Click);
-            // 
-            // addtextureset
-            // 
-            this.addtextureset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-            this.addtextureset.Location = new System.Drawing.Point(15, 245);
-            this.addtextureset.Name = "addtextureset";
-            this.addtextureset.Size = new System.Drawing.Size(67, 24);
-            this.addtextureset.TabIndex = 1;
-            this.addtextureset.Text = "Add...";
-            this.addtextureset.UseVisualStyleBackColor = true;
-            this.addtextureset.Click += new System.EventHandler(this.addtextureset_Click);
-            // 
-            // tabmodes
-            // 
-            this.tabmodes.Controls.Add(this.startmode);
-            this.tabmodes.Controls.Add(this.label11);
-            this.tabmodes.Controls.Add(this.listmodes);
-            this.tabmodes.Controls.Add(label10);
-            this.tabmodes.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.tabmodes.Location = new System.Drawing.Point(4, 23);
-            this.tabmodes.Name = "tabmodes";
-            this.tabmodes.Size = new System.Drawing.Size(473, 331);
-            this.tabmodes.TabIndex = 4;
-            this.tabmodes.Text = "Modes";
-            this.tabmodes.UseVisualStyleBackColor = true;
-            // 
-            // startmode
-            // 
-            this.startmode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-            this.startmode.FormattingEnabled = true;
-            this.startmode.Location = new System.Drawing.Point(239, 288);
-            this.startmode.Name = "startmode";
-            this.startmode.Size = new System.Drawing.Size(218, 22);
-            this.startmode.TabIndex = 27;
-            this.startmode.SelectedIndexChanged += new System.EventHandler(this.startmode_SelectedIndexChanged);
-            // 
-            // label11
-            // 
-            this.label11.AutoSize = true;
-            this.label11.Location = new System.Drawing.Point(12, 291);
-            this.label11.Name = "label11";
-            this.label11.Size = new System.Drawing.Size(199, 14);
-            this.label11.TabIndex = 26;
-            this.label11.Text = "When opening a map, start in this mode:";
-            // 
-            // listmodes
-            // 
-            this.listmodes.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                        | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.listmodes.CheckBoxes = true;
-            this.listmodes.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+			this.components = new System.ComponentModel.Container();
+			System.Windows.Forms.Label label5;
+			System.Windows.Forms.Label label6;
+			System.Windows.Forms.Label label3;
+			System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfigForm));
+			System.Windows.Forms.Label label2;
+			System.Windows.Forms.Label label7;
+			System.Windows.Forms.Label label9;
+			System.Windows.Forms.Label label1;
+			System.Windows.Forms.Label label8;
+			System.Windows.Forms.Label label4;
+			System.Windows.Forms.Label label10;
+			this.labelparameters = new System.Windows.Forms.Label();
+			this.cancel = new System.Windows.Forms.Button();
+			this.apply = new System.Windows.Forms.Button();
+			this.tabs = new System.Windows.Forms.TabControl();
+			this.tabresources = new System.Windows.Forms.TabPage();
+			this.configdata = new CodeImp.DoomBuilder.Controls.ResourceListEditor();
+			this.tabnodebuilder = new System.Windows.Forms.TabPage();
+			this.nodebuildertest = new System.Windows.Forms.ComboBox();
+			this.nodebuildersave = new System.Windows.Forms.ComboBox();
+			this.tabtesting = new System.Windows.Forms.TabPage();
+			this.btnRemoveEngine = new System.Windows.Forms.Button();
+			this.btnNewEngine = new System.Windows.Forms.Button();
+			this.cbEngineSelector = new System.Windows.Forms.ComboBox();
+			this.label13 = new System.Windows.Forms.Label();
+			this.shortpaths = new System.Windows.Forms.CheckBox();
+			this.customparameters = new System.Windows.Forms.CheckBox();
+			this.skill = new CodeImp.DoomBuilder.Controls.ActionSelectorControl();
+			this.browsetestprogram = new System.Windows.Forms.Button();
+			this.noresultlabel = new System.Windows.Forms.Label();
+			this.testresult = new System.Windows.Forms.TextBox();
+			this.labelresult = new System.Windows.Forms.Label();
+			this.testparameters = new System.Windows.Forms.TextBox();
+			this.testapplication = new System.Windows.Forms.TextBox();
+			this.tabtextures = new System.Windows.Forms.TabPage();
+			this.listtextures = new System.Windows.Forms.ListView();
+			this.smallimages = new System.Windows.Forms.ImageList(this.components);
+			this.restoretexturesets = new System.Windows.Forms.Button();
+			this.edittextureset = new System.Windows.Forms.Button();
+			this.pastetexturesets = new System.Windows.Forms.Button();
+			this.copytexturesets = new System.Windows.Forms.Button();
+			this.removetextureset = new System.Windows.Forms.Button();
+			this.addtextureset = new System.Windows.Forms.Button();
+			this.tabmodes = new System.Windows.Forms.TabPage();
+			this.startmode = new System.Windows.Forms.ComboBox();
+			this.label11 = new System.Windows.Forms.Label();
+			this.listmodes = new System.Windows.Forms.ListView();
+			this.colmodename = new System.Windows.Forms.ColumnHeader();
+			this.colmodeplugin = new System.Windows.Forms.ColumnHeader();
+			this.listconfigs = new System.Windows.Forms.ListView();
+			this.columnname = new System.Windows.Forms.ColumnHeader();
+			this.testprogramdialog = new System.Windows.Forms.OpenFileDialog();
+			label5 = new System.Windows.Forms.Label();
+			label6 = new System.Windows.Forms.Label();
+			label3 = new System.Windows.Forms.Label();
+			label2 = new System.Windows.Forms.Label();
+			label7 = new System.Windows.Forms.Label();
+			label9 = new System.Windows.Forms.Label();
+			label1 = new System.Windows.Forms.Label();
+			label8 = new System.Windows.Forms.Label();
+			label4 = new System.Windows.Forms.Label();
+			label10 = new System.Windows.Forms.Label();
+			this.tabs.SuspendLayout();
+			this.tabresources.SuspendLayout();
+			this.tabnodebuilder.SuspendLayout();
+			this.tabtesting.SuspendLayout();
+			this.tabtextures.SuspendLayout();
+			this.tabmodes.SuspendLayout();
+			this.SuspendLayout();
+			// 
+			// label5
+			// 
+			label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+			label5.AutoSize = true;
+			label5.Location = new System.Drawing.Point(12, 276);
+			label5.Name = "label5";
+			label5.Size = new System.Drawing.Size(312, 14);
+			label5.TabIndex = 19;
+			label5.Text = "Drag items to change order (lower items override higher items).";
+			// 
+			// label6
+			// 
+			label6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			label6.AutoEllipsis = true;
+			label6.Location = new System.Drawing.Point(12, 15);
+			label6.Name = "label6";
+			label6.Size = new System.Drawing.Size(452, 37);
+			label6.TabIndex = 21;
+			label6.Text = "These are the resources that will be loaded when this configuration is chosen for" +
+				" editing. Usually you add your IWAD (like doom.wad or doom2.wad) here.";
+			// 
+			// label3
+			// 
+			label3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			label3.AutoEllipsis = true;
+			label3.Location = new System.Drawing.Point(12, 15);
+			label3.Name = "label3";
+			label3.Size = new System.Drawing.Size(443, 54);
+			label3.TabIndex = 22;
+			label3.Text = resources.GetString("label3.Text");
+			// 
+			// label2
+			// 
+			label2.AutoSize = true;
+			label2.Location = new System.Drawing.Point(12, 86);
+			label2.Name = "label2";
+			label2.Size = new System.Drawing.Size(149, 14);
+			label2.TabIndex = 24;
+			label2.Text = "Configuration for saving map:";
+			// 
+			// label7
+			// 
+			label7.AutoSize = true;
+			label7.Location = new System.Drawing.Point(35, 125);
+			label7.Name = "label7";
+			label7.Size = new System.Drawing.Size(126, 14);
+			label7.TabIndex = 26;
+			label7.Text = "Configuration for testing:";
+			// 
+			// label9
+			// 
+			label9.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			label9.AutoEllipsis = true;
+			label9.Location = new System.Drawing.Point(12, 15);
+			label9.Name = "label9";
+			label9.Size = new System.Drawing.Size(452, 54);
+			label9.TabIndex = 23;
+			label9.Text = "Here you can specify the program settings to use for launching a game engine when" +
+				" testing the map. Press F1 for help with custom parameters.";
+			// 
+			// label1
+			// 
+			label1.AutoSize = true;
+			label1.Location = new System.Drawing.Point(15, 89);
+			label1.Name = "label1";
+			label1.Size = new System.Drawing.Size(63, 14);
+			label1.TabIndex = 24;
+			label1.Text = "Application:";
+			// 
+			// label8
+			// 
+			label8.AutoSize = true;
+			label8.Location = new System.Drawing.Point(21, 119);
+			label8.Name = "label8";
+			label8.Size = new System.Drawing.Size(57, 14);
+			label8.TabIndex = 34;
+			label8.Text = "Skill Level:";
+			// 
+			// label4
+			// 
+			label4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			label4.AutoEllipsis = true;
+			label4.Location = new System.Drawing.Point(12, 15);
+			label4.Name = "label4";
+			label4.Size = new System.Drawing.Size(458, 46);
+			label4.TabIndex = 24;
+			label4.Text = "Texture Sets are a way to group textures and flats into categories, so that you c" +
+				"an easily find a texture for the specific style or purpose you need by selecting" +
+				" one of the categories.";
+			// 
+			// label10
+			// 
+			label10.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			label10.AutoEllipsis = true;
+			label10.Location = new System.Drawing.Point(12, 15);
+			label10.Name = "label10";
+			label10.Size = new System.Drawing.Size(445, 58);
+			label10.TabIndex = 25;
+			label10.Text = resources.GetString("label10.Text");
+			// 
+			// labelparameters
+			// 
+			this.labelparameters.AutoSize = true;
+			this.labelparameters.Location = new System.Drawing.Point(16, 169);
+			this.labelparameters.Name = "labelparameters";
+			this.labelparameters.Size = new System.Drawing.Size(65, 14);
+			this.labelparameters.TabIndex = 27;
+			this.labelparameters.Text = "Parameters:";
+			this.labelparameters.Visible = false;
+			// 
+			// cancel
+			// 
+			this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+			this.cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+			this.cancel.Location = new System.Drawing.Point(617, 381);
+			this.cancel.Name = "cancel";
+			this.cancel.Size = new System.Drawing.Size(112, 25);
+			this.cancel.TabIndex = 3;
+			this.cancel.Text = "Cancel";
+			this.cancel.UseVisualStyleBackColor = true;
+			this.cancel.Click += new System.EventHandler(this.cancel_Click);
+			// 
+			// apply
+			// 
+			this.apply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+			this.apply.Location = new System.Drawing.Point(499, 381);
+			this.apply.Name = "apply";
+			this.apply.Size = new System.Drawing.Size(112, 25);
+			this.apply.TabIndex = 2;
+			this.apply.Text = "OK";
+			this.apply.UseVisualStyleBackColor = true;
+			this.apply.Click += new System.EventHandler(this.apply_Click);
+			// 
+			// tabs
+			// 
+			this.tabs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+						| System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			this.tabs.Controls.Add(this.tabresources);
+			this.tabs.Controls.Add(this.tabnodebuilder);
+			this.tabs.Controls.Add(this.tabtesting);
+			this.tabs.Controls.Add(this.tabtextures);
+			this.tabs.Controls.Add(this.tabmodes);
+			this.tabs.Enabled = false;
+			this.tabs.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.tabs.ItemSize = new System.Drawing.Size(100, 19);
+			this.tabs.Location = new System.Drawing.Point(248, 12);
+			this.tabs.Name = "tabs";
+			this.tabs.Padding = new System.Drawing.Point(20, 3);
+			this.tabs.SelectedIndex = 0;
+			this.tabs.Size = new System.Drawing.Size(481, 358);
+			this.tabs.TabIndex = 1;
+			// 
+			// tabresources
+			// 
+			this.tabresources.Controls.Add(label6);
+			this.tabresources.Controls.Add(this.configdata);
+			this.tabresources.Controls.Add(label5);
+			this.tabresources.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.tabresources.Location = new System.Drawing.Point(4, 23);
+			this.tabresources.Name = "tabresources";
+			this.tabresources.Padding = new System.Windows.Forms.Padding(6);
+			this.tabresources.Size = new System.Drawing.Size(473, 331);
+			this.tabresources.TabIndex = 0;
+			this.tabresources.Text = "Resources";
+			this.tabresources.UseVisualStyleBackColor = true;
+			// 
+			// configdata
+			// 
+			this.configdata.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+						| System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			this.configdata.DialogOffset = new System.Drawing.Point(-120, 10);
+			this.configdata.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.configdata.Location = new System.Drawing.Point(15, 55);
+			this.configdata.Name = "configdata";
+			this.configdata.Size = new System.Drawing.Size(440, 208);
+			this.configdata.TabIndex = 0;
+			this.configdata.OnContentChanged += new CodeImp.DoomBuilder.Controls.ResourceListEditor.ContentChanged(this.resourcelocations_OnContentChanged);
+			// 
+			// tabnodebuilder
+			// 
+			this.tabnodebuilder.Controls.Add(label7);
+			this.tabnodebuilder.Controls.Add(this.nodebuildertest);
+			this.tabnodebuilder.Controls.Add(label2);
+			this.tabnodebuilder.Controls.Add(this.nodebuildersave);
+			this.tabnodebuilder.Controls.Add(label3);
+			this.tabnodebuilder.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.tabnodebuilder.Location = new System.Drawing.Point(4, 23);
+			this.tabnodebuilder.Name = "tabnodebuilder";
+			this.tabnodebuilder.Padding = new System.Windows.Forms.Padding(6);
+			this.tabnodebuilder.Size = new System.Drawing.Size(473, 331);
+			this.tabnodebuilder.TabIndex = 1;
+			this.tabnodebuilder.Text = "Nodebuilder";
+			this.tabnodebuilder.UseVisualStyleBackColor = true;
+			// 
+			// nodebuildertest
+			// 
+			this.nodebuildertest.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			this.nodebuildertest.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+			this.nodebuildertest.FormattingEnabled = true;
+			this.nodebuildertest.Location = new System.Drawing.Point(167, 122);
+			this.nodebuildertest.Name = "nodebuildertest";
+			this.nodebuildertest.Size = new System.Drawing.Size(288, 22);
+			this.nodebuildertest.Sorted = true;
+			this.nodebuildertest.TabIndex = 1;
+			this.nodebuildertest.SelectedIndexChanged += new System.EventHandler(this.nodebuildertest_SelectedIndexChanged);
+			// 
+			// nodebuildersave
+			// 
+			this.nodebuildersave.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			this.nodebuildersave.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+			this.nodebuildersave.FormattingEnabled = true;
+			this.nodebuildersave.Location = new System.Drawing.Point(167, 83);
+			this.nodebuildersave.Name = "nodebuildersave";
+			this.nodebuildersave.Size = new System.Drawing.Size(288, 22);
+			this.nodebuildersave.Sorted = true;
+			this.nodebuildersave.TabIndex = 0;
+			this.nodebuildersave.SelectedIndexChanged += new System.EventHandler(this.nodebuildersave_SelectedIndexChanged);
+			// 
+			// tabtesting
+			// 
+			this.tabtesting.Controls.Add(this.btnRemoveEngine);
+			this.tabtesting.Controls.Add(this.btnNewEngine);
+			this.tabtesting.Controls.Add(this.cbEngineSelector);
+			this.tabtesting.Controls.Add(this.label13);
+			this.tabtesting.Controls.Add(this.shortpaths);
+			this.tabtesting.Controls.Add(this.customparameters);
+			this.tabtesting.Controls.Add(this.skill);
+			this.tabtesting.Controls.Add(label8);
+			this.tabtesting.Controls.Add(this.browsetestprogram);
+			this.tabtesting.Controls.Add(this.noresultlabel);
+			this.tabtesting.Controls.Add(this.testresult);
+			this.tabtesting.Controls.Add(this.labelresult);
+			this.tabtesting.Controls.Add(this.testparameters);
+			this.tabtesting.Controls.Add(this.labelparameters);
+			this.tabtesting.Controls.Add(this.testapplication);
+			this.tabtesting.Controls.Add(label1);
+			this.tabtesting.Controls.Add(label9);
+			this.tabtesting.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.tabtesting.Location = new System.Drawing.Point(4, 23);
+			this.tabtesting.Name = "tabtesting";
+			this.tabtesting.Padding = new System.Windows.Forms.Padding(6);
+			this.tabtesting.Size = new System.Drawing.Size(473, 331);
+			this.tabtesting.TabIndex = 2;
+			this.tabtesting.Text = "Testing";
+			this.tabtesting.UseVisualStyleBackColor = true;
+			// 
+			// btnRemoveEngine
+			// 
+			this.btnRemoveEngine.Image = global::CodeImp.DoomBuilder.Properties.Resources.SearchClear;
+			this.btnRemoveEngine.Location = new System.Drawing.Point(422, 52);
+			this.btnRemoveEngine.Name = "btnRemoveEngine";
+			this.btnRemoveEngine.Size = new System.Drawing.Size(26, 24);
+			this.btnRemoveEngine.TabIndex = 40;
+			this.btnRemoveEngine.UseVisualStyleBackColor = true;
+			this.btnRemoveEngine.Click += new System.EventHandler(this.btnRemoveEngine_Click);
+			// 
+			// btnNewEngine
+			// 
+			this.btnNewEngine.Image = global::CodeImp.DoomBuilder.Properties.Resources.Add;
+			this.btnNewEngine.Location = new System.Drawing.Point(392, 52);
+			this.btnNewEngine.Name = "btnNewEngine";
+			this.btnNewEngine.Size = new System.Drawing.Size(26, 24);
+			this.btnNewEngine.TabIndex = 39;
+			this.btnNewEngine.UseVisualStyleBackColor = true;
+			this.btnNewEngine.Click += new System.EventHandler(this.btnNewEngine_Click);
+			// 
+			// cbEngineSelector
+			// 
+			this.cbEngineSelector.FormattingEnabled = true;
+			this.cbEngineSelector.Location = new System.Drawing.Point(87, 53);
+			this.cbEngineSelector.Name = "cbEngineSelector";
+			this.cbEngineSelector.Size = new System.Drawing.Size(299, 22);
+			this.cbEngineSelector.TabIndex = 38;
+			this.cbEngineSelector.SelectedIndexChanged += new System.EventHandler(this.cbEngineSelector_SelectedIndexChanged);
+			this.cbEngineSelector.DropDown += new System.EventHandler(this.cbEngineSelector_DropDown);
+			// 
+			// label13
+			// 
+			this.label13.AutoSize = true;
+			this.label13.Location = new System.Drawing.Point(36, 56);
+			this.label13.Name = "label13";
+			this.label13.Size = new System.Drawing.Size(42, 14);
+			this.label13.TabIndex = 37;
+			this.label13.Text = "Engine:";
+			// 
+			// shortpaths
+			// 
+			this.shortpaths.AutoSize = true;
+			this.shortpaths.Location = new System.Drawing.Point(87, 217);
+			this.shortpaths.Name = "shortpaths";
+			this.shortpaths.Size = new System.Drawing.Size(276, 18);
+			this.shortpaths.TabIndex = 5;
+			this.shortpaths.Text = "Use short paths and file names (MSDOS 8.3 format)";
+			this.shortpaths.UseVisualStyleBackColor = true;
+			this.shortpaths.Visible = false;
+			this.shortpaths.CheckedChanged += new System.EventHandler(this.shortpaths_CheckedChanged);
+			// 
+			// customparameters
+			// 
+			this.customparameters.AutoSize = true;
+			this.customparameters.Location = new System.Drawing.Point(87, 146);
+			this.customparameters.Name = "customparameters";
+			this.customparameters.Size = new System.Drawing.Size(134, 18);
+			this.customparameters.TabIndex = 3;
+			this.customparameters.Text = "Customize parameters";
+			this.customparameters.UseVisualStyleBackColor = true;
+			this.customparameters.CheckedChanged += new System.EventHandler(this.customparameters_CheckedChanged);
+			// 
+			// skill
+			// 
+			this.skill.BackColor = System.Drawing.Color.Transparent;
+			this.skill.Cursor = System.Windows.Forms.Cursors.Default;
+			this.skill.Empty = false;
+			this.skill.GeneralizedCategories = null;
+			this.skill.Location = new System.Drawing.Point(87, 116);
+			this.skill.Name = "skill";
+			this.skill.Size = new System.Drawing.Size(329, 21);
+			this.skill.TabIndex = 2;
+			this.skill.Value = 402;
+			this.skill.ValueChanges += new System.EventHandler(this.skill_ValueChanges);
+			// 
+			// browsetestprogram
+			// 
+			this.browsetestprogram.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+			this.browsetestprogram.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.browsetestprogram.Image = global::CodeImp.DoomBuilder.Properties.Resources.Folder;
+			this.browsetestprogram.Location = new System.Drawing.Point(418, 84);
+			this.browsetestprogram.Name = "browsetestprogram";
+			this.browsetestprogram.Padding = new System.Windows.Forms.Padding(0, 0, 1, 3);
+			this.browsetestprogram.Size = new System.Drawing.Size(30, 24);
+			this.browsetestprogram.TabIndex = 1;
+			this.browsetestprogram.Text = " ";
+			this.browsetestprogram.UseVisualStyleBackColor = true;
+			this.browsetestprogram.Click += new System.EventHandler(this.browsetestprogram_Click);
+			// 
+			// noresultlabel
+			// 
+			this.noresultlabel.Location = new System.Drawing.Point(84, 244);
+			this.noresultlabel.Name = "noresultlabel";
+			this.noresultlabel.Size = new System.Drawing.Size(272, 43);
+			this.noresultlabel.TabIndex = 32;
+			this.noresultlabel.Text = "An example result cannot be displayed, because it requires a map to be loaded.";
+			this.noresultlabel.Visible = false;
+			// 
+			// testresult
+			// 
+			this.testresult.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			this.testresult.BackColor = System.Drawing.SystemColors.Control;
+			this.testresult.Location = new System.Drawing.Point(86, 241);
+			this.testresult.Multiline = true;
+			this.testresult.Name = "testresult";
+			this.testresult.ReadOnly = true;
+			this.testresult.Size = new System.Drawing.Size(366, 79);
+			this.testresult.TabIndex = 6;
+			this.testresult.Visible = false;
+			// 
+			// labelresult
+			// 
+			this.labelresult.AutoSize = true;
+			this.labelresult.Location = new System.Drawing.Point(38, 244);
+			this.labelresult.Name = "labelresult";
+			this.labelresult.Size = new System.Drawing.Size(40, 14);
+			this.labelresult.TabIndex = 30;
+			this.labelresult.Text = "Result:";
+			this.labelresult.Visible = false;
+			// 
+			// testparameters
+			// 
+			this.testparameters.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			this.testparameters.Location = new System.Drawing.Point(87, 166);
+			this.testparameters.Multiline = true;
+			this.testparameters.Name = "testparameters";
+			this.testparameters.Size = new System.Drawing.Size(366, 41);
+			this.testparameters.TabIndex = 4;
+			this.testparameters.Visible = false;
+			this.testparameters.TextChanged += new System.EventHandler(this.testparameters_TextChanged);
+			// 
+			// testapplication
+			// 
+			this.testapplication.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			this.testapplication.Location = new System.Drawing.Point(87, 86);
+			this.testapplication.Name = "testapplication";
+			this.testapplication.ReadOnly = true;
+			this.testapplication.Size = new System.Drawing.Size(329, 20);
+			this.testapplication.TabIndex = 0;
+			this.testapplication.TextChanged += new System.EventHandler(this.testapplication_TextChanged);
+			// 
+			// tabtextures
+			// 
+			this.tabtextures.Controls.Add(this.listtextures);
+			this.tabtextures.Controls.Add(this.restoretexturesets);
+			this.tabtextures.Controls.Add(this.edittextureset);
+			this.tabtextures.Controls.Add(this.pastetexturesets);
+			this.tabtextures.Controls.Add(this.copytexturesets);
+			this.tabtextures.Controls.Add(this.removetextureset);
+			this.tabtextures.Controls.Add(this.addtextureset);
+			this.tabtextures.Controls.Add(label4);
+			this.tabtextures.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.tabtextures.Location = new System.Drawing.Point(4, 23);
+			this.tabtextures.Name = "tabtextures";
+			this.tabtextures.Size = new System.Drawing.Size(473, 331);
+			this.tabtextures.TabIndex = 3;
+			this.tabtextures.Text = "Textures";
+			this.tabtextures.UseVisualStyleBackColor = true;
+			// 
+			// listtextures
+			// 
+			this.listtextures.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+						| System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			this.listtextures.FullRowSelect = true;
+			this.listtextures.HideSelection = false;
+			this.listtextures.Location = new System.Drawing.Point(15, 64);
+			this.listtextures.Name = "listtextures";
+			this.listtextures.ShowGroups = false;
+			this.listtextures.Size = new System.Drawing.Size(442, 175);
+			this.listtextures.SmallImageList = this.smallimages;
+			this.listtextures.Sorting = System.Windows.Forms.SortOrder.Ascending;
+			this.listtextures.TabIndex = 0;
+			this.listtextures.UseCompatibleStateImageBehavior = false;
+			this.listtextures.View = System.Windows.Forms.View.List;
+			this.listtextures.SelectedIndexChanged += new System.EventHandler(this.listtextures_SelectedIndexChanged);
+			this.listtextures.DoubleClick += new System.EventHandler(this.listtextures_DoubleClick);
+			// 
+			// smallimages
+			// 
+			this.smallimages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("smallimages.ImageStream")));
+			this.smallimages.TransparentColor = System.Drawing.Color.Transparent;
+			this.smallimages.Images.SetKeyName(0, "KnownTextureSet.ico");
+			// 
+			// restoretexturesets
+			// 
+			this.restoretexturesets.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+			this.restoretexturesets.Location = new System.Drawing.Point(15, 283);
+			this.restoretexturesets.Name = "restoretexturesets";
+			this.restoretexturesets.Size = new System.Drawing.Size(140, 24);
+			this.restoretexturesets.TabIndex = 6;
+			this.restoretexturesets.Text = "Add Default Sets";
+			this.restoretexturesets.UseVisualStyleBackColor = true;
+			this.restoretexturesets.Click += new System.EventHandler(this.restoretexturesets_Click);
+			// 
+			// edittextureset
+			// 
+			this.edittextureset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+			this.edittextureset.Enabled = false;
+			this.edittextureset.Location = new System.Drawing.Point(88, 245);
+			this.edittextureset.Name = "edittextureset";
+			this.edittextureset.Size = new System.Drawing.Size(67, 24);
+			this.edittextureset.TabIndex = 2;
+			this.edittextureset.Text = "Edit...";
+			this.edittextureset.UseVisualStyleBackColor = true;
+			this.edittextureset.Click += new System.EventHandler(this.edittextureset_Click);
+			// 
+			// pastetexturesets
+			// 
+			this.pastetexturesets.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+			this.pastetexturesets.Enabled = false;
+			this.pastetexturesets.Location = new System.Drawing.Point(399, 245);
+			this.pastetexturesets.Name = "pastetexturesets";
+			this.pastetexturesets.Size = new System.Drawing.Size(58, 24);
+			this.pastetexturesets.TabIndex = 5;
+			this.pastetexturesets.Text = "Paste";
+			this.pastetexturesets.UseVisualStyleBackColor = true;
+			this.pastetexturesets.Click += new System.EventHandler(this.pastetexturesets_Click);
+			// 
+			// copytexturesets
+			// 
+			this.copytexturesets.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+			this.copytexturesets.Enabled = false;
+			this.copytexturesets.Location = new System.Drawing.Point(335, 245);
+			this.copytexturesets.Name = "copytexturesets";
+			this.copytexturesets.Size = new System.Drawing.Size(58, 24);
+			this.copytexturesets.TabIndex = 4;
+			this.copytexturesets.Text = "Copy";
+			this.copytexturesets.UseVisualStyleBackColor = true;
+			this.copytexturesets.Click += new System.EventHandler(this.copytexturesets_Click);
+			// 
+			// removetextureset
+			// 
+			this.removetextureset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+			this.removetextureset.Enabled = false;
+			this.removetextureset.Location = new System.Drawing.Point(161, 245);
+			this.removetextureset.Name = "removetextureset";
+			this.removetextureset.Size = new System.Drawing.Size(68, 24);
+			this.removetextureset.TabIndex = 3;
+			this.removetextureset.Text = "Remove";
+			this.removetextureset.UseVisualStyleBackColor = true;
+			this.removetextureset.Click += new System.EventHandler(this.removetextureset_Click);
+			// 
+			// addtextureset
+			// 
+			this.addtextureset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+			this.addtextureset.Location = new System.Drawing.Point(15, 245);
+			this.addtextureset.Name = "addtextureset";
+			this.addtextureset.Size = new System.Drawing.Size(67, 24);
+			this.addtextureset.TabIndex = 1;
+			this.addtextureset.Text = "Add...";
+			this.addtextureset.UseVisualStyleBackColor = true;
+			this.addtextureset.Click += new System.EventHandler(this.addtextureset_Click);
+			// 
+			// tabmodes
+			// 
+			this.tabmodes.Controls.Add(this.startmode);
+			this.tabmodes.Controls.Add(this.label11);
+			this.tabmodes.Controls.Add(this.listmodes);
+			this.tabmodes.Controls.Add(label10);
+			this.tabmodes.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.tabmodes.Location = new System.Drawing.Point(4, 23);
+			this.tabmodes.Name = "tabmodes";
+			this.tabmodes.Size = new System.Drawing.Size(473, 331);
+			this.tabmodes.TabIndex = 4;
+			this.tabmodes.Text = "Modes";
+			this.tabmodes.UseVisualStyleBackColor = true;
+			// 
+			// startmode
+			// 
+			this.startmode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+			this.startmode.FormattingEnabled = true;
+			this.startmode.Location = new System.Drawing.Point(239, 288);
+			this.startmode.Name = "startmode";
+			this.startmode.Size = new System.Drawing.Size(218, 22);
+			this.startmode.TabIndex = 27;
+			this.startmode.SelectedIndexChanged += new System.EventHandler(this.startmode_SelectedIndexChanged);
+			// 
+			// label11
+			// 
+			this.label11.AutoSize = true;
+			this.label11.Location = new System.Drawing.Point(12, 291);
+			this.label11.Name = "label11";
+			this.label11.Size = new System.Drawing.Size(199, 14);
+			this.label11.TabIndex = 26;
+			this.label11.Text = "When opening a map, start in this mode:";
+			// 
+			// listmodes
+			// 
+			this.listmodes.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+						| System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			this.listmodes.CheckBoxes = true;
+			this.listmodes.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
             this.colmodename,
             this.colmodeplugin});
-            this.listmodes.FullRowSelect = true;
-            this.listmodes.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
-            this.listmodes.Location = new System.Drawing.Point(15, 70);
-            this.listmodes.MultiSelect = false;
-            this.listmodes.Name = "listmodes";
-            this.listmodes.ShowGroups = false;
-            this.listmodes.Size = new System.Drawing.Size(442, 202);
-            this.listmodes.Sorting = System.Windows.Forms.SortOrder.Ascending;
-            this.listmodes.TabIndex = 0;
-            this.listmodes.UseCompatibleStateImageBehavior = false;
-            this.listmodes.View = System.Windows.Forms.View.Details;
-            this.listmodes.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listmodes_ItemChecked);
-            // 
-            // colmodename
-            // 
-            this.colmodename.Text = "Editing Mode";
-            this.colmodename.Width = 179;
-            // 
-            // colmodeplugin
-            // 
-            this.colmodeplugin.Text = "Plugin";
-            this.colmodeplugin.Width = 221;
-            // 
-            // listconfigs
-            // 
-            this.listconfigs.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                        | System.Windows.Forms.AnchorStyles.Left)));
-            this.listconfigs.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+			this.listmodes.FullRowSelect = true;
+			this.listmodes.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
+			this.listmodes.Location = new System.Drawing.Point(15, 70);
+			this.listmodes.MultiSelect = false;
+			this.listmodes.Name = "listmodes";
+			this.listmodes.ShowGroups = false;
+			this.listmodes.Size = new System.Drawing.Size(442, 202);
+			this.listmodes.Sorting = System.Windows.Forms.SortOrder.Ascending;
+			this.listmodes.TabIndex = 0;
+			this.listmodes.UseCompatibleStateImageBehavior = false;
+			this.listmodes.View = System.Windows.Forms.View.Details;
+			this.listmodes.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listmodes_ItemChecked);
+			// 
+			// colmodename
+			// 
+			this.colmodename.Text = "Editing Mode";
+			this.colmodename.Width = 179;
+			// 
+			// colmodeplugin
+			// 
+			this.colmodeplugin.Text = "Plugin";
+			this.colmodeplugin.Width = 221;
+			// 
+			// listconfigs
+			// 
+			this.listconfigs.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+						| System.Windows.Forms.AnchorStyles.Left)));
+			this.listconfigs.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
             this.columnname});
-            this.listconfigs.FullRowSelect = true;
-            this.listconfigs.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
-            this.listconfigs.HideSelection = false;
-            this.listconfigs.Location = new System.Drawing.Point(12, 12);
-            this.listconfigs.MultiSelect = false;
-            this.listconfigs.Name = "listconfigs";
-            this.listconfigs.ShowGroups = false;
-            this.listconfigs.Size = new System.Drawing.Size(230, 358);
-            this.listconfigs.Sorting = System.Windows.Forms.SortOrder.Ascending;
-            this.listconfigs.TabIndex = 0;
-            this.listconfigs.UseCompatibleStateImageBehavior = false;
-            this.listconfigs.View = System.Windows.Forms.View.Details;
-            this.listconfigs.SelectedIndexChanged += new System.EventHandler(this.listconfigs_SelectedIndexChanged);
-            this.listconfigs.MouseUp += new System.Windows.Forms.MouseEventHandler(this.listconfigs_MouseUp);
-            this.listconfigs.KeyUp += new System.Windows.Forms.KeyEventHandler(this.listconfigs_KeyUp);
-            // 
-            // columnname
-            // 
-            this.columnname.Text = "Configuration";
-            this.columnname.Width = 200;
-            // 
-            // testprogramdialog
-            // 
-            this.testprogramdialog.Filter = "Executable Files (*.exe)|*.exe|Batch Files (*.bat)|*.bat";
-            this.testprogramdialog.Title = "Browse Test Program";
-            // 
-            // ConfigForm
-            // 
-            this.AcceptButton = this.apply;
-            this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
-            this.CancelButton = this.cancel;
-            this.ClientSize = new System.Drawing.Size(740, 416);
-            this.Controls.Add(this.listconfigs);
-            this.Controls.Add(this.tabs);
-            this.Controls.Add(this.cancel);
-            this.Controls.Add(this.apply);
-            this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
-            this.MaximizeBox = false;
-            this.MinimizeBox = false;
-            this.Name = "ConfigForm";
-            this.ShowIcon = false;
-            this.ShowInTaskbar = false;
-            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
-            this.Text = "Game Configurations";
-            this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.ConfigForm_HelpRequested);
-            this.tabs.ResumeLayout(false);
-            this.tabresources.ResumeLayout(false);
-            this.tabresources.PerformLayout();
-            this.tabnodebuilder.ResumeLayout(false);
-            this.tabnodebuilder.PerformLayout();
-            this.tabtesting.ResumeLayout(false);
-            this.tabtesting.PerformLayout();
-            this.tabtextures.ResumeLayout(false);
-            this.tabmodes.ResumeLayout(false);
-            this.tabmodes.PerformLayout();
-            this.ResumeLayout(false);
+			this.listconfigs.FullRowSelect = true;
+			this.listconfigs.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+			this.listconfigs.HideSelection = false;
+			this.listconfigs.Location = new System.Drawing.Point(12, 12);
+			this.listconfigs.MultiSelect = false;
+			this.listconfigs.Name = "listconfigs";
+			this.listconfigs.ShowGroups = false;
+			this.listconfigs.Size = new System.Drawing.Size(230, 358);
+			this.listconfigs.Sorting = System.Windows.Forms.SortOrder.Ascending;
+			this.listconfigs.TabIndex = 0;
+			this.listconfigs.UseCompatibleStateImageBehavior = false;
+			this.listconfigs.View = System.Windows.Forms.View.Details;
+			this.listconfigs.SelectedIndexChanged += new System.EventHandler(this.listconfigs_SelectedIndexChanged);
+			this.listconfigs.MouseUp += new System.Windows.Forms.MouseEventHandler(this.listconfigs_MouseUp);
+			this.listconfigs.KeyUp += new System.Windows.Forms.KeyEventHandler(this.listconfigs_KeyUp);
+			// 
+			// columnname
+			// 
+			this.columnname.Text = "Configuration";
+			this.columnname.Width = 200;
+			// 
+			// testprogramdialog
+			// 
+			this.testprogramdialog.Filter = "Executable Files (*.exe)|*.exe|Batch Files (*.bat)|*.bat";
+			this.testprogramdialog.Title = "Browse Test Program";
+			// 
+			// ConfigForm
+			// 
+			this.AcceptButton = this.apply;
+			this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
+			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+			this.CancelButton = this.cancel;
+			this.ClientSize = new System.Drawing.Size(740, 416);
+			this.Controls.Add(this.listconfigs);
+			this.Controls.Add(this.tabs);
+			this.Controls.Add(this.cancel);
+			this.Controls.Add(this.apply);
+			this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+			this.MaximizeBox = false;
+			this.MinimizeBox = false;
+			this.Name = "ConfigForm";
+			this.ShowIcon = false;
+			this.ShowInTaskbar = false;
+			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+			this.Text = "Game Configurations";
+			this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.ConfigForm_HelpRequested);
+			this.tabs.ResumeLayout(false);
+			this.tabresources.ResumeLayout(false);
+			this.tabresources.PerformLayout();
+			this.tabnodebuilder.ResumeLayout(false);
+			this.tabnodebuilder.PerformLayout();
+			this.tabtesting.ResumeLayout(false);
+			this.tabtesting.PerformLayout();
+			this.tabtextures.ResumeLayout(false);
+			this.tabmodes.ResumeLayout(false);
+			this.tabmodes.PerformLayout();
+			this.ResumeLayout(false);
 
 		}
 
@@ -735,5 +782,9 @@ namespace CodeImp.DoomBuilder.Windows
 		private System.Windows.Forms.CheckBox shortpaths;
 		private System.Windows.Forms.ComboBox startmode;
 		private System.Windows.Forms.Label label11;
+        private System.Windows.Forms.Button btnRemoveEngine;
+        private System.Windows.Forms.Button btnNewEngine;
+        private System.Windows.Forms.ComboBox cbEngineSelector;
+		private System.Windows.Forms.Label label13;
 	}
 }
\ No newline at end of file
diff --git a/Source/Core/Windows/ConfigForm.cs b/Source/Core/Windows/ConfigForm.cs
index 69d01862f..508d7bea8 100644
--- a/Source/Core/Windows/ConfigForm.cs
+++ b/Source/Core/Windows/ConfigForm.cs
@@ -30,6 +30,7 @@ using CodeImp.DoomBuilder.Config;
 using System.IO;
 using CodeImp.DoomBuilder.Controls;
 using CodeImp.DoomBuilder.Editing;
+using CodeImp.DoomBuilder.GZBuilder.Data;
 
 #endregion
 
@@ -112,6 +113,10 @@ namespace CodeImp.DoomBuilder.Windows
 				tabs.Enabled = true;
 
 				preventchanges = true;
+
+				//mxd. Store current engine name
+				if(configinfo != null && !String.IsNullOrEmpty(cbEngineSelector.Text) && cbEngineSelector.Text != configinfo.TestProgramName)
+					configinfo.TestProgramName = cbEngineSelector.Text;
 				
 				// Get config info of selected item
 				configinfo = listconfigs.SelectedItems[0].Tag as ConfigurationInfo;
@@ -160,9 +165,17 @@ namespace CodeImp.DoomBuilder.Windows
 				// Fill skills list
 				skill.ClearInfo();
 				skill.AddInfo(gameconfig.Skills.ToArray());
+
+                //mxd
+                cbEngineSelector.Items.Clear();
+				foreach(EngineInfo info in configinfo.TestEngines)
+					cbEngineSelector.Items.Add(info.TestProgramName);
+
+                cbEngineSelector.SelectedIndex = configinfo.CurrentEngineIndex;
+				btnRemoveEngine.Enabled = configinfo.TestEngines.Count > 1;
 				
 				// Set test application and parameters
-				if(!configinfo.CustomParameters)
+				/*if(!configinfo.CustomParameters)
 				{
 					configinfo.TestParameters = gameconfig.TestParameters;
 					configinfo.TestShortPaths = gameconfig.TestShortPaths;
@@ -173,7 +186,7 @@ namespace CodeImp.DoomBuilder.Windows
 				int skilllevel = configinfo.TestSkill;
 				skill.Value = skilllevel - 1;
 				skill.Value = skilllevel;
-				customparameters.Checked = configinfo.CustomParameters;
+				customparameters.Checked = configinfo.CustomParameters;*/
 				
 				// Fill texture sets list
 				listtextures.Items.Clear();
@@ -263,6 +276,14 @@ namespace CodeImp.DoomBuilder.Windows
 			if(nodebuildertest.SelectedItem != null)
 				configinfo.NodebuilderTest = (nodebuildertest.SelectedItem as NodebuilderInfo).Name;
 		}
+
+        //mxd. Engine name changed
+        /*private void tbEngineName_TextChanged(object sender, EventArgs e) {
+            if (configinfo == null) return;
+
+            configinfo.TestProgramName = tbEngineName.Text;
+            cbEngineSelector.SelectedItem = configinfo.TestEngines[configinfo.CurrentEngineIndex];
+        }*/
 		
 		// Test application changed
 		private void testapplication_TextChanged(object sender, EventArgs e)
@@ -271,7 +292,11 @@ namespace CodeImp.DoomBuilder.Windows
 			if(configinfo == null) return;
 
 			// Apply to selected configuration
-			configinfo.TestProgram = testapplication.Text;
+            configinfo.TestProgram = testapplication.Text;
+            
+            //mxd. Update engine name if needed
+            configinfo.TestEngines[configinfo.CurrentEngineIndex].CheckProgramName(false);
+            cbEngineSelector.Text = configinfo.TestProgramName;
 		}
 
 		// Test parameters changed
@@ -282,7 +307,7 @@ namespace CodeImp.DoomBuilder.Windows
 
 			// Apply to selected configuration
 			configinfo = listconfigs.SelectedItems[0].Tag as ConfigurationInfo;
-			configinfo.TestParameters = testparameters.Text;
+            configinfo.TestParameters = testparameters.Text;
 
 			// Show example result
 			CreateParametersExample();
@@ -346,6 +371,10 @@ namespace CodeImp.DoomBuilder.Windows
 			{
 				// Apply
 				testapplication.Text = testprogramdialog.FileName;
+
+                //mxd. Update engine name
+                configinfo.TestEngines[configinfo.CurrentEngineIndex].CheckProgramName(true);
+				cbEngineSelector.Text = configinfo.TestProgramName;
 			}
 		}
 
@@ -592,5 +621,78 @@ namespace CodeImp.DoomBuilder.Windows
 				configinfo.StartMode = emi.Type.Name;
 			}
 		}
+
+        //mxd
+        private void btnNewEngine_Click(object sender, EventArgs e) {
+            EngineInfo newInfo = new EngineInfo();
+            newInfo.TestSkill = (int)Math.Ceiling(gameconfig.Skills.Count / 2f); //set Medium skill level
+            configinfo.TestEngines.Add(newInfo);
+            
+            //store current engine name
+			if(!String.IsNullOrEmpty(cbEngineSelector.Text))
+				configinfo.TestProgramName = cbEngineSelector.Text;
+
+			//refresh engines list
+            cbEngineSelector.Items.Clear();
+			foreach(EngineInfo info in configinfo.TestEngines)
+				cbEngineSelector.Items.Add(info.TestProgramName);
+
+            cbEngineSelector.SelectedIndex = configinfo.TestEngines.Count - 1;
+            
+            btnRemoveEngine.Enabled = true;
+        }
+
+        //mxd
+        private void btnRemoveEngine_Click(object sender, EventArgs e) {
+            //remove params
+            int index = cbEngineSelector.SelectedIndex;
+            configinfo.TestEngines.RemoveAt(index);
+            
+            //refresh engines list
+            cbEngineSelector.Items.Clear();
+			foreach(EngineInfo info in configinfo.TestEngines)
+				cbEngineSelector.Items.Add(info.TestProgramName);
+            
+			if (index >= configinfo.TestEngines.Count)
+                index = configinfo.TestEngines.Count - 1;
+
+            cbEngineSelector.SelectedIndex = index;
+
+            if (configinfo.TestEngines.Count < 2)
+                btnRemoveEngine.Enabled = false;
+        }
+
+        //mxd
+        private void cbEngineSelector_SelectedIndexChanged(object sender, EventArgs e) {
+            //set new values
+            configinfo.CurrentEngineIndex = cbEngineSelector.SelectedIndex;
+			cbEngineSelector.Tag = cbEngineSelector.SelectedIndex; //store for later use
+
+            // Set test application and parameters
+            if (!configinfo.CustomParameters)
+            {
+                configinfo.TestParameters = gameconfig.TestParameters;
+                configinfo.TestShortPaths = gameconfig.TestShortPaths;
+            }
+
+			configinfo.TestProgramName = cbEngineSelector.Text;
+            testapplication.Text = configinfo.TestProgram;
+            testparameters.Text = configinfo.TestParameters;
+            shortpaths.Checked = configinfo.TestShortPaths;
+            int skilllevel = configinfo.TestSkill;
+            skill.Value = skilllevel - 1; //mxd. WHY???
+            skill.Value = skilllevel;
+            customparameters.Checked = configinfo.CustomParameters;
+        }
+
+		//mxd
+		private void cbEngineSelector_DropDown(object sender, EventArgs e) {
+			int index = (int)cbEngineSelector.Tag;
+
+			if(index != -1 && cbEngineSelector.Text != cbEngineSelector.Items[index].ToString()) {
+				cbEngineSelector.Items[index] = cbEngineSelector.Text;
+				configinfo.TestProgramName = cbEngineSelector.Text;
+			}
+		}
 	}
 }
diff --git a/Source/Core/Windows/ConfigForm.resx b/Source/Core/Windows/ConfigForm.resx
index 5c2b75d31..87305b8d2 100644
--- a/Source/Core/Windows/ConfigForm.resx
+++ b/Source/Core/Windows/ConfigForm.resx
@@ -150,21 +150,12 @@
   <metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="label9.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label9.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="label1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="label8.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label8.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
@@ -183,9 +174,6 @@
   <data name="label10.Text" xml:space="preserve">
     <value>Here you can select the editing modes that you wish to use in this configuration. This is useful in case there are plugins with additional editing modes that can be used as a replacement for the original editing modes.</value>
   </data>
-  <metadata name="labelparameters.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="cancel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
@@ -213,33 +201,6 @@
   <metadata name="tabtesting.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="shortpaths.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="customparameters.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="skill.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="browsetestprogram.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="noresultlabel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="testresult.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="labelresult.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="testparameters.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="testapplication.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="tabtextures.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
@@ -254,7 +215,7 @@
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA4
-        CAAAAk1TRnQBSQFMAwEBAAEMAQABDAEAARMBAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
+        CAAAAk1TRnQBSQFMAwEBAAFEAQABRAEAARMBAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
         AUwDAAEQAwABAQEAAQgFAAHAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
         AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
         AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
diff --git a/Source/Core/Windows/MainForm.Designer.cs b/Source/Core/Windows/MainForm.Designer.cs
index 9a10a3ecb..adfd14e90 100644
--- a/Source/Core/Windows/MainForm.Designer.cs
+++ b/Source/Core/Windows/MainForm.Designer.cs
@@ -28,287 +28,287 @@ namespace CodeImp.DoomBuilder.Windows
 		/// </summary>
 		private void InitializeComponent()
 		{
-			this.components = new System.ComponentModel.Container();
-			System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
-			System.Windows.Forms.ToolStripSeparator toolStripSeparator9;
-			System.Windows.Forms.ToolStripSeparator toolStripSeparator12;
-			System.Windows.Forms.ToolStripSeparator toolStripMenuItem4;
-			System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
-			System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
-			System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
-			this.seperatorfileopen = new System.Windows.Forms.ToolStripSeparator();
-			this.seperatorfilerecent = new System.Windows.Forms.ToolStripSeparator();
-			this.seperatoreditgrid = new System.Windows.Forms.ToolStripSeparator();
-			this.seperatoreditcopypaste = new System.Windows.Forms.ToolStripSeparator();
-			this.seperatorfile = new System.Windows.Forms.ToolStripSeparator();
-			this.seperatorscript = new System.Windows.Forms.ToolStripSeparator();
-			this.seperatorprefabs = new System.Windows.Forms.ToolStripSeparator();
-			this.seperatorundo = new System.Windows.Forms.ToolStripSeparator();
-			this.seperatorcopypaste = new System.Windows.Forms.ToolStripSeparator();
-			this.seperatormodes = new System.Windows.Forms.ToolStripSeparator();
-			this.poscommalabel = new System.Windows.Forms.ToolStripStatusLabel();
-			this.menumain = new System.Windows.Forms.MenuStrip();
-			this.menufile = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemnewmap = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemopenmap = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemclosemap = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemsavemap = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemsavemapas = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemsavemapinto = new System.Windows.Forms.ToolStripMenuItem();
-			this.seperatorfilesave = new System.Windows.Forms.ToolStripSeparator();
-			this.itemnorecent = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemexit = new System.Windows.Forms.ToolStripMenuItem();
-			this.menuedit = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemundo = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemredo = new System.Windows.Forms.ToolStripMenuItem();
-			this.seperatoreditundo = new System.Windows.Forms.ToolStripSeparator();
-			this.itemcut = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemcopy = new System.Windows.Forms.ToolStripMenuItem();
-			this.itempaste = new System.Windows.Forms.ToolStripMenuItem();
-			this.itempastespecial = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemsnaptogrid = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemautomerge = new System.Windows.Forms.ToolStripMenuItem();
-			this.seperatoreditgeometry = new System.Windows.Forms.ToolStripSeparator();
-			this.itemgridinc = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemgriddec = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemgridsetup = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemmapoptions = new System.Windows.Forms.ToolStripMenuItem();
-			this.menuview = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemthingsfilter = new System.Windows.Forms.ToolStripMenuItem();
-			this.seperatorviewthings = new System.Windows.Forms.ToolStripSeparator();
-			this.itemviewnormal = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemviewbrightness = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemviewfloors = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemviewceilings = new System.Windows.Forms.ToolStripMenuItem();
-			this.seperatorviewviews = new System.Windows.Forms.ToolStripSeparator();
-			this.menuzoom = new System.Windows.Forms.ToolStripMenuItem();
-			this.item2zoom200 = new System.Windows.Forms.ToolStripMenuItem();
-			this.item2zoom100 = new System.Windows.Forms.ToolStripMenuItem();
-			this.item2zoom50 = new System.Windows.Forms.ToolStripMenuItem();
-			this.item2zoom25 = new System.Windows.Forms.ToolStripMenuItem();
-			this.item2zoom10 = new System.Windows.Forms.ToolStripMenuItem();
-			this.item2zoom5 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemfittoscreen = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemtoggleinfo = new System.Windows.Forms.ToolStripMenuItem();
-			this.seperatorviewzoom = new System.Windows.Forms.ToolStripSeparator();
-			this.itemscripteditor = new System.Windows.Forms.ToolStripMenuItem();
-			this.menumode = new System.Windows.Forms.ToolStripMenuItem();
-			this.separatorDrawModes = new System.Windows.Forms.ToolStripSeparator();
-			this.menuprefabs = new System.Windows.Forms.ToolStripMenuItem();
-			this.iteminsertprefabfile = new System.Windows.Forms.ToolStripMenuItem();
-			this.iteminsertpreviousprefab = new System.Windows.Forms.ToolStripMenuItem();
-			this.seperatorprefabsinsert = new System.Windows.Forms.ToolStripSeparator();
-			this.itemcreateprefab = new System.Windows.Forms.ToolStripMenuItem();
-			this.menutools = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemreloadresources = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemReloadModedef = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemReloadGldefs = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemReloadMapinfo = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemshowerrors = new System.Windows.Forms.ToolStripMenuItem();
-			this.seperatortoolsresources = new System.Windows.Forms.ToolStripSeparator();
-			this.configurationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-			this.preferencesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-			this.seperatortoolsconfig = new System.Windows.Forms.ToolStripSeparator();
-			this.itemtestmap = new System.Windows.Forms.ToolStripMenuItem();
-			this.menuhelp = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemhelprefmanual = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemhelpeditmode = new System.Windows.Forms.ToolStripMenuItem();
-			this.seperatorhelpmanual = new System.Windows.Forms.ToolStripSeparator();
-			this.itemhelpabout = new System.Windows.Forms.ToolStripMenuItem();
-			this.toolbar = new System.Windows.Forms.ToolStrip();
-			this.buttonnewmap = new System.Windows.Forms.ToolStripButton();
-			this.buttonopenmap = new System.Windows.Forms.ToolStripButton();
-			this.buttonsavemap = new System.Windows.Forms.ToolStripButton();
-			this.buttonscripteditor = new System.Windows.Forms.ToolStripButton();
-			this.buttonundo = new System.Windows.Forms.ToolStripButton();
-			this.buttonredo = new System.Windows.Forms.ToolStripButton();
-			this.buttoncut = new System.Windows.Forms.ToolStripButton();
-			this.buttoncopy = new System.Windows.Forms.ToolStripButton();
-			this.buttonpaste = new System.Windows.Forms.ToolStripButton();
-			this.buttoninsertprefabfile = new System.Windows.Forms.ToolStripButton();
-			this.buttoninsertpreviousprefab = new System.Windows.Forms.ToolStripButton();
-			this.buttonthingsfilter = new System.Windows.Forms.ToolStripButton();
-			this.thingfilters = new System.Windows.Forms.ToolStripComboBox();
-			this.buttonviewnormal = new System.Windows.Forms.ToolStripButton();
-			this.buttonviewbrightness = new System.Windows.Forms.ToolStripButton();
-			this.buttonviewfloors = new System.Windows.Forms.ToolStripButton();
-			this.buttonviewceilings = new System.Windows.Forms.ToolStripButton();
-			this.seperatorviews = new System.Windows.Forms.ToolStripSeparator();
-			this.buttonsnaptogrid = new System.Windows.Forms.ToolStripButton();
-			this.buttonautomerge = new System.Windows.Forms.ToolStripButton();
-			this.separatorgzmodes = new System.Windows.Forms.ToolStripSeparator();
-			this.buttontogglefx = new System.Windows.Forms.ToolStripButton();
-			this.buttontoggledynlight = new System.Windows.Forms.ToolStripButton();
-			this.buttontoggleanimatedlight = new System.Windows.Forms.ToolStripButton();
-			this.buttontogglemodels = new System.Windows.Forms.ToolStripButton();
-			this.buttonselectedmodelsonly = new System.Windows.Forms.ToolStripButton();
-			this.buttontogglefog = new System.Windows.Forms.ToolStripButton();
-			this.buttontoggleeventlines = new System.Windows.Forms.ToolStripButton();
-			this.seperatorgeometry = new System.Windows.Forms.ToolStripSeparator();
-			this.buttontest = new System.Windows.Forms.ToolStripSplitButton();
-			this.seperatortesting = new System.Windows.Forms.ToolStripSeparator();
-			this.statusbar = new System.Windows.Forms.StatusStrip();
-			this.statuslabel = new System.Windows.Forms.ToolStripStatusLabel();
-			this.configlabel = new System.Windows.Forms.ToolStripStatusLabel();
-			this.gridlabel = new System.Windows.Forms.ToolStripStatusLabel();
-			this.buttongrid = new System.Windows.Forms.ToolStripDropDownButton();
-			this.itemgrid1024 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemgrid512 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemgrid256 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemgrid128 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemgrid64 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemgrid32 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemgrid16 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemgrid8 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemgrid4 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemgridcustom = new System.Windows.Forms.ToolStripMenuItem();
-			this.zoomlabel = new System.Windows.Forms.ToolStripStatusLabel();
-			this.buttonzoom = new System.Windows.Forms.ToolStripDropDownButton();
-			this.itemzoom200 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemzoom100 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemzoom50 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemzoom25 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemzoom10 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemzoom5 = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemzoomfittoscreen = new System.Windows.Forms.ToolStripMenuItem();
-			this.xposlabel = new System.Windows.Forms.ToolStripStatusLabel();
-			this.yposlabel = new System.Windows.Forms.ToolStripStatusLabel();
-			this.warnsLabel = new System.Windows.Forms.ToolStripStatusLabel();
-			this.panelinfo = new System.Windows.Forms.Panel();
-			this.heightpanel1 = new System.Windows.Forms.Panel();
-			this.vertexinfo = new CodeImp.DoomBuilder.Controls.VertexInfoPanel();
-			this.labelcollapsedinfo = new System.Windows.Forms.Label();
-			this.buttontoggleinfo = new System.Windows.Forms.Button();
-			this.modename = new System.Windows.Forms.Label();
-			this.linedefinfo = new CodeImp.DoomBuilder.Controls.LinedefInfoPanel();
-			this.thinginfo = new CodeImp.DoomBuilder.Controls.ThingInfoPanel();
-			this.sectorinfo = new CodeImp.DoomBuilder.Controls.SectorInfoPanel();
-			this.redrawtimer = new System.Windows.Forms.Timer(this.components);
-			this.display = new CodeImp.DoomBuilder.Controls.RenderTargetControl();
-			this.processor = new System.Windows.Forms.Timer(this.components);
-			this.statusflasher = new System.Windows.Forms.Timer(this.components);
-			this.statusresetter = new System.Windows.Forms.Timer(this.components);
-			this.dockersspace = new System.Windows.Forms.Panel();
-			this.dockerspanel = new CodeImp.DoomBuilder.Controls.DockersControl();
-			this.dockerscollapser = new System.Windows.Forms.Timer(this.components);
-			this.warnsTimer = new System.Windows.Forms.Timer(this.components);
-			toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
-			toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
-			toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
-			toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator();
-			toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
-			toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
-			this.menumain.SuspendLayout();
-			this.toolbar.SuspendLayout();
-			this.statusbar.SuspendLayout();
-			this.panelinfo.SuspendLayout();
-			this.SuspendLayout();
-			// 
-			// toolStripSeparator1
-			// 
-			toolStripSeparator1.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
-			toolStripSeparator1.Name = "toolStripSeparator1";
-			toolStripSeparator1.Size = new System.Drawing.Size(6, 23);
-			// 
-			// toolStripSeparator9
-			// 
-			toolStripSeparator9.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
-			toolStripSeparator9.Name = "toolStripSeparator9";
-			toolStripSeparator9.Size = new System.Drawing.Size(6, 23);
-			// 
-			// toolStripSeparator12
-			// 
-			toolStripSeparator12.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
-			toolStripSeparator12.Name = "toolStripSeparator12";
-			toolStripSeparator12.Size = new System.Drawing.Size(6, 23);
-			// 
-			// toolStripMenuItem4
-			// 
-			toolStripMenuItem4.Name = "toolStripMenuItem4";
-			toolStripMenuItem4.Size = new System.Drawing.Size(150, 6);
-			// 
-			// toolStripSeparator2
-			// 
-			toolStripSeparator2.Name = "toolStripSeparator2";
-			toolStripSeparator2.Size = new System.Drawing.Size(153, 6);
-			// 
-			// toolStripSeparator3
-			// 
-			toolStripSeparator3.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
-			toolStripSeparator3.Name = "toolStripSeparator3";
-			toolStripSeparator3.Size = new System.Drawing.Size(6, 23);
-			// 
-			// seperatorfileopen
-			// 
-			this.seperatorfileopen.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatorfileopen.Name = "seperatorfileopen";
-			this.seperatorfileopen.Size = new System.Drawing.Size(199, 6);
-			// 
-			// seperatorfilerecent
-			// 
-			this.seperatorfilerecent.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatorfilerecent.Name = "seperatorfilerecent";
-			this.seperatorfilerecent.Size = new System.Drawing.Size(199, 6);
-			// 
-			// seperatoreditgrid
-			// 
-			this.seperatoreditgrid.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatoreditgrid.Name = "seperatoreditgrid";
-			this.seperatoreditgrid.Size = new System.Drawing.Size(160, 6);
-			// 
-			// seperatoreditcopypaste
-			// 
-			this.seperatoreditcopypaste.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatoreditcopypaste.Name = "seperatoreditcopypaste";
-			this.seperatoreditcopypaste.Size = new System.Drawing.Size(160, 6);
-			// 
-			// seperatorfile
-			// 
-			this.seperatorfile.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
-			this.seperatorfile.Name = "seperatorfile";
-			this.seperatorfile.Size = new System.Drawing.Size(6, 25);
-			// 
-			// seperatorscript
-			// 
-			this.seperatorscript.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
-			this.seperatorscript.Name = "seperatorscript";
-			this.seperatorscript.Size = new System.Drawing.Size(6, 25);
-			// 
-			// seperatorprefabs
-			// 
-			this.seperatorprefabs.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
-			this.seperatorprefabs.Name = "seperatorprefabs";
-			this.seperatorprefabs.Size = new System.Drawing.Size(6, 25);
-			// 
-			// seperatorundo
-			// 
-			this.seperatorundo.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
-			this.seperatorundo.Name = "seperatorundo";
-			this.seperatorundo.Size = new System.Drawing.Size(6, 25);
-			// 
-			// seperatorcopypaste
-			// 
-			this.seperatorcopypaste.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
-			this.seperatorcopypaste.Name = "seperatorcopypaste";
-			this.seperatorcopypaste.Size = new System.Drawing.Size(6, 25);
-			// 
-			// seperatormodes
-			// 
-			this.seperatormodes.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
-			this.seperatormodes.Name = "seperatormodes";
-			this.seperatormodes.Size = new System.Drawing.Size(6, 25);
-			this.seperatormodes.Visible = false;
-			// 
-			// poscommalabel
-			// 
-			this.poscommalabel.Name = "poscommalabel";
-			this.poscommalabel.Size = new System.Drawing.Size(11, 18);
-			this.poscommalabel.Text = ",";
-			this.poscommalabel.ToolTipText = "Current X, Y coordinates on map";
-			// 
-			// menumain
-			// 
-			this.menumain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.components = new System.ComponentModel.Container();
+            System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
+            System.Windows.Forms.ToolStripSeparator toolStripSeparator9;
+            System.Windows.Forms.ToolStripSeparator toolStripSeparator12;
+            System.Windows.Forms.ToolStripSeparator toolStripMenuItem4;
+            System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
+            System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
+            this.seperatorfileopen = new System.Windows.Forms.ToolStripSeparator();
+            this.seperatorfilerecent = new System.Windows.Forms.ToolStripSeparator();
+            this.seperatoreditgrid = new System.Windows.Forms.ToolStripSeparator();
+            this.seperatoreditcopypaste = new System.Windows.Forms.ToolStripSeparator();
+            this.seperatorfile = new System.Windows.Forms.ToolStripSeparator();
+            this.seperatorscript = new System.Windows.Forms.ToolStripSeparator();
+            this.seperatorprefabs = new System.Windows.Forms.ToolStripSeparator();
+            this.seperatorundo = new System.Windows.Forms.ToolStripSeparator();
+            this.seperatorcopypaste = new System.Windows.Forms.ToolStripSeparator();
+            this.seperatormodes = new System.Windows.Forms.ToolStripSeparator();
+            this.poscommalabel = new System.Windows.Forms.ToolStripStatusLabel();
+            this.menumain = new System.Windows.Forms.MenuStrip();
+            this.menufile = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemnewmap = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemopenmap = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemclosemap = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemsavemap = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemsavemapas = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemsavemapinto = new System.Windows.Forms.ToolStripMenuItem();
+            this.seperatorfilesave = new System.Windows.Forms.ToolStripSeparator();
+            this.itemnorecent = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemexit = new System.Windows.Forms.ToolStripMenuItem();
+            this.menuedit = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemundo = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemredo = new System.Windows.Forms.ToolStripMenuItem();
+            this.seperatoreditundo = new System.Windows.Forms.ToolStripSeparator();
+            this.itemcut = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemcopy = new System.Windows.Forms.ToolStripMenuItem();
+            this.itempaste = new System.Windows.Forms.ToolStripMenuItem();
+            this.itempastespecial = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemsnaptogrid = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemautomerge = new System.Windows.Forms.ToolStripMenuItem();
+            this.seperatoreditgeometry = new System.Windows.Forms.ToolStripSeparator();
+            this.itemgridinc = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemgriddec = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemgridsetup = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemmapoptions = new System.Windows.Forms.ToolStripMenuItem();
+            this.menuview = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemthingsfilter = new System.Windows.Forms.ToolStripMenuItem();
+            this.seperatorviewthings = new System.Windows.Forms.ToolStripSeparator();
+            this.itemviewnormal = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemviewbrightness = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemviewfloors = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemviewceilings = new System.Windows.Forms.ToolStripMenuItem();
+            this.seperatorviewviews = new System.Windows.Forms.ToolStripSeparator();
+            this.menuzoom = new System.Windows.Forms.ToolStripMenuItem();
+            this.item2zoom200 = new System.Windows.Forms.ToolStripMenuItem();
+            this.item2zoom100 = new System.Windows.Forms.ToolStripMenuItem();
+            this.item2zoom50 = new System.Windows.Forms.ToolStripMenuItem();
+            this.item2zoom25 = new System.Windows.Forms.ToolStripMenuItem();
+            this.item2zoom10 = new System.Windows.Forms.ToolStripMenuItem();
+            this.item2zoom5 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemfittoscreen = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemtoggleinfo = new System.Windows.Forms.ToolStripMenuItem();
+            this.seperatorviewzoom = new System.Windows.Forms.ToolStripSeparator();
+            this.itemscripteditor = new System.Windows.Forms.ToolStripMenuItem();
+            this.menumode = new System.Windows.Forms.ToolStripMenuItem();
+            this.separatorDrawModes = new System.Windows.Forms.ToolStripSeparator();
+            this.menuprefabs = new System.Windows.Forms.ToolStripMenuItem();
+            this.iteminsertprefabfile = new System.Windows.Forms.ToolStripMenuItem();
+            this.iteminsertpreviousprefab = new System.Windows.Forms.ToolStripMenuItem();
+            this.seperatorprefabsinsert = new System.Windows.Forms.ToolStripSeparator();
+            this.itemcreateprefab = new System.Windows.Forms.ToolStripMenuItem();
+            this.menutools = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemreloadresources = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemReloadModedef = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemReloadGldefs = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemReloadMapinfo = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemshowerrors = new System.Windows.Forms.ToolStripMenuItem();
+            this.seperatortoolsresources = new System.Windows.Forms.ToolStripSeparator();
+            this.configurationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.preferencesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.seperatortoolsconfig = new System.Windows.Forms.ToolStripSeparator();
+            this.itemtestmap = new System.Windows.Forms.ToolStripMenuItem();
+            this.menuhelp = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemhelprefmanual = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemhelpeditmode = new System.Windows.Forms.ToolStripMenuItem();
+            this.seperatorhelpmanual = new System.Windows.Forms.ToolStripSeparator();
+            this.itemhelpabout = new System.Windows.Forms.ToolStripMenuItem();
+            this.toolbar = new System.Windows.Forms.ToolStrip();
+            this.buttonnewmap = new System.Windows.Forms.ToolStripButton();
+            this.buttonopenmap = new System.Windows.Forms.ToolStripButton();
+            this.buttonsavemap = new System.Windows.Forms.ToolStripButton();
+            this.buttonscripteditor = new System.Windows.Forms.ToolStripButton();
+            this.buttonundo = new System.Windows.Forms.ToolStripButton();
+            this.buttonredo = new System.Windows.Forms.ToolStripButton();
+            this.buttoncut = new System.Windows.Forms.ToolStripButton();
+            this.buttoncopy = new System.Windows.Forms.ToolStripButton();
+            this.buttonpaste = new System.Windows.Forms.ToolStripButton();
+            this.buttoninsertprefabfile = new System.Windows.Forms.ToolStripButton();
+            this.buttoninsertpreviousprefab = new System.Windows.Forms.ToolStripButton();
+            this.buttonthingsfilter = new System.Windows.Forms.ToolStripButton();
+            this.thingfilters = new System.Windows.Forms.ToolStripComboBox();
+            this.buttonviewnormal = new System.Windows.Forms.ToolStripButton();
+            this.buttonviewbrightness = new System.Windows.Forms.ToolStripButton();
+            this.buttonviewfloors = new System.Windows.Forms.ToolStripButton();
+            this.buttonviewceilings = new System.Windows.Forms.ToolStripButton();
+            this.seperatorviews = new System.Windows.Forms.ToolStripSeparator();
+            this.buttonsnaptogrid = new System.Windows.Forms.ToolStripButton();
+            this.buttonautomerge = new System.Windows.Forms.ToolStripButton();
+            this.separatorgzmodes = new System.Windows.Forms.ToolStripSeparator();
+            this.buttontogglefx = new System.Windows.Forms.ToolStripButton();
+            this.buttontoggledynlight = new System.Windows.Forms.ToolStripButton();
+            this.buttontoggleanimatedlight = new System.Windows.Forms.ToolStripButton();
+            this.buttontogglemodels = new System.Windows.Forms.ToolStripButton();
+            this.buttonselectedmodelsonly = new System.Windows.Forms.ToolStripButton();
+            this.buttontogglefog = new System.Windows.Forms.ToolStripButton();
+            this.buttontoggleeventlines = new System.Windows.Forms.ToolStripButton();
+            this.seperatorgeometry = new System.Windows.Forms.ToolStripSeparator();
+            this.buttontest = new System.Windows.Forms.ToolStripSplitButton();
+            this.seperatortesting = new System.Windows.Forms.ToolStripSeparator();
+            this.statusbar = new System.Windows.Forms.StatusStrip();
+            this.statuslabel = new System.Windows.Forms.ToolStripStatusLabel();
+            this.configlabel = new System.Windows.Forms.ToolStripStatusLabel();
+            this.gridlabel = new System.Windows.Forms.ToolStripStatusLabel();
+            this.buttongrid = new System.Windows.Forms.ToolStripDropDownButton();
+            this.itemgrid1024 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemgrid512 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemgrid256 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemgrid128 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemgrid64 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemgrid32 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemgrid16 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemgrid8 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemgrid4 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemgridcustom = new System.Windows.Forms.ToolStripMenuItem();
+            this.zoomlabel = new System.Windows.Forms.ToolStripStatusLabel();
+            this.buttonzoom = new System.Windows.Forms.ToolStripDropDownButton();
+            this.itemzoom200 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemzoom100 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemzoom50 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemzoom25 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemzoom10 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemzoom5 = new System.Windows.Forms.ToolStripMenuItem();
+            this.itemzoomfittoscreen = new System.Windows.Forms.ToolStripMenuItem();
+            this.xposlabel = new System.Windows.Forms.ToolStripStatusLabel();
+            this.yposlabel = new System.Windows.Forms.ToolStripStatusLabel();
+            this.warnsLabel = new System.Windows.Forms.ToolStripStatusLabel();
+            this.panelinfo = new System.Windows.Forms.Panel();
+            this.heightpanel1 = new System.Windows.Forms.Panel();
+            this.vertexinfo = new CodeImp.DoomBuilder.Controls.VertexInfoPanel();
+            this.labelcollapsedinfo = new System.Windows.Forms.Label();
+            this.buttontoggleinfo = new System.Windows.Forms.Button();
+            this.modename = new System.Windows.Forms.Label();
+            this.linedefinfo = new CodeImp.DoomBuilder.Controls.LinedefInfoPanel();
+            this.thinginfo = new CodeImp.DoomBuilder.Controls.ThingInfoPanel();
+            this.sectorinfo = new CodeImp.DoomBuilder.Controls.SectorInfoPanel();
+            this.redrawtimer = new System.Windows.Forms.Timer(this.components);
+            this.display = new CodeImp.DoomBuilder.Controls.RenderTargetControl();
+            this.processor = new System.Windows.Forms.Timer(this.components);
+            this.statusflasher = new System.Windows.Forms.Timer(this.components);
+            this.statusresetter = new System.Windows.Forms.Timer(this.components);
+            this.dockersspace = new System.Windows.Forms.Panel();
+            this.dockerspanel = new CodeImp.DoomBuilder.Controls.DockersControl();
+            this.dockerscollapser = new System.Windows.Forms.Timer(this.components);
+            this.warnsTimer = new System.Windows.Forms.Timer(this.components);
+            toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+            toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
+            toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
+            toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator();
+            toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
+            toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
+            this.menumain.SuspendLayout();
+            this.toolbar.SuspendLayout();
+            this.statusbar.SuspendLayout();
+            this.panelinfo.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // toolStripSeparator1
+            // 
+            toolStripSeparator1.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
+            toolStripSeparator1.Name = "toolStripSeparator1";
+            toolStripSeparator1.Size = new System.Drawing.Size(6, 23);
+            // 
+            // toolStripSeparator9
+            // 
+            toolStripSeparator9.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
+            toolStripSeparator9.Name = "toolStripSeparator9";
+            toolStripSeparator9.Size = new System.Drawing.Size(6, 23);
+            // 
+            // toolStripSeparator12
+            // 
+            toolStripSeparator12.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
+            toolStripSeparator12.Name = "toolStripSeparator12";
+            toolStripSeparator12.Size = new System.Drawing.Size(6, 23);
+            // 
+            // toolStripMenuItem4
+            // 
+            toolStripMenuItem4.Name = "toolStripMenuItem4";
+            toolStripMenuItem4.Size = new System.Drawing.Size(150, 6);
+            // 
+            // toolStripSeparator2
+            // 
+            toolStripSeparator2.Name = "toolStripSeparator2";
+            toolStripSeparator2.Size = new System.Drawing.Size(153, 6);
+            // 
+            // toolStripSeparator3
+            // 
+            toolStripSeparator3.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
+            toolStripSeparator3.Name = "toolStripSeparator3";
+            toolStripSeparator3.Size = new System.Drawing.Size(6, 23);
+            // 
+            // seperatorfileopen
+            // 
+            this.seperatorfileopen.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatorfileopen.Name = "seperatorfileopen";
+            this.seperatorfileopen.Size = new System.Drawing.Size(199, 6);
+            // 
+            // seperatorfilerecent
+            // 
+            this.seperatorfilerecent.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatorfilerecent.Name = "seperatorfilerecent";
+            this.seperatorfilerecent.Size = new System.Drawing.Size(199, 6);
+            // 
+            // seperatoreditgrid
+            // 
+            this.seperatoreditgrid.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatoreditgrid.Name = "seperatoreditgrid";
+            this.seperatoreditgrid.Size = new System.Drawing.Size(160, 6);
+            // 
+            // seperatoreditcopypaste
+            // 
+            this.seperatoreditcopypaste.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatoreditcopypaste.Name = "seperatoreditcopypaste";
+            this.seperatoreditcopypaste.Size = new System.Drawing.Size(160, 6);
+            // 
+            // seperatorfile
+            // 
+            this.seperatorfile.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.seperatorfile.Name = "seperatorfile";
+            this.seperatorfile.Size = new System.Drawing.Size(6, 25);
+            // 
+            // seperatorscript
+            // 
+            this.seperatorscript.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.seperatorscript.Name = "seperatorscript";
+            this.seperatorscript.Size = new System.Drawing.Size(6, 25);
+            // 
+            // seperatorprefabs
+            // 
+            this.seperatorprefabs.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.seperatorprefabs.Name = "seperatorprefabs";
+            this.seperatorprefabs.Size = new System.Drawing.Size(6, 25);
+            // 
+            // seperatorundo
+            // 
+            this.seperatorundo.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.seperatorundo.Name = "seperatorundo";
+            this.seperatorundo.Size = new System.Drawing.Size(6, 25);
+            // 
+            // seperatorcopypaste
+            // 
+            this.seperatorcopypaste.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.seperatorcopypaste.Name = "seperatorcopypaste";
+            this.seperatorcopypaste.Size = new System.Drawing.Size(6, 25);
+            // 
+            // seperatormodes
+            // 
+            this.seperatormodes.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.seperatormodes.Name = "seperatormodes";
+            this.seperatormodes.Size = new System.Drawing.Size(6, 25);
+            this.seperatormodes.Visible = false;
+            // 
+            // poscommalabel
+            // 
+            this.poscommalabel.Name = "poscommalabel";
+            this.poscommalabel.Size = new System.Drawing.Size(11, 18);
+            this.poscommalabel.Text = ",";
+            this.poscommalabel.ToolTipText = "Current X, Y coordinates on map";
+            // 
+            // menumain
+            // 
+            this.menumain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.menufile,
             this.menuedit,
             this.menuview,
@@ -316,14 +316,14 @@ namespace CodeImp.DoomBuilder.Windows
             this.menuprefabs,
             this.menutools,
             this.menuhelp});
-			this.menumain.Location = new System.Drawing.Point(0, 0);
-			this.menumain.Name = "menumain";
-			this.menumain.Size = new System.Drawing.Size(1012, 24);
-			this.menumain.TabIndex = 0;
-			// 
-			// menufile
-			// 
-			this.menufile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menumain.Location = new System.Drawing.Point(0, 0);
+            this.menumain.Name = "menumain";
+            this.menumain.Size = new System.Drawing.Size(1012, 24);
+            this.menumain.TabIndex = 0;
+            // 
+            // menufile
+            // 
+            this.menufile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.itemnewmap,
             this.itemopenmap,
             this.itemclosemap,
@@ -335,85 +335,85 @@ namespace CodeImp.DoomBuilder.Windows
             this.itemnorecent,
             this.seperatorfilerecent,
             this.itemexit});
-			this.menufile.Name = "menufile";
-			this.menufile.Size = new System.Drawing.Size(37, 20);
-			this.menufile.Text = "&File";
-			// 
-			// itemnewmap
-			// 
-			this.itemnewmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.File;
-			this.itemnewmap.Name = "itemnewmap";
-			this.itemnewmap.ShortcutKeyDisplayString = "";
-			this.itemnewmap.Size = new System.Drawing.Size(202, 22);
-			this.itemnewmap.Tag = "builder_newmap";
-			this.itemnewmap.Text = "&New Map";
-			this.itemnewmap.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemopenmap
-			// 
-			this.itemopenmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.OpenMap;
-			this.itemopenmap.Name = "itemopenmap";
-			this.itemopenmap.Size = new System.Drawing.Size(202, 22);
-			this.itemopenmap.Tag = "builder_openmap";
-			this.itemopenmap.Text = "&Open Map...";
-			this.itemopenmap.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemclosemap
-			// 
-			this.itemclosemap.Name = "itemclosemap";
-			this.itemclosemap.Size = new System.Drawing.Size(202, 22);
-			this.itemclosemap.Tag = "builder_closemap";
-			this.itemclosemap.Text = "&Close Map";
-			this.itemclosemap.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemsavemap
-			// 
-			this.itemsavemap.Image = global::CodeImp.DoomBuilder.Properties.Resources.SaveMap;
-			this.itemsavemap.Name = "itemsavemap";
-			this.itemsavemap.Size = new System.Drawing.Size(202, 22);
-			this.itemsavemap.Tag = "builder_savemap";
-			this.itemsavemap.Text = "&Save Map";
-			this.itemsavemap.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemsavemapas
-			// 
-			this.itemsavemapas.Name = "itemsavemapas";
-			this.itemsavemapas.Size = new System.Drawing.Size(202, 22);
-			this.itemsavemapas.Tag = "builder_savemapas";
-			this.itemsavemapas.Text = "Save Map &As...";
-			this.itemsavemapas.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemsavemapinto
-			// 
-			this.itemsavemapinto.Name = "itemsavemapinto";
-			this.itemsavemapinto.Size = new System.Drawing.Size(202, 22);
-			this.itemsavemapinto.Tag = "builder_savemapinto";
-			this.itemsavemapinto.Text = "Save Map &Into...";
-			this.itemsavemapinto.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// seperatorfilesave
-			// 
-			this.seperatorfilesave.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatorfilesave.Name = "seperatorfilesave";
-			this.seperatorfilesave.Size = new System.Drawing.Size(199, 6);
-			// 
-			// itemnorecent
-			// 
-			this.itemnorecent.Enabled = false;
-			this.itemnorecent.Name = "itemnorecent";
-			this.itemnorecent.Size = new System.Drawing.Size(202, 22);
-			this.itemnorecent.Text = "No recently opened files";
-			// 
-			// itemexit
-			// 
-			this.itemexit.Name = "itemexit";
-			this.itemexit.Size = new System.Drawing.Size(202, 22);
-			this.itemexit.Text = "E&xit";
-			this.itemexit.Click += new System.EventHandler(this.itemexit_Click);
-			// 
-			// menuedit
-			// 
-			this.menuedit.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menufile.Name = "menufile";
+            this.menufile.Size = new System.Drawing.Size(37, 20);
+            this.menufile.Text = "&File";
+            // 
+            // itemnewmap
+            // 
+            this.itemnewmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.File;
+            this.itemnewmap.Name = "itemnewmap";
+            this.itemnewmap.ShortcutKeyDisplayString = "";
+            this.itemnewmap.Size = new System.Drawing.Size(202, 22);
+            this.itemnewmap.Tag = "builder_newmap";
+            this.itemnewmap.Text = "&New Map";
+            this.itemnewmap.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemopenmap
+            // 
+            this.itemopenmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.OpenMap;
+            this.itemopenmap.Name = "itemopenmap";
+            this.itemopenmap.Size = new System.Drawing.Size(202, 22);
+            this.itemopenmap.Tag = "builder_openmap";
+            this.itemopenmap.Text = "&Open Map...";
+            this.itemopenmap.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemclosemap
+            // 
+            this.itemclosemap.Name = "itemclosemap";
+            this.itemclosemap.Size = new System.Drawing.Size(202, 22);
+            this.itemclosemap.Tag = "builder_closemap";
+            this.itemclosemap.Text = "&Close Map";
+            this.itemclosemap.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemsavemap
+            // 
+            this.itemsavemap.Image = global::CodeImp.DoomBuilder.Properties.Resources.SaveMap;
+            this.itemsavemap.Name = "itemsavemap";
+            this.itemsavemap.Size = new System.Drawing.Size(202, 22);
+            this.itemsavemap.Tag = "builder_savemap";
+            this.itemsavemap.Text = "&Save Map";
+            this.itemsavemap.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemsavemapas
+            // 
+            this.itemsavemapas.Name = "itemsavemapas";
+            this.itemsavemapas.Size = new System.Drawing.Size(202, 22);
+            this.itemsavemapas.Tag = "builder_savemapas";
+            this.itemsavemapas.Text = "Save Map &As...";
+            this.itemsavemapas.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemsavemapinto
+            // 
+            this.itemsavemapinto.Name = "itemsavemapinto";
+            this.itemsavemapinto.Size = new System.Drawing.Size(202, 22);
+            this.itemsavemapinto.Tag = "builder_savemapinto";
+            this.itemsavemapinto.Text = "Save Map &Into...";
+            this.itemsavemapinto.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // seperatorfilesave
+            // 
+            this.seperatorfilesave.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatorfilesave.Name = "seperatorfilesave";
+            this.seperatorfilesave.Size = new System.Drawing.Size(199, 6);
+            // 
+            // itemnorecent
+            // 
+            this.itemnorecent.Enabled = false;
+            this.itemnorecent.Name = "itemnorecent";
+            this.itemnorecent.Size = new System.Drawing.Size(202, 22);
+            this.itemnorecent.Text = "No recently opened files";
+            // 
+            // itemexit
+            // 
+            this.itemexit.Name = "itemexit";
+            this.itemexit.Size = new System.Drawing.Size(202, 22);
+            this.itemexit.Text = "E&xit";
+            this.itemexit.Click += new System.EventHandler(this.itemexit_Click);
+            // 
+            // menuedit
+            // 
+            this.menuedit.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.itemundo,
             this.itemredo,
             this.seperatoreditundo,
@@ -430,135 +430,135 @@ namespace CodeImp.DoomBuilder.Windows
             this.itemgridsetup,
             this.seperatoreditgrid,
             this.itemmapoptions});
-			this.menuedit.Name = "menuedit";
-			this.menuedit.Size = new System.Drawing.Size(39, 20);
-			this.menuedit.Text = "&Edit";
-			// 
-			// itemundo
-			// 
-			this.itemundo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Undo;
-			this.itemundo.Name = "itemundo";
-			this.itemundo.Size = new System.Drawing.Size(163, 22);
-			this.itemundo.Tag = "builder_undo";
-			this.itemundo.Text = "&Undo";
-			this.itemundo.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemredo
-			// 
-			this.itemredo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Redo;
-			this.itemredo.Name = "itemredo";
-			this.itemredo.Size = new System.Drawing.Size(163, 22);
-			this.itemredo.Tag = "builder_redo";
-			this.itemredo.Text = "&Redo";
-			this.itemredo.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// seperatoreditundo
-			// 
-			this.seperatoreditundo.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatoreditundo.Name = "seperatoreditundo";
-			this.seperatoreditundo.Size = new System.Drawing.Size(160, 6);
-			// 
-			// itemcut
-			// 
-			this.itemcut.Image = global::CodeImp.DoomBuilder.Properties.Resources.Cut;
-			this.itemcut.Name = "itemcut";
-			this.itemcut.Size = new System.Drawing.Size(163, 22);
-			this.itemcut.Tag = "builder_cutselection";
-			this.itemcut.Text = "Cu&t";
-			this.itemcut.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemcopy
-			// 
-			this.itemcopy.Image = global::CodeImp.DoomBuilder.Properties.Resources.Copy;
-			this.itemcopy.Name = "itemcopy";
-			this.itemcopy.Size = new System.Drawing.Size(163, 22);
-			this.itemcopy.Tag = "builder_copyselection";
-			this.itemcopy.Text = "&Copy";
-			this.itemcopy.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itempaste
-			// 
-			this.itempaste.Image = global::CodeImp.DoomBuilder.Properties.Resources.Paste;
-			this.itempaste.Name = "itempaste";
-			this.itempaste.Size = new System.Drawing.Size(163, 22);
-			this.itempaste.Tag = "builder_pasteselection";
-			this.itempaste.Text = "&Paste";
-			this.itempaste.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itempastespecial
-			// 
-			this.itempastespecial.Image = global::CodeImp.DoomBuilder.Properties.Resources.PasteSpecial;
-			this.itempastespecial.Name = "itempastespecial";
-			this.itempastespecial.Size = new System.Drawing.Size(163, 22);
-			this.itempastespecial.Tag = "builder_pasteselectionspecial";
-			this.itempastespecial.Text = "Paste Special...";
-			this.itempastespecial.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemsnaptogrid
-			// 
-			this.itemsnaptogrid.Checked = true;
-			this.itemsnaptogrid.CheckState = System.Windows.Forms.CheckState.Checked;
-			this.itemsnaptogrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid4;
-			this.itemsnaptogrid.Name = "itemsnaptogrid";
-			this.itemsnaptogrid.Size = new System.Drawing.Size(163, 22);
-			this.itemsnaptogrid.Tag = "builder_togglesnap";
-			this.itemsnaptogrid.Text = "&Snap to Grid";
-			this.itemsnaptogrid.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemautomerge
-			// 
-			this.itemautomerge.Checked = true;
-			this.itemautomerge.CheckState = System.Windows.Forms.CheckState.Checked;
-			this.itemautomerge.Image = global::CodeImp.DoomBuilder.Properties.Resources.mergegeometry2;
-			this.itemautomerge.Name = "itemautomerge";
-			this.itemautomerge.Size = new System.Drawing.Size(163, 22);
-			this.itemautomerge.Tag = "builder_toggleautomerge";
-			this.itemautomerge.Text = "&Merge Geometry";
-			this.itemautomerge.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// seperatoreditgeometry
-			// 
-			this.seperatoreditgeometry.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatoreditgeometry.Name = "seperatoreditgeometry";
-			this.seperatoreditgeometry.Size = new System.Drawing.Size(160, 6);
-			// 
-			// itemgridinc
-			// 
-			this.itemgridinc.Name = "itemgridinc";
-			this.itemgridinc.Size = new System.Drawing.Size(163, 22);
-			this.itemgridinc.Tag = "builder_griddec";
-			this.itemgridinc.Text = "&Increase Grid";
-			this.itemgridinc.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemgriddec
-			// 
-			this.itemgriddec.Name = "itemgriddec";
-			this.itemgriddec.Size = new System.Drawing.Size(163, 22);
-			this.itemgriddec.Tag = "builder_gridinc";
-			this.itemgriddec.Text = "&Decrease Grid";
-			this.itemgriddec.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemgridsetup
-			// 
-			this.itemgridsetup.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2;
-			this.itemgridsetup.Name = "itemgridsetup";
-			this.itemgridsetup.Size = new System.Drawing.Size(163, 22);
-			this.itemgridsetup.Tag = "builder_gridsetup";
-			this.itemgridsetup.Text = "&Grid Setup...";
-			this.itemgridsetup.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemmapoptions
-			// 
-			this.itemmapoptions.Image = global::CodeImp.DoomBuilder.Properties.Resources.Properties;
-			this.itemmapoptions.Name = "itemmapoptions";
-			this.itemmapoptions.Size = new System.Drawing.Size(163, 22);
-			this.itemmapoptions.Tag = "builder_mapoptions";
-			this.itemmapoptions.Text = "Map &Options....";
-			this.itemmapoptions.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// menuview
-			// 
-			this.menuview.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menuedit.Name = "menuedit";
+            this.menuedit.Size = new System.Drawing.Size(39, 20);
+            this.menuedit.Text = "&Edit";
+            // 
+            // itemundo
+            // 
+            this.itemundo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Undo;
+            this.itemundo.Name = "itemundo";
+            this.itemundo.Size = new System.Drawing.Size(163, 22);
+            this.itemundo.Tag = "builder_undo";
+            this.itemundo.Text = "&Undo";
+            this.itemundo.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemredo
+            // 
+            this.itemredo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Redo;
+            this.itemredo.Name = "itemredo";
+            this.itemredo.Size = new System.Drawing.Size(163, 22);
+            this.itemredo.Tag = "builder_redo";
+            this.itemredo.Text = "&Redo";
+            this.itemredo.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // seperatoreditundo
+            // 
+            this.seperatoreditundo.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatoreditundo.Name = "seperatoreditundo";
+            this.seperatoreditundo.Size = new System.Drawing.Size(160, 6);
+            // 
+            // itemcut
+            // 
+            this.itemcut.Image = global::CodeImp.DoomBuilder.Properties.Resources.Cut;
+            this.itemcut.Name = "itemcut";
+            this.itemcut.Size = new System.Drawing.Size(163, 22);
+            this.itemcut.Tag = "builder_cutselection";
+            this.itemcut.Text = "Cu&t";
+            this.itemcut.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemcopy
+            // 
+            this.itemcopy.Image = global::CodeImp.DoomBuilder.Properties.Resources.Copy;
+            this.itemcopy.Name = "itemcopy";
+            this.itemcopy.Size = new System.Drawing.Size(163, 22);
+            this.itemcopy.Tag = "builder_copyselection";
+            this.itemcopy.Text = "&Copy";
+            this.itemcopy.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itempaste
+            // 
+            this.itempaste.Image = global::CodeImp.DoomBuilder.Properties.Resources.Paste;
+            this.itempaste.Name = "itempaste";
+            this.itempaste.Size = new System.Drawing.Size(163, 22);
+            this.itempaste.Tag = "builder_pasteselection";
+            this.itempaste.Text = "&Paste";
+            this.itempaste.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itempastespecial
+            // 
+            this.itempastespecial.Image = global::CodeImp.DoomBuilder.Properties.Resources.PasteSpecial;
+            this.itempastespecial.Name = "itempastespecial";
+            this.itempastespecial.Size = new System.Drawing.Size(163, 22);
+            this.itempastespecial.Tag = "builder_pasteselectionspecial";
+            this.itempastespecial.Text = "Paste Special...";
+            this.itempastespecial.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemsnaptogrid
+            // 
+            this.itemsnaptogrid.Checked = true;
+            this.itemsnaptogrid.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.itemsnaptogrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid4;
+            this.itemsnaptogrid.Name = "itemsnaptogrid";
+            this.itemsnaptogrid.Size = new System.Drawing.Size(163, 22);
+            this.itemsnaptogrid.Tag = "builder_togglesnap";
+            this.itemsnaptogrid.Text = "&Snap to Grid";
+            this.itemsnaptogrid.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemautomerge
+            // 
+            this.itemautomerge.Checked = true;
+            this.itemautomerge.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.itemautomerge.Image = global::CodeImp.DoomBuilder.Properties.Resources.mergegeometry2;
+            this.itemautomerge.Name = "itemautomerge";
+            this.itemautomerge.Size = new System.Drawing.Size(163, 22);
+            this.itemautomerge.Tag = "builder_toggleautomerge";
+            this.itemautomerge.Text = "&Merge Geometry";
+            this.itemautomerge.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // seperatoreditgeometry
+            // 
+            this.seperatoreditgeometry.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatoreditgeometry.Name = "seperatoreditgeometry";
+            this.seperatoreditgeometry.Size = new System.Drawing.Size(160, 6);
+            // 
+            // itemgridinc
+            // 
+            this.itemgridinc.Name = "itemgridinc";
+            this.itemgridinc.Size = new System.Drawing.Size(163, 22);
+            this.itemgridinc.Tag = "builder_griddec";
+            this.itemgridinc.Text = "&Increase Grid";
+            this.itemgridinc.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemgriddec
+            // 
+            this.itemgriddec.Name = "itemgriddec";
+            this.itemgriddec.Size = new System.Drawing.Size(163, 22);
+            this.itemgriddec.Tag = "builder_gridinc";
+            this.itemgriddec.Text = "&Decrease Grid";
+            this.itemgriddec.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemgridsetup
+            // 
+            this.itemgridsetup.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2;
+            this.itemgridsetup.Name = "itemgridsetup";
+            this.itemgridsetup.Size = new System.Drawing.Size(163, 22);
+            this.itemgridsetup.Tag = "builder_gridsetup";
+            this.itemgridsetup.Text = "&Grid Setup...";
+            this.itemgridsetup.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemmapoptions
+            // 
+            this.itemmapoptions.Image = global::CodeImp.DoomBuilder.Properties.Resources.Properties;
+            this.itemmapoptions.Name = "itemmapoptions";
+            this.itemmapoptions.Size = new System.Drawing.Size(163, 22);
+            this.itemmapoptions.Tag = "builder_mapoptions";
+            this.itemmapoptions.Text = "Map &Options....";
+            this.itemmapoptions.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // menuview
+            // 
+            this.menuview.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.itemthingsfilter,
             this.seperatorviewthings,
             this.itemviewnormal,
@@ -571,216 +571,216 @@ namespace CodeImp.DoomBuilder.Windows
             this.itemtoggleinfo,
             this.seperatorviewzoom,
             this.itemscripteditor});
-			this.menuview.Name = "menuview";
-			this.menuview.Size = new System.Drawing.Size(44, 20);
-			this.menuview.Text = "&View";
-			// 
-			// itemthingsfilter
-			// 
-			this.itemthingsfilter.Image = global::CodeImp.DoomBuilder.Properties.Resources.Filter;
-			this.itemthingsfilter.Name = "itemthingsfilter";
-			this.itemthingsfilter.Size = new System.Drawing.Size(209, 22);
-			this.itemthingsfilter.Tag = "builder_thingsfilterssetup";
-			this.itemthingsfilter.Text = "Configure &Things Filters...";
-			this.itemthingsfilter.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// seperatorviewthings
-			// 
-			this.seperatorviewthings.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatorviewthings.Name = "seperatorviewthings";
-			this.seperatorviewthings.Size = new System.Drawing.Size(206, 6);
-			// 
-			// itemviewnormal
-			// 
-			this.itemviewnormal.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewNormal;
-			this.itemviewnormal.Name = "itemviewnormal";
-			this.itemviewnormal.Size = new System.Drawing.Size(209, 22);
-			this.itemviewnormal.Tag = "builder_viewmodenormal";
-			this.itemviewnormal.Text = "&Wireframe";
-			this.itemviewnormal.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemviewbrightness
-			// 
-			this.itemviewbrightness.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewBrightness;
-			this.itemviewbrightness.Name = "itemviewbrightness";
-			this.itemviewbrightness.Size = new System.Drawing.Size(209, 22);
-			this.itemviewbrightness.Tag = "builder_viewmodebrightness";
-			this.itemviewbrightness.Text = "&Brightness Levels";
-			this.itemviewbrightness.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemviewfloors
-			// 
-			this.itemviewfloors.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewTextureFloor;
-			this.itemviewfloors.Name = "itemviewfloors";
-			this.itemviewfloors.Size = new System.Drawing.Size(209, 22);
-			this.itemviewfloors.Tag = "builder_viewmodefloors";
-			this.itemviewfloors.Text = "&Floor Textures";
-			this.itemviewfloors.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemviewceilings
-			// 
-			this.itemviewceilings.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewTextureCeiling;
-			this.itemviewceilings.Name = "itemviewceilings";
-			this.itemviewceilings.Size = new System.Drawing.Size(209, 22);
-			this.itemviewceilings.Tag = "builder_viewmodeceilings";
-			this.itemviewceilings.Text = "&Ceiling Textures";
-			this.itemviewceilings.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// seperatorviewviews
-			// 
-			this.seperatorviewviews.Name = "seperatorviewviews";
-			this.seperatorviewviews.Size = new System.Drawing.Size(206, 6);
-			// 
-			// menuzoom
-			// 
-			this.menuzoom.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menuview.Name = "menuview";
+            this.menuview.Size = new System.Drawing.Size(44, 20);
+            this.menuview.Text = "&View";
+            // 
+            // itemthingsfilter
+            // 
+            this.itemthingsfilter.Image = global::CodeImp.DoomBuilder.Properties.Resources.Filter;
+            this.itemthingsfilter.Name = "itemthingsfilter";
+            this.itemthingsfilter.Size = new System.Drawing.Size(209, 22);
+            this.itemthingsfilter.Tag = "builder_thingsfilterssetup";
+            this.itemthingsfilter.Text = "Configure &Things Filters...";
+            this.itemthingsfilter.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // seperatorviewthings
+            // 
+            this.seperatorviewthings.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatorviewthings.Name = "seperatorviewthings";
+            this.seperatorviewthings.Size = new System.Drawing.Size(206, 6);
+            // 
+            // itemviewnormal
+            // 
+            this.itemviewnormal.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewNormal;
+            this.itemviewnormal.Name = "itemviewnormal";
+            this.itemviewnormal.Size = new System.Drawing.Size(209, 22);
+            this.itemviewnormal.Tag = "builder_viewmodenormal";
+            this.itemviewnormal.Text = "&Wireframe";
+            this.itemviewnormal.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemviewbrightness
+            // 
+            this.itemviewbrightness.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewBrightness;
+            this.itemviewbrightness.Name = "itemviewbrightness";
+            this.itemviewbrightness.Size = new System.Drawing.Size(209, 22);
+            this.itemviewbrightness.Tag = "builder_viewmodebrightness";
+            this.itemviewbrightness.Text = "&Brightness Levels";
+            this.itemviewbrightness.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemviewfloors
+            // 
+            this.itemviewfloors.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewTextureFloor;
+            this.itemviewfloors.Name = "itemviewfloors";
+            this.itemviewfloors.Size = new System.Drawing.Size(209, 22);
+            this.itemviewfloors.Tag = "builder_viewmodefloors";
+            this.itemviewfloors.Text = "&Floor Textures";
+            this.itemviewfloors.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemviewceilings
+            // 
+            this.itemviewceilings.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewTextureCeiling;
+            this.itemviewceilings.Name = "itemviewceilings";
+            this.itemviewceilings.Size = new System.Drawing.Size(209, 22);
+            this.itemviewceilings.Tag = "builder_viewmodeceilings";
+            this.itemviewceilings.Text = "&Ceiling Textures";
+            this.itemviewceilings.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // seperatorviewviews
+            // 
+            this.seperatorviewviews.Name = "seperatorviewviews";
+            this.seperatorviewviews.Size = new System.Drawing.Size(206, 6);
+            // 
+            // menuzoom
+            // 
+            this.menuzoom.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.item2zoom200,
             this.item2zoom100,
             this.item2zoom50,
             this.item2zoom25,
             this.item2zoom10,
             this.item2zoom5});
-			this.menuzoom.Image = global::CodeImp.DoomBuilder.Properties.Resources.Zoom;
-			this.menuzoom.Name = "menuzoom";
-			this.menuzoom.Size = new System.Drawing.Size(209, 22);
-			this.menuzoom.Text = "&Zoom";
-			// 
-			// item2zoom200
-			// 
-			this.item2zoom200.Name = "item2zoom200";
-			this.item2zoom200.Size = new System.Drawing.Size(102, 22);
-			this.item2zoom200.Tag = "200";
-			this.item2zoom200.Text = "200%";
-			this.item2zoom200.Click += new System.EventHandler(this.itemzoomto_Click);
-			// 
-			// item2zoom100
-			// 
-			this.item2zoom100.Name = "item2zoom100";
-			this.item2zoom100.Size = new System.Drawing.Size(102, 22);
-			this.item2zoom100.Tag = "100";
-			this.item2zoom100.Text = "100%";
-			this.item2zoom100.Click += new System.EventHandler(this.itemzoomto_Click);
-			// 
-			// item2zoom50
-			// 
-			this.item2zoom50.Name = "item2zoom50";
-			this.item2zoom50.Size = new System.Drawing.Size(102, 22);
-			this.item2zoom50.Tag = "50";
-			this.item2zoom50.Text = "50%";
-			this.item2zoom50.Click += new System.EventHandler(this.itemzoomto_Click);
-			// 
-			// item2zoom25
-			// 
-			this.item2zoom25.Name = "item2zoom25";
-			this.item2zoom25.Size = new System.Drawing.Size(102, 22);
-			this.item2zoom25.Tag = "25";
-			this.item2zoom25.Text = "25%";
-			this.item2zoom25.Click += new System.EventHandler(this.itemzoomto_Click);
-			// 
-			// item2zoom10
-			// 
-			this.item2zoom10.Name = "item2zoom10";
-			this.item2zoom10.Size = new System.Drawing.Size(102, 22);
-			this.item2zoom10.Tag = "10";
-			this.item2zoom10.Text = "10%";
-			this.item2zoom10.Click += new System.EventHandler(this.itemzoomto_Click);
-			// 
-			// item2zoom5
-			// 
-			this.item2zoom5.Name = "item2zoom5";
-			this.item2zoom5.Size = new System.Drawing.Size(102, 22);
-			this.item2zoom5.Tag = "5";
-			this.item2zoom5.Text = "5%";
-			this.item2zoom5.Click += new System.EventHandler(this.itemzoomto_Click);
-			// 
-			// itemfittoscreen
-			// 
-			this.itemfittoscreen.Name = "itemfittoscreen";
-			this.itemfittoscreen.Size = new System.Drawing.Size(209, 22);
-			this.itemfittoscreen.Tag = "builder_centerinscreen";
-			this.itemfittoscreen.Text = "Fit to screen";
-			this.itemfittoscreen.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemtoggleinfo
-			// 
-			this.itemtoggleinfo.Name = "itemtoggleinfo";
-			this.itemtoggleinfo.Size = new System.Drawing.Size(209, 22);
-			this.itemtoggleinfo.Tag = "builder_toggleinfopanel";
-			this.itemtoggleinfo.Text = "&Expanded Info Panel";
-			this.itemtoggleinfo.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// seperatorviewzoom
-			// 
-			this.seperatorviewzoom.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatorviewzoom.Name = "seperatorviewzoom";
-			this.seperatorviewzoom.Size = new System.Drawing.Size(206, 6);
-			// 
-			// itemscripteditor
-			// 
-			this.itemscripteditor.Image = global::CodeImp.DoomBuilder.Properties.Resources.Script2;
-			this.itemscripteditor.Name = "itemscripteditor";
-			this.itemscripteditor.Size = new System.Drawing.Size(209, 22);
-			this.itemscripteditor.Tag = "builder_openscripteditor";
-			this.itemscripteditor.Text = "&Script Editor...";
-			this.itemscripteditor.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// menumode
-			// 
-			this.menumode.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menuzoom.Image = global::CodeImp.DoomBuilder.Properties.Resources.Zoom;
+            this.menuzoom.Name = "menuzoom";
+            this.menuzoom.Size = new System.Drawing.Size(209, 22);
+            this.menuzoom.Text = "&Zoom";
+            // 
+            // item2zoom200
+            // 
+            this.item2zoom200.Name = "item2zoom200";
+            this.item2zoom200.Size = new System.Drawing.Size(102, 22);
+            this.item2zoom200.Tag = "200";
+            this.item2zoom200.Text = "200%";
+            this.item2zoom200.Click += new System.EventHandler(this.itemzoomto_Click);
+            // 
+            // item2zoom100
+            // 
+            this.item2zoom100.Name = "item2zoom100";
+            this.item2zoom100.Size = new System.Drawing.Size(102, 22);
+            this.item2zoom100.Tag = "100";
+            this.item2zoom100.Text = "100%";
+            this.item2zoom100.Click += new System.EventHandler(this.itemzoomto_Click);
+            // 
+            // item2zoom50
+            // 
+            this.item2zoom50.Name = "item2zoom50";
+            this.item2zoom50.Size = new System.Drawing.Size(102, 22);
+            this.item2zoom50.Tag = "50";
+            this.item2zoom50.Text = "50%";
+            this.item2zoom50.Click += new System.EventHandler(this.itemzoomto_Click);
+            // 
+            // item2zoom25
+            // 
+            this.item2zoom25.Name = "item2zoom25";
+            this.item2zoom25.Size = new System.Drawing.Size(102, 22);
+            this.item2zoom25.Tag = "25";
+            this.item2zoom25.Text = "25%";
+            this.item2zoom25.Click += new System.EventHandler(this.itemzoomto_Click);
+            // 
+            // item2zoom10
+            // 
+            this.item2zoom10.Name = "item2zoom10";
+            this.item2zoom10.Size = new System.Drawing.Size(102, 22);
+            this.item2zoom10.Tag = "10";
+            this.item2zoom10.Text = "10%";
+            this.item2zoom10.Click += new System.EventHandler(this.itemzoomto_Click);
+            // 
+            // item2zoom5
+            // 
+            this.item2zoom5.Name = "item2zoom5";
+            this.item2zoom5.Size = new System.Drawing.Size(102, 22);
+            this.item2zoom5.Tag = "5";
+            this.item2zoom5.Text = "5%";
+            this.item2zoom5.Click += new System.EventHandler(this.itemzoomto_Click);
+            // 
+            // itemfittoscreen
+            // 
+            this.itemfittoscreen.Name = "itemfittoscreen";
+            this.itemfittoscreen.Size = new System.Drawing.Size(209, 22);
+            this.itemfittoscreen.Tag = "builder_centerinscreen";
+            this.itemfittoscreen.Text = "Fit to screen";
+            this.itemfittoscreen.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemtoggleinfo
+            // 
+            this.itemtoggleinfo.Name = "itemtoggleinfo";
+            this.itemtoggleinfo.Size = new System.Drawing.Size(209, 22);
+            this.itemtoggleinfo.Tag = "builder_toggleinfopanel";
+            this.itemtoggleinfo.Text = "&Expanded Info Panel";
+            this.itemtoggleinfo.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // seperatorviewzoom
+            // 
+            this.seperatorviewzoom.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatorviewzoom.Name = "seperatorviewzoom";
+            this.seperatorviewzoom.Size = new System.Drawing.Size(206, 6);
+            // 
+            // itemscripteditor
+            // 
+            this.itemscripteditor.Image = global::CodeImp.DoomBuilder.Properties.Resources.Script2;
+            this.itemscripteditor.Name = "itemscripteditor";
+            this.itemscripteditor.Size = new System.Drawing.Size(209, 22);
+            this.itemscripteditor.Tag = "builder_openscripteditor";
+            this.itemscripteditor.Text = "&Script Editor...";
+            this.itemscripteditor.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // menumode
+            // 
+            this.menumode.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.separatorDrawModes});
-			this.menumode.Name = "menumode";
-			this.menumode.Size = new System.Drawing.Size(50, 20);
-			this.menumode.Text = "&Mode";
-			// 
-			// separatorDrawModes
-			// 
-			this.separatorDrawModes.Name = "separatorDrawModes";
-			this.separatorDrawModes.Size = new System.Drawing.Size(57, 6);
-			// 
-			// menuprefabs
-			// 
-			this.menuprefabs.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menumode.Name = "menumode";
+            this.menumode.Size = new System.Drawing.Size(50, 20);
+            this.menumode.Text = "&Mode";
+            // 
+            // separatorDrawModes
+            // 
+            this.separatorDrawModes.Name = "separatorDrawModes";
+            this.separatorDrawModes.Size = new System.Drawing.Size(57, 6);
+            // 
+            // menuprefabs
+            // 
+            this.menuprefabs.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.iteminsertprefabfile,
             this.iteminsertpreviousprefab,
             this.seperatorprefabsinsert,
             this.itemcreateprefab});
-			this.menuprefabs.Name = "menuprefabs";
-			this.menuprefabs.Size = new System.Drawing.Size(58, 20);
-			this.menuprefabs.Text = "&Prefabs";
-			// 
-			// iteminsertprefabfile
-			// 
-			this.iteminsertprefabfile.Name = "iteminsertprefabfile";
-			this.iteminsertprefabfile.Size = new System.Drawing.Size(199, 22);
-			this.iteminsertprefabfile.Tag = "builder_insertprefabfile";
-			this.iteminsertprefabfile.Text = "&Insert Prefab from File...";
-			this.iteminsertprefabfile.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// iteminsertpreviousprefab
-			// 
-			this.iteminsertpreviousprefab.Name = "iteminsertpreviousprefab";
-			this.iteminsertpreviousprefab.Size = new System.Drawing.Size(199, 22);
-			this.iteminsertpreviousprefab.Tag = "builder_insertpreviousprefab";
-			this.iteminsertpreviousprefab.Text = "Insert &Previous Prefab";
-			this.iteminsertpreviousprefab.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// seperatorprefabsinsert
-			// 
-			this.seperatorprefabsinsert.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatorprefabsinsert.Name = "seperatorprefabsinsert";
-			this.seperatorprefabsinsert.Size = new System.Drawing.Size(196, 6);
-			// 
-			// itemcreateprefab
-			// 
-			this.itemcreateprefab.Name = "itemcreateprefab";
-			this.itemcreateprefab.Size = new System.Drawing.Size(199, 22);
-			this.itemcreateprefab.Tag = "builder_createprefab";
-			this.itemcreateprefab.Text = "&Create From Selection...";
-			this.itemcreateprefab.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// menutools
-			// 
-			this.menutools.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menuprefabs.Name = "menuprefabs";
+            this.menuprefabs.Size = new System.Drawing.Size(58, 20);
+            this.menuprefabs.Text = "&Prefabs";
+            // 
+            // iteminsertprefabfile
+            // 
+            this.iteminsertprefabfile.Name = "iteminsertprefabfile";
+            this.iteminsertprefabfile.Size = new System.Drawing.Size(199, 22);
+            this.iteminsertprefabfile.Tag = "builder_insertprefabfile";
+            this.iteminsertprefabfile.Text = "&Insert Prefab from File...";
+            this.iteminsertprefabfile.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // iteminsertpreviousprefab
+            // 
+            this.iteminsertpreviousprefab.Name = "iteminsertpreviousprefab";
+            this.iteminsertpreviousprefab.Size = new System.Drawing.Size(199, 22);
+            this.iteminsertpreviousprefab.Tag = "builder_insertpreviousprefab";
+            this.iteminsertpreviousprefab.Text = "Insert &Previous Prefab";
+            this.iteminsertpreviousprefab.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // seperatorprefabsinsert
+            // 
+            this.seperatorprefabsinsert.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatorprefabsinsert.Name = "seperatorprefabsinsert";
+            this.seperatorprefabsinsert.Size = new System.Drawing.Size(196, 6);
+            // 
+            // itemcreateprefab
+            // 
+            this.itemcreateprefab.Name = "itemcreateprefab";
+            this.itemcreateprefab.Size = new System.Drawing.Size(199, 22);
+            this.itemcreateprefab.Tag = "builder_createprefab";
+            this.itemcreateprefab.Text = "&Create From Selection...";
+            this.itemcreateprefab.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // menutools
+            // 
+            this.menutools.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.itemreloadresources,
             this.itemReloadModedef,
             this.itemReloadGldefs,
@@ -791,133 +791,133 @@ namespace CodeImp.DoomBuilder.Windows
             this.preferencesToolStripMenuItem,
             this.seperatortoolsconfig,
             this.itemtestmap});
-			this.menutools.Name = "menutools";
-			this.menutools.Size = new System.Drawing.Size(48, 20);
-			this.menutools.Text = "&Tools";
-			// 
-			// itemreloadresources
-			// 
-			this.itemreloadresources.Name = "itemreloadresources";
-			this.itemreloadresources.Size = new System.Drawing.Size(196, 22);
-			this.itemreloadresources.Tag = "builder_reloadresources";
-			this.itemreloadresources.Text = "&Reload Resources";
-			this.itemreloadresources.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemReloadModedef
-			// 
-			this.itemReloadModedef.Name = "itemReloadModedef";
-			this.itemReloadModedef.Size = new System.Drawing.Size(196, 22);
-			this.itemReloadModedef.Tag = "builder_gzreloadmodeldef";
-			this.itemReloadModedef.Text = "Reload MODELDEF";
-			this.itemReloadModedef.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemReloadGldefs
-			// 
-			this.itemReloadGldefs.Name = "itemReloadGldefs";
-			this.itemReloadGldefs.Size = new System.Drawing.Size(196, 22);
-			this.itemReloadGldefs.Tag = "builder_gzreloadgldefs";
-			this.itemReloadGldefs.Text = "Reload GLDEFS";
-			this.itemReloadGldefs.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemReloadMapinfo
-			// 
-			this.itemReloadMapinfo.Name = "itemReloadMapinfo";
-			this.itemReloadMapinfo.Size = new System.Drawing.Size(196, 22);
-			this.itemReloadMapinfo.Tag = "builder_gzreloadmapinfo";
-			this.itemReloadMapinfo.Text = "Reload (Z)MAPINFO";
-			this.itemReloadMapinfo.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// itemshowerrors
-			// 
-			this.itemshowerrors.Image = global::CodeImp.DoomBuilder.Properties.Resources.Warning;
-			this.itemshowerrors.Name = "itemshowerrors";
-			this.itemshowerrors.Size = new System.Drawing.Size(196, 22);
-			this.itemshowerrors.Tag = "builder_showerrors";
-			this.itemshowerrors.Text = "&Errors and Warnings...";
-			this.itemshowerrors.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// seperatortoolsresources
-			// 
-			this.seperatortoolsresources.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatortoolsresources.Name = "seperatortoolsresources";
-			this.seperatortoolsresources.Size = new System.Drawing.Size(193, 6);
-			// 
-			// configurationToolStripMenuItem
-			// 
-			this.configurationToolStripMenuItem.Name = "configurationToolStripMenuItem";
-			this.configurationToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
-			this.configurationToolStripMenuItem.Tag = "builder_configuration";
-			this.configurationToolStripMenuItem.Text = "&Game Configurations...";
-			this.configurationToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// preferencesToolStripMenuItem
-			// 
-			this.preferencesToolStripMenuItem.Name = "preferencesToolStripMenuItem";
-			this.preferencesToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
-			this.preferencesToolStripMenuItem.Tag = "builder_preferences";
-			this.preferencesToolStripMenuItem.Text = "Preferences...";
-			this.preferencesToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// seperatortoolsconfig
-			// 
-			this.seperatortoolsconfig.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatortoolsconfig.Name = "seperatortoolsconfig";
-			this.seperatortoolsconfig.Size = new System.Drawing.Size(193, 6);
-			// 
-			// itemtestmap
-			// 
-			this.itemtestmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.Test;
-			this.itemtestmap.Name = "itemtestmap";
-			this.itemtestmap.Size = new System.Drawing.Size(196, 22);
-			this.itemtestmap.Tag = "builder_testmap";
-			this.itemtestmap.Text = "&Test Map";
-			this.itemtestmap.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// menuhelp
-			// 
-			this.menuhelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menutools.Name = "menutools";
+            this.menutools.Size = new System.Drawing.Size(48, 20);
+            this.menutools.Text = "&Tools";
+            // 
+            // itemreloadresources
+            // 
+            this.itemreloadresources.Name = "itemreloadresources";
+            this.itemreloadresources.Size = new System.Drawing.Size(196, 22);
+            this.itemreloadresources.Tag = "builder_reloadresources";
+            this.itemreloadresources.Text = "&Reload Resources";
+            this.itemreloadresources.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemReloadModedef
+            // 
+            this.itemReloadModedef.Name = "itemReloadModedef";
+            this.itemReloadModedef.Size = new System.Drawing.Size(196, 22);
+            this.itemReloadModedef.Tag = "builder_gzreloadmodeldef";
+            this.itemReloadModedef.Text = "Reload MODELDEF";
+            this.itemReloadModedef.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemReloadGldefs
+            // 
+            this.itemReloadGldefs.Name = "itemReloadGldefs";
+            this.itemReloadGldefs.Size = new System.Drawing.Size(196, 22);
+            this.itemReloadGldefs.Tag = "builder_gzreloadgldefs";
+            this.itemReloadGldefs.Text = "Reload GLDEFS";
+            this.itemReloadGldefs.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemReloadMapinfo
+            // 
+            this.itemReloadMapinfo.Name = "itemReloadMapinfo";
+            this.itemReloadMapinfo.Size = new System.Drawing.Size(196, 22);
+            this.itemReloadMapinfo.Tag = "builder_gzreloadmapinfo";
+            this.itemReloadMapinfo.Text = "Reload (Z)MAPINFO";
+            this.itemReloadMapinfo.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // itemshowerrors
+            // 
+            this.itemshowerrors.Image = global::CodeImp.DoomBuilder.Properties.Resources.Warning;
+            this.itemshowerrors.Name = "itemshowerrors";
+            this.itemshowerrors.Size = new System.Drawing.Size(196, 22);
+            this.itemshowerrors.Tag = "builder_showerrors";
+            this.itemshowerrors.Text = "&Errors and Warnings...";
+            this.itemshowerrors.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // seperatortoolsresources
+            // 
+            this.seperatortoolsresources.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatortoolsresources.Name = "seperatortoolsresources";
+            this.seperatortoolsresources.Size = new System.Drawing.Size(193, 6);
+            // 
+            // configurationToolStripMenuItem
+            // 
+            this.configurationToolStripMenuItem.Name = "configurationToolStripMenuItem";
+            this.configurationToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
+            this.configurationToolStripMenuItem.Tag = "builder_configuration";
+            this.configurationToolStripMenuItem.Text = "&Game Configurations...";
+            this.configurationToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // preferencesToolStripMenuItem
+            // 
+            this.preferencesToolStripMenuItem.Name = "preferencesToolStripMenuItem";
+            this.preferencesToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
+            this.preferencesToolStripMenuItem.Tag = "builder_preferences";
+            this.preferencesToolStripMenuItem.Text = "Preferences...";
+            this.preferencesToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // seperatortoolsconfig
+            // 
+            this.seperatortoolsconfig.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatortoolsconfig.Name = "seperatortoolsconfig";
+            this.seperatortoolsconfig.Size = new System.Drawing.Size(193, 6);
+            // 
+            // itemtestmap
+            // 
+            this.itemtestmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.Test;
+            this.itemtestmap.Name = "itemtestmap";
+            this.itemtestmap.Size = new System.Drawing.Size(196, 22);
+            this.itemtestmap.Tag = "builder_testmap";
+            this.itemtestmap.Text = "&Test Map";
+            this.itemtestmap.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // menuhelp
+            // 
+            this.menuhelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.itemhelprefmanual,
             this.itemhelpeditmode,
             this.seperatorhelpmanual,
             this.itemhelpabout});
-			this.menuhelp.Name = "menuhelp";
-			this.menuhelp.Size = new System.Drawing.Size(44, 20);
-			this.menuhelp.Text = "&Help";
-			// 
-			// itemhelprefmanual
-			// 
-			this.itemhelprefmanual.Image = global::CodeImp.DoomBuilder.Properties.Resources.Help;
-			this.itemhelprefmanual.Name = "itemhelprefmanual";
-			this.itemhelprefmanual.Size = new System.Drawing.Size(203, 22);
-			this.itemhelprefmanual.Text = "Reference &Manual";
-			this.itemhelprefmanual.Click += new System.EventHandler(this.itemhelprefmanual_Click);
-			// 
-			// itemhelpeditmode
-			// 
-			this.itemhelpeditmode.Image = global::CodeImp.DoomBuilder.Properties.Resources.Question;
-			this.itemhelpeditmode.Name = "itemhelpeditmode";
-			this.itemhelpeditmode.Size = new System.Drawing.Size(203, 22);
-			this.itemhelpeditmode.Text = "About this &Editing Mode";
-			this.itemhelpeditmode.Click += new System.EventHandler(this.itemhelpeditmode_Click);
-			// 
-			// seperatorhelpmanual
-			// 
-			this.seperatorhelpmanual.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
-			this.seperatorhelpmanual.Name = "seperatorhelpmanual";
-			this.seperatorhelpmanual.Size = new System.Drawing.Size(200, 6);
-			// 
-			// itemhelpabout
-			// 
-			this.itemhelpabout.Name = "itemhelpabout";
-			this.itemhelpabout.Size = new System.Drawing.Size(203, 22);
-			this.itemhelpabout.Text = "&About Doom Builder...";
-			this.itemhelpabout.Click += new System.EventHandler(this.itemhelpabout_Click);
-			// 
-			// toolbar
-			// 
-			this.toolbar.AutoSize = false;
-			this.toolbar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
-			this.toolbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menuhelp.Name = "menuhelp";
+            this.menuhelp.Size = new System.Drawing.Size(44, 20);
+            this.menuhelp.Text = "&Help";
+            // 
+            // itemhelprefmanual
+            // 
+            this.itemhelprefmanual.Image = global::CodeImp.DoomBuilder.Properties.Resources.Help;
+            this.itemhelprefmanual.Name = "itemhelprefmanual";
+            this.itemhelprefmanual.Size = new System.Drawing.Size(203, 22);
+            this.itemhelprefmanual.Text = "Reference &Manual";
+            this.itemhelprefmanual.Click += new System.EventHandler(this.itemhelprefmanual_Click);
+            // 
+            // itemhelpeditmode
+            // 
+            this.itemhelpeditmode.Image = global::CodeImp.DoomBuilder.Properties.Resources.Question;
+            this.itemhelpeditmode.Name = "itemhelpeditmode";
+            this.itemhelpeditmode.Size = new System.Drawing.Size(203, 22);
+            this.itemhelpeditmode.Text = "About this &Editing Mode";
+            this.itemhelpeditmode.Click += new System.EventHandler(this.itemhelpeditmode_Click);
+            // 
+            // seperatorhelpmanual
+            // 
+            this.seperatorhelpmanual.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
+            this.seperatorhelpmanual.Name = "seperatorhelpmanual";
+            this.seperatorhelpmanual.Size = new System.Drawing.Size(200, 6);
+            // 
+            // itemhelpabout
+            // 
+            this.itemhelpabout.Name = "itemhelpabout";
+            this.itemhelpabout.Size = new System.Drawing.Size(203, 22);
+            this.itemhelpabout.Text = "&About Doom Builder...";
+            this.itemhelpabout.Click += new System.EventHandler(this.itemhelpabout_Click);
+            // 
+            // toolbar
+            // 
+            this.toolbar.AutoSize = false;
+            this.toolbar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
+            this.toolbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.buttonnewmap,
             this.buttonopenmap,
             this.buttonsavemap,
@@ -955,364 +955,364 @@ namespace CodeImp.DoomBuilder.Windows
             this.seperatorgeometry,
             this.buttontest,
             this.seperatortesting});
-			this.toolbar.Location = new System.Drawing.Point(0, 24);
-			this.toolbar.Name = "toolbar";
-			this.toolbar.Size = new System.Drawing.Size(1012, 25);
-			this.toolbar.TabIndex = 1;
-			// 
-			// buttonnewmap
-			// 
-			this.buttonnewmap.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonnewmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.NewMap;
-			this.buttonnewmap.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonnewmap.Margin = new System.Windows.Forms.Padding(6, 1, 0, 2);
-			this.buttonnewmap.Name = "buttonnewmap";
-			this.buttonnewmap.Size = new System.Drawing.Size(23, 22);
-			this.buttonnewmap.Tag = "builder_newmap";
-			this.buttonnewmap.Text = "New Map";
-			this.buttonnewmap.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttonopenmap
-			// 
-			this.buttonopenmap.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonopenmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.OpenMap;
-			this.buttonopenmap.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonopenmap.Name = "buttonopenmap";
-			this.buttonopenmap.Size = new System.Drawing.Size(23, 22);
-			this.buttonopenmap.Tag = "builder_openmap";
-			this.buttonopenmap.Text = "Open Map";
-			this.buttonopenmap.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttonsavemap
-			// 
-			this.buttonsavemap.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonsavemap.Image = global::CodeImp.DoomBuilder.Properties.Resources.SaveMap;
-			this.buttonsavemap.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonsavemap.Name = "buttonsavemap";
-			this.buttonsavemap.Size = new System.Drawing.Size(23, 22);
-			this.buttonsavemap.Tag = "builder_savemap";
-			this.buttonsavemap.Text = "Save Map";
-			this.buttonsavemap.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttonscripteditor
-			// 
-			this.buttonscripteditor.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonscripteditor.Image = global::CodeImp.DoomBuilder.Properties.Resources.Script2;
-			this.buttonscripteditor.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonscripteditor.Name = "buttonscripteditor";
-			this.buttonscripteditor.Size = new System.Drawing.Size(23, 22);
-			this.buttonscripteditor.Tag = "builder_openscripteditor";
-			this.buttonscripteditor.Text = "Open Script Editor";
-			this.buttonscripteditor.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttonundo
-			// 
-			this.buttonundo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonundo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Undo;
-			this.buttonundo.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonundo.Name = "buttonundo";
-			this.buttonundo.Size = new System.Drawing.Size(23, 22);
-			this.buttonundo.Tag = "builder_undo";
-			this.buttonundo.Text = "Undo";
-			this.buttonundo.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttonredo
-			// 
-			this.buttonredo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonredo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Redo;
-			this.buttonredo.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonredo.Name = "buttonredo";
-			this.buttonredo.Size = new System.Drawing.Size(23, 22);
-			this.buttonredo.Tag = "builder_redo";
-			this.buttonredo.Text = "Redo";
-			this.buttonredo.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttoncut
-			// 
-			this.buttoncut.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttoncut.Image = global::CodeImp.DoomBuilder.Properties.Resources.Cut;
-			this.buttoncut.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttoncut.Name = "buttoncut";
-			this.buttoncut.Size = new System.Drawing.Size(23, 22);
-			this.buttoncut.Tag = "builder_cutselection";
-			this.buttoncut.Text = "Cut Selection";
-			this.buttoncut.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttoncopy
-			// 
-			this.buttoncopy.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttoncopy.Image = global::CodeImp.DoomBuilder.Properties.Resources.Copy;
-			this.buttoncopy.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttoncopy.Name = "buttoncopy";
-			this.buttoncopy.Size = new System.Drawing.Size(23, 22);
-			this.buttoncopy.Tag = "builder_copyselection";
-			this.buttoncopy.Text = "Copy Selection";
-			this.buttoncopy.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttonpaste
-			// 
-			this.buttonpaste.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonpaste.Image = global::CodeImp.DoomBuilder.Properties.Resources.Paste;
-			this.buttonpaste.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonpaste.Name = "buttonpaste";
-			this.buttonpaste.Size = new System.Drawing.Size(23, 22);
-			this.buttonpaste.Tag = "builder_pasteselection";
-			this.buttonpaste.Text = "Paste Selection";
-			this.buttonpaste.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttoninsertprefabfile
-			// 
-			this.buttoninsertprefabfile.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttoninsertprefabfile.Image = global::CodeImp.DoomBuilder.Properties.Resources.Prefab;
-			this.buttoninsertprefabfile.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttoninsertprefabfile.Name = "buttoninsertprefabfile";
-			this.buttoninsertprefabfile.Size = new System.Drawing.Size(23, 22);
-			this.buttoninsertprefabfile.Tag = "builder_insertprefabfile";
-			this.buttoninsertprefabfile.Text = "Insert Prefab from File";
-			this.buttoninsertprefabfile.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttoninsertpreviousprefab
-			// 
-			this.buttoninsertpreviousprefab.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttoninsertpreviousprefab.Image = global::CodeImp.DoomBuilder.Properties.Resources.Prefab2;
-			this.buttoninsertpreviousprefab.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttoninsertpreviousprefab.Name = "buttoninsertpreviousprefab";
-			this.buttoninsertpreviousprefab.Size = new System.Drawing.Size(23, 22);
-			this.buttoninsertpreviousprefab.Tag = "builder_insertpreviousprefab";
-			this.buttoninsertpreviousprefab.Text = "Insert Previous Prefab";
-			this.buttoninsertpreviousprefab.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttonthingsfilter
-			// 
-			this.buttonthingsfilter.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonthingsfilter.Enabled = false;
-			this.buttonthingsfilter.Image = global::CodeImp.DoomBuilder.Properties.Resources.Filter;
-			this.buttonthingsfilter.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonthingsfilter.Name = "buttonthingsfilter";
-			this.buttonthingsfilter.Size = new System.Drawing.Size(23, 22);
-			this.buttonthingsfilter.Tag = "builder_thingsfilterssetup";
-			this.buttonthingsfilter.Text = "Configure Things Filters";
-			this.buttonthingsfilter.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// thingfilters
-			// 
-			this.thingfilters.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.thingfilters.Enabled = false;
-			this.thingfilters.Items.AddRange(new object[] {
+            this.toolbar.Location = new System.Drawing.Point(0, 24);
+            this.toolbar.Name = "toolbar";
+            this.toolbar.Size = new System.Drawing.Size(1012, 25);
+            this.toolbar.TabIndex = 1;
+            // 
+            // buttonnewmap
+            // 
+            this.buttonnewmap.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonnewmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.NewMap;
+            this.buttonnewmap.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonnewmap.Margin = new System.Windows.Forms.Padding(6, 1, 0, 2);
+            this.buttonnewmap.Name = "buttonnewmap";
+            this.buttonnewmap.Size = new System.Drawing.Size(23, 22);
+            this.buttonnewmap.Tag = "builder_newmap";
+            this.buttonnewmap.Text = "New Map";
+            this.buttonnewmap.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttonopenmap
+            // 
+            this.buttonopenmap.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonopenmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.OpenMap;
+            this.buttonopenmap.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonopenmap.Name = "buttonopenmap";
+            this.buttonopenmap.Size = new System.Drawing.Size(23, 22);
+            this.buttonopenmap.Tag = "builder_openmap";
+            this.buttonopenmap.Text = "Open Map";
+            this.buttonopenmap.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttonsavemap
+            // 
+            this.buttonsavemap.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonsavemap.Image = global::CodeImp.DoomBuilder.Properties.Resources.SaveMap;
+            this.buttonsavemap.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonsavemap.Name = "buttonsavemap";
+            this.buttonsavemap.Size = new System.Drawing.Size(23, 22);
+            this.buttonsavemap.Tag = "builder_savemap";
+            this.buttonsavemap.Text = "Save Map";
+            this.buttonsavemap.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttonscripteditor
+            // 
+            this.buttonscripteditor.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonscripteditor.Image = global::CodeImp.DoomBuilder.Properties.Resources.Script2;
+            this.buttonscripteditor.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonscripteditor.Name = "buttonscripteditor";
+            this.buttonscripteditor.Size = new System.Drawing.Size(23, 22);
+            this.buttonscripteditor.Tag = "builder_openscripteditor";
+            this.buttonscripteditor.Text = "Open Script Editor";
+            this.buttonscripteditor.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttonundo
+            // 
+            this.buttonundo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonundo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Undo;
+            this.buttonundo.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonundo.Name = "buttonundo";
+            this.buttonundo.Size = new System.Drawing.Size(23, 22);
+            this.buttonundo.Tag = "builder_undo";
+            this.buttonundo.Text = "Undo";
+            this.buttonundo.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttonredo
+            // 
+            this.buttonredo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonredo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Redo;
+            this.buttonredo.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonredo.Name = "buttonredo";
+            this.buttonredo.Size = new System.Drawing.Size(23, 22);
+            this.buttonredo.Tag = "builder_redo";
+            this.buttonredo.Text = "Redo";
+            this.buttonredo.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttoncut
+            // 
+            this.buttoncut.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttoncut.Image = global::CodeImp.DoomBuilder.Properties.Resources.Cut;
+            this.buttoncut.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttoncut.Name = "buttoncut";
+            this.buttoncut.Size = new System.Drawing.Size(23, 22);
+            this.buttoncut.Tag = "builder_cutselection";
+            this.buttoncut.Text = "Cut Selection";
+            this.buttoncut.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttoncopy
+            // 
+            this.buttoncopy.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttoncopy.Image = global::CodeImp.DoomBuilder.Properties.Resources.Copy;
+            this.buttoncopy.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttoncopy.Name = "buttoncopy";
+            this.buttoncopy.Size = new System.Drawing.Size(23, 22);
+            this.buttoncopy.Tag = "builder_copyselection";
+            this.buttoncopy.Text = "Copy Selection";
+            this.buttoncopy.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttonpaste
+            // 
+            this.buttonpaste.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonpaste.Image = global::CodeImp.DoomBuilder.Properties.Resources.Paste;
+            this.buttonpaste.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonpaste.Name = "buttonpaste";
+            this.buttonpaste.Size = new System.Drawing.Size(23, 22);
+            this.buttonpaste.Tag = "builder_pasteselection";
+            this.buttonpaste.Text = "Paste Selection";
+            this.buttonpaste.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttoninsertprefabfile
+            // 
+            this.buttoninsertprefabfile.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttoninsertprefabfile.Image = global::CodeImp.DoomBuilder.Properties.Resources.Prefab;
+            this.buttoninsertprefabfile.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttoninsertprefabfile.Name = "buttoninsertprefabfile";
+            this.buttoninsertprefabfile.Size = new System.Drawing.Size(23, 22);
+            this.buttoninsertprefabfile.Tag = "builder_insertprefabfile";
+            this.buttoninsertprefabfile.Text = "Insert Prefab from File";
+            this.buttoninsertprefabfile.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttoninsertpreviousprefab
+            // 
+            this.buttoninsertpreviousprefab.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttoninsertpreviousprefab.Image = global::CodeImp.DoomBuilder.Properties.Resources.Prefab2;
+            this.buttoninsertpreviousprefab.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttoninsertpreviousprefab.Name = "buttoninsertpreviousprefab";
+            this.buttoninsertpreviousprefab.Size = new System.Drawing.Size(23, 22);
+            this.buttoninsertpreviousprefab.Tag = "builder_insertpreviousprefab";
+            this.buttoninsertpreviousprefab.Text = "Insert Previous Prefab";
+            this.buttoninsertpreviousprefab.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttonthingsfilter
+            // 
+            this.buttonthingsfilter.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonthingsfilter.Enabled = false;
+            this.buttonthingsfilter.Image = global::CodeImp.DoomBuilder.Properties.Resources.Filter;
+            this.buttonthingsfilter.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonthingsfilter.Name = "buttonthingsfilter";
+            this.buttonthingsfilter.Size = new System.Drawing.Size(23, 22);
+            this.buttonthingsfilter.Tag = "builder_thingsfilterssetup";
+            this.buttonthingsfilter.Text = "Configure Things Filters";
+            this.buttonthingsfilter.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // thingfilters
+            // 
+            this.thingfilters.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.thingfilters.Enabled = false;
+            this.thingfilters.Items.AddRange(new object[] {
             "(none)",
             "(custom)",
             "Easy skill items only",
             "Medium skill items only",
             "Hard skill items only"});
-			this.thingfilters.Margin = new System.Windows.Forms.Padding(1, 0, 6, 0);
-			this.thingfilters.Name = "thingfilters";
-			this.thingfilters.Size = new System.Drawing.Size(130, 25);
-			this.thingfilters.ToolTipText = "Things Filter";
-			this.thingfilters.SelectedIndexChanged += new System.EventHandler(this.thingfilters_SelectedIndexChanged);
-			this.thingfilters.DropDownClosed += new System.EventHandler(this.LoseFocus);
-			// 
-			// buttonviewnormal
-			// 
-			this.buttonviewnormal.CheckOnClick = true;
-			this.buttonviewnormal.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonviewnormal.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewNormal;
-			this.buttonviewnormal.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonviewnormal.Name = "buttonviewnormal";
-			this.buttonviewnormal.Size = new System.Drawing.Size(23, 22);
-			this.buttonviewnormal.Tag = "builder_viewmodenormal";
-			this.buttonviewnormal.Text = "View Wireframe";
-			this.buttonviewnormal.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttonviewbrightness
-			// 
-			this.buttonviewbrightness.CheckOnClick = true;
-			this.buttonviewbrightness.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonviewbrightness.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewBrightness;
-			this.buttonviewbrightness.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonviewbrightness.Name = "buttonviewbrightness";
-			this.buttonviewbrightness.Size = new System.Drawing.Size(23, 22);
-			this.buttonviewbrightness.Tag = "builder_viewmodebrightness";
-			this.buttonviewbrightness.Text = "View Brightness Levels";
-			this.buttonviewbrightness.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttonviewfloors
-			// 
-			this.buttonviewfloors.CheckOnClick = true;
-			this.buttonviewfloors.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonviewfloors.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewTextureFloor;
-			this.buttonviewfloors.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonviewfloors.Name = "buttonviewfloors";
-			this.buttonviewfloors.Size = new System.Drawing.Size(23, 22);
-			this.buttonviewfloors.Tag = "builder_viewmodefloors";
-			this.buttonviewfloors.Text = "View Floor Textures";
-			this.buttonviewfloors.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttonviewceilings
-			// 
-			this.buttonviewceilings.CheckOnClick = true;
-			this.buttonviewceilings.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonviewceilings.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewTextureCeiling;
-			this.buttonviewceilings.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonviewceilings.Name = "buttonviewceilings";
-			this.buttonviewceilings.Size = new System.Drawing.Size(23, 22);
-			this.buttonviewceilings.Tag = "builder_viewmodeceilings";
-			this.buttonviewceilings.Text = "View Ceiling Textures";
-			this.buttonviewceilings.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// seperatorviews
-			// 
-			this.seperatorviews.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
-			this.seperatorviews.Name = "seperatorviews";
-			this.seperatorviews.Size = new System.Drawing.Size(6, 25);
-			// 
-			// buttonsnaptogrid
-			// 
-			this.buttonsnaptogrid.Checked = true;
-			this.buttonsnaptogrid.CheckState = System.Windows.Forms.CheckState.Checked;
-			this.buttonsnaptogrid.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonsnaptogrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid4;
-			this.buttonsnaptogrid.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonsnaptogrid.Name = "buttonsnaptogrid";
-			this.buttonsnaptogrid.Size = new System.Drawing.Size(23, 22);
-			this.buttonsnaptogrid.Tag = "builder_togglesnap";
-			this.buttonsnaptogrid.Text = "Snap to Grid";
-			this.buttonsnaptogrid.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttonautomerge
-			// 
-			this.buttonautomerge.Checked = true;
-			this.buttonautomerge.CheckState = System.Windows.Forms.CheckState.Checked;
-			this.buttonautomerge.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonautomerge.Image = global::CodeImp.DoomBuilder.Properties.Resources.mergegeometry2;
-			this.buttonautomerge.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonautomerge.Name = "buttonautomerge";
-			this.buttonautomerge.Size = new System.Drawing.Size(23, 22);
-			this.buttonautomerge.Tag = "builder_toggleautomerge";
-			this.buttonautomerge.Text = "Merge Geometry";
-			this.buttonautomerge.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// separatorgzmodes
-			// 
-			this.separatorgzmodes.Name = "separatorgzmodes";
-			this.separatorgzmodes.Size = new System.Drawing.Size(6, 25);
-			// 
-			// buttontogglefx
-			// 
-			this.buttontogglefx.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttontogglefx.Enabled = false;
-			this.buttontogglefx.Image = global::CodeImp.DoomBuilder.Properties.Resources.fx;
-			this.buttontogglefx.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttontogglefx.Name = "buttontogglefx";
-			this.buttontogglefx.Size = new System.Drawing.Size(23, 22);
-			this.buttontogglefx.Tag = "builder_gztogglefx";
-			this.buttontogglefx.Text = "Toggle GZDoom Effects";
-			this.buttontogglefx.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttontoggledynlight
-			// 
-			this.buttontoggledynlight.CheckOnClick = true;
-			this.buttontoggledynlight.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttontoggledynlight.Enabled = false;
-			this.buttontoggledynlight.Image = global::CodeImp.DoomBuilder.Properties.Resources.Light;
-			this.buttontoggledynlight.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttontoggledynlight.Name = "buttontoggledynlight";
-			this.buttontoggledynlight.Size = new System.Drawing.Size(23, 22);
-			this.buttontoggledynlight.Tag = "builder_gztogglelights";
-			this.buttontoggledynlight.Text = "Toggle Dynamic Lights";
-			this.buttontoggledynlight.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttontoggleanimatedlight
-			// 
-			this.buttontoggleanimatedlight.CheckOnClick = true;
-			this.buttontoggleanimatedlight.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttontoggleanimatedlight.Enabled = false;
-			this.buttontoggleanimatedlight.Image = global::CodeImp.DoomBuilder.Properties.Resources.Light_animate;
-			this.buttontoggleanimatedlight.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttontoggleanimatedlight.Name = "buttontoggleanimatedlight";
-			this.buttontoggleanimatedlight.Size = new System.Drawing.Size(23, 22);
-			this.buttontoggleanimatedlight.Tag = "builder_gztogglelightsanimation";
-			this.buttontoggleanimatedlight.Text = "Toggle Dynamic Light Animation";
-			this.buttontoggleanimatedlight.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttontogglemodels
-			// 
-			this.buttontogglemodels.CheckOnClick = true;
-			this.buttontogglemodels.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttontogglemodels.Enabled = false;
-			this.buttontogglemodels.Image = ((System.Drawing.Image)(resources.GetObject("buttontogglemodels.Image")));
-			this.buttontogglemodels.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttontogglemodels.Name = "buttontogglemodels";
-			this.buttontogglemodels.Size = new System.Drawing.Size(23, 22);
-			this.buttontogglemodels.Tag = "builder_gztogglemodels";
-			this.buttontogglemodels.Text = "Toggle Models Rendering";
-			this.buttontogglemodels.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttonselectedmodelsonly
-			// 
-			this.buttonselectedmodelsonly.CheckOnClick = true;
-			this.buttonselectedmodelsonly.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonselectedmodelsonly.Enabled = false;
-			this.buttonselectedmodelsonly.Image = ((System.Drawing.Image)(resources.GetObject("buttonselectedmodelsonly.Image")));
-			this.buttonselectedmodelsonly.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttonselectedmodelsonly.Name = "buttonselectedmodelsonly";
-			this.buttonselectedmodelsonly.Size = new System.Drawing.Size(23, 22);
-			this.buttonselectedmodelsonly.Tag = "builder_gzdrawselectedmodelsonly";
-			this.buttonselectedmodelsonly.Text = "Render models for selected things only";
-			this.buttonselectedmodelsonly.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttontogglefog
-			// 
-			this.buttontogglefog.CheckOnClick = true;
-			this.buttontogglefog.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttontogglefog.Enabled = false;
-			this.buttontogglefog.Image = global::CodeImp.DoomBuilder.Properties.Resources.fog;
-			this.buttontogglefog.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttontogglefog.Name = "buttontogglefog";
-			this.buttontogglefog.Size = new System.Drawing.Size(23, 22);
-			this.buttontogglefog.Tag = "builder_gztogglefog";
-			this.buttontogglefog.Text = "Toggle Fog Rendering";
-			this.buttontogglefog.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// buttontoggleeventlines
-			// 
-			this.buttontoggleeventlines.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttontoggleeventlines.Enabled = false;
-			this.buttontoggleeventlines.Image = global::CodeImp.DoomBuilder.Properties.Resources.InfoLine;
-			this.buttontoggleeventlines.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttontoggleeventlines.Name = "buttontoggleeventlines";
-			this.buttontoggleeventlines.Size = new System.Drawing.Size(23, 22);
-			this.buttontoggleeventlines.Tag = "builder_gztoggleeventlines";
-			this.buttontoggleeventlines.Text = "Toggle Event Lines";
-			this.buttontoggleeventlines.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// seperatorgeometry
-			// 
-			this.seperatorgeometry.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
-			this.seperatorgeometry.Name = "seperatorgeometry";
-			this.seperatorgeometry.Size = new System.Drawing.Size(6, 25);
-			// 
-			// buttontest
-			// 
-			this.buttontest.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttontest.Image = global::CodeImp.DoomBuilder.Properties.Resources.Test;
-			this.buttontest.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
-			this.buttontest.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttontest.Name = "buttontest";
-			this.buttontest.Size = new System.Drawing.Size(32, 22);
-			this.buttontest.Tag = "builder_testmap";
-			this.buttontest.Text = "Test Map";
-			this.buttontest.ButtonClick += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// seperatortesting
-			// 
-			this.seperatortesting.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
-			this.seperatortesting.Name = "seperatortesting";
-			this.seperatortesting.Size = new System.Drawing.Size(6, 25);
-			// 
-			// statusbar
-			// 
-			this.statusbar.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.statusbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.thingfilters.Margin = new System.Windows.Forms.Padding(1, 0, 6, 0);
+            this.thingfilters.Name = "thingfilters";
+            this.thingfilters.Size = new System.Drawing.Size(130, 25);
+            this.thingfilters.ToolTipText = "Things Filter";
+            this.thingfilters.SelectedIndexChanged += new System.EventHandler(this.thingfilters_SelectedIndexChanged);
+            this.thingfilters.DropDownClosed += new System.EventHandler(this.LoseFocus);
+            // 
+            // buttonviewnormal
+            // 
+            this.buttonviewnormal.CheckOnClick = true;
+            this.buttonviewnormal.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonviewnormal.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewNormal;
+            this.buttonviewnormal.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonviewnormal.Name = "buttonviewnormal";
+            this.buttonviewnormal.Size = new System.Drawing.Size(23, 22);
+            this.buttonviewnormal.Tag = "builder_viewmodenormal";
+            this.buttonviewnormal.Text = "View Wireframe";
+            this.buttonviewnormal.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttonviewbrightness
+            // 
+            this.buttonviewbrightness.CheckOnClick = true;
+            this.buttonviewbrightness.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonviewbrightness.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewBrightness;
+            this.buttonviewbrightness.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonviewbrightness.Name = "buttonviewbrightness";
+            this.buttonviewbrightness.Size = new System.Drawing.Size(23, 22);
+            this.buttonviewbrightness.Tag = "builder_viewmodebrightness";
+            this.buttonviewbrightness.Text = "View Brightness Levels";
+            this.buttonviewbrightness.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttonviewfloors
+            // 
+            this.buttonviewfloors.CheckOnClick = true;
+            this.buttonviewfloors.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonviewfloors.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewTextureFloor;
+            this.buttonviewfloors.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonviewfloors.Name = "buttonviewfloors";
+            this.buttonviewfloors.Size = new System.Drawing.Size(23, 22);
+            this.buttonviewfloors.Tag = "builder_viewmodefloors";
+            this.buttonviewfloors.Text = "View Floor Textures";
+            this.buttonviewfloors.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttonviewceilings
+            // 
+            this.buttonviewceilings.CheckOnClick = true;
+            this.buttonviewceilings.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonviewceilings.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewTextureCeiling;
+            this.buttonviewceilings.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonviewceilings.Name = "buttonviewceilings";
+            this.buttonviewceilings.Size = new System.Drawing.Size(23, 22);
+            this.buttonviewceilings.Tag = "builder_viewmodeceilings";
+            this.buttonviewceilings.Text = "View Ceiling Textures";
+            this.buttonviewceilings.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // seperatorviews
+            // 
+            this.seperatorviews.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.seperatorviews.Name = "seperatorviews";
+            this.seperatorviews.Size = new System.Drawing.Size(6, 25);
+            // 
+            // buttonsnaptogrid
+            // 
+            this.buttonsnaptogrid.Checked = true;
+            this.buttonsnaptogrid.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.buttonsnaptogrid.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonsnaptogrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid4;
+            this.buttonsnaptogrid.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonsnaptogrid.Name = "buttonsnaptogrid";
+            this.buttonsnaptogrid.Size = new System.Drawing.Size(23, 22);
+            this.buttonsnaptogrid.Tag = "builder_togglesnap";
+            this.buttonsnaptogrid.Text = "Snap to Grid";
+            this.buttonsnaptogrid.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttonautomerge
+            // 
+            this.buttonautomerge.Checked = true;
+            this.buttonautomerge.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.buttonautomerge.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonautomerge.Image = global::CodeImp.DoomBuilder.Properties.Resources.mergegeometry2;
+            this.buttonautomerge.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonautomerge.Name = "buttonautomerge";
+            this.buttonautomerge.Size = new System.Drawing.Size(23, 22);
+            this.buttonautomerge.Tag = "builder_toggleautomerge";
+            this.buttonautomerge.Text = "Merge Geometry";
+            this.buttonautomerge.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // separatorgzmodes
+            // 
+            this.separatorgzmodes.Name = "separatorgzmodes";
+            this.separatorgzmodes.Size = new System.Drawing.Size(6, 25);
+            // 
+            // buttontogglefx
+            // 
+            this.buttontogglefx.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttontogglefx.Enabled = false;
+            this.buttontogglefx.Image = global::CodeImp.DoomBuilder.Properties.Resources.fx;
+            this.buttontogglefx.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttontogglefx.Name = "buttontogglefx";
+            this.buttontogglefx.Size = new System.Drawing.Size(23, 22);
+            this.buttontogglefx.Tag = "builder_gztogglefx";
+            this.buttontogglefx.Text = "Toggle GZDoom Effects";
+            this.buttontogglefx.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttontoggledynlight
+            // 
+            this.buttontoggledynlight.CheckOnClick = true;
+            this.buttontoggledynlight.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttontoggledynlight.Enabled = false;
+            this.buttontoggledynlight.Image = global::CodeImp.DoomBuilder.Properties.Resources.Light;
+            this.buttontoggledynlight.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttontoggledynlight.Name = "buttontoggledynlight";
+            this.buttontoggledynlight.Size = new System.Drawing.Size(23, 22);
+            this.buttontoggledynlight.Tag = "builder_gztogglelights";
+            this.buttontoggledynlight.Text = "Toggle Dynamic Lights";
+            this.buttontoggledynlight.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttontoggleanimatedlight
+            // 
+            this.buttontoggleanimatedlight.CheckOnClick = true;
+            this.buttontoggleanimatedlight.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttontoggleanimatedlight.Enabled = false;
+            this.buttontoggleanimatedlight.Image = global::CodeImp.DoomBuilder.Properties.Resources.Light_animate;
+            this.buttontoggleanimatedlight.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttontoggleanimatedlight.Name = "buttontoggleanimatedlight";
+            this.buttontoggleanimatedlight.Size = new System.Drawing.Size(23, 22);
+            this.buttontoggleanimatedlight.Tag = "builder_gztogglelightsanimation";
+            this.buttontoggleanimatedlight.Text = "Toggle Dynamic Light Animation";
+            this.buttontoggleanimatedlight.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttontogglemodels
+            // 
+            this.buttontogglemodels.CheckOnClick = true;
+            this.buttontogglemodels.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttontogglemodels.Enabled = false;
+            this.buttontogglemodels.Image = ((System.Drawing.Image)(resources.GetObject("buttontogglemodels.Image")));
+            this.buttontogglemodels.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttontogglemodels.Name = "buttontogglemodels";
+            this.buttontogglemodels.Size = new System.Drawing.Size(23, 22);
+            this.buttontogglemodels.Tag = "builder_gztogglemodels";
+            this.buttontogglemodels.Text = "Toggle Models Rendering";
+            this.buttontogglemodels.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttonselectedmodelsonly
+            // 
+            this.buttonselectedmodelsonly.CheckOnClick = true;
+            this.buttonselectedmodelsonly.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonselectedmodelsonly.Enabled = false;
+            this.buttonselectedmodelsonly.Image = ((System.Drawing.Image)(resources.GetObject("buttonselectedmodelsonly.Image")));
+            this.buttonselectedmodelsonly.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttonselectedmodelsonly.Name = "buttonselectedmodelsonly";
+            this.buttonselectedmodelsonly.Size = new System.Drawing.Size(23, 22);
+            this.buttonselectedmodelsonly.Tag = "builder_gzdrawselectedmodelsonly";
+            this.buttonselectedmodelsonly.Text = "Render models for selected things only";
+            this.buttonselectedmodelsonly.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttontogglefog
+            // 
+            this.buttontogglefog.CheckOnClick = true;
+            this.buttontogglefog.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttontogglefog.Enabled = false;
+            this.buttontogglefog.Image = global::CodeImp.DoomBuilder.Properties.Resources.fog;
+            this.buttontogglefog.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttontogglefog.Name = "buttontogglefog";
+            this.buttontogglefog.Size = new System.Drawing.Size(23, 22);
+            this.buttontogglefog.Tag = "builder_gztogglefog";
+            this.buttontogglefog.Text = "Toggle Fog Rendering";
+            this.buttontogglefog.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // buttontoggleeventlines
+            // 
+            this.buttontoggleeventlines.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttontoggleeventlines.Enabled = false;
+            this.buttontoggleeventlines.Image = global::CodeImp.DoomBuilder.Properties.Resources.InfoLine;
+            this.buttontoggleeventlines.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttontoggleeventlines.Name = "buttontoggleeventlines";
+            this.buttontoggleeventlines.Size = new System.Drawing.Size(23, 22);
+            this.buttontoggleeventlines.Tag = "builder_gztoggleeventlines";
+            this.buttontoggleeventlines.Text = "Toggle Event Lines";
+            this.buttontoggleeventlines.Click += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // seperatorgeometry
+            // 
+            this.seperatorgeometry.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.seperatorgeometry.Name = "seperatorgeometry";
+            this.seperatorgeometry.Size = new System.Drawing.Size(6, 25);
+            // 
+            // buttontest
+            // 
+            this.buttontest.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttontest.Image = global::CodeImp.DoomBuilder.Properties.Resources.Test;
+            this.buttontest.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
+            this.buttontest.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.buttontest.Name = "buttontest";
+            this.buttontest.Size = new System.Drawing.Size(32, 22);
+            this.buttontest.Tag = "builder_testmap";
+            this.buttontest.Text = "Test Map";
+            this.buttontest.ButtonClick += new System.EventHandler(this.InvokeTaggedAction);
+            // 
+            // seperatortesting
+            // 
+            this.seperatortesting.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
+            this.seperatortesting.Name = "seperatortesting";
+            this.seperatortesting.Size = new System.Drawing.Size(6, 25);
+            // 
+            // statusbar
+            // 
+            this.statusbar.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.statusbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.statuslabel,
             this.configlabel,
             toolStripSeparator12,
@@ -1327,49 +1327,49 @@ namespace CodeImp.DoomBuilder.Windows
             this.yposlabel,
             toolStripSeparator9,
             this.warnsLabel});
-			this.statusbar.Location = new System.Drawing.Point(0, 670);
-			this.statusbar.Name = "statusbar";
-			this.statusbar.ShowItemToolTips = true;
-			this.statusbar.Size = new System.Drawing.Size(1012, 23);
-			this.statusbar.TabIndex = 2;
-			// 
-			// statuslabel
-			// 
-			this.statuslabel.Image = global::CodeImp.DoomBuilder.Properties.Resources.Status2;
-			this.statuslabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
-			this.statuslabel.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
-			this.statuslabel.Name = "statuslabel";
-			this.statuslabel.Size = new System.Drawing.Size(340, 18);
-			this.statuslabel.Spring = true;
-			this.statuslabel.Text = "Initializing user interface...";
-			this.statuslabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
-			// 
-			// configlabel
-			// 
-			this.configlabel.AutoSize = false;
-			this.configlabel.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.configlabel.Name = "configlabel";
-			this.configlabel.Size = new System.Drawing.Size(280, 18);
-			this.configlabel.Text = "ZDoom (Doom in Hexen Format)";
-			this.configlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
-			this.configlabel.ToolTipText = "Current Game Configuration";
-			// 
-			// gridlabel
-			// 
-			this.gridlabel.AutoSize = false;
-			this.gridlabel.AutoToolTip = true;
-			this.gridlabel.Name = "gridlabel";
-			this.gridlabel.Size = new System.Drawing.Size(62, 18);
-			this.gridlabel.Text = "32 mp";
-			this.gridlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
-			this.gridlabel.TextImageRelation = System.Windows.Forms.TextImageRelation.Overlay;
-			this.gridlabel.ToolTipText = "Grid size";
-			// 
-			// buttongrid
-			// 
-			this.buttongrid.AutoToolTip = false;
-			this.buttongrid.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttongrid.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.statusbar.Location = new System.Drawing.Point(0, 670);
+            this.statusbar.Name = "statusbar";
+            this.statusbar.ShowItemToolTips = true;
+            this.statusbar.Size = new System.Drawing.Size(1012, 23);
+            this.statusbar.TabIndex = 2;
+            // 
+            // statuslabel
+            // 
+            this.statuslabel.Image = global::CodeImp.DoomBuilder.Properties.Resources.Status2;
+            this.statuslabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.statuslabel.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
+            this.statuslabel.Name = "statuslabel";
+            this.statuslabel.Size = new System.Drawing.Size(340, 18);
+            this.statuslabel.Spring = true;
+            this.statuslabel.Text = "Initializing user interface...";
+            this.statuslabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            // 
+            // configlabel
+            // 
+            this.configlabel.AutoSize = false;
+            this.configlabel.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.configlabel.Name = "configlabel";
+            this.configlabel.Size = new System.Drawing.Size(280, 18);
+            this.configlabel.Text = "ZDoom (Doom in Hexen Format)";
+            this.configlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+            this.configlabel.ToolTipText = "Current Game Configuration";
+            // 
+            // gridlabel
+            // 
+            this.gridlabel.AutoSize = false;
+            this.gridlabel.AutoToolTip = true;
+            this.gridlabel.Name = "gridlabel";
+            this.gridlabel.Size = new System.Drawing.Size(62, 18);
+            this.gridlabel.Text = "32 mp";
+            this.gridlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+            this.gridlabel.TextImageRelation = System.Windows.Forms.TextImageRelation.Overlay;
+            this.gridlabel.ToolTipText = "Grid size";
+            // 
+            // buttongrid
+            // 
+            this.buttongrid.AutoToolTip = false;
+            this.buttongrid.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttongrid.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.itemgrid1024,
             this.itemgrid512,
             this.itemgrid256,
@@ -1381,109 +1381,109 @@ namespace CodeImp.DoomBuilder.Windows
             this.itemgrid4,
             toolStripMenuItem4,
             this.itemgridcustom});
-			this.buttongrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2_arrowup;
-			this.buttongrid.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
-			this.buttongrid.ImageTransparentColor = System.Drawing.Color.Transparent;
-			this.buttongrid.Name = "buttongrid";
-			this.buttongrid.ShowDropDownArrow = false;
-			this.buttongrid.Size = new System.Drawing.Size(29, 21);
-			this.buttongrid.Text = "Grid";
-			// 
-			// itemgrid1024
-			// 
-			this.itemgrid1024.Name = "itemgrid1024";
-			this.itemgrid1024.Size = new System.Drawing.Size(153, 22);
-			this.itemgrid1024.Tag = "1024";
-			this.itemgrid1024.Text = "1024 mp";
-			this.itemgrid1024.Click += new System.EventHandler(this.itemgridsize_Click);
-			// 
-			// itemgrid512
-			// 
-			this.itemgrid512.Name = "itemgrid512";
-			this.itemgrid512.Size = new System.Drawing.Size(153, 22);
-			this.itemgrid512.Tag = "512";
-			this.itemgrid512.Text = "512 mp";
-			this.itemgrid512.Click += new System.EventHandler(this.itemgridsize_Click);
-			// 
-			// itemgrid256
-			// 
-			this.itemgrid256.Name = "itemgrid256";
-			this.itemgrid256.Size = new System.Drawing.Size(153, 22);
-			this.itemgrid256.Tag = "256";
-			this.itemgrid256.Text = "256 mp";
-			this.itemgrid256.Click += new System.EventHandler(this.itemgridsize_Click);
-			// 
-			// itemgrid128
-			// 
-			this.itemgrid128.Name = "itemgrid128";
-			this.itemgrid128.Size = new System.Drawing.Size(153, 22);
-			this.itemgrid128.Tag = "128";
-			this.itemgrid128.Text = "128 mp";
-			this.itemgrid128.Click += new System.EventHandler(this.itemgridsize_Click);
-			// 
-			// itemgrid64
-			// 
-			this.itemgrid64.Name = "itemgrid64";
-			this.itemgrid64.Size = new System.Drawing.Size(153, 22);
-			this.itemgrid64.Tag = "64";
-			this.itemgrid64.Text = "64 mp";
-			this.itemgrid64.Click += new System.EventHandler(this.itemgridsize_Click);
-			// 
-			// itemgrid32
-			// 
-			this.itemgrid32.Name = "itemgrid32";
-			this.itemgrid32.Size = new System.Drawing.Size(153, 22);
-			this.itemgrid32.Tag = "32";
-			this.itemgrid32.Text = "32 mp";
-			this.itemgrid32.Click += new System.EventHandler(this.itemgridsize_Click);
-			// 
-			// itemgrid16
-			// 
-			this.itemgrid16.Name = "itemgrid16";
-			this.itemgrid16.Size = new System.Drawing.Size(153, 22);
-			this.itemgrid16.Tag = "16";
-			this.itemgrid16.Text = "16 mp";
-			this.itemgrid16.Click += new System.EventHandler(this.itemgridsize_Click);
-			// 
-			// itemgrid8
-			// 
-			this.itemgrid8.Name = "itemgrid8";
-			this.itemgrid8.Size = new System.Drawing.Size(153, 22);
-			this.itemgrid8.Tag = "8";
-			this.itemgrid8.Text = "8 mp";
-			this.itemgrid8.Click += new System.EventHandler(this.itemgridsize_Click);
-			// 
-			// itemgrid4
-			// 
-			this.itemgrid4.Name = "itemgrid4";
-			this.itemgrid4.Size = new System.Drawing.Size(153, 22);
-			this.itemgrid4.Tag = "4";
-			this.itemgrid4.Text = "4 mp";
-			this.itemgrid4.Click += new System.EventHandler(this.itemgridsize_Click);
-			// 
-			// itemgridcustom
-			// 
-			this.itemgridcustom.Name = "itemgridcustom";
-			this.itemgridcustom.Size = new System.Drawing.Size(153, 22);
-			this.itemgridcustom.Text = "Customize...";
-			this.itemgridcustom.Click += new System.EventHandler(this.itemgridcustom_Click);
-			// 
-			// zoomlabel
-			// 
-			this.zoomlabel.AutoSize = false;
-			this.zoomlabel.AutoToolTip = true;
-			this.zoomlabel.Name = "zoomlabel";
-			this.zoomlabel.Size = new System.Drawing.Size(54, 18);
-			this.zoomlabel.Text = "50%";
-			this.zoomlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
-			this.zoomlabel.TextImageRelation = System.Windows.Forms.TextImageRelation.Overlay;
-			this.zoomlabel.ToolTipText = "Zoom level";
-			// 
-			// buttonzoom
-			// 
-			this.buttonzoom.AutoToolTip = false;
-			this.buttonzoom.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttonzoom.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.buttongrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2_arrowup;
+            this.buttongrid.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
+            this.buttongrid.ImageTransparentColor = System.Drawing.Color.Transparent;
+            this.buttongrid.Name = "buttongrid";
+            this.buttongrid.ShowDropDownArrow = false;
+            this.buttongrid.Size = new System.Drawing.Size(29, 21);
+            this.buttongrid.Text = "Grid";
+            // 
+            // itemgrid1024
+            // 
+            this.itemgrid1024.Name = "itemgrid1024";
+            this.itemgrid1024.Size = new System.Drawing.Size(153, 22);
+            this.itemgrid1024.Tag = "1024";
+            this.itemgrid1024.Text = "1024 mp";
+            this.itemgrid1024.Click += new System.EventHandler(this.itemgridsize_Click);
+            // 
+            // itemgrid512
+            // 
+            this.itemgrid512.Name = "itemgrid512";
+            this.itemgrid512.Size = new System.Drawing.Size(153, 22);
+            this.itemgrid512.Tag = "512";
+            this.itemgrid512.Text = "512 mp";
+            this.itemgrid512.Click += new System.EventHandler(this.itemgridsize_Click);
+            // 
+            // itemgrid256
+            // 
+            this.itemgrid256.Name = "itemgrid256";
+            this.itemgrid256.Size = new System.Drawing.Size(153, 22);
+            this.itemgrid256.Tag = "256";
+            this.itemgrid256.Text = "256 mp";
+            this.itemgrid256.Click += new System.EventHandler(this.itemgridsize_Click);
+            // 
+            // itemgrid128
+            // 
+            this.itemgrid128.Name = "itemgrid128";
+            this.itemgrid128.Size = new System.Drawing.Size(153, 22);
+            this.itemgrid128.Tag = "128";
+            this.itemgrid128.Text = "128 mp";
+            this.itemgrid128.Click += new System.EventHandler(this.itemgridsize_Click);
+            // 
+            // itemgrid64
+            // 
+            this.itemgrid64.Name = "itemgrid64";
+            this.itemgrid64.Size = new System.Drawing.Size(153, 22);
+            this.itemgrid64.Tag = "64";
+            this.itemgrid64.Text = "64 mp";
+            this.itemgrid64.Click += new System.EventHandler(this.itemgridsize_Click);
+            // 
+            // itemgrid32
+            // 
+            this.itemgrid32.Name = "itemgrid32";
+            this.itemgrid32.Size = new System.Drawing.Size(153, 22);
+            this.itemgrid32.Tag = "32";
+            this.itemgrid32.Text = "32 mp";
+            this.itemgrid32.Click += new System.EventHandler(this.itemgridsize_Click);
+            // 
+            // itemgrid16
+            // 
+            this.itemgrid16.Name = "itemgrid16";
+            this.itemgrid16.Size = new System.Drawing.Size(153, 22);
+            this.itemgrid16.Tag = "16";
+            this.itemgrid16.Text = "16 mp";
+            this.itemgrid16.Click += new System.EventHandler(this.itemgridsize_Click);
+            // 
+            // itemgrid8
+            // 
+            this.itemgrid8.Name = "itemgrid8";
+            this.itemgrid8.Size = new System.Drawing.Size(153, 22);
+            this.itemgrid8.Tag = "8";
+            this.itemgrid8.Text = "8 mp";
+            this.itemgrid8.Click += new System.EventHandler(this.itemgridsize_Click);
+            // 
+            // itemgrid4
+            // 
+            this.itemgrid4.Name = "itemgrid4";
+            this.itemgrid4.Size = new System.Drawing.Size(153, 22);
+            this.itemgrid4.Tag = "4";
+            this.itemgrid4.Text = "4 mp";
+            this.itemgrid4.Click += new System.EventHandler(this.itemgridsize_Click);
+            // 
+            // itemgridcustom
+            // 
+            this.itemgridcustom.Name = "itemgridcustom";
+            this.itemgridcustom.Size = new System.Drawing.Size(153, 22);
+            this.itemgridcustom.Text = "Customize...";
+            this.itemgridcustom.Click += new System.EventHandler(this.itemgridcustom_Click);
+            // 
+            // zoomlabel
+            // 
+            this.zoomlabel.AutoSize = false;
+            this.zoomlabel.AutoToolTip = true;
+            this.zoomlabel.Name = "zoomlabel";
+            this.zoomlabel.Size = new System.Drawing.Size(54, 18);
+            this.zoomlabel.Text = "50%";
+            this.zoomlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+            this.zoomlabel.TextImageRelation = System.Windows.Forms.TextImageRelation.Overlay;
+            this.zoomlabel.ToolTipText = "Zoom level";
+            // 
+            // buttonzoom
+            // 
+            this.buttonzoom.AutoToolTip = false;
+            this.buttonzoom.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.buttonzoom.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.itemzoom200,
             this.itemzoom100,
             this.itemzoom50,
@@ -1492,317 +1492,317 @@ namespace CodeImp.DoomBuilder.Windows
             this.itemzoom5,
             toolStripSeparator2,
             this.itemzoomfittoscreen});
-			this.buttonzoom.Image = global::CodeImp.DoomBuilder.Properties.Resources.Zoom_arrowup;
-			this.buttonzoom.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
-			this.buttonzoom.ImageTransparentColor = System.Drawing.Color.Transparent;
-			this.buttonzoom.Name = "buttonzoom";
-			this.buttonzoom.ShowDropDownArrow = false;
-			this.buttonzoom.Size = new System.Drawing.Size(29, 21);
-			this.buttonzoom.Text = "Zoom";
-			// 
-			// itemzoom200
-			// 
-			this.itemzoom200.Name = "itemzoom200";
-			this.itemzoom200.Size = new System.Drawing.Size(156, 22);
-			this.itemzoom200.Tag = "200";
-			this.itemzoom200.Text = "200%";
-			this.itemzoom200.Click += new System.EventHandler(this.itemzoomto_Click);
-			// 
-			// itemzoom100
-			// 
-			this.itemzoom100.Name = "itemzoom100";
-			this.itemzoom100.Size = new System.Drawing.Size(156, 22);
-			this.itemzoom100.Tag = "100";
-			this.itemzoom100.Text = "100%";
-			this.itemzoom100.Click += new System.EventHandler(this.itemzoomto_Click);
-			// 
-			// itemzoom50
-			// 
-			this.itemzoom50.Name = "itemzoom50";
-			this.itemzoom50.Size = new System.Drawing.Size(156, 22);
-			this.itemzoom50.Tag = "50";
-			this.itemzoom50.Text = "50%";
-			this.itemzoom50.Click += new System.EventHandler(this.itemzoomto_Click);
-			// 
-			// itemzoom25
-			// 
-			this.itemzoom25.Name = "itemzoom25";
-			this.itemzoom25.Size = new System.Drawing.Size(156, 22);
-			this.itemzoom25.Tag = "25";
-			this.itemzoom25.Text = "25%";
-			this.itemzoom25.Click += new System.EventHandler(this.itemzoomto_Click);
-			// 
-			// itemzoom10
-			// 
-			this.itemzoom10.Name = "itemzoom10";
-			this.itemzoom10.Size = new System.Drawing.Size(156, 22);
-			this.itemzoom10.Tag = "10";
-			this.itemzoom10.Text = "10%";
-			this.itemzoom10.Click += new System.EventHandler(this.itemzoomto_Click);
-			// 
-			// itemzoom5
-			// 
-			this.itemzoom5.Name = "itemzoom5";
-			this.itemzoom5.Size = new System.Drawing.Size(156, 22);
-			this.itemzoom5.Tag = "5";
-			this.itemzoom5.Text = "5%";
-			this.itemzoom5.Click += new System.EventHandler(this.itemzoomto_Click);
-			// 
-			// itemzoomfittoscreen
-			// 
-			this.itemzoomfittoscreen.Name = "itemzoomfittoscreen";
-			this.itemzoomfittoscreen.Size = new System.Drawing.Size(156, 22);
-			this.itemzoomfittoscreen.Text = "Fit to screen";
-			this.itemzoomfittoscreen.Click += new System.EventHandler(this.itemzoomfittoscreen_Click);
-			// 
-			// xposlabel
-			// 
-			this.xposlabel.AutoSize = false;
-			this.xposlabel.Name = "xposlabel";
-			this.xposlabel.Size = new System.Drawing.Size(50, 18);
-			this.xposlabel.Text = "0";
-			this.xposlabel.ToolTipText = "Current X, Y coordinates on map";
-			// 
-			// yposlabel
-			// 
-			this.yposlabel.AutoSize = false;
-			this.yposlabel.Name = "yposlabel";
-			this.yposlabel.Size = new System.Drawing.Size(50, 18);
-			this.yposlabel.Text = "0";
-			this.yposlabel.ToolTipText = "Current X, Y coordinates on map";
-			// 
-			// warnsLabel
-			// 
-			this.warnsLabel.AutoSize = false;
-			this.warnsLabel.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.warnsLabel.Image = global::CodeImp.DoomBuilder.Properties.Resources.WarningOff;
-			this.warnsLabel.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
-			this.warnsLabel.Name = "warnsLabel";
-			this.warnsLabel.Size = new System.Drawing.Size(44, 18);
-			this.warnsLabel.Text = "0";
-			this.warnsLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
-			this.warnsLabel.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage;
-			this.warnsLabel.Click += new System.EventHandler(this.warnsLabel_Click);
-			// 
-			// panelinfo
-			// 
-			this.panelinfo.Controls.Add(this.heightpanel1);
-			this.panelinfo.Controls.Add(this.vertexinfo);
-			this.panelinfo.Controls.Add(this.labelcollapsedinfo);
-			this.panelinfo.Controls.Add(this.buttontoggleinfo);
-			this.panelinfo.Controls.Add(this.modename);
-			this.panelinfo.Controls.Add(this.linedefinfo);
-			this.panelinfo.Controls.Add(this.thinginfo);
-			this.panelinfo.Controls.Add(this.sectorinfo);
-			this.panelinfo.Dock = System.Windows.Forms.DockStyle.Bottom;
-			this.panelinfo.Location = new System.Drawing.Point(26, 564);
-			this.panelinfo.Name = "panelinfo";
-			this.panelinfo.Size = new System.Drawing.Size(986, 106);
-			this.panelinfo.TabIndex = 4;
-			// 
-			// heightpanel1
-			// 
-			this.heightpanel1.BackColor = System.Drawing.Color.Navy;
-			this.heightpanel1.ForeColor = System.Drawing.SystemColors.ControlText;
-			this.heightpanel1.Location = new System.Drawing.Point(0, 0);
-			this.heightpanel1.Name = "heightpanel1";
-			this.heightpanel1.Size = new System.Drawing.Size(29, 106);
-			this.heightpanel1.TabIndex = 7;
-			this.heightpanel1.Visible = false;
-			// 
-			// vertexinfo
-			// 
-			this.vertexinfo.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.vertexinfo.Location = new System.Drawing.Point(3, 3);
-			this.vertexinfo.MaximumSize = new System.Drawing.Size(10000, 100);
-			this.vertexinfo.MinimumSize = new System.Drawing.Size(100, 100);
-			this.vertexinfo.Name = "vertexinfo";
-			this.vertexinfo.Size = new System.Drawing.Size(310, 100);
-			this.vertexinfo.TabIndex = 1;
-			this.vertexinfo.Visible = false;
-			// 
-			// labelcollapsedinfo
-			// 
-			this.labelcollapsedinfo.AutoSize = true;
-			this.labelcollapsedinfo.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.labelcollapsedinfo.Location = new System.Drawing.Point(2, 2);
-			this.labelcollapsedinfo.Name = "labelcollapsedinfo";
-			this.labelcollapsedinfo.Size = new System.Drawing.Size(137, 13);
-			this.labelcollapsedinfo.TabIndex = 6;
-			this.labelcollapsedinfo.Text = "Collapsed Descriptions";
-			this.labelcollapsedinfo.Visible = false;
-			// 
-			// buttontoggleinfo
-			// 
-			this.buttontoggleinfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-			this.buttontoggleinfo.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
-			this.buttontoggleinfo.Font = new System.Drawing.Font("Marlett", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
-			this.buttontoggleinfo.Location = new System.Drawing.Point(962, 1);
-			this.buttontoggleinfo.Name = "buttontoggleinfo";
-			this.buttontoggleinfo.Size = new System.Drawing.Size(22, 19);
-			this.buttontoggleinfo.TabIndex = 5;
-			this.buttontoggleinfo.TabStop = false;
-			this.buttontoggleinfo.Tag = "builder_toggleinfopanel";
-			this.buttontoggleinfo.Text = "6";
-			this.buttontoggleinfo.UseVisualStyleBackColor = true;
-			this.buttontoggleinfo.Click += new System.EventHandler(this.InvokeTaggedAction);
-			this.buttontoggleinfo.MouseUp += new System.Windows.Forms.MouseEventHandler(this.buttontoggleinfo_MouseUp);
-			// 
-			// modename
-			// 
-			this.modename.AutoSize = true;
-			this.modename.Font = new System.Drawing.Font("Verdana", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.modename.ForeColor = System.Drawing.SystemColors.GrayText;
-			this.modename.Location = new System.Drawing.Point(12, 20);
-			this.modename.Name = "modename";
-			this.modename.Size = new System.Drawing.Size(244, 59);
-			this.modename.TabIndex = 4;
-			this.modename.Text = "Vertices";
-			this.modename.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
-			this.modename.UseMnemonic = false;
-			this.modename.Visible = false;
-			// 
-			// linedefinfo
-			// 
-			this.linedefinfo.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.linedefinfo.Location = new System.Drawing.Point(3, 3);
-			this.linedefinfo.MaximumSize = new System.Drawing.Size(10000, 100);
-			this.linedefinfo.MinimumSize = new System.Drawing.Size(100, 100);
-			this.linedefinfo.Name = "linedefinfo";
-			this.linedefinfo.Size = new System.Drawing.Size(1560, 100);
-			this.linedefinfo.TabIndex = 0;
-			this.linedefinfo.Visible = false;
-			// 
-			// thinginfo
-			// 
-			this.thinginfo.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.thinginfo.Location = new System.Drawing.Point(3, 3);
-			this.thinginfo.MaximumSize = new System.Drawing.Size(10000, 100);
-			this.thinginfo.MinimumSize = new System.Drawing.Size(100, 100);
-			this.thinginfo.Name = "thinginfo";
-			this.thinginfo.Size = new System.Drawing.Size(639, 100);
-			this.thinginfo.TabIndex = 3;
-			this.thinginfo.Visible = false;
-			// 
-			// sectorinfo
-			// 
-			this.sectorinfo.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.sectorinfo.Location = new System.Drawing.Point(3, 3);
-			this.sectorinfo.MaximumSize = new System.Drawing.Size(10000, 100);
-			this.sectorinfo.MinimumSize = new System.Drawing.Size(100, 100);
-			this.sectorinfo.Name = "sectorinfo";
-			this.sectorinfo.Size = new System.Drawing.Size(642, 100);
-			this.sectorinfo.TabIndex = 2;
-			this.sectorinfo.Visible = false;
-			// 
-			// redrawtimer
-			// 
-			this.redrawtimer.Interval = 1;
-			this.redrawtimer.Tick += new System.EventHandler(this.redrawtimer_Tick);
-			// 
-			// display
-			// 
-			this.display.BackColor = System.Drawing.SystemColors.AppWorkspace;
-			this.display.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
-			this.display.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-			this.display.CausesValidation = false;
-			this.display.Location = new System.Drawing.Point(373, 141);
-			this.display.Name = "display";
-			this.display.Size = new System.Drawing.Size(542, 307);
-			this.display.TabIndex = 5;
-			this.display.MouseLeave += new System.EventHandler(this.display_MouseLeave);
-			this.display.Paint += new System.Windows.Forms.PaintEventHandler(this.display_Paint);
-			this.display.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.display_PreviewKeyDown);
-			this.display.MouseMove += new System.Windows.Forms.MouseEventHandler(this.display_MouseMove);
-			this.display.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.display_MouseDoubleClick);
-			this.display.MouseClick += new System.Windows.Forms.MouseEventHandler(this.display_MouseClick);
-			this.display.MouseDown += new System.Windows.Forms.MouseEventHandler(this.display_MouseDown);
-			this.display.Resize += new System.EventHandler(this.display_Resize);
-			this.display.MouseUp += new System.Windows.Forms.MouseEventHandler(this.display_MouseUp);
-			this.display.MouseEnter += new System.EventHandler(this.display_MouseEnter);
-			// 
-			// processor
-			// 
-			this.processor.Interval = 10;
-			this.processor.Tick += new System.EventHandler(this.processor_Tick);
-			// 
-			// statusflasher
-			// 
-			this.statusflasher.Tick += new System.EventHandler(this.statusflasher_Tick);
-			// 
-			// statusresetter
-			// 
-			this.statusresetter.Tick += new System.EventHandler(this.statusresetter_Tick);
-			// 
-			// dockersspace
-			// 
-			this.dockersspace.Dock = System.Windows.Forms.DockStyle.Left;
-			this.dockersspace.Location = new System.Drawing.Point(0, 49);
-			this.dockersspace.Name = "dockersspace";
-			this.dockersspace.Size = new System.Drawing.Size(26, 621);
-			this.dockersspace.TabIndex = 6;
-			// 
-			// dockerspanel
-			// 
-			this.dockerspanel.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.dockerspanel.Location = new System.Drawing.Point(62, 67);
-			this.dockerspanel.Name = "dockerspanel";
-			this.dockerspanel.Size = new System.Drawing.Size(236, 467);
-			this.dockerspanel.TabIndex = 7;
-			this.dockerspanel.TabStop = false;
-			this.dockerspanel.UserResize += new System.EventHandler(this.dockerspanel_UserResize);
-			this.dockerspanel.Collapsed += new System.EventHandler(this.LoseFocus);
-			this.dockerspanel.MouseContainerEnter += new System.EventHandler(this.dockerspanel_MouseContainerEnter);
-			// 
-			// dockerscollapser
-			// 
-			this.dockerscollapser.Interval = 200;
-			this.dockerscollapser.Tick += new System.EventHandler(this.dockerscollapser_Tick);
-			// 
-			// warnsTimer
-			// 
-			this.warnsTimer.Interval = 500;
-			this.warnsTimer.Tick += new System.EventHandler(this.warnsTimer_Tick);
-			// 
-			// MainForm
-			// 
-			this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
-			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
-			this.ClientSize = new System.Drawing.Size(1012, 693);
-			this.Controls.Add(this.dockerspanel);
-			this.Controls.Add(this.display);
-			this.Controls.Add(this.panelinfo);
-			this.Controls.Add(this.dockersspace);
-			this.Controls.Add(this.statusbar);
-			this.Controls.Add(this.toolbar);
-			this.Controls.Add(this.menumain);
-			this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
-			this.KeyPreview = true;
-			this.MainMenuStrip = this.menumain;
-			this.Name = "MainForm";
-			this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
-			this.Text = "GZDoomBuilder";
-			this.Deactivate += new System.EventHandler(this.MainForm_Deactivate);
-			this.Load += new System.EventHandler(this.MainForm_Load);
-			this.Shown += new System.EventHandler(this.MainForm_Shown);
-			this.Activated += new System.EventHandler(this.MainForm_Activated);
-			this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyUp);
-			this.Move += new System.EventHandler(this.MainForm_Move);
-			this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
-			this.Resize += new System.EventHandler(this.MainForm_Resize);
-			this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyDown);
-			this.ResizeEnd += new System.EventHandler(this.MainForm_ResizeEnd);
-			this.menumain.ResumeLayout(false);
-			this.menumain.PerformLayout();
-			this.toolbar.ResumeLayout(false);
-			this.toolbar.PerformLayout();
-			this.statusbar.ResumeLayout(false);
-			this.statusbar.PerformLayout();
-			this.panelinfo.ResumeLayout(false);
-			this.panelinfo.PerformLayout();
-			this.ResumeLayout(false);
-			this.PerformLayout();
+            this.buttonzoom.Image = global::CodeImp.DoomBuilder.Properties.Resources.Zoom_arrowup;
+            this.buttonzoom.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
+            this.buttonzoom.ImageTransparentColor = System.Drawing.Color.Transparent;
+            this.buttonzoom.Name = "buttonzoom";
+            this.buttonzoom.ShowDropDownArrow = false;
+            this.buttonzoom.Size = new System.Drawing.Size(29, 21);
+            this.buttonzoom.Text = "Zoom";
+            // 
+            // itemzoom200
+            // 
+            this.itemzoom200.Name = "itemzoom200";
+            this.itemzoom200.Size = new System.Drawing.Size(156, 22);
+            this.itemzoom200.Tag = "200";
+            this.itemzoom200.Text = "200%";
+            this.itemzoom200.Click += new System.EventHandler(this.itemzoomto_Click);
+            // 
+            // itemzoom100
+            // 
+            this.itemzoom100.Name = "itemzoom100";
+            this.itemzoom100.Size = new System.Drawing.Size(156, 22);
+            this.itemzoom100.Tag = "100";
+            this.itemzoom100.Text = "100%";
+            this.itemzoom100.Click += new System.EventHandler(this.itemzoomto_Click);
+            // 
+            // itemzoom50
+            // 
+            this.itemzoom50.Name = "itemzoom50";
+            this.itemzoom50.Size = new System.Drawing.Size(156, 22);
+            this.itemzoom50.Tag = "50";
+            this.itemzoom50.Text = "50%";
+            this.itemzoom50.Click += new System.EventHandler(this.itemzoomto_Click);
+            // 
+            // itemzoom25
+            // 
+            this.itemzoom25.Name = "itemzoom25";
+            this.itemzoom25.Size = new System.Drawing.Size(156, 22);
+            this.itemzoom25.Tag = "25";
+            this.itemzoom25.Text = "25%";
+            this.itemzoom25.Click += new System.EventHandler(this.itemzoomto_Click);
+            // 
+            // itemzoom10
+            // 
+            this.itemzoom10.Name = "itemzoom10";
+            this.itemzoom10.Size = new System.Drawing.Size(156, 22);
+            this.itemzoom10.Tag = "10";
+            this.itemzoom10.Text = "10%";
+            this.itemzoom10.Click += new System.EventHandler(this.itemzoomto_Click);
+            // 
+            // itemzoom5
+            // 
+            this.itemzoom5.Name = "itemzoom5";
+            this.itemzoom5.Size = new System.Drawing.Size(156, 22);
+            this.itemzoom5.Tag = "5";
+            this.itemzoom5.Text = "5%";
+            this.itemzoom5.Click += new System.EventHandler(this.itemzoomto_Click);
+            // 
+            // itemzoomfittoscreen
+            // 
+            this.itemzoomfittoscreen.Name = "itemzoomfittoscreen";
+            this.itemzoomfittoscreen.Size = new System.Drawing.Size(156, 22);
+            this.itemzoomfittoscreen.Text = "Fit to screen";
+            this.itemzoomfittoscreen.Click += new System.EventHandler(this.itemzoomfittoscreen_Click);
+            // 
+            // xposlabel
+            // 
+            this.xposlabel.AutoSize = false;
+            this.xposlabel.Name = "xposlabel";
+            this.xposlabel.Size = new System.Drawing.Size(50, 18);
+            this.xposlabel.Text = "0";
+            this.xposlabel.ToolTipText = "Current X, Y coordinates on map";
+            // 
+            // yposlabel
+            // 
+            this.yposlabel.AutoSize = false;
+            this.yposlabel.Name = "yposlabel";
+            this.yposlabel.Size = new System.Drawing.Size(50, 18);
+            this.yposlabel.Text = "0";
+            this.yposlabel.ToolTipText = "Current X, Y coordinates on map";
+            // 
+            // warnsLabel
+            // 
+            this.warnsLabel.AutoSize = false;
+            this.warnsLabel.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.warnsLabel.Image = global::CodeImp.DoomBuilder.Properties.Resources.WarningOff;
+            this.warnsLabel.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
+            this.warnsLabel.Name = "warnsLabel";
+            this.warnsLabel.Size = new System.Drawing.Size(44, 18);
+            this.warnsLabel.Text = "0";
+            this.warnsLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+            this.warnsLabel.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage;
+            this.warnsLabel.Click += new System.EventHandler(this.warnsLabel_Click);
+            // 
+            // panelinfo
+            // 
+            this.panelinfo.Controls.Add(this.heightpanel1);
+            this.panelinfo.Controls.Add(this.vertexinfo);
+            this.panelinfo.Controls.Add(this.labelcollapsedinfo);
+            this.panelinfo.Controls.Add(this.buttontoggleinfo);
+            this.panelinfo.Controls.Add(this.modename);
+            this.panelinfo.Controls.Add(this.linedefinfo);
+            this.panelinfo.Controls.Add(this.thinginfo);
+            this.panelinfo.Controls.Add(this.sectorinfo);
+            this.panelinfo.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.panelinfo.Location = new System.Drawing.Point(26, 564);
+            this.panelinfo.Name = "panelinfo";
+            this.panelinfo.Size = new System.Drawing.Size(986, 106);
+            this.panelinfo.TabIndex = 4;
+            // 
+            // heightpanel1
+            // 
+            this.heightpanel1.BackColor = System.Drawing.Color.Navy;
+            this.heightpanel1.ForeColor = System.Drawing.SystemColors.ControlText;
+            this.heightpanel1.Location = new System.Drawing.Point(0, 0);
+            this.heightpanel1.Name = "heightpanel1";
+            this.heightpanel1.Size = new System.Drawing.Size(29, 106);
+            this.heightpanel1.TabIndex = 7;
+            this.heightpanel1.Visible = false;
+            // 
+            // vertexinfo
+            // 
+            this.vertexinfo.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.vertexinfo.Location = new System.Drawing.Point(3, 3);
+            this.vertexinfo.MaximumSize = new System.Drawing.Size(10000, 100);
+            this.vertexinfo.MinimumSize = new System.Drawing.Size(100, 100);
+            this.vertexinfo.Name = "vertexinfo";
+            this.vertexinfo.Size = new System.Drawing.Size(310, 100);
+            this.vertexinfo.TabIndex = 1;
+            this.vertexinfo.Visible = false;
+            // 
+            // labelcollapsedinfo
+            // 
+            this.labelcollapsedinfo.AutoSize = true;
+            this.labelcollapsedinfo.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.labelcollapsedinfo.Location = new System.Drawing.Point(2, 2);
+            this.labelcollapsedinfo.Name = "labelcollapsedinfo";
+            this.labelcollapsedinfo.Size = new System.Drawing.Size(137, 13);
+            this.labelcollapsedinfo.TabIndex = 6;
+            this.labelcollapsedinfo.Text = "Collapsed Descriptions";
+            this.labelcollapsedinfo.Visible = false;
+            // 
+            // buttontoggleinfo
+            // 
+            this.buttontoggleinfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+            this.buttontoggleinfo.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
+            this.buttontoggleinfo.Font = new System.Drawing.Font("Marlett", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
+            this.buttontoggleinfo.Location = new System.Drawing.Point(962, 1);
+            this.buttontoggleinfo.Name = "buttontoggleinfo";
+            this.buttontoggleinfo.Size = new System.Drawing.Size(22, 19);
+            this.buttontoggleinfo.TabIndex = 5;
+            this.buttontoggleinfo.TabStop = false;
+            this.buttontoggleinfo.Tag = "builder_toggleinfopanel";
+            this.buttontoggleinfo.Text = "6";
+            this.buttontoggleinfo.UseVisualStyleBackColor = true;
+            this.buttontoggleinfo.Click += new System.EventHandler(this.InvokeTaggedAction);
+            this.buttontoggleinfo.MouseUp += new System.Windows.Forms.MouseEventHandler(this.buttontoggleinfo_MouseUp);
+            // 
+            // modename
+            // 
+            this.modename.AutoSize = true;
+            this.modename.Font = new System.Drawing.Font("Verdana", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.modename.ForeColor = System.Drawing.SystemColors.GrayText;
+            this.modename.Location = new System.Drawing.Point(12, 20);
+            this.modename.Name = "modename";
+            this.modename.Size = new System.Drawing.Size(244, 59);
+            this.modename.TabIndex = 4;
+            this.modename.Text = "Vertices";
+            this.modename.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.modename.UseMnemonic = false;
+            this.modename.Visible = false;
+            // 
+            // linedefinfo
+            // 
+            this.linedefinfo.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.linedefinfo.Location = new System.Drawing.Point(3, 3);
+            this.linedefinfo.MaximumSize = new System.Drawing.Size(10000, 100);
+            this.linedefinfo.MinimumSize = new System.Drawing.Size(100, 100);
+            this.linedefinfo.Name = "linedefinfo";
+            this.linedefinfo.Size = new System.Drawing.Size(1560, 100);
+            this.linedefinfo.TabIndex = 0;
+            this.linedefinfo.Visible = false;
+            // 
+            // thinginfo
+            // 
+            this.thinginfo.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.thinginfo.Location = new System.Drawing.Point(3, 3);
+            this.thinginfo.MaximumSize = new System.Drawing.Size(10000, 100);
+            this.thinginfo.MinimumSize = new System.Drawing.Size(100, 100);
+            this.thinginfo.Name = "thinginfo";
+            this.thinginfo.Size = new System.Drawing.Size(639, 100);
+            this.thinginfo.TabIndex = 3;
+            this.thinginfo.Visible = false;
+            // 
+            // sectorinfo
+            // 
+            this.sectorinfo.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.sectorinfo.Location = new System.Drawing.Point(3, 3);
+            this.sectorinfo.MaximumSize = new System.Drawing.Size(10000, 100);
+            this.sectorinfo.MinimumSize = new System.Drawing.Size(100, 100);
+            this.sectorinfo.Name = "sectorinfo";
+            this.sectorinfo.Size = new System.Drawing.Size(642, 100);
+            this.sectorinfo.TabIndex = 2;
+            this.sectorinfo.Visible = false;
+            // 
+            // redrawtimer
+            // 
+            this.redrawtimer.Interval = 1;
+            this.redrawtimer.Tick += new System.EventHandler(this.redrawtimer_Tick);
+            // 
+            // display
+            // 
+            this.display.BackColor = System.Drawing.SystemColors.AppWorkspace;
+            this.display.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
+            this.display.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+            this.display.CausesValidation = false;
+            this.display.Location = new System.Drawing.Point(373, 141);
+            this.display.Name = "display";
+            this.display.Size = new System.Drawing.Size(542, 307);
+            this.display.TabIndex = 5;
+            this.display.MouseLeave += new System.EventHandler(this.display_MouseLeave);
+            this.display.Paint += new System.Windows.Forms.PaintEventHandler(this.display_Paint);
+            this.display.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.display_PreviewKeyDown);
+            this.display.MouseMove += new System.Windows.Forms.MouseEventHandler(this.display_MouseMove);
+            this.display.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.display_MouseDoubleClick);
+            this.display.MouseClick += new System.Windows.Forms.MouseEventHandler(this.display_MouseClick);
+            this.display.MouseDown += new System.Windows.Forms.MouseEventHandler(this.display_MouseDown);
+            this.display.Resize += new System.EventHandler(this.display_Resize);
+            this.display.MouseUp += new System.Windows.Forms.MouseEventHandler(this.display_MouseUp);
+            this.display.MouseEnter += new System.EventHandler(this.display_MouseEnter);
+            // 
+            // processor
+            // 
+            this.processor.Interval = 10;
+            this.processor.Tick += new System.EventHandler(this.processor_Tick);
+            // 
+            // statusflasher
+            // 
+            this.statusflasher.Tick += new System.EventHandler(this.statusflasher_Tick);
+            // 
+            // statusresetter
+            // 
+            this.statusresetter.Tick += new System.EventHandler(this.statusresetter_Tick);
+            // 
+            // dockersspace
+            // 
+            this.dockersspace.Dock = System.Windows.Forms.DockStyle.Left;
+            this.dockersspace.Location = new System.Drawing.Point(0, 49);
+            this.dockersspace.Name = "dockersspace";
+            this.dockersspace.Size = new System.Drawing.Size(26, 621);
+            this.dockersspace.TabIndex = 6;
+            // 
+            // dockerspanel
+            // 
+            this.dockerspanel.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.dockerspanel.Location = new System.Drawing.Point(62, 67);
+            this.dockerspanel.Name = "dockerspanel";
+            this.dockerspanel.Size = new System.Drawing.Size(236, 467);
+            this.dockerspanel.TabIndex = 7;
+            this.dockerspanel.TabStop = false;
+            this.dockerspanel.UserResize += new System.EventHandler(this.dockerspanel_UserResize);
+            this.dockerspanel.Collapsed += new System.EventHandler(this.LoseFocus);
+            this.dockerspanel.MouseContainerEnter += new System.EventHandler(this.dockerspanel_MouseContainerEnter);
+            // 
+            // dockerscollapser
+            // 
+            this.dockerscollapser.Interval = 200;
+            this.dockerscollapser.Tick += new System.EventHandler(this.dockerscollapser_Tick);
+            // 
+            // warnsTimer
+            // 
+            this.warnsTimer.Interval = 500;
+            this.warnsTimer.Tick += new System.EventHandler(this.warnsTimer_Tick);
+            // 
+            // MainForm
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+            this.ClientSize = new System.Drawing.Size(1012, 693);
+            this.Controls.Add(this.dockerspanel);
+            this.Controls.Add(this.display);
+            this.Controls.Add(this.panelinfo);
+            this.Controls.Add(this.dockersspace);
+            this.Controls.Add(this.statusbar);
+            this.Controls.Add(this.toolbar);
+            this.Controls.Add(this.menumain);
+            this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.KeyPreview = true;
+            this.MainMenuStrip = this.menumain;
+            this.Name = "MainForm";
+            this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
+            this.Text = "GZDoomBuilder";
+            this.Deactivate += new System.EventHandler(this.MainForm_Deactivate);
+            this.Load += new System.EventHandler(this.MainForm_Load);
+            this.Shown += new System.EventHandler(this.MainForm_Shown);
+            this.Activated += new System.EventHandler(this.MainForm_Activated);
+            this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyUp);
+            this.Move += new System.EventHandler(this.MainForm_Move);
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
+            this.Resize += new System.EventHandler(this.MainForm_Resize);
+            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyDown);
+            this.ResizeEnd += new System.EventHandler(this.MainForm_ResizeEnd);
+            this.menumain.ResumeLayout(false);
+            this.menumain.PerformLayout();
+            this.toolbar.ResumeLayout(false);
+            this.toolbar.PerformLayout();
+            this.statusbar.ResumeLayout(false);
+            this.statusbar.PerformLayout();
+            this.panelinfo.ResumeLayout(false);
+            this.panelinfo.PerformLayout();
+            this.ResumeLayout(false);
+            this.PerformLayout();
 
 		}
 
@@ -1963,6 +1963,6 @@ namespace CodeImp.DoomBuilder.Windows
         private System.Windows.Forms.ToolStripMenuItem itemReloadMapinfo;
         private System.Windows.Forms.ToolStripSeparator separatorDrawModes;
         private System.Windows.Forms.Timer warnsTimer;
-		private System.Windows.Forms.ToolStripButton buttontoggleeventlines;
+        private System.Windows.Forms.ToolStripButton buttontoggleeventlines;
 	}
 }
\ No newline at end of file
diff --git a/Source/Core/Windows/MainForm.cs b/Source/Core/Windows/MainForm.cs
index 5ed6bd7c1..d1dd5afcb 100644
--- a/Source/Core/Windows/MainForm.cs
+++ b/Source/Core/Windows/MainForm.cs
@@ -1364,13 +1364,29 @@ namespace CodeImp.DoomBuilder.Windows
 			if(General.Map != null)
 			{
 				// Make the new skills list
-				skills = new ToolStripItem[(General.Map.Config.Skills.Count * 2) + 1];
-				int addindex = 0;
+                //mxd
+                skills = new ToolStripItem[(General.Map.Config.Skills.Count * 2) + 3];
+
+                //mxd. Add engine selector
+                ToolStripMenuItem menuitem = new ToolStripMenuItem("Engine:", Properties.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);
+                    menuitem.DropDownItems.Add(engineItem);
+                }
+                skills[0] = menuitem;
+                
+                //mxd. Add seperator
+                skills[1] = new ToolStripSeparator();
+                skills[1].Padding = new Padding(0, 3, 0, 3);
+                int addindex = 2;
 				
 				// Positive skills are with monsters
 				for(int i = 0; i < General.Map.Config.Skills.Count; i++)
 				{
-					ToolStripMenuItem menuitem = new ToolStripMenuItem(General.Map.Config.Skills[i].ToString());
+					menuitem = new ToolStripMenuItem(General.Map.Config.Skills[i].ToString());
 					menuitem.Image = Properties.Resources.Monster2;
 					menuitem.Click += new EventHandler(TestSkill_Click);
 					menuitem.Tag = General.Map.Config.Skills[i].Index;
@@ -1386,7 +1402,7 @@ namespace CodeImp.DoomBuilder.Windows
 				// Negative skills are without monsters
 				for(int i = 0; i < General.Map.Config.Skills.Count; i++)
 				{
-					ToolStripMenuItem menuitem = new ToolStripMenuItem(General.Map.Config.Skills[i].ToString());
+					menuitem = new ToolStripMenuItem(General.Map.Config.Skills[i].ToString());
 					menuitem.Image = Properties.Resources.Monster3;
 					menuitem.Click += new EventHandler(TestSkill_Click);
 					menuitem.Tag = -General.Map.Config.Skills[i].Index;
@@ -1398,6 +1414,11 @@ namespace CodeImp.DoomBuilder.Windows
 				buttontest.DropDownItems.AddRange(skills);
 			}
 		}
+
+        //mxd
+        private void engineItem_Click(object sender, EventArgs e) {
+            General.Map.ConfigSettings.CurrentEngineIndex = (int)(((ToolStripMenuItem)sender).Tag);
+        }
 		
 		// Event handler for testing at a specific skill
 		private void TestSkill_Click(object sender, EventArgs e)
diff --git a/Source/Core/Windows/MainForm.resx b/Source/Core/Windows/MainForm.resx
index 375300916..d159653f9 100644
--- a/Source/Core/Windows/MainForm.resx
+++ b/Source/Core/Windows/MainForm.resx
@@ -198,6 +198,30 @@
   <metadata name="sectorinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
+  <metadata name="heightpanel1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="vertexinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="labelcollapsedinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="buttontoggleinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="modename.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="linedefinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="thinginfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="sectorinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
   <metadata name="redrawtimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>433, 17</value>
   </metadata>
diff --git a/Source/Core/Windows/OpenMapOptionsForm.cs b/Source/Core/Windows/OpenMapOptionsForm.cs
index 9380b2460..0dfda6274 100644
--- a/Source/Core/Windows/OpenMapOptionsForm.cs
+++ b/Source/Core/Windows/OpenMapOptionsForm.cs
@@ -157,6 +157,9 @@ namespace CodeImp.DoomBuilder.Windows
 					}
 				}
 			}
+
+            //mxd. Still better than nothing :)
+            if (config.SelectedIndex == -1 && General.Configs.Count > 0) config.SelectedIndex = 0;
 			
 			// Done
 			Cursor.Current = Cursors.Default;
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs
index 9305f33e7..66085f187 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs
@@ -157,6 +157,27 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
         public override Sector GetControlSector() {
             return level.sector;
         }
+
+        //mxd. Modify texture offsets based on camera angle (so "movetextureleft" action always moves texture more or less "left" etc.)
+        protected Point getTranslatedTextureOffset(Point p) {
+            Point tp = new Point();
+            int camAngle = (int)(General.Map.VisualCamera.AngleXY * 180f / (float)Math.PI);
+
+            if (camAngle > 315 || camAngle < 46) {
+                tp = p;
+            } else if (camAngle > 225) {
+                tp.Y = p.X;
+                tp.X = -p.Y;
+            } else if (camAngle > 135) {
+                tp.X = -p.X;
+                tp.Y = -p.Y;
+            }else{
+                tp.Y = -p.X;
+                tp.X = p.Y;
+            }
+
+            return tp;
+        }
 		
 		#endregion
 
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySidedef.cs b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySidedef.cs
index 224c2138c..9794dc475 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySidedef.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySidedef.cs
@@ -367,10 +367,10 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 		}
 
         //mxd
-        protected float getRoundedTextureOffset(float offset, float scale) {
-            if (offset == 0f) return 0f;
-            float result = (float)Math.Round(offset * scale);
-            if (result == 0) result = 1f * (offset < 0 ? -1 : 1);
+        protected float getRoundedTextureOffset(float oldValue, float offset, float scale) {
+			if(offset == 0f) return oldValue;
+            float result = (float)Math.Round(oldValue + (offset * scale));
+            if (result == oldValue) result += 1f * (offset < 0 ? -1 : 1);
             return result;
         }
 		
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs
index 3e4d32648..bbf6fa9bb 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs
@@ -172,6 +172,7 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 			s.Fields.BeforeFieldsChange();
             float oldx = s.Fields.GetValue("xpanningceiling", 0.0f);
             float oldy = s.Fields.GetValue("ypanningceiling", 0.0f);
+            xy = getTranslatedTextureOffset(xy);
             s.Fields["xpanningceiling"] = new UniValue(UniversalType.Float, oldx + (float)xy.X);
             s.Fields["ypanningceiling"] = new UniValue(UniversalType.Float, oldy + (float)xy.Y);
             s.UpdateNeeded = true;
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualFloor.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualFloor.cs
index 8df2d9f27..edbbfe9b5 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/VisualFloor.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualFloor.cs
@@ -171,6 +171,7 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
             s.Fields.BeforeFieldsChange();
             float oldx = s.Fields.GetValue("xpanningfloor", 0.0f);
             float oldy = s.Fields.GetValue("ypanningfloor", 0.0f);
+            xy = getTranslatedTextureOffset(xy);
             s.Fields["xpanningfloor"] = new UniValue(UniversalType.Float, oldx + (float)xy.X);
             s.Fields["ypanningfloor"] = new UniValue(UniversalType.Float, oldy + (float)xy.Y);
             s.UpdateNeeded = true;
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualLower.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualLower.cs
index f39ddfc5b..83c9e2414 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/VisualLower.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualLower.cs
@@ -236,8 +236,10 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 			float oldy = Sidedef.Fields.GetValue("offsety_bottom", 0.0f);
 			float scalex = Sidedef.Fields.GetValue("scalex_bottom", 1.0f);
 			float scaley = Sidedef.Fields.GetValue("scaley_bottom", 1.0f);
-            Sidedef.Fields["offsetx_bottom"] = new UniValue(UniversalType.Float, oldx + getRoundedTextureOffset((float)xy.X, scalex)); //mxd
-            Sidedef.Fields["offsety_bottom"] = new UniValue(UniversalType.Float, oldy + getRoundedTextureOffset((float)xy.Y, scaley)); //mxd
+            Sidedef.Fields["offsetx_bottom"] = new UniValue(UniversalType.Float, getRoundedTextureOffset(oldx, (float)xy.X, scalex)); //mxd
+            Sidedef.Fields["offsety_bottom"] = new UniValue(UniversalType.Float, getRoundedTextureOffset(oldy, (float)xy.Y, scaley)); //mxd
+            //Sidedef.Fields["offsetx_bottom"] = new UniValue(UniversalType.Float, oldx + getRoundedTextureOffset((float)xy.X, scalex)); //mxd
+            //Sidedef.Fields["offsety_bottom"] = new UniValue(UniversalType.Float, oldy + getRoundedTextureOffset((float)xy.Y, scaley)); //mxd
             //Sidedef.Fields["offsetx_bottom"] = new UniValue(UniversalType.Float, oldx + (float)xy.X * scalex);
             //Sidedef.Fields["offsety_bottom"] = new UniValue(UniversalType.Float, oldy + (float)xy.Y * scaley);
 		}
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleDouble.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleDouble.cs
index 5ecabce44..03ba980cc 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleDouble.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleDouble.cs
@@ -309,8 +309,10 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 			float oldy = Sidedef.Fields.GetValue("offsety_mid", 0.0f);
 			float scalex = Sidedef.Fields.GetValue("scalex_mid", 1.0f);
 			float scaley = Sidedef.Fields.GetValue("scaley_mid", 1.0f);
-            Sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, oldx + getRoundedTextureOffset((float)xy.X, scalex)); //mxd
-            Sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, oldy + getRoundedTextureOffset((float)xy.Y, scaley)); //mxd
+            Sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, getRoundedTextureOffset(oldx, (float)xy.X, scalex)); //mxd
+            Sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, getRoundedTextureOffset(oldy, (float)xy.Y, scaley)); //mxd
+            //Sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, oldx + getRoundedTextureOffset((float)xy.X, scalex)); //mxd
+            //Sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, oldy + getRoundedTextureOffset((float)xy.Y, scaley)); //mxd
 			//Sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, oldx + (float)xy.X * scalex);
 			//Sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, oldy + (float)xy.Y * scaley);
 		}
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleSingle.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleSingle.cs
index e2036a64d..67ebf22fd 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleSingle.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleSingle.cs
@@ -237,8 +237,10 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 			float oldy = Sidedef.Fields.GetValue("offsety_mid", 0.0f);
 			float scalex = Sidedef.Fields.GetValue("scalex_mid", 1.0f);
 			float scaley = Sidedef.Fields.GetValue("scaley_mid", 1.0f);
-            Sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, oldx + getRoundedTextureOffset((float)xy.X, scalex)); //mxd
-            Sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, oldy + getRoundedTextureOffset((float)xy.Y, scaley)); //mxd
+            Sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, getRoundedTextureOffset(oldx, (float)xy.X, scalex)); //mxd
+            Sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, getRoundedTextureOffset(oldy, (float)xy.Y, scaley)); //mxd
+            //Sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, oldx + getRoundedTextureOffset((float)xy.X, scalex)); //mxd
+            //Sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, oldy + getRoundedTextureOffset((float)xy.Y, scaley)); //mxd
 			//Sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, oldx + (float)xy.X * scalex);
 			//Sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, oldy + (float)xy.Y * scaley);
 		}
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualUpper.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualUpper.cs
index 75a1ed8c3..c8ebb39da 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/VisualUpper.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualUpper.cs
@@ -236,8 +236,10 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 			float oldy = Sidedef.Fields.GetValue("offsety_top", 0.0f);
 			float scalex = Sidedef.Fields.GetValue("scalex_top", 1.0f);
 			float scaley = Sidedef.Fields.GetValue("scaley_top", 1.0f);
-            Sidedef.Fields["offsetx_top"] = new UniValue(UniversalType.Float, oldx + getRoundedTextureOffset((float)xy.X, scalex)); //mxd
-            Sidedef.Fields["offsety_top"] = new UniValue(UniversalType.Float, oldy + getRoundedTextureOffset((float)xy.Y, scaley)); //mxd
+            Sidedef.Fields["offsetx_top"] = new UniValue(UniversalType.Float, getRoundedTextureOffset(oldx, (float)xy.X, scalex)); //mxd
+            Sidedef.Fields["offsety_top"] = new UniValue(UniversalType.Float, getRoundedTextureOffset(oldy, (float)xy.Y, scaley)); //mxd
+            //Sidedef.Fields["offsetx_top"] = new UniValue(UniversalType.Float, oldx + getRoundedTextureOffset((float)xy.X, scalex)); //mxd
+            //Sidedef.Fields["offsety_top"] = new UniValue(UniversalType.Float, oldy + getRoundedTextureOffset((float)xy.Y, scaley)); //mxd
 			//Sidedef.Fields["offsetx_top"] = new UniValue(UniversalType.Float, oldx + (float)xy.X * scalex);
 			//Sidedef.Fields["offsety_top"] = new UniValue(UniversalType.Float, oldy + (float)xy.Y * scaley);
 		}
diff --git a/Source/Plugins/PropertiesDock/BuilderPlug.cs b/Source/Plugins/PropertiesDock/BuilderPlug.cs
deleted file mode 100644
index e5c2fce31..000000000
--- a/Source/Plugins/PropertiesDock/BuilderPlug.cs
+++ /dev/null
@@ -1,137 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-using CodeImp.DoomBuilder.Editing;
-using CodeImp.DoomBuilder.Plugins;
-using CodeImp.DoomBuilder.Controls;
-using CodeImp.DoomBuilder.Map;
-using CodeImp.DoomBuilder.Config;
-
-namespace CodeImp.DoomBuilder.PropertiesDock
-{
-	public class BuilderPlug : Plug
-	{
-		// Docker
-		private PropertiesDocker propertiesDocker;
-		private Docker docker;
-
-		// Static property to access the BuilderPlug
-		public static BuilderPlug Me { get { return me; } }
-        private static BuilderPlug me;
-
-        //important actions
-        private string[] actions = { "builder_deleteitem", "builder_classicselect", "builder_clearselection" };
-
-		// This event is called when the plugin is initialized
-		public override void OnInitialize() {
-			base.OnInitialize();
-
-			// Keep a static reference
-			me = this;
-		}
-
-		// When a map is created
-		public override void OnMapNewEnd() {
-			OnMapOpenEnd();
-		}
-
-		// This is called after a map has been successfully opened
-		public override void OnMapOpenEnd() {
-            MapElementsData.Init();
-
-            if (General.Map.UDMF) {
-                MapElementsData.InitTypes(GetCustomUseAttributes());
-
-            }
-
-
-            if(propertiesDocker == null) {
-				propertiesDocker = new PropertiesDocker();
-				docker = new Docker("propertiesdockerpanel", "Properties", propertiesDocker);
-				General.Interface.AddDocker(docker);
-                propertiesDocker.ChangeEditMode(General.Editing.Mode.GetType().Name);
-			}
-		}
-
-		// This is called after a map has been closed
-		public override void OnMapCloseBegin() {
-			if(propertiesDocker != null) {
-				General.Interface.RemoveDocker(docker);
-				docker = null;
-				propertiesDocker.Dispose();
-				propertiesDocker = null;
-			}
-		}
-
-        public override void OnHighlightLinedef(Linedef l) {
-            if (propertiesDocker != null)
-                propertiesDocker.ShowLinedefInfo(l);
-        }
-
-        public override void OnHighlightSector(Sector s) {
-            if (propertiesDocker != null)
-                propertiesDocker.ShowSectorInfo(s);
-        }
-
-        public override void OnHighlightVertex(Vertex v) {
-            if (propertiesDocker != null)    
-                propertiesDocker.ShowVertexInfo(v);
-        }
-
-        public override void OnHighlightThing(Thing t) {
-            if (propertiesDocker != null)
-                propertiesDocker.ShowThingInfo(t);
-        }
-
-        public override void OnHighlightRefreshed(object o) {
-            if (propertiesDocker != null) {
-                if (o is Thing) {
-                    propertiesDocker.ShowThingInfo(o as Thing);
-                } else if (o is Sector) {
-                    propertiesDocker.ShowSectorInfo(o as Sector);
-                } else if (o is Linedef) {
-                    propertiesDocker.ShowLinedefInfo(o as Linedef);
-                } else if (o is Vertex) {
-                    propertiesDocker.ShowVertexInfo(o as Vertex);
-                }
-            }
-        }
-
-        public override void OnHighlightLost() {
-            if (propertiesDocker != null)
-                propertiesDocker.OnHighlightLost();
-        }
-
-        public override void OnEditEngage(EditMode oldmode, EditMode newmode){
-            if (propertiesDocker != null)
-                propertiesDocker.ChangeEditMode(newmode.GetType().Name);
-        }
-
-        // Geometry pasted
-        public override void OnPasteEnd(PasteOptions options) {
-            if (propertiesDocker != null)
-                propertiesDocker.Update();
-        }
-
-        // Undo performed
-        public override void OnUndoEnd() {
-            if (propertiesDocker != null)
-                propertiesDocker.Update();
-        }
-
-        // Redo performed
-        public override void OnRedoEnd() {
-            if (propertiesDocker != null)
-                propertiesDocker.Update();
-        }
-
-        public override void OnActionEnd(CodeImp.DoomBuilder.Actions.Action action) {
-            //Console.WriteLine("OnActionEnd: " + action.Name);
-            
-            if (propertiesDocker != null && Array.IndexOf(actions, action.Name) != -1)
-                propertiesDocker.Update();
-        }
-
-	}
-}
diff --git a/Source/Plugins/PropertiesDock/Controls/PropertiesDocker.Designer.cs b/Source/Plugins/PropertiesDock/Controls/PropertiesDocker.Designer.cs
deleted file mode 100644
index 0d8faf98d..000000000
--- a/Source/Plugins/PropertiesDock/Controls/PropertiesDocker.Designer.cs
+++ /dev/null
@@ -1,207 +0,0 @@
-namespace CodeImp.DoomBuilder.PropertiesDock
-{
-	partial class PropertiesDocker
-	{
-		/// <summary> 
-		/// Требуется переменная конструктора.
-		/// </summary>
-		private System.ComponentModel.IContainer components = null;
-
-		/// <summary> 
-		/// Освободить все используемые ресурсы.
-		/// </summary>
-		/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
-		protected override void Dispose(bool disposing) {
-			if(disposing && (components != null)) {
-				components.Dispose();
-			}
-			base.Dispose(disposing);
-		}
-
-		#region Код, автоматически созданный конструктором компонентов
-
-		/// <summary> 
-		/// Обязательный метод для поддержки конструктора - не изменяйте 
-		/// содержимое данного метода при помощи редактора кода.
-		/// </summary>
-		private void InitializeComponent() {
-            this.tabControl = new System.Windows.Forms.TabControl();
-            this.tabPage1 = new System.Windows.Forms.TabPage();
-            this.propertyGrid1 = new System.Windows.Forms.PropertyGrid();
-            this.tabPage2 = new System.Windows.Forms.TabPage();
-            this.propertyGrid2 = new System.Windows.Forms.PropertyGrid();
-            this.tabPage3 = new System.Windows.Forms.TabPage();
-            this.propertyGrid3 = new System.Windows.Forms.PropertyGrid();
-            this.gbCustomFields = new System.Windows.Forms.GroupBox();
-            this.tbFieldName = new System.Windows.Forms.TextBox();
-            this.bAddField = new System.Windows.Forms.Button();
-            this.cbFieldType = new System.Windows.Forms.ComboBox();
-            this.tabControl.SuspendLayout();
-            this.tabPage1.SuspendLayout();
-            this.tabPage2.SuspendLayout();
-            this.tabPage3.SuspendLayout();
-            this.gbCustomFields.SuspendLayout();
-            this.SuspendLayout();
-            // 
-            // tabControl
-            // 
-            this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                        | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.tabControl.Controls.Add(this.tabPage1);
-            this.tabControl.Controls.Add(this.tabPage2);
-            this.tabControl.Controls.Add(this.tabPage3);
-            this.tabControl.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
-            this.tabControl.Location = new System.Drawing.Point(3, 56);
-            this.tabControl.Name = "tabControl";
-            this.tabControl.SelectedIndex = 0;
-            this.tabControl.Size = new System.Drawing.Size(266, 341);
-            this.tabControl.TabIndex = 0;
-            // 
-            // tabPage1
-            // 
-            this.tabPage1.Controls.Add(this.propertyGrid1);
-            this.tabPage1.Location = new System.Drawing.Point(4, 23);
-            this.tabPage1.Name = "tabPage1";
-            this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
-            this.tabPage1.Size = new System.Drawing.Size(258, 314);
-            this.tabPage1.TabIndex = 0;
-            this.tabPage1.Text = "tabPage1";
-            this.tabPage1.UseVisualStyleBackColor = true;
-            // 
-            // propertyGrid1
-            // 
-            this.propertyGrid1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                        | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.propertyGrid1.HelpVisible = false;
-            this.propertyGrid1.Location = new System.Drawing.Point(6, 6);
-            this.propertyGrid1.Name = "propertyGrid1";
-            this.propertyGrid1.Size = new System.Drawing.Size(246, 302);
-            this.propertyGrid1.TabIndex = 0;
-            this.propertyGrid1.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.propertyGrid1_PropertyValueChanged);
-            // 
-            // tabPage2
-            // 
-            this.tabPage2.Controls.Add(this.propertyGrid2);
-            this.tabPage2.Location = new System.Drawing.Point(4, 23);
-            this.tabPage2.Name = "tabPage2";
-            this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
-            this.tabPage2.Size = new System.Drawing.Size(258, 314);
-            this.tabPage2.TabIndex = 1;
-            this.tabPage2.Text = "tabPage2";
-            this.tabPage2.UseVisualStyleBackColor = true;
-            // 
-            // propertyGrid2
-            // 
-            this.propertyGrid2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                        | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.propertyGrid2.HelpVisible = false;
-            this.propertyGrid2.Location = new System.Drawing.Point(6, 6);
-            this.propertyGrid2.Name = "propertyGrid2";
-            this.propertyGrid2.Size = new System.Drawing.Size(246, 296);
-            this.propertyGrid2.TabIndex = 1;
-            this.propertyGrid2.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.propertyGrid2_PropertyValueChanged);
-            // 
-            // tabPage3
-            // 
-            this.tabPage3.Controls.Add(this.propertyGrid3);
-            this.tabPage3.Location = new System.Drawing.Point(4, 23);
-            this.tabPage3.Name = "tabPage3";
-            this.tabPage3.Size = new System.Drawing.Size(258, 314);
-            this.tabPage3.TabIndex = 2;
-            this.tabPage3.Text = "tabPage3";
-            this.tabPage3.UseVisualStyleBackColor = true;
-            // 
-            // propertyGrid3
-            // 
-            this.propertyGrid3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                        | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.propertyGrid3.HelpVisible = false;
-            this.propertyGrid3.Location = new System.Drawing.Point(6, 6);
-            this.propertyGrid3.Name = "propertyGrid3";
-            this.propertyGrid3.Size = new System.Drawing.Size(246, 296);
-            this.propertyGrid3.TabIndex = 1;
-            this.propertyGrid3.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.propertyGrid3_PropertyValueChanged);
-            // 
-            // gbCustomFields
-            // 
-            this.gbCustomFields.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.gbCustomFields.Controls.Add(this.tbFieldName);
-            this.gbCustomFields.Controls.Add(this.bAddField);
-            this.gbCustomFields.Controls.Add(this.cbFieldType);
-            this.gbCustomFields.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
-            this.gbCustomFields.Location = new System.Drawing.Point(3, 3);
-            this.gbCustomFields.Name = "gbCustomFields";
-            this.gbCustomFields.Size = new System.Drawing.Size(266, 47);
-            this.gbCustomFields.TabIndex = 1;
-            this.gbCustomFields.TabStop = false;
-            this.gbCustomFields.Text = "Add custom field:";
-            // 
-            // tbFieldName
-            // 
-            this.tbFieldName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            this.tbFieldName.Location = new System.Drawing.Point(10, 20);
-            this.tbFieldName.Name = "tbFieldName";
-            this.tbFieldName.Size = new System.Drawing.Size(134, 20);
-            this.tbFieldName.TabIndex = 3;
-            // 
-            // bAddField
-            // 
-            this.bAddField.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.bAddField.Image = global::CodeImp.DoomBuilder.PropertiesDock.Properties.Resources.Add;
-            this.bAddField.Location = new System.Drawing.Point(232, 19);
-            this.bAddField.Name = "bAddField";
-            this.bAddField.Size = new System.Drawing.Size(28, 23);
-            this.bAddField.TabIndex = 1;
-            this.bAddField.UseVisualStyleBackColor = true;
-            this.bAddField.Click += new System.EventHandler(this.bAddField_Click);
-            // 
-            // cbFieldType
-            // 
-            this.cbFieldType.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-            this.cbFieldType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-            this.cbFieldType.FormattingEnabled = true;
-            this.cbFieldType.Location = new System.Drawing.Point(148, 19);
-            this.cbFieldType.Name = "cbFieldType";
-            this.cbFieldType.Size = new System.Drawing.Size(80, 22);
-            this.cbFieldType.TabIndex = 0;
-            // 
-            // PropertiesDocker
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
-            this.Controls.Add(this.gbCustomFields);
-            this.Controls.Add(this.tabControl);
-            this.Font = new System.Drawing.Font("Arial Narrow", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
-            this.Name = "PropertiesDocker";
-            this.Size = new System.Drawing.Size(272, 400);
-            this.tabControl.ResumeLayout(false);
-            this.tabPage1.ResumeLayout(false);
-            this.tabPage2.ResumeLayout(false);
-            this.tabPage3.ResumeLayout(false);
-            this.gbCustomFields.ResumeLayout(false);
-            this.gbCustomFields.PerformLayout();
-            this.ResumeLayout(false);
-
-		}
-
-		#endregion
-
-		private System.Windows.Forms.TabControl tabControl;
-		private System.Windows.Forms.TabPage tabPage1;
-		private System.Windows.Forms.TabPage tabPage2;
-        private System.Windows.Forms.PropertyGrid propertyGrid1;
-        private System.Windows.Forms.PropertyGrid propertyGrid2;
-        private System.Windows.Forms.TabPage tabPage3;
-        private System.Windows.Forms.PropertyGrid propertyGrid3;
-        private System.Windows.Forms.GroupBox gbCustomFields;
-        private System.Windows.Forms.Button bAddField;
-        private System.Windows.Forms.ComboBox cbFieldType;
-        private System.Windows.Forms.TextBox tbFieldName;
-	}
-}
diff --git a/Source/Plugins/PropertiesDock/Controls/PropertiesDocker.cs b/Source/Plugins/PropertiesDock/Controls/PropertiesDocker.cs
deleted file mode 100644
index f8f9fbd90..000000000
--- a/Source/Plugins/PropertiesDock/Controls/PropertiesDocker.cs
+++ /dev/null
@@ -1,257 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
-using System.Windows.Forms;
-
-using CodeImp.DoomBuilder.Map;
-
-namespace CodeImp.DoomBuilder.PropertiesDock
-{
-	public partial class PropertiesDocker : UserControl
-	{
-        private TabPage page2;
-        private TabPage page3;
-
-        private string currentMode;
-        private static PropertiesDocker me;
-        
-        public PropertiesDocker() {
-			InitializeComponent();
-
-            me = this;
-            page2 = tabControl.TabPages[1];
-            page3 = tabControl.TabPages[2];
-
-            if (!General.Map.UDMF) {
-                gbCustomFields.Visible = false;
-                tabControl.Top = 3;
-            } else {
-                //todo: add "Delete field" button
-
-                //todo: sort this out...
-                //cbFieldType.Items.AddRange(General.Types.GetCustomUseAttributes());
-            }
-		}
-
-//SHOW HIGHLIGHT INFO
-        public void ShowLinedefInfo(Linedef l) {
-
-        }
-
-        public void ShowSectorInfo(Sector s) {
-
-        }
-
-        public void ShowThingInfo(Thing t) {
-            propertyGrid1.SelectedObject = new ThingInfo(t);
-            viewThings(1, t.Index, true);
-        }
-
-        public void ShowVertexInfo(Vertex v) {
-            propertyGrid1.SelectedObject = new VertexInfo(v);
-            viewVertices(1, v.Index, true);
-        }
-
-        public void OnHighlightLost() {
-            Update();
-        }
-
-//SHOW SELECTION INFO
-        private void showSelectedThingsInfo() {
-            //anything selected?
-            List<Thing> things = (List<Thing>)General.Map.Map.GetSelectedThings(true);
-
-            if (things.Count > 0) {
-                ThingInfo[] infos = new ThingInfo[things.Count];
-                int i = 0;
-
-                foreach (Thing t in things) {
-                    infos[i++] = new ThingInfo(t);
-                }
-
-                propertyGrid1.SelectedObjects = infos;
-                viewThings(things.Count, things.Count == 1 ? things[0].Index : -1, true);
-                if (gbCustomFields.Visible) gbCustomFields.Enabled = true;
-            } else {
-                viewThings(-1, -1, false);
-                gbCustomFields.Enabled = false;
-            }
-        }
-        
-        private void showSelectedVerticesInfo() {
-            //anything selected?
-            List<Vertex> verts = (List<Vertex>)General.Map.Map.GetSelectedVertices(true);
-
-            if (verts.Count > 0) {
-                VertexInfo[] infos = new VertexInfo[verts.Count];
-                int i = 0;
-
-                foreach (Vertex cv in verts) {
-                    infos[i++] = new VertexInfo(cv);
-                }
-
-                propertyGrid1.SelectedObjects = infos;
-                viewVertices(verts.Count, verts.Count == 1 ? verts[0].Index : -1, true);
-                if (gbCustomFields.Visible) gbCustomFields.Enabled = true;
-            } else {
-                viewVertices(-1, -1, false);
-                gbCustomFields.Enabled = false;
-            }
-        }
-
-//PANELS UPDATE
-        private void viewVertices(int count, int index, bool enabled) {
-            updateTabs(enabled, false);
-
-            if(count != -1)
-                tabControl.TabPages[0].Text = count > 1 ? count + " vertices:" : "Vertex "+index+":";
-        }
-
-        private void viewThings(int count, int index, bool enabled) {
-            updateTabs(enabled, false);
-
-            if (count != -1)
-                tabControl.TabPages[0].Text = count > 1 ? count + " things:" : "Thing " + index + ":";
-        }
-
-        private void updateTabs(bool enabled, bool showAllTabs) {
-            if (showAllTabs) {
-                if (tabControl.TabPages.Count == 1) {
-                    tabControl.TabPages.Add(page2);
-                    tabControl.TabPages.Add(page3);
-                }
-                propertyGrid2.Enabled = enabled;
-                propertyGrid3.Enabled = enabled;
-
-            } else {
-                if (tabControl.TabPages.Count == 3) {
-                    tabControl.TabPages.Remove(page2);
-                    tabControl.TabPages.Remove(page3);
-                }
-            }
-            propertyGrid1.Enabled = enabled;
-        }
-
-//util
-        public void ChangeEditMode(string name) {
-            //textBox1.AppendText("Mode Changed to " + name + Environment.NewLine);
-            
-            if (name == "ThingsMode") {
-                currentMode = name;
-                showSelectedThingsInfo();
-
-            } else if (name == "SectorsMode") {
-                currentMode = name;
-
-            } else if (name == "LinedefsMode") {
-                currentMode = name;
-
-            } else if (name == "VerticesMode") {
-                currentMode = name;
-                showSelectedVerticesInfo();
-            } else if (name == "BaseVisualMode") {
-                currentMode = name;
-
-            }
-        }
-
-        //called when map is changed without switching Edit mode
-        public void Update() {
-            ChangeEditMode(currentMode);
-        }
-
-        public static void Refresh() {
-            me.propertyGrid1.Refresh();
-            me.propertyGrid2.Refresh();
-            me.propertyGrid3.Refresh();
-        }
-
-        private void saveChanges() {
-            if (currentMode == "ThingsMode" && propertyGrid1.Enabled) {
-                applyThingChanges();
-            } else if (currentMode == "SectorsMode" && propertyGrid1.Enabled) {
-                applySectorChanges();
-            } else if (currentMode == "LinedefsMode") {
-                applyLinedefChanges();
-            } else if (currentMode == "VerticesMode" && propertyGrid1.Enabled) {
-                applyVertexChanges();
-            } else if (currentMode == "BaseVisualMode") {
-                applyVisualModeChanges();
-            }
-        }
-
-        private void applyThingChanges() {
-            //throw new NotImplementedException();
-        }
-
-        private void applySectorChanges() {
-            throw new NotImplementedException();
-        }
-
-        private void applyLinedefChanges() {
-            throw new NotImplementedException();
-        }
-
-        private void applyVertexChanges() {
-            string undodesc = "vertex";
-            if (propertyGrid1.SelectedObjects.Length > 1) undodesc = propertyGrid1.SelectedObjects.Length + " vertices";
-            applyClassicModeChanges(propertyGrid1.SelectedObjects, undodesc);
-        }
-
-        private void applyVisualModeChanges() {
-            throw new NotImplementedException();
-        }
-
-        private void applyClassicModeChanges(object[] items, string undodesc) {
-            // Make undo
-            General.Map.UndoRedo.CreateUndo("Edit " + undodesc);
-
-            //apply changes
-            foreach (object o in items) {
-                ((IMapElementInfo)o).ApplyChanges();
-            }
-
-            // Done
-            General.Map.IsChanged = true;
-            General.Map.Map.Update();
-            General.Interface.RedrawDisplay();
-        }
-
-//EVENTS
-        private void propertyGrid1_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) {
-            saveChanges();
-        }
-
-        private void propertyGrid2_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) {
-            saveChanges();
-        }
-
-        private void propertyGrid3_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) {
-            saveChanges();
-        }
-
-        private void bAddField_Click(object sender, EventArgs e) {
-            PropertyGrid g = null;
-            
-            if (tbFieldName.Text.Length > 0) {
-                if (tabControl.SelectedIndex == 0) {
-                    g = propertyGrid1;
-                } else if (tabControl.SelectedIndex == 1) {
-                    g = propertyGrid2;
-                } else if (tabControl.SelectedIndex == 2) {
-                    g = propertyGrid3;
-                }
-            }
-
-            if (g != null && g.Enabled && g.SelectedObjects.Length > 0) {
-                foreach (object o in g.SelectedObjects) {
-                    //todo: set correct type
-                    ((IMapElementInfo)o).AddCustomProperty(tbFieldName.Text, typeof(string));
-                }
-            }
-        }
-	}
-}
diff --git a/Source/Plugins/PropertiesDock/Controls/PropertiesDocker.resx b/Source/Plugins/PropertiesDock/Controls/PropertiesDocker.resx
deleted file mode 100644
index ff31a6db5..000000000
--- a/Source/Plugins/PropertiesDock/Controls/PropertiesDocker.resx
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>
\ No newline at end of file
diff --git a/Source/Plugins/PropertiesDock/Data/CustomPropertiesCollection.cs b/Source/Plugins/PropertiesDock/Data/CustomPropertiesCollection.cs
deleted file mode 100644
index ff80281bd..000000000
--- a/Source/Plugins/PropertiesDock/Data/CustomPropertiesCollection.cs
+++ /dev/null
@@ -1,135 +0,0 @@
-using System;
-using System.Collections;
-using System.ComponentModel;
-
-namespace CodeImp.DoomBuilder.PropertiesDock {
-    public class CustomPropertiesCollection : CollectionBase, ICustomTypeDescriptor {
-        /// <summary>
-        /// Add CustomProperty to Collectionbase List
-        /// </summary>
-        /// <param name="Value"></param>
-        public void Add(CustomProperty Value) {
-            base.List.Add(Value);
-        }
-
-        /// <summary>
-        /// Remove item from List
-        /// </summary>
-        /// <param name="Name"></param>
-        public void Remove(string Name) {
-            foreach (CustomProperty prop in base.List) {
-                if (prop.Name == Name) {
-                    base.List.Remove(prop);
-                    return;
-                }
-            }
-        }
-
-        /// <summary>
-        /// Indexer
-        /// </summary>
-        public CustomProperty this[int index] {
-            get {
-                return (CustomProperty)base.List[index];
-            }
-            set {
-                base.List[index] = (CustomProperty)value;
-            }
-        }
-
-
-        #region "TypeDescriptor Implementation"
-        /// <summary>
-        /// Get Class Name
-        /// </summary>
-        /// <returns>String</returns>
-        public String GetClassName() {
-            return TypeDescriptor.GetClassName(this, true);
-        }
-
-        /// <summary>
-        /// GetAttributes
-        /// </summary>
-        /// <returns>AttributeCollection</returns>
-        public AttributeCollection GetAttributes() {
-            return TypeDescriptor.GetAttributes(this, true);
-        }
-
-        /// <summary>
-        /// GetComponentName
-        /// </summary>
-        /// <returns>String</returns>
-        public String GetComponentName() {
-            return TypeDescriptor.GetComponentName(this, true);
-        }
-
-        /// <summary>
-        /// GetConverter
-        /// </summary>
-        /// <returns>TypeConverter</returns>
-        public TypeConverter GetConverter() {
-            return TypeDescriptor.GetConverter(this, true);
-        }
-
-        /// <summary>
-        /// GetDefaultEvent
-        /// </summary>
-        /// <returns>EventDescriptor</returns>
-        public EventDescriptor GetDefaultEvent() {
-            return TypeDescriptor.GetDefaultEvent(this, true);
-        }
-
-        /// <summary>
-        /// GetDefaultProperty
-        /// </summary>
-        /// <returns>PropertyDescriptor</returns>
-        public PropertyDescriptor GetDefaultProperty() {
-            return TypeDescriptor.GetDefaultProperty(this, true);
-        }
-
-        /// <summary>
-        /// GetEditor
-        /// </summary>
-        /// <param name="editorBaseType">editorBaseType</param>
-        /// <returns>object</returns>
-        public object GetEditor(Type editorBaseType) {
-            return TypeDescriptor.GetEditor(this, editorBaseType, true);
-        }
-
-        public EventDescriptorCollection GetEvents(Attribute[] attributes) {
-            return TypeDescriptor.GetEvents(this, attributes, true);
-        }
-
-        public EventDescriptorCollection GetEvents() {
-            return TypeDescriptor.GetEvents(this, true);
-        }
-
-        public PropertyDescriptorCollection GetProperties(Attribute[] attributes) {
-            PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
-            for (int i = 0; i < this.Count; i++) {
-                CustomProperty prop = (CustomProperty)this[i];
-                newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
-            }
-
-            return new PropertyDescriptorCollection(newProps);
-        }
-
-        public PropertyDescriptorCollection GetProperties() {
-            PropertyDescriptorCollection c = TypeDescriptor.GetProperties(this, true);
-            
-            return TypeDescriptor.GetProperties(this, true);
-            /*PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
-            for (int i = 0; i < this.Count; i++) {
-                CustomProperty prop = (CustomProperty)this[i];
-                newProps[i] = new CustomPropertyDescriptor(ref prop);
-            }
-
-            return new PropertyDescriptorCollection(newProps);*/
-        }
-
-        public object GetPropertyOwner(PropertyDescriptor pd) {
-            return this;
-        }
-        #endregion
-    }
-}
diff --git a/Source/Plugins/PropertiesDock/Data/CustomProperty.cs b/Source/Plugins/PropertiesDock/Data/CustomProperty.cs
deleted file mode 100644
index 4ceb27804..000000000
--- a/Source/Plugins/PropertiesDock/Data/CustomProperty.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using System;
-using System.Collections;
-using System.ComponentModel;
-using System.Collections.Generic;
-
-namespace CodeImp.DoomBuilder.PropertiesDock {
-    public class CustomProperty {
-        public bool ReadOnly { get { return bReadOnly; } }
-        public string Name { get { return sName; } }
-        public string Category { get { return category; } }
-        public bool Visible { get { return bVisible; } }
-        public object Value { get { return objValue; } set { objValue = value; } }
-        
-        private string sName = string.Empty;
-        private string category = string.Empty;
-        private bool bReadOnly = false;
-        private bool bVisible = true;
-        private object objValue = null;
-        //private Attribute[] attributes;
-
-        public CustomProperty(string sName, object value, bool bReadOnly, bool bVisible) {
-            this.sName = sName;
-            this.objValue = value;
-            this.bReadOnly = bReadOnly;
-            this.bVisible = bVisible;
-            //this.attributes = new Attribute[0];
-        }
-
-        //mxd
-        public CustomProperty(string sName, object value, string category, bool bReadOnly, bool bVisible) : this(sName, value, bReadOnly, bVisible) {
-            //attributes = attrs;
-            this.category = category;
-        }
-
-        /*public Attribute[] Attributes {
-            get {
-                return attributes;
-            }
-        }*/
-    }
-}
diff --git a/Source/Plugins/PropertiesDock/Data/CustomPropertyDescriptor.cs b/Source/Plugins/PropertiesDock/Data/CustomPropertyDescriptor.cs
deleted file mode 100644
index 91b7004c7..000000000
--- a/Source/Plugins/PropertiesDock/Data/CustomPropertyDescriptor.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-using System;
-using System.Collections;
-using System.ComponentModel;
-using System.Collections.Generic;
-
-namespace CodeImp.DoomBuilder.PropertiesDock {
-    public class CustomPropertyDescriptor : PropertyDescriptor {
-        CustomProperty m_Property;
-        public CustomPropertyDescriptor(ref CustomProperty myProperty, Attribute[] attrs)
-            : base(myProperty.Name, attrs) {
-            m_Property = myProperty;
-        }
-        /*public CustomPropertyDescriptor(ref CustomProperty myProperty, Attribute[] attrs)
-            : base(myProperty.Name, combineAttributes(attrs, myProperty.Attributes)) {
-            m_Property = myProperty;
-        }*/
-
-        /*private static Attribute[] combineAttributes(Attribute[] attrs, Attribute[] attribute) {
-            List<Attribute> l = new List<Attribute>();
-            l.AddRange(attrs);
-            l.AddRange(attribute);
-            return l.ToArray();
-        }*/
-
-        #region PropertyDescriptor specific
-
-        public override bool CanResetValue(object component) {
-            return false;
-        }
-
-        public override Type ComponentType {
-            get {
-                return null;
-            }
-        }
-
-        public override object GetValue(object component) {
-            return m_Property.Value;
-        }
-
-        public override string Description {
-            get {
-                return m_Property.Name;
-            }
-        }
-
-        public override string Category {
-            get {
-                return m_Property.Category;
-            }
-        }
-
-        public override string DisplayName {
-            get {
-                return m_Property.Name;
-            }
-
-        }
-
-        public override bool IsReadOnly {
-            get {
-                return m_Property.ReadOnly;
-            }
-        }
-
-        public override void ResetValue(object component) {
-            //Have to implement
-        }
-
-        public override bool ShouldSerializeValue(object component) {
-            return false;
-        }
-
-        public override void SetValue(object component, object value) {
-            m_Property.Value = value;
-        }
-
-        public override Type PropertyType {
-            get { return m_Property.Value.GetType(); }
-        }
-
-        #endregion
-    }
-}
diff --git a/Source/Plugins/PropertiesDock/Data/MapElementsData.cs b/Source/Plugins/PropertiesDock/Data/MapElementsData.cs
deleted file mode 100644
index 7c8576eb9..000000000
--- a/Source/Plugins/PropertiesDock/Data/MapElementsData.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-using CodeImp.DoomBuilder.Config;
-using CodeImp.DoomBuilder.Types;
-
-namespace CodeImp.DoomBuilder.PropertiesDock {
-    internal static class MapElementsData {
-
-        internal static Dictionary<int, string> ThingTypeDescriptions { get { return thingTypeDescriptions; } }
-        private static Dictionary<int, string> thingTypeDescriptions;
-
-        internal static void Init() {
-            //thing types
-            thingTypeDescriptions = new Dictionary<int, string>();
-
-            foreach (ThingCategory tc in General.Map.Data.ThingCategories) {
-                foreach (ThingTypeInfo ti in tc.Things) {
-                    thingTypeDescriptions.Add(ti.Index, ti.Title);
-                }
-            }
-        }
-
-        internal static void InitTypes(TypeHandlerAttribute[] types) {
-
-        }
-    }
-}
diff --git a/Source/Plugins/PropertiesDock/Info/IMapElementInfo.cs b/Source/Plugins/PropertiesDock/Info/IMapElementInfo.cs
deleted file mode 100644
index 624ca45a8..000000000
--- a/Source/Plugins/PropertiesDock/Info/IMapElementInfo.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace CodeImp.DoomBuilder.PropertiesDock {
-    interface IMapElementInfo {
-        void ApplyChanges();
-        void AddCustomProperty(string name, Type type);
-        void RemoveCustomProperty(string name);
-    }
-}
diff --git a/Source/Plugins/PropertiesDock/Info/ThingInfo.cs b/Source/Plugins/PropertiesDock/Info/ThingInfo.cs
deleted file mode 100644
index f51c1a085..000000000
--- a/Source/Plugins/PropertiesDock/Info/ThingInfo.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.ComponentModel;
-using CodeImp.DoomBuilder.Map;
-using System.Globalization;
-
-namespace CodeImp.DoomBuilder.PropertiesDock {
-    public class ThingInfo : IMapElementInfo {
-
-        [TypeConverterAttribute(typeof(ThingTypeConverter)), CategoryAttribute("General"), DefaultValueAttribute(0)]
-        public int Type { get { return type; } set { type = value; } }
-        private int type;
-
-        private Thing thing;
-
-        public ThingInfo(Thing t) {
-            thing = t;
-            type = t.Type;
-        }
-
-        public void ApplyChanges() {
-
-        }
-
-        public void AddCustomProperty(string name, Type type) {
-            //properties.Add(new PropertySpec(name + ":", value.GetType(), "Custom properties:"));
-        }
-
-        public void RemoveCustomProperty(string name) {
-            /*string n = name.ToUpperInvariant().Trim();
-            foreach (PropertySpec ps in properties) {
-                string cn = ps.Name.ToUpperInvariant();
-                if (cn.IndexOf(n) == 0 && cn.Length == n.Length + 1) {
-                    properties.Remove(name);
-                    return;
-                }
-            }*/
-        }
-    }
-
-    public class ThingTypeConverter : TypeConverter {
-
-        public override bool CanConvertTo(ITypeDescriptorContext context, System.Type destinationType) {
-            if (destinationType == typeof(int))
-                return true;
-            return base.CanConvertTo(context, destinationType);
-        }
-
-        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, System.Type destinationType) {
-            if (destinationType == typeof(System.String) && value is int) {
-                int type = (int)value;
-                if (MapElementsData.ThingTypeDescriptions.ContainsKey(type)) {
-                    return type + " - " + MapElementsData.ThingTypeDescriptions[type];
-                }
-
-                return type + " - Unknown Thing";
-            }
-            return base.ConvertTo(context, culture, value, destinationType);
-        }
-
-        public override bool CanConvertFrom(ITypeDescriptorContext context, System.Type sourceType) {
-            if (sourceType == typeof(string))
-                return true;
-            return base.CanConvertFrom(context, sourceType);
-        }
-
-        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
-            if (value is string) {
-                int type = 0;
-                if (!int.TryParse((string)value, out type)) {
-                    //throw new ArgumentException("'" + (string)value + "' is not a valid Thing type");
-                    General.ShowErrorMessage("'" + (string)value + "' is not a valid Thing type", System.Windows.Forms.MessageBoxButtons.OK);
-                }
-                return type;
-            }
-            return base.ConvertFrom(context, culture, value);
-        }
-    }
-}
diff --git a/Source/Plugins/PropertiesDock/Info/VertexInfo.cs b/Source/Plugins/PropertiesDock/Info/VertexInfo.cs
deleted file mode 100644
index 38db0a8c6..000000000
--- a/Source/Plugins/PropertiesDock/Info/VertexInfo.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Text;
-
-using CodeImp.DoomBuilder.Map;
-
-namespace CodeImp.DoomBuilder.PropertiesDock {
-
-    public class VertexInfo : CustomPropertiesCollection, IMapElementInfo {
-        private Vertex vertex;
-
-        public VertexInfo(Vertex v) : base() {
-            vertex = v;
-            Add(new CustomProperty("X:", v.Position.x, "Position:", false, true));
-            Add(new CustomProperty("Y:", v.Position.y, "Position:", false, true));
-
-            //todo: add custom fields
-            if (v.Fields != null && v.Fields.Count > 0) {
-                foreach (KeyValuePair<string, UniValue> group in v.Fields) {
-                    Add(new CustomProperty(group.Key, group.Value.Value, "Custom properties:", false, true));
-                }
-            }
-        }
-
-        public void ApplyChanges() {
-            float min = (float)General.Map.FormatInterface.MinCoordinate;
-            float max = (float)General.Map.FormatInterface.MaxCoordinate;
-            vertex.Move(new CodeImp.DoomBuilder.Geometry.Vector2D(General.Clamp((float)this[0].Value, min, max), General.Clamp((float)this[1].Value, min, max)));
-            
-            //todo: add custom fields support
-        }
-
-        public void AddCustomProperty(string name, Type type) {
-            Add(new CustomProperty(name, Activator.CreateInstance(type), "Custom properties:", false, true));
-        }
-
-        public void RemoveCustomProperty(string name){
-            string n = name.ToUpperInvariant().Trim();
-            foreach (CustomProperty ps in this) {
-                string cn = ps.Name.ToUpperInvariant();
-                if (cn.IndexOf(n) == 0 && cn.Length == n.Length + 1) {
-                    Remove(name);
-                    return;
-                }
-            }
-        }
-    }
-}
diff --git a/Source/Plugins/PropertiesDock/Properties/AssemblyInfo.cs b/Source/Plugins/PropertiesDock/Properties/AssemblyInfo.cs
deleted file mode 100644
index bfbc7ce8b..000000000
--- a/Source/Plugins/PropertiesDock/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// Управление общими сведениями о сборке осуществляется с помощью 
-// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
-// связанные со сборкой.
-[assembly: AssemblyTitle("PropertiesDock")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("PropertiesDock")]
-[assembly: AssemblyCopyright("Copyright ©  2012")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Параметр ComVisible со значением FALSE делает типы в сборке невидимыми 
-// для COM-компонентов.  Если требуется обратиться к типу в этой сборке через 
-// COM, задайте атрибуту ComVisible значение TRUE для этого типа.
-[assembly: ComVisible(false)]
-
-// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
-[assembly: Guid("7aaca834-f7f1-43a4-915a-45cdfacb4517")]
-
-// Сведения о версии сборки состоят из следующих четырех значений:
-//
-//      Основной номер версии
-//      Дополнительный номер версии 
-//      Номер построения
-//      Редакция
-//
-// Можно задать все значения или принять номер построения и номер редакции по умолчанию, 
-// используя "*", как показано ниже:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Source/Plugins/PropertiesDock/Properties/Resources.Designer.cs b/Source/Plugins/PropertiesDock/Properties/Resources.Designer.cs
deleted file mode 100644
index 6fc6cbb8a..000000000
--- a/Source/Plugins/PropertiesDock/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     Этот код создан программой.
-//     Исполняемая версия:2.0.50727.4927
-//
-//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
-//     повторной генерации кода.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace CodeImp.DoomBuilder.PropertiesDock.Properties {
-    using System;
-    
-    
-    /// <summary>
-    ///   Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
-    /// </summary>
-    // Этот класс создан автоматически классом StronglyTypedResourceBuilder
-    // с помощью такого средства, как ResGen или Visual Studio.
-    // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
-    // с параметром /str или перестройте свой проект VS.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Resources {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Resources() {
-        }
-        
-        /// <summary>
-        ///   Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CodeImp.DoomBuilder.PropertiesDock.Properties.Resources", typeof(Resources).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Перезаписывает свойство CurrentUICulture текущего потока для всех
-        ///   обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        internal static System.Drawing.Bitmap Add {
-            get {
-                object obj = ResourceManager.GetObject("Add", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        internal static System.Drawing.Bitmap Remove {
-            get {
-                object obj = ResourceManager.GetObject("Remove", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-    }
-}
diff --git a/Source/Plugins/PropertiesDock/Properties/Resources.resx b/Source/Plugins/PropertiesDock/Properties/Resources.resx
deleted file mode 100644
index 00a8973d7..000000000
--- a/Source/Plugins/PropertiesDock/Properties/Resources.resx
+++ /dev/null
@@ -1,127 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="Add" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="Remove" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Remove.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Source/Plugins/PropertiesDock/PropertiesDock.csproj b/Source/Plugins/PropertiesDock/PropertiesDock.csproj
deleted file mode 100644
index 5801871c2..000000000
--- a/Source/Plugins/PropertiesDock/PropertiesDock.csproj
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.30729</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{507E4F00-9929-436F-8E29-70C3C43DC7A3}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>CodeImp.DoomBuilder.PropertiesDock</RootNamespace>
-    <AssemblyName>PropertiesDock</AssemblyName>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\..\..\Build\Plugins\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <PlatformTarget>x86</PlatformTarget>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\..\Build\Plugins\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <PlatformTarget>x86</PlatformTarget>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core">
-      <RequiredTargetFramework>3.5</RequiredTargetFramework>
-    </Reference>
-    <Reference Include="System.Data" />
-    <Reference Include="System.Drawing" />
-    <Reference Include="System.Windows.Forms" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="BuilderPlug.cs" />
-    <Compile Include="Controls\PropertiesDocker.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Controls\PropertiesDocker.Designer.cs">
-      <DependentUpon>PropertiesDocker.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Data\CustomPropertiesCollection.cs" />
-    <Compile Include="Data\CustomProperty.cs" />
-    <Compile Include="Data\CustomPropertyDescriptor.cs" />
-    <Compile Include="Data\MapElementsData.cs" />
-    <Compile Include="Info\IMapElementInfo.cs" />
-    <Compile Include="Info\ThingInfo.cs" />
-    <Compile Include="Info\VertexInfo.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Properties\Resources.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DesignTime>True</DesignTime>
-      <DependentUpon>Resources.resx</DependentUpon>
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\..\Core\Builder.csproj">
-      <Project>{818B3D10-F791-4C3F-9AF5-BB2D0079B63C}</Project>
-      <Name>Builder</Name>
-      <Private>False</Private>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Controls\PropertiesDocker.resx">
-      <DependentUpon>PropertiesDocker.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Properties\Resources.resx">
-      <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Resources\Add.png" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Resources\Remove.png" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file
diff --git a/Source/Plugins/PropertiesDock/Resources/Remove.png b/Source/Plugins/PropertiesDock/Resources/Remove.png
deleted file mode 100644
index 9f5eda7d5d79583d6d7d07b53ddb94181ae3b861..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1178
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*9U+m=!WZB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+*
zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn
zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV
z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj
z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA<wUD9OyvQvjKmn3P{y
zVygsnDZ~r81#n~YilM;-3^4tQ!~%UoJp+)JU<!SG@hi>Eg{v+u2}(t{7puX=A(aKG
z`a!A1`K3k4z=%sz23b{L<y@4SSdw29lAoUg3&ntp{F40QjQj!x=U`KX@XWlF{PJS3
zYF}R~&%EN2#JuEGPZwJypnko~%oHm#7h^{=Crd+TBS%+5Lsvr!H%DhzHxpMQH)jiD
z6E_2xUYGpj(%jU%5}4i;gkB?@dO-;xw*Y9fOKMSOS!#+~QGTuh*uz$tINf65hSNN#
z-W1$!F~F%;ALtl;P_!aNGfW7Wc0f#cq6Ko`$v!m?nAVGciQ1#(o(Tg3qkyN2V@SoV
zq(A@v+cT>+2;OYC9MzN1_j2q1o*N>`Q`sdM4lOrnyfX8D0#BOrQO=W#z09;73}z|S
zeDYBUpR<QgWt+CsoG-umnGdT)vRyv<|DYdRqJXpt+qC3{6|Aov`I<F*dj1!8Jylp_
zzu)mi%XNXOMva!V=S?f#)*hMgSzd@wqmjc*g>lu7>*iMkQkt{kK1i*TJj}2|(at7f
zan7k}`Wmww8(3o}?o^vl@tt=yV}hm0ffl**4;X&`<kxOv)w$Nfa$SbIL{Ypig}q4P
zgunu+iX^AbbOGK&#{_I<GBzdF7__ZwUCO+HF~K#$<gk!Xo1(|34@<0OGwx2yX;V0z
pyo6bxS1$C&6G_dp=NK5-7&?zTvHbhDe<P^0@O1TaS?83{1OP1pih=+D

-- 
GitLab