mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-02-18 10:01:48 +00:00
fixed two bugs in copy/paste
This commit is contained in:
parent
8d3d00372b
commit
2964b1fea9
2 changed files with 35 additions and 27 deletions
|
@ -760,13 +760,13 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
if(pasting)
|
if(pasting)
|
||||||
{
|
{
|
||||||
General.Settings.FindDefaultDrawSettings();
|
General.Settings.FindDefaultDrawSettings();
|
||||||
|
|
||||||
// Go for all linedefs in the new geometry
|
// Go for all linedefs in the new geometry
|
||||||
List<Sidedef> newsides = General.Map.Map.GetMarkedSidedefs(true);
|
List<Sidedef> newsides = General.Map.Map.GetMarkedSidedefs(true);
|
||||||
for(int i = 0; i < newsides.Count; i++)
|
for(int i = 0; i < newsides.Count; i++)
|
||||||
{
|
{
|
||||||
Sidedef s = newsides[i];
|
Sidedef s = newsides[i];
|
||||||
|
|
||||||
// Connected to a virtual sector?
|
// Connected to a virtual sector?
|
||||||
if(s.Marked && s.Sector.Fields.ContainsKey(MapSet.VirtualSectorField))
|
if(s.Marked && s.Sector.Fields.ContainsKey(MapSet.VirtualSectorField))
|
||||||
{
|
{
|
||||||
|
@ -829,7 +829,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
// Remove any virtual sectors
|
// Remove any virtual sectors
|
||||||
General.Map.Map.RemoveVirtualSectors();
|
General.Map.Map.RemoveVirtualSectors();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update cached values
|
// Update cached values
|
||||||
General.Map.Map.Update();
|
General.Map.Map.Update();
|
||||||
|
|
||||||
|
@ -1124,8 +1124,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
public void ClearSelection()
|
public void ClearSelection()
|
||||||
{
|
{
|
||||||
// Accept changes
|
// Accept changes
|
||||||
General.Map.Map.ClearAllSelected();
|
|
||||||
General.Map.AcceptMode();
|
General.Map.AcceptMode();
|
||||||
|
General.Map.Map.ClearAllSelected();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -206,33 +206,41 @@ namespace CodeImp.DoomBuilder.BuilderModes
|
||||||
protected void SelectSector(Sector s, bool selectstate)
|
protected void SelectSector(Sector s, bool selectstate)
|
||||||
{
|
{
|
||||||
bool selectionchanged = false;
|
bool selectionchanged = false;
|
||||||
|
|
||||||
// Select the sector?
|
|
||||||
if(selectstate && !s.Selected)
|
|
||||||
{
|
|
||||||
orderedselection.Add(s);
|
|
||||||
s.Selected = true;
|
|
||||||
selectionchanged = true;
|
|
||||||
}
|
|
||||||
// Deselect the sector?
|
|
||||||
else if(!selectstate && s.Selected)
|
|
||||||
{
|
|
||||||
orderedselection.Remove(s);
|
|
||||||
s.Selected = false;
|
|
||||||
selectionchanged = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Selection changed?
|
if(!s.IsDisposed)
|
||||||
if(selectionchanged)
|
|
||||||
{
|
{
|
||||||
// Make update lines selection
|
// Select the sector?
|
||||||
foreach(Sidedef sd in s.Sidedefs)
|
if(selectstate && !s.Selected)
|
||||||
{
|
{
|
||||||
bool front, back;
|
orderedselection.Add(s);
|
||||||
if(sd.Line.Front != null) front = sd.Line.Front.Sector.Selected; else front = false;
|
s.Selected = true;
|
||||||
if(sd.Line.Back != null) back = sd.Line.Back.Sector.Selected; else back = false;
|
selectionchanged = true;
|
||||||
sd.Line.Selected = front | back;
|
|
||||||
}
|
}
|
||||||
|
// Deselect the sector?
|
||||||
|
else if(!selectstate && s.Selected)
|
||||||
|
{
|
||||||
|
orderedselection.Remove(s);
|
||||||
|
s.Selected = false;
|
||||||
|
selectionchanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Selection changed?
|
||||||
|
if(selectionchanged)
|
||||||
|
{
|
||||||
|
// Make update lines selection
|
||||||
|
foreach(Sidedef sd in s.Sidedefs)
|
||||||
|
{
|
||||||
|
bool front, back;
|
||||||
|
if(sd.Line.Front != null) front = sd.Line.Front.Sector.Selected; else front = false;
|
||||||
|
if(sd.Line.Back != null) back = sd.Line.Back.Sector.Selected; else back = false;
|
||||||
|
sd.Line.Selected = front | back;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Remove from list
|
||||||
|
orderedselection.Remove(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue