diff --git a/Build/Sprites/Portal_lower.png b/Build/Sprites/Portal_lower.png
index 4d5293d60ac4509ad52a4d808f75e323bc08f3cb..e4874a122bcc3ee3af09a7cdd28bb8ed7a79e055 100644
Binary files a/Build/Sprites/Portal_lower.png and b/Build/Sprites/Portal_lower.png differ
diff --git a/Build/Sprites/Portal_upper.png b/Build/Sprites/Portal_upper.png
index e4874a122bcc3ee3af09a7cdd28bb8ed7a79e055..4d5293d60ac4509ad52a4d808f75e323bc08f3cb 100644
Binary files a/Build/Sprites/Portal_upper.png and b/Build/Sprites/Portal_upper.png differ
diff --git a/Source/Core/Windows/ThingEditForm.Designer.cs b/Source/Core/Windows/ThingEditForm.Designer.cs
index 0513fa3db192e79fd6405e467b089091cbbecf61..0670ea5ddbaaf623bf42d90a17b7a8cda45fd5b4 100644
--- a/Source/Core/Windows/ThingEditForm.Designer.cs
+++ b/Source/Core/Windows/ThingEditForm.Designer.cs
@@ -28,617 +28,627 @@ namespace CodeImp.DoomBuilder.Windows
 		/// </summary>
 		private void InitializeComponent()
 		{
-            System.Windows.Forms.GroupBox groupBox1;
-            System.Windows.Forms.GroupBox groupBox2;
-            System.Windows.Forms.Label label5;
-            System.Windows.Forms.Label taglabel;
-            System.Windows.Forms.Label label7;
-            this.thingtype = new CodeImp.DoomBuilder.Controls.ThingBrowserControl();
-            this.label2 = new System.Windows.Forms.Label();
-            this.label1 = new System.Windows.Forms.Label();
-            this.posX = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
-            this.posY = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
-            this.height = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
-            this.angle = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
-            this.heightlabel = new System.Windows.Forms.Label();
-            this.anglecontrol = new CodeImp.DoomBuilder.Controls.AngleControl();
-            this.tabs = new System.Windows.Forms.TabControl();
-            this.tabproperties = new System.Windows.Forms.TabPage();
-            this.spritetex = new System.Windows.Forms.Panel();
-            this.settingsgroup = new System.Windows.Forms.GroupBox();
-            this.flags = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
-            this.tabeffects = new System.Windows.Forms.TabPage();
-            this.actiongroup = new System.Windows.Forms.GroupBox();
-            this.hexenpanel = new System.Windows.Forms.Panel();
-            this.arg0str = new System.Windows.Forms.ComboBox();
-            this.cbArgStr = new System.Windows.Forms.CheckBox();
-            this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
-            this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
-            this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
-            this.arg3 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
-            this.arg4 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
-            this.arg1label = new System.Windows.Forms.Label();
-            this.arg0label = new System.Windows.Forms.Label();
-            this.arg3label = new System.Windows.Forms.Label();
-            this.arg2label = new System.Windows.Forms.Label();
-            this.arg4label = new System.Windows.Forms.Label();
-            this.action = new CodeImp.DoomBuilder.Controls.ActionSelectorControl();
-            this.browseaction = new System.Windows.Forms.Button();
-            this.doompanel = new System.Windows.Forms.Panel();
-            this.groupBox3 = new System.Windows.Forms.GroupBox();
-            this.tag = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
-            this.newtag = new System.Windows.Forms.Button();
-            this.tabcustom = new System.Windows.Forms.TabPage();
-            this.fieldslist = new CodeImp.DoomBuilder.Controls.FieldsEditorControl();
-            this.cancel = new System.Windows.Forms.Button();
-            this.apply = new System.Windows.Forms.Button();
-            groupBox1 = new System.Windows.Forms.GroupBox();
-            groupBox2 = new System.Windows.Forms.GroupBox();
-            label5 = new System.Windows.Forms.Label();
-            taglabel = new System.Windows.Forms.Label();
-            label7 = new System.Windows.Forms.Label();
-            groupBox1.SuspendLayout();
-            groupBox2.SuspendLayout();
-            this.tabs.SuspendLayout();
-            this.tabproperties.SuspendLayout();
-            this.settingsgroup.SuspendLayout();
-            this.tabeffects.SuspendLayout();
-            this.actiongroup.SuspendLayout();
-            this.hexenpanel.SuspendLayout();
-            this.groupBox3.SuspendLayout();
-            this.tabcustom.SuspendLayout();
-            this.SuspendLayout();
-            // 
-            // groupBox1
-            // 
-            groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                        | System.Windows.Forms.AnchorStyles.Left)));
-            groupBox1.Controls.Add(this.thingtype);
-            groupBox1.Location = new System.Drawing.Point(6, 6);
-            groupBox1.Name = "groupBox1";
-            groupBox1.Size = new System.Drawing.Size(269, 353);
-            groupBox1.TabIndex = 0;
-            groupBox1.TabStop = false;
-            groupBox1.Text = " Thing ";
-            // 
-            // thingtype
-            // 
-            this.thingtype.Location = new System.Drawing.Point(9, 22);
-            this.thingtype.Margin = new System.Windows.Forms.Padding(6);
-            this.thingtype.Name = "thingtype";
-            this.thingtype.Size = new System.Drawing.Size(251, 308);
-            this.thingtype.TabIndex = 0;
-            this.thingtype.OnTypeChanged += new CodeImp.DoomBuilder.Controls.ThingBrowserControl.TypeChangedDeletegate(this.thingtype_OnTypeChanged);
-            // 
-            // groupBox2
-            // 
-            groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
-                        | System.Windows.Forms.AnchorStyles.Right)));
-            groupBox2.Controls.Add(this.label2);
-            groupBox2.Controls.Add(this.label1);
-            groupBox2.Controls.Add(this.posX);
-            groupBox2.Controls.Add(this.posY);
-            groupBox2.Controls.Add(this.height);
-            groupBox2.Controls.Add(this.angle);
-            groupBox2.Controls.Add(this.heightlabel);
-            groupBox2.Controls.Add(label5);
-            groupBox2.Controls.Add(this.anglecontrol);
-            groupBox2.Location = new System.Drawing.Point(397, 240);
-            groupBox2.Name = "groupBox2";
-            groupBox2.Size = new System.Drawing.Size(249, 119);
-            groupBox2.TabIndex = 2;
-            groupBox2.TabStop = false;
-            groupBox2.Text = " Coordination ";
-            // 
-            // label2
-            // 
-            this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-            this.label2.AutoSize = true;
-            this.label2.Location = new System.Drawing.Point(45, 44);
-            this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(17, 14);
-            this.label2.TabIndex = 15;
-            this.label2.Text = "X:";
-            this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
-            // 
-            // label1
-            // 
-            this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-            this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(45, 69);
-            this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(17, 14);
-            this.label1.TabIndex = 14;
-            this.label1.Text = "Y:";
-            // 
-            // posX
-            // 
-            this.posX.AllowDecimal = false;
-            this.posX.AllowNegative = true;
-            this.posX.AllowRelative = true;
-            this.posX.ButtonStep = 8;
-            this.posX.Location = new System.Drawing.Point(68, 39);
-            this.posX.Name = "posX";
-            this.posX.Size = new System.Drawing.Size(72, 24);
-            this.posX.StepValues = null;
-            this.posX.TabIndex = 13;
-            // 
-            // posY
-            // 
-            this.posY.AllowDecimal = false;
-            this.posY.AllowNegative = true;
-            this.posY.AllowRelative = true;
-            this.posY.ButtonStep = 8;
-            this.posY.Location = new System.Drawing.Point(68, 64);
-            this.posY.Name = "posY";
-            this.posY.Size = new System.Drawing.Size(72, 24);
-            this.posY.StepValues = null;
-            this.posY.TabIndex = 12;
-            // 
-            // height
-            // 
-            this.height.AllowDecimal = false;
-            this.height.AllowNegative = true;
-            this.height.AllowRelative = true;
-            this.height.ButtonStep = 8;
-            this.height.Location = new System.Drawing.Point(68, 89);
-            this.height.Name = "height";
-            this.height.Size = new System.Drawing.Size(72, 24);
-            this.height.StepValues = null;
-            this.height.TabIndex = 11;
-            // 
-            // angle
-            // 
-            this.angle.AllowDecimal = false;
-            this.angle.AllowNegative = true;
-            this.angle.AllowRelative = true;
-            this.angle.ButtonStep = 45;
-            this.angle.Location = new System.Drawing.Point(68, 14);
-            this.angle.Name = "angle";
-            this.angle.Size = new System.Drawing.Size(72, 24);
-            this.angle.StepValues = null;
-            this.angle.TabIndex = 10;
-            this.angle.WhenTextChanged += new System.EventHandler(this.angle_TextChanged);
-            // 
-            // heightlabel
-            // 
-            this.heightlabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-            this.heightlabel.AutoSize = true;
-            this.heightlabel.Location = new System.Drawing.Point(12, 94);
-            this.heightlabel.Name = "heightlabel";
-            this.heightlabel.Size = new System.Drawing.Size(50, 14);
-            this.heightlabel.TabIndex = 9;
-            this.heightlabel.Text = "Z Height:";
-            // 
-            // label5
-            // 
-            label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-            label5.AutoSize = true;
-            label5.Location = new System.Drawing.Point(24, 19);
-            label5.Name = "label5";
-            label5.Size = new System.Drawing.Size(38, 14);
-            label5.TabIndex = 8;
-            label5.Text = "Angle:";
-            // 
-            // anglecontrol
-            // 
-            this.anglecontrol.BackColor = System.Drawing.SystemColors.Control;
-            this.anglecontrol.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-            this.anglecontrol.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.anglecontrol.Location = new System.Drawing.Point(153, 22);
-            this.anglecontrol.Name = "anglecontrol";
-            this.anglecontrol.Size = new System.Drawing.Size(84, 84);
-            this.anglecontrol.TabIndex = 2;
-            this.anglecontrol.Value = 0;
-            this.anglecontrol.ButtonClicked += new System.EventHandler(this.anglecontrol_ButtonClicked);
-            // 
-            // taglabel
-            // 
-            taglabel.AutoSize = true;
-            taglabel.Location = new System.Drawing.Point(28, 31);
-            taglabel.Name = "taglabel";
-            taglabel.Size = new System.Drawing.Size(27, 14);
-            taglabel.TabIndex = 6;
-            taglabel.Text = "Tag:";
-            // 
-            // label7
-            // 
-            label7.AutoSize = true;
-            label7.Location = new System.Drawing.Point(15, 30);
-            label7.Name = "label7";
-            label7.Size = new System.Drawing.Size(41, 14);
-            label7.TabIndex = 9;
-            label7.Text = "Action:";
-            // 
-            // 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.tabproperties);
-            this.tabs.Controls.Add(this.tabeffects);
-            this.tabs.Controls.Add(this.tabcustom);
-            this.tabs.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            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(660, 392);
-            this.tabs.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
-            this.tabs.TabIndex = 0;
-            // 
-            // tabproperties
-            // 
-            this.tabproperties.Controls.Add(this.spritetex);
-            this.tabproperties.Controls.Add(groupBox2);
-            this.tabproperties.Controls.Add(this.settingsgroup);
-            this.tabproperties.Controls.Add(groupBox1);
-            this.tabproperties.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.tabproperties.Location = new System.Drawing.Point(4, 23);
-            this.tabproperties.Name = "tabproperties";
-            this.tabproperties.Padding = new System.Windows.Forms.Padding(3);
-            this.tabproperties.Size = new System.Drawing.Size(652, 365);
-            this.tabproperties.TabIndex = 0;
-            this.tabproperties.Text = "Properties";
-            this.tabproperties.UseVisualStyleBackColor = true;
-            // 
-            // spritetex
-            // 
-            this.spritetex.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-            this.spritetex.BackColor = System.Drawing.SystemColors.AppWorkspace;
-            this.spritetex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
-            this.spritetex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-            this.spritetex.Location = new System.Drawing.Point(284, 249);
-            this.spritetex.Name = "spritetex";
-            this.spritetex.Size = new System.Drawing.Size(104, 100);
-            this.spritetex.TabIndex = 22;
-            // 
-            // settingsgroup
-            // 
-            this.settingsgroup.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.settingsgroup.Controls.Add(this.flags);
-            this.settingsgroup.Location = new System.Drawing.Point(284, 6);
-            this.settingsgroup.Name = "settingsgroup";
-            this.settingsgroup.Size = new System.Drawing.Size(362, 228);
-            this.settingsgroup.TabIndex = 1;
-            this.settingsgroup.TabStop = false;
-            this.settingsgroup.Text = " Settings ";
-            // 
-            // flags
-            // 
-            this.flags.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.flags.AutoScroll = true;
-            this.flags.Columns = 3;
-            this.flags.Location = new System.Drawing.Point(19, 19);
-            this.flags.Name = "flags";
-            this.flags.Size = new System.Drawing.Size(337, 202);
-            this.flags.TabIndex = 0;
-            // 
-            // tabeffects
-            // 
-            this.tabeffects.Controls.Add(this.actiongroup);
-            this.tabeffects.Controls.Add(this.groupBox3);
-            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(652, 365);
-            this.tabeffects.TabIndex = 1;
-            this.tabeffects.Text = "Action";
-            this.tabeffects.UseVisualStyleBackColor = true;
-            // 
-            // actiongroup
-            // 
-            this.actiongroup.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.actiongroup.Controls.Add(this.hexenpanel);
-            this.actiongroup.Controls.Add(label7);
-            this.actiongroup.Controls.Add(this.action);
-            this.actiongroup.Controls.Add(this.browseaction);
-            this.actiongroup.Controls.Add(this.doompanel);
-            this.actiongroup.Location = new System.Drawing.Point(6, 78);
-            this.actiongroup.Name = "actiongroup";
-            this.actiongroup.Size = new System.Drawing.Size(640, 281);
-            this.actiongroup.TabIndex = 22;
-            this.actiongroup.TabStop = false;
-            this.actiongroup.Text = " Action ";
-            // 
-            // hexenpanel
-            // 
-            this.hexenpanel.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.hexenpanel.Controls.Add(this.arg0str);
-            this.hexenpanel.Controls.Add(this.cbArgStr);
-            this.hexenpanel.Controls.Add(this.arg2);
-            this.hexenpanel.Controls.Add(this.arg1);
-            this.hexenpanel.Controls.Add(this.arg0);
-            this.hexenpanel.Controls.Add(this.arg3);
-            this.hexenpanel.Controls.Add(this.arg4);
-            this.hexenpanel.Controls.Add(this.arg1label);
-            this.hexenpanel.Controls.Add(this.arg0label);
-            this.hexenpanel.Controls.Add(this.arg3label);
-            this.hexenpanel.Controls.Add(this.arg2label);
-            this.hexenpanel.Controls.Add(this.arg4label);
-            this.hexenpanel.Location = new System.Drawing.Point(6, 53);
-            this.hexenpanel.Name = "hexenpanel";
-            this.hexenpanel.Size = new System.Drawing.Size(628, 221);
-            this.hexenpanel.TabIndex = 13;
-            // 
-            // arg0str
-            // 
-            this.arg0str.FormattingEnabled = true;
-            this.arg0str.Location = new System.Drawing.Point(179, 93);
-            this.arg0str.Name = "arg0str";
-            this.arg0str.Size = new System.Drawing.Size(125, 22);
-            this.arg0str.TabIndex = 22;
-            this.arg0str.Leave += new System.EventHandler(this.arg0str_Leave);
-            // 
-            // cbArgStr
-            // 
-            this.cbArgStr.Location = new System.Drawing.Point(14, 3);
-            this.cbArgStr.Name = "cbArgStr";
-            this.cbArgStr.Size = new System.Drawing.Size(63, 40);
-            this.cbArgStr.TabIndex = 21;
-            this.cbArgStr.Text = "Named script";
-            this.cbArgStr.UseVisualStyleBackColor = true;
-            this.cbArgStr.CheckedChanged += new System.EventHandler(this.cbArgStr_CheckedChanged);
-            // 
-            // arg2
-            // 
-            this.arg2.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.arg2.Location = new System.Drawing.Point(179, 63);
-            this.arg2.Name = "arg2";
-            this.arg2.Size = new System.Drawing.Size(93, 24);
-            this.arg2.TabIndex = 2;
-            // 
-            // arg1
-            // 
-            this.arg1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.arg1.Location = new System.Drawing.Point(179, 37);
-            this.arg1.Name = "arg1";
-            this.arg1.Size = new System.Drawing.Size(93, 24);
-            this.arg1.TabIndex = 1;
-            // 
-            // arg0
-            // 
-            this.arg0.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.arg0.Location = new System.Drawing.Point(179, 11);
-            this.arg0.Name = "arg0";
-            this.arg0.Size = new System.Drawing.Size(93, 24);
-            this.arg0.TabIndex = 0;
-            // 
-            // arg3
-            // 
-            this.arg3.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.arg3.Location = new System.Drawing.Point(425, 11);
-            this.arg3.Name = "arg3";
-            this.arg3.Size = new System.Drawing.Size(93, 24);
-            this.arg3.TabIndex = 3;
-            // 
-            // arg4
-            // 
-            this.arg4.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.arg4.Location = new System.Drawing.Point(425, 37);
-            this.arg4.Name = "arg4";
-            this.arg4.Size = new System.Drawing.Size(93, 24);
-            this.arg4.TabIndex = 4;
-            // 
-            // arg1label
-            // 
-            this.arg1label.Location = new System.Drawing.Point(-6, 42);
-            this.arg1label.Name = "arg1label";
-            this.arg1label.Size = new System.Drawing.Size(179, 14);
-            this.arg1label.TabIndex = 14;
-            this.arg1label.Text = "Argument 2:";
-            this.arg1label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-            this.arg1label.UseMnemonic = false;
-            // 
-            // arg0label
-            // 
-            this.arg0label.Location = new System.Drawing.Point(-6, 16);
-            this.arg0label.Name = "arg0label";
-            this.arg0label.Size = new System.Drawing.Size(179, 14);
-            this.arg0label.TabIndex = 12;
-            this.arg0label.Text = "Argument 1:";
-            this.arg0label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-            this.arg0label.UseMnemonic = false;
-            // 
-            // arg3label
-            // 
-            this.arg3label.Location = new System.Drawing.Point(240, 16);
-            this.arg3label.Name = "arg3label";
-            this.arg3label.Size = new System.Drawing.Size(179, 14);
-            this.arg3label.TabIndex = 20;
-            this.arg3label.Text = "Argument 4:";
-            this.arg3label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-            this.arg3label.UseMnemonic = false;
-            // 
-            // arg2label
-            // 
-            this.arg2label.Location = new System.Drawing.Point(-6, 68);
-            this.arg2label.Name = "arg2label";
-            this.arg2label.Size = new System.Drawing.Size(179, 14);
-            this.arg2label.TabIndex = 18;
-            this.arg2label.Text = "Argument 3:";
-            this.arg2label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-            this.arg2label.UseMnemonic = false;
-            // 
-            // arg4label
-            // 
-            this.arg4label.Location = new System.Drawing.Point(240, 42);
-            this.arg4label.Name = "arg4label";
-            this.arg4label.Size = new System.Drawing.Size(179, 14);
-            this.arg4label.TabIndex = 16;
-            this.arg4label.Text = "Argument 5:";
-            this.arg4label.TextAlign = System.Drawing.ContentAlignment.TopRight;
-            this.arg4label.UseMnemonic = false;
-            // 
-            // action
-            // 
-            this.action.BackColor = System.Drawing.SystemColors.Control;
-            this.action.Cursor = System.Windows.Forms.Cursors.Default;
-            this.action.Empty = false;
-            this.action.GeneralizedCategories = null;
-            this.action.Location = new System.Drawing.Point(62, 27);
-            this.action.Name = "action";
-            this.action.Size = new System.Drawing.Size(462, 21);
-            this.action.TabIndex = 0;
-            this.action.Value = 402;
-            this.action.ValueChanges += new System.EventHandler(this.action_ValueChanges);
-            // 
-            // browseaction
-            // 
-            this.browseaction.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.browseaction.Image = global::CodeImp.DoomBuilder.Properties.Resources.List;
-            this.browseaction.Location = new System.Drawing.Point(530, 25);
-            this.browseaction.Name = "browseaction";
-            this.browseaction.Padding = new System.Windows.Forms.Padding(0, 0, 1, 3);
-            this.browseaction.Size = new System.Drawing.Size(28, 25);
-            this.browseaction.TabIndex = 1;
-            this.browseaction.Text = " ";
-            this.browseaction.UseVisualStyleBackColor = true;
-            this.browseaction.Click += new System.EventHandler(this.browseaction_Click);
-            // 
-            // doompanel
-            // 
-            this.doompanel.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.doompanel.Location = new System.Drawing.Point(6, 54);
-            this.doompanel.Name = "doompanel";
-            this.doompanel.Size = new System.Drawing.Size(628, 221);
-            this.doompanel.TabIndex = 12;
-            // 
-            // groupBox3
-            // 
-            this.groupBox3.Controls.Add(this.tag);
-            this.groupBox3.Controls.Add(taglabel);
-            this.groupBox3.Controls.Add(this.newtag);
-            this.groupBox3.Location = new System.Drawing.Point(6, 6);
-            this.groupBox3.Name = "groupBox3";
-            this.groupBox3.Size = new System.Drawing.Size(640, 66);
-            this.groupBox3.TabIndex = 0;
-            this.groupBox3.TabStop = false;
-            this.groupBox3.Text = " Identification ";
-            // 
-            // tag
-            // 
-            this.tag.AllowDecimal = false;
-            this.tag.AllowNegative = false;
-            this.tag.AllowRelative = true;
-            this.tag.ButtonStep = 1;
-            this.tag.Location = new System.Drawing.Point(62, 26);
-            this.tag.Name = "tag";
-            this.tag.Size = new System.Drawing.Size(80, 24);
-            this.tag.StepValues = null;
-            this.tag.TabIndex = 7;
-            // 
-            // newtag
-            // 
-            this.newtag.Location = new System.Drawing.Point(154, 27);
-            this.newtag.Name = "newtag";
-            this.newtag.Size = new System.Drawing.Size(76, 23);
-            this.newtag.TabIndex = 1;
-            this.newtag.Text = "New Tag";
-            this.newtag.UseVisualStyleBackColor = true;
-            this.newtag.Click += new System.EventHandler(this.newtag_Click);
-            // 
-            // tabcustom
-            // 
-            this.tabcustom.Controls.Add(this.fieldslist);
-            this.tabcustom.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.tabcustom.Location = new System.Drawing.Point(4, 23);
-            this.tabcustom.Name = "tabcustom";
-            this.tabcustom.Size = new System.Drawing.Size(652, 365);
-            this.tabcustom.TabIndex = 2;
-            this.tabcustom.Text = "Custom";
-            this.tabcustom.UseVisualStyleBackColor = true;
-            // 
-            // fieldslist
-            // 
-            this.fieldslist.AllowInsert = true;
-            this.fieldslist.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.fieldslist.AutoInsertUserPrefix = true;
-            this.fieldslist.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-            this.fieldslist.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.fieldslist.Location = new System.Drawing.Point(8, 9);
-            this.fieldslist.Margin = new System.Windows.Forms.Padding(8, 9, 8, 9);
-            this.fieldslist.Name = "fieldslist";
-            this.fieldslist.PropertyColumnVisible = true;
-            this.fieldslist.PropertyColumnWidth = 150;
-            this.fieldslist.Size = new System.Drawing.Size(636, 347);
-            this.fieldslist.TabIndex = 1;
-            this.fieldslist.TypeColumnVisible = true;
-            this.fieldslist.TypeColumnWidth = 100;
-            this.fieldslist.ValueColumnVisible = true;
-            this.fieldslist.OnFieldValueChanged += new CodeImp.DoomBuilder.Controls.FieldsEditorControl.SingleFieldNameEvent(this.fieldslist_OnFieldValueChanged);
-            // 
-            // 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(558, 409);
-            this.cancel.Name = "cancel";
-            this.cancel.Size = new System.Drawing.Size(112, 25);
-            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(439, 409);
-            this.apply.Name = "apply";
-            this.apply.Size = new System.Drawing.Size(112, 25);
-            this.apply.TabIndex = 1;
-            this.apply.Text = "OK";
-            this.apply.UseVisualStyleBackColor = true;
-            this.apply.Click += new System.EventHandler(this.apply_Click);
-            // 
-            // ThingEditForm
-            // 
-            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(680, 441);
-            this.Controls.Add(this.cancel);
-            this.Controls.Add(this.apply);
-            this.Controls.Add(this.tabs);
-            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 = "ThingEditForm";
-            this.Opacity = 0;
-            this.ShowIcon = false;
-            this.ShowInTaskbar = false;
-            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
-            this.Text = "Edit Thing";
-            this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.ThingEditForm_HelpRequested);
-            groupBox1.ResumeLayout(false);
-            groupBox2.ResumeLayout(false);
-            groupBox2.PerformLayout();
-            this.tabs.ResumeLayout(false);
-            this.tabproperties.ResumeLayout(false);
-            this.settingsgroup.ResumeLayout(false);
-            this.tabeffects.ResumeLayout(false);
-            this.actiongroup.ResumeLayout(false);
-            this.actiongroup.PerformLayout();
-            this.hexenpanel.ResumeLayout(false);
-            this.groupBox3.ResumeLayout(false);
-            this.groupBox3.PerformLayout();
-            this.tabcustom.ResumeLayout(false);
-            this.ResumeLayout(false);
+			System.Windows.Forms.GroupBox groupBox1;
+			System.Windows.Forms.GroupBox groupBox2;
+			System.Windows.Forms.Label label5;
+			System.Windows.Forms.Label taglabel;
+			System.Windows.Forms.Label label7;
+			this.thingtype = new CodeImp.DoomBuilder.Controls.ThingBrowserControl();
+			this.cbAbsoluteHeight = new System.Windows.Forms.CheckBox();
+			this.label2 = new System.Windows.Forms.Label();
+			this.label1 = new System.Windows.Forms.Label();
+			this.posX = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
+			this.posY = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
+			this.posZ = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
+			this.angle = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
+			this.zlabel = new System.Windows.Forms.Label();
+			this.anglecontrol = new CodeImp.DoomBuilder.Controls.AngleControl();
+			this.tabs = new System.Windows.Forms.TabControl();
+			this.tabproperties = new System.Windows.Forms.TabPage();
+			this.spritetex = new System.Windows.Forms.Panel();
+			this.settingsgroup = new System.Windows.Forms.GroupBox();
+			this.flags = new CodeImp.DoomBuilder.Controls.CheckboxArrayControl();
+			this.tabeffects = new System.Windows.Forms.TabPage();
+			this.actiongroup = new System.Windows.Forms.GroupBox();
+			this.hexenpanel = new System.Windows.Forms.Panel();
+			this.arg0str = new System.Windows.Forms.ComboBox();
+			this.cbArgStr = new System.Windows.Forms.CheckBox();
+			this.arg2 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
+			this.arg1 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
+			this.arg0 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
+			this.arg3 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
+			this.arg4 = new CodeImp.DoomBuilder.Controls.ArgumentBox();
+			this.arg1label = new System.Windows.Forms.Label();
+			this.arg0label = new System.Windows.Forms.Label();
+			this.arg3label = new System.Windows.Forms.Label();
+			this.arg2label = new System.Windows.Forms.Label();
+			this.arg4label = new System.Windows.Forms.Label();
+			this.action = new CodeImp.DoomBuilder.Controls.ActionSelectorControl();
+			this.browseaction = new System.Windows.Forms.Button();
+			this.doompanel = new System.Windows.Forms.Panel();
+			this.groupBox3 = new System.Windows.Forms.GroupBox();
+			this.tag = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
+			this.newtag = new System.Windows.Forms.Button();
+			this.tabcustom = new System.Windows.Forms.TabPage();
+			this.fieldslist = new CodeImp.DoomBuilder.Controls.FieldsEditorControl();
+			this.cancel = new System.Windows.Forms.Button();
+			this.apply = new System.Windows.Forms.Button();
+			groupBox1 = new System.Windows.Forms.GroupBox();
+			groupBox2 = new System.Windows.Forms.GroupBox();
+			label5 = new System.Windows.Forms.Label();
+			taglabel = new System.Windows.Forms.Label();
+			label7 = new System.Windows.Forms.Label();
+			groupBox1.SuspendLayout();
+			groupBox2.SuspendLayout();
+			this.tabs.SuspendLayout();
+			this.tabproperties.SuspendLayout();
+			this.settingsgroup.SuspendLayout();
+			this.tabeffects.SuspendLayout();
+			this.actiongroup.SuspendLayout();
+			this.hexenpanel.SuspendLayout();
+			this.groupBox3.SuspendLayout();
+			this.tabcustom.SuspendLayout();
+			this.SuspendLayout();
+			// 
+			// groupBox1
+			// 
+			groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+						| System.Windows.Forms.AnchorStyles.Left)));
+			groupBox1.Controls.Add(this.thingtype);
+			groupBox1.Location = new System.Drawing.Point(6, 6);
+			groupBox1.Name = "groupBox1";
+			groupBox1.Size = new System.Drawing.Size(269, 373);
+			groupBox1.TabIndex = 0;
+			groupBox1.TabStop = false;
+			groupBox1.Text = " Thing ";
+			// 
+			// thingtype
+			// 
+			this.thingtype.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+						| System.Windows.Forms.AnchorStyles.Left)));
+			this.thingtype.Location = new System.Drawing.Point(9, 22);
+			this.thingtype.Margin = new System.Windows.Forms.Padding(6);
+			this.thingtype.Name = "thingtype";
+			this.thingtype.Size = new System.Drawing.Size(251, 345);
+			this.thingtype.TabIndex = 0;
+			this.thingtype.OnTypeChanged += new CodeImp.DoomBuilder.Controls.ThingBrowserControl.TypeChangedDeletegate(this.thingtype_OnTypeChanged);
+			// 
+			// groupBox2
+			// 
+			groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+						| System.Windows.Forms.AnchorStyles.Right)));
+			groupBox2.Controls.Add(this.cbAbsoluteHeight);
+			groupBox2.Controls.Add(this.label2);
+			groupBox2.Controls.Add(this.label1);
+			groupBox2.Controls.Add(this.posX);
+			groupBox2.Controls.Add(this.posY);
+			groupBox2.Controls.Add(this.posZ);
+			groupBox2.Controls.Add(this.angle);
+			groupBox2.Controls.Add(this.zlabel);
+			groupBox2.Controls.Add(this.anglecontrol);
+			groupBox2.Controls.Add(label5);
+			groupBox2.Location = new System.Drawing.Point(397, 246);
+			groupBox2.Name = "groupBox2";
+			groupBox2.Size = new System.Drawing.Size(249, 134);
+			groupBox2.TabIndex = 2;
+			groupBox2.TabStop = false;
+			groupBox2.Text = " Coordination ";
+			// 
+			// cbAbsoluteHeight
+			// 
+			this.cbAbsoluteHeight.AutoSize = true;
+			this.cbAbsoluteHeight.Location = new System.Drawing.Point(38, 96);
+			this.cbAbsoluteHeight.Name = "cbAbsoluteHeight";
+			this.cbAbsoluteHeight.Size = new System.Drawing.Size(102, 18);
+			this.cbAbsoluteHeight.TabIndex = 16;
+			this.cbAbsoluteHeight.Text = "Absolute Height";
+			this.cbAbsoluteHeight.UseVisualStyleBackColor = true;
+			this.cbAbsoluteHeight.CheckedChanged += new System.EventHandler(this.cbAbsoluteHeight_CheckedChanged);
+			// 
+			// label2
+			// 
+			this.label2.Location = new System.Drawing.Point(12, 21);
+			this.label2.Name = "label2";
+			this.label2.Size = new System.Drawing.Size(50, 14);
+			this.label2.TabIndex = 15;
+			this.label2.Text = "X:";
+			this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+			// 
+			// label1
+			// 
+			this.label1.Location = new System.Drawing.Point(9, 46);
+			this.label1.Name = "label1";
+			this.label1.Size = new System.Drawing.Size(53, 14);
+			this.label1.TabIndex = 14;
+			this.label1.Text = "Y:";
+			this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+			// 
+			// posX
+			// 
+			this.posX.AllowDecimal = false;
+			this.posX.AllowNegative = true;
+			this.posX.AllowRelative = true;
+			this.posX.ButtonStep = 8;
+			this.posX.Location = new System.Drawing.Point(68, 16);
+			this.posX.Name = "posX";
+			this.posX.Size = new System.Drawing.Size(72, 24);
+			this.posX.StepValues = null;
+			this.posX.TabIndex = 13;
+			// 
+			// posY
+			// 
+			this.posY.AllowDecimal = false;
+			this.posY.AllowNegative = true;
+			this.posY.AllowRelative = true;
+			this.posY.ButtonStep = 8;
+			this.posY.Location = new System.Drawing.Point(68, 41);
+			this.posY.Name = "posY";
+			this.posY.Size = new System.Drawing.Size(72, 24);
+			this.posY.StepValues = null;
+			this.posY.TabIndex = 12;
+			// 
+			// posZ
+			// 
+			this.posZ.AllowDecimal = false;
+			this.posZ.AllowNegative = true;
+			this.posZ.AllowRelative = true;
+			this.posZ.ButtonStep = 8;
+			this.posZ.Location = new System.Drawing.Point(68, 66);
+			this.posZ.Name = "posZ";
+			this.posZ.Size = new System.Drawing.Size(72, 24);
+			this.posZ.StepValues = null;
+			this.posZ.TabIndex = 11;
+			// 
+			// angle
+			// 
+			this.angle.AllowDecimal = false;
+			this.angle.AllowNegative = true;
+			this.angle.AllowRelative = true;
+			this.angle.ButtonStep = 1;
+			this.angle.Location = new System.Drawing.Point(186, 16);
+			this.angle.Name = "angle";
+			this.angle.Size = new System.Drawing.Size(57, 24);
+			this.angle.StepValues = null;
+			this.angle.TabIndex = 10;
+			this.angle.WhenTextChanged += new System.EventHandler(this.angle_TextChanged);
+			// 
+			// zlabel
+			// 
+			this.zlabel.Location = new System.Drawing.Point(6, 71);
+			this.zlabel.Name = "zlabel";
+			this.zlabel.Size = new System.Drawing.Size(56, 14);
+			this.zlabel.TabIndex = 9;
+			this.zlabel.Text = "Height:";
+			this.zlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+			// 
+			// anglecontrol
+			// 
+			this.anglecontrol.BackColor = System.Drawing.SystemColors.Control;
+			this.anglecontrol.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+			this.anglecontrol.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.anglecontrol.Location = new System.Drawing.Point(153, 46);
+			this.anglecontrol.Name = "anglecontrol";
+			this.anglecontrol.Size = new System.Drawing.Size(84, 84);
+			this.anglecontrol.TabIndex = 2;
+			this.anglecontrol.Value = 0;
+			this.anglecontrol.ButtonClicked += new System.EventHandler(this.anglecontrol_ButtonClicked);
+			// 
+			// label5
+			// 
+			label5.AutoSize = true;
+			label5.Location = new System.Drawing.Point(149, 21);
+			label5.Name = "label5";
+			label5.Size = new System.Drawing.Size(38, 14);
+			label5.TabIndex = 8;
+			label5.Text = "Angle:";
+			// 
+			// taglabel
+			// 
+			taglabel.AutoSize = true;
+			taglabel.Location = new System.Drawing.Point(28, 31);
+			taglabel.Name = "taglabel";
+			taglabel.Size = new System.Drawing.Size(27, 14);
+			taglabel.TabIndex = 6;
+			taglabel.Text = "Tag:";
+			// 
+			// label7
+			// 
+			label7.AutoSize = true;
+			label7.Location = new System.Drawing.Point(15, 30);
+			label7.Name = "label7";
+			label7.Size = new System.Drawing.Size(41, 14);
+			label7.TabIndex = 9;
+			label7.Text = "Action:";
+			// 
+			// 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.tabproperties);
+			this.tabs.Controls.Add(this.tabeffects);
+			this.tabs.Controls.Add(this.tabcustom);
+			this.tabs.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			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(660, 412);
+			this.tabs.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
+			this.tabs.TabIndex = 0;
+			// 
+			// tabproperties
+			// 
+			this.tabproperties.Controls.Add(this.spritetex);
+			this.tabproperties.Controls.Add(groupBox2);
+			this.tabproperties.Controls.Add(this.settingsgroup);
+			this.tabproperties.Controls.Add(groupBox1);
+			this.tabproperties.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.tabproperties.Location = new System.Drawing.Point(4, 23);
+			this.tabproperties.Name = "tabproperties";
+			this.tabproperties.Padding = new System.Windows.Forms.Padding(3);
+			this.tabproperties.Size = new System.Drawing.Size(652, 385);
+			this.tabproperties.TabIndex = 0;
+			this.tabproperties.Text = "Properties";
+			this.tabproperties.UseVisualStyleBackColor = true;
+			// 
+			// spritetex
+			// 
+			this.spritetex.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+			this.spritetex.BackColor = System.Drawing.SystemColors.AppWorkspace;
+			this.spritetex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+			this.spritetex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+			this.spritetex.Location = new System.Drawing.Point(284, 252);
+			this.spritetex.Name = "spritetex";
+			this.spritetex.Size = new System.Drawing.Size(104, 100);
+			this.spritetex.TabIndex = 22;
+			// 
+			// settingsgroup
+			// 
+			this.settingsgroup.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.settingsgroup.Controls.Add(this.flags);
+			this.settingsgroup.Location = new System.Drawing.Point(284, 6);
+			this.settingsgroup.Name = "settingsgroup";
+			this.settingsgroup.Size = new System.Drawing.Size(362, 234);
+			this.settingsgroup.TabIndex = 1;
+			this.settingsgroup.TabStop = false;
+			this.settingsgroup.Text = " Settings ";
+			// 
+			// flags
+			// 
+			this.flags.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.flags.AutoScroll = true;
+			this.flags.Columns = 3;
+			this.flags.Location = new System.Drawing.Point(19, 19);
+			this.flags.Name = "flags";
+			this.flags.Size = new System.Drawing.Size(337, 208);
+			this.flags.TabIndex = 0;
+			// 
+			// tabeffects
+			// 
+			this.tabeffects.Controls.Add(this.actiongroup);
+			this.tabeffects.Controls.Add(this.groupBox3);
+			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(652, 385);
+			this.tabeffects.TabIndex = 1;
+			this.tabeffects.Text = "Action";
+			this.tabeffects.UseVisualStyleBackColor = true;
+			// 
+			// actiongroup
+			// 
+			this.actiongroup.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.actiongroup.Controls.Add(this.hexenpanel);
+			this.actiongroup.Controls.Add(label7);
+			this.actiongroup.Controls.Add(this.action);
+			this.actiongroup.Controls.Add(this.browseaction);
+			this.actiongroup.Controls.Add(this.doompanel);
+			this.actiongroup.Location = new System.Drawing.Point(6, 78);
+			this.actiongroup.Name = "actiongroup";
+			this.actiongroup.Size = new System.Drawing.Size(640, 306);
+			this.actiongroup.TabIndex = 22;
+			this.actiongroup.TabStop = false;
+			this.actiongroup.Text = " Action ";
+			// 
+			// hexenpanel
+			// 
+			this.hexenpanel.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.hexenpanel.Controls.Add(this.arg0str);
+			this.hexenpanel.Controls.Add(this.cbArgStr);
+			this.hexenpanel.Controls.Add(this.arg2);
+			this.hexenpanel.Controls.Add(this.arg1);
+			this.hexenpanel.Controls.Add(this.arg0);
+			this.hexenpanel.Controls.Add(this.arg3);
+			this.hexenpanel.Controls.Add(this.arg4);
+			this.hexenpanel.Controls.Add(this.arg1label);
+			this.hexenpanel.Controls.Add(this.arg0label);
+			this.hexenpanel.Controls.Add(this.arg3label);
+			this.hexenpanel.Controls.Add(this.arg2label);
+			this.hexenpanel.Controls.Add(this.arg4label);
+			this.hexenpanel.Location = new System.Drawing.Point(6, 53);
+			this.hexenpanel.Name = "hexenpanel";
+			this.hexenpanel.Size = new System.Drawing.Size(628, 246);
+			this.hexenpanel.TabIndex = 13;
+			// 
+			// arg0str
+			// 
+			this.arg0str.FormattingEnabled = true;
+			this.arg0str.Location = new System.Drawing.Point(179, 93);
+			this.arg0str.Name = "arg0str";
+			this.arg0str.Size = new System.Drawing.Size(125, 22);
+			this.arg0str.TabIndex = 22;
+			this.arg0str.Leave += new System.EventHandler(this.arg0str_Leave);
+			// 
+			// cbArgStr
+			// 
+			this.cbArgStr.Location = new System.Drawing.Point(14, 3);
+			this.cbArgStr.Name = "cbArgStr";
+			this.cbArgStr.Size = new System.Drawing.Size(63, 40);
+			this.cbArgStr.TabIndex = 21;
+			this.cbArgStr.Text = "Named script";
+			this.cbArgStr.UseVisualStyleBackColor = true;
+			this.cbArgStr.CheckedChanged += new System.EventHandler(this.cbArgStr_CheckedChanged);
+			// 
+			// arg2
+			// 
+			this.arg2.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.arg2.Location = new System.Drawing.Point(179, 63);
+			this.arg2.Name = "arg2";
+			this.arg2.Size = new System.Drawing.Size(93, 24);
+			this.arg2.TabIndex = 2;
+			// 
+			// arg1
+			// 
+			this.arg1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.arg1.Location = new System.Drawing.Point(179, 37);
+			this.arg1.Name = "arg1";
+			this.arg1.Size = new System.Drawing.Size(93, 24);
+			this.arg1.TabIndex = 1;
+			// 
+			// arg0
+			// 
+			this.arg0.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.arg0.Location = new System.Drawing.Point(179, 11);
+			this.arg0.Name = "arg0";
+			this.arg0.Size = new System.Drawing.Size(93, 24);
+			this.arg0.TabIndex = 0;
+			// 
+			// arg3
+			// 
+			this.arg3.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.arg3.Location = new System.Drawing.Point(425, 11);
+			this.arg3.Name = "arg3";
+			this.arg3.Size = new System.Drawing.Size(93, 24);
+			this.arg3.TabIndex = 3;
+			// 
+			// arg4
+			// 
+			this.arg4.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.arg4.Location = new System.Drawing.Point(425, 37);
+			this.arg4.Name = "arg4";
+			this.arg4.Size = new System.Drawing.Size(93, 24);
+			this.arg4.TabIndex = 4;
+			// 
+			// arg1label
+			// 
+			this.arg1label.Location = new System.Drawing.Point(-6, 42);
+			this.arg1label.Name = "arg1label";
+			this.arg1label.Size = new System.Drawing.Size(179, 14);
+			this.arg1label.TabIndex = 14;
+			this.arg1label.Text = "Argument 2:";
+			this.arg1label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			this.arg1label.UseMnemonic = false;
+			// 
+			// arg0label
+			// 
+			this.arg0label.Location = new System.Drawing.Point(-6, 16);
+			this.arg0label.Name = "arg0label";
+			this.arg0label.Size = new System.Drawing.Size(179, 14);
+			this.arg0label.TabIndex = 12;
+			this.arg0label.Text = "Argument 1:";
+			this.arg0label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			this.arg0label.UseMnemonic = false;
+			// 
+			// arg3label
+			// 
+			this.arg3label.Location = new System.Drawing.Point(240, 16);
+			this.arg3label.Name = "arg3label";
+			this.arg3label.Size = new System.Drawing.Size(179, 14);
+			this.arg3label.TabIndex = 20;
+			this.arg3label.Text = "Argument 4:";
+			this.arg3label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			this.arg3label.UseMnemonic = false;
+			// 
+			// arg2label
+			// 
+			this.arg2label.Location = new System.Drawing.Point(-6, 68);
+			this.arg2label.Name = "arg2label";
+			this.arg2label.Size = new System.Drawing.Size(179, 14);
+			this.arg2label.TabIndex = 18;
+			this.arg2label.Text = "Argument 3:";
+			this.arg2label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			this.arg2label.UseMnemonic = false;
+			// 
+			// arg4label
+			// 
+			this.arg4label.Location = new System.Drawing.Point(240, 42);
+			this.arg4label.Name = "arg4label";
+			this.arg4label.Size = new System.Drawing.Size(179, 14);
+			this.arg4label.TabIndex = 16;
+			this.arg4label.Text = "Argument 5:";
+			this.arg4label.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			this.arg4label.UseMnemonic = false;
+			// 
+			// action
+			// 
+			this.action.BackColor = System.Drawing.SystemColors.Control;
+			this.action.Cursor = System.Windows.Forms.Cursors.Default;
+			this.action.Empty = false;
+			this.action.GeneralizedCategories = null;
+			this.action.Location = new System.Drawing.Point(62, 27);
+			this.action.Name = "action";
+			this.action.Size = new System.Drawing.Size(462, 21);
+			this.action.TabIndex = 0;
+			this.action.Value = 402;
+			this.action.ValueChanges += new System.EventHandler(this.action_ValueChanges);
+			// 
+			// browseaction
+			// 
+			this.browseaction.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.browseaction.Image = global::CodeImp.DoomBuilder.Properties.Resources.List;
+			this.browseaction.Location = new System.Drawing.Point(530, 25);
+			this.browseaction.Name = "browseaction";
+			this.browseaction.Padding = new System.Windows.Forms.Padding(0, 0, 1, 3);
+			this.browseaction.Size = new System.Drawing.Size(28, 25);
+			this.browseaction.TabIndex = 1;
+			this.browseaction.Text = " ";
+			this.browseaction.UseVisualStyleBackColor = true;
+			this.browseaction.Click += new System.EventHandler(this.browseaction_Click);
+			// 
+			// doompanel
+			// 
+			this.doompanel.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.doompanel.Location = new System.Drawing.Point(6, 54);
+			this.doompanel.Name = "doompanel";
+			this.doompanel.Size = new System.Drawing.Size(628, 246);
+			this.doompanel.TabIndex = 12;
+			// 
+			// groupBox3
+			// 
+			this.groupBox3.Controls.Add(this.tag);
+			this.groupBox3.Controls.Add(taglabel);
+			this.groupBox3.Controls.Add(this.newtag);
+			this.groupBox3.Location = new System.Drawing.Point(6, 6);
+			this.groupBox3.Name = "groupBox3";
+			this.groupBox3.Size = new System.Drawing.Size(640, 66);
+			this.groupBox3.TabIndex = 0;
+			this.groupBox3.TabStop = false;
+			this.groupBox3.Text = " Identification ";
+			// 
+			// tag
+			// 
+			this.tag.AllowDecimal = false;
+			this.tag.AllowNegative = false;
+			this.tag.AllowRelative = true;
+			this.tag.ButtonStep = 1;
+			this.tag.Location = new System.Drawing.Point(62, 26);
+			this.tag.Name = "tag";
+			this.tag.Size = new System.Drawing.Size(80, 24);
+			this.tag.StepValues = null;
+			this.tag.TabIndex = 7;
+			// 
+			// newtag
+			// 
+			this.newtag.Location = new System.Drawing.Point(154, 27);
+			this.newtag.Name = "newtag";
+			this.newtag.Size = new System.Drawing.Size(76, 23);
+			this.newtag.TabIndex = 1;
+			this.newtag.Text = "New Tag";
+			this.newtag.UseVisualStyleBackColor = true;
+			this.newtag.Click += new System.EventHandler(this.newtag_Click);
+			// 
+			// tabcustom
+			// 
+			this.tabcustom.Controls.Add(this.fieldslist);
+			this.tabcustom.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.tabcustom.Location = new System.Drawing.Point(4, 23);
+			this.tabcustom.Name = "tabcustom";
+			this.tabcustom.Size = new System.Drawing.Size(652, 385);
+			this.tabcustom.TabIndex = 2;
+			this.tabcustom.Text = "Custom";
+			this.tabcustom.UseVisualStyleBackColor = true;
+			// 
+			// fieldslist
+			// 
+			this.fieldslist.AllowInsert = true;
+			this.fieldslist.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.fieldslist.AutoInsertUserPrefix = true;
+			this.fieldslist.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+			this.fieldslist.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+			this.fieldslist.Location = new System.Drawing.Point(8, 9);
+			this.fieldslist.Margin = new System.Windows.Forms.Padding(8, 9, 8, 9);
+			this.fieldslist.Name = "fieldslist";
+			this.fieldslist.PropertyColumnVisible = true;
+			this.fieldslist.PropertyColumnWidth = 150;
+			this.fieldslist.Size = new System.Drawing.Size(636, 372);
+			this.fieldslist.TabIndex = 1;
+			this.fieldslist.TypeColumnVisible = true;
+			this.fieldslist.TypeColumnWidth = 100;
+			this.fieldslist.ValueColumnVisible = true;
+			this.fieldslist.OnFieldValueChanged += new CodeImp.DoomBuilder.Controls.FieldsEditorControl.SingleFieldNameEvent(this.fieldslist_OnFieldValueChanged);
+			// 
+			// 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(558, 429);
+			this.cancel.Name = "cancel";
+			this.cancel.Size = new System.Drawing.Size(112, 25);
+			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(439, 429);
+			this.apply.Name = "apply";
+			this.apply.Size = new System.Drawing.Size(112, 25);
+			this.apply.TabIndex = 1;
+			this.apply.Text = "OK";
+			this.apply.UseVisualStyleBackColor = true;
+			this.apply.Click += new System.EventHandler(this.apply_Click);
+			// 
+			// ThingEditForm
+			// 
+			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(680, 461);
+			this.Controls.Add(this.cancel);
+			this.Controls.Add(this.apply);
+			this.Controls.Add(this.tabs);
+			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 = "ThingEditForm";
+			this.Opacity = 0;
+			this.ShowIcon = false;
+			this.ShowInTaskbar = false;
+			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+			this.Text = "Edit Thing";
+			this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.ThingEditForm_HelpRequested);
+			groupBox1.ResumeLayout(false);
+			groupBox2.ResumeLayout(false);
+			groupBox2.PerformLayout();
+			this.tabs.ResumeLayout(false);
+			this.tabproperties.ResumeLayout(false);
+			this.settingsgroup.ResumeLayout(false);
+			this.tabeffects.ResumeLayout(false);
+			this.actiongroup.ResumeLayout(false);
+			this.actiongroup.PerformLayout();
+			this.hexenpanel.ResumeLayout(false);
+			this.groupBox3.ResumeLayout(false);
+			this.groupBox3.PerformLayout();
+			this.tabcustom.ResumeLayout(false);
+			this.ResumeLayout(false);
 
 		}
 
