From ec9d82991643e100ae53d4dcf8ff146d86b7d776 Mon Sep 17 00:00:00 2001 From: MaxED Date: Thu, 26 Sep 2013 12:43:39 +0000 Subject: [PATCH] Texture Browser: textures can now be filtered by size. Visual mode: offsets of double-sided middle textures were still clamped when not required in some cases. Updated documentation. --- Help/gzdb/actions.html | 10 +- .../features/all_modes/texture_browser.html | 2 +- .../gzdb/features/all_modes/texture_types.jpg | Bin 6952 -> 16410 bytes Help/gzdb/features/features.html | 4 +- .../Controls/ImageBrowserControl.Designer.cs | 86 ++++- Source/Core/Controls/ImageBrowserControl.cs | 24 +- Source/Core/Controls/ImageBrowserControl.resx | 221 ++++++----- Source/Core/VisualModes/VisualGeometry.cs | 17 +- .../Windows/TextureBrowserForm.Designer.cs | 16 +- Source/Core/Windows/TextureBrowserForm.resx | 364 +++++++++--------- .../VisualModes/VisualMiddleDouble.cs | 3 +- 11 files changed, 412 insertions(+), 335 deletions(-) diff --git a/Help/gzdb/actions.html b/Help/gzdb/actions.html index 766f762d..25287a00 100644 --- a/Help/gzdb/actions.html +++ b/Help/gzdb/actions.html @@ -723,10 +723,16 @@ Raises the targeted or selected floors/ceilings to match the height of adjacent sector. Hold Ctrl to raise to highest surface in selection. Also aligns selected things to ceiling. -Reset Texture Offsets + Reset Local Texture Offsets (UDMF) +
Ctrl-Shift+R
+
+ Resets upper/middle/lower texture offsets on the targeted or selected sidedef to 0, 0. Also resets sidedef's scale and floor/ceiling's scale and rotation. + + +Reset Texture Offsets
Shift+R
-Resets the texture offsets on the targeted or selected sidedef to 0, 0. Also resets sidedef's scale and floor/ceiling's scale and rotation in UDMF map format. +Resets the texture offsets on the targeted or selected sidedef to 0, 0. Rotate Clockwise diff --git a/Help/gzdb/features/all_modes/texture_browser.html b/Help/gzdb/features/all_modes/texture_browser.html index e4ea1dd9..c21ce28b 100644 --- a/Help/gzdb/features/all_modes/texture_browser.html +++ b/Help/gzdb/features/all_modes/texture_browser.html @@ -16,7 +16,7 @@
The Image browser can display the directory structure of a Folder, PK3 and PK7 resource, allowing you to group and find textures easier.
- If the current game configuration supports mixed textures and flats, you can filter textures by image type using this drop down:
+ You can filter textures by texture size. If the current game configuration supports mixed textures and flats, you can filter textures by image type using this drop down:


