diff --git a/Build/Configurations/Includes/ZDoom_misc.cfg b/Build/Configurations/Includes/ZDoom_misc.cfg index 0c2b0bd0..c68b0a17 100644 --- a/Build/Configurations/Includes/ZDoom_misc.cfg +++ b/Build/Configurations/Includes/ZDoom_misc.cfg @@ -351,6 +351,12 @@ universalfields type = 3; default = false; } + + lightfog + { + type = 3; + default = true; + } } thing diff --git a/Source/Core/Controls/FieldsEditorControl.cs b/Source/Core/Controls/FieldsEditorControl.cs index 9ff8c60f..59c4acd7 100644 --- a/Source/Core/Controls/FieldsEditorControl.cs +++ b/Source/Core/Controls/FieldsEditorControl.cs @@ -844,7 +844,6 @@ namespace CodeImp.DoomBuilder.Controls browsebutton.Image = frow.TypeHandler.BrowseImage; browsebutton.Location = new Point(cellrect.Right - browsebutton.Width, cellrect.Top); browsebutton.Height = cellrect.Height; - Console.WriteLine(cellrect.Height.ToString()); browsebutton.Visible = true; } else diff --git a/Source/Core/Windows/LinedefEditForm.Designer.cs b/Source/Core/Windows/LinedefEditForm.Designer.cs index b5e73f3a..f4b6824a 100644 --- a/Source/Core/Windows/LinedefEditForm.Designer.cs +++ b/Source/Core/Windows/LinedefEditForm.Designer.cs @@ -33,30 +33,34 @@ namespace CodeImp.DoomBuilder.Windows System.Windows.Forms.Label label3; System.Windows.Forms.Label label4; System.Windows.Forms.Label label5; - System.Windows.Forms.Label label6; - System.Windows.Forms.Label label7; System.Windows.Forms.Label label8; System.Windows.Forms.Label label9; System.Windows.Forms.Label label10; System.Windows.Forms.Label label11; System.Windows.Forms.Label label12; System.Windows.Forms.Label activationlabel; + System.Windows.Forms.Label lTexOffsetFrontMid; + System.Windows.Forms.Label lTexOffsetFrontBottom; + System.Windows.Forms.Label label1; + System.Windows.Forms.Label label6; + this.lTexOffsetBackUpper = new System.Windows.Forms.Label(); + this.lTexOffsetFrontUpper = new System.Windows.Forms.Label(); this.cancel = new System.Windows.Forms.Button(); this.apply = new System.Windows.Forms.Button(); this.actiongroup = new System.Windows.Forms.GroupBox(); this.argspanel = 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.cbArgStr = new System.Windows.Forms.CheckBox(); + this.arg0label = new System.Windows.Forms.Label(); this.hexenpanel = new System.Windows.Forms.Panel(); this.activation = new System.Windows.Forms.ComboBox(); this.action = new CodeImp.DoomBuilder.Controls.ActionSelectorControl(); @@ -75,6 +79,11 @@ namespace CodeImp.DoomBuilder.Windows this.splitter = new System.Windows.Forms.SplitContainer(); this.frontside = new System.Windows.Forms.CheckBox(); this.frontgroup = new System.Windows.Forms.GroupBox(); + this.pFrontUDMFOffsets = new System.Windows.Forms.Panel(); + this.frontOffsetMidY = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.frontOffsetLowY = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.frontOffsetLowX = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.frontOffsetMidX = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); this.frontoffsety = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); this.frontoffsetx = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); this.frontsector = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); @@ -84,6 +93,11 @@ namespace CodeImp.DoomBuilder.Windows this.fronthigh = new CodeImp.DoomBuilder.Controls.TextureSelectorControl(); this.backside = new System.Windows.Forms.CheckBox(); this.backgroup = new System.Windows.Forms.GroupBox(); + this.pBackUDMFOffsets = new System.Windows.Forms.Panel(); + this.backOffsetMidY = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.backOffsetLowY = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.backOffsetLowX = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.backOffsetMidX = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); this.backoffsety = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); this.backoffsetx = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); this.backsector = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); @@ -100,14 +114,16 @@ namespace CodeImp.DoomBuilder.Windows label3 = new System.Windows.Forms.Label(); label4 = new System.Windows.Forms.Label(); label5 = new System.Windows.Forms.Label(); - label6 = new System.Windows.Forms.Label(); - label7 = new System.Windows.Forms.Label(); label8 = new System.Windows.Forms.Label(); label9 = new System.Windows.Forms.Label(); label10 = new System.Windows.Forms.Label(); label11 = new System.Windows.Forms.Label(); label12 = new System.Windows.Forms.Label(); activationlabel = new System.Windows.Forms.Label(); + lTexOffsetFrontMid = new System.Windows.Forms.Label(); + lTexOffsetFrontBottom = new System.Windows.Forms.Label(); + label1 = new System.Windows.Forms.Label(); + label6 = new System.Windows.Forms.Label(); this.actiongroup.SuspendLayout(); this.argspanel.SuspendLayout(); this.hexenpanel.SuspendLayout(); @@ -121,7 +137,9 @@ namespace CodeImp.DoomBuilder.Windows this.splitter.Panel2.SuspendLayout(); this.splitter.SuspendLayout(); this.frontgroup.SuspendLayout(); + this.pFrontUDMFOffsets.SuspendLayout(); this.backgroup.SuspendLayout(); + this.pBackUDMFOffsets.SuspendLayout(); this.tabcustom.SuspendLayout(); this.SuspendLayout(); // @@ -139,7 +157,7 @@ namespace CodeImp.DoomBuilder.Windows taglabel.AutoSize = true; taglabel.Location = new System.Drawing.Point(28, 31); taglabel.Name = "taglabel"; - taglabel.Size = new System.Drawing.Size(28, 14); + taglabel.Size = new System.Drawing.Size(27, 14); taglabel.TabIndex = 6; taglabel.Text = "Tag:"; // @@ -170,24 +188,6 @@ namespace CodeImp.DoomBuilder.Windows label5.Text = "Lower"; label5.TextAlign = System.Drawing.ContentAlignment.TopCenter; // - // label6 - // - label6.AutoSize = true; - label6.Location = new System.Drawing.Point(16, 79); - label6.Name = "label6"; - label6.Size = new System.Drawing.Size(81, 14); - label6.TabIndex = 7; - label6.Text = "Texture Offset:"; - // - // label7 - // - label7.AutoSize = true; - label7.Location = new System.Drawing.Point(16, 79); - label7.Name = "label7"; - label7.Size = new System.Drawing.Size(81, 14); - label7.TabIndex = 7; - label7.Text = "Texture Offset:"; - // // label8 // label8.Location = new System.Drawing.Point(437, 18); @@ -242,6 +242,60 @@ namespace CodeImp.DoomBuilder.Windows activationlabel.TabIndex = 10; activationlabel.Text = "Trigger:"; // + // lTexOffsetFrontMid + // + lTexOffsetFrontMid.AutoSize = true; + lTexOffsetFrontMid.Location = new System.Drawing.Point(7, 5); + lTexOffsetFrontMid.Name = "lTexOffsetFrontMid"; + lTexOffsetFrontMid.Size = new System.Drawing.Size(74, 14); + lTexOffsetFrontMid.TabIndex = 17; + lTexOffsetFrontMid.Text = "Middle Offset:"; + // + // lTexOffsetFrontBottom + // + lTexOffsetFrontBottom.AutoSize = true; + lTexOffsetFrontBottom.Location = new System.Drawing.Point(4, 35); + lTexOffsetFrontBottom.Name = "lTexOffsetFrontBottom"; + lTexOffsetFrontBottom.Size = new System.Drawing.Size(77, 14); + lTexOffsetFrontBottom.TabIndex = 20; + lTexOffsetFrontBottom.Text = "Bottom Offset:"; + // + // label1 + // + label1.AutoSize = true; + label1.Location = new System.Drawing.Point(7, 5); + label1.Name = "label1"; + label1.Size = new System.Drawing.Size(74, 14); + label1.TabIndex = 17; + label1.Text = "Middle Offset:"; + // + // label6 + // + label6.AutoSize = true; + label6.Location = new System.Drawing.Point(4, 35); + label6.Name = "label6"; + label6.Size = new System.Drawing.Size(77, 14); + label6.TabIndex = 20; + label6.Text = "Bottom Offset:"; + // + // lTexOffsetBackUpper + // + this.lTexOffsetBackUpper.AutoSize = true; + this.lTexOffsetBackUpper.Location = new System.Drawing.Point(16, 70); + this.lTexOffsetBackUpper.Name = "lTexOffsetBackUpper"; + this.lTexOffsetBackUpper.Size = new System.Drawing.Size(80, 14); + this.lTexOffsetBackUpper.TabIndex = 7; + this.lTexOffsetBackUpper.Text = "Texture Offset:"; + // + // lTexOffsetFrontUpper + // + this.lTexOffsetFrontUpper.AutoSize = true; + this.lTexOffsetFrontUpper.Location = new System.Drawing.Point(16, 70); + this.lTexOffsetFrontUpper.Name = "lTexOffsetFrontUpper"; + this.lTexOffsetFrontUpper.Size = new System.Drawing.Size(80, 14); + this.lTexOffsetFrontUpper.TabIndex = 7; + this.lTexOffsetFrontUpper.Text = "Texture Offset:"; + // // cancel // this.cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); @@ -311,16 +365,6 @@ namespace CodeImp.DoomBuilder.Windows this.arg0str.TabIndex = 38; this.arg0str.Leave += new System.EventHandler(this.arg0str_Leave); // - // cbArgStr - // - this.cbArgStr.Location = new System.Drawing.Point(8, -4); - this.cbArgStr.Name = "cbArgStr"; - this.cbArgStr.Size = new System.Drawing.Size(63, 40); - this.cbArgStr.TabIndex = 37; - 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))); @@ -371,16 +415,6 @@ namespace CodeImp.DoomBuilder.Windows this.arg1label.TextAlign = System.Drawing.ContentAlignment.TopRight; this.arg1label.UseMnemonic = false; // - // arg0label - // - this.arg0label.Location = new System.Drawing.Point(-28, 8); - this.arg0label.Name = "arg0label"; - this.arg0label.Size = new System.Drawing.Size(179, 14); - this.arg0label.TabIndex = 32; - this.arg0label.Text = "Argument 1:"; - this.arg0label.TextAlign = System.Drawing.ContentAlignment.TopRight; - this.arg0label.UseMnemonic = false; - // // arg3label // this.arg3label.Location = new System.Drawing.Point(213, 8); @@ -411,6 +445,26 @@ namespace CodeImp.DoomBuilder.Windows this.arg4label.TextAlign = System.Drawing.ContentAlignment.TopRight; this.arg4label.UseMnemonic = false; // + // cbArgStr + // + this.cbArgStr.Location = new System.Drawing.Point(8, -4); + this.cbArgStr.Name = "cbArgStr"; + this.cbArgStr.Size = new System.Drawing.Size(63, 40); + this.cbArgStr.TabIndex = 37; + this.cbArgStr.Text = "Named script"; + this.cbArgStr.UseVisualStyleBackColor = true; + this.cbArgStr.CheckedChanged += new System.EventHandler(this.cbArgStr_CheckedChanged); + // + // arg0label + // + this.arg0label.Location = new System.Drawing.Point(-28, 8); + this.arg0label.Name = "arg0label"; + this.arg0label.Size = new System.Drawing.Size(179, 14); + this.arg0label.TabIndex = 32; + this.arg0label.Text = "Argument 1:"; + this.arg0label.TextAlign = System.Drawing.ContentAlignment.TopRight; + this.arg0label.UseMnemonic = false; + // // hexenpanel // this.hexenpanel.Controls.Add(this.activation); @@ -494,7 +548,7 @@ namespace CodeImp.DoomBuilder.Windows this.settingsgroup.Controls.Add(this.flags); this.settingsgroup.Location = new System.Drawing.Point(8, 3); this.settingsgroup.Name = "settingsgroup"; - this.settingsgroup.Size = new System.Drawing.Size(533, 172); + this.settingsgroup.Size = new System.Drawing.Size(533, 174); this.settingsgroup.TabIndex = 0; this.settingsgroup.TabStop = false; this.settingsgroup.Text = " Settings "; @@ -508,7 +562,7 @@ namespace CodeImp.DoomBuilder.Windows this.flags.Columns = 3; this.flags.Location = new System.Drawing.Point(18, 19); this.flags.Name = "flags"; - this.flags.Size = new System.Drawing.Size(509, 147); + this.flags.Size = new System.Drawing.Size(509, 149); this.flags.TabIndex = 0; // // checkBox1 @@ -626,6 +680,7 @@ namespace CodeImp.DoomBuilder.Windows this.frontgroup.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.frontgroup.Controls.Add(this.pFrontUDMFOffsets); this.frontgroup.Controls.Add(this.frontoffsety); this.frontgroup.Controls.Add(this.frontoffsetx); this.frontgroup.Controls.Add(this.frontsector); @@ -634,7 +689,7 @@ namespace CodeImp.DoomBuilder.Windows this.frontgroup.Controls.Add(this.frontlow); this.frontgroup.Controls.Add(this.frontmid); this.frontgroup.Controls.Add(this.fronthigh); - this.frontgroup.Controls.Add(label6); + this.frontgroup.Controls.Add(this.lTexOffsetFrontUpper); this.frontgroup.Controls.Add(label5); this.frontgroup.Controls.Add(label4); this.frontgroup.Controls.Add(label3); @@ -646,13 +701,75 @@ namespace CodeImp.DoomBuilder.Windows this.frontgroup.TabStop = false; this.frontgroup.Text = " "; // + // pFrontUDMFOffsets + // + this.pFrontUDMFOffsets.Controls.Add(this.frontOffsetMidY); + this.pFrontUDMFOffsets.Controls.Add(this.frontOffsetLowY); + this.pFrontUDMFOffsets.Controls.Add(lTexOffsetFrontMid); + this.pFrontUDMFOffsets.Controls.Add(this.frontOffsetLowX); + this.pFrontUDMFOffsets.Controls.Add(this.frontOffsetMidX); + this.pFrontUDMFOffsets.Controls.Add(lTexOffsetFrontBottom); + this.pFrontUDMFOffsets.Location = new System.Drawing.Point(15, 95); + this.pFrontUDMFOffsets.Margin = new System.Windows.Forms.Padding(0); + this.pFrontUDMFOffsets.Name = "pFrontUDMFOffsets"; + this.pFrontUDMFOffsets.Size = new System.Drawing.Size(222, 58); + this.pFrontUDMFOffsets.TabIndex = 23; + // + // frontOffsetMidY + // + this.frontOffsetMidY.AllowDecimal = false; + this.frontOffsetMidY.AllowNegative = true; + this.frontOffsetMidY.AllowRelative = true; + this.frontOffsetMidY.ButtonStep = 1; + this.frontOffsetMidY.Location = new System.Drawing.Point(156, 0); + this.frontOffsetMidY.Name = "frontOffsetMidY"; + this.frontOffsetMidY.Size = new System.Drawing.Size(62, 24); + this.frontOffsetMidY.StepValues = null; + this.frontOffsetMidY.TabIndex = 19; + // + // frontOffsetLowY + // + this.frontOffsetLowY.AllowDecimal = false; + this.frontOffsetLowY.AllowNegative = true; + this.frontOffsetLowY.AllowRelative = true; + this.frontOffsetLowY.ButtonStep = 1; + this.frontOffsetLowY.Location = new System.Drawing.Point(156, 30); + this.frontOffsetLowY.Name = "frontOffsetLowY"; + this.frontOffsetLowY.Size = new System.Drawing.Size(62, 24); + this.frontOffsetLowY.StepValues = null; + this.frontOffsetLowY.TabIndex = 22; + // + // frontOffsetLowX + // + this.frontOffsetLowX.AllowDecimal = false; + this.frontOffsetLowX.AllowNegative = true; + this.frontOffsetLowX.AllowRelative = true; + this.frontOffsetLowX.ButtonStep = 1; + this.frontOffsetLowX.Location = new System.Drawing.Point(88, 30); + this.frontOffsetLowX.Name = "frontOffsetLowX"; + this.frontOffsetLowX.Size = new System.Drawing.Size(62, 24); + this.frontOffsetLowX.StepValues = null; + this.frontOffsetLowX.TabIndex = 21; + // + // frontOffsetMidX + // + this.frontOffsetMidX.AllowDecimal = false; + this.frontOffsetMidX.AllowNegative = true; + this.frontOffsetMidX.AllowRelative = true; + this.frontOffsetMidX.ButtonStep = 1; + this.frontOffsetMidX.Location = new System.Drawing.Point(88, 0); + this.frontOffsetMidX.Name = "frontOffsetMidX"; + this.frontOffsetMidX.Size = new System.Drawing.Size(62, 24); + this.frontOffsetMidX.StepValues = null; + this.frontOffsetMidX.TabIndex = 18; + // // frontoffsety // this.frontoffsety.AllowDecimal = false; this.frontoffsety.AllowNegative = true; this.frontoffsety.AllowRelative = true; this.frontoffsety.ButtonStep = 1; - this.frontoffsety.Location = new System.Drawing.Point(171, 74); + this.frontoffsety.Location = new System.Drawing.Point(171, 65); this.frontoffsety.Name = "frontoffsety"; this.frontoffsety.Size = new System.Drawing.Size(62, 24); this.frontoffsety.StepValues = null; @@ -664,7 +781,7 @@ namespace CodeImp.DoomBuilder.Windows this.frontoffsetx.AllowNegative = true; this.frontoffsetx.AllowRelative = true; this.frontoffsetx.ButtonStep = 1; - this.frontoffsetx.Location = new System.Drawing.Point(103, 74); + this.frontoffsetx.Location = new System.Drawing.Point(103, 65); this.frontoffsetx.Name = "frontoffsetx"; this.frontoffsetx.Size = new System.Drawing.Size(62, 24); this.frontoffsetx.StepValues = null; @@ -684,9 +801,9 @@ namespace CodeImp.DoomBuilder.Windows // // customfrontbutton // - this.customfrontbutton.Location = new System.Drawing.Point(103, 124); + this.customfrontbutton.Location = new System.Drawing.Point(103, 156); this.customfrontbutton.Name = "customfrontbutton"; - this.customfrontbutton.Size = new System.Drawing.Size(115, 25); + this.customfrontbutton.Size = new System.Drawing.Size(130, 25); this.customfrontbutton.TabIndex = 3; this.customfrontbutton.Text = "Custom fields..."; this.customfrontbutton.UseVisualStyleBackColor = true; @@ -736,6 +853,7 @@ namespace CodeImp.DoomBuilder.Windows this.backgroup.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.backgroup.Controls.Add(this.pBackUDMFOffsets); this.backgroup.Controls.Add(this.backoffsety); this.backgroup.Controls.Add(this.backoffsetx); this.backgroup.Controls.Add(this.backsector); @@ -744,7 +862,7 @@ namespace CodeImp.DoomBuilder.Windows this.backgroup.Controls.Add(this.backlow); this.backgroup.Controls.Add(this.backmid); this.backgroup.Controls.Add(this.backhigh); - this.backgroup.Controls.Add(label7); + this.backgroup.Controls.Add(this.lTexOffsetBackUpper); this.backgroup.Controls.Add(label8); this.backgroup.Controls.Add(label9); this.backgroup.Controls.Add(label10); @@ -756,13 +874,75 @@ namespace CodeImp.DoomBuilder.Windows this.backgroup.TabStop = false; this.backgroup.Text = " "; // + // pBackUDMFOffsets + // + this.pBackUDMFOffsets.Controls.Add(this.backOffsetMidY); + this.pBackUDMFOffsets.Controls.Add(this.backOffsetLowY); + this.pBackUDMFOffsets.Controls.Add(label1); + this.pBackUDMFOffsets.Controls.Add(this.backOffsetLowX); + this.pBackUDMFOffsets.Controls.Add(this.backOffsetMidX); + this.pBackUDMFOffsets.Controls.Add(label6); + this.pBackUDMFOffsets.Location = new System.Drawing.Point(15, 95); + this.pBackUDMFOffsets.Margin = new System.Windows.Forms.Padding(0); + this.pBackUDMFOffsets.Name = "pBackUDMFOffsets"; + this.pBackUDMFOffsets.Size = new System.Drawing.Size(222, 58); + this.pBackUDMFOffsets.TabIndex = 24; + // + // backOffsetMidY + // + this.backOffsetMidY.AllowDecimal = false; + this.backOffsetMidY.AllowNegative = true; + this.backOffsetMidY.AllowRelative = true; + this.backOffsetMidY.ButtonStep = 1; + this.backOffsetMidY.Location = new System.Drawing.Point(156, 0); + this.backOffsetMidY.Name = "backOffsetMidY"; + this.backOffsetMidY.Size = new System.Drawing.Size(62, 24); + this.backOffsetMidY.StepValues = null; + this.backOffsetMidY.TabIndex = 19; + // + // backOffsetLowY + // + this.backOffsetLowY.AllowDecimal = false; + this.backOffsetLowY.AllowNegative = true; + this.backOffsetLowY.AllowRelative = true; + this.backOffsetLowY.ButtonStep = 1; + this.backOffsetLowY.Location = new System.Drawing.Point(156, 30); + this.backOffsetLowY.Name = "backOffsetLowY"; + this.backOffsetLowY.Size = new System.Drawing.Size(62, 24); + this.backOffsetLowY.StepValues = null; + this.backOffsetLowY.TabIndex = 22; + // + // backOffsetLowX + // + this.backOffsetLowX.AllowDecimal = false; + this.backOffsetLowX.AllowNegative = true; + this.backOffsetLowX.AllowRelative = true; + this.backOffsetLowX.ButtonStep = 1; + this.backOffsetLowX.Location = new System.Drawing.Point(88, 30); + this.backOffsetLowX.Name = "backOffsetLowX"; + this.backOffsetLowX.Size = new System.Drawing.Size(62, 24); + this.backOffsetLowX.StepValues = null; + this.backOffsetLowX.TabIndex = 21; + // + // backOffsetMidX + // + this.backOffsetMidX.AllowDecimal = false; + this.backOffsetMidX.AllowNegative = true; + this.backOffsetMidX.AllowRelative = true; + this.backOffsetMidX.ButtonStep = 1; + this.backOffsetMidX.Location = new System.Drawing.Point(88, 0); + this.backOffsetMidX.Name = "backOffsetMidX"; + this.backOffsetMidX.Size = new System.Drawing.Size(62, 24); + this.backOffsetMidX.StepValues = null; + this.backOffsetMidX.TabIndex = 18; + // // backoffsety // this.backoffsety.AllowDecimal = false; this.backoffsety.AllowNegative = true; this.backoffsety.AllowRelative = true; this.backoffsety.ButtonStep = 1; - this.backoffsety.Location = new System.Drawing.Point(171, 74); + this.backoffsety.Location = new System.Drawing.Point(171, 65); this.backoffsety.Name = "backoffsety"; this.backoffsety.Size = new System.Drawing.Size(62, 24); this.backoffsety.StepValues = null; @@ -774,7 +954,7 @@ namespace CodeImp.DoomBuilder.Windows this.backoffsetx.AllowNegative = true; this.backoffsetx.AllowRelative = true; this.backoffsetx.ButtonStep = 1; - this.backoffsetx.Location = new System.Drawing.Point(103, 74); + this.backoffsetx.Location = new System.Drawing.Point(103, 65); this.backoffsetx.Name = "backoffsetx"; this.backoffsetx.Size = new System.Drawing.Size(62, 24); this.backoffsetx.StepValues = null; @@ -794,9 +974,9 @@ namespace CodeImp.DoomBuilder.Windows // // custombackbutton // - this.custombackbutton.Location = new System.Drawing.Point(103, 124); + this.custombackbutton.Location = new System.Drawing.Point(103, 156); this.custombackbutton.Name = "custombackbutton"; - this.custombackbutton.Size = new System.Drawing.Size(115, 25); + this.custombackbutton.Size = new System.Drawing.Size(130, 25); this.custombackbutton.TabIndex = 3; this.custombackbutton.Text = "Custom fields..."; this.custombackbutton.UseVisualStyleBackColor = true; @@ -923,8 +1103,12 @@ namespace CodeImp.DoomBuilder.Windows this.splitter.ResumeLayout(false); this.frontgroup.ResumeLayout(false); this.frontgroup.PerformLayout(); + this.pFrontUDMFOffsets.ResumeLayout(false); + this.pFrontUDMFOffsets.PerformLayout(); this.backgroup.ResumeLayout(false); this.backgroup.PerformLayout(); + this.pBackUDMFOffsets.ResumeLayout(false); + this.pBackUDMFOffsets.PerformLayout(); this.tabcustom.ResumeLayout(false); this.ResumeLayout(false); @@ -986,5 +1170,17 @@ namespace CodeImp.DoomBuilder.Windows private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox backsector; private System.Windows.Forms.CheckBox cbArgStr; private System.Windows.Forms.ComboBox arg0str; + private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox frontOffsetLowY; + private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox frontOffsetLowX; + private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox frontOffsetMidY; + private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox frontOffsetMidX; + private System.Windows.Forms.Label lTexOffsetFrontUpper; + private System.Windows.Forms.Panel pFrontUDMFOffsets; + private System.Windows.Forms.Panel pBackUDMFOffsets; + private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox backOffsetMidY; + private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox backOffsetLowY; + private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox backOffsetLowX; + private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox backOffsetMidX; + private System.Windows.Forms.Label lTexOffsetBackUpper; } } \ No newline at end of file diff --git a/Source/Core/Windows/LinedefEditForm.cs b/Source/Core/Windows/LinedefEditForm.cs index 1acfd0ad..68134cd5 100644 --- a/Source/Core/Windows/LinedefEditForm.cs +++ b/Source/Core/Windows/LinedefEditForm.cs @@ -31,6 +31,7 @@ using CodeImp.DoomBuilder.Editing; using CodeImp.DoomBuilder.Controls; //mxd using CodeImp.DoomBuilder.GZBuilder.Data; +using CodeImp.DoomBuilder.Types; #endregion @@ -116,6 +117,19 @@ namespace CodeImp.DoomBuilder.Windows { idgroup.Visible = false; } + + //mxd. Setup texture offset controls + if (General.Map.UDMF) { + lTexOffsetFrontUpper.Text = "Upper Offset:"; + lTexOffsetBackUpper.Text = "Upper Offset:"; + } else { + pFrontUDMFOffsets.Visible = false; + pBackUDMFOffsets.Visible = false; + customfrontbutton.Top = 126; + custombackbutton.Top = 126; + lTexOffsetFrontUpper.Text = "Texture Offset:"; + lTexOffsetBackUpper.Text = "Texture Offset:"; + } } // This sets up the form to edit the given lines @@ -181,8 +195,19 @@ namespace CodeImp.DoomBuilder.Windows frontmid.Required = fl.Front.MiddleRequired(); frontlow.Required = fl.Front.LowRequired(); frontsector.Text = fl.Front.Sector.Index.ToString(); - frontoffsetx.Text = fl.Front.OffsetX.ToString(); - frontoffsety.Text = fl.Front.OffsetY.ToString(); + + //mxd + if (General.Map.UDMF) { + frontoffsetx.Text = getUDMFTextureOffset(fl.Front.Fields, "offsetx_top").ToString(); + frontoffsety.Text = getUDMFTextureOffset(fl.Front.Fields, "offsety_top").ToString(); + frontOffsetMidX.Text = getUDMFTextureOffset(fl.Front.Fields, "offsetx_mid").ToString(); + frontOffsetMidY.Text = getUDMFTextureOffset(fl.Front.Fields, "offsety_mid").ToString(); + frontOffsetLowX.Text = getUDMFTextureOffset(fl.Front.Fields, "offsetx_bottom").ToString(); + frontOffsetLowY.Text = getUDMFTextureOffset(fl.Front.Fields, "offsety_bottom").ToString(); + } else { + frontoffsetx.Text = fl.Front.OffsetX.ToString(); + frontoffsety.Text = fl.Front.OffsetY.ToString(); + } } // Back settings @@ -195,8 +220,19 @@ namespace CodeImp.DoomBuilder.Windows backmid.Required = fl.Back.MiddleRequired(); backlow.Required = fl.Back.LowRequired(); backsector.Text = fl.Back.Sector.Index.ToString(); - backoffsetx.Text = fl.Back.OffsetX.ToString(); - backoffsety.Text = fl.Back.OffsetY.ToString(); + + //mxd + if (General.Map.UDMF) { + backoffsetx.Text = getUDMFTextureOffset(fl.Back.Fields, "offsetx_top").ToString(); + backoffsety.Text = getUDMFTextureOffset(fl.Back.Fields, "offsety_top").ToString(); + backOffsetMidX.Text = getUDMFTextureOffset(fl.Back.Fields, "offsetx_mid").ToString(); + backOffsetMidY.Text = getUDMFTextureOffset(fl.Back.Fields, "offsety_mid").ToString(); + backOffsetLowX.Text = getUDMFTextureOffset(fl.Back.Fields, "offsetx_bottom").ToString(); + backOffsetLowY.Text = getUDMFTextureOffset(fl.Back.Fields, "offsety_bottom").ToString(); + } else { + backoffsetx.Text = fl.Back.OffsetX.ToString(); + backoffsety.Text = fl.Back.OffsetY.ToString(); + } } //////////////////////////////////////////////////////////////////////// @@ -277,8 +313,18 @@ namespace CodeImp.DoomBuilder.Windows if(frontmid.Required != l.Front.MiddleRequired()) frontmid.Required = false; if(frontlow.Required != l.Front.LowRequired()) frontlow.Required = false; if(frontsector.Text != l.Front.Sector.Index.ToString()) frontsector.Text = ""; - if(frontoffsetx.Text != l.Front.OffsetX.ToString()) frontoffsetx.Text = ""; - if(frontoffsety.Text != l.Front.OffsetY.ToString()) frontoffsety.Text = ""; + + if (General.Map.UDMF) { + if (frontoffsetx.Text != getUDMFTextureOffset(l.Front.Fields, "offsetx_top").ToString()) frontoffsetx.Text = ""; + if (frontoffsety.Text != getUDMFTextureOffset(l.Front.Fields, "offsety_top").ToString()) frontoffsety.Text = ""; + if (frontOffsetMidX.Text != getUDMFTextureOffset(l.Front.Fields, "offsetx_mid").ToString()) frontOffsetMidX.Text = ""; + if (frontOffsetMidY.Text != getUDMFTextureOffset(l.Front.Fields, "offsety_mid").ToString()) frontOffsetMidY.Text = ""; + if (frontOffsetLowX.Text != getUDMFTextureOffset(l.Front.Fields, "offsetx_bottom ").ToString()) frontOffsetLowX.Text = ""; + if (frontOffsetLowY.Text != getUDMFTextureOffset(l.Front.Fields, "offsety_bottom ").ToString()) frontOffsetLowY.Text = ""; + } else { + if (frontoffsetx.Text != l.Front.OffsetX.ToString()) frontoffsetx.Text = ""; + if (frontoffsety.Text != l.Front.OffsetY.ToString()) frontoffsety.Text = ""; + } } // Back settings @@ -291,8 +337,20 @@ namespace CodeImp.DoomBuilder.Windows if(backmid.Required != l.Back.MiddleRequired()) backmid.Required = false; if(backlow.Required != l.Back.LowRequired()) backlow.Required = false; if(backsector.Text != l.Back.Sector.Index.ToString()) backsector.Text = ""; - if(backoffsetx.Text != l.Back.OffsetX.ToString()) backoffsetx.Text = ""; - if(backoffsety.Text != l.Back.OffsetY.ToString()) backoffsety.Text = ""; + + //mxd + if (General.Map.UDMF) { + if (backoffsetx.Text != getUDMFTextureOffset(l.Back.Fields, "offsetx_top").ToString()) backoffsetx.Text = ""; + if (backoffsety.Text != getUDMFTextureOffset(l.Back.Fields, "offsety_top").ToString()) backoffsety.Text = ""; + if (backOffsetMidX.Text != getUDMFTextureOffset(l.Back.Fields, "offsetx_mid").ToString()) backOffsetMidX.Text = ""; + if (backOffsetMidY.Text != getUDMFTextureOffset(l.Back.Fields, "offsety_mid").ToString()) backOffsetMidY.Text = ""; + if (backOffsetLowX.Text != getUDMFTextureOffset(l.Back.Fields, "offsetx_bottom ").ToString()) backOffsetLowX.Text = ""; + if (backOffsetLowY.Text != getUDMFTextureOffset(l.Back.Fields, "offsety_bottom ").ToString()) backOffsetLowY.Text = ""; + } else { + if (backoffsetx.Text != l.Back.OffsetX.ToString()) backoffsetx.Text = ""; + if (backoffsety.Text != l.Back.OffsetY.ToString()) backoffsety.Text = ""; + } + if(General.Map.FormatInterface.HasCustomFields) custombackbutton.Visible = true; } @@ -355,6 +413,25 @@ namespace CodeImp.DoomBuilder.Windows arg0str.Text = selectedValue; } } + + //mxd + private float getUDMFTextureOffset(UniFields fields, string key) { + if (fields != null && fields.ContainsKey(key)) + return (float)fields[key].Value; + return 0; + } + + //mxd + private void setUDMFTextureOffset(UniFields fields, string key, float value) { + if (fields == null) return; + + fields.BeforeFieldsChange(); + + if (!fields.ContainsKey(key)) + fields.Add(key, new UniValue(UniversalType.Float, value)); + else + fields[key].Value = value; + } // Front side (un)checked private void frontside_CheckStateChanged(object sender, EventArgs e) @@ -399,21 +476,11 @@ namespace CodeImp.DoomBuilder.Windows return; } - // Verify texture offsets - if((backoffsetx.GetResult(0) < General.Map.FormatInterface.MinTextureOffset) || (backoffsetx.GetResult(0) > General.Map.FormatInterface.MaxTextureOffset) || - (backoffsety.GetResult(0) < General.Map.FormatInterface.MinTextureOffset) || (backoffsety.GetResult(0) > General.Map.FormatInterface.MaxTextureOffset) || - (frontoffsetx.GetResult(0) < General.Map.FormatInterface.MinTextureOffset) || (frontoffsetx.GetResult(0) > General.Map.FormatInterface.MaxTextureOffset) || - (frontoffsety.GetResult(0) < General.Map.FormatInterface.MinTextureOffset) || (frontoffsety.GetResult(0) > General.Map.FormatInterface.MaxTextureOffset)) - { - General.ShowWarningMessage("Texture offset must be between " + General.Map.FormatInterface.MinTextureOffset + " and " + General.Map.FormatInterface.MaxTextureOffset + ".", MessageBoxButtons.OK); - return; - } - // Make undo if(lines.Count > 1) undodesc = lines.Count + " linedefs"; General.Map.UndoRedo.CreateUndo("Edit " + undodesc); - //nxd + //mxd bool hasAcs = Array.IndexOf(GZBuilder.GZGeneral.ACS_SPECIALS, action.Value) != -1; bool hasArg0str = General.Map.UDMF && !action.Empty && hasAcs && arg0str.Text.Length > 0; @@ -482,8 +549,24 @@ namespace CodeImp.DoomBuilder.Windows if(l.Front.Sector != s) l.Front.SetSector(s); // Apply settings - l.Front.OffsetX = General.Clamp(frontoffsetx.GetResult(l.Front.OffsetX), General.Map.FormatInterface.MinTextureOffset, General.Map.FormatInterface.MaxTextureOffset); - l.Front.OffsetY = General.Clamp(frontoffsety.GetResult(l.Front.OffsetY), General.Map.FormatInterface.MinTextureOffset, General.Map.FormatInterface.MaxTextureOffset); + //mxd + int min = General.Map.FormatInterface.MinTextureOffset; + int max = General.Map.FormatInterface.MaxTextureOffset; + if (General.Map.UDMF) { + if (frontoffsetx.Text != "") setUDMFTextureOffset(l.Front.Fields, "offsetx_top", General.Clamp(frontoffsetx.GetResult((int)getUDMFTextureOffset(l.Front.Fields, "offsetx_top")), min, max)); + if (frontoffsety.Text != "") setUDMFTextureOffset(l.Front.Fields, "offsety_top", General.Clamp(frontoffsety.GetResult((int)getUDMFTextureOffset(l.Front.Fields, "offsety_top")), min, max)); + + if (frontOffsetMidX.Text != "") setUDMFTextureOffset(l.Front.Fields, "offsetx_mid", General.Clamp(frontOffsetMidX.GetResult((int)getUDMFTextureOffset(l.Front.Fields, "offsetx_mid")), min, max)); + if (frontOffsetMidY.Text != "") setUDMFTextureOffset(l.Front.Fields, "offsety_mid", General.Clamp(frontOffsetMidY.GetResult((int)getUDMFTextureOffset(l.Front.Fields, "offsety_mid")), min, max)); + + if (frontOffsetLowX.Text != "") setUDMFTextureOffset(l.Front.Fields, "offsetx_bottom", General.Clamp(frontOffsetLowX.GetResult((int)getUDMFTextureOffset(l.Front.Fields, "offsetx_bottom")), min, max)); + if (frontOffsetLowY.Text != "") setUDMFTextureOffset(l.Front.Fields, "offsety_bottom", General.Clamp(frontOffsetLowY.GetResult((int)getUDMFTextureOffset(l.Front.Fields, "offsety_bottom")), min, max)); + + } else { + l.Front.OffsetX = General.Clamp(frontoffsetx.GetResult(l.Front.OffsetX), General.Map.FormatInterface.MinTextureOffset, General.Map.FormatInterface.MaxTextureOffset); + l.Front.OffsetY = General.Clamp(frontoffsety.GetResult(l.Front.OffsetY), General.Map.FormatInterface.MinTextureOffset, General.Map.FormatInterface.MaxTextureOffset); + } + l.Front.SetTextureHigh(fronthigh.GetResult(l.Front.HighTexture)); l.Front.SetTextureMid(frontmid.GetResult(l.Front.MiddleTexture)); l.Front.SetTextureLow(frontlow.GetResult(l.Front.LowTexture)); @@ -517,8 +600,24 @@ namespace CodeImp.DoomBuilder.Windows if(l.Back.Sector != s) l.Back.SetSector(s); // Apply settings - l.Back.OffsetX = General.Clamp(backoffsetx.GetResult(l.Back.OffsetX), General.Map.FormatInterface.MinTextureOffset, General.Map.FormatInterface.MaxTextureOffset); - l.Back.OffsetY = General.Clamp(backoffsety.GetResult(l.Back.OffsetY), General.Map.FormatInterface.MinTextureOffset, General.Map.FormatInterface.MaxTextureOffset); + //mxd + int min = General.Map.FormatInterface.MinTextureOffset; + int max = General.Map.FormatInterface.MaxTextureOffset; + if (General.Map.UDMF) { + if (backoffsetx.Text != "") setUDMFTextureOffset(l.Back.Fields, "offsetx_top", General.Clamp(backoffsetx.GetResult((int)getUDMFTextureOffset(l.Back.Fields, "offsetx_top")), min, max)); + if (backoffsety.Text != "") setUDMFTextureOffset(l.Back.Fields, "offsety_top", General.Clamp(backoffsety.GetResult((int)getUDMFTextureOffset(l.Back.Fields, "offsety_top")), min, max)); + + if (backOffsetMidX.Text != "") setUDMFTextureOffset(l.Back.Fields, "offsetx_mid", General.Clamp(backOffsetMidX.GetResult((int)getUDMFTextureOffset(l.Back.Fields, "offsetx_mid")), min, max)); + if (backOffsetMidY.Text != "") setUDMFTextureOffset(l.Back.Fields, "offsety_mid", General.Clamp(backOffsetMidY.GetResult((int)getUDMFTextureOffset(l.Back.Fields, "offsety_mid")), min, max)); + + if (backOffsetLowX.Text != "") setUDMFTextureOffset(l.Back.Fields, "offsetx_bottom", General.Clamp(backOffsetLowX.GetResult((int)getUDMFTextureOffset(l.Back.Fields, "offsetx_bottom")), min, max)); + if (backOffsetLowY.Text != "") setUDMFTextureOffset(l.Back.Fields, "offsety_bottom", General.Clamp(backOffsetLowY.GetResult((int)getUDMFTextureOffset(l.Back.Fields, "offsety_bottom")), min, max)); + + } else { + l.Back.OffsetX = General.Clamp(backoffsetx.GetResult(l.Back.OffsetX), General.Map.FormatInterface.MinTextureOffset, General.Map.FormatInterface.MaxTextureOffset); + l.Back.OffsetY = General.Clamp(backoffsety.GetResult(l.Back.OffsetY), General.Map.FormatInterface.MinTextureOffset, General.Map.FormatInterface.MaxTextureOffset); + } + l.Back.SetTextureHigh(backhigh.GetResult(l.Back.HighTexture)); l.Back.SetTextureMid(backmid.GetResult(l.Back.MiddleTexture)); l.Back.SetTextureLow(backlow.GetResult(l.Back.LowTexture)); @@ -604,11 +703,6 @@ namespace CodeImp.DoomBuilder.Windows arg2.SetDefaultValue(); arg3.SetDefaultValue(); arg4.SetDefaultValue(); - /*arg0.SetValue(0); - arg1.SetValue(0); - arg2.SetValue(0); - arg3.SetValue(0); - arg4.SetValue(0);*/ } //mxd. update arg0str diff --git a/Source/Core/Windows/LinedefEditForm.resx b/Source/Core/Windows/LinedefEditForm.resx index 3f7723c1..7e16657b 100644 --- a/Source/Core/Windows/LinedefEditForm.resx +++ b/Source/Core/Windows/LinedefEditForm.resx @@ -147,18 +147,6 @@ False - - True - - - False - - - True - - - False - True @@ -195,6 +183,18 @@ False + + False + + + False + + + False + + + False + True @@ -246,18 +246,9 @@ True - - True - - - True - True - - True - True @@ -273,18 +264,9 @@ True - - True - - - True - True - - True - True diff --git a/Source/Core/Windows/SectorEditForm.Designer.cs b/Source/Core/Windows/SectorEditForm.Designer.cs index e235fe6f..d2a72f66 100644 --- a/Source/Core/Windows/SectorEditForm.Designer.cs +++ b/Source/Core/Windows/SectorEditForm.Designer.cs @@ -28,440 +28,541 @@ namespace CodeImp.DoomBuilder.Windows /// private void InitializeComponent() { - System.Windows.Forms.Label label1; - System.Windows.Forms.Label label3; - System.Windows.Forms.GroupBox groupaction; - System.Windows.Forms.Label taglabel; - System.Windows.Forms.GroupBox groupeffect; - System.Windows.Forms.Label label9; - System.Windows.Forms.Label label8; - System.Windows.Forms.GroupBox groupfloorceiling; - System.Windows.Forms.Label label5; - System.Windows.Forms.Label label2; - System.Windows.Forms.Label label4; - System.Windows.Forms.Label label6; - this.tag = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); - this.newtag = new System.Windows.Forms.Button(); - this.brightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); - this.browseeffect = new System.Windows.Forms.Button(); - this.effect = new CodeImp.DoomBuilder.Controls.ActionSelectorControl(); - this.floorheight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); - this.ceilingheight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); - this.sectorheight = new System.Windows.Forms.Label(); - this.sectorheightlabel = new System.Windows.Forms.Label(); - this.floortex = new CodeImp.DoomBuilder.Controls.FlatSelectorControl(); - this.ceilingtex = new CodeImp.DoomBuilder.Controls.FlatSelectorControl(); - this.cancel = new System.Windows.Forms.Button(); - this.apply = new System.Windows.Forms.Button(); - this.tabs = new System.Windows.Forms.TabControl(); - this.tabproperties = new System.Windows.Forms.TabPage(); - this.tabcustom = new System.Windows.Forms.TabPage(); - this.fieldslist = new CodeImp.DoomBuilder.Controls.FieldsEditorControl(); - this.flatSelectorControl2 = new CodeImp.DoomBuilder.Controls.FlatSelectorControl(); - this.flatSelectorControl1 = new CodeImp.DoomBuilder.Controls.FlatSelectorControl(); - label1 = new System.Windows.Forms.Label(); - label3 = new System.Windows.Forms.Label(); - groupaction = new System.Windows.Forms.GroupBox(); - taglabel = new System.Windows.Forms.Label(); - groupeffect = new System.Windows.Forms.GroupBox(); - label9 = new System.Windows.Forms.Label(); - label8 = new System.Windows.Forms.Label(); - groupfloorceiling = new System.Windows.Forms.GroupBox(); - label5 = new System.Windows.Forms.Label(); - label2 = new System.Windows.Forms.Label(); - label4 = new System.Windows.Forms.Label(); - label6 = new System.Windows.Forms.Label(); - groupaction.SuspendLayout(); - groupeffect.SuspendLayout(); - groupfloorceiling.SuspendLayout(); - this.tabs.SuspendLayout(); - this.tabproperties.SuspendLayout(); - this.tabcustom.SuspendLayout(); - this.SuspendLayout(); - // - // label1 - // - label1.Location = new System.Drawing.Point(271, 18); - label1.Name = "label1"; - label1.Size = new System.Drawing.Size(83, 16); - label1.TabIndex = 15; - label1.Text = "Floor"; - label1.TextAlign = System.Drawing.ContentAlignment.TopCenter; - // - // label3 - // - label3.Location = new System.Drawing.Point(363, 18); - label3.Name = "label3"; - label3.Size = new System.Drawing.Size(83, 16); - label3.TabIndex = 14; - label3.Text = "Ceiling"; - label3.TextAlign = System.Drawing.ContentAlignment.TopCenter; - // - // groupaction - // - groupaction.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - groupaction.Controls.Add(this.tag); - groupaction.Controls.Add(taglabel); - groupaction.Controls.Add(this.newtag); - groupaction.Location = new System.Drawing.Point(7, 290); - groupaction.Name = "groupaction"; - groupaction.Size = new System.Drawing.Size(436, 71); - groupaction.TabIndex = 2; - groupaction.TabStop = false; - groupaction.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(89, 26); - this.tag.Name = "tag"; - this.tag.Size = new System.Drawing.Size(73, 24); - this.tag.StepValues = null; - this.tag.TabIndex = 25; - // - // taglabel - // - taglabel.AutoSize = true; - taglabel.Location = new System.Drawing.Point(55, 31); - taglabel.Name = "taglabel"; - taglabel.Size = new System.Drawing.Size(28, 14); - taglabel.TabIndex = 9; - taglabel.Text = "Tag:"; - // - // newtag - // - this.newtag.Location = new System.Drawing.Point(174, 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); - // - // groupeffect - // - groupeffect.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - groupeffect.Controls.Add(this.brightness); - groupeffect.Controls.Add(this.browseeffect); - groupeffect.Controls.Add(label9); - groupeffect.Controls.Add(this.effect); - groupeffect.Controls.Add(label8); - groupeffect.Location = new System.Drawing.Point(7, 176); - groupeffect.Name = "groupeffect"; - groupeffect.Size = new System.Drawing.Size(436, 105); - groupeffect.TabIndex = 1; - groupeffect.TabStop = false; - groupeffect.Text = " Effects "; - // - // brightness - // - this.brightness.AllowDecimal = false; - this.brightness.AllowNegative = false; - this.brightness.AllowRelative = true; - this.brightness.ButtonStep = 8; - this.brightness.Location = new System.Drawing.Point(89, 61); - this.brightness.Name = "brightness"; - this.brightness.Size = new System.Drawing.Size(73, 24); - this.brightness.StepValues = null; - this.brightness.TabIndex = 24; - // - // browseeffect - // - this.browseeffect.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.browseeffect.Image = global::CodeImp.DoomBuilder.Properties.Resources.List; - this.browseeffect.Location = new System.Drawing.Point(385, 26); - this.browseeffect.Name = "browseeffect"; - this.browseeffect.Padding = new System.Windows.Forms.Padding(0, 0, 1, 3); - this.browseeffect.Size = new System.Drawing.Size(28, 25); - this.browseeffect.TabIndex = 1; - this.browseeffect.Text = " "; - this.browseeffect.UseVisualStyleBackColor = true; - this.browseeffect.Click += new System.EventHandler(this.browseeffect_Click); - // - // label9 - // - label9.AutoSize = true; - label9.Location = new System.Drawing.Point(21, 66); - label9.Name = "label9"; - label9.Size = new System.Drawing.Size(62, 14); - label9.TabIndex = 2; - label9.Text = "Brightness:"; - // - // effect - // - this.effect.BackColor = System.Drawing.Color.Transparent; - this.effect.Cursor = System.Windows.Forms.Cursors.Default; - this.effect.Empty = false; - this.effect.GeneralizedCategories = null; - this.effect.Location = new System.Drawing.Point(89, 28); - this.effect.Name = "effect"; - this.effect.Size = new System.Drawing.Size(290, 21); - this.effect.TabIndex = 0; - this.effect.Value = 402; - // - // label8 - // - label8.AutoSize = true; - label8.Location = new System.Drawing.Point(38, 31); - label8.Name = "label8"; - label8.Size = new System.Drawing.Size(45, 14); - label8.TabIndex = 0; - label8.Text = "Special:"; - // - // groupfloorceiling - // - groupfloorceiling.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - groupfloorceiling.Controls.Add(this.floorheight); - groupfloorceiling.Controls.Add(this.ceilingheight); - groupfloorceiling.Controls.Add(this.sectorheight); - groupfloorceiling.Controls.Add(this.sectorheightlabel); - groupfloorceiling.Controls.Add(label5); - groupfloorceiling.Controls.Add(label2); - groupfloorceiling.Controls.Add(label4); - groupfloorceiling.Controls.Add(this.floortex); - groupfloorceiling.Controls.Add(this.ceilingtex); - groupfloorceiling.Controls.Add(label6); - groupfloorceiling.Location = new System.Drawing.Point(7, 6); - groupfloorceiling.Name = "groupfloorceiling"; - groupfloorceiling.Size = new System.Drawing.Size(436, 161); - groupfloorceiling.TabIndex = 0; - groupfloorceiling.TabStop = false; - groupfloorceiling.Text = "Floor and Ceiling "; - // - // floorheight - // - this.floorheight.AllowDecimal = false; - this.floorheight.AllowNegative = true; - this.floorheight.AllowRelative = true; - this.floorheight.ButtonStep = 8; - this.floorheight.Location = new System.Drawing.Point(112, 69); - this.floorheight.Name = "floorheight"; - this.floorheight.Size = new System.Drawing.Size(88, 24); - this.floorheight.StepValues = null; - this.floorheight.TabIndex = 23; - this.floorheight.WhenTextChanged += new System.EventHandler(this.floorheight_TextChanged); - // - // ceilingheight - // - this.ceilingheight.AllowDecimal = false; - this.ceilingheight.AllowNegative = true; - this.ceilingheight.AllowRelative = true; - this.ceilingheight.ButtonStep = 8; - this.ceilingheight.Location = new System.Drawing.Point(112, 35); - this.ceilingheight.Name = "ceilingheight"; - this.ceilingheight.Size = new System.Drawing.Size(88, 24); - this.ceilingheight.StepValues = null; - this.ceilingheight.TabIndex = 22; - this.ceilingheight.WhenTextChanged += new System.EventHandler(this.ceilingheight_TextChanged); - // - // sectorheight - // - this.sectorheight.AutoSize = true; - this.sectorheight.Location = new System.Drawing.Point(113, 109); - this.sectorheight.Name = "sectorheight"; - this.sectorheight.Size = new System.Drawing.Size(13, 14); - this.sectorheight.TabIndex = 21; - this.sectorheight.Text = "0"; - // - // sectorheightlabel - // - this.sectorheightlabel.AutoSize = true; - this.sectorheightlabel.Location = new System.Drawing.Point(32, 109); - this.sectorheightlabel.Name = "sectorheightlabel"; - this.sectorheightlabel.Size = new System.Drawing.Size(74, 14); - this.sectorheightlabel.TabIndex = 20; - this.sectorheightlabel.Text = "Sector height:"; - // - // label5 - // - label5.AutoSize = true; - label5.Location = new System.Drawing.Point(40, 74); - label5.Name = "label5"; - label5.Size = new System.Drawing.Size(66, 14); - label5.TabIndex = 17; - label5.Text = "Floor height:"; - // - // label2 - // - label2.Location = new System.Drawing.Point(237, 18); - label2.Name = "label2"; - label2.Size = new System.Drawing.Size(83, 16); - label2.TabIndex = 15; - label2.Text = "Floor"; - label2.TextAlign = System.Drawing.ContentAlignment.TopCenter; - // - // label4 - // - label4.Location = new System.Drawing.Point(332, 18); - label4.Name = "label4"; - label4.Size = new System.Drawing.Size(83, 16); - label4.TabIndex = 14; - label4.Text = "Ceiling"; - label4.TextAlign = System.Drawing.ContentAlignment.TopCenter; - // - // floortex - // - this.floortex.Location = new System.Drawing.Point(237, 37); - this.floortex.Name = "floortex"; - this.floortex.Size = new System.Drawing.Size(83, 105); - this.floortex.TabIndex = 2; - this.floortex.TextureName = ""; - // - // ceilingtex - // - this.ceilingtex.Location = new System.Drawing.Point(332, 37); - this.ceilingtex.Name = "ceilingtex"; - this.ceilingtex.Size = new System.Drawing.Size(83, 105); - this.ceilingtex.TabIndex = 3; - this.ceilingtex.TextureName = ""; - // - // label6 - // - label6.AutoSize = true; - label6.Location = new System.Drawing.Point(33, 40); - label6.Name = "label6"; - label6.Size = new System.Drawing.Size(73, 14); - label6.TabIndex = 19; - label6.Text = "Ceiling height:"; - // - // 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(355, 423); - 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(236, 423); - 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); - // - // 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.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(457, 396); - this.tabs.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; - this.tabs.TabIndex = 0; - // - // tabproperties - // - this.tabproperties.Controls.Add(groupaction); - this.tabproperties.Controls.Add(groupeffect); - this.tabproperties.Controls.Add(groupfloorceiling); - 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(449, 369); - this.tabproperties.TabIndex = 0; - this.tabproperties.Text = "Properties"; - this.tabproperties.UseVisualStyleBackColor = true; - // - // 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.Padding = new System.Windows.Forms.Padding(3); - this.tabcustom.Size = new System.Drawing.Size(449, 369); - this.tabcustom.TabIndex = 1; - 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(11, 11); - this.fieldslist.Margin = new System.Windows.Forms.Padding(8); - this.fieldslist.Name = "fieldslist"; - this.fieldslist.PropertyColumnVisible = true; - this.fieldslist.PropertyColumnWidth = 150; - this.fieldslist.Size = new System.Drawing.Size(427, 347); - this.fieldslist.TabIndex = 1; - this.fieldslist.TypeColumnVisible = true; - this.fieldslist.TypeColumnWidth = 100; - this.fieldslist.ValueColumnVisible = true; - // - // flatSelectorControl2 - // - this.flatSelectorControl2.Location = new System.Drawing.Point(271, 37); - this.flatSelectorControl2.Name = "flatSelectorControl2"; - this.flatSelectorControl2.Size = new System.Drawing.Size(83, 105); - this.flatSelectorControl2.TabIndex = 13; - this.flatSelectorControl2.TextureName = ""; - // - // flatSelectorControl1 - // - this.flatSelectorControl1.Location = new System.Drawing.Point(363, 37); - this.flatSelectorControl1.Name = "flatSelectorControl1"; - this.flatSelectorControl1.Size = new System.Drawing.Size(83, 105); - this.flatSelectorControl1.TabIndex = 12; - this.flatSelectorControl1.TextureName = ""; - // - // SectorEditForm - // - 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(477, 458); - 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 = "SectorEditForm"; - this.Opacity = 0; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Edit Sector"; - this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.SectorEditForm_HelpRequested); - groupaction.ResumeLayout(false); - groupaction.PerformLayout(); - groupeffect.ResumeLayout(false); - groupeffect.PerformLayout(); - groupfloorceiling.ResumeLayout(false); - groupfloorceiling.PerformLayout(); - this.tabs.ResumeLayout(false); - this.tabproperties.ResumeLayout(false); - this.tabcustom.ResumeLayout(false); - this.ResumeLayout(false); + System.Windows.Forms.Label label1; + System.Windows.Forms.Label label3; + System.Windows.Forms.GroupBox groupaction; + System.Windows.Forms.Label taglabel; + System.Windows.Forms.GroupBox groupeffect; + System.Windows.Forms.Label label9; + System.Windows.Forms.Label label8; + System.Windows.Forms.GroupBox groupfloorceiling; + System.Windows.Forms.Label label5; + System.Windows.Forms.Label label2; + System.Windows.Forms.Label label4; + System.Windows.Forms.Label label6; + this.tag = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.newtag = new System.Windows.Forms.Button(); + this.brightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.browseeffect = new System.Windows.Forms.Button(); + this.effect = new CodeImp.DoomBuilder.Controls.ActionSelectorControl(); + this.floorheight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.ceilingheight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.sectorheight = new System.Windows.Forms.Label(); + this.sectorheightlabel = new System.Windows.Forms.Label(); + this.floortex = new CodeImp.DoomBuilder.Controls.FlatSelectorControl(); + this.ceilingtex = new CodeImp.DoomBuilder.Controls.FlatSelectorControl(); + this.cancel = new System.Windows.Forms.Button(); + this.apply = new System.Windows.Forms.Button(); + this.tabs = new System.Windows.Forms.TabControl(); + this.tabproperties = new System.Windows.Forms.TabPage(); + this.tabcustom = new System.Windows.Forms.TabPage(); + this.fieldslist = new CodeImp.DoomBuilder.Controls.FieldsEditorControl(); + this.flatSelectorControl2 = new CodeImp.DoomBuilder.Controls.FlatSelectorControl(); + this.flatSelectorControl1 = new CodeImp.DoomBuilder.Controls.FlatSelectorControl(); + this.ceilOffsetY = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.ceilOffsetX = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.lTexOffset = new System.Windows.Forms.Label(); + this.floorOffsetY = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.floorOffsetX = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.label7 = new System.Windows.Forms.Label(); + this.panelHeights = new System.Windows.Forms.Panel(); + this.panelTextureOffsets = new System.Windows.Forms.Panel(); + label1 = new System.Windows.Forms.Label(); + label3 = new System.Windows.Forms.Label(); + groupaction = new System.Windows.Forms.GroupBox(); + taglabel = new System.Windows.Forms.Label(); + groupeffect = new System.Windows.Forms.GroupBox(); + label9 = new System.Windows.Forms.Label(); + label8 = new System.Windows.Forms.Label(); + groupfloorceiling = new System.Windows.Forms.GroupBox(); + label5 = new System.Windows.Forms.Label(); + label2 = new System.Windows.Forms.Label(); + label4 = new System.Windows.Forms.Label(); + label6 = new System.Windows.Forms.Label(); + groupaction.SuspendLayout(); + groupeffect.SuspendLayout(); + groupfloorceiling.SuspendLayout(); + this.tabs.SuspendLayout(); + this.tabproperties.SuspendLayout(); + this.tabcustom.SuspendLayout(); + this.panelHeights.SuspendLayout(); + this.panelTextureOffsets.SuspendLayout(); + this.SuspendLayout(); + // + // label1 + // + label1.Location = new System.Drawing.Point(271, 18); + label1.Name = "label1"; + label1.Size = new System.Drawing.Size(83, 16); + label1.TabIndex = 15; + label1.Text = "Floor"; + label1.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // label3 + // + label3.Location = new System.Drawing.Point(363, 18); + label3.Name = "label3"; + label3.Size = new System.Drawing.Size(83, 16); + label3.TabIndex = 14; + label3.Text = "Ceiling"; + label3.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // groupaction + // + groupaction.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + groupaction.Controls.Add(this.tag); + groupaction.Controls.Add(taglabel); + groupaction.Controls.Add(this.newtag); + groupaction.Location = new System.Drawing.Point(7, 290); + groupaction.Name = "groupaction"; + groupaction.Size = new System.Drawing.Size(436, 71); + groupaction.TabIndex = 2; + groupaction.TabStop = false; + groupaction.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(89, 26); + this.tag.Name = "tag"; + this.tag.Size = new System.Drawing.Size(73, 24); + this.tag.StepValues = null; + this.tag.TabIndex = 25; + // + // taglabel + // + taglabel.AutoSize = true; + taglabel.Location = new System.Drawing.Point(55, 31); + taglabel.Name = "taglabel"; + taglabel.Size = new System.Drawing.Size(27, 14); + taglabel.TabIndex = 9; + taglabel.Text = "Tag:"; + // + // newtag + // + this.newtag.Location = new System.Drawing.Point(174, 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); + // + // groupeffect + // + groupeffect.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + groupeffect.Controls.Add(this.brightness); + groupeffect.Controls.Add(this.browseeffect); + groupeffect.Controls.Add(label9); + groupeffect.Controls.Add(this.effect); + groupeffect.Controls.Add(label8); + groupeffect.Location = new System.Drawing.Point(7, 176); + groupeffect.Name = "groupeffect"; + groupeffect.Size = new System.Drawing.Size(436, 105); + groupeffect.TabIndex = 1; + groupeffect.TabStop = false; + groupeffect.Text = " Effects "; + // + // brightness + // + this.brightness.AllowDecimal = false; + this.brightness.AllowNegative = false; + this.brightness.AllowRelative = true; + this.brightness.ButtonStep = 8; + this.brightness.Location = new System.Drawing.Point(89, 61); + this.brightness.Name = "brightness"; + this.brightness.Size = new System.Drawing.Size(73, 24); + this.brightness.StepValues = null; + this.brightness.TabIndex = 24; + // + // browseeffect + // + this.browseeffect.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.browseeffect.Image = global::CodeImp.DoomBuilder.Properties.Resources.List; + this.browseeffect.Location = new System.Drawing.Point(385, 26); + this.browseeffect.Name = "browseeffect"; + this.browseeffect.Padding = new System.Windows.Forms.Padding(0, 0, 1, 3); + this.browseeffect.Size = new System.Drawing.Size(28, 25); + this.browseeffect.TabIndex = 1; + this.browseeffect.Text = " "; + this.browseeffect.UseVisualStyleBackColor = true; + this.browseeffect.Click += new System.EventHandler(this.browseeffect_Click); + // + // label9 + // + label9.AutoSize = true; + label9.Location = new System.Drawing.Point(21, 66); + label9.Name = "label9"; + label9.Size = new System.Drawing.Size(62, 14); + label9.TabIndex = 2; + label9.Text = "Brightness:"; + // + // effect + // + this.effect.BackColor = System.Drawing.Color.Transparent; + this.effect.Cursor = System.Windows.Forms.Cursors.Default; + this.effect.Empty = false; + this.effect.GeneralizedCategories = null; + this.effect.Location = new System.Drawing.Point(89, 28); + this.effect.Name = "effect"; + this.effect.Size = new System.Drawing.Size(290, 21); + this.effect.TabIndex = 0; + this.effect.Value = 402; + // + // label8 + // + label8.AutoSize = true; + label8.Location = new System.Drawing.Point(38, 31); + label8.Name = "label8"; + label8.Size = new System.Drawing.Size(45, 14); + label8.TabIndex = 0; + label8.Text = "Special:"; + // + // groupfloorceiling + // + groupfloorceiling.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + groupfloorceiling.Controls.Add(this.panelTextureOffsets); + groupfloorceiling.Controls.Add(this.panelHeights); + groupfloorceiling.Controls.Add(label2); + groupfloorceiling.Controls.Add(label4); + groupfloorceiling.Controls.Add(this.floortex); + groupfloorceiling.Controls.Add(this.ceilingtex); + groupfloorceiling.Location = new System.Drawing.Point(7, 6); + groupfloorceiling.Name = "groupfloorceiling"; + groupfloorceiling.Size = new System.Drawing.Size(436, 161); + groupfloorceiling.TabIndex = 0; + groupfloorceiling.TabStop = false; + groupfloorceiling.Text = "Floor and Ceiling "; + // + // floorheight + // + this.floorheight.AllowDecimal = false; + this.floorheight.AllowNegative = true; + this.floorheight.AllowRelative = true; + this.floorheight.ButtonStep = 8; + this.floorheight.Location = new System.Drawing.Point(108, 34); + this.floorheight.Name = "floorheight"; + this.floorheight.Size = new System.Drawing.Size(88, 24); + this.floorheight.StepValues = null; + this.floorheight.TabIndex = 23; + this.floorheight.WhenTextChanged += new System.EventHandler(this.floorheight_TextChanged); + // + // ceilingheight + // + this.ceilingheight.AllowDecimal = false; + this.ceilingheight.AllowNegative = true; + this.ceilingheight.AllowRelative = true; + this.ceilingheight.ButtonStep = 8; + this.ceilingheight.Location = new System.Drawing.Point(108, 4); + this.ceilingheight.Name = "ceilingheight"; + this.ceilingheight.Size = new System.Drawing.Size(88, 24); + this.ceilingheight.StepValues = null; + this.ceilingheight.TabIndex = 22; + this.ceilingheight.WhenTextChanged += new System.EventHandler(this.ceilingheight_TextChanged); + // + // sectorheight + // + this.sectorheight.AutoSize = true; + this.sectorheight.Location = new System.Drawing.Point(109, 65); + this.sectorheight.Name = "sectorheight"; + this.sectorheight.Size = new System.Drawing.Size(13, 14); + this.sectorheight.TabIndex = 21; + this.sectorheight.Text = "0"; + // + // sectorheightlabel + // + this.sectorheightlabel.AutoSize = true; + this.sectorheightlabel.Location = new System.Drawing.Point(28, 65); + this.sectorheightlabel.Name = "sectorheightlabel"; + this.sectorheightlabel.Size = new System.Drawing.Size(74, 14); + this.sectorheightlabel.TabIndex = 20; + this.sectorheightlabel.Text = "Sector height:"; + // + // label5 + // + label5.AutoSize = true; + label5.Location = new System.Drawing.Point(36, 39); + label5.Name = "label5"; + label5.Size = new System.Drawing.Size(66, 14); + label5.TabIndex = 17; + label5.Text = "Floor height:"; + // + // label2 + // + label2.Location = new System.Drawing.Point(242, 16); + label2.Name = "label2"; + label2.Size = new System.Drawing.Size(83, 16); + label2.TabIndex = 15; + label2.Text = "Floor"; + label2.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // label4 + // + label4.Location = new System.Drawing.Point(337, 16); + label4.Name = "label4"; + label4.Size = new System.Drawing.Size(83, 16); + label4.TabIndex = 14; + label4.Text = "Ceiling"; + label4.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // floortex + // + this.floortex.Location = new System.Drawing.Point(242, 35); + this.floortex.Name = "floortex"; + this.floortex.Size = new System.Drawing.Size(83, 105); + this.floortex.TabIndex = 2; + this.floortex.TextureName = ""; + // + // ceilingtex + // + this.ceilingtex.Location = new System.Drawing.Point(337, 35); + this.ceilingtex.Name = "ceilingtex"; + this.ceilingtex.Size = new System.Drawing.Size(83, 105); + this.ceilingtex.TabIndex = 3; + this.ceilingtex.TextureName = ""; + // + // label6 + // + label6.AutoSize = true; + label6.Location = new System.Drawing.Point(29, 9); + label6.Name = "label6"; + label6.Size = new System.Drawing.Size(73, 14); + label6.TabIndex = 19; + label6.Text = "Ceiling height:"; + // + // 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(355, 423); + 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(236, 423); + 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); + // + // 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.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(457, 396); + this.tabs.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; + this.tabs.TabIndex = 0; + // + // tabproperties + // + this.tabproperties.Controls.Add(groupaction); + this.tabproperties.Controls.Add(groupeffect); + this.tabproperties.Controls.Add(groupfloorceiling); + 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(449, 369); + this.tabproperties.TabIndex = 0; + this.tabproperties.Text = "Properties"; + this.tabproperties.UseVisualStyleBackColor = true; + // + // 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.Padding = new System.Windows.Forms.Padding(3); + this.tabcustom.Size = new System.Drawing.Size(449, 369); + this.tabcustom.TabIndex = 1; + 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(11, 11); + this.fieldslist.Margin = new System.Windows.Forms.Padding(8); + this.fieldslist.Name = "fieldslist"; + this.fieldslist.PropertyColumnVisible = true; + this.fieldslist.PropertyColumnWidth = 150; + this.fieldslist.Size = new System.Drawing.Size(427, 347); + this.fieldslist.TabIndex = 1; + this.fieldslist.TypeColumnVisible = true; + this.fieldslist.TypeColumnWidth = 100; + this.fieldslist.ValueColumnVisible = true; + // + // flatSelectorControl2 + // + this.flatSelectorControl2.Location = new System.Drawing.Point(271, 37); + this.flatSelectorControl2.Name = "flatSelectorControl2"; + this.flatSelectorControl2.Size = new System.Drawing.Size(83, 105); + this.flatSelectorControl2.TabIndex = 13; + this.flatSelectorControl2.TextureName = ""; + // + // flatSelectorControl1 + // + this.flatSelectorControl1.Location = new System.Drawing.Point(363, 37); + this.flatSelectorControl1.Name = "flatSelectorControl1"; + this.flatSelectorControl1.Size = new System.Drawing.Size(83, 105); + this.flatSelectorControl1.TabIndex = 12; + this.flatSelectorControl1.TextureName = ""; + // + // ceilOffsetY + // + this.ceilOffsetY.AllowDecimal = false; + this.ceilOffsetY.AllowNegative = true; + this.ceilOffsetY.AllowRelative = true; + this.ceilOffsetY.ButtonStep = 1; + this.ceilOffsetY.Location = new System.Drawing.Point(170, 3); + this.ceilOffsetY.Name = "ceilOffsetY"; + this.ceilOffsetY.Size = new System.Drawing.Size(56, 24); + this.ceilOffsetY.StepValues = null; + this.ceilOffsetY.TabIndex = 26; + // + // ceilOffsetX + // + this.ceilOffsetX.AllowDecimal = false; + this.ceilOffsetX.AllowNegative = true; + this.ceilOffsetX.AllowRelative = true; + this.ceilOffsetX.ButtonStep = 1; + this.ceilOffsetX.Location = new System.Drawing.Point(108, 3); + this.ceilOffsetX.Name = "ceilOffsetX"; + this.ceilOffsetX.Size = new System.Drawing.Size(56, 24); + this.ceilOffsetX.StepValues = null; + this.ceilOffsetX.TabIndex = 25; + // + // lTexOffset + // + this.lTexOffset.AutoSize = true; + this.lTexOffset.Location = new System.Drawing.Point(8, 8); + this.lTexOffset.Name = "lTexOffset"; + this.lTexOffset.Size = new System.Drawing.Size(94, 14); + this.lTexOffset.TabIndex = 24; + this.lTexOffset.Text = "Ceiling tex. offset:"; + // + // floorOffsetY + // + this.floorOffsetY.AllowDecimal = false; + this.floorOffsetY.AllowNegative = true; + this.floorOffsetY.AllowRelative = true; + this.floorOffsetY.ButtonStep = 1; + this.floorOffsetY.Location = new System.Drawing.Point(170, 31); + this.floorOffsetY.Name = "floorOffsetY"; + this.floorOffsetY.Size = new System.Drawing.Size(56, 24); + this.floorOffsetY.StepValues = null; + this.floorOffsetY.TabIndex = 29; + // + // floorOffsetX + // + this.floorOffsetX.AllowDecimal = false; + this.floorOffsetX.AllowNegative = true; + this.floorOffsetX.AllowRelative = true; + this.floorOffsetX.ButtonStep = 1; + this.floorOffsetX.Location = new System.Drawing.Point(108, 31); + this.floorOffsetX.Name = "floorOffsetX"; + this.floorOffsetX.Size = new System.Drawing.Size(56, 24); + this.floorOffsetX.StepValues = null; + this.floorOffsetX.TabIndex = 28; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(-1, 36); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(103, 14); + this.label7.TabIndex = 27; + this.label7.Text = "Floor texture offset:"; + // + // panelHeights + // + this.panelHeights.Controls.Add(this.ceilingheight); + this.panelHeights.Controls.Add(label6); + this.panelHeights.Controls.Add(label5); + this.panelHeights.Controls.Add(this.sectorheightlabel); + this.panelHeights.Controls.Add(this.sectorheight); + this.panelHeights.Controls.Add(this.floorheight); + this.panelHeights.Location = new System.Drawing.Point(6, 16); + this.panelHeights.Name = "panelHeights"; + this.panelHeights.Size = new System.Drawing.Size(230, 85); + this.panelHeights.TabIndex = 30; + // + // panelTextureOffsets + // + this.panelTextureOffsets.Controls.Add(this.ceilOffsetX); + this.panelTextureOffsets.Controls.Add(this.lTexOffset); + this.panelTextureOffsets.Controls.Add(this.floorOffsetY); + this.panelTextureOffsets.Controls.Add(this.ceilOffsetY); + this.panelTextureOffsets.Controls.Add(this.floorOffsetX); + this.panelTextureOffsets.Controls.Add(this.label7); + this.panelTextureOffsets.Location = new System.Drawing.Point(6, 102); + this.panelTextureOffsets.Name = "panelTextureOffsets"; + this.panelTextureOffsets.Size = new System.Drawing.Size(230, 58); + this.panelTextureOffsets.TabIndex = 31; + // + // SectorEditForm + // + 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(477, 458); + 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 = "SectorEditForm"; + this.Opacity = 0; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Edit Sector"; + this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.SectorEditForm_HelpRequested); + groupaction.ResumeLayout(false); + groupaction.PerformLayout(); + groupeffect.ResumeLayout(false); + groupeffect.PerformLayout(); + groupfloorceiling.ResumeLayout(false); + this.tabs.ResumeLayout(false); + this.tabproperties.ResumeLayout(false); + this.tabcustom.ResumeLayout(false); + this.panelHeights.ResumeLayout(false); + this.panelHeights.PerformLayout(); + this.panelTextureOffsets.ResumeLayout(false); + this.panelTextureOffsets.PerformLayout(); + this.ResumeLayout(false); } @@ -486,5 +587,13 @@ namespace CodeImp.DoomBuilder.Windows private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox floorheight; private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox brightness; private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox tag; + private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox ceilOffsetY; + private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox ceilOffsetX; + private System.Windows.Forms.Label lTexOffset; + private System.Windows.Forms.Panel panelHeights; + private System.Windows.Forms.Panel panelTextureOffsets; + private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox floorOffsetY; + private CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox floorOffsetX; + private System.Windows.Forms.Label label7; } } \ No newline at end of file diff --git a/Source/Core/Windows/SectorEditForm.cs b/Source/Core/Windows/SectorEditForm.cs index 27c96896..3aac445f 100644 --- a/Source/Core/Windows/SectorEditForm.cs +++ b/Source/Core/Windows/SectorEditForm.cs @@ -29,6 +29,7 @@ using System.IO; using CodeImp.DoomBuilder.Config; using CodeImp.DoomBuilder.Editing; using CodeImp.DoomBuilder.Controls; +using CodeImp.DoomBuilder.Types; #endregion @@ -61,6 +62,12 @@ namespace CodeImp.DoomBuilder.Windows // Custom fields? if(!General.Map.FormatInterface.HasCustomFields) tabs.TabPages.Remove(tabcustom); + + //mxd. Texture offsets panel setup + if (!General.Map.UDMF) { + panelTextureOffsets.Visible = false; + panelHeights.Top = floortex.Top; + } // Initialize custom fields editor fieldslist.Setup("sector"); @@ -92,6 +99,14 @@ namespace CodeImp.DoomBuilder.Windows floortex.TextureName = sc.FloorTexture; ceilingtex.TextureName = sc.CeilTexture; + //mxd. Texture offsets + if (General.Map.UDMF) { + ceilOffsetX.Text = getUDMFTextureOffset(sc.Fields, "xpanningceiling").ToString(); + ceilOffsetY.Text = getUDMFTextureOffset(sc.Fields, "ypanningceiling").ToString(); + floorOffsetX.Text = getUDMFTextureOffset(sc.Fields, "xpanningfloor").ToString(); + floorOffsetY.Text = getUDMFTextureOffset(sc.Fields, "ypanningfloor").ToString(); + } + // Action tag.Text = sc.Tag.ToString(); @@ -115,6 +130,14 @@ namespace CodeImp.DoomBuilder.Windows if(s.FloorTexture != floortex.TextureName) floortex.TextureName = ""; if(s.CeilTexture != ceilingtex.TextureName) ceilingtex.TextureName = ""; + //mxd. Texture offsets + if (General.Map.UDMF) { + if (ceilOffsetX.Text != getUDMFTextureOffset(s.Fields, "xpanningceiling").ToString()) ceilOffsetX.Text = ""; + if (ceilOffsetY.Text != getUDMFTextureOffset(s.Fields, "ypanningceiling").ToString()) ceilOffsetY.Text = ""; + if (floorOffsetX.Text != getUDMFTextureOffset(s.Fields, "xpanningfloor").ToString()) floorOffsetX.Text = ""; + if (floorOffsetY.Text != getUDMFTextureOffset(s.Fields, "ypanningfloor").ToString()) floorOffsetY.Text = ""; + } + // Action if(s.Tag.ToString() != tag.Text) tag.Text = ""; @@ -171,6 +194,25 @@ namespace CodeImp.DoomBuilder.Windows } } + //mxd + private float getUDMFTextureOffset(UniFields fields, string key) { + if (fields != null && fields.ContainsKey(key)) + return (float)fields[key].Value; + return 0; + } + + //mxd + private void setUDMFTextureOffset(UniFields fields, string key, float value) { + if (fields == null) return; + + fields.BeforeFieldsChange(); + + if (!fields.ContainsKey(key)) + fields.Add(key, new UniValue(UniversalType.Float, value)); + else + fields[key].Value = value; + } + // OK clicked private void apply_Click(object sender, EventArgs e) { @@ -191,11 +233,12 @@ namespace CodeImp.DoomBuilder.Windows } // Verify the brightness - if((brightness.GetResult(0) < General.Map.FormatInterface.MinBrightness) || (brightness.GetResult(0) > General.Map.FormatInterface.MaxBrightness)) + //mxd. We clamp it anyway, so... + /*if((brightness.GetResult(0) < General.Map.FormatInterface.MinBrightness) || (brightness.GetResult(0) > General.Map.FormatInterface.MaxBrightness)) { General.ShowWarningMessage("Sector brightness must be between " + General.Map.FormatInterface.MinBrightness + " and " + General.Map.FormatInterface.MaxBrightness + ".", MessageBoxButtons.OK); return; - } + }*/ // Make undo if(sectors.Count > 1) undodesc = sectors.Count + " sectors"; @@ -219,6 +262,17 @@ namespace CodeImp.DoomBuilder.Windows // Custom fields fieldslist.Apply(s.Fields); + + //mxd. Texture offsets + int min = General.Map.FormatInterface.MinTextureOffset; + int max = General.Map.FormatInterface.MaxTextureOffset; + + if (General.Map.UDMF) { + if (ceilOffsetX.Text != "") setUDMFTextureOffset(s.Fields, "xpanningceiling", General.Clamp(ceilOffsetX.GetResult((int)getUDMFTextureOffset(s.Fields, "xpanningceiling")), min, max)); + if (ceilOffsetY.Text != "") setUDMFTextureOffset(s.Fields, "ypanningceiling", General.Clamp(ceilOffsetY.GetResult((int)getUDMFTextureOffset(s.Fields, "ypanningceiling")), min, max)); + if (floorOffsetX.Text != "") setUDMFTextureOffset(s.Fields, "xpanningfloor", General.Clamp(floorOffsetX.GetResult((int)getUDMFTextureOffset(s.Fields, "xpanningfloor")), min, max)); + if (floorOffsetY.Text != "") setUDMFTextureOffset(s.Fields, "ypanningfloor", General.Clamp(floorOffsetY.GetResult((int)getUDMFTextureOffset(s.Fields, "ypanningfloor")), min, max)); + } } // Update the used textures diff --git a/Source/Core/Windows/SectorEditForm.resx b/Source/Core/Windows/SectorEditForm.resx index e40d8132..6dfb419f 100644 --- a/Source/Core/Windows/SectorEditForm.resx +++ b/Source/Core/Windows/SectorEditForm.resx @@ -180,48 +180,18 @@ False - - True - - - True - - - True - - - True - - - True + + False False - - True - False - - True - False - - True - - - True - - - True - - - False - True diff --git a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs index 66085f18..4b16dfe8 100644 --- a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs +++ b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs @@ -128,19 +128,18 @@ namespace CodeImp.DoomBuilder.GZDoomEditing float offsetx = dragdelta.x; float offsety = dragdelta.y; - //mxd + //mxd. Modify offsets based on surface and camera angles if (General.Map.UDMF) { - if (GeometryType == VisualGeometryType.CEILING && level.sector.Fields.ContainsKey("rotationceiling")) { - float angle = (float)level.sector.Fields["rotationceiling"].Value * (float)Math.PI / 180f; - Vector2D v = new Vector2D(offsetx, offsety).GetRotated(angle); - offsetx = v.x; - offsety = v.y; - } else if (GeometryType == VisualGeometryType.FLOOR && level.sector.Fields.ContainsKey("rotationfloor")) { - float angle = (float)level.sector.Fields["rotationfloor"].Value * (float)Math.PI / 180f; - Vector2D v = new Vector2D(offsetx, offsety).GetRotated(angle); - offsetx = v.x; - offsety = v.y; - } + float angle = 0; + if (GeometryType == VisualGeometryType.CEILING && level.sector.Fields.ContainsKey("rotationceiling")) + angle = (float)level.sector.Fields["rotationceiling"].Value * (float)Math.PI / 180f; + else if (GeometryType == VisualGeometryType.FLOOR && level.sector.Fields.ContainsKey("rotationfloor")) + angle = (float)level.sector.Fields["rotationfloor"].Value * (float)Math.PI / 180f; + + Vector2D v = new Vector2D(offsetx, offsety).GetRotated(angle); + Point p = getTranslatedTextureOffset(new Point((int)Math.Round(v.x), (int)Math.Round(v.y))); + offsetx = p.X; + offsety = p.Y; } // Apply offsets diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualLower.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualLower.cs index 83c9e241..f0dd8b24 100644 --- a/Source/Plugins/GZDoomEditing/VisualModes/VisualLower.cs +++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualLower.cs @@ -70,9 +70,12 @@ namespace CodeImp.DoomBuilder.GZDoomEditing public override bool Setup() { Vector2D vl, vr; - - int lightvalue = Sidedef.Fields.GetValue("light", 0); - bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + + //mxd. lightfog flag support + bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + bool ignoreUDMFLight = (!Sidedef.Fields.GetValue("lightfog", false) || !lightabsolute) && Sector.Sector.Fields.ContainsKey("fadecolor"); + int lightvalue = ignoreUDMFLight ? 0 : Sidedef.Fields.GetValue("light", 0); //mxd + if (ignoreUDMFLight) lightabsolute = false; Vector2D tscale = new Vector2D(Sidedef.Fields.GetValue("scalex_bottom", 1.0f), Sidedef.Fields.GetValue("scaley_bottom", 1.0f)); @@ -172,7 +175,6 @@ namespace CodeImp.DoomBuilder.GZDoomEditing // Determine initial color int lightlevel = lightabsolute ? lightvalue : sd.Ceiling.brightnessbelow + lightvalue; //mxd - //PixelColor wallbrightness = PixelColor.FromInt(mode.CalculateBrightness(lightlevel)); PixelColor wallbrightness = PixelColor.FromInt(mode.CalculateBrightness(lightlevel, Sidedef)); PixelColor wallcolor = PixelColor.Modulate(sd.Ceiling.colorbelow, wallbrightness); poly.color = wallcolor.WithAlpha(255).ToInt(); diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddle3D.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddle3D.cs index 195c6aae..cc3a36e3 100644 --- a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddle3D.cs +++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddle3D.cs @@ -76,8 +76,14 @@ namespace CodeImp.DoomBuilder.GZDoomEditing Sidedef sourceside = extrafloor.Linedef.Front; this.extrafloor = extrafloor; - int lightvalue = Sidedef.Fields.GetValue("light", 0); - bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + //int lightvalue = Sidedef.Fields.GetValue("light", 0); + //bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + + //mxd. lightfog flag support + bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + bool ignoreUDMFLight = (!Sidedef.Fields.GetValue("lightfog", false) || !lightabsolute) && Sector.Sector.Fields.ContainsKey("fadecolor"); + int lightvalue = ignoreUDMFLight ? 0 : Sidedef.Fields.GetValue("light", 0); //mxd + if (ignoreUDMFLight) lightabsolute = false; Vector2D tscale = new Vector2D(sourceside.Fields.GetValue("scalex_mid", 1.0f), sourceside.Fields.GetValue("scaley_mid", 1.0f)); diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleDouble.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleDouble.cs index 03ba980c..316e2739 100644 --- a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleDouble.cs +++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleDouble.cs @@ -78,8 +78,14 @@ namespace CodeImp.DoomBuilder.GZDoomEditing { Vector2D vl, vr; - int lightvalue = Sidedef.Fields.GetValue("light", 0); - bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + //int lightvalue = Sidedef.Fields.GetValue("light", 0); + //bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + + //mxd. lightfog flag support + bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + bool ignoreUDMFLight = (!Sidedef.Fields.GetValue("lightfog", false) || !lightabsolute) && Sector.Sector.Fields.ContainsKey("fadecolor"); + int lightvalue = ignoreUDMFLight ? 0 : Sidedef.Fields.GetValue("light", 0); //mxd + if (ignoreUDMFLight) lightabsolute = false; Vector2D tscale = new Vector2D(Sidedef.Fields.GetValue("scalex_mid", 1.0f), Sidedef.Fields.GetValue("scaley_mid", 1.0f)); diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleSingle.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleSingle.cs index 67ebf22f..ab0a6506 100644 --- a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleSingle.cs +++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleSingle.cs @@ -71,8 +71,14 @@ namespace CodeImp.DoomBuilder.GZDoomEditing { Vector2D vl, vr; - int lightvalue = Sidedef.Fields.GetValue("light", 0); - bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + //int lightvalue = Sidedef.Fields.GetValue("light", 0); + //bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + + //mxd. lightfog flag support + bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + bool ignoreUDMFLight = (!Sidedef.Fields.GetValue("lightfog", false) || !lightabsolute) && Sector.Sector.Fields.ContainsKey("fadecolor"); + int lightvalue = ignoreUDMFLight ? 0 : Sidedef.Fields.GetValue("light", 0); //mxd + if (ignoreUDMFLight) lightabsolute = false; Vector2D tscale = new Vector2D(Sidedef.Fields.GetValue("scalex_mid", 1.0f), Sidedef.Fields.GetValue("scaley_mid", 1.0f)); diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualUpper.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualUpper.cs index c8ebb39d..2d224237 100644 --- a/Source/Plugins/GZDoomEditing/VisualModes/VisualUpper.cs +++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualUpper.cs @@ -72,8 +72,14 @@ namespace CodeImp.DoomBuilder.GZDoomEditing { Vector2D vl, vr; - int lightvalue = Sidedef.Fields.GetValue("light", 0); - bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + //int lightvalue = Sidedef.Fields.GetValue("light", 0); + //bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + + //mxd. lightfog flag support + bool lightabsolute = Sidedef.Fields.GetValue("lightabsolute", false); + bool ignoreUDMFLight = (!Sidedef.Fields.GetValue("lightfog", false) || !lightabsolute) && Sector.Sector.Fields.ContainsKey("fadecolor"); + int lightvalue = ignoreUDMFLight ? 0 : Sidedef.Fields.GetValue("light", 0); //mxd + if (ignoreUDMFLight) lightabsolute = false; Vector2D tscale = new Vector2D(Sidedef.Fields.GetValue("scalex_top", 1.0f), Sidedef.Fields.GetValue("scaley_top", 1.0f)); diff --git a/Source/Plugins/UMDFControls/Windows/UDMFControlsForm.Designer.cs b/Source/Plugins/UMDFControls/Windows/UDMFControlsForm.Designer.cs index 2201bd9f..b24e4eba 100644 --- a/Source/Plugins/UMDFControls/Windows/UDMFControlsForm.Designer.cs +++ b/Source/Plugins/UMDFControls/Windows/UDMFControlsForm.Designer.cs @@ -27,10 +27,14 @@ this.btnOK = new System.Windows.Forms.Button(); this.btnCancel = new System.Windows.Forms.Button(); this.gbRotation = new System.Windows.Forms.GroupBox(); + this.angleControl1 = new CodeImp.DoomBuilder.UDMFControls.AngleControl(); this.gbPosition = new System.Windows.Forms.GroupBox(); + this.positionControl1 = new CodeImp.DoomBuilder.UDMFControls.PositionControl(); this.gbScale = new System.Windows.Forms.GroupBox(); + this.scaleControl = new CodeImp.DoomBuilder.UDMFControls.ScaleControl(); this.bgBrightness = new System.Windows.Forms.GroupBox(); this.cblightabsolute = new System.Windows.Forms.CheckBox(); + this.sliderBrightness = new CodeImp.DoomBuilder.UDMFControls.IntSlider(); this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabPage1 = new System.Windows.Forms.TabPage(); this.groupBox1 = new System.Windows.Forms.GroupBox(); @@ -38,9 +42,11 @@ this.gbAlpha = new System.Windows.Forms.GroupBox(); this.label2 = new System.Windows.Forms.Label(); this.cbRenderStyle = new System.Windows.Forms.ComboBox(); + this.sliderAlpha = new CodeImp.DoomBuilder.UDMFControls.FloatSlider(); this.labelGravity = new System.Windows.Forms.Label(); this.nudGravity = new System.Windows.Forms.NumericUpDown(); this.gbDesaturation = new System.Windows.Forms.GroupBox(); + this.sliderDesaturation = new CodeImp.DoomBuilder.UDMFControls.FloatSlider(); this.tabPage2 = new System.Windows.Forms.TabPage(); this.gbFlagsFloor = new System.Windows.Forms.GroupBox(); this.cbhidden = new System.Windows.Forms.CheckBox(); @@ -49,17 +55,12 @@ this.cbnofallingdamage = new System.Windows.Forms.CheckBox(); this.cbdropactors = new System.Windows.Forms.CheckBox(); this.gbFlagsWall = new System.Windows.Forms.GroupBox(); + this.cblightfog = new System.Windows.Forms.CheckBox(); this.cbsmoothlighting = new System.Windows.Forms.CheckBox(); this.cbnodecals = new System.Windows.Forms.CheckBox(); this.cbnofakecontrast = new System.Windows.Forms.CheckBox(); this.cbwrapmidtex = new System.Windows.Forms.CheckBox(); this.cbclipmidtex = new System.Windows.Forms.CheckBox(); - this.positionControl1 = new CodeImp.DoomBuilder.UDMFControls.PositionControl(); - this.angleControl1 = new CodeImp.DoomBuilder.UDMFControls.AngleControl(); - this.scaleControl = new CodeImp.DoomBuilder.UDMFControls.ScaleControl(); - this.sliderAlpha = new CodeImp.DoomBuilder.UDMFControls.FloatSlider(); - this.sliderDesaturation = new CodeImp.DoomBuilder.UDMFControls.FloatSlider(); - this.sliderBrightness = new CodeImp.DoomBuilder.UDMFControls.IntSlider(); this.gbRotation.SuspendLayout(); this.gbPosition.SuspendLayout(); this.gbScale.SuspendLayout(); @@ -105,6 +106,17 @@ this.gbRotation.TabStop = false; this.gbRotation.Text = "Rotation:"; // + // angleControl1 + // + this.angleControl1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.angleControl1.Location = new System.Drawing.Point(6, 19); + this.angleControl1.Name = "angleControl1"; + this.angleControl1.Size = new System.Drawing.Size(102, 125); + this.angleControl1.TabIndex = 2; + this.angleControl1.Tag = "rotation"; + this.angleControl1.Value = 0F; + this.angleControl1.OnAngleChanged += new System.EventHandler(this.angleControl1_OnAngleChanged); + // // gbPosition // this.gbPosition.Controls.Add(this.positionControl1); @@ -115,6 +127,15 @@ this.gbPosition.TabStop = false; this.gbPosition.Text = "Position:"; // + // positionControl1 + // + this.positionControl1.Location = new System.Drawing.Point(-2, 20); + this.positionControl1.Name = "positionControl1"; + this.positionControl1.Size = new System.Drawing.Size(106, 127); + this.positionControl1.TabIndex = 0; + this.positionControl1.Tag = "offset"; + this.positionControl1.OnValueChanged += new System.EventHandler(this.positionControl1_OnValueChanged); + // // gbScale // this.gbScale.Controls.Add(this.scaleControl); @@ -125,6 +146,15 @@ this.gbScale.TabStop = false; this.gbScale.Text = "Scale:"; // + // scaleControl + // + this.scaleControl.Location = new System.Drawing.Point(3, 19); + this.scaleControl.Name = "scaleControl"; + this.scaleControl.Size = new System.Drawing.Size(220, 94); + this.scaleControl.TabIndex = 0; + this.scaleControl.Tag = "scale"; + this.scaleControl.OnValueChanged += new System.EventHandler(this.scaleControl_OnValueChanged); + // // bgBrightness // this.bgBrightness.Controls.Add(this.cblightabsolute); @@ -148,6 +178,17 @@ this.cblightabsolute.UseVisualStyleBackColor = true; this.cblightabsolute.CheckedChanged += new System.EventHandler(this.cblightabsolute_CheckedChanged); // + // sliderBrightness + // + this.sliderBrightness.Location = new System.Drawing.Point(6, 19); + this.sliderBrightness.Name = "sliderBrightness"; + this.sliderBrightness.ShowLabels = true; + this.sliderBrightness.Size = new System.Drawing.Size(220, 45); + this.sliderBrightness.TabIndex = 0; + this.sliderBrightness.Tag = "light"; + this.sliderBrightness.Value = 0; + this.sliderBrightness.OnValueChanged += new System.EventHandler(this.sliderBrightness_OnValueChanged); + // // tabControl1 // this.tabControl1.Controls.Add(this.tabPage1); @@ -229,6 +270,17 @@ this.cbRenderStyle.Tag = "renderstyle"; this.cbRenderStyle.SelectedIndexChanged += new System.EventHandler(this.cbRenderStyle_SelectedIndexChanged); // + // sliderAlpha + // + this.sliderAlpha.Location = new System.Drawing.Point(6, 19); + this.sliderAlpha.Name = "sliderAlpha"; + this.sliderAlpha.ShowLabels = true; + this.sliderAlpha.Size = new System.Drawing.Size(220, 45); + this.sliderAlpha.TabIndex = 0; + this.sliderAlpha.Tag = "alpha"; + this.sliderAlpha.Value = 0F; + this.sliderAlpha.OnValueChanged += new System.EventHandler(this.sliderAlpha_OnValueChanged); + // // labelGravity // this.labelGravity.AutoSize = true; @@ -262,6 +314,16 @@ this.gbDesaturation.TabStop = false; this.gbDesaturation.Text = "Desaturation:"; // + // sliderDesaturation + // + this.sliderDesaturation.Location = new System.Drawing.Point(6, 19); + this.sliderDesaturation.Name = "sliderDesaturation"; + this.sliderDesaturation.ShowLabels = true; + this.sliderDesaturation.Size = new System.Drawing.Size(220, 45); + this.sliderDesaturation.TabIndex = 0; + this.sliderDesaturation.Tag = "desaturation"; + this.sliderDesaturation.Value = 0F; + // // tabPage2 // this.tabPage2.Controls.Add(this.gbFlagsFloor); @@ -281,7 +343,7 @@ this.gbFlagsFloor.Controls.Add(this.cbnorespawn); this.gbFlagsFloor.Controls.Add(this.cbnofallingdamage); this.gbFlagsFloor.Controls.Add(this.cbdropactors); - this.gbFlagsFloor.Location = new System.Drawing.Point(6, 150); + this.gbFlagsFloor.Location = new System.Drawing.Point(6, 175); this.gbFlagsFloor.Name = "gbFlagsFloor"; this.gbFlagsFloor.Size = new System.Drawing.Size(235, 139); this.gbFlagsFloor.TabIndex = 3; @@ -345,6 +407,7 @@ // // gbFlagsWall // + this.gbFlagsWall.Controls.Add(this.cblightfog); this.gbFlagsWall.Controls.Add(this.cbsmoothlighting); this.gbFlagsWall.Controls.Add(this.cbnodecals); this.gbFlagsWall.Controls.Add(this.cbnofakecontrast); @@ -352,11 +415,23 @@ this.gbFlagsWall.Controls.Add(this.cbclipmidtex); this.gbFlagsWall.Location = new System.Drawing.Point(6, 6); this.gbFlagsWall.Name = "gbFlagsWall"; - this.gbFlagsWall.Size = new System.Drawing.Size(235, 138); + this.gbFlagsWall.Size = new System.Drawing.Size(235, 163); this.gbFlagsWall.TabIndex = 2; this.gbFlagsWall.TabStop = false; this.gbFlagsWall.Text = "Wall flags:"; // + // cblightfog + // + this.cblightfog.AutoSize = true; + this.cblightfog.Location = new System.Drawing.Point(6, 139); + this.cblightfog.Name = "cblightfog"; + this.cblightfog.Size = new System.Drawing.Size(179, 18); + this.cblightfog.TabIndex = 5; + this.cblightfog.Tag = "lightfog"; + this.cblightfog.Text = "Use UDMF light on fogged walls"; + this.cblightfog.UseVisualStyleBackColor = true; + this.cblightfog.CheckedChanged += new System.EventHandler(this.cblightfog_CheckedChanged); + // // cbsmoothlighting // this.cbsmoothlighting.AutoSize = true; @@ -413,67 +488,6 @@ this.cbclipmidtex.Text = "Clip Middle Texture"; this.cbclipmidtex.UseVisualStyleBackColor = true; // - // positionControl1 - // - this.positionControl1.Location = new System.Drawing.Point(-2, 20); - this.positionControl1.Name = "positionControl1"; - this.positionControl1.Size = new System.Drawing.Size(106, 127); - this.positionControl1.TabIndex = 0; - this.positionControl1.Tag = "offset"; - this.positionControl1.OnValueChanged += new System.EventHandler(this.positionControl1_OnValueChanged); - // - // angleControl1 - // - this.angleControl1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.angleControl1.Location = new System.Drawing.Point(6, 19); - this.angleControl1.Name = "angleControl1"; - this.angleControl1.Size = new System.Drawing.Size(102, 125); - this.angleControl1.TabIndex = 2; - this.angleControl1.Tag = "rotation"; - this.angleControl1.Value = 0F; - this.angleControl1.OnAngleChanged += new System.EventHandler(this.angleControl1_OnAngleChanged); - // - // scaleControl - // - this.scaleControl.Location = new System.Drawing.Point(3, 19); - this.scaleControl.Name = "scaleControl"; - this.scaleControl.Size = new System.Drawing.Size(220, 94); - this.scaleControl.TabIndex = 0; - this.scaleControl.Tag = "scale"; - this.scaleControl.OnValueChanged += new System.EventHandler(this.scaleControl_OnValueChanged); - // - // sliderAlpha - // - this.sliderAlpha.Location = new System.Drawing.Point(6, 19); - this.sliderAlpha.Name = "sliderAlpha"; - this.sliderAlpha.ShowLabels = true; - this.sliderAlpha.Size = new System.Drawing.Size(220, 45); - this.sliderAlpha.TabIndex = 0; - this.sliderAlpha.Tag = "alpha"; - this.sliderAlpha.Value = 0F; - this.sliderAlpha.OnValueChanged += new System.EventHandler(this.sliderAlpha_OnValueChanged); - // - // sliderDesaturation - // - this.sliderDesaturation.Location = new System.Drawing.Point(6, 19); - this.sliderDesaturation.Name = "sliderDesaturation"; - this.sliderDesaturation.ShowLabels = true; - this.sliderDesaturation.Size = new System.Drawing.Size(220, 45); - this.sliderDesaturation.TabIndex = 0; - this.sliderDesaturation.Tag = "desaturation"; - this.sliderDesaturation.Value = 0F; - // - // sliderBrightness - // - this.sliderBrightness.Location = new System.Drawing.Point(6, 19); - this.sliderBrightness.Name = "sliderBrightness"; - this.sliderBrightness.ShowLabels = true; - this.sliderBrightness.Size = new System.Drawing.Size(220, 45); - this.sliderBrightness.TabIndex = 0; - this.sliderBrightness.Tag = "light"; - this.sliderBrightness.Value = 0; - this.sliderBrightness.OnValueChanged += new System.EventHandler(this.sliderBrightness_OnValueChanged); - // // UDMFControlsForm // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); @@ -552,5 +566,6 @@ private System.Windows.Forms.CheckBox cbRelativeMode; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.CheckBox cbhidden; + private System.Windows.Forms.CheckBox cblightfog; } } \ No newline at end of file diff --git a/Source/Plugins/UMDFControls/Windows/UDMFControlsForm.cs b/Source/Plugins/UMDFControls/Windows/UDMFControlsForm.cs index 6883a001..966ff734 100644 --- a/Source/Plugins/UMDFControls/Windows/UDMFControlsForm.cs +++ b/Source/Plugins/UMDFControls/Windows/UDMFControlsForm.cs @@ -55,7 +55,7 @@ namespace CodeImp.DoomBuilder.UDMFControls updateList = new List(); - wallFlags = new CheckBox[] { cbnodecals, cbnofakecontrast, cbclipmidtex, cbsmoothlighting }; + wallFlags = new CheckBox[] { cbnodecals, cbnofakecontrast, cbclipmidtex, cbsmoothlighting, cblightfog }; sectorFlags = new CheckBox[] { cbsilent, cbnofallingdamage, cbdropactors, cbnorespawn, cbhidden }; renderStyles = new List() { "translucent", "add" }; @@ -584,6 +584,11 @@ namespace CodeImp.DoomBuilder.UDMFControls update(); } + private void cblightfog_CheckedChanged(object sender, EventArgs e) { + setSidedefProperty((string)cblightfog.Tag, (object)cblightfog.Checked); + update(); + } + private void cblightabsolute_CheckedChanged(object sender, EventArgs e) { if(cblightabsolute.Checked) sliderBrightness.SetLimits(0, 255);