From 0b6a0e4a743a642b7951a73d06debdaf71696cf8 Mon Sep 17 00:00:00 2001 From: spherallic <spherallic@gmail.com> Date: Wed, 29 May 2024 16:51:35 +0200 Subject: [PATCH] Change integer snap for position --- Source/Core/Config/ProgramConfiguration.cs | 4 ++++ Source/Core/Map/MapSet.cs | 3 +-- Source/Core/Map/Thing.cs | 2 +- Source/Core/Map/Vertex.cs | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Source/Core/Config/ProgramConfiguration.cs b/Source/Core/Config/ProgramConfiguration.cs index cad23b5bc..ea617535f 100644 --- a/Source/Core/Config/ProgramConfiguration.cs +++ b/Source/Core/Config/ProgramConfiguration.cs @@ -157,6 +157,7 @@ namespace CodeImp.DoomBuilder.Config private bool srb2rendernights; private bool srb2renderzoomtubes; private bool srb2renderpolyobjects; + private bool snaptointeger; // These are not stored in the configuration, only used at runtime private int defaultbrightness; @@ -301,6 +302,7 @@ namespace CodeImp.DoomBuilder.Config public bool SRB2RenderNiGHTS { get { return srb2rendernights; } internal set { srb2rendernights = value; } } public bool SRB2RenderZoomTubes { get { return srb2renderzoomtubes; } internal set { srb2renderzoomtubes = value; } } public bool SRB2RenderPolyobjects { get { return srb2renderpolyobjects; } internal set { srb2renderpolyobjects = value; } } + public bool SnapToInteger { get { return snaptointeger; } internal set { snaptointeger = value; } } //mxd. Left here for compatibility reasons... public string DefaultTexture { get { return General.Map != null ? General.Map.Options.DefaultWallTexture : "-"; } set { if(General.Map != null) General.Map.Options.DefaultWallTexture = value; } } @@ -452,6 +454,7 @@ namespace CodeImp.DoomBuilder.Config srb2rendernights = cfg.ReadSetting("srb2rendernights", true); srb2renderpolyobjects = cfg.ReadSetting("srb2renderpolyobjects", true); srb2renderzoomtubes = cfg.ReadSetting("srb2renderzoomtubes", true); + snaptointeger = cfg.ReadSetting("snaptointeger", true); //mxd. Sector defaults defaultceilheight = cfg.ReadSetting("defaultceilheight", 128); @@ -607,6 +610,7 @@ namespace CodeImp.DoomBuilder.Config cfg.WriteSetting("srb2rendernights", srb2rendernights); cfg.WriteSetting("srb2renderzoomtubes", srb2renderzoomtubes); cfg.WriteSetting("srb2renderpolyobjects", srb2renderpolyobjects); + cfg.WriteSetting("snaptointeger", snaptointeger); // Toasts General.ToastManager.WriteSettings(cfg); diff --git a/Source/Core/Map/MapSet.cs b/Source/Core/Map/MapSet.cs index 2324dea69..6d5cfe485 100755 --- a/Source/Core/Map/MapSet.cs +++ b/Source/Core/Map/MapSet.cs @@ -3761,8 +3761,7 @@ namespace CodeImp.DoomBuilder.Map /// <summary>This snaps all vertices to the map format accuracy. Call this to ensure the vertices are at valid coordinates.</summary> public void SnapAllToAccuracy(bool usepreciseposition) { - // SRB2 doesn't support decimals for X/Y position, but does still require VertexDecimals for other float fields/values... - if (General.Map.Config.EngineName == "srb2") + if (General.Settings.SnapToInteger) usepreciseposition = false; foreach (Vertex v in vertices) v.SnapToAccuracy(usepreciseposition); diff --git a/Source/Core/Map/Thing.cs b/Source/Core/Map/Thing.cs index c29922c56..f1f174e37 100755 --- a/Source/Core/Map/Thing.cs +++ b/Source/Core/Map/Thing.cs @@ -726,7 +726,7 @@ namespace CodeImp.DoomBuilder.Map // This snaps the vertex to the map format accuracy public void SnapToAccuracy() { - SnapToAccuracy(!(General.Map.Config.EngineName == "srb2")); + SnapToAccuracy(!General.Settings.SnapToInteger); } // This snaps the vertex to the map format accuracy diff --git a/Source/Core/Map/Vertex.cs b/Source/Core/Map/Vertex.cs index 3e3042d70..15dd83be0 100755 --- a/Source/Core/Map/Vertex.cs +++ b/Source/Core/Map/Vertex.cs @@ -283,7 +283,7 @@ namespace CodeImp.DoomBuilder.Map // This snaps the vertex to the map format accuracy public void SnapToAccuracy() { - SnapToAccuracy(!(General.Map.Config.EngineName == "srb2")); + SnapToAccuracy(!General.Settings.SnapToInteger); } // This snaps the vertex to the map format accuracy -- GitLab