@@ -672,16 +682,17 @@ namespace CodeImp.DoomBuilder.Windows
 		private CodeImp.DoomBuilder.Controls.ArgumentBox arg0;
 		private CodeImp.DoomBuilder.Controls.ArgumentBox arg3;
 		private CodeImp.DoomBuilder.Controls.ArgumentBox arg4;
-		private System.Windows.Forms.Label heightlabel;
+		private System.Windows.Forms.Label zlabel;
 		private CodeImp.DoomBuilder.Controls.ThingBrowserControl thingtype;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox angle;
-		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox height;
+		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox posZ;
 		private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox tag;
         private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox posY;
         private System.Windows.Forms.Label label2;
         private System.Windows.Forms.Label label1;
         private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox posX;
         private System.Windows.Forms.CheckBox cbArgStr;
-        private System.Windows.Forms.ComboBox arg0str;
+		private System.Windows.Forms.ComboBox arg0str;
+		private System.Windows.Forms.CheckBox cbAbsoluteHeight;
 	}
 }
\ No newline at end of file
diff --git a/Source/Core/Windows/ThingEditForm.cs b/Source/Core/Windows/ThingEditForm.cs
index df0b8810e50c54532fd2b5d61250d515407df9cf..2de63293c3423c02a4157a7f1849d6e85ed6960c 100644
--- a/Source/Core/Windows/ThingEditForm.cs
+++ b/Source/Core/Windows/ThingEditForm.cs
@@ -47,8 +47,10 @@ namespace CodeImp.DoomBuilder.Windows
 		private ThingTypeInfo thinginfo;
 		private bool preventchanges = false;
         //mxd
