From 59a7f315e9d068d11ee7dac867c114ac9d4fd0e6 Mon Sep 17 00:00:00 2001
From: MaxED <j.maxed@gmail.com>
Date: Fri, 7 Sep 2012 14:04:32 +0000
Subject: [PATCH] Actions and Effects can now be filtered (useful when you
 remember action/effect name, but don't remember it's number or category)

---
 Source/Core/Builder.csproj                    |   1 +
 Source/Core/GZBuilder/GZGeneral.cs            |   2 +-
 Source/Core/Properties/Resources.Designer.cs  |   9 +-
 Source/Core/Properties/Resources.resx         | 127 +--
 Source/Core/Resources/SearchClear.png         | Bin 0 -> 1178 bytes
 .../Windows/ActionBrowserForm.Designer.cs     | 935 +++++++++---------
 Source/Core/Windows/ActionBrowserForm.cs      | 117 ++-
 Source/Core/Windows/ActionBrowserForm.resx    |  24 -
 .../Windows/EffectBrowserForm.Designer.cs     | 715 +++++++-------
 Source/Core/Windows/EffectBrowserForm.cs      |  70 +-
 Source/Core/Windows/EffectBrowserForm.resx    |   3 -
 11 files changed, 1083 insertions(+), 920 deletions(-)
 create mode 100644 Source/Core/Resources/SearchClear.png

diff --git a/Source/Core/Builder.csproj b/Source/Core/Builder.csproj
index 29f2a4e5a..bc91b73a0 100644
--- a/Source/Core/Builder.csproj
+++ b/Source/Core/Builder.csproj
@@ -818,6 +818,7 @@
     <None Include="Resources\MLogo.png" />
     <Content Include="Resources\Model.png" />
     <Content Include="Resources\Model_selected.png" />
+    <None Include="Resources\SearchClear.png" />
     <None Include="Resources\Text.png" />
     <None Include="Resources\List_Images.png" />
     <None Include="Resources\List.png" />
diff --git a/Source/Core/GZBuilder/GZGeneral.cs b/Source/Core/GZBuilder/GZGeneral.cs
index 896287830..3287937b4 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.12f;
-        public const char Revision = 'g';
+        public const char Revision = 'h';
 
         //debug console
 #if DEBUG
diff --git a/Source/Core/Properties/Resources.Designer.cs b/Source/Core/Properties/Resources.Designer.cs
index 32568fbdc..2f2809f01 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
 //
 //     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
 //     повторной генерации кода.
@@ -438,6 +438,13 @@ namespace CodeImp.DoomBuilder.Properties {
             }
         }
         
