From 56a38ee16db5636e76fe6e20b9dcab843c70552e Mon Sep 17 00:00:00 2001 From: spherallic <spherallic@gmail.com> Date: Fri, 3 May 2024 23:40:31 +0200 Subject: [PATCH] Don't clamp floor/ceiling texture offsets prematurely --- Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs | 6 ++++-- Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs b/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs index 954eac9d7..0b880c7bc 100755 --- a/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs +++ b/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs @@ -302,9 +302,11 @@ namespace CodeImp.DoomBuilder.BuilderModes { //mxd Sector s = GetControlSector(); + double texsizex = General.Map.Config.ScaledFlatOffsets ? Texture.ScaledWidth : (Texture.ScaledWidth / s.Fields.GetValue("xscaleceiling", 1.0)); + double texsizey = General.Map.Config.ScaledFlatOffsets ? Texture.ScaledHeight : (Texture.ScaledHeight / s.Fields.GetValue("yscaleceiling", 1.0)); s.Fields.BeforeFieldsChange(); - double nx = (s.Fields.GetValue("xpanningceiling", 0.0) + offsetx) % (Texture.ScaledWidth / s.Fields.GetValue("xscaleceiling", 1.0)); - double ny = (s.Fields.GetValue("ypanningceiling", 0.0) + offsety) % (Texture.ScaledHeight / s.Fields.GetValue("yscaleceiling", 1.0)); + double nx = (s.Fields.GetValue("xpanningceiling", 0.0) + offsetx) % texsizex; + double ny = (s.Fields.GetValue("ypanningceiling", 0.0) + offsety) % texsizey; s.Fields["xpanningceiling"] = new UniValue(UniversalType.Float, nx); s.Fields["ypanningceiling"] = new UniValue(UniversalType.Float, ny); s.UpdateNeeded = true; diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs b/Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs index 3eb3443af..4141ea3e2 100755 --- a/Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs +++ b/Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs @@ -256,9 +256,11 @@ namespace CodeImp.DoomBuilder.BuilderModes { //mxd Sector s = GetControlSector(); + double texsizex = General.Map.Config.ScaledFlatOffsets ? Texture.ScaledWidth : (Texture.ScaledWidth / s.Fields.GetValue("xscalefloor", 1.0)); + double texsizey = General.Map.Config.ScaledFlatOffsets ? Texture.ScaledHeight : (Texture.ScaledHeight / s.Fields.GetValue("yscalefloor", 1.0)); s.Fields.BeforeFieldsChange(); - double nx = (s.Fields.GetValue("xpanningfloor", 0.0) + offsetx) % (Texture.ScaledWidth / s.Fields.GetValue("xscalefloor", 1.0)); - double ny = (s.Fields.GetValue("ypanningfloor", 0.0) + offsety) % (Texture.ScaledHeight / s.Fields.GetValue("yscalefloor", 1.0)); + double nx = (s.Fields.GetValue("xpanningfloor", 0.0) + offsetx) % texsizex; + double ny = (s.Fields.GetValue("ypanningfloor", 0.0) + offsety) % texsizey; s.Fields["xpanningfloor"] = new UniValue(UniversalType.Float, nx); s.Fields["ypanningfloor"] = new UniValue(UniversalType.Float, ny); s.UpdateNeeded = true; -- GitLab