Snap selection to grid: fixed a problem that could cause a crash if geometry got removed by snapping it to the grid

This commit is contained in:
biwa 2022-02-03 19:35:10 +01:00
parent b369b944f9
commit 484b0817bd
5 changed files with 38 additions and 1 deletions

View file

@ -260,6 +260,10 @@ namespace CodeImp.DoomBuilder.Editing
// Script events
public virtual bool OnScriptRunBegin() { return true; }
public virtual void OnScriptRunEnd() { }
// This should be called by global actions (i.e. that are not part of an editing mode) when they changed map elements,
// so that the mode can react to it (for example by rebuilding a blockmap)
public virtual void OnMapElementsChanged() { }
#endregion
}

View file

@ -2643,6 +2643,9 @@ namespace CodeImp.DoomBuilder
undoredo.WithdrawUndo();
}
// Let the current editing mode know that we changed something
General.Editing.Mode.OnMapElementsChanged();
// Done
General.Interface.RedrawDisplay();
Cursor.Current = Cursors.Default;

View file

@ -1217,6 +1217,16 @@ namespace CodeImp.DoomBuilder.BuilderModes
return base.OnCopyBegin();
}
/// <summary>
/// If map elements have changed the blockmap needs to be recreated.
/// </summary>
public override void OnMapElementsChanged()
{
base.OnMapElementsChanged();
CreateBlockmap();
}
//mxd
private void RenderComment(Linedef l)
{

View file

@ -1596,6 +1596,16 @@ namespace CodeImp.DoomBuilder.BuilderModes
General.Interface.RedrawDisplay();
}
/// <summary>
/// If map elements have changed the blockmap needs to be recreated.
/// </summary>
public override void OnMapElementsChanged()
{
base.OnMapElementsChanged();
CreateBlockmap();
}
//mxd
public override void OnViewSelectionNumbersChanged(bool enabled)
{

View file

@ -759,7 +759,17 @@ namespace CodeImp.DoomBuilder.BuilderModes
return base.OnCopyBegin();
}
/// <summary>
/// If map elements have changed the blockmap needs to be recreated.
/// </summary>
public override void OnMapElementsChanged()
{
base.OnMapElementsChanged();
CreateBlockmap();
}
#endregion
#region ================== Actions