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