-        private Vector2D initialPosition; //initial position of a thing used to fill posX and posY fields
-		
+        private Vector3D initialPosition; //initial position of a thing used to fill posX, posY and posZ fields
+		private int initialFloorHeight; //floor height of the sector first thing is in
+		private static bool ABSOLUTE_HEIGHT;
+
 		#endregion
 
 		#region ================== Properties
@@ -86,8 +88,9 @@ namespace CodeImp.DoomBuilder.Windows
 				tabs.TabPages.Remove(tabeffects);
 			
 			// Thing height?
-			height.Visible = General.Map.FormatInterface.HasThingHeight;
-			heightlabel.Visible = General.Map.FormatInterface.HasThingHeight;
+			posZ.Visible = General.Map.FormatInterface.HasThingHeight;
+			zlabel.Visible = General.Map.FormatInterface.HasThingHeight;
+			cbAbsoluteHeight.Visible = General.Map.FormatInterface.HasThingHeight; //mxd
 			
 			// Setup types list
 			thingtype.Setup();
@@ -119,14 +122,18 @@ namespace CodeImp.DoomBuilder.Windows
 			
 			// Coordination
 			angle.Text = ft.AngleDoom.ToString();
-			height.Text = ((int)ft.Position.z).ToString();
+			zlabel.Text = ABSOLUTE_HEIGHT ? "Z:" : "Height:"; //mxd
+			cbAbsoluteHeight.Checked = ABSOLUTE_HEIGHT; //mxd
 
             //mxd
             initialPosition = ft.Position;
