Update 2D flat alignment when dragging geometry or changing a sector tag. Also tweak some undo/redo behavior.
This commit is contained in:
parent
3856a65588
commit
cba0e2a5d4
|
@ -718,24 +718,19 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
//General.MainWindow.RedrawDisplay();
|
//General.MainWindow.RedrawDisplay();
|
||||||
|
|
||||||
// (Re)set hacky flat alignment
|
// (Re)set hacky flat alignment
|
||||||
bool alignmentupdate = false;
|
|
||||||
foreach (Linedef l in General.Map.Map.Linedefs)
|
foreach (Linedef l in General.Map.Map.Linedefs)
|
||||||
if (l.Marked && (l.IsFlatAlignment || l.Action == 0))
|
if (l.Marked && (l.IsFlatAlignment || l.Action == 0))
|
||||||
{
|
{
|
||||||
l.Front.Sector.UpdateFloorSurface();
|
l.Front.Sector.UpdateFloorSurface();
|
||||||
l.Front.Sector.UpdateCeilingSurface();
|
l.Front.Sector.UpdateCeilingSurface();
|
||||||
linedeftags.Add(l.Tag);
|
linedeftags.Add(l.Tag);
|
||||||
alignmentupdate = true;
|
|
||||||
}
|
}
|
||||||
if (alignmentupdate)
|
foreach (Sector s in General.Map.Map.Sectors)
|
||||||
{
|
if (linedeftags.Contains(s.Tag) || s.Marked)
|
||||||
foreach (Sector s in General.Map.Map.Sectors)
|
{
|
||||||
if (linedeftags.Contains(s.Tag))
|
s.UpdateFloorSurface();
|
||||||
{
|
s.UpdateCeilingSurface();
|
||||||
s.UpdateFloorSurface();
|
}
|
||||||
s.UpdateCeilingSurface();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Map changed!
|
// Map changed!
|
||||||
General.Map.IsChanged = true;
|
General.Map.IsChanged = true;
|
||||||
|
@ -882,24 +877,19 @@ namespace CodeImp.DoomBuilder.Editing
|
||||||
//General.MainWindow.RedrawDisplay();
|
//General.MainWindow.RedrawDisplay();
|
||||||
|
|
||||||
// (Re)set hacky flat alignment
|
// (Re)set hacky flat alignment
|
||||||
bool alignmentupdate = false;
|
|
||||||
foreach (Linedef l in General.Map.Map.Linedefs)
|
foreach (Linedef l in General.Map.Map.Linedefs)
|
||||||
if (l.Marked && (l.IsFlatAlignment || l.Action == 0))
|
if (l.Marked && (l.IsFlatAlignment || l.Action == 0))
|
||||||
{
|
{
|
||||||
l.Front.Sector.UpdateFloorSurface();
|
l.Front.Sector.UpdateFloorSurface();
|
||||||
l.Front.Sector.UpdateCeilingSurface();
|
l.Front.Sector.UpdateCeilingSurface();
|
||||||
linedeftags.Add(l.Tag);
|
linedeftags.Add(l.Tag);
|
||||||
alignmentupdate = true;
|
|
||||||
}
|
}
|
||||||
if (alignmentupdate)
|
foreach (Sector s in General.Map.Map.Sectors)
|
||||||
{
|
if (linedeftags.Contains(s.Tag) || s.Marked)
|
||||||
foreach (Sector s in General.Map.Map.Sectors)
|
{
|
||||||
if (linedeftags.Contains(s.Tag))
|
s.UpdateFloorSurface();
|
||||||
{
|
s.UpdateCeilingSurface();
|
||||||
s.UpdateFloorSurface();
|
}
|
||||||
s.UpdateCeilingSurface();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Map changed!
|
// Map changed!
|
||||||
General.Map.IsChanged = true;
|
General.Map.IsChanged = true;
|
||||||
|
|
|
@ -324,6 +324,10 @@ namespace CodeImp.DoomBuilder.Windows
|
||||||
|
|
||||||
// Action
|
// Action
|
||||||
s.Tag = General.Clamp(tagSelector.GetSmartTag(s.Tag, tagoffset++), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd
|
s.Tag = General.Clamp(tagSelector.GetSmartTag(s.Tag, tagoffset++), General.Map.FormatInterface.MinTag, General.Map.FormatInterface.MaxTag); //mxd
|
||||||
|
|
||||||
|
// Update hacky flat alignment
|
||||||
|
s.UpdateFloorSurface();
|
||||||
|
s.UpdateCeilingSurface();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Done
|
// Done
|
||||||
|
|
|
@ -517,6 +517,30 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Update hacky flat alignment
|
||||||
|
foreach (Linedef l in General.Map.Map.LinedefsFromMarkedVertices(true, true, true))
|
||||||
|
{
|
||||||
|
if (l.IsFlatAlignment)
|
||||||
|
{
|
||||||
|
if (l.Tag == 0)
|
||||||
|
{
|
||||||
|
l.Front.Sector.UpdateFloorSurface();
|
||||||
|
l.Front.Sector.UpdateCeilingSurface();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (Sector s in General.Map.Map.Sectors)
|
||||||
|
if (s.Tag == l.Tag)
|
||||||
|
{
|
||||||
|
s.UpdateFloorSurface();
|
||||||
|
s.UpdateCeilingSurface();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Update cached values
|
// Update cached values
|
||||||
General.Map.Map.Update();
|
General.Map.Map.Update();
|
||||||
|
|
Loading…
Reference in New Issue