Technical notice:
diff --git a/Help/gzdb/features/all_modes/texture_types.jpg b/Help/gzdb/features/all_modes/texture_types.jpg index bccf5d6d0fe588be806c4ad7531badf982d64a38..578f5566184a140a1e5938b97ae0b895702b1f2e 100644 GIT binary patch literal 16410 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 diff --git a/Help/gzdb/features/features.html b/Help/gzdb/features/features.html index 16366a7f..c04149fb 100644 --- a/Help/gzdb/features/features.html +++ b/Help/gzdb/features/features.html @@ -80,7 +80,7 @@
  • You can use Color Picker plugin to edit dynamic light properties and sector's fog and tint colors in Classic and Visual modes.
  • You can use Tag Explorer plugin to view all tags and actions used in current map.
  • [new] You can apply jitter transform to any map element.
  • -
  • Image browser shows directory structure of Folder, PK3 and PK7 resources and can filter images by texture type. More info.
  • +
  • Image browser shows directory structure of Folder, PK3 and PK7 resources and can filter images by texture type and size. More info.
  • [new] Most controls of Edit Sector/Linedef/Thing forms now work in realtime (e.g. you can immediately see texture offset/scale/rotation changes while you are changing appropriate values). Action and Tag changes are still applied only after you press "OK" button.
  • [new] [UDMF] All UDMF properties (except "comment") can be edited using Edit Sector/Linedef/Thing/Vertex forms user interface.
  • Thing Edit Form has "Random angle" checkbox.
  • @@ -220,7 +220,7 @@
  • Selected things can be deleted using "Delete Item" action (default key is Delete).
  • Selected things can be cut/copied/pasted at cursor position.
  • [new] [UDMF] Floor/ceiling texture rotation is now taken into account when moving texture offsets with arrow keys.
  • -
  • [changed] [UDMF] "Reset Texture Offsets" action also resets texture scale and rotation.
  • +
  • [new] [UDMF] New action: "Reset Local Texture Offsets (UDMF)". It will reset upper/middle/lower texture offsets, texture scale and rotation.
  • [new] [UDMF] "Reset Texture Offsets" action works on floors and ceilings.
  • diff --git a/Source/Core/Controls/ImageBrowserControl.Designer.cs b/Source/Core/Controls/ImageBrowserControl.Designer.cs index 78cd6496..34ce5446 100644 --- a/Source/Core/Controls/ImageBrowserControl.Designer.cs +++ b/Source/Core/Controls/ImageBrowserControl.Designer.cs @@ -33,6 +33,8 @@ namespace CodeImp.DoomBuilder.Controls this.labelMixMode = new System.Windows.Forms.Label(); this.label = new System.Windows.Forms.Label(); this.splitter = new System.Windows.Forms.SplitContainer(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); this.cbMixMode = new System.Windows.Forms.ComboBox(); this.texturesize = new System.Windows.Forms.Label(); this.texturesizelabel = new System.Windows.Forms.Label(); @@ -40,6 +42,8 @@ namespace CodeImp.DoomBuilder.Controls this.refreshtimer = new System.Windows.Forms.Timer(this.components); this.texturesizetimer = new System.Windows.Forms.Timer(this.components); this.list = new CodeImp.DoomBuilder.Controls.OptimizedListView(); + this.filterHeight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); + this.filterWidth = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox(); this.splitter.Panel1.SuspendLayout(); this.splitter.Panel2.SuspendLayout(); this.splitter.SuspendLayout(); @@ -48,7 +52,7 @@ namespace CodeImp.DoomBuilder.Controls // labelMixMode // this.labelMixMode.AutoSize = true; - this.labelMixMode.Location = new System.Drawing.Point(3, 11); + this.labelMixMode.Location = new System.Drawing.Point(3, 9); this.labelMixMode.Name = "labelMixMode"; this.labelMixMode.Size = new System.Drawing.Size(39, 14); this.labelMixMode.TabIndex = 3; @@ -57,7 +61,7 @@ namespace CodeImp.DoomBuilder.Controls // label // this.label.AutoSize = true; - this.label.Location = new System.Drawing.Point(156, 11); + this.label.Location = new System.Drawing.Point(154, 9); this.label.Name = "label"; this.label.Size = new System.Drawing.Size(33, 14); this.label.TabIndex = 0; @@ -78,26 +82,48 @@ namespace CodeImp.DoomBuilder.Controls // // splitter.Panel2 // + this.splitter.Panel2.Controls.Add(this.label2); + this.splitter.Panel2.Controls.Add(this.filterHeight); + this.splitter.Panel2.Controls.Add(this.label1); + this.splitter.Panel2.Controls.Add(this.filterWidth); this.splitter.Panel2.Controls.Add(this.cbMixMode); this.splitter.Panel2.Controls.Add(this.labelMixMode); this.splitter.Panel2.Controls.Add(this.texturesize); this.splitter.Panel2.Controls.Add(this.texturesizelabel); this.splitter.Panel2.Controls.Add(this.objectname); this.splitter.Panel2.Controls.Add(this.label); - this.splitter.Size = new System.Drawing.Size(518, 346); + this.splitter.Size = new System.Drawing.Size(639, 346); this.splitter.SplitterDistance = 312; this.splitter.TabIndex = 0; this.splitter.TabStop = false; // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(356, 9); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(17, 14); + this.label2.TabIndex = 8; + this.label2.Text = "H:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(276, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(20, 14); + this.label1.TabIndex = 6; + this.label1.Text = "W:"; + // // cbMixMode // this.cbMixMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cbMixMode.FormattingEnabled = true; this.cbMixMode.Items.AddRange(new object[] { - "All", - "Textures", - "Flats"}); - this.cbMixMode.Location = new System.Drawing.Point(48, 7); + "All", + "Textures", + "Flats"}); + this.cbMixMode.Location = new System.Drawing.Point(48, 5); this.cbMixMode.Margin = new System.Windows.Forms.Padding(3, 3, 6, 3); this.cbMixMode.Name = "cbMixMode"; this.cbMixMode.Size = new System.Drawing.Size(90, 22); @@ -107,9 +133,9 @@ namespace CodeImp.DoomBuilder.Controls // // texturesize // - this.texturesize.Location = new System.Drawing.Point(368, 11); + this.texturesize.Location = new System.Drawing.Point(480, 9); this.texturesize.Name = "texturesize"; - this.texturesize.Size = new System.Drawing.Size(271, 14); + this.texturesize.Size = new System.Drawing.Size(100, 14); this.texturesize.TabIndex = 2; this.texturesize.Text = "1024 x 1024"; this.texturesize.Visible = false; @@ -117,7 +143,7 @@ namespace CodeImp.DoomBuilder.Controls // texturesizelabel // this.texturesizelabel.AutoSize = true; - this.texturesizelabel.Location = new System.Drawing.Point(331, 11); + this.texturesizelabel.Location = new System.Drawing.Point(443, 9); this.texturesizelabel.Name = "texturesizelabel"; this.texturesizelabel.Size = new System.Drawing.Size(31, 14); this.texturesizelabel.TabIndex = 1; @@ -127,10 +153,10 @@ namespace CodeImp.DoomBuilder.Controls // objectname // this.objectname.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.objectname.Location = new System.Drawing.Point(192, 8); + this.objectname.Location = new System.Drawing.Point(190, 6); this.objectname.Margin = new System.Windows.Forms.Padding(3, 3, 6, 3); this.objectname.Name = "objectname"; - this.objectname.Size = new System.Drawing.Size(122, 20); + this.objectname.Size = new System.Drawing.Size(69, 20); this.objectname.TabIndex = 0; this.objectname.TabStop = false; this.objectname.TextChanged += new System.EventHandler(this.objectname_TextChanged); @@ -154,7 +180,7 @@ namespace CodeImp.DoomBuilder.Controls this.list.MultiSelect = false; this.list.Name = "list"; this.list.OwnerDraw = true; - this.list.Size = new System.Drawing.Size(518, 312); + this.list.Size = new System.Drawing.Size(639, 312); this.list.TabIndex = 1; this.list.TabStop = false; this.list.TileSize = new System.Drawing.Size(90, 90); @@ -165,6 +191,34 @@ namespace CodeImp.DoomBuilder.Controls this.list.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.list_ItemSelectionChanged); this.list.KeyDown += new System.Windows.Forms.KeyEventHandler(this.list_KeyDown); // + // filterHeight + // + this.filterHeight.AllowDecimal = false; + this.filterHeight.AllowNegative = false; + this.filterHeight.AllowRelative = false; + this.filterHeight.ButtonStep = 1; + this.filterHeight.ButtonStepFloat = 1F; + this.filterHeight.Location = new System.Drawing.Point(375, 4); + this.filterHeight.Name = "filterHeight"; + this.filterHeight.Size = new System.Drawing.Size(54, 24); + this.filterHeight.StepValues = null; + this.filterHeight.TabIndex = 7; + this.filterHeight.WhenTextChanged += new System.EventHandler(this.filterSize_WhenTextChanged); + // + // filterWidth + // + this.filterWidth.AllowDecimal = false; + this.filterWidth.AllowNegative = false; + this.filterWidth.AllowRelative = false; + this.filterWidth.ButtonStep = 1; + this.filterWidth.ButtonStepFloat = 1F; + this.filterWidth.Location = new System.Drawing.Point(298, 4); + this.filterWidth.Name = "filterWidth"; + this.filterWidth.Size = new System.Drawing.Size(54, 24); + this.filterWidth.StepValues = null; + this.filterWidth.TabIndex = 5; + this.filterWidth.WhenTextChanged += new System.EventHandler(this.filterSize_WhenTextChanged); + // // ImageBrowserControl // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); @@ -172,7 +226,7 @@ namespace CodeImp.DoomBuilder.Controls this.Controls.Add(this.splitter); this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Name = "ImageBrowserControl"; - this.Size = new System.Drawing.Size(518, 346); + this.Size = new System.Drawing.Size(639, 346); this.Resize += new System.EventHandler(this.ImageBrowserControl_Resize); this.splitter.Panel1.ResumeLayout(false); this.splitter.Panel2.ResumeLayout(false); @@ -194,6 +248,10 @@ namespace CodeImp.DoomBuilder.Controls private System.Windows.Forms.ComboBox cbMixMode; private System.Windows.Forms.Label label; private System.Windows.Forms.Label labelMixMode; + private ButtonsNumericTextbox filterWidth; + private System.Windows.Forms.Label label2; + private ButtonsNumericTextbox filterHeight; + private System.Windows.Forms.Label label1; } } diff --git a/Source/Core/Controls/ImageBrowserControl.cs b/Source/Core/Controls/ImageBrowserControl.cs index 32e374d2..d246e93e 100644 --- a/Source/Core/Controls/ImageBrowserControl.cs +++ b/Source/Core/Controls/ImageBrowserControl.cs @@ -79,6 +79,11 @@ namespace CodeImp.DoomBuilder.Controls // Initialize InitializeComponent(); items = new List(); + + //mxd. + StepsList sizes = new StepsList { 4, 8, 16, 32, 48, 64, 96, 128, 196, 256, 512, 1024 }; + filterWidth.StepValues = sizes; + filterHeight.StepValues = sizes; } // This applies the application settings @@ -192,6 +197,11 @@ namespace CodeImp.DoomBuilder.Controls } } + //mxd + private void filterSize_WhenTextChanged(object sender, EventArgs e) { + objectname_TextChanged(sender, e); + } + // Key pressed in list private void list_KeyDown(object sender, KeyEventArgs e) { @@ -458,12 +468,16 @@ namespace CodeImp.DoomBuilder.Controls // Clear list first // Group property of items will be set to null, we will restore it later list.Items.Clear(); + + //mxd. Filtering by texture size? + int w = filterWidth.GetResult(-1); + int h = filterHeight.GetResult(-1); // Go for all items foreach(ImageBrowserItem i in items) { // Add item if valid - if(ValidateItem(i)) + if(ValidateItem(i) && ValidateItemSize(i, w, h)) { i.Group = i.ListGroup; i.Selected = false; @@ -515,6 +529,14 @@ namespace CodeImp.DoomBuilder.Controls return i.Text.Contains(objectname.Text); } + + //mxd. This validates an item's texture size + private bool ValidateItemSize(ImageBrowserItem i, int w, int h) { + if (!i.icon.IsPreviewLoaded) return true; + if (w > 0 && i.icon.Width != w) return false; + if (h > 0 && i.icon.Height != h) return false; + return true; + } // This sends the focus to the textbox public void FocusTextbox() diff --git a/Source/Core/Controls/ImageBrowserControl.resx b/Source/Core/Controls/ImageBrowserControl.resx index 9411bd56..5a4d66c1 100644 --- a/Source/Core/Controls/ImageBrowserControl.resx +++ b/Source/Core/Controls/ImageBrowserControl.resx @@ -1,135 +1,132 @@ + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - text/microsoft-resx + text/microsoft-resx - 2.0 + 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - True + True - True + True - 103, 17 + 103, 17 - 215, 17 - - - True + 215, 17 \ No newline at end of file diff --git a/Source/Core/VisualModes/VisualGeometry.cs b/Source/Core/VisualModes/VisualGeometry.cs index 0f9ab739..89ba4d56 100644 --- a/Source/Core/VisualModes/VisualGeometry.cs +++ b/Source/Core/VisualModes/VisualGeometry.cs @@ -153,12 +153,17 @@ namespace CodeImp.DoomBuilder.VisualModes protected void SetVertices(ICollection verts) { // Copy vertices - vertices = new WorldVertex[verts.Count]; - verts.CopyTo(vertices, 0); - triangles = vertices.Length / 3; - - //mxd - CalculateNormals(); + if (verts != null) { //mxd + vertices = new WorldVertex[verts.Count]; + verts.CopyTo(vertices, 0); + triangles = vertices.Length / 3; + + //mxd + CalculateNormals(); + } else { + vertices = new WorldVertex[1]; + triangles = 0; + } if(sector != null) sector.NeedsUpdateGeo = true; } diff --git a/Source/Core/Windows/TextureBrowserForm.Designer.cs b/Source/Core/Windows/TextureBrowserForm.Designer.cs index 0df17a7c..29d3a69b 100644 --- a/Source/Core/Windows/TextureBrowserForm.Designer.cs +++ b/Source/Core/Windows/TextureBrowserForm.Designer.cs @@ -41,9 +41,9 @@ namespace CodeImp.DoomBuilder.Windows // 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(781, 596); + this.cancel.Location = new System.Drawing.Point(783, 597); this.cancel.Name = "cancel"; - this.cancel.Size = new System.Drawing.Size(100, 25); + this.cancel.Size = new System.Drawing.Size(98, 25); this.cancel.TabIndex = 3; this.cancel.TabStop = false; this.cancel.Text = "Cancel"; @@ -53,9 +53,9 @@ namespace CodeImp.DoomBuilder.Windows // 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(675, 596); + this.apply.Location = new System.Drawing.Point(681, 597); this.apply.Name = "apply"; - this.apply.Size = new System.Drawing.Size(100, 25); + this.apply.Size = new System.Drawing.Size(98, 25); this.apply.TabIndex = 2; this.apply.TabStop = false; this.apply.Text = "OK"; @@ -77,11 +77,11 @@ namespace CodeImp.DoomBuilder.Windows // tvTextureSets // this.tvTextureSets.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.tvTextureSets.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.tvTextureSets.ImageIndex = 0; this.tvTextureSets.ImageList = this.smallimages; - this.tvTextureSets.Location = new System.Drawing.Point(12, 9); + this.tvTextureSets.Location = new System.Drawing.Point(681, 12); this.tvTextureSets.Name = "tvTextureSets"; this.tvTextureSets.SelectedImageIndex = 0; this.tvTextureSets.Size = new System.Drawing.Size(200, 576); @@ -96,7 +96,7 @@ namespace CodeImp.DoomBuilder.Windows | System.Windows.Forms.AnchorStyles.Right))); this.browser.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.browser.HideInputBox = false; - this.browser.Location = new System.Drawing.Point(218, 9); + this.browser.Location = new System.Drawing.Point(12, 12); this.browser.Name = "browser"; this.browser.PreventSelection = false; this.browser.Size = new System.Drawing.Size(663, 610); @@ -111,7 +111,7 @@ namespace CodeImp.DoomBuilder.Windows 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(893, 631); + this.ClientSize = new System.Drawing.Size(893, 628); this.Controls.Add(this.tvTextureSets); this.Controls.Add(this.cancel); this.Controls.Add(this.apply); diff --git a/Source/Core/Windows/TextureBrowserForm.resx b/Source/Core/Windows/TextureBrowserForm.resx index 953a8ef8..27f8f853 100644 --- a/Source/Core/Windows/TextureBrowserForm.resx +++ b/Source/Core/Windows/TextureBrowserForm.resx @@ -1,210 +1,198 @@ + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - text/microsoft-resx + text/microsoft-resx - 2.0 + 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - True - - - True - - 17, 17 + 17, 17 - - AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w - LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAc - DwAAAk1TRnQBSQFMAgEBBwEAAYQBAAGEAQABEAEAARYBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo - AwABQAMAASwDAAEBAQABCAYAAQsYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA - AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 - AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA - AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm - AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM - AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA - ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz - AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ - AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM - AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA - AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA - AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ - AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ - AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA - AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm - ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ - Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz - AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA - AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM - AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM - ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM - Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA - AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM - AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ - AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz - AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm - AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw - AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/9MADUsIAAKZGgAHDgEQ - AW0BbAIOAgABUQ1SAUsFAAHvAXMBHAFuAUoBBxcAAQ4BDQFsAZABuwIJAfcCbAFmAg4BAAFSAXoBUgGg - CHoBUgGgAVIBSwMAAZkBbgN0AVIBSwFEAUoBmR0AAQ4B6gFsAQ8BDgEAAVIBegFSAaABegFYBnkBWAGg - AVIBSwIAAXMBbgF0AZkCdAFSAksBbgFEAW4BGhQAAW0HAAFDAW0BDgIAAVIBegFSAaAKcwFSAUsBAAEc - AXQBmgJSAXQBegFMBUsBcxMAAW0B8QFtAQcBvAHwAfECAAERAQcB7AIAAVIBegFSAaABcwL/AfMD9ALz - AXMBUgFLAQABmQFzAVEBdAF6AnQBTANLAUoBSwGTEwADbQEHArwB8AIAAm0BDgIAAVIBegFSAaABcwH/ - AdwF2wH0AXMBUgFLAQAB7AEcAXkCdAoSEgABbQHwAwcCvAIAAREBBwHsAgABUgGaAVIB/wG8Af8GGQHz - AbwBUgFLAQACHAJ0AgcD7wH3ARwD7QESEgABbQHwAe8DBwG8AgACbQEOAgABUgGgDVICAAHtARwBdAFL - ARwI/wHtARISAAFtAfAC7wMHAgABEQEHAewCAAFSA6ABHAH/Aa4BmgG9AXUB4wGuAf8B7QHrAgAB7AFz - AXQBSwH3Af8GrgH/Ae0BEhIAAW0B8APvAgcCAAJtAQ4CAAFSAf8CoAH3Af8BrgL/AnUBrgH/Ae0B6wIA - AZMDdAHvAf8BrgGUAf8BmgGUAa4B/wHtARISAAFtAbwE7wEHAgABEQEHAewDAAFSAv8B7wH/Aa4BlAH/ - AZoBlAGuAf8B7QHrAgABHAGZAcMBegHvAf8C0wH/AZoC0wH/Ae0BEhIACG0BAAEPAewBDwQAAlIB7wH/ - AdMErgHTAf8B7QHrAwACHAGaAe8B/wbTAf8B7QESEgAJDgHrAZEBDQYAAe8B/wbTAf8B7QHrBAABmQF0 - AQcI/wHtARISAAEOAWUBkAG7BQkB9wFsAg4FAAEHCP8B7QHrBgACBwPvAfcBHAPtHgABDgYAAgcD7wH3 - ARwD7QkAApn/AKgAAfcCrgFtAWwB6gJsBGY0AAH3Bf8C9AMZAWYJAAgOEwAB9wKuAW0BbAHqAmwEZgQA - AbUC/wKTAZkBBwG7AbQCGQNmBgABDgEABe8B9wEOAwACcwHrAW4BbQFKARMBFQFDAREBDwEOAQ8DAAH3 - Bf8C9AMZAWYEAAG1Av8BkwGaAXoBnwGeAbsB9AHzAWYBGQFmBQABDgHvAQAB8ALxAvIBvAEOAwABcwIc - BzECSwFEAe0CAAG1Av8CkwGZAQcBuwG0AhkDZgIAAbUC/wG7AQgCnwF+AXkC9AFsARkDZgIAAQ4B7wEH - AQAB8ALxAvIB8AEOAwAB7AF6ARwBmgN6AlkBUwFSATEBSwHqAgABtQL/AZMBmgF6AZ8BngG7AfQB8wFm - ARkBZgIAAbUC/wLbAQkBCAF+AXkB/wH0AWwB8wFmARkBZgIAAQ4CAAHvAbwB8ALxAfIB8AEOAwAB7QF6 - ARwBmQV6AlkBUwExAUQB7QEAAbUC/wG7AQgCnwF+AXkC9AFsARkDZgEHCv8BbAH0AWwBGQFmAgABDgHw - AgcCvALwAfEBvAEOAwAB7QGaAXoBHAGaBXoDWQFLAW0BAAG1Av8C2wEJAQgBfgF5Af8B9AFsAfMBZgEZ - AWYCBwS1AfcBtQLtApEB9AFsAfMBZgIAAQ4B8AMHArwC8AG8AQ4DAAEcAZoBegEcAZkHegFZAVIBSgHt - AQcK/wFsAfQBbAEZAWYBtQH/AQcK/wFsAfQBbAIAAQ4B8AQHArwB8AG8AQ4DAAEcAZoBoAF6ARwHmgJ6 - AXQBbQIHBLUB9wG1Au0CkQH0AWwB8wFmAbUB/wIHBLUB9wG1Au0CkQH0AWwCAAEOAfAC7wQHAbwBBwEO - AwABHAOgCBwC7QHsAXMCAAEHCv8BbAH0AWwBBwP/AQcK/wFsAgABDgHwA+8FBwEOAwABHASgAZoGegFz - BQACBwS1AfcBtQLtApEB9AFsAgcCtQIHBLUB9wG1Au0CkQIAAQ4BvATvBAcBDgMAARwBoAHDA6ABegMc - Au0BcwcAAQcK/wFsAgABBwr/AWwB9AFsAgABDgG8Be8DBwEOAwABHAGZAsMCoAEcAe0MAAIHBLUB9wG1 - Au0CkQIAAgcEtQH3AbUC7QKRAfQBbAIAAQ4B9APwA7wCBwEOBAAFHAHtHQABBwr/AWwCAAsOJwACBwS1 - AfcBtQLtApHgAAFCAU0BPgcAAT4DAAEoAwABQAMAASwDAAEBAQABAQUAAWABARYAA/8BAAb/AgAG/wIA - Bv8CAAH/AcMBwAEBAf4BfwIAAeABAQGAAQAB+AEfAgABwAEBAgAB4AEHAgABgAEBAgABwAEBAgAB4AEj - AgABgAEBAgABwAEjAgABgAEBAgABwAEjAgABgAMAAcABIwIAAYADAAHAASMBAAEBAYADAAHAASMBAAEB - AYADAAHAASMBAAEBAYADAAHAASMBgAEBAYADAAHAASMBwAEBAcADAAGAAQEB8AEBAeADAAHAAQEB8AEB - AfgBAQIAAeABAwHwAQMB/gF/AgAG/wIABv8CAAb/AgAa/wEAAQ8G/wEAAQ8B+AEHAv8BAAEPAQABAwHw - AQcBAAEHAQABDwEAAQMB4AEHAQABAwEAAQMCAAHAAQcBAAEDAQABAwIAAcABBwEAAQEEAAHAAQcBAAEB - BAABwAEHBgABwAEHBgABwAEHAgABwAMAAcABBwEAAQcBwAMAAcABBwEAAQcB8AEAAcABAAHAAQcBAAH/ - AfABAAHAAQABwAEHAYED/wHwAQABwAEHBP8B8AEAHP8L + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAc + DwAAAk1TRnQBSQFMAgEBBwEAAcwBAAHMAQABEAEAARYBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAASwDAAEBAQABCAYAAQsYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/9MADUsIAAKZGgAHDgEQ + AW0BbAIOAgABUQ1SAUsFAAHvAXMBHAFuAUoBBxcAAQ4BDQFsAZABuwIJAfcCbAFmAg4BAAFSAXoBUgGg + CHoBUgGgAVIBSwMAAZkBbgN0AVIBSwFEAUoBmR0AAQ4B6gFsAQ8BDgEAAVIBegFSAaABegFYBnkBWAGg + AVIBSwIAAXMBbgF0AZkCdAFSAksBbgFEAW4BGhQAAW0HAAFDAW0BDgIAAVIBegFSAaAKcwFSAUsBAAEc + AXQBmgJSAXQBegFMBUsBcxMAAW0B8QFtAQcBvAHwAfECAAERAQcB7AIAAVIBegFSAaABcwL/AfMD9ALz + AXMBUgFLAQABmQFzAVEBdAF6AnQBTANLAUoBSwGTEwADbQEHArwB8AIAAm0BDgIAAVIBegFSAaABcwH/ + AdwF2wH0AXMBUgFLAQAB7AEcAXkCdAoSEgABbQHwAwcCvAIAAREBBwHsAgABUgGaAVIB/wG8Af8GGQHz + AbwBUgFLAQACHAJ0AgcD7wH3ARwD7QESEgABbQHwAe8DBwG8AgACbQEOAgABUgGgDVICAAHtARwBdAFL + ARwI/wHtARISAAFtAfAC7wMHAgABEQEHAewCAAFSA6ABHAH/Aa4BmgG9AXUB4wGuAf8B7QHrAgAB7AFz + AXQBSwH3Af8GrgH/Ae0BEhIAAW0B8APvAgcCAAJtAQ4CAAFSAf8CoAH3Af8BrgL/AnUBrgH/Ae0B6wIA + AZMDdAHvAf8BrgGUAf8BmgGUAa4B/wHtARISAAFtAbwE7wEHAgABEQEHAewDAAFSAv8B7wH/Aa4BlAH/ + AZoBlAGuAf8B7QHrAgABHAGZAcMBegHvAf8C0wH/AZoC0wH/Ae0BEhIACG0BAAEPAewBDwQAAlIB7wH/ + AdMErgHTAf8B7QHrAwACHAGaAe8B/wbTAf8B7QESEgAJDgHrAZEBDQYAAe8B/wbTAf8B7QHrBAABmQF0 + AQcI/wHtARISAAEOAWUBkAG7BQkB9wFsAg4FAAEHCP8B7QHrBgACBwPvAfcBHAPtHgABDgYAAgcD7wH3 + ARwD7QkAApn/AKgAAfcCrgFtAWwB6gJsBGY0AAH3Bf8C9AMZAWYJAAgOEwAB9wKuAW0BbAHqAmwEZgQA + AbUC/wKTAZkBBwG7AbQCGQNmBgABDgEABe8B9wEOAwACcwHrAW4BbQFKARMBFQFDAREBDwEOAQ8DAAH3 + Bf8C9AMZAWYEAAG1Av8BkwGaAXoBnwGeAbsB9AHzAWYBGQFmBQABDgHvAQAB8ALxAvIBvAEOAwABcwIc + BzECSwFEAe0CAAG1Av8CkwGZAQcBuwG0AhkDZgIAAbUC/wG7AQgCnwF+AXkC9AFsARkDZgIAAQ4B7wEH + AQAB8ALxAvIB8AEOAwAB7AF6ARwBmgN6AlkBUwFSATEBSwHqAgABtQL/AZMBmgF6AZ8BngG7AfQB8wFm + ARkBZgIAAbUC/wLbAQkBCAF+AXkB/wH0AWwB8wFmARkBZgIAAQ4CAAHvAbwB8ALxAfIB8AEOAwAB7QF6 + ARwBmQV6AlkBUwExAUQB7QEAAbUC/wG7AQgCnwF+AXkC9AFsARkDZgEHCv8BbAH0AWwBGQFmAgABDgHw + AgcCvALwAfEBvAEOAwAB7QGaAXoBHAGaBXoDWQFLAW0BAAG1Av8C2wEJAQgBfgF5Af8B9AFsAfMBZgEZ + AWYCBwS1AfcBtQLtApEB9AFsAfMBZgIAAQ4B8AMHArwC8AG8AQ4DAAEcAZoBegEcAZkHegFZAVIBSgHt + AQcK/wFsAfQBbAEZAWYBtQH/AQcK/wFsAfQBbAIAAQ4B8AQHArwB8AG8AQ4DAAEcAZoBoAF6ARwHmgJ6 + AXQBbQIHBLUB9wG1Au0CkQH0AWwB8wFmAbUB/wIHBLUB9wG1Au0CkQH0AWwCAAEOAfAC7wQHAbwBBwEO + AwABHAOgCBwC7QHsAXMCAAEHCv8BbAH0AWwBBwP/AQcK/wFsAgABDgHwA+8FBwEOAwABHASgAZoGegFz + BQACBwS1AfcBtQLtApEB9AFsAgcCtQIHBLUB9wG1Au0CkQIAAQ4BvATvBAcBDgMAARwBoAHDA6ABegMc + Au0BcwcAAQcK/wFsAgABBwr/AWwB9AFsAgABDgG8Be8DBwEOAwABHAGZAsMCoAEcAe0MAAIHBLUB9wG1 + Au0CkQIAAgcEtQH3AbUC7QKRAfQBbAIAAQ4B9APwA7wCBwEOBAAFHAHtHQABBwr/AWwCAAsOJwACBwS1 + AfcBtQLtApHgAAFCAU0BPgcAAT4DAAEoAwABQAMAASwDAAEBAQABAQUAAWABARYAA/8BAAb/AgAG/wIA + Bv8CAAH/AcMBwAEBAf4BfwIAAeABAQGAAQAB+AEfAgABwAEBAgAB4AEHAgABgAEBAgABwAEBAgAB4AEj + AgABgAEBAgABwAEjAgABgAEBAgABwAEjAgABgAMAAcABIwIAAYADAAHAASMBAAEBAYADAAHAASMBAAEB + AYADAAHAASMBAAEBAYADAAHAASMBgAEBAYADAAHAASMBwAEBAcADAAGAAQEB8AEBAeADAAHAAQEB8AEB + AfgBAQIAAeABAwHwAQMB/gF/AgAG/wIABv8CAAb/AgAa/wEAAQ8G/wEAAQ8B+AEHAv8BAAEPAQABAwHw + AQcBAAEHAQABDwEAAQMB4AEHAQABAwEAAQMCAAHAAQcBAAEDAQABAwIAAcABBwEAAQEEAAHAAQcBAAEB + BAABwAEHBgABwAEHBgABwAEHAgABwAMAAcABBwEAAQcBwAMAAcABBwEAAQcB8AEAAcABAAHAAQcBAAH/ + AfABAAHAAQABwAEHAYED/wHwAQABwAEHBP8B8AEAHP8L - - True - - - True - - True + True \ No newline at end of file diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleDouble.cs b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleDouble.cs index d6ead83d..0bafe158 100644 --- a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleDouble.cs +++ b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleDouble.cs @@ -229,6 +229,7 @@ namespace CodeImp.DoomBuilder.BuilderModes } } + base.SetVertices(null); //mxd return false; } @@ -286,7 +287,7 @@ namespace CodeImp.DoomBuilder.BuilderModes Sidedef.Fields["offsetx_mid"] = new UniValue(UniversalType.Float, getRoundedTextureOffset(oldx, xy.X, scalex, Texture != null ? Texture.Width : -1)); //mxd //mxd. Don't clamp offsetY of clipped mid textures - bool dontClamp = (Texture == null || Sidedef.IsFlagSet("clipmidtex") || Sidedef.Line.IsFlagSet("clipmidtex")); + bool dontClamp = (Texture == null || (!Sidedef.IsFlagSet("wrapmidtex") && !Sidedef.Line.IsFlagSet("wrapmidtex"))); Sidedef.Fields["offsety_mid"] = new UniValue(UniversalType.Float, getRoundedTextureOffset(oldy, xy.Y, scaley, dontClamp ? -1 : Texture.Height)); }