From 47cec444b5fd2f36c123b95da1d29cb95cd1503c Mon Sep 17 00:00:00 2001 From: biwa <6475593+biwa@users.noreply.github.com> Date: Sun, 3 May 2020 17:25:07 +0200 Subject: [PATCH] Slopes of 3D floor are now preserved when dragging the tagged sectors Added option to lock texture offsets of 3D floors when dragging the tagged sectors --- .../Plugins/BuilderModes/BuilderModes.csproj | 3 + .../BuilderModes/BuilderModesMono.csproj | 3 + .../ClassicModes/DragGeometryMode.cs | 60 +- .../BuilderModes/ClassicModes/LinedefsMode.cs | 9 +- .../BuilderModes/ClassicModes/SectorsMode.cs | 7 +- .../BuilderModes/ClassicModes/VerticesMode.cs | 2 + .../BuilderModes/General/BuilderPlug.cs | 5 + .../Interface/MenusForm.Designer.cs | 711 +++++++++--------- .../BuilderModes/Interface/MenusForm.cs | 9 + .../BuilderModes/Interface/MenusForm.resx | 26 +- .../Properties/Resources.Designer.cs | 12 +- .../BuilderModes/Properties/Resources.resx | 9 +- .../Resources/TextureLock3Dfloor.png | Bin 0 -> 383 bytes 13 files changed, 467 insertions(+), 389 deletions(-) create mode 100644 Source/Plugins/BuilderModes/Resources/TextureLock3Dfloor.png diff --git a/Source/Plugins/BuilderModes/BuilderModes.csproj b/Source/Plugins/BuilderModes/BuilderModes.csproj index 068136078..5bbde87ca 100755 --- a/Source/Plugins/BuilderModes/BuilderModes.csproj +++ b/Source/Plugins/BuilderModes/BuilderModes.csproj @@ -693,6 +693,9 @@ <Install>true</Install> </BootstrapperPackage> </ItemGroup> + <ItemGroup> + <None Include="Resources\TextureLock3Dfloor.png" /> + </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. diff --git a/Source/Plugins/BuilderModes/BuilderModesMono.csproj b/Source/Plugins/BuilderModes/BuilderModesMono.csproj index 4f993003c..3da6debad 100644 --- a/Source/Plugins/BuilderModes/BuilderModesMono.csproj +++ b/Source/Plugins/BuilderModes/BuilderModesMono.csproj @@ -693,6 +693,9 @@ <Install>true</Install> </BootstrapperPackage> </ItemGroup> + <ItemGroup> + <Content Include="Resources\TextureLock3Dfloor.png" /> + </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. diff --git a/Source/Plugins/BuilderModes/ClassicModes/DragGeometryMode.cs b/Source/Plugins/BuilderModes/ClassicModes/DragGeometryMode.cs index 39f8b9119..1e6909a91 100755 --- a/Source/Plugins/BuilderModes/ClassicModes/DragGeometryMode.cs +++ b/Source/Plugins/BuilderModes/ClassicModes/DragGeometryMode.cs @@ -427,33 +427,55 @@ namespace CodeImp.DoomBuilder.BuilderModes General.Map.Map.SnapAllToAccuracy(); //mxd. Update floor/ceiling texture offsets and slopes? - if(General.Map.UDMF) + if (General.Map.UDMF) { + Dictionary<Sector, List<Sector>> threedfloorcontrolsectors = new Dictionary<Sector, List<Sector>>(); Vector2D offset = dragitem.Position - dragitemposition; // Sectors may've been created/removed when applying dragging... HashSet<Sector> draggedsectors = new HashSet<Sector>(General.Map.Map.GetMarkedSectors(true)); - foreach(Sector ss in selectedsectors) if(!ss.IsDisposed) draggedsectors.Add(ss); - + foreach (Sector ss in selectedsectors) if (!ss.IsDisposed) draggedsectors.Add(ss); + + // Sectors that have to be updated. They contain the dragged sectors, but also 3D floor control sectors + HashSet<Sector> updatesectors = new HashSet<Sector>(draggedsectors); + + // Check if the dragged sectors are referenced as 3D floors, and add the control sectors to the list of + // sectors that need updating + foreach (Linedef ld in General.Map.Map.Linedefs) + { + if (ld.Action != 160) // Action 160 defines a 3D floor + continue; + + foreach (Sector s in draggedsectors) + { + if (ld.Args[0] == 0 || !s.Tags.Contains(ld.Args[0])) // First argument of the action is the sector tag. 0 is not a valid value + continue; + + updatesectors.Add(ld.Front.Sector); + } + } + // Update floor/ceiling texture offsets? - if(BuilderPlug.Me.LockSectorTextureOffsetsWhileDragging) + foreach (Sector s in updatesectors) { + bool updateoffsets = (draggedsectors.Contains(s) && BuilderPlug.Me.LockSectorTextureOffsetsWhileDragging) || (!draggedsectors.Contains(s) && BuilderPlug.Me.Lock3DFloorSectorTextureOffsetsWhileDragging); - foreach(Sector s in draggedsectors) + // Update texture offsets + if (updateoffsets) { s.Fields.BeforeFieldsChange(); // Update ceiling offset - if(s.LongCeilTexture != MapSet.EmptyLongName) + if (s.LongCeilTexture != MapSet.EmptyLongName) { ImageData texture = General.Map.Data.GetFlatImage(s.CeilTexture); - if(texture != null) + if (texture != null) { float scalex = s.Fields.GetValue("xscaleceiling", 1.0f); float scaley = s.Fields.GetValue("yscaleceiling", 1.0f); - if(scalex != 0 && scaley != 0) + if (scalex != 0 && scaley != 0) { Vector2D ceiloffset = new Vector2D(-offset.x, offset.y).GetRotated(-Angle2D.DegToRad((int)s.Fields.GetValue("rotationceiling", 0f))); ceiloffset.x += s.Fields.GetValue("xpanningceiling", 0f); @@ -462,25 +484,25 @@ namespace CodeImp.DoomBuilder.BuilderModes int texturewidth = (int)Math.Round(texture.Width / scalex); int textureheight = (int)Math.Round(texture.Height / scaley); - if(!s.Fields.ContainsKey("xpanningceiling")) s.Fields.Add("xpanningceiling", new UniValue(UniversalType.Float, (float)Math.Round(ceiloffset.x % texturewidth))); + if (!s.Fields.ContainsKey("xpanningceiling")) s.Fields.Add("xpanningceiling", new UniValue(UniversalType.Float, (float)Math.Round(ceiloffset.x % texturewidth))); else s.Fields["xpanningceiling"].Value = (float)Math.Round(ceiloffset.x % texturewidth); - if(!s.Fields.ContainsKey("ypanningceiling")) s.Fields.Add("ypanningceiling", new UniValue(UniversalType.Float, (float)Math.Round(ceiloffset.y % textureheight))); + if (!s.Fields.ContainsKey("ypanningceiling")) s.Fields.Add("ypanningceiling", new UniValue(UniversalType.Float, (float)Math.Round(ceiloffset.y % textureheight))); else s.Fields["ypanningceiling"].Value = (float)Math.Round(ceiloffset.y % textureheight); } } } // Update floor offset - if(s.LongFloorTexture != MapSet.EmptyLongName) + if (s.LongFloorTexture != MapSet.EmptyLongName) { ImageData texture = General.Map.Data.GetFlatImage(s.FloorTexture); - if(texture != null) + if (texture != null) { float scalex = s.Fields.GetValue("xscalefloor", 1.0f); float scaley = s.Fields.GetValue("yscalefloor", 1.0f); - if(scalex != 0 && scaley != 0) + if (scalex != 0 && scaley != 0) { Vector2D flooroffset = new Vector2D(-offset.x, offset.y).GetRotated(-Angle2D.DegToRad((int)s.Fields.GetValue("rotationfloor", 0f))); flooroffset.x += s.Fields.GetValue("xpanningfloor", 0f); @@ -489,22 +511,18 @@ namespace CodeImp.DoomBuilder.BuilderModes int texturewidth = (int)Math.Round(texture.Width / scalex); int textureheight = (int)Math.Round(texture.Height / scaley); - if(!s.Fields.ContainsKey("xpanningfloor")) s.Fields.Add("xpanningfloor", new UniValue(UniversalType.Float, (float)Math.Round(flooroffset.x % texturewidth))); + if (!s.Fields.ContainsKey("xpanningfloor")) s.Fields.Add("xpanningfloor", new UniValue(UniversalType.Float, (float)Math.Round(flooroffset.x % texturewidth))); else s.Fields["xpanningfloor"].Value = (float)Math.Round(flooroffset.x % texturewidth); - if(!s.Fields.ContainsKey("ypanningfloor")) s.Fields.Add("ypanningfloor", new UniValue(UniversalType.Float, (float)Math.Round(flooroffset.y % textureheight))); + if (!s.Fields.ContainsKey("ypanningfloor")) s.Fields.Add("ypanningfloor", new UniValue(UniversalType.Float, (float)Math.Round(flooroffset.y % textureheight))); else s.Fields["ypanningfloor"].Value = (float)Math.Round(flooroffset.y % textureheight); } } } } - } - // Update slopes - foreach(Sector s in draggedsectors) - { // Update floor slope? - if(s.FloorSlope.GetLengthSq() > 0 && !float.IsNaN(s.FloorSlopeOffset / s.FloorSlope.z)) + if (s.FloorSlope.GetLengthSq() > 0 && !float.IsNaN(s.FloorSlopeOffset / s.FloorSlope.z)) { Plane floor = new Plane(s.FloorSlope, s.FloorSlopeOffset); Vector2D center = new Vector2D(s.BBox.X + s.BBox.Width / 2, s.BBox.Y + s.BBox.Height / 2); @@ -512,7 +530,7 @@ namespace CodeImp.DoomBuilder.BuilderModes } // Update ceiling slope? - if(s.CeilSlope.GetLengthSq() > 0 && !float.IsNaN(s.CeilSlopeOffset / s.CeilSlope.z)) + if (s.CeilSlope.GetLengthSq() > 0 && !float.IsNaN(s.CeilSlopeOffset / s.CeilSlope.z)) { Plane ceiling = new Plane(s.CeilSlope, s.CeilSlopeOffset); Vector2D center = new Vector2D(s.BBox.X + s.BBox.Width / 2, s.BBox.Y + s.BBox.Height / 2); diff --git a/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs index 4361e33f7..139760017 100755 --- a/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs +++ b/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs @@ -529,8 +529,12 @@ namespace CodeImp.DoomBuilder.BuilderModes General.Interface.AddButton(BuilderPlug.Me.MenusForm.CurveLinedefs); General.Interface.AddButton(BuilderPlug.Me.MenusForm.MarqueSelectTouching); //mxd General.Interface.AddButton(BuilderPlug.Me.MenusForm.SyncronizeThingEditButton); //mxd - if(General.Map.UDMF) General.Interface.AddButton(BuilderPlug.Me.MenusForm.TextureOffsetLock, ToolbarSection.Geometry); //mxd - + if (General.Map.UDMF) + { + General.Interface.AddButton(BuilderPlug.Me.MenusForm.TextureOffsetLock, ToolbarSection.Geometry); //mxd + General.Interface.AddButton(BuilderPlug.Me.MenusForm.TextureOffset3DFloorLock, ToolbarSection.Geometry); + } + //mxd. Update the tooltip BuilderPlug.Me.MenusForm.SyncronizeThingEditButton.ToolTipText = "Synchronized Things Editing" + Environment.NewLine + BuilderPlug.Me.MenusForm.SyncronizeThingEditLinedefsItem.ToolTipText; General.Interface.EndToolbarUpdate(); //mxd @@ -561,6 +565,7 @@ namespace CodeImp.DoomBuilder.BuilderModes General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.MarqueSelectTouching); //mxd General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.SyncronizeThingEditButton); //mxd General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.TextureOffsetLock); //mxd + General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.TextureOffset3DFloorLock); General.Interface.EndToolbarUpdate(); //mxd // Going to EditSelectionMode? diff --git a/Source/Plugins/BuilderModes/ClassicModes/SectorsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/SectorsMode.cs index db57de750..d22150329 100755 --- a/Source/Plugins/BuilderModes/ClassicModes/SectorsMode.cs +++ b/Source/Plugins/BuilderModes/ClassicModes/SectorsMode.cs @@ -710,7 +710,11 @@ namespace CodeImp.DoomBuilder.BuilderModes General.Interface.AddButton(BuilderPlug.Me.MenusForm.SeparatorSectors3); //mxd General.Interface.AddButton(BuilderPlug.Me.MenusForm.MarqueSelectTouching); //mxd General.Interface.AddButton(BuilderPlug.Me.MenusForm.SyncronizeThingEditButton); //mxd - if(General.Map.UDMF) General.Interface.AddButton(BuilderPlug.Me.MenusForm.TextureOffsetLock, ToolbarSection.Geometry); //mxd + if (General.Map.UDMF) + { + General.Interface.AddButton(BuilderPlug.Me.MenusForm.TextureOffsetLock, ToolbarSection.Geometry); //mxd + General.Interface.AddButton(BuilderPlug.Me.MenusForm.TextureOffset3DFloorLock, ToolbarSection.Geometry); + } General.Interface.EndToolbarUpdate(); //mxd // Convert geometry selection to sectors only @@ -770,6 +774,7 @@ namespace CodeImp.DoomBuilder.BuilderModes General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.MarqueSelectTouching); //mxd General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.SyncronizeThingEditButton); //mxd General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.TextureOffsetLock); //mxd + General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.TextureOffset3DFloorLock); General.Interface.EndToolbarUpdate(); //mxd // Keep only sectors selected diff --git a/Source/Plugins/BuilderModes/ClassicModes/VerticesMode.cs b/Source/Plugins/BuilderModes/ClassicModes/VerticesMode.cs index ebb4b10fa..f0a2c6635 100755 --- a/Source/Plugins/BuilderModes/ClassicModes/VerticesMode.cs +++ b/Source/Plugins/BuilderModes/ClassicModes/VerticesMode.cs @@ -99,6 +99,7 @@ namespace CodeImp.DoomBuilder.BuilderModes General.Interface.AddButton(BuilderPlug.Me.MenusForm.PasteProperties); General.Interface.AddButton(BuilderPlug.Me.MenusForm.PastePropertiesOptions); //mxd General.Interface.AddButton(BuilderPlug.Me.MenusForm.TextureOffsetLock, ToolbarSection.Geometry); //mxd + General.Interface.AddButton(BuilderPlug.Me.MenusForm.TextureOffset3DFloorLock, ToolbarSection.Geometry); General.Interface.EndToolbarUpdate(); //mxd } @@ -118,6 +119,7 @@ namespace CodeImp.DoomBuilder.BuilderModes General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.PasteProperties); General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.PastePropertiesOptions); //mxd General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.TextureOffsetLock); //mxd + General.Interface.RemoveButton(BuilderPlug.Me.MenusForm.TextureOffset3DFloorLock); General.Interface.EndToolbarUpdate(); // Going to EditSelectionMode? diff --git a/Source/Plugins/BuilderModes/General/BuilderPlug.cs b/Source/Plugins/BuilderModes/General/BuilderPlug.cs index 2b3c5df2c..5a3d78d73 100755 --- a/Source/Plugins/BuilderModes/General/BuilderPlug.cs +++ b/Source/Plugins/BuilderModes/General/BuilderPlug.cs @@ -132,6 +132,7 @@ namespace CodeImp.DoomBuilder.BuilderModes private bool marqueSelectTouching; //mxd. Select elements partially/fully inside of marque selection? private bool syncSelection; //mxd. Sync selection between Visual and Classic modes. private bool lockSectorTextureOffsetsWhileDragging; //mxd + private bool lock3DFloorSectorTextureOffsetsWhileDragging; private bool syncthingedit; //mxd private bool alphabasedtexturehighlighting; //mxd private bool showlightradii; //mxd @@ -186,6 +187,7 @@ namespace CodeImp.DoomBuilder.BuilderModes public bool MarqueSelectTouching { get { return marqueSelectTouching; } set { marqueSelectTouching = value; } } //mxd public bool SyncSelection { get { return syncSelection; } set { syncSelection = value; } } //mxd public bool LockSectorTextureOffsetsWhileDragging { get { return lockSectorTextureOffsetsWhileDragging; } internal set { lockSectorTextureOffsetsWhileDragging = value; } } //mxd + public bool Lock3DFloorSectorTextureOffsetsWhileDragging { get { return lock3DFloorSectorTextureOffsetsWhileDragging; } internal set { lock3DFloorSectorTextureOffsetsWhileDragging = value; } } //mxd public bool SyncronizeThingEdit { get { return syncthingedit; } internal set { syncthingedit = value; } } //mxd public bool AlphaBasedTextureHighlighting { get { return alphabasedtexturehighlighting; } internal set { alphabasedtexturehighlighting = value; } } //mxd public bool ShowLightRadii { get { return showlightradii; } internal set { showlightradii = value; } } //mxd @@ -215,6 +217,7 @@ namespace CodeImp.DoomBuilder.BuilderModes menusform = new MenusForm(); menusform.Register(); menusform.TextureOffsetLock.Checked = lockSectorTextureOffsetsWhileDragging; //mxd + menusform.TextureOffset3DFloorLock.Checked = lock3DFloorSectorTextureOffsetsWhileDragging; menusform.SyncronizeThingEditButton.Checked = syncthingedit; //mxd menusform.SyncronizeThingEditSectorsItem.Checked = syncthingedit; //mxd menusform.SyncronizeThingEditLinedefsItem.Checked = syncthingedit; //mxd @@ -300,6 +303,7 @@ namespace CodeImp.DoomBuilder.BuilderModes private void LoadUISettings() { lockSectorTextureOffsetsWhileDragging = General.Settings.ReadPluginSetting("locktextureoffsets", false); + lock3DFloorSectorTextureOffsetsWhileDragging = General.Settings.ReadPluginSetting("lock3dfloortextureoffsets", false); viewselectionnumbers = General.Settings.ReadPluginSetting("viewselectionnumbers", true); viewselectioneffects = General.Settings.ReadPluginSetting("viewselectioneffects", true); syncthingedit = General.Settings.ReadPluginSetting("syncthingedit", true); @@ -312,6 +316,7 @@ namespace CodeImp.DoomBuilder.BuilderModes private void SaveUISettings() { General.Settings.WritePluginSetting("locktextureoffsets", lockSectorTextureOffsetsWhileDragging); + General.Settings.WritePluginSetting("lock3dfloortextureoffsets", lock3DFloorSectorTextureOffsetsWhileDragging); General.Settings.WritePluginSetting("viewselectionnumbers", viewselectionnumbers); General.Settings.WritePluginSetting("viewselectioneffects", viewselectioneffects); General.Settings.WritePluginSetting("syncthingedit", syncthingedit); diff --git a/Source/Plugins/BuilderModes/Interface/MenusForm.Designer.cs b/Source/Plugins/BuilderModes/Interface/MenusForm.Designer.cs index 57b85c497..758426113 100755 --- a/Source/Plugins/BuilderModes/Interface/MenusForm.Designer.cs +++ b/Source/Plugins/BuilderModes/Interface/MenusForm.Designer.cs @@ -31,17 +31,11 @@ namespace CodeImp.DoomBuilder.BuilderModes System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MenusForm)); this.menustrip = new System.Windows.Forms.MenuStrip(); this.linedefsmenu = new System.Windows.Forms.ToolStripMenuItem(); - this.placethingsl = new System.Windows.Forms.ToolStripMenuItem(); - this.syncthingeditlinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.selectsinglesideditem = new System.Windows.Forms.ToolStripMenuItem(); this.selectdoublesideditem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator(); - this.fliplinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); - this.alignlinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); - this.flipsidedefsitem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.curvelinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); this.splitlinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); this.updatelightfogitem = new System.Windows.Forms.ToolStripMenuItem(); @@ -51,67 +45,74 @@ namespace CodeImp.DoomBuilder.BuilderModes this.alignCeilingToFrontItem = new System.Windows.Forms.ToolStripMenuItem(); this.alignCeilingToBackItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); - this.selectSimilarLinesItem = new System.Windows.Forms.ToolStripMenuItem(); this.sectorsmenu = new System.Windows.Forms.ToolStripMenuItem(); - this.placethingss = new System.Windows.Forms.ToolStripMenuItem(); - this.syncthingeditsectorsitem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.joinsectorsitem = new System.Windows.Forms.ToolStripMenuItem(); - this.mergesectorsitem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); - this.flipsectorlinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); - this.alignsectorlinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator(); - this.makedooritem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); - this.selectSimilarSectors = new System.Windows.Forms.ToolStripMenuItem(); this.thingsmenu = new System.Windows.Forms.ToolStripMenuItem(); - this.selectInSectorsItem = new System.Windows.Forms.ToolStripMenuItem(); - this.filterSelectionItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); - this.alignToWallItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pointAtCursorItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); - this.selectSimilarThingsItem = new System.Windows.Forms.ToolStripMenuItem(); this.vertsmenu = new System.Windows.Forms.ToolStripMenuItem(); - this.placethingsv = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); - this.selectSimilarVertsItem = new System.Windows.Forms.ToolStripMenuItem(); this.globalstrip = new System.Windows.Forms.ToolStrip(); this.manualstrip = new System.Windows.Forms.ToolStrip(); + this.seperatorcopypaste = new System.Windows.Forms.ToolStripSeparator(); + this.separatorsectors1 = new System.Windows.Forms.ToolStripSeparator(); + this.separatorsectors2 = new System.Windows.Forms.ToolStripSeparator(); + this.gradientModeMenu = new System.Windows.Forms.ToolStripComboBox(); + this.gradientInterpolationMenu = new System.Windows.Forms.ToolStripComboBox(); + this.separatorsectors3 = new System.Windows.Forms.ToolStripSeparator(); + this.fileMenuStrip = new System.Windows.Forms.MenuStrip(); + this.exportStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem(); + this.editmenuitem = new System.Windows.Forms.ToolStripMenuItem(); + this.separatorcopyprops = new System.Windows.Forms.ToolStripSeparator(); + this.viewmenuitem = new System.Windows.Forms.ToolStripMenuItem(); this.buttoncopyproperties = new System.Windows.Forms.ToolStripButton(); this.buttonpasteproperties = new System.Windows.Forms.ToolStripButton(); this.buttonpastepropertiesoptions = new System.Windows.Forms.ToolStripButton(); - this.seperatorcopypaste = new System.Windows.Forms.ToolStripSeparator(); this.buttonselectionnumbers = new System.Windows.Forms.ToolStripButton(); this.buttonselectioneffects = new System.Windows.Forms.ToolStripButton(); - this.separatorsectors1 = new System.Windows.Forms.ToolStripSeparator(); this.buttonMakeDoor = new System.Windows.Forms.ToolStripButton(); - this.separatorsectors2 = new System.Windows.Forms.ToolStripSeparator(); this.buttonbrightnessgradient = new System.Windows.Forms.ToolStripButton(); this.buttonfloorgradient = new System.Windows.Forms.ToolStripButton(); this.buttonceilinggradient = new System.Windows.Forms.ToolStripButton(); this.buttonflipselectionh = new System.Windows.Forms.ToolStripButton(); this.buttonflipselectionv = new System.Windows.Forms.ToolStripButton(); this.buttoncurvelinedefs = new System.Windows.Forms.ToolStripButton(); - this.gradientModeMenu = new System.Windows.Forms.ToolStripComboBox(); - this.gradientInterpolationMenu = new System.Windows.Forms.ToolStripComboBox(); - this.separatorsectors3 = new System.Windows.Forms.ToolStripSeparator(); this.buttonMarqueSelectTouching = new System.Windows.Forms.ToolStripButton(); this.syncthingteditbutton = new System.Windows.Forms.ToolStripButton(); this.buttonAlignThingsToWall = new System.Windows.Forms.ToolStripButton(); this.buttonTextureOffsetLock = new System.Windows.Forms.ToolStripButton(); + this.buttonTextureOffset3DFloorLock = new System.Windows.Forms.ToolStripButton(); this.buttonlightradii = new System.Windows.Forms.ToolStripButton(); this.buttonsoundradii = new System.Windows.Forms.ToolStripButton(); - this.fileMenuStrip = new System.Windows.Forms.MenuStrip(); - this.exportStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem(); - this.editmenuitem = new System.Windows.Forms.ToolStripMenuItem(); - this.separatorcopyprops = new System.Windows.Forms.ToolStripSeparator(); + this.placethingsl = new System.Windows.Forms.ToolStripMenuItem(); + this.syncthingeditlinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); + this.fliplinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); + this.alignlinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); + this.flipsidedefsitem = new System.Windows.Forms.ToolStripMenuItem(); + this.curvelinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); + this.selectSimilarLinesItem = new System.Windows.Forms.ToolStripMenuItem(); + this.placethingss = new System.Windows.Forms.ToolStripMenuItem(); + this.syncthingeditsectorsitem = new System.Windows.Forms.ToolStripMenuItem(); + this.joinsectorsitem = new System.Windows.Forms.ToolStripMenuItem(); + this.mergesectorsitem = new System.Windows.Forms.ToolStripMenuItem(); + this.flipsectorlinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); + this.alignsectorlinedefsitem = new System.Windows.Forms.ToolStripMenuItem(); + this.makedooritem = new System.Windows.Forms.ToolStripMenuItem(); + this.selectSimilarSectors = new System.Windows.Forms.ToolStripMenuItem(); + this.selectInSectorsItem = new System.Windows.Forms.ToolStripMenuItem(); + this.filterSelectionItem = new System.Windows.Forms.ToolStripMenuItem(); + this.alignToWallItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pointAtCursorItem = new System.Windows.Forms.ToolStripMenuItem(); + this.selectSimilarThingsItem = new System.Windows.Forms.ToolStripMenuItem(); + this.placethingsv = new System.Windows.Forms.ToolStripMenuItem(); + this.selectSimilarVertsItem = new System.Windows.Forms.ToolStripMenuItem(); this.itemcopyprops = new System.Windows.Forms.ToolStripMenuItem(); this.itempasteprops = new System.Windows.Forms.ToolStripMenuItem(); this.itempastepropsoptions = new System.Windows.Forms.ToolStripMenuItem(); - this.viewmenuitem = new System.Windows.Forms.ToolStripMenuItem(); this.itemlightradii = new System.Windows.Forms.ToolStripMenuItem(); this.itemsoundradii = new System.Windows.Forms.ToolStripMenuItem(); this.menustrip.SuspendLayout(); @@ -158,37 +159,15 @@ namespace CodeImp.DoomBuilder.BuilderModes this.linedefsmenu.Visible = false; this.linedefsmenu.DropDownOpening += new System.EventHandler(this.linedefsmenu_DropDownOpening); // - // placethingsl - // - this.placethingsl.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings; - this.placethingsl.Name = "placethingsl"; - this.placethingsl.Size = new System.Drawing.Size(224, 22); - this.placethingsl.Tag = "placethings"; - this.placethingsl.Text = "&Place Things..."; - this.placethingsl.Click += new System.EventHandler(this.InvokeTaggedAction); - // - // syncthingeditlinedefsitem - // - this.syncthingeditlinedefsitem.CheckOnClick = true; - this.syncthingeditlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors; - this.syncthingeditlinedefsitem.Name = "syncthingeditlinedefsitem"; - this.syncthingeditlinedefsitem.Size = new System.Drawing.Size(224, 22); - this.syncthingeditlinedefsitem.Tag = "syncedthingedit"; - this.syncthingeditlinedefsitem.Text = "&Synchronized Things Editing"; - this.syncthingeditlinedefsitem.ToolTipText = "When enabled, selected things will be dragged when dragging linedefs.\r\nRectangula" + - "r selection will also select things (holding Alt while selecting \r\ninverts this " + - "behaviour)."; - this.syncthingeditlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); - // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(221, 6); + this.toolStripSeparator2.Size = new System.Drawing.Size(220, 6); // // selectsinglesideditem // this.selectsinglesideditem.Name = "selectsinglesideditem"; - this.selectsinglesideditem.Size = new System.Drawing.Size(224, 22); + this.selectsinglesideditem.Size = new System.Drawing.Size(223, 22); this.selectsinglesideditem.Tag = "selectsinglesided"; this.selectsinglesideditem.Text = "Select S&ingle-sided only"; this.selectsinglesideditem.Click += new System.EventHandler(this.InvokeTaggedAction); @@ -196,7 +175,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // selectdoublesideditem // this.selectdoublesideditem.Name = "selectdoublesideditem"; - this.selectdoublesideditem.Size = new System.Drawing.Size(224, 22); + this.selectdoublesideditem.Size = new System.Drawing.Size(223, 22); this.selectdoublesideditem.Tag = "selectdoublesided"; this.selectdoublesideditem.Text = "Select &Double-sided only"; this.selectdoublesideditem.Click += new System.EventHandler(this.InvokeTaggedAction); @@ -204,57 +183,22 @@ namespace CodeImp.DoomBuilder.BuilderModes // toolStripMenuItem4 // this.toolStripMenuItem4.Name = "toolStripMenuItem4"; - this.toolStripMenuItem4.Size = new System.Drawing.Size(221, 6); - // - // fliplinedefsitem - // - this.fliplinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip; - this.fliplinedefsitem.Name = "fliplinedefsitem"; - this.fliplinedefsitem.Size = new System.Drawing.Size(224, 22); - this.fliplinedefsitem.Tag = "fliplinedefs"; - this.fliplinedefsitem.Text = "&Flip Linedefs"; - this.fliplinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); - // - // alignlinedefsitem - // - this.alignlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip; - this.alignlinedefsitem.Name = "alignlinedefsitem"; - this.alignlinedefsitem.Size = new System.Drawing.Size(224, 22); - this.alignlinedefsitem.Tag = "alignlinedefs"; - this.alignlinedefsitem.Text = "Align &Linedefs"; - // - // flipsidedefsitem - // - this.flipsidedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip; - this.flipsidedefsitem.Name = "flipsidedefsitem"; - this.flipsidedefsitem.Size = new System.Drawing.Size(224, 22); - this.flipsidedefsitem.Tag = "flipsidedefs"; - this.flipsidedefsitem.Text = "F&lip Sidedefs"; - this.flipsidedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); + this.toolStripMenuItem4.Size = new System.Drawing.Size(220, 6); // // toolStripMenuItem1 // this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(221, 6); - // - // curvelinedefsitem - // - this.curvelinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CurveLines; - this.curvelinedefsitem.Name = "curvelinedefsitem"; - this.curvelinedefsitem.Size = new System.Drawing.Size(224, 22); - this.curvelinedefsitem.Tag = "curvelinesmode"; - this.curvelinedefsitem.Text = "&Curve Linedefs..."; - this.curvelinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); + this.toolStripMenuItem1.Size = new System.Drawing.Size(220, 6); // // toolStripMenuItem3 // this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(221, 6); + this.toolStripMenuItem3.Size = new System.Drawing.Size(220, 6); // // splitlinedefsitem // this.splitlinedefsitem.Name = "splitlinedefsitem"; - this.splitlinedefsitem.Size = new System.Drawing.Size(224, 22); + this.splitlinedefsitem.Size = new System.Drawing.Size(223, 22); this.splitlinedefsitem.Tag = "splitlinedefs"; this.splitlinedefsitem.Text = "S&plit Linedefs"; this.splitlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); @@ -262,7 +206,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // updatelightfogitem // this.updatelightfogitem.Name = "updatelightfogitem"; - this.updatelightfogitem.Size = new System.Drawing.Size(224, 22); + this.updatelightfogitem.Size = new System.Drawing.Size(223, 22); this.updatelightfogitem.Tag = "applylightfogflag"; this.updatelightfogitem.Text = "&Update \'lightfog\' flag"; this.updatelightfogitem.Click += new System.EventHandler(this.InvokeTaggedAction); @@ -275,7 +219,7 @@ namespace CodeImp.DoomBuilder.BuilderModes this.alignCeilingToFrontItem, this.alignCeilingToBackItem}); this.aligntexturesitem.Name = "aligntexturesitem"; - this.aligntexturesitem.Size = new System.Drawing.Size(224, 22); + this.aligntexturesitem.Size = new System.Drawing.Size(223, 22); this.aligntexturesitem.Text = "&Align Textures"; // // alignFloorToFrontItem @@ -313,16 +257,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // toolStripSeparator5 // this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(221, 6); - // - // selectSimilarLinesItem - // - this.selectSimilarLinesItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar; - this.selectSimilarLinesItem.Name = "selectSimilarLinesItem"; - this.selectSimilarLinesItem.Size = new System.Drawing.Size(224, 22); - this.selectSimilarLinesItem.Tag = "selectsimilar"; - this.selectSimilarLinesItem.Text = "Select Similar..."; - this.selectSimilarLinesItem.Click += new System.EventHandler(this.InvokeTaggedAction); + this.toolStripSeparator5.Size = new System.Drawing.Size(220, 6); // // sectorsmenu // @@ -344,101 +279,27 @@ namespace CodeImp.DoomBuilder.BuilderModes this.sectorsmenu.Text = "&Sectors"; this.sectorsmenu.Visible = false; // - // placethingss - // - this.placethingss.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings; - this.placethingss.Name = "placethingss"; - this.placethingss.Size = new System.Drawing.Size(224, 22); - this.placethingss.Tag = "placethings"; - this.placethingss.Text = "&Place Things..."; - this.placethingss.Click += new System.EventHandler(this.InvokeTaggedAction); - // - // syncthingeditsectorsitem - // - this.syncthingeditsectorsitem.CheckOnClick = true; - this.syncthingeditsectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors; - this.syncthingeditsectorsitem.Name = "syncthingeditsectorsitem"; - this.syncthingeditsectorsitem.Size = new System.Drawing.Size(224, 22); - this.syncthingeditsectorsitem.Tag = "syncedthingedit"; - this.syncthingeditsectorsitem.Text = "&Synchronized Things Editing"; - this.syncthingeditsectorsitem.ToolTipText = resources.GetString("syncthingeditsectorsitem.ToolTipText"); - this.syncthingeditsectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction); - // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(221, 6); - // - // joinsectorsitem - // - this.joinsectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Join; - this.joinsectorsitem.Name = "joinsectorsitem"; - this.joinsectorsitem.Size = new System.Drawing.Size(224, 22); - this.joinsectorsitem.Tag = "joinsectors"; - this.joinsectorsitem.Text = "&Join Sectors"; - this.joinsectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction); - // - // mergesectorsitem - // - this.mergesectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Merge; - this.mergesectorsitem.Name = "mergesectorsitem"; - this.mergesectorsitem.Size = new System.Drawing.Size(224, 22); - this.mergesectorsitem.Tag = "mergesectors"; - this.mergesectorsitem.Text = "&Merge Sectors"; - this.mergesectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction); + this.toolStripSeparator1.Size = new System.Drawing.Size(220, 6); // // toolStripMenuItem2 // this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(221, 6); - // - // flipsectorlinedefsitem - // - this.flipsectorlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip; - this.flipsectorlinedefsitem.Name = "flipsectorlinedefsitem"; - this.flipsectorlinedefsitem.Size = new System.Drawing.Size(224, 22); - this.flipsectorlinedefsitem.Tag = "fliplinedefs"; - this.flipsectorlinedefsitem.Text = "&Flip Linedefs"; - this.flipsectorlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); - // - // alignsectorlinedefsitem - // - this.alignsectorlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip; - this.alignsectorlinedefsitem.Name = "alignsectorlinedefsitem"; - this.alignsectorlinedefsitem.Size = new System.Drawing.Size(224, 22); - this.alignsectorlinedefsitem.Tag = "alignlinedefs"; - this.alignsectorlinedefsitem.Text = "Align &Linedefs"; - this.alignsectorlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); + this.toolStripMenuItem2.Size = new System.Drawing.Size(220, 6); // // toolStripSeparator8 // this.toolStripSeparator8.Name = "toolStripSeparator8"; - this.toolStripSeparator8.Size = new System.Drawing.Size(221, 6); - // - // makedooritem - // - this.makedooritem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Door; - this.makedooritem.Name = "makedooritem"; - this.makedooritem.Size = new System.Drawing.Size(224, 22); - this.makedooritem.Tag = "makedoor"; - this.makedooritem.Text = "Make &Door"; - this.makedooritem.Click += new System.EventHandler(this.InvokeTaggedAction); + this.toolStripSeparator8.Size = new System.Drawing.Size(220, 6); // // toolStripSeparator4 // this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(221, 6); + this.toolStripSeparator4.Size = new System.Drawing.Size(220, 6); this.toolStripSeparator4.Visible = false; // - // selectSimilarSectors - // - this.selectSimilarSectors.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar; - this.selectSimilarSectors.Name = "selectSimilarSectors"; - this.selectSimilarSectors.Size = new System.Drawing.Size(224, 22); - this.selectSimilarSectors.Tag = "selectsimilar"; - this.selectSimilarSectors.Text = "Select Similar..."; - this.selectSimilarSectors.Click += new System.EventHandler(this.InvokeTaggedAction); - // // thingsmenu // this.thingsmenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -450,64 +311,19 @@ namespace CodeImp.DoomBuilder.BuilderModes this.toolStripSeparator6, this.selectSimilarThingsItem}); this.thingsmenu.Name = "thingsmenu"; - this.thingsmenu.Size = new System.Drawing.Size(55, 20); + this.thingsmenu.Size = new System.Drawing.Size(54, 20); this.thingsmenu.Text = "Things"; this.thingsmenu.Visible = false; // - // selectInSectorsItem - // - this.selectInSectorsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors; - this.selectInSectorsItem.Name = "selectInSectorsItem"; - this.selectInSectorsItem.Size = new System.Drawing.Size(245, 22); - this.selectInSectorsItem.Tag = "thingsselectinsectors"; - this.selectInSectorsItem.Text = "&Select Things in Selected Sectors"; - this.selectInSectorsItem.Click += new System.EventHandler(this.InvokeTaggedAction); - // - // filterSelectionItem - // - this.filterSelectionItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.FilterThings; - this.filterSelectionItem.Name = "filterSelectionItem"; - this.filterSelectionItem.Size = new System.Drawing.Size(245, 22); - this.filterSelectionItem.Tag = "filterselectedthings"; - this.filterSelectionItem.Text = "Filter Selection..."; - this.filterSelectionItem.Click += new System.EventHandler(this.InvokeTaggedAction); - // // toolStripSeparator3 // this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(242, 6); - // - // alignToWallItem - // - this.alignToWallItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.AlignThings; - this.alignToWallItem.Name = "alignToWallItem"; - this.alignToWallItem.Size = new System.Drawing.Size(245, 22); - this.alignToWallItem.Tag = "thingaligntowall"; - this.alignToWallItem.Text = "&Align Things to Nearest Linedef"; - this.alignToWallItem.Click += new System.EventHandler(this.InvokeTaggedAction); - // - // pointAtCursorItem - // - this.pointAtCursorItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.ThingPointAtCursor; - this.pointAtCursorItem.Name = "pointAtCursorItem"; - this.pointAtCursorItem.Size = new System.Drawing.Size(245, 22); - this.pointAtCursorItem.Tag = "thinglookatcursor"; - this.pointAtCursorItem.Text = "&Point to Cursor"; - this.pointAtCursorItem.Click += new System.EventHandler(this.InvokeTaggedAction); + this.toolStripSeparator3.Size = new System.Drawing.Size(241, 6); // // toolStripSeparator6 // this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(242, 6); - // - // selectSimilarThingsItem - // - this.selectSimilarThingsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar; - this.selectSimilarThingsItem.Name = "selectSimilarThingsItem"; - this.selectSimilarThingsItem.Size = new System.Drawing.Size(245, 22); - this.selectSimilarThingsItem.Tag = "selectsimilar"; - this.selectSimilarThingsItem.Text = "Select Similar..."; - this.selectSimilarThingsItem.Click += new System.EventHandler(this.InvokeTaggedAction); + this.toolStripSeparator6.Size = new System.Drawing.Size(241, 6); // // vertsmenu // @@ -516,33 +332,15 @@ namespace CodeImp.DoomBuilder.BuilderModes this.toolStripSeparator7, this.selectSimilarVertsItem}); this.vertsmenu.Name = "vertsmenu"; - this.vertsmenu.Size = new System.Drawing.Size(60, 20); + this.vertsmenu.Size = new System.Drawing.Size(59, 20); this.vertsmenu.Text = "Vertices"; this.vertsmenu.Visible = false; // - // placethingsv - // - this.placethingsv.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings; - this.placethingsv.Name = "placethingsv"; - this.placethingsv.Size = new System.Drawing.Size(153, 22); - this.placethingsv.Tag = "placethings"; - this.placethingsv.Text = "&Place Things..."; - this.placethingsv.Click += new System.EventHandler(this.InvokeTaggedAction); - // // toolStripSeparator7 // this.toolStripSeparator7.Name = "toolStripSeparator7"; this.toolStripSeparator7.Size = new System.Drawing.Size(150, 6); // - // selectSimilarVertsItem - // - this.selectSimilarVertsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar; - this.selectSimilarVertsItem.Name = "selectSimilarVertsItem"; - this.selectSimilarVertsItem.Size = new System.Drawing.Size(153, 22); - this.selectSimilarVertsItem.Tag = "selectsimilar"; - this.selectSimilarVertsItem.Text = "Select Similar..."; - this.selectSimilarVertsItem.Click += new System.EventHandler(this.InvokeTaggedAction); - // // globalstrip // this.globalstrip.Location = new System.Drawing.Point(0, 48); @@ -576,6 +374,7 @@ namespace CodeImp.DoomBuilder.BuilderModes this.syncthingteditbutton, this.buttonAlignThingsToWall, this.buttonTextureOffsetLock, + this.buttonTextureOffset3DFloorLock, this.buttonlightradii, this.buttonsoundradii}); this.manualstrip.Location = new System.Drawing.Point(0, 73); @@ -584,13 +383,106 @@ namespace CodeImp.DoomBuilder.BuilderModes this.manualstrip.TabIndex = 2; this.manualstrip.Text = "toolStrip1"; // - // buttoncopyproperties + // seperatorcopypaste // - this.buttoncopyproperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.buttoncopyproperties.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CopyProperties; - this.buttoncopyproperties.ImageTransparentColor = System.Drawing.Color.Magenta; - this.buttoncopyproperties.Name = "buttoncopyproperties"; - this.buttoncopyproperties.Size = new System.Drawing.Size(23, 22); + this.seperatorcopypaste.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.seperatorcopypaste.Name = "seperatorcopypaste"; + this.seperatorcopypaste.Size = new System.Drawing.Size(6, 25); + // + // separatorsectors1 + // + this.separatorsectors1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.separatorsectors1.Name = "separatorsectors1"; + this.separatorsectors1.Size = new System.Drawing.Size(6, 25); + // + // separatorsectors2 + // + this.separatorsectors2.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.separatorsectors2.Name = "separatorsectors2"; + this.separatorsectors2.Size = new System.Drawing.Size(6, 25); + // + // gradientModeMenu + // + this.gradientModeMenu.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.gradientModeMenu.Name = "gradientModeMenu"; + this.gradientModeMenu.Size = new System.Drawing.Size(144, 25); + this.gradientModeMenu.ToolTipText = "Brightness Gradient Target"; + this.gradientModeMenu.DropDownClosed += new System.EventHandler(this.gradientMode_DropDownClosed); + // + // gradientInterpolationMenu + // + this.gradientInterpolationMenu.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.gradientInterpolationMenu.Name = "gradientInterpolationMenu"; + this.gradientInterpolationMenu.Size = new System.Drawing.Size(108, 25); + this.gradientInterpolationMenu.ToolTipText = "Brightness and Height Gradient Interpolation Mode"; + this.gradientInterpolationMenu.DropDownClosed += new System.EventHandler(this.gradientMode_DropDownClosed); + // + // separatorsectors3 + // + this.separatorsectors3.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); + this.separatorsectors3.Name = "separatorsectors3"; + this.separatorsectors3.Size = new System.Drawing.Size(6, 25); + // + // fileMenuStrip + // + this.fileMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.exportStripMenuItem, + this.editmenuitem, + this.viewmenuitem}); + this.fileMenuStrip.Location = new System.Drawing.Point(0, 0); + this.fileMenuStrip.Name = "fileMenuStrip"; + this.fileMenuStrip.Size = new System.Drawing.Size(794, 24); + this.fileMenuStrip.TabIndex = 3; + this.fileMenuStrip.Text = "menuStrip1"; + // + // exportStripMenuItem + // + this.exportStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem5}); + this.exportStripMenuItem.Name = "exportStripMenuItem"; + this.exportStripMenuItem.Size = new System.Drawing.Size(53, 20); + this.exportStripMenuItem.Text = "Export"; + // + // toolStripMenuItem5 + // + this.toolStripMenuItem5.Name = "toolStripMenuItem5"; + this.toolStripMenuItem5.Size = new System.Drawing.Size(226, 22); + this.toolStripMenuItem5.Tag = "exporttoobj"; + this.toolStripMenuItem5.Text = "Selection to Wavefront .obj..."; + this.toolStripMenuItem5.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // editmenuitem + // + this.editmenuitem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.separatorcopyprops, + this.itemcopyprops, + this.itempasteprops, + this.itempastepropsoptions}); + this.editmenuitem.Name = "editmenuitem"; + this.editmenuitem.Size = new System.Drawing.Size(39, 20); + this.editmenuitem.Text = "Edit"; + // + // separatorcopyprops + // + this.separatorcopyprops.Name = "separatorcopyprops"; + this.separatorcopyprops.Size = new System.Drawing.Size(204, 6); + // + // viewmenuitem + // + this.viewmenuitem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.itemlightradii, + this.itemsoundradii}); + this.viewmenuitem.Name = "viewmenuitem"; + this.viewmenuitem.Size = new System.Drawing.Size(44, 20); + this.viewmenuitem.Text = "View"; + // + // buttoncopyproperties + // + this.buttoncopyproperties.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.buttoncopyproperties.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CopyProperties; + this.buttoncopyproperties.ImageTransparentColor = System.Drawing.Color.Magenta; + this.buttoncopyproperties.Name = "buttoncopyproperties"; + this.buttoncopyproperties.Size = new System.Drawing.Size(23, 22); this.buttoncopyproperties.Tag = "classiccopyproperties"; this.buttoncopyproperties.Text = "Copy Properties"; this.buttoncopyproperties.Click += new System.EventHandler(this.InvokeTaggedAction); @@ -618,12 +510,6 @@ namespace CodeImp.DoomBuilder.BuilderModes this.buttonpastepropertiesoptions.TextAlign = System.Drawing.ContentAlignment.TopRight; this.buttonpastepropertiesoptions.Click += new System.EventHandler(this.InvokeTaggedAction); // - // seperatorcopypaste - // - this.seperatorcopypaste.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - this.seperatorcopypaste.Name = "seperatorcopypaste"; - this.seperatorcopypaste.Size = new System.Drawing.Size(6, 25); - // // buttonselectionnumbers // this.buttonselectionnumbers.CheckOnClick = true; @@ -646,12 +532,6 @@ namespace CodeImp.DoomBuilder.BuilderModes this.buttonselectioneffects.Text = "View Tags and Effects"; this.buttonselectioneffects.Click += new System.EventHandler(this.buttonselectioneffects_Click); // - // separatorsectors1 - // - this.separatorsectors1.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - this.separatorsectors1.Name = "separatorsectors1"; - this.separatorsectors1.Size = new System.Drawing.Size(6, 25); - // // buttonMakeDoor // this.buttonMakeDoor.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; @@ -663,12 +543,6 @@ namespace CodeImp.DoomBuilder.BuilderModes this.buttonMakeDoor.Text = "Make Door From Selection"; this.buttonMakeDoor.Click += new System.EventHandler(this.InvokeTaggedAction); // - // separatorsectors2 - // - this.separatorsectors2.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - this.separatorsectors2.Name = "separatorsectors2"; - this.separatorsectors2.Size = new System.Drawing.Size(6, 25); - // // buttonbrightnessgradient // this.buttonbrightnessgradient.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; @@ -735,28 +609,6 @@ namespace CodeImp.DoomBuilder.BuilderModes this.buttoncurvelinedefs.Text = "Curve Linedefs"; this.buttoncurvelinedefs.Click += new System.EventHandler(this.InvokeTaggedAction); // - // gradientModeMenu - // - this.gradientModeMenu.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.gradientModeMenu.Name = "gradientModeMenu"; - this.gradientModeMenu.Size = new System.Drawing.Size(144, 25); - this.gradientModeMenu.ToolTipText = "Brightness Gradient Target"; - this.gradientModeMenu.DropDownClosed += new System.EventHandler(this.gradientMode_DropDownClosed); - // - // gradientInterpolationMenu - // - this.gradientInterpolationMenu.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.gradientInterpolationMenu.Name = "gradientInterpolationMenu"; - this.gradientInterpolationMenu.Size = new System.Drawing.Size(108, 25); - this.gradientInterpolationMenu.ToolTipText = "Brightness and Height Gradient Interpolation Mode"; - this.gradientInterpolationMenu.DropDownClosed += new System.EventHandler(this.gradientMode_DropDownClosed); - // - // separatorsectors3 - // - this.separatorsectors3.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0); - this.separatorsectors3.Name = "separatorsectors3"; - this.separatorsectors3.Size = new System.Drawing.Size(6, 25); - // // buttonMarqueSelectTouching // this.buttonMarqueSelectTouching.CheckOnClick = true; @@ -767,7 +619,7 @@ namespace CodeImp.DoomBuilder.BuilderModes this.buttonMarqueSelectTouching.Size = new System.Drawing.Size(23, 22); this.buttonMarqueSelectTouching.Text = "Select Touching"; this.buttonMarqueSelectTouching.ToolTipText = "Toggle between \"select touching\" and \"select inside\"\r\nrectangular selection modes" + - ""; + ""; this.buttonMarqueSelectTouching.Click += new System.EventHandler(this.buttonMarqueSelectTouching_Click); // // syncthingteditbutton @@ -802,9 +654,21 @@ namespace CodeImp.DoomBuilder.BuilderModes this.buttonTextureOffsetLock.Name = "buttonTextureOffsetLock"; this.buttonTextureOffsetLock.Size = new System.Drawing.Size(23, 22); this.buttonTextureOffsetLock.ToolTipText = "Pin Texture Offsets.\r\nWhen enabled, keeps floor and ceiling texture offsets\r\ncons" + - "tant while sector is dragged"; + "tant while sector is dragged"; this.buttonTextureOffsetLock.Click += new System.EventHandler(this.buttonTextureOffsetLock_Click); // + // buttonTextureOffset3DFloorLock + // + this.buttonTextureOffset3DFloorLock.CheckOnClick = true; + this.buttonTextureOffset3DFloorLock.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.buttonTextureOffset3DFloorLock.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.TextureLock3Dfloor; + this.buttonTextureOffset3DFloorLock.ImageTransparentColor = System.Drawing.Color.Magenta; + this.buttonTextureOffset3DFloorLock.Name = "buttonTextureOffset3DFloorLock"; + this.buttonTextureOffset3DFloorLock.Size = new System.Drawing.Size(23, 22); + this.buttonTextureOffset3DFloorLock.ToolTipText = "Pin Texture Offsets of 3D floors.\r\nWhen enabled, keeps floor and ceiling texture " + + "offsets\r\nof the control sector constant while the tagged sector is dragged"; + this.buttonTextureOffset3DFloorLock.Click += new System.EventHandler(this.buttonTextureOffset3DFloorLock_Click); + // // buttonlightradii // this.buttonlightradii.CheckOnClick = true; @@ -827,49 +691,208 @@ namespace CodeImp.DoomBuilder.BuilderModes this.buttonsoundradii.Text = "Ambient Sound Radii"; this.buttonsoundradii.Click += new System.EventHandler(this.buttonsoundradii_Click); // - // fileMenuStrip + // placethingsl // - this.fileMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exportStripMenuItem, - this.editmenuitem, - this.viewmenuitem}); - this.fileMenuStrip.Location = new System.Drawing.Point(0, 0); - this.fileMenuStrip.Name = "fileMenuStrip"; - this.fileMenuStrip.Size = new System.Drawing.Size(794, 24); - this.fileMenuStrip.TabIndex = 3; - this.fileMenuStrip.Text = "menuStrip1"; + this.placethingsl.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings; + this.placethingsl.Name = "placethingsl"; + this.placethingsl.Size = new System.Drawing.Size(223, 22); + this.placethingsl.Tag = "placethings"; + this.placethingsl.Text = "&Place Things..."; + this.placethingsl.Click += new System.EventHandler(this.InvokeTaggedAction); // - // exportStripMenuItem + // syncthingeditlinedefsitem // - this.exportStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItem5}); - this.exportStripMenuItem.Name = "exportStripMenuItem"; - this.exportStripMenuItem.Size = new System.Drawing.Size(52, 20); - this.exportStripMenuItem.Text = "Export"; + this.syncthingeditlinedefsitem.CheckOnClick = true; + this.syncthingeditlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors; + this.syncthingeditlinedefsitem.Name = "syncthingeditlinedefsitem"; + this.syncthingeditlinedefsitem.Size = new System.Drawing.Size(223, 22); + this.syncthingeditlinedefsitem.Tag = "syncedthingedit"; + this.syncthingeditlinedefsitem.Text = "&Synchronized Things Editing"; + this.syncthingeditlinedefsitem.ToolTipText = "When enabled, selected things will be dragged when dragging linedefs.\r\nRectangula" + + "r selection will also select things (holding Alt while selecting \r\ninverts this " + + "behaviour)."; + this.syncthingeditlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); // - // toolStripMenuItem5 + // fliplinedefsitem // - this.toolStripMenuItem5.Name = "toolStripMenuItem5"; - this.toolStripMenuItem5.Size = new System.Drawing.Size(226, 22); - this.toolStripMenuItem5.Tag = "exporttoobj"; - this.toolStripMenuItem5.Text = "Selection to Wavefront .obj..."; - this.toolStripMenuItem5.Click += new System.EventHandler(this.InvokeTaggedAction); + this.fliplinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip; + this.fliplinedefsitem.Name = "fliplinedefsitem"; + this.fliplinedefsitem.Size = new System.Drawing.Size(223, 22); + this.fliplinedefsitem.Tag = "fliplinedefs"; + this.fliplinedefsitem.Text = "&Flip Linedefs"; + this.fliplinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); // - // editmenuitem + // alignlinedefsitem // - this.editmenuitem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.separatorcopyprops, - this.itemcopyprops, - this.itempasteprops, - this.itempastepropsoptions}); - this.editmenuitem.Name = "editmenuitem"; - this.editmenuitem.Size = new System.Drawing.Size(39, 20); - this.editmenuitem.Text = "Edit"; + this.alignlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip; + this.alignlinedefsitem.Name = "alignlinedefsitem"; + this.alignlinedefsitem.Size = new System.Drawing.Size(223, 22); + this.alignlinedefsitem.Tag = "alignlinedefs"; + this.alignlinedefsitem.Text = "Align &Linedefs"; // - // separatorcopyprops + // flipsidedefsitem // - this.separatorcopyprops.Name = "separatorcopyprops"; - this.separatorcopyprops.Size = new System.Drawing.Size(204, 6); + this.flipsidedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip; + this.flipsidedefsitem.Name = "flipsidedefsitem"; + this.flipsidedefsitem.Size = new System.Drawing.Size(223, 22); + this.flipsidedefsitem.Tag = "flipsidedefs"; + this.flipsidedefsitem.Text = "F&lip Sidedefs"; + this.flipsidedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // curvelinedefsitem + // + this.curvelinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.CurveLines; + this.curvelinedefsitem.Name = "curvelinedefsitem"; + this.curvelinedefsitem.Size = new System.Drawing.Size(223, 22); + this.curvelinedefsitem.Tag = "curvelinesmode"; + this.curvelinedefsitem.Text = "&Curve Linedefs..."; + this.curvelinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // selectSimilarLinesItem + // + this.selectSimilarLinesItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar; + this.selectSimilarLinesItem.Name = "selectSimilarLinesItem"; + this.selectSimilarLinesItem.Size = new System.Drawing.Size(223, 22); + this.selectSimilarLinesItem.Tag = "selectsimilar"; + this.selectSimilarLinesItem.Text = "Select Similar..."; + this.selectSimilarLinesItem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // placethingss + // + this.placethingss.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings; + this.placethingss.Name = "placethingss"; + this.placethingss.Size = new System.Drawing.Size(223, 22); + this.placethingss.Tag = "placethings"; + this.placethingss.Text = "&Place Things..."; + this.placethingss.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // syncthingeditsectorsitem + // + this.syncthingeditsectorsitem.CheckOnClick = true; + this.syncthingeditsectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors; + this.syncthingeditsectorsitem.Name = "syncthingeditsectorsitem"; + this.syncthingeditsectorsitem.Size = new System.Drawing.Size(223, 22); + this.syncthingeditsectorsitem.Tag = "syncedthingedit"; + this.syncthingeditsectorsitem.Text = "&Synchronized Things Editing"; + this.syncthingeditsectorsitem.ToolTipText = resources.GetString("syncthingeditsectorsitem.ToolTipText"); + this.syncthingeditsectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // joinsectorsitem + // + this.joinsectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Join; + this.joinsectorsitem.Name = "joinsectorsitem"; + this.joinsectorsitem.Size = new System.Drawing.Size(223, 22); + this.joinsectorsitem.Tag = "joinsectors"; + this.joinsectorsitem.Text = "&Join Sectors"; + this.joinsectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // mergesectorsitem + // + this.mergesectorsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Merge; + this.mergesectorsitem.Name = "mergesectorsitem"; + this.mergesectorsitem.Size = new System.Drawing.Size(223, 22); + this.mergesectorsitem.Tag = "mergesectors"; + this.mergesectorsitem.Text = "&Merge Sectors"; + this.mergesectorsitem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // flipsectorlinedefsitem + // + this.flipsectorlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip; + this.flipsectorlinedefsitem.Name = "flipsectorlinedefsitem"; + this.flipsectorlinedefsitem.Size = new System.Drawing.Size(223, 22); + this.flipsectorlinedefsitem.Tag = "fliplinedefs"; + this.flipsectorlinedefsitem.Text = "&Flip Linedefs"; + this.flipsectorlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // alignsectorlinedefsitem + // + this.alignsectorlinedefsitem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Flip; + this.alignsectorlinedefsitem.Name = "alignsectorlinedefsitem"; + this.alignsectorlinedefsitem.Size = new System.Drawing.Size(223, 22); + this.alignsectorlinedefsitem.Tag = "alignlinedefs"; + this.alignsectorlinedefsitem.Text = "Align &Linedefs"; + this.alignsectorlinedefsitem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // makedooritem + // + this.makedooritem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Door; + this.makedooritem.Name = "makedooritem"; + this.makedooritem.Size = new System.Drawing.Size(223, 22); + this.makedooritem.Tag = "makedoor"; + this.makedooritem.Text = "Make &Door"; + this.makedooritem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // selectSimilarSectors + // + this.selectSimilarSectors.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar; + this.selectSimilarSectors.Name = "selectSimilarSectors"; + this.selectSimilarSectors.Size = new System.Drawing.Size(223, 22); + this.selectSimilarSectors.Tag = "selectsimilar"; + this.selectSimilarSectors.Text = "Select Similar..."; + this.selectSimilarSectors.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // selectInSectorsItem + // + this.selectInSectorsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SelectThingsInSectors; + this.selectInSectorsItem.Name = "selectInSectorsItem"; + this.selectInSectorsItem.Size = new System.Drawing.Size(244, 22); + this.selectInSectorsItem.Tag = "thingsselectinsectors"; + this.selectInSectorsItem.Text = "&Select Things in Selected Sectors"; + this.selectInSectorsItem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // filterSelectionItem + // + this.filterSelectionItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.FilterThings; + this.filterSelectionItem.Name = "filterSelectionItem"; + this.filterSelectionItem.Size = new System.Drawing.Size(244, 22); + this.filterSelectionItem.Tag = "filterselectedthings"; + this.filterSelectionItem.Text = "Filter Selection..."; + this.filterSelectionItem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // alignToWallItem + // + this.alignToWallItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.AlignThings; + this.alignToWallItem.Name = "alignToWallItem"; + this.alignToWallItem.Size = new System.Drawing.Size(244, 22); + this.alignToWallItem.Tag = "thingaligntowall"; + this.alignToWallItem.Text = "&Align Things to Nearest Linedef"; + this.alignToWallItem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // pointAtCursorItem + // + this.pointAtCursorItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.ThingPointAtCursor; + this.pointAtCursorItem.Name = "pointAtCursorItem"; + this.pointAtCursorItem.Size = new System.Drawing.Size(244, 22); + this.pointAtCursorItem.Tag = "thinglookatcursor"; + this.pointAtCursorItem.Text = "&Point to Cursor"; + this.pointAtCursorItem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // selectSimilarThingsItem + // + this.selectSimilarThingsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar; + this.selectSimilarThingsItem.Name = "selectSimilarThingsItem"; + this.selectSimilarThingsItem.Size = new System.Drawing.Size(244, 22); + this.selectSimilarThingsItem.Tag = "selectsimilar"; + this.selectSimilarThingsItem.Text = "Select Similar..."; + this.selectSimilarThingsItem.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // placethingsv + // + this.placethingsv.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.PlaceThings; + this.placethingsv.Name = "placethingsv"; + this.placethingsv.Size = new System.Drawing.Size(153, 22); + this.placethingsv.Tag = "placethings"; + this.placethingsv.Text = "&Place Things..."; + this.placethingsv.Click += new System.EventHandler(this.InvokeTaggedAction); + // + // selectSimilarVertsItem + // + this.selectSimilarVertsItem.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.Similar; + this.selectSimilarVertsItem.Name = "selectSimilarVertsItem"; + this.selectSimilarVertsItem.Size = new System.Drawing.Size(153, 22); + this.selectSimilarVertsItem.Tag = "selectsimilar"; + this.selectSimilarVertsItem.Text = "Select Similar..."; + this.selectSimilarVertsItem.Click += new System.EventHandler(this.InvokeTaggedAction); // // itemcopyprops // @@ -898,21 +921,12 @@ namespace CodeImp.DoomBuilder.BuilderModes this.itempastepropsoptions.Text = "Paste Properties Special..."; this.itempastepropsoptions.Click += new System.EventHandler(this.InvokeTaggedAction); // - // viewmenuitem - // - this.viewmenuitem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.itemlightradii, - this.itemsoundradii}); - this.viewmenuitem.Name = "viewmenuitem"; - this.viewmenuitem.Size = new System.Drawing.Size(44, 20); - this.viewmenuitem.Text = "View"; - // // itemlightradii // this.itemlightradii.CheckOnClick = true; this.itemlightradii.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.LightRadius; this.itemlightradii.Name = "itemlightradii"; - this.itemlightradii.Size = new System.Drawing.Size(212, 22); + this.itemlightradii.Size = new System.Drawing.Size(218, 22); this.itemlightradii.Text = "Show Dynamic Light Radii"; this.itemlightradii.Click += new System.EventHandler(this.buttonlightradii_Click); // @@ -921,7 +935,7 @@ namespace CodeImp.DoomBuilder.BuilderModes this.itemsoundradii.CheckOnClick = true; this.itemsoundradii.Image = global::CodeImp.DoomBuilder.BuilderModes.Properties.Resources.SoundRadius; this.itemsoundradii.Name = "itemsoundradii"; - this.itemsoundradii.Size = new System.Drawing.Size(212, 22); + this.itemsoundradii.Size = new System.Drawing.Size(218, 22); this.itemsoundradii.Text = "Show Ambient Sound Radii"; this.itemsoundradii.Click += new System.EventHandler(this.buttonsoundradii_Click); // @@ -1040,5 +1054,6 @@ namespace CodeImp.DoomBuilder.BuilderModes private System.Windows.Forms.ToolStripMenuItem viewmenuitem; private System.Windows.Forms.ToolStripMenuItem itemlightradii; private System.Windows.Forms.ToolStripMenuItem itemsoundradii; + private System.Windows.Forms.ToolStripButton buttonTextureOffset3DFloorLock; } } \ No newline at end of file diff --git a/Source/Plugins/BuilderModes/Interface/MenusForm.cs b/Source/Plugins/BuilderModes/Interface/MenusForm.cs index d04c8020e..dc5407f18 100755 --- a/Source/Plugins/BuilderModes/Interface/MenusForm.cs +++ b/Source/Plugins/BuilderModes/Interface/MenusForm.cs @@ -85,6 +85,7 @@ namespace CodeImp.DoomBuilder.BuilderModes public ToolStripButton MarqueSelectTouching { get { return buttonMarqueSelectTouching; } } //mxd public ToolStripButton AlignThingsToWall { get { return buttonAlignThingsToWall; } } //mxd public ToolStripButton TextureOffsetLock { get { return buttonTextureOffsetLock; } } //mxd + public ToolStripButton TextureOffset3DFloorLock { get { return buttonTextureOffset3DFloorLock; } } public ToolStripButton SyncronizeThingEditButton { get { return syncthingteditbutton; } } //mxd public ToolStripMenuItem SyncronizeThingEditSectorsItem { get { return syncthingeditsectorsitem; } } //mxd public ToolStripMenuItem SyncronizeThingEditLinedefsItem { get { return syncthingeditlinedefsitem; } } //mxd @@ -275,6 +276,14 @@ namespace CodeImp.DoomBuilder.BuilderModes "Don't lock texture offsets when dragging sectors")); } + private void buttonTextureOffset3DFloorLock_Click(object sender, EventArgs e) + { + BuilderPlug.Me.Lock3DFloorSectorTextureOffsetsWhileDragging = buttonTextureOffset3DFloorLock.Checked; + General.Interface.DisplayStatus(StatusType.Info, (buttonTextureOffset3DFloorLock.Checked ? + "Lock texture offsets of 3D floors when dragging tagged sectors" : + "Don't lock texture offsets of 3D floors when dragging tagged sectors")); + } + //mxd private void linedefsmenu_DropDownOpening(object sender, EventArgs e) { diff --git a/Source/Plugins/BuilderModes/Interface/MenusForm.resx b/Source/Plugins/BuilderModes/Interface/MenusForm.resx index 6a0a34f31..21c2e145d 100755 --- a/Source/Plugins/BuilderModes/Interface/MenusForm.resx +++ b/Source/Plugins/BuilderModes/Interface/MenusForm.resx @@ -112,36 +112,36 @@ <value>2.0</value> </resheader> <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> - <metadata name="menustrip.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>True</value> - </metadata> - <metadata name="menustrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <metadata name="menustrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> </metadata> + <metadata name="menustrip.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> <data name="syncthingeditsectorsitem.ToolTipText" xml:space="preserve"> <value>When enabled, things dragging will be synchronized to sector dragging. Regular, Paint and Rectangular selection will also select things (holding Alt while selecting inverts this behaviour). Deleting sectors will also delete selected things.</value> </data> - <metadata name="globalstrip.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <value>True</value> - </metadata> - <metadata name="globalstrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <metadata name="globalstrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>118, 17</value> </metadata> - <metadata name="manualstrip.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <metadata name="globalstrip.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> - <metadata name="manualstrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <metadata name="manualstrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>210, 17</value> </metadata> - <metadata name="fileMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <metadata name="manualstrip.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> + <metadata name="fileMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>326, 17</value> </metadata> </root> \ No newline at end of file diff --git a/Source/Plugins/BuilderModes/Properties/Resources.Designer.cs b/Source/Plugins/BuilderModes/Properties/Resources.Designer.cs index a722d70f5..e7943bc4c 100755 --- a/Source/Plugins/BuilderModes/Properties/Resources.Designer.cs +++ b/Source/Plugins/BuilderModes/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace CodeImp.DoomBuilder.BuilderModes.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -540,6 +540,16 @@ namespace CodeImp.DoomBuilder.BuilderModes.Properties { } } + /// <summary> + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// </summary> + internal static System.Drawing.Bitmap TextureLock3Dfloor { + get { + object obj = ResourceManager.GetObject("TextureLock3Dfloor", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// <summary> /// Looks up a localized resource of type System.Drawing.Bitmap. /// </summary> diff --git a/Source/Plugins/BuilderModes/Properties/Resources.resx b/Source/Plugins/BuilderModes/Properties/Resources.resx index ed39a84f4..a1fb3e435 100755 --- a/Source/Plugins/BuilderModes/Properties/Resources.resx +++ b/Source/Plugins/BuilderModes/Properties/Resources.resx @@ -112,12 +112,12 @@ <value>2.0</value> </resheader> <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> - <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> + <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <data name="Guidelines" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Resources\Guidelines.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> @@ -277,4 +277,7 @@ <data name="Close" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Resources\Close.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> + <data name="TextureLock3Dfloor" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\TextureLock3Dfloor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> </root> \ No newline at end of file diff --git a/Source/Plugins/BuilderModes/Resources/TextureLock3Dfloor.png b/Source/Plugins/BuilderModes/Resources/TextureLock3Dfloor.png new file mode 100644 index 0000000000000000000000000000000000000000..c9900100acd789fbbf62b55c522b16863a59834a GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!JnQkjv*HQQzxD6YjWT@E;-ZjOVb>SA1e21 z*zdc<AJ}Yu|KRHUL$3Kc;+`I52NQVQ<{sgHvt={e)YPxj&n>z9&3`sqm`LkKPOl5n zeg_RDE*qxUNoDYF)Hz)!qv*mc$D23vtl0M3sjn68#>ZUeZE_GjoTz5L)4+9ePA<zP zlj3Qqg)-R(;|*jc<(>a*5T>m#Z`-H+4OVwn3Ln`1Ud7YNaqBgk^SQU%js|wT=uf}p z?DxCo``)N?YO4-sm-2ckENyW-9k5R5Zlm1$1=cmTPCLC;S+^us-1#%bH}86SWrIk& zu<OM4zcXhgZA=r^+tMDRFCJlRA^-1QTOqUW$Kpt~jmKMofxzJD>gTe~DWQph;r_!y N4YgHg_92Ucr2rr*mka;^ literal 0 HcmV?d00001 -- GitLab