+			initialFloorHeight = ft.Sector.FloorHeight;
             posX.Text = ((int)ft.Position.x).ToString();
             posY.Text = ((int)ft.Position.y).ToString();
+			posZ.Text = ABSOLUTE_HEIGHT ? ((int)ft.Position.z + ft.Sector.FloorHeight).ToString() : ((int)ft.Position.z).ToString();
             posX.ButtonStep = General.Map.Grid.GridSize;
             posY.ButtonStep = General.Map.Grid.GridSize;
+			posZ.ButtonStep = General.Map.Grid.GridSize;
 
             //mxd. setup arg0str
             arg0str.Location = arg0.Location;
@@ -170,7 +177,13 @@ namespace CodeImp.DoomBuilder.Windows
 				
 				// Coordination
 				if(t.AngleDoom.ToString() != angle.Text) angle.Text = "";
-				if(((int)t.Position.z).ToString() != height.Text) height.Text = "";
+				
+				//mxd
+				if(ABSOLUTE_HEIGHT) {
+					if(((int)t.Position.z + t.Sector.FloorHeight).ToString() != posZ.Text) posZ.Text = "";
+				} else {
+					if(((int)t.Position.z).ToString() != posZ.Text) posZ.Text = "";
+				}
 
 				// Action/tags
 				if(t.Action != action.Value) action.Empty = true;
