From d654fc2d793da8a35f34f65a33a90a2b22dfa583 Mon Sep 17 00:00:00 2001 From: spherallic <spherallic@gmail.com> Date: Fri, 12 Jul 2024 15:04:44 +0200 Subject: [PATCH] Fix flag setting actions when multiple sides are selected --- .../VisualModes/BaseVisualGeometrySector.cs | 2 +- .../VisualModes/BaseVisualGeometrySidedef.cs | 16 +++++++++------- .../BuilderModes/VisualModes/BaseVisualMode.cs | 4 ++-- .../BuilderModes/VisualModes/BaseVisualSlope.cs | 2 +- .../BuilderModes/VisualModes/BaseVisualThing.cs | 2 +- .../BuilderModes/VisualModes/BaseVisualVertex.cs | 2 +- .../VisualModes/IVisualEventReceiver.cs | 2 +- .../VisualModes/NullVisualEventReceiver.cs | 2 +- 8 files changed, 17 insertions(+), 15 deletions(-) diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs index 7747022d..7854faaa 100755 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs @@ -400,7 +400,7 @@ namespace CodeImp.DoomBuilder.BuilderModes protected virtual void SetTexture(string texturename) { } public virtual void ApplyUpperUnpegged(bool set) { } public virtual void ApplyLowerUnpegged(bool set) { } - public virtual void ApplyLineFlag(Linedef line, string flag, string name) { } + public virtual void ApplyLineFlag(string flag, string name) { } protected abstract void MoveTextureOffset(int offsetx, int offsety); protected abstract Point GetTextureOffset(); public virtual void OnPaintSelectEnd() { } // biwa diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs index 8e8f1868..bd115438 100755 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs @@ -1063,7 +1063,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // Toggle midtexture pegging public virtual void OnTogglePegMidtexture() { - mode.ApplyLineFlag(this.Sidedef.Line, "midpeg", "Peg Midtexture"); + mode.ApplyLineFlag("midpeg", "Peg Midtexture"); } // Toggle slope skew @@ -1073,15 +1073,12 @@ namespace CodeImp.DoomBuilder.BuilderModes { case VisualGeometryType.WALL_LOWER: case VisualGeometryType.WALL_UPPER: - mode.ApplyLineFlag(this.Sidedef.Line, "skewtd", "Slope Skew"); - break; - case VisualGeometryType.WALL_MIDDLE_3D: - mode.ApplyLineFlag(this.GetControlLinedef(), "skewtd", "Slope Skew"); + mode.ApplyLineFlag("skewtd", "Slope Skew"); break; case VisualGeometryType.WALL_MIDDLE: - mode.ApplyLineFlag(this.Sidedef.Line, "noskew", "No Midtexture Skew"); + mode.ApplyLineFlag("noskew", "No Midtexture Skew"); break; } } @@ -1149,8 +1146,13 @@ namespace CodeImp.DoomBuilder.BuilderModes } // This sets a specified flag - public virtual void ApplyLineFlag(Linedef line, string flag, string name) + public virtual void ApplyLineFlag(string flag, string name) { + Linedef line = this.Sidedef.Line; + + if (this.GeometryType == VisualGeometryType.WALL_MIDDLE_3D) + line = this.GetControlLinedef(); + if (line.IsFlagSet(flag)) { // Remove flag diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs index 4ccf56e6..67a732c3 100644 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs @@ -2249,12 +2249,12 @@ namespace CodeImp.DoomBuilder.BuilderModes } // Apply specified flag - public void ApplyLineFlag(Linedef line, string flag, string name) + public void ApplyLineFlag(string flag, string name) { List<IVisualEventReceiver> objs = GetSelectedObjects(false, true, false, false, false); foreach (IVisualEventReceiver i in objs) { - i.ApplyLineFlag(line, flag, name); + i.ApplyLineFlag(flag, name); } } diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualSlope.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualSlope.cs index c544c430..70297db3 100644 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualSlope.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualSlope.cs @@ -129,7 +129,7 @@ namespace CodeImp.DoomBuilder.VisualModes public void ApplyTexture(string texture) { } public void ApplyUpperUnpegged(bool set) { } public void ApplyLowerUnpegged(bool set) { } - public void ApplyLineFlag(Linedef line, string flag, string name) { } + public void ApplyLineFlag(string flag, string name) { } public void SelectNeighbours(bool select, bool withSameTexture, bool withSameHeight, bool stopatselected) { } //mxd public virtual void OnPaintSelectEnd() { } // biwa public void OnChangeScale(int x, int y) { } diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs index ec81c7ae..dff6e63b 100644 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs @@ -723,7 +723,7 @@ namespace CodeImp.DoomBuilder.BuilderModes public void ApplyTexture(string texture) { } public void ApplyUpperUnpegged(bool set) { } public void ApplyLowerUnpegged(bool set) { } - public void ApplyLineFlag(Linedef line, string flag, string name) { } + public void ApplyLineFlag(string flag, string name) { } public void SelectNeighbours(bool select, bool withSameTexture, bool withSameHeight, bool stopatselected) { } //mxd public virtual void OnPaintSelectEnd() { } // biwa diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualVertex.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualVertex.cs index 6526d827..76715b32 100644 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualVertex.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualVertex.cs @@ -262,7 +262,7 @@ namespace CodeImp.DoomBuilder.BuilderModes public void ApplyTexture(string texture) { } public void ApplyUpperUnpegged(bool set) { } public void ApplyLowerUnpegged(bool set) { } - public void ApplyLineFlag(Linedef line, string flag, string name) { } + public void ApplyLineFlag(string flag, string name) { } public string GetTextureName() { return ""; } public void SelectNeighbours(bool select, bool withSameTexture, bool withSameHeight, bool stopatselected) { } //mxd public virtual void OnPaintSelectBegin() { } // biwa diff --git a/Source/Plugins/BuilderModes/VisualModes/IVisualEventReceiver.cs b/Source/Plugins/BuilderModes/VisualModes/IVisualEventReceiver.cs index b280b32f..896b93fc 100644 --- a/Source/Plugins/BuilderModes/VisualModes/IVisualEventReceiver.cs +++ b/Source/Plugins/BuilderModes/VisualModes/IVisualEventReceiver.cs @@ -64,7 +64,7 @@ namespace CodeImp.DoomBuilder.BuilderModes void ApplyTexture(string texture); void ApplyUpperUnpegged(bool set); void ApplyLowerUnpegged(bool set); - void ApplyLineFlag(Linedef line, string flag, string name); + void ApplyLineFlag(string flag, string name); // Other methods string GetTextureName(); diff --git a/Source/Plugins/BuilderModes/VisualModes/NullVisualEventReceiver.cs b/Source/Plugins/BuilderModes/VisualModes/NullVisualEventReceiver.cs index 5e35629c..045ee2a5 100644 --- a/Source/Plugins/BuilderModes/VisualModes/NullVisualEventReceiver.cs +++ b/Source/Plugins/BuilderModes/VisualModes/NullVisualEventReceiver.cs @@ -61,7 +61,7 @@ namespace CodeImp.DoomBuilder.BuilderModes public void ApplyTexture(string texture) { } public void ApplyUpperUnpegged(bool set) { } public void ApplyLowerUnpegged(bool set) { } - public void ApplyLineFlag(Linedef line, string flag, string name) { } + public void ApplyLineFlag(string flag, string name) { } public string GetTextureName() { return ""; } public void SelectNeighbours(bool select, bool withSameTexture, bool withSameHeight, bool stopatselected) { } //mxd } -- GitLab