+        internal static System.Drawing.Bitmap SearchClear {
+            get {
+                object obj = ResourceManager.GetObject("SearchClear", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         internal static System.Drawing.Bitmap SlimDX_small {
             get {
                 object obj = ResourceManager.GetObject("SlimDX_small", resourceCulture);
diff --git a/Source/Core/Properties/Resources.resx b/Source/Core/Properties/Resources.resx
index 17b47f577..e239fc565 100644
--- a/Source/Core/Properties/Resources.resx
+++ b/Source/Core/Properties/Resources.resx
@@ -127,27 +127,21 @@
   <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="Grid4" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Grid4.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="PasteSpecial" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\PasteSpecial.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="UnknownImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\UnknownImage.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Copy" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Copy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="Status11" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Status11.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>
+  <data name="Hourglass" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Hourglass.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <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="MLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\MLogo.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>
@@ -160,8 +154,8 @@
   <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 name="Status11" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Status11.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="Close" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Close.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -172,8 +166,8 @@
   <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 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>
   <data name="GZDB2" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\GZDB2.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -187,6 +181,9 @@
   <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="OpenMap" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\OpenMap.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="ViewTextureFloor" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\ViewTextureFloor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -199,26 +196,29 @@
   <data name="Monster2" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Monster2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Hourglass" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Hourglass.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="ViewNormal" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\ViewNormal.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="SaveAll" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\SaveAll.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="WarningLarge" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\WarningLarge.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="Angle" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Angle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="File" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\NewMap.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>
+  <data name="Copy" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Copy.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>
   </data>
   <data name="NewMap" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\NewMap2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Grid2_arrowup" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Grid2_arrowup.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="ViewNormal" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\ViewNormal.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="CLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\CLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -229,17 +229,23 @@
   <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>
+  <data name="Prefab" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Prefab.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="MLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\MLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="Failed" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Failed.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="Grid2_arrowup" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Grid2_arrowup.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="Status0" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Status0.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Prefab" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Prefab.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="Splash3_trans" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Splash3_trans.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <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>
   <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>
@@ -256,9 +262,6 @@
   <data name="Monster3" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Monster3.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="List_Images" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\List_Images.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <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>
@@ -271,8 +274,8 @@
   <data name="WarningOff" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\WarningOff.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="OpenScript" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\OpenScript.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="GZDB_Logo_small" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\GZDB_Logo_small.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</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>
@@ -286,67 +289,67 @@
   <data name="mergegeometry2" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\mergegeometry2.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="NewScript" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\NewScript.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="Prefab2" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Prefab2.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>
-  <data name="SaveAll" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\SaveAll.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <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>
   </data>
-  <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 name="ScriptKeyword" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\ScriptKeyword.xpm;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</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>
-  <data name="ScriptKeyword" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\ScriptKeyword.xpm;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <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>
   </data>
   <data name="ScriptCompile" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\ScriptCompile.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 name="SaveScript" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\SaveScript.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="OpenScript" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\OpenScript.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="Paste" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Paste.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="Light" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Light.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="Folder" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Folder.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Grid4" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Grid4.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 name="Splash3_trans" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Splash3_trans.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="OpenMap" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\OpenMap.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="Angle" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Angle.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <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="ColorPick" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\ColorPick.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Light" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Light.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="List_Images" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\List_Images.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>
+  <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="SaveScript" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\SaveScript.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="NewScript" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\NewScript.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="ErrorLarge" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\ErrorLarge.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="GZDB_Logo_small" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\GZDB_Logo_small.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="SearchClear" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\SearchClear.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/Core/Resources/SearchClear.png b/Source/Core/Resources/SearchClear.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f5eda7d5d79583d6d7d07b53ddb94181ae3b861
GIT binary patch
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

literal 0
HcmV?d00001

diff --git a/Source/Core/Windows/ActionBrowserForm.Designer.cs b/Source/Core/Windows/ActionBrowserForm.Designer.cs
index 059623cca..a30f64a2f 100644
--- a/Source/Core/Windows/ActionBrowserForm.Designer.cs
+++ b/Source/Core/Windows/ActionBrowserForm.Designer.cs
@@ -28,449 +28,494 @@ namespace CodeImp.DoomBuilder.Windows
 		/// </summary>
 		private void InitializeComponent()
 		{
-			System.Windows.Forms.Label label1;
-			System.Windows.Forms.Label label2;
-			System.Windows.Forms.Label label3;
-			System.Windows.Forms.Label label4;
-			System.Windows.Forms.Label label5;
-			System.Windows.Forms.Label label6;
-			System.Windows.Forms.GroupBox groupBox1;
-			System.Windows.Forms.Label label7;
-			System.Windows.Forms.GroupBox groupBox2;
-			this.category = new System.Windows.Forms.ComboBox();
-			this.option7 = new System.Windows.Forms.ComboBox();
-			this.option7label = new System.Windows.Forms.Label();
-			this.option6 = new System.Windows.Forms.ComboBox();
-			this.option6label = new System.Windows.Forms.Label();
-			this.option5 = new System.Windows.Forms.ComboBox();
-			this.option5label = new System.Windows.Forms.Label();
-			this.option4 = new System.Windows.Forms.ComboBox();
-			this.option4label = new System.Windows.Forms.Label();
-			this.option3 = new System.Windows.Forms.ComboBox();
-			this.option3label = new System.Windows.Forms.Label();
-			this.option2 = new System.Windows.Forms.ComboBox();
-			this.option2label = new System.Windows.Forms.Label();
-			this.option1 = new System.Windows.Forms.ComboBox();
-			this.option1label = new System.Windows.Forms.Label();
-			this.option0 = new System.Windows.Forms.ComboBox();
-			this.option0label = new System.Windows.Forms.Label();
-			this.cancel = new System.Windows.Forms.Button();
-			this.apply = new System.Windows.Forms.Button();
-			this.actions = new System.Windows.Forms.TreeView();
-			this.tabs = new System.Windows.Forms.TabControl();
-			this.tabactions = new System.Windows.Forms.TabPage();
-			this.prefixespanel = new System.Windows.Forms.Panel();
-			this.tabgeneralized = new System.Windows.Forms.TabPage();
-			label1 = new System.Windows.Forms.Label();
-			label2 = new System.Windows.Forms.Label();
-			label3 = new System.Windows.Forms.Label();
-			label4 = new System.Windows.Forms.Label();
-			label5 = new System.Windows.Forms.Label();
-			label6 = new System.Windows.Forms.Label();
-			groupBox1 = new System.Windows.Forms.GroupBox();
-			label7 = new System.Windows.Forms.Label();
-			groupBox2 = new System.Windows.Forms.GroupBox();
-			groupBox1.SuspendLayout();
-			groupBox2.SuspendLayout();
-			this.tabs.SuspendLayout();
-			this.tabactions.SuspendLayout();
-			this.prefixespanel.SuspendLayout();
-			this.tabgeneralized.SuspendLayout();
-			this.SuspendLayout();
-			// 
-			// label1
-			// 
-			label1.AutoSize = true;
-			label1.Location = new System.Drawing.Point(27, 0);
-			label1.Name = "label1";
-			label1.Size = new System.Drawing.Size(60, 14);
-			label1.TabIndex = 21;
-			label1.Text = "S = Switch";
-			// 
-			// label2
-			// 
-			label2.AutoSize = true;
-			label2.Location = new System.Drawing.Point(140, 0);
-			label2.Name = "label2";
-			label2.Size = new System.Drawing.Size(77, 14);
-			label2.TabIndex = 22;
-			label2.Text = "W = Walk over";
-			// 
-			// label3
-			// 
-			label3.AutoSize = true;
-			label3.Location = new System.Drawing.Point(269, 0);
-			label3.Name = "label3";
-			label3.Size = new System.Drawing.Size(63, 14);
-			label3.TabIndex = 23;
-			label3.Text = "G = Gunfire";
-			// 
-			// label4
-			// 
-			label4.AutoSize = true;
-			label4.Location = new System.Drawing.Point(27, 16);
-			label4.Name = "label4";
-			label4.Size = new System.Drawing.Size(49, 14);
-			label4.TabIndex = 24;
-			label4.Text = "D = Door";
-			// 
-			// label5
-			// 
-			label5.AutoSize = true;
-			label5.Location = new System.Drawing.Point(140, 16);
-			label5.Name = "label5";
-			label5.Size = new System.Drawing.Size(80, 14);
-			label5.TabIndex = 25;
-			label5.Text = "R = Repeatable";
-			// 
-			// label6
-			// 
-			label6.AutoSize = true;
-			label6.Location = new System.Drawing.Point(269, 16);
-			label6.Name = "label6";
-			label6.Size = new System.Drawing.Size(74, 14);
-			label6.TabIndex = 26;
-			label6.Text = "1 = Once only";
-			// 
-			// groupBox1
-			// 
-			groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-						| System.Windows.Forms.AnchorStyles.Right)));
-			groupBox1.Controls.Add(this.category);
-			groupBox1.Controls.Add(label7);
-			groupBox1.Location = new System.Drawing.Point(6, 6);
-			groupBox1.Name = "groupBox1";
-			groupBox1.Size = new System.Drawing.Size(379, 65);
-			groupBox1.TabIndex = 0;
-			groupBox1.TabStop = false;
-			groupBox1.Text = " Category ";
-			// 
-			// category
-			// 
-			this.category.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.category.FormattingEnabled = true;
-			this.category.Location = new System.Drawing.Point(118, 25);
-			this.category.Name = "category";
-			this.category.Size = new System.Drawing.Size(199, 22);
-			this.category.TabIndex = 0;
-			this.category.SelectedIndexChanged += new System.EventHandler(this.category_SelectedIndexChanged);
-			// 
-			// label7
-			// 
-			label7.AutoSize = true;
-			label7.Location = new System.Drawing.Point(58, 28);
-			label7.Name = "label7";
-			label7.Size = new System.Drawing.Size(54, 14);
-			label7.TabIndex = 0;
-			label7.Text = "Category:";
-			// 
-			// groupBox2
-			// 
-			groupBox2.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)));
-			groupBox2.Controls.Add(this.option7);
-			groupBox2.Controls.Add(this.option7label);
-			groupBox2.Controls.Add(this.option6);
-			groupBox2.Controls.Add(this.option6label);
-			groupBox2.Controls.Add(this.option5);
-			groupBox2.Controls.Add(this.option5label);
-			groupBox2.Controls.Add(this.option4);
-			groupBox2.Controls.Add(this.option4label);
-			groupBox2.Controls.Add(this.option3);
-			groupBox2.Controls.Add(this.option3label);
-			groupBox2.Controls.Add(this.option2);
-			groupBox2.Controls.Add(this.option2label);
-			groupBox2.Controls.Add(this.option1);
-			groupBox2.Controls.Add(this.option1label);
-			groupBox2.Controls.Add(this.option0);
-			groupBox2.Controls.Add(this.option0label);
-			groupBox2.Location = new System.Drawing.Point(6, 77);
-			groupBox2.Name = "groupBox2";
-			groupBox2.Size = new System.Drawing.Size(379, 326);
-			groupBox2.TabIndex = 1;
-			groupBox2.TabStop = false;
-			groupBox2.Text = " Options ";
-			// 
-			// option7
-			// 
-			this.option7.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option7.FormattingEnabled = true;
-			this.option7.Location = new System.Drawing.Point(118, 280);
-			this.option7.Name = "option7";
-			this.option7.Size = new System.Drawing.Size(199, 22);
-			this.option7.TabIndex = 7;
-			this.option7.Visible = false;
-			// 
-			// option7label
-			// 
-			this.option7label.Location = new System.Drawing.Point(3, 283);
-			this.option7label.Name = "option7label";
-			this.option7label.Size = new System.Drawing.Size(109, 19);
-			this.option7label.TabIndex = 16;
-			this.option7label.Text = "Option:";
-			this.option7label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option7label.Visible = false;
-			// 
-			// option6
-			// 
-			this.option6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option6.FormattingEnabled = true;
-			this.option6.Location = new System.Drawing.Point(118, 244);
-			this.option6.Name = "option6";
-			this.option6.Size = new System.Drawing.Size(199, 22);
-			this.option6.TabIndex = 6;
-			this.option6.Visible = false;
-			// 
-			// option6label
-			// 
-			this.option6label.Location = new System.Drawing.Point(3, 247);
-			this.option6label.Name = "option6label";
-			this.option6label.Size = new System.Drawing.Size(109, 19);
-			this.option6label.TabIndex = 14;
-			this.option6label.Text = "Option:";
-			this.option6label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option6label.Visible = false;
-			// 
-			// option5
-			// 
-			this.option5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option5.FormattingEnabled = true;
-			this.option5.Location = new System.Drawing.Point(118, 208);
-			this.option5.Name = "option5";
-			this.option5.Size = new System.Drawing.Size(199, 22);
-			this.option5.TabIndex = 5;
-			this.option5.Visible = false;
-			// 
-			// option5label
-			// 
-			this.option5label.Location = new System.Drawing.Point(3, 211);
-			this.option5label.Name = "option5label";
-			this.option5label.Size = new System.Drawing.Size(109, 19);
-			this.option5label.TabIndex = 12;
-			this.option5label.Text = "Option:";
-			this.option5label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option5label.Visible = false;
-			// 
-			// option4
-			// 
-			this.option4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option4.FormattingEnabled = true;
-			this.option4.Location = new System.Drawing.Point(118, 172);
-			this.option4.Name = "option4";
-			this.option4.Size = new System.Drawing.Size(199, 22);
-			this.option4.TabIndex = 4;
-			this.option4.Visible = false;
-			// 
-			// option4label
-			// 
-			this.option4label.Location = new System.Drawing.Point(3, 175);
-			this.option4label.Name = "option4label";
-			this.option4label.Size = new System.Drawing.Size(109, 19);
-			this.option4label.TabIndex = 10;
-			this.option4label.Text = "Option:";
-			this.option4label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option4label.Visible = false;
-			// 
-			// option3
-			// 
-			this.option3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option3.FormattingEnabled = true;
-			this.option3.Location = new System.Drawing.Point(118, 136);
-			this.option3.Name = "option3";
-			this.option3.Size = new System.Drawing.Size(199, 22);
-			this.option3.TabIndex = 3;
-			this.option3.Visible = false;
-			// 
-			// option3label
-			// 
-			this.option3label.Location = new System.Drawing.Point(3, 139);
-			this.option3label.Name = "option3label";
-			this.option3label.Size = new System.Drawing.Size(109, 19);
-			this.option3label.TabIndex = 8;
-			this.option3label.Text = "Option:";
-			this.option3label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option3label.Visible = false;
-			// 
-			// option2
-			// 
-			this.option2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option2.FormattingEnabled = true;
-			this.option2.Location = new System.Drawing.Point(118, 100);
-			this.option2.Name = "option2";
-			this.option2.Size = new System.Drawing.Size(199, 22);
-			this.option2.TabIndex = 2;
-			this.option2.Visible = false;
-			// 
-			// option2label
-			// 
-			this.option2label.Location = new System.Drawing.Point(3, 103);
-			this.option2label.Name = "option2label";
-			this.option2label.Size = new System.Drawing.Size(109, 19);
-			this.option2label.TabIndex = 6;
-			this.option2label.Text = "Option:";
-			this.option2label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option2label.Visible = false;
-			// 
-			// option1
-			// 
-			this.option1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option1.FormattingEnabled = true;
-			this.option1.Location = new System.Drawing.Point(118, 64);
-			this.option1.Name = "option1";
-			this.option1.Size = new System.Drawing.Size(199, 22);
-			this.option1.TabIndex = 1;
-			this.option1.Visible = false;
-			// 
-			// option1label
-			// 
-			this.option1label.Location = new System.Drawing.Point(3, 67);
-			this.option1label.Name = "option1label";
-			this.option1label.Size = new System.Drawing.Size(109, 19);
-			this.option1label.TabIndex = 4;
-			this.option1label.Text = "Option:";
-			this.option1label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option1label.Visible = false;
-			// 
-			// option0
-			// 
-			this.option0.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option0.FormattingEnabled = true;
-			this.option0.Location = new System.Drawing.Point(118, 28);
-			this.option0.Name = "option0";
-			this.option0.Size = new System.Drawing.Size(199, 22);
-			this.option0.TabIndex = 0;
-			this.option0.Visible = false;
-			// 
-			// option0label
-			// 
-			this.option0label.Location = new System.Drawing.Point(3, 31);
-			this.option0label.Name = "option0label";
-			this.option0label.Size = new System.Drawing.Size(109, 19);
-			this.option0label.TabIndex = 2;
-			this.option0label.Text = "Option:";
-			this.option0label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option0label.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(297, 459);
-			this.cancel.Name = "cancel";
-			this.cancel.Size = new System.Drawing.Size(112, 27);
-			this.cancel.TabIndex = 2;
-			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(177, 459);
-			this.apply.Name = "apply";
-			this.apply.Size = new System.Drawing.Size(112, 27);
-			this.apply.TabIndex = 1;
-			this.apply.Text = "OK";
-			this.apply.UseVisualStyleBackColor = true;
-			this.apply.Click += new System.EventHandler(this.apply_Click);
-			// 
-			// actions
-			// 
-			this.actions.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.actions.HideSelection = false;
-			this.actions.Location = new System.Drawing.Point(6, 52);
-			this.actions.Name = "actions";
-			this.actions.Size = new System.Drawing.Size(379, 351);
-			this.actions.TabIndex = 0;
-			this.actions.DoubleClick += new System.EventHandler(this.actions_DoubleClick);
-			// 
-			// 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.tabactions);
-			this.tabs.Controls.Add(this.tabgeneralized);
-			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(150, 19);
-			this.tabs.Location = new System.Drawing.Point(10, 10);
-			this.tabs.Margin = new System.Windows.Forms.Padding(1);
-			this.tabs.Name = "tabs";
-			this.tabs.SelectedIndex = 0;
-			this.tabs.Size = new System.Drawing.Size(399, 436);
-			this.tabs.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
-			this.tabs.TabIndex = 0;
-			// 
-			// tabactions
-			// 
-			this.tabactions.Controls.Add(this.actions);
-			this.tabactions.Controls.Add(this.prefixespanel);
-			this.tabactions.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.tabactions.Location = new System.Drawing.Point(4, 23);
-			this.tabactions.Name = "tabactions";
-			this.tabactions.Padding = new System.Windows.Forms.Padding(3);
-			this.tabactions.Size = new System.Drawing.Size(391, 409);
-			this.tabactions.TabIndex = 0;
-			this.tabactions.Text = "Predefined Actions";
-			this.tabactions.UseVisualStyleBackColor = true;
-			// 
-			// prefixespanel
-			// 
-			this.prefixespanel.Controls.Add(label6);
-			this.prefixespanel.Controls.Add(label5);
-			this.prefixespanel.Controls.Add(label4);
-			this.prefixespanel.Controls.Add(label3);
-			this.prefixespanel.Controls.Add(label2);
-			this.prefixespanel.Controls.Add(label1);
-			this.prefixespanel.Location = new System.Drawing.Point(7, 12);
-			this.prefixespanel.Name = "prefixespanel";
-			this.prefixespanel.Size = new System.Drawing.Size(378, 34);
-			this.prefixespanel.TabIndex = 27;
-			// 
-			// tabgeneralized
-			// 
-			this.tabgeneralized.Controls.Add(groupBox2);
-			this.tabgeneralized.Controls.Add(groupBox1);
-			this.tabgeneralized.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.tabgeneralized.Location = new System.Drawing.Point(4, 23);
-			this.tabgeneralized.Name = "tabgeneralized";
-			this.tabgeneralized.Padding = new System.Windows.Forms.Padding(3);
-			this.tabgeneralized.Size = new System.Drawing.Size(391, 409);
-			this.tabgeneralized.TabIndex = 1;
-			this.tabgeneralized.Text = "Generalized Actions";
-			this.tabgeneralized.UseVisualStyleBackColor = true;
-			// 
-			// ActionBrowserForm
-			// 
-			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(419, 496);
-			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 = "ActionBrowserForm";
-			this.Opacity = 0;
-			this.ShowInTaskbar = false;
-			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
-			this.Text = "Edit Action";
-			groupBox1.ResumeLayout(false);
-			groupBox1.PerformLayout();
-			groupBox2.ResumeLayout(false);
-			this.tabs.ResumeLayout(false);
-			this.tabactions.ResumeLayout(false);
-			this.prefixespanel.ResumeLayout(false);
-			this.prefixespanel.PerformLayout();
-			this.tabgeneralized.ResumeLayout(false);
-			this.ResumeLayout(false);
+            System.Windows.Forms.Label label1;
+            System.Windows.Forms.Label label2;
+            System.Windows.Forms.Label label3;
+            System.Windows.Forms.Label label4;
+            System.Windows.Forms.Label label5;
+            System.Windows.Forms.Label label6;
+            System.Windows.Forms.GroupBox groupBox1;
+            System.Windows.Forms.Label label7;
+            System.Windows.Forms.GroupBox groupBox2;
+            this.category = new System.Windows.Forms.ComboBox();
+            this.option7 = new System.Windows.Forms.ComboBox();
+            this.option7label = new System.Windows.Forms.Label();
+            this.option6 = new System.Windows.Forms.ComboBox();
+            this.option6label = new System.Windows.Forms.Label();
+            this.option5 = new System.Windows.Forms.ComboBox();
+            this.option5label = new System.Windows.Forms.Label();
+            this.option4 = new System.Windows.Forms.ComboBox();
+            this.option4label = new System.Windows.Forms.Label();
+            this.option3 = new System.Windows.Forms.ComboBox();
+            this.option3label = new System.Windows.Forms.Label();
+            this.option2 = new System.Windows.Forms.ComboBox();
+            this.option2label = new System.Windows.Forms.Label();
+            this.option1 = new System.Windows.Forms.ComboBox();
+            this.option1label = new System.Windows.Forms.Label();
+            this.option0 = new System.Windows.Forms.ComboBox();
+            this.option0label = new System.Windows.Forms.Label();
+            this.cancel = new System.Windows.Forms.Button();
+            this.apply = new System.Windows.Forms.Button();
+            this.actions = new System.Windows.Forms.TreeView();
+            this.tabs = new System.Windows.Forms.TabControl();
+            this.tabactions = new System.Windows.Forms.TabPage();
+            this.filterPanel = new System.Windows.Forms.Panel();
+            this.tbFilter = new System.Windows.Forms.TextBox();
+            this.btnClearFilter = new System.Windows.Forms.Button();
+            this.labelFilter = new System.Windows.Forms.Label();
+            this.prefixespanel = new System.Windows.Forms.Panel();
+            this.tabgeneralized = new System.Windows.Forms.TabPage();
+            label1 = new System.Windows.Forms.Label();
+            label2 = new System.Windows.Forms.Label();
+            label3 = new System.Windows.Forms.Label();
+            label4 = new System.Windows.Forms.Label();
+            label5 = new System.Windows.Forms.Label();
+            label6 = new System.Windows.Forms.Label();
+            groupBox1 = new System.Windows.Forms.GroupBox();
+            label7 = new System.Windows.Forms.Label();
+            groupBox2 = new System.Windows.Forms.GroupBox();
+            groupBox1.SuspendLayout();
+            groupBox2.SuspendLayout();
+            this.tabs.SuspendLayout();
+            this.tabactions.SuspendLayout();
+            this.filterPanel.SuspendLayout();
+            this.prefixespanel.SuspendLayout();
+            this.tabgeneralized.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // label1
+            // 
+            label1.AutoSize = true;
+            label1.Location = new System.Drawing.Point(27, 4);
+            label1.Name = "label1";
+            label1.Size = new System.Drawing.Size(60, 14);
+            label1.TabIndex = 21;
+            label1.Text = "S = Switch";
+            // 
+            // label2
+            // 
+            label2.AutoSize = true;
+            label2.Location = new System.Drawing.Point(140, 4);
+            label2.Name = "label2";
+            label2.Size = new System.Drawing.Size(77, 14);
+            label2.TabIndex = 22;
+            label2.Text = "W = Walk over";
+            // 
+            // label3
+            // 
+            label3.AutoSize = true;
+            label3.Location = new System.Drawing.Point(269, 4);
+            label3.Name = "label3";
+            label3.Size = new System.Drawing.Size(63, 14);
+            label3.TabIndex = 23;
+            label3.Text = "G = Gunfire";
+            // 
+            // label4
+            // 
+            label4.AutoSize = true;
+            label4.Location = new System.Drawing.Point(27, 20);
+            label4.Name = "label4";
+            label4.Size = new System.Drawing.Size(49, 14);
+            label4.TabIndex = 24;
+            label4.Text = "D = Door";
+            // 
+            // label5
+            // 
+            label5.AutoSize = true;
+            label5.Location = new System.Drawing.Point(140, 20);
+            label5.Name = "label5";
+            label5.Size = new System.Drawing.Size(80, 14);
+            label5.TabIndex = 25;
+            label5.Text = "R = Repeatable";
+            // 
+            // label6
+            // 
+            label6.AutoSize = true;
+            label6.Location = new System.Drawing.Point(269, 20);
+            label6.Name = "label6";
+            label6.Size = new System.Drawing.Size(74, 14);
+            label6.TabIndex = 26;
+            label6.Text = "1 = Once only";
+            // 
+            // groupBox1
+            // 
+            groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                        | System.Windows.Forms.AnchorStyles.Right)));
+            groupBox1.Controls.Add(this.category);
+            groupBox1.Controls.Add(label7);
+            groupBox1.Location = new System.Drawing.Point(6, 6);
+            groupBox1.Name = "groupBox1";
+            groupBox1.Size = new System.Drawing.Size(379, 65);
+            groupBox1.TabIndex = 0;
+            groupBox1.TabStop = false;
+            groupBox1.Text = " Category ";
+            // 
+            // category
+            // 
+            this.category.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.category.FormattingEnabled = true;
+            this.category.Location = new System.Drawing.Point(118, 25);
+            this.category.Name = "category";
+            this.category.Size = new System.Drawing.Size(199, 22);
+            this.category.TabIndex = 0;
+            this.category.SelectedIndexChanged += new System.EventHandler(this.category_SelectedIndexChanged);
+            // 
+            // label7
+            // 
+            label7.AutoSize = true;
+            label7.Location = new System.Drawing.Point(58, 28);
+            label7.Name = "label7";
+            label7.Size = new System.Drawing.Size(54, 14);
+            label7.TabIndex = 0;
+            label7.Text = "Category:";
+            // 
+            // groupBox2
+            // 
+            groupBox2.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)));
+            groupBox2.Controls.Add(this.option7);
+            groupBox2.Controls.Add(this.option7label);
+            groupBox2.Controls.Add(this.option6);
+            groupBox2.Controls.Add(this.option6label);
+            groupBox2.Controls.Add(this.option5);
+            groupBox2.Controls.Add(this.option5label);
+            groupBox2.Controls.Add(this.option4);
+            groupBox2.Controls.Add(this.option4label);
+            groupBox2.Controls.Add(this.option3);
+            groupBox2.Controls.Add(this.option3label);
+            groupBox2.Controls.Add(this.option2);
+            groupBox2.Controls.Add(this.option2label);
+            groupBox2.Controls.Add(this.option1);
+            groupBox2.Controls.Add(this.option1label);
+            groupBox2.Controls.Add(this.option0);
+            groupBox2.Controls.Add(this.option0label);
+            groupBox2.Location = new System.Drawing.Point(6, 77);
+            groupBox2.Name = "groupBox2";
+            groupBox2.Size = new System.Drawing.Size(379, 326);
+            groupBox2.TabIndex = 1;
+            groupBox2.TabStop = false;
+            groupBox2.Text = " Options ";
+            // 
+            // option7
+            // 
+            this.option7.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option7.FormattingEnabled = true;
+            this.option7.Location = new System.Drawing.Point(118, 280);
+            this.option7.Name = "option7";
+            this.option7.Size = new System.Drawing.Size(199, 22);
+            this.option7.TabIndex = 7;
+            this.option7.Visible = false;
+            // 
+            // option7label
+            // 
+            this.option7label.Location = new System.Drawing.Point(3, 283);
+            this.option7label.Name = "option7label";
+            this.option7label.Size = new System.Drawing.Size(109, 19);
+            this.option7label.TabIndex = 16;
+            this.option7label.Text = "Option:";
+            this.option7label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option7label.Visible = false;
+            // 
+            // option6
+            // 
+            this.option6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option6.FormattingEnabled = true;
+            this.option6.Location = new System.Drawing.Point(118, 244);
+            this.option6.Name = "option6";
+            this.option6.Size = new System.Drawing.Size(199, 22);
+            this.option6.TabIndex = 6;
+            this.option6.Visible = false;
+            // 
+            // option6label
+            // 
+            this.option6label.Location = new System.Drawing.Point(3, 247);
+            this.option6label.Name = "option6label";
+            this.option6label.Size = new System.Drawing.Size(109, 19);
+            this.option6label.TabIndex = 14;
+            this.option6label.Text = "Option:";
+            this.option6label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option6label.Visible = false;
+            // 
+            // option5
+            // 
+            this.option5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option5.FormattingEnabled = true;
+            this.option5.Location = new System.Drawing.Point(118, 208);
+            this.option5.Name = "option5";
+            this.option5.Size = new System.Drawing.Size(199, 22);
+            this.option5.TabIndex = 5;
+            this.option5.Visible = false;
+            // 
+            // option5label
+            // 
+            this.option5label.Location = new System.Drawing.Point(3, 211);
+            this.option5label.Name = "option5label";
+            this.option5label.Size = new System.Drawing.Size(109, 19);
+            this.option5label.TabIndex = 12;
+            this.option5label.Text = "Option:";
+            this.option5label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option5label.Visible = false;
+            // 
+            // option4
+            // 
+            this.option4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option4.FormattingEnabled = true;
+            this.option4.Location = new System.Drawing.Point(118, 172);
+            this.option4.Name = "option4";
+            this.option4.Size = new System.Drawing.Size(199, 22);
+            this.option4.TabIndex = 4;
+            this.option4.Visible = false;
+            // 
+            // option4label
+            // 
+            this.option4label.Location = new System.Drawing.Point(3, 175);
+            this.option4label.Name = "option4label";
+            this.option4label.Size = new System.Drawing.Size(109, 19);
+            this.option4label.TabIndex = 10;
+            this.option4label.Text = "Option:";
+            this.option4label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option4label.Visible = false;
+            // 
+            // option3
+            // 
+            this.option3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option3.FormattingEnabled = true;
+            this.option3.Location = new System.Drawing.Point(118, 136);
+            this.option3.Name = "option3";
+            this.option3.Size = new System.Drawing.Size(199, 22);
+            this.option3.TabIndex = 3;
+            this.option3.Visible = false;
+            // 
+            // option3label
+            // 
+            this.option3label.Location = new System.Drawing.Point(3, 139);
+            this.option3label.Name = "option3label";
+            this.option3label.Size = new System.Drawing.Size(109, 19);
+            this.option3label.TabIndex = 8;
+            this.option3label.Text = "Option:";
+            this.option3label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option3label.Visible = false;
+            // 
+            // option2
+            // 
+            this.option2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option2.FormattingEnabled = true;
+            this.option2.Location = new System.Drawing.Point(118, 100);
+            this.option2.Name = "option2";
+            this.option2.Size = new System.Drawing.Size(199, 22);
+            this.option2.TabIndex = 2;
+            this.option2.Visible = false;
+            // 
+            // option2label
+            // 
+            this.option2label.Location = new System.Drawing.Point(3, 103);
+            this.option2label.Name = "option2label";
+            this.option2label.Size = new System.Drawing.Size(109, 19);
+            this.option2label.TabIndex = 6;
+            this.option2label.Text = "Option:";
+            this.option2label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option2label.Visible = false;
+            // 
+            // option1
+            // 
+            this.option1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option1.FormattingEnabled = true;
+            this.option1.Location = new System.Drawing.Point(118, 64);
+            this.option1.Name = "option1";
+            this.option1.Size = new System.Drawing.Size(199, 22);
+            this.option1.TabIndex = 1;
+            this.option1.Visible = false;
+            // 
+            // option1label
+            // 
+            this.option1label.Location = new System.Drawing.Point(3, 67);
+            this.option1label.Name = "option1label";
+            this.option1label.Size = new System.Drawing.Size(109, 19);
+            this.option1label.TabIndex = 4;
+            this.option1label.Text = "Option:";
+            this.option1label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option1label.Visible = false;
+            // 
+            // option0
+            // 
+            this.option0.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option0.FormattingEnabled = true;
+            this.option0.Location = new System.Drawing.Point(118, 28);
+            this.option0.Name = "option0";
+            this.option0.Size = new System.Drawing.Size(199, 22);
+            this.option0.TabIndex = 0;
+            this.option0.Visible = false;
+            // 
+            // option0label
+            // 
+            this.option0label.Location = new System.Drawing.Point(3, 31);
+            this.option0label.Name = "option0label";
+            this.option0label.Size = new System.Drawing.Size(109, 19);
+            this.option0label.TabIndex = 2;
+            this.option0label.Text = "Option:";
+            this.option0label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option0label.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(297, 459);
+            this.cancel.Name = "cancel";
+            this.cancel.Size = new System.Drawing.Size(112, 27);
+            this.cancel.TabIndex = 2;
+            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(177, 459);
+            this.apply.Name = "apply";
+            this.apply.Size = new System.Drawing.Size(112, 27);
+            this.apply.TabIndex = 1;
+            this.apply.Text = "OK";
+            this.apply.UseVisualStyleBackColor = true;
+            this.apply.Click += new System.EventHandler(this.apply_Click);
+            // 
+            // actions
+            // 
+            this.actions.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.actions.HideSelection = false;
+            this.actions.Location = new System.Drawing.Point(6, 34);
+            this.actions.Name = "actions";
+            this.actions.Size = new System.Drawing.Size(379, 335);
+            this.actions.TabIndex = 0;
+            this.actions.DoubleClick += new System.EventHandler(this.actions_DoubleClick);
+            // 
+            // 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.tabactions);
+            this.tabs.Controls.Add(this.tabgeneralized);
+            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(150, 19);
+            this.tabs.Location = new System.Drawing.Point(10, 10);
+            this.tabs.Margin = new System.Windows.Forms.Padding(1);
+            this.tabs.Name = "tabs";
+            this.tabs.SelectedIndex = 0;
+            this.tabs.Size = new System.Drawing.Size(399, 436);
+            this.tabs.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
+            this.tabs.TabIndex = 0;
+            // 
+            // tabactions
+            // 
+            this.tabactions.Controls.Add(this.filterPanel);
+            this.tabactions.Controls.Add(this.actions);
+            this.tabactions.Controls.Add(this.prefixespanel);
+            this.tabactions.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.tabactions.Location = new System.Drawing.Point(4, 23);
+            this.tabactions.Name = "tabactions";
+            this.tabactions.Padding = new System.Windows.Forms.Padding(3);
+            this.tabactions.Size = new System.Drawing.Size(391, 409);
+            this.tabactions.TabIndex = 0;
+            this.tabactions.Text = "Predefined Actions";
+            this.tabactions.UseVisualStyleBackColor = true;
+            // 
+            // filterPanel
+            // 
+            this.filterPanel.Controls.Add(this.tbFilter);
+            this.filterPanel.Controls.Add(this.btnClearFilter);
+            this.filterPanel.Controls.Add(this.labelFilter);
+            this.filterPanel.Location = new System.Drawing.Point(6, 3);
+            this.filterPanel.Name = "filterPanel";
+            this.filterPanel.Size = new System.Drawing.Size(378, 30);
+            this.filterPanel.TabIndex = 31;
+            // 
+            // tbFilter
+            // 
+            this.tbFilter.Location = new System.Drawing.Point(47, 5);
+            this.tbFilter.Name = "tbFilter";
+            this.tbFilter.Size = new System.Drawing.Size(135, 20);
+            this.tbFilter.TabIndex = 28;
+            this.tbFilter.TextChanged += new System.EventHandler(this.tbFilter_TextChanged);
+            // 
+            // btnClearFilter
+            // 
+            this.btnClearFilter.Image = global::CodeImp.DoomBuilder.Properties.Resources.SearchClear;
+            this.btnClearFilter.Location = new System.Drawing.Point(188, 3);
+            this.btnClearFilter.Name = "btnClearFilter";
+            this.btnClearFilter.Size = new System.Drawing.Size(32, 24);
+            this.btnClearFilter.TabIndex = 30;
+            this.btnClearFilter.UseVisualStyleBackColor = true;
+            this.btnClearFilter.Click += new System.EventHandler(this.btnClearFilter_Click);
+            // 
+            // labelFilter
+            // 
+            this.labelFilter.AutoSize = true;
+            this.labelFilter.Location = new System.Drawing.Point(8, 8);
+            this.labelFilter.Name = "labelFilter";
+            this.labelFilter.Size = new System.Drawing.Size(33, 14);
+            this.labelFilter.TabIndex = 29;
+            this.labelFilter.Text = "Filter:";
+            // 
+            // prefixespanel
+            // 
+            this.prefixespanel.Controls.Add(label6);
+            this.prefixespanel.Controls.Add(label5);
+            this.prefixespanel.Controls.Add(label4);
+            this.prefixespanel.Controls.Add(label3);
+            this.prefixespanel.Controls.Add(label2);
+            this.prefixespanel.Controls.Add(label1);
+            this.prefixespanel.Location = new System.Drawing.Point(6, 372);
+            this.prefixespanel.Name = "prefixespanel";
+            this.prefixespanel.Size = new System.Drawing.Size(378, 34);
+            this.prefixespanel.TabIndex = 27;
+            // 
+            // tabgeneralized
+            // 
+            this.tabgeneralized.Controls.Add(groupBox2);
+            this.tabgeneralized.Controls.Add(groupBox1);
+            this.tabgeneralized.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.tabgeneralized.Location = new System.Drawing.Point(4, 23);
+            this.tabgeneralized.Name = "tabgeneralized";
+            this.tabgeneralized.Padding = new System.Windows.Forms.Padding(3);
+            this.tabgeneralized.Size = new System.Drawing.Size(391, 409);
+            this.tabgeneralized.TabIndex = 1;
+            this.tabgeneralized.Text = "Generalized Actions";
+            this.tabgeneralized.UseVisualStyleBackColor = true;
+            // 
+            // ActionBrowserForm
+            // 
+            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(419, 496);
+            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 = "ActionBrowserForm";
+            this.Opacity = 0;
+            this.ShowInTaskbar = false;
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+            this.Text = "Edit Action";
+            groupBox1.ResumeLayout(false);
+            groupBox1.PerformLayout();
+            groupBox2.ResumeLayout(false);
+            this.tabs.ResumeLayout(false);
+            this.tabactions.ResumeLayout(false);
+            this.filterPanel.ResumeLayout(false);
+            this.filterPanel.PerformLayout();
+            this.prefixespanel.ResumeLayout(false);
+            this.prefixespanel.PerformLayout();
+            this.tabgeneralized.ResumeLayout(false);
+            this.ResumeLayout(false);
 
 		}
 