@@ -210,6 +223,7 @@ namespace CodeImp.DoomBuilder.Windows
                 arg0str.SelectedIndex = 0;
             }
         }
+
         //mxd
         private void setNamedScripts(string selectedValue) {
             arg0str.Items.Clear();
@@ -402,7 +416,8 @@ namespace CodeImp.DoomBuilder.Windows
 				t.Rotate(angle.GetResult(t.AngleDoom));
                 //mxd
 				//t.Move(t.Position.x, t.Position.y, (float)height.GetResult((int)t.Position.z));
-                t.Move(t.Position.x + delta.x, t.Position.y + delta.y, (float)height.GetResult((int)t.Position.z));
+				float z = (float)posZ.GetResult((int)t.Position.z);
+				t.Move(t.Position.x + delta.x, t.Position.y + delta.y, ABSOLUTE_HEIGHT ? z - t.Sector.FloorHeight : z);
 				
 				// Apply all flags
 				foreach(CheckBox c in flags.Checkboxes)
@@ -491,6 +506,13 @@ namespace CodeImp.DoomBuilder.Windows
                 arg0str.Text = (string)fieldslist.GetValue(fieldname);
         }
 
+		//mxd
+		private void cbAbsoluteHeight_CheckedChanged(object sender, EventArgs e) {
+			ABSOLUTE_HEIGHT = cbAbsoluteHeight.Checked;
+			zlabel.Text = ABSOLUTE_HEIGHT ? "Z:" : "Height:";
+			posZ.Text = (ABSOLUTE_HEIGHT ? initialFloorHeight + initialPosition.z : initialPosition.z).ToString();
+		}
+
 		// Help
 		private void ThingEditForm_HelpRequested(object sender, HelpEventArgs hlpevent)
 		{
diff --git a/Source/Core/Windows/ThingEditForm.resx b/Source/Core/Windows/ThingEditForm.resx
index 557ae86806d11dee4ec0a839e8bc41e393b6ba33..75b59abc0762138d6c144cbf35c11b72d8328a52 100644
--- a/Source/Core/Windows/ThingEditForm.resx
+++ b/Source/Core/Windows/ThingEditForm.resx
@@ -123,21 +123,12 @@
   <metadata name="groupBox1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="thingtype.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="thingtype.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="groupBox2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</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="label5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>False</value>
-  </metadata>
   <metadata name="taglabel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
@@ -150,9 +141,6 @@
   <metadata name="label7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="tabproperties.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="tabeffects.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
@@ -216,16 +204,4 @@
   <metadata name="fieldslist.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="tag.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="newtag.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="fieldslist.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
 </root>
\ No newline at end of file