diff --git a/Source/Core/Config/ProgramConfiguration.cs b/Source/Core/Config/ProgramConfiguration.cs index cad23b5bcb5d839a7a50d9e6efa7bbeb7e8f36e7..ea617535f21c25c89aa6ae9ee20f3578de632efa 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 2324dea69a820d421016b45dba071ce330d4a2a8..6d5cfe4855dff48b64ffc59d606c8b8f98765d20 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 c29922c56c621c1ab9f3536d1c354efc41946f5d..f1f174e37c69d396675e4dea531cba59b35b0a56 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 3e3042d704a36ae7d1750a495fe72ef29e58443d..15dd83be0eac2bc8eb29b0fa02d43575cf22f967 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