@@ -500,5 +545,9 @@ namespace CodeImp.DoomBuilder.Windows
 		private System.Windows.Forms.ComboBox option0;
 		private System.Windows.Forms.Label option0label;
 		private System.Windows.Forms.Panel prefixespanel;
+        private System.Windows.Forms.Button btnClearFilter;
+        private System.Windows.Forms.Label labelFilter;
+        private System.Windows.Forms.TextBox tbFilter;
+        private System.Windows.Forms.Panel filterPanel;
 	}
 }
\ No newline at end of file
diff --git a/Source/Core/Windows/ActionBrowserForm.cs b/Source/Core/Windows/ActionBrowserForm.cs
index 1f5c17dda..e59b10a5b 100644
--- a/Source/Core/Windows/ActionBrowserForm.cs
+++ b/Source/Core/Windows/ActionBrowserForm.cs
@@ -44,6 +44,7 @@ namespace CodeImp.DoomBuilder.Windows
 		private int selectedaction;
 		private ComboBox[] options;
 		private Label[] optionlbls;
+        private TreeNode[] allNodes; //mxd
 		
 		// Properties
 		public int SelectedAction { get { return selectedaction; } }
@@ -51,7 +52,6 @@ namespace CodeImp.DoomBuilder.Windows
 		// Constructor
 		public ActionBrowserForm(int action)
 		{
-			TreeNode cn, n;
 			GeneralizedCategory sc;
 			int actionbits;
 			
@@ -64,49 +64,16 @@ namespace CodeImp.DoomBuilder.Windows
 									   option5label, option6label, option7label };
 			
 			// Show prefixes panel only for doom type maps
