From 79dfafc69176ef8f215931c768cfd7113eefa014 Mon Sep 17 00:00:00 2001 From: spherallic Date: Tue, 9 May 2023 20:45:25 +0200 Subject: [PATCH] Correct sector references when manually flipping sidedefs --- Source/Core/Map/Linedef.cs | 11 ++++++++++- .../Plugins/BuilderModes/ClassicModes/LinedefsMode.cs | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Source/Core/Map/Linedef.cs b/Source/Core/Map/Linedef.cs index 3239cfd..79fb2e8 100644 --- a/Source/Core/Map/Linedef.cs +++ b/Source/Core/Map/Linedef.cs @@ -1014,13 +1014,22 @@ namespace CodeImp.DoomBuilder.Map } // This flips the sidedefs - public void FlipSidedefs() + public void FlipSidedefs() { FlipSidedefs(false); } + + public void FlipSidedefs(bool flipsectorrefs) { // Flip sidedefs Sidedef oldfront = front; Sidedef oldback = back; AttachFront(oldback); AttachBack(oldfront); + + if (flipsectorrefs & back != null) + { + Sector old = back.Sector; + back.SetSector(front.Sector); + front.SetSector(old); + } General.Map.IsChanged = true; } diff --git a/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs b/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs index d25acb5..e3d1c5b 100644 --- a/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs +++ b/Source/Plugins/BuilderModes/ClassicModes/LinedefsMode.cs @@ -2110,7 +2110,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // Flip sidedefs in all selected linedefs foreach(Linedef l in validlines) { - l.FlipSidedefs(); + l.FlipSidedefs(true); l.Front.Sector.UpdateNeeded = true; l.Back.Sector.UpdateNeeded = true; }