diff --git a/Source/Plugins/UDBScript/API/MapWrapper.cs b/Source/Plugins/UDBScript/API/MapWrapper.cs index 5b574fe87bf5c88d6038a89989f89c6a59d9664a..e1e432ddfe7fd9103c16d9de2b96dd230bafddb1 100644 --- a/Source/Plugins/UDBScript/API/MapWrapper.cs +++ b/Source/Plugins/UDBScript/API/MapWrapper.cs @@ -263,11 +263,17 @@ namespace CodeImp.DoomBuilder.UDBScript.Wrapper try { Vector2D v = (Vector2D)BuilderPlug.Me.GetVectorFromObject(pos, false); + Linedef nearest = null; if (double.IsNaN(maxrange)) - return new LinedefWrapper(General.Map.Map.NearestLinedef(v)); + nearest = General.Map.Map.NearestLinedef(v); else - return new LinedefWrapper(General.Map.Map.NearestLinedefRange(v, maxrange)); + nearest = General.Map.Map.NearestLinedefRange(v, maxrange); + + if (nearest == null) + return null; + + return new LinedefWrapper(nearest); } catch (CantConvertToVectorException e) { @@ -286,11 +292,17 @@ namespace CodeImp.DoomBuilder.UDBScript.Wrapper try { Vector2D v = (Vector2D)BuilderPlug.Me.GetVectorFromObject(pos, false); + Thing nearest = null; if (double.IsNaN(maxrange)) - return new ThingWrapper(General.Map.Map.NearestThingSquareRange(v, double.MaxValue)); + nearest = General.Map.Map.NearestThingSquareRange(v, double.MaxValue); else - return new ThingWrapper(General.Map.Map.NearestThingSquareRange(v, maxrange)); + nearest = General.Map.Map.NearestThingSquareRange(v, maxrange); + + if (nearest == null) + return null; + + return new ThingWrapper(nearest); } catch (CantConvertToVectorException e) { @@ -309,11 +321,17 @@ namespace CodeImp.DoomBuilder.UDBScript.Wrapper try { Vector2D v = (Vector2D)BuilderPlug.Me.GetVectorFromObject(pos, false); + Vertex nearest = null; if (double.IsNaN(maxrange)) - return new VertexWrapper(General.Map.Map.NearestVertexSquareRange(v, double.MaxValue)); + nearest = General.Map.Map.NearestVertexSquareRange(v, double.MaxValue); else - return new VertexWrapper(General.Map.Map.NearestVertexSquareRange(v, maxrange)); + nearest = General.Map.Map.NearestVertexSquareRange(v, maxrange); + + if (nearest == null) + return null; + + return new VertexWrapper(nearest); } catch (CantConvertToVectorException e) { @@ -332,8 +350,12 @@ namespace CodeImp.DoomBuilder.UDBScript.Wrapper try { Vector2D v = (Vector2D)BuilderPlug.Me.GetVectorFromObject(pos, false); + Sidedef nearest = MapSet.NearestSidedef(General.Map.Map.Sidedefs, v); + + if (nearest == null) + return null; - return new SidedefWrapper(MapSet.NearestSidedef(General.Map.Map.Sidedefs, v)); + return new SidedefWrapper(nearest); } catch (CantConvertToVectorException e) {