-			if(General.Map.FormatInterface.HasBuiltInActivations)
+			if(!General.Map.FormatInterface.HasBuiltInActivations)
 			{
 				prefixespanel.Visible = false;
-				actions.Height += actions.Top - prefixespanel.Top;
-				actions.Top = prefixespanel.Top;
+                actions.Height += prefixespanel.Height + 3; //mxd
 			}
 			
 			// Go for all predefined categories
-			foreach(LinedefActionCategory ac in General.Map.Config.ActionCategories)
-			{
-				// Empty category names will not be created
-				// (those actions will go in the root of the tree)
-				if(ac.Title.Length > 0)
-				{
-					// Create category
-					cn = actions.Nodes.Add(ac.Title);
-					foreach(LinedefActionInfo ai in ac.Actions)
-					{
-						// Create action
-						n = cn.Nodes.Add(ai.Title);
-						n.Tag = ai;
-
-						// This is the given action?
-						if(ai.Index == action)
-						{
-							// Select this and expand the category
-							cn.Expand();
-							actions.SelectedNode = n;
-							n.EnsureVisible();
-						}
-					}
-				}
-				else
-				{
-					// Put actions in the tree root
-					foreach(LinedefActionInfo ai in ac.Actions)
-					{
-						// Create action
-						n = actions.Nodes.Add(ai.Title);
-						n.Tag = ai;
-					}
-				}
-			}
+            createActionCategories(action);
+            allNodes = new TreeNode[actions.Nodes.Count];
+            actions.Nodes.CopyTo(allNodes, 0);
 
 			// Using generalized actions?
 			if(General.Map.Config.GeneralizedActions)
