From 54fe5ae165accac627ec984f566173eaf95f5c80 Mon Sep 17 00:00:00 2001 From: biwa <6475593+biwa@users.noreply.github.com> Date: Fri, 16 Jul 2021 17:56:55 +0200 Subject: [PATCH] Fixed a bug that could cause a crash when going over the maximum linedef limit --- Source/Core/Geometry/Tools.cs | 3 ++- Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Source/Core/Geometry/Tools.cs b/Source/Core/Geometry/Tools.cs index b09f170..9418624 100644 --- a/Source/Core/Geometry/Tools.cs +++ b/Source/Core/Geometry/Tools.cs @@ -1398,7 +1398,8 @@ namespace CodeImp.DoomBuilder.Geometry // Before this point, the new geometry is not linked with the existing geometry. // Now perform standard geometry stitching to merge the new geometry with the rest // of the map. The marked vertices indicate the new geometry. - map.StitchGeometry(); + if (!map.StitchGeometry()) + return false; map.Update(true, false); // Find our new lines again, because they have been merged with the other geometry diff --git a/Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs b/Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs index 8ad164e..79df1d2 100644 --- a/Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs +++ b/Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs @@ -833,8 +833,6 @@ namespace CodeImp.DoomBuilder.BuilderModes else { // Drawing failed - // NOTE: I have to call this twice, because the first time only cancels this volatile mode - General.Map.UndoRedo.WithdrawUndo(); General.Map.UndoRedo.WithdrawUndo(); } }