diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs index f8d9a18..1c2ad76 100644 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs @@ -1606,7 +1606,42 @@ namespace CodeImp.DoomBuilder.BuilderModes sd.Sector.Marked = true; // Make new blockmap - FillBlockMap(); + foreach (MapElement e in General.Map.Map.RemovedElements) + { + if (e is Linedef) + blockmap.RemoveLinedef(e as Linedef); + else if (e is Thing) + blockmap.RemoveThing(e as Thing); + else if (e is Sector) + blockmap.RemoveSector(e as Sector); + } + + foreach (Linedef l in General.Map.Map.Linedefs) + { + if (l.Marked) + { + blockmap.RemoveLinedef(l); + blockmap.AddLinedef(l); + } + } + + foreach (Thing t in General.Map.Map.Things) + { + if (t.Marked) + { + blockmap.RemoveThing(t); + blockmap.AddThing(t); + } + } + + foreach (Sector s in General.Map.Map.Sectors) + { + if (s.Marked) + { + blockmap.RemoveSector(s); + blockmap.AddSector(s); + } + } RebuildElementData(true);