@@ -162,6 +129,63 @@ namespace CodeImp.DoomBuilder.Windows
 			f.Dispose();
 			return action;
 		}
+
+        //mxd
+        private void createActionCategories(int action) {
+            TreeNode cn, n;
+
+            actions.BeginUpdate();
+            actions.ShowLines = true;
+            foreach (LinedefActionCategory ac in General.Map.Config.ActionCategories) {
+                // Empty category names will not be created
+                // (those actions will go in the root of the tree)
+                if (ac.Title.Length > 0) {
+                    // Create category
+                    cn = actions.Nodes.Add(ac.Title);
+                    foreach (LinedefActionInfo ai in ac.Actions) {
+                        // Create action
+                        n = cn.Nodes.Add(ai.Title);
+                        n.Tag = ai;
+
+                        // This is the given action?
+                        if (ai.Index == action) {
+                            // Select this and expand the category
+                            cn.Expand();
+                            actions.SelectedNode = n;
+                            n.EnsureVisible();
+                        }
+                    }
+                } else {
+                    // Put actions in the tree root
+                    foreach (LinedefActionInfo ai in ac.Actions) {
+                        // Create action
+                        n = actions.Nodes.Add(ai.Title);
+                        n.Tag = ai;
+                    }
+                }
+            }
+            actions.EndUpdate();
+        }
+
+        //mxd
+        private void filterActions(string p) {
+            List<TreeNode> filteredNodes = new List<TreeNode>();
+
+            foreach (TreeNode n in allNodes) {
+                foreach (TreeNode cn in n.Nodes) {
+                    LinedefActionInfo ai = cn.Tag as LinedefActionInfo;
+
+                    if (ai.Title.ToLowerInvariant().IndexOf(p) != -1)
+                        filteredNodes.Add(cn);
+                }
+            }
+
+            actions.BeginUpdate();
+            actions.Nodes.Clear();
+            actions.ShowLines = false;
+            actions.Nodes.AddRange(filteredNodes.ToArray());
+            actions.EndUpdate();
+        }
 		
 		// OK clicked
 		private void apply_Click(object sender, EventArgs e)
@@ -270,5 +294,20 @@ namespace CodeImp.DoomBuilder.Windows
 				if(apply.Enabled) apply_Click(this, EventArgs.Empty);
 			}
 		}
+
+        //mxd
+        private void tbFilter_TextChanged(object sender, EventArgs e) {
+            if (tbFilter.Text.Length > 1) {
+                filterActions(tbFilter.Text);
+            } else if (String.IsNullOrEmpty(tbFilter.Text.ToLowerInvariant())) {
+                actions.Nodes.Clear();
+                createActionCategories(actions.SelectedNode != null ? ((LinedefActionInfo)actions.SelectedNode.Tag).Index : 0);
+            }
+        }
+
+        //mxd
+        private void btnClearFilter_Click(object sender, EventArgs e) {
+            tbFilter.Clear();
+        }
 	}
 }
diff --git a/Source/Core/Windows/ActionBrowserForm.resx b/Source/Core/Windows/ActionBrowserForm.resx
index a68db481b..1b3aa97a1 100644
--- a/Source/Core/Windows/ActionBrowserForm.resx
+++ b/Source/Core/Windows/ActionBrowserForm.resx
@@ -117,39 +117,21 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <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="label2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="label3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="label4.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label4.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="label5.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="label6.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label6.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
@@ -228,18 +210,12 @@
   <metadata name="apply.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="actions.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="tabs.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
   <metadata name="tabactions.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="prefixespanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="tabgeneralized.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
diff --git a/Source/Core/Windows/EffectBrowserForm.Designer.cs b/Source/Core/Windows/EffectBrowserForm.Designer.cs
index 5806785ca..d86b916e0 100644
--- a/Source/Core/Windows/EffectBrowserForm.Designer.cs
+++ b/Source/Core/Windows/EffectBrowserForm.Designer.cs
@@ -28,341 +28,386 @@ namespace CodeImp.DoomBuilder.Windows
 		/// </summary>
 		private void InitializeComponent()
 		{
-			System.Windows.Forms.GroupBox groupBox2;
-			this.option7 = new System.Windows.Forms.ComboBox();
-			this.option7label = new System.Windows.Forms.Label();
-			this.option6 = new System.Windows.Forms.ComboBox();
-			this.option6label = new System.Windows.Forms.Label();
-			this.option5 = new System.Windows.Forms.ComboBox();
-			this.option5label = new System.Windows.Forms.Label();
-			this.option4 = new System.Windows.Forms.ComboBox();
-			this.option4label = new System.Windows.Forms.Label();
-			this.option3 = new System.Windows.Forms.ComboBox();
-			this.option3label = new System.Windows.Forms.Label();
-			this.option2 = new System.Windows.Forms.ComboBox();
-			this.option2label = new System.Windows.Forms.Label();
-			this.option1 = new System.Windows.Forms.ComboBox();
-			this.option1label = new System.Windows.Forms.Label();
-			this.option0 = new System.Windows.Forms.ComboBox();
-			this.option0label = 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.tabeffects = new System.Windows.Forms.TabPage();
-			this.effects = new System.Windows.Forms.ListView();
-			this.colnumber = new System.Windows.Forms.ColumnHeader();
-			this.colname = new System.Windows.Forms.ColumnHeader();
-			this.tabgeneralized = new System.Windows.Forms.TabPage();
-			groupBox2 = new System.Windows.Forms.GroupBox();
-			groupBox2.SuspendLayout();
-			this.tabs.SuspendLayout();
-			this.tabeffects.SuspendLayout();
-			this.tabgeneralized.SuspendLayout();
-			this.SuspendLayout();
-			// 
-			// groupBox2
-			// 
-			groupBox2.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)));
-			groupBox2.Controls.Add(this.option7);
-			groupBox2.Controls.Add(this.option7label);
-			groupBox2.Controls.Add(this.option6);
-			groupBox2.Controls.Add(this.option6label);
-			groupBox2.Controls.Add(this.option5);
-			groupBox2.Controls.Add(this.option5label);
-			groupBox2.Controls.Add(this.option4);
-			groupBox2.Controls.Add(this.option4label);
-			groupBox2.Controls.Add(this.option3);
-			groupBox2.Controls.Add(this.option3label);
-			groupBox2.Controls.Add(this.option2);
-			groupBox2.Controls.Add(this.option2label);
-			groupBox2.Controls.Add(this.option1);
-			groupBox2.Controls.Add(this.option1label);
-			groupBox2.Controls.Add(this.option0);
-			groupBox2.Controls.Add(this.option0label);
-			groupBox2.Location = new System.Drawing.Point(6, 6);
-			groupBox2.Name = "groupBox2";
-			groupBox2.Size = new System.Drawing.Size(379, 397);
-			groupBox2.TabIndex = 1;
-			groupBox2.TabStop = false;
-			groupBox2.Text = " Options ";
-			// 
-			// option7
-			// 
-			this.option7.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option7.FormattingEnabled = true;
-			this.option7.Location = new System.Drawing.Point(118, 280);
-			this.option7.Name = "option7";
-			this.option7.Size = new System.Drawing.Size(199, 22);
-			this.option7.TabIndex = 7;
-			this.option7.Visible = false;
-			// 
-			// option7label
-			// 
-			this.option7label.Location = new System.Drawing.Point(3, 283);
-			this.option7label.Name = "option7label";
-			this.option7label.Size = new System.Drawing.Size(109, 19);
-			this.option7label.TabIndex = 16;
-			this.option7label.Text = "Option:";
-			this.option7label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option7label.Visible = false;
-			// 
-			// option6
-			// 
-			this.option6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option6.FormattingEnabled = true;
-			this.option6.Location = new System.Drawing.Point(118, 244);
-			this.option6.Name = "option6";
-			this.option6.Size = new System.Drawing.Size(199, 22);
-			this.option6.TabIndex = 6;
-			this.option6.Visible = false;
-			// 
-			// option6label
-			// 
-			this.option6label.Location = new System.Drawing.Point(3, 247);
-			this.option6label.Name = "option6label";
-			this.option6label.Size = new System.Drawing.Size(109, 19);
-			this.option6label.TabIndex = 14;
-			this.option6label.Text = "Option:";
-			this.option6label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option6label.Visible = false;
-			// 
-			// option5
-			// 
-			this.option5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option5.FormattingEnabled = true;
-			this.option5.Location = new System.Drawing.Point(118, 208);
-			this.option5.Name = "option5";
-			this.option5.Size = new System.Drawing.Size(199, 22);
-			this.option5.TabIndex = 5;
-			this.option5.Visible = false;
-			// 
-			// option5label
-			// 
-			this.option5label.Location = new System.Drawing.Point(3, 211);
-			this.option5label.Name = "option5label";
-			this.option5label.Size = new System.Drawing.Size(109, 19);
-			this.option5label.TabIndex = 12;
-			this.option5label.Text = "Option:";
-			this.option5label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option5label.Visible = false;
-			// 
-			// option4
-			// 
-			this.option4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option4.FormattingEnabled = true;
-			this.option4.Location = new System.Drawing.Point(118, 172);
-			this.option4.Name = "option4";
-			this.option4.Size = new System.Drawing.Size(199, 22);
-			this.option4.TabIndex = 4;
-			this.option4.Visible = false;
-			// 
-			// option4label
-			// 
-			this.option4label.Location = new System.Drawing.Point(3, 175);
-			this.option4label.Name = "option4label";
-			this.option4label.Size = new System.Drawing.Size(109, 19);
-			this.option4label.TabIndex = 10;
-			this.option4label.Text = "Option:";
-			this.option4label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option4label.Visible = false;
-			// 
-			// option3
-			// 
-			this.option3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option3.FormattingEnabled = true;
-			this.option3.Location = new System.Drawing.Point(118, 136);
-			this.option3.Name = "option3";
-			this.option3.Size = new System.Drawing.Size(199, 22);
-			this.option3.TabIndex = 3;
-			this.option3.Visible = false;
-			// 
-			// option3label
-			// 
-			this.option3label.Location = new System.Drawing.Point(3, 139);
-			this.option3label.Name = "option3label";
-			this.option3label.Size = new System.Drawing.Size(109, 19);
-			this.option3label.TabIndex = 8;
-			this.option3label.Text = "Option:";
-			this.option3label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option3label.Visible = false;
-			// 
-			// option2
-			// 
-			this.option2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option2.FormattingEnabled = true;
-			this.option2.Location = new System.Drawing.Point(118, 100);
-			this.option2.Name = "option2";
-			this.option2.Size = new System.Drawing.Size(199, 22);
-			this.option2.TabIndex = 2;
-			this.option2.Visible = false;
-			// 
-			// option2label
-			// 
-			this.option2label.Location = new System.Drawing.Point(3, 103);
-			this.option2label.Name = "option2label";
-			this.option2label.Size = new System.Drawing.Size(109, 19);
-			this.option2label.TabIndex = 6;
-			this.option2label.Text = "Option:";
-			this.option2label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option2label.Visible = false;
-			// 
-			// option1
-			// 
-			this.option1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option1.FormattingEnabled = true;
-			this.option1.Location = new System.Drawing.Point(118, 64);
-			this.option1.Name = "option1";
-			this.option1.Size = new System.Drawing.Size(199, 22);
-			this.option1.TabIndex = 1;
-			this.option1.Visible = false;
-			// 
-			// option1label
-			// 
-			this.option1label.Location = new System.Drawing.Point(3, 67);
-			this.option1label.Name = "option1label";
-			this.option1label.Size = new System.Drawing.Size(109, 19);
-			this.option1label.TabIndex = 4;
-			this.option1label.Text = "Option:";
-			this.option1label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option1label.Visible = false;
-			// 
-			// option0
-			// 
-			this.option0.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-			this.option0.FormattingEnabled = true;
-			this.option0.Location = new System.Drawing.Point(118, 28);
-			this.option0.Name = "option0";
-			this.option0.Size = new System.Drawing.Size(199, 22);
-			this.option0.TabIndex = 0;
-			this.option0.Visible = false;
-			// 
-			// option0label
-			// 
-			this.option0label.Location = new System.Drawing.Point(3, 31);
-			this.option0label.Name = "option0label";
-			this.option0label.Size = new System.Drawing.Size(109, 19);
-			this.option0label.TabIndex = 2;
-			this.option0label.Text = "Option:";
-			this.option0label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-			this.option0label.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(297, 459);
-			this.cancel.Name = "cancel";
-			this.cancel.Size = new System.Drawing.Size(112, 27);
-			this.cancel.TabIndex = 2;
-			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(177, 459);
-			this.apply.Name = "apply";
-			this.apply.Size = new System.Drawing.Size(112, 27);
-			this.apply.TabIndex = 1;
-			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.tabeffects);
-			this.tabs.Controls.Add(this.tabgeneralized);
-			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(150, 19);
-			this.tabs.Location = new System.Drawing.Point(10, 10);
-			this.tabs.Margin = new System.Windows.Forms.Padding(1);
-			this.tabs.Name = "tabs";
-			this.tabs.SelectedIndex = 0;
-			this.tabs.Size = new System.Drawing.Size(399, 436);
-			this.tabs.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
-			this.tabs.TabIndex = 0;
-			// 
-			// tabeffects
-			// 
-			this.tabeffects.Controls.Add(this.effects);
-			this.tabeffects.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.tabeffects.Location = new System.Drawing.Point(4, 23);
-			this.tabeffects.Name = "tabeffects";
-			this.tabeffects.Padding = new System.Windows.Forms.Padding(3);
-			this.tabeffects.Size = new System.Drawing.Size(391, 409);
-			this.tabeffects.TabIndex = 0;
-			this.tabeffects.Text = "Predefined Effects";
-			this.tabeffects.UseVisualStyleBackColor = true;
-			// 
-			// effects
-			// 
-			this.effects.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            System.Windows.Forms.GroupBox groupBox2;
+            this.option7 = new System.Windows.Forms.ComboBox();
+            this.option7label = new System.Windows.Forms.Label();
+            this.option6 = new System.Windows.Forms.ComboBox();
+            this.option6label = new System.Windows.Forms.Label();
+            this.option5 = new System.Windows.Forms.ComboBox();
+            this.option5label = new System.Windows.Forms.Label();
+            this.option4 = new System.Windows.Forms.ComboBox();
+            this.option4label = new System.Windows.Forms.Label();
+            this.option3 = new System.Windows.Forms.ComboBox();
+            this.option3label = new System.Windows.Forms.Label();
+            this.option2 = new System.Windows.Forms.ComboBox();
+            this.option2label = new System.Windows.Forms.Label();
+            this.option1 = new System.Windows.Forms.ComboBox();
+            this.option1label = new System.Windows.Forms.Label();
+            this.option0 = new System.Windows.Forms.ComboBox();
+            this.option0label = 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.tabeffects = new System.Windows.Forms.TabPage();
+            this.filterPanel = new System.Windows.Forms.Panel();
+            this.tbFilter = new System.Windows.Forms.TextBox();
+            this.btnClearFilter = new System.Windows.Forms.Button();
+            this.labelFilter = new System.Windows.Forms.Label();
+            this.effects = new System.Windows.Forms.ListView();
+            this.colnumber = new System.Windows.Forms.ColumnHeader();
+            this.colname = new System.Windows.Forms.ColumnHeader();
+            this.tabgeneralized = new System.Windows.Forms.TabPage();
+            groupBox2 = new System.Windows.Forms.GroupBox();
+            groupBox2.SuspendLayout();
+            this.tabs.SuspendLayout();
+            this.tabeffects.SuspendLayout();
+            this.filterPanel.SuspendLayout();
+            this.tabgeneralized.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // groupBox2
+            // 
+            groupBox2.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)));
+            groupBox2.Controls.Add(this.option7);
+            groupBox2.Controls.Add(this.option7label);
+            groupBox2.Controls.Add(this.option6);
+            groupBox2.Controls.Add(this.option6label);
+            groupBox2.Controls.Add(this.option5);
+            groupBox2.Controls.Add(this.option5label);
+            groupBox2.Controls.Add(this.option4);
+            groupBox2.Controls.Add(this.option4label);
+            groupBox2.Controls.Add(this.option3);
+            groupBox2.Controls.Add(this.option3label);
+            groupBox2.Controls.Add(this.option2);
+            groupBox2.Controls.Add(this.option2label);
+            groupBox2.Controls.Add(this.option1);
+            groupBox2.Controls.Add(this.option1label);
+            groupBox2.Controls.Add(this.option0);
+            groupBox2.Controls.Add(this.option0label);
+            groupBox2.Location = new System.Drawing.Point(6, 6);
+            groupBox2.Name = "groupBox2";
+            groupBox2.Size = new System.Drawing.Size(379, 397);
+            groupBox2.TabIndex = 1;
+            groupBox2.TabStop = false;
+            groupBox2.Text = " Options ";
+            // 
+            // option7
+            // 
+            this.option7.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option7.FormattingEnabled = true;
+            this.option7.Location = new System.Drawing.Point(118, 280);
+            this.option7.Name = "option7";
+            this.option7.Size = new System.Drawing.Size(199, 22);
+            this.option7.TabIndex = 7;
+            this.option7.Visible = false;
+            // 
+            // option7label
+            // 
+            this.option7label.Location = new System.Drawing.Point(3, 283);
+            this.option7label.Name = "option7label";
+            this.option7label.Size = new System.Drawing.Size(109, 19);
+            this.option7label.TabIndex = 16;
+            this.option7label.Text = "Option:";
+            this.option7label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option7label.Visible = false;
+            // 
+            // option6
+            // 
+            this.option6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option6.FormattingEnabled = true;
+            this.option6.Location = new System.Drawing.Point(118, 244);
+            this.option6.Name = "option6";
+            this.option6.Size = new System.Drawing.Size(199, 22);
+            this.option6.TabIndex = 6;
+            this.option6.Visible = false;
+            // 
+            // option6label
+            // 
+            this.option6label.Location = new System.Drawing.Point(3, 247);
+            this.option6label.Name = "option6label";
+            this.option6label.Size = new System.Drawing.Size(109, 19);
+            this.option6label.TabIndex = 14;
+            this.option6label.Text = "Option:";
+            this.option6label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option6label.Visible = false;
+            // 
+            // option5
+            // 
+            this.option5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option5.FormattingEnabled = true;
+            this.option5.Location = new System.Drawing.Point(118, 208);
+            this.option5.Name = "option5";
+            this.option5.Size = new System.Drawing.Size(199, 22);
+            this.option5.TabIndex = 5;
+            this.option5.Visible = false;
+            // 
+            // option5label
+            // 
+            this.option5label.Location = new System.Drawing.Point(3, 211);
+            this.option5label.Name = "option5label";
+            this.option5label.Size = new System.Drawing.Size(109, 19);
+            this.option5label.TabIndex = 12;
+            this.option5label.Text = "Option:";
+            this.option5label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option5label.Visible = false;
+            // 
+            // option4
+            // 
+            this.option4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option4.FormattingEnabled = true;
+            this.option4.Location = new System.Drawing.Point(118, 172);
+            this.option4.Name = "option4";
+            this.option4.Size = new System.Drawing.Size(199, 22);
+            this.option4.TabIndex = 4;
+            this.option4.Visible = false;
+            // 
+            // option4label
+            // 
+            this.option4label.Location = new System.Drawing.Point(3, 175);
+            this.option4label.Name = "option4label";
+            this.option4label.Size = new System.Drawing.Size(109, 19);
+            this.option4label.TabIndex = 10;
+            this.option4label.Text = "Option:";
+            this.option4label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option4label.Visible = false;
+            // 
+            // option3
+            // 
+            this.option3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option3.FormattingEnabled = true;
+            this.option3.Location = new System.Drawing.Point(118, 136);
+            this.option3.Name = "option3";
+            this.option3.Size = new System.Drawing.Size(199, 22);
+            this.option3.TabIndex = 3;
+            this.option3.Visible = false;
+            // 
+            // option3label
+            // 
+            this.option3label.Location = new System.Drawing.Point(3, 139);
+            this.option3label.Name = "option3label";
+            this.option3label.Size = new System.Drawing.Size(109, 19);
+            this.option3label.TabIndex = 8;
+            this.option3label.Text = "Option:";
+            this.option3label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option3label.Visible = false;
+            // 
+            // option2
+            // 
+            this.option2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option2.FormattingEnabled = true;
+            this.option2.Location = new System.Drawing.Point(118, 100);
+            this.option2.Name = "option2";
+            this.option2.Size = new System.Drawing.Size(199, 22);
+            this.option2.TabIndex = 2;
+            this.option2.Visible = false;
+            // 
+            // option2label
+            // 
+            this.option2label.Location = new System.Drawing.Point(3, 103);
+            this.option2label.Name = "option2label";
+            this.option2label.Size = new System.Drawing.Size(109, 19);
+            this.option2label.TabIndex = 6;
+            this.option2label.Text = "Option:";
+            this.option2label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option2label.Visible = false;
+            // 
+            // option1
+            // 
+            this.option1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option1.FormattingEnabled = true;
+            this.option1.Location = new System.Drawing.Point(118, 64);
+            this.option1.Name = "option1";
+            this.option1.Size = new System.Drawing.Size(199, 22);
+            this.option1.TabIndex = 1;
+            this.option1.Visible = false;
+            // 
+            // option1label
+            // 
+            this.option1label.Location = new System.Drawing.Point(3, 67);
+            this.option1label.Name = "option1label";
+            this.option1label.Size = new System.Drawing.Size(109, 19);
+            this.option1label.TabIndex = 4;
+            this.option1label.Text = "Option:";
+            this.option1label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option1label.Visible = false;
+            // 
+            // option0
+            // 
+            this.option0.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.option0.FormattingEnabled = true;
+            this.option0.Location = new System.Drawing.Point(118, 28);
+            this.option0.Name = "option0";
+            this.option0.Size = new System.Drawing.Size(199, 22);
+            this.option0.TabIndex = 0;
+            this.option0.Visible = false;
+            // 
+            // option0label
+            // 
+            this.option0label.Location = new System.Drawing.Point(3, 31);
+            this.option0label.Name = "option0label";
+            this.option0label.Size = new System.Drawing.Size(109, 19);
+            this.option0label.TabIndex = 2;
+            this.option0label.Text = "Option:";
+            this.option0label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.option0label.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(297, 459);
+            this.cancel.Name = "cancel";
+            this.cancel.Size = new System.Drawing.Size(112, 27);
+            this.cancel.TabIndex = 2;
+            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(177, 459);
+            this.apply.Name = "apply";
+            this.apply.Size = new System.Drawing.Size(112, 27);
+            this.apply.TabIndex = 1;
+            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.tabeffects);
+            this.tabs.Controls.Add(this.tabgeneralized);
+            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(150, 19);
+            this.tabs.Location = new System.Drawing.Point(10, 10);
+            this.tabs.Margin = new System.Windows.Forms.Padding(1);
+            this.tabs.Name = "tabs";
+            this.tabs.SelectedIndex = 0;
+            this.tabs.Size = new System.Drawing.Size(399, 436);
+            this.tabs.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
+            this.tabs.TabIndex = 0;
+            // 
+            // tabeffects
+            // 
+            this.tabeffects.Controls.Add(this.filterPanel);
+            this.tabeffects.Controls.Add(this.effects);
+            this.tabeffects.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.tabeffects.Location = new System.Drawing.Point(4, 23);
+            this.tabeffects.Name = "tabeffects";
+            this.tabeffects.Padding = new System.Windows.Forms.Padding(3);
+            this.tabeffects.Size = new System.Drawing.Size(391, 409);
+            this.tabeffects.TabIndex = 0;
+            this.tabeffects.Text = "Predefined Effects";
+            this.tabeffects.UseVisualStyleBackColor = true;
+            // 
+            // filterPanel
+            // 
+            this.filterPanel.Controls.Add(this.tbFilter);
+            this.filterPanel.Controls.Add(this.btnClearFilter);
+            this.filterPanel.Controls.Add(this.labelFilter);
+            this.filterPanel.Location = new System.Drawing.Point(6, 3);
+            this.filterPanel.Name = "filterPanel";
+            this.filterPanel.Size = new System.Drawing.Size(379, 30);
+            this.filterPanel.TabIndex = 32;
+            // 
+            // tbFilter
+            // 
+            this.tbFilter.Location = new System.Drawing.Point(47, 5);
+            this.tbFilter.Name = "tbFilter";
+            this.tbFilter.Size = new System.Drawing.Size(135, 20);
+            this.tbFilter.TabIndex = 28;
+            this.tbFilter.TextChanged += new System.EventHandler(this.tbFilter_TextChanged);
+            // 
+            // btnClearFilter
+            // 
+            this.btnClearFilter.Image = global::CodeImp.DoomBuilder.Properties.Resources.SearchClear;
+            this.btnClearFilter.Location = new System.Drawing.Point(188, 3);
+            this.btnClearFilter.Name = "btnClearFilter";
+            this.btnClearFilter.Size = new System.Drawing.Size(32, 24);
+            this.btnClearFilter.TabIndex = 30;
+            this.btnClearFilter.UseVisualStyleBackColor = true;
+            this.btnClearFilter.Click += new System.EventHandler(this.btnClearFilter_Click);
+            // 
+            // labelFilter
+            // 
+            this.labelFilter.AutoSize = true;
+            this.labelFilter.Location = new System.Drawing.Point(8, 8);
+            this.labelFilter.Name = "labelFilter";
+            this.labelFilter.Size = new System.Drawing.Size(33, 14);
+            this.labelFilter.TabIndex = 29;
+            this.labelFilter.Text = "Filter:";
+            // 
+            // effects
+            // 
+            this.effects.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
             this.colnumber,
             this.colname});
-			this.effects.FullRowSelect = true;
-			this.effects.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
-			this.effects.HideSelection = false;
-			this.effects.Location = new System.Drawing.Point(6, 6);
-			this.effects.MultiSelect = false;
-			this.effects.Name = "effects";
-			this.effects.Size = new System.Drawing.Size(379, 397);
-			this.effects.TabIndex = 0;
-			this.effects.UseCompatibleStateImageBehavior = false;
-			this.effects.View = System.Windows.Forms.View.Details;
-			this.effects.DoubleClick += new System.EventHandler(this.effects_DoubleClick);
-			// 
-			// colnumber
-			// 
-			this.colnumber.Text = "Effect";
-			this.colnumber.Width = 70;
-			// 
-			// colname
-			// 
-			this.colname.Text = "Description";
-			this.colname.Width = 280;
-			// 
-			// tabgeneralized
-			// 
-			this.tabgeneralized.Controls.Add(groupBox2);
-			this.tabgeneralized.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-			this.tabgeneralized.Location = new System.Drawing.Point(4, 23);
-			this.tabgeneralized.Name = "tabgeneralized";
-			this.tabgeneralized.Padding = new System.Windows.Forms.Padding(3);
-			this.tabgeneralized.Size = new System.Drawing.Size(391, 409);
-			this.tabgeneralized.TabIndex = 1;
-			this.tabgeneralized.Text = "Generalized Effects";
-			this.tabgeneralized.UseVisualStyleBackColor = true;
-			// 
-			// EffectBrowserForm
-			// 
-			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(419, 496);
-			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 = "EffectBrowserForm";
-			this.Opacity = 0;
-			this.ShowInTaskbar = false;
-			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
-			this.Text = "Edit Effect";
-			groupBox2.ResumeLayout(false);
-			this.tabs.ResumeLayout(false);
-			this.tabeffects.ResumeLayout(false);
-			this.tabgeneralized.ResumeLayout(false);
-			this.ResumeLayout(false);
+            this.effects.FullRowSelect = true;
+            this.effects.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
+            this.effects.HideSelection = false;
+            this.effects.Location = new System.Drawing.Point(6, 34);
+            this.effects.MultiSelect = false;
+            this.effects.Name = "effects";
+            this.effects.Size = new System.Drawing.Size(379, 369);
+            this.effects.TabIndex = 0;
+            this.effects.UseCompatibleStateImageBehavior = false;
+            this.effects.View = System.Windows.Forms.View.Details;
+            this.effects.DoubleClick += new System.EventHandler(this.effects_DoubleClick);
+            // 
+            // colnumber
+            // 
+            this.colnumber.Text = "Effect";
+            this.colnumber.Width = 70;
+            // 
+            // colname
+            // 
+            this.colname.Text = "Description";
+            this.colname.Width = 280;
+            // 
+            // tabgeneralized
+            // 
+            this.tabgeneralized.Controls.Add(groupBox2);
+            this.tabgeneralized.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.tabgeneralized.Location = new System.Drawing.Point(4, 23);
+            this.tabgeneralized.Name = "tabgeneralized";
+            this.tabgeneralized.Padding = new System.Windows.Forms.Padding(3);
+            this.tabgeneralized.Size = new System.Drawing.Size(391, 409);
+            this.tabgeneralized.TabIndex = 1;
+            this.tabgeneralized.Text = "Generalized Effects";
+            this.tabgeneralized.UseVisualStyleBackColor = true;
+            // 
+            // EffectBrowserForm
+            // 
+            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(419, 496);
+            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 = "EffectBrowserForm";
+            this.Opacity = 0;
+            this.ShowInTaskbar = false;
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+            this.Text = "Edit Effect";
+            groupBox2.ResumeLayout(false);
+            this.tabs.ResumeLayout(false);
+            this.tabeffects.ResumeLayout(false);
+            this.filterPanel.ResumeLayout(false);
+            this.filterPanel.PerformLayout();
+            this.tabgeneralized.ResumeLayout(false);
+            this.ResumeLayout(false);
 
 		}
 
@@ -392,5 +437,9 @@ namespace CodeImp.DoomBuilder.Windows
 		private System.Windows.Forms.ListView effects;
 		private System.Windows.Forms.ColumnHeader colnumber;
 		private System.Windows.Forms.ColumnHeader colname;
+        private System.Windows.Forms.Panel filterPanel;
+        private System.Windows.Forms.TextBox tbFilter;
+        private System.Windows.Forms.Button btnClearFilter;
+        private System.Windows.Forms.Label labelFilter;
 	}
 }
\ No newline at end of file
diff --git a/Source/Core/Windows/EffectBrowserForm.cs b/Source/Core/Windows/EffectBrowserForm.cs
index 1a9e5b16b..9514315d9 100644
--- a/Source/Core/Windows/EffectBrowserForm.cs
+++ b/Source/Core/Windows/EffectBrowserForm.cs
@@ -44,6 +44,7 @@ namespace CodeImp.DoomBuilder.Windows
 		private int selectedeffect;
 		private ComboBox[] options;
 		private Label[] optionlbls;
+        private ListViewItem[] allItems; //mxd
 		
 		// Properties
 		public int SelectedEffect { get { return selectedeffect; } }
@@ -52,8 +53,8 @@ namespace CodeImp.DoomBuilder.Windows
 		public EffectBrowserForm(int effect)
 		{
 			GeneralizedOption o;
-			ListViewItem n;
-			bool selected = false;
+			//ListViewItem n;
+			bool selected;
 			
 			// Initialize
 			InitializeComponent();
@@ -64,18 +65,9 @@ namespace CodeImp.DoomBuilder.Windows
 									   option5label, option6label, option7label };
 			
 			// Go for all predefined effects
-			foreach(SectorEffectInfo si in General.Map.Config.SortedSectorEffects)
-			{
-				// Create effect
-				n = effects.Items.Add(si.Index.ToString());
-				n.SubItems.Add(si.Title);
-				n.Tag = si;
-				if(si.Index == effect)
-				{
-					selected = true;
-					n.Selected = true;
-				}
-			}
+            selected = createEffects(effect); //mxd
+            allItems = new ListViewItem[effects.Items.Count]; //mxd
+            effects.Items.CopyTo(allItems, 0); //mxd
 			
 			// Using generalized effects?
 			if(General.Map.Config.GeneralizedEffects)
@@ -134,6 +126,41 @@ namespace CodeImp.DoomBuilder.Windows
 			f.Dispose();
 			return effect;
 		}
+
+        //mxd
+        private bool createEffects(int effect) {
+            bool selected = false;
+            ListViewItem n;
+
+            foreach (SectorEffectInfo si in General.Map.Config.SortedSectorEffects) {
+                // Create effect
+                n = effects.Items.Add(si.Index.ToString());
+                n.SubItems.Add(si.Title);
+                n.Tag = si;
+                if (si.Index == effect) {
+                    selected = true;
+                    n.Selected = true;
+                }
+            }
+            return selected;
+        }
+
+        //mxd
+        private void filterEffects(string p) {
+            List<ListViewItem> filteredItems = new List<ListViewItem>();
+
+            foreach (ListViewItem i in allItems) {
+                SectorEffectInfo si = i.Tag as SectorEffectInfo;
+
+                if (si.Title.ToLowerInvariant().IndexOf(p) != -1)
+                    filteredItems.Add(i);
+            }
+
+            effects.BeginUpdate();
+            effects.Items.Clear();
+            effects.Items.AddRange(filteredItems.ToArray());
+            effects.EndUpdate();
+        }
 		
 		// OK clicked
 		private void apply_Click(object sender, EventArgs e)
@@ -189,5 +216,20 @@ namespace CodeImp.DoomBuilder.Windows
 				if(apply.Enabled) apply_Click(this, EventArgs.Empty);
 			}
 		}
+
+        //mxd
+        private void tbFilter_TextChanged(object sender, EventArgs e) {
+            if (tbFilter.Text.Length > 1) {
+                filterEffects(tbFilter.Text);
+            } else if (String.IsNullOrEmpty(tbFilter.Text.ToLowerInvariant())) {
+                effects.Items.Clear();
+                createEffects(effects.SelectedItems.Count > 0 ? ((SectorEffectInfo)effects.SelectedItems[0].Tag).Index : 0);
+            }
+        }
+
+        //mxd
+        private void btnClearFilter_Click(object sender, EventArgs e) {
+            tbFilter.Clear();
+        }
 	}
 }
\ No newline at end of file
diff --git a/Source/Core/Windows/EffectBrowserForm.resx b/Source/Core/Windows/EffectBrowserForm.resx
index 562da5c45..047663ab0 100644
--- a/Source/Core/Windows/EffectBrowserForm.resx
+++ b/Source/Core/Windows/EffectBrowserForm.resx
@@ -183,9 +183,6 @@
   <metadata name="tabeffects.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="effects.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="tabgeneralized.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-- 
GitLab