diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualLower.cs b/Source/Plugins/BuilderModes/VisualModes/VisualLower.cs index 9bb8659026286a846abd77501bf83a86bd088b15..a86052779df87afb7758581653c72f0d02a4b049 100755 --- a/Source/Plugins/BuilderModes/VisualModes/VisualLower.cs +++ b/Source/Plugins/BuilderModes/VisualModes/VisualLower.cs @@ -125,9 +125,8 @@ namespace CodeImp.DoomBuilder.BuilderModes setuponloadedtexture = 0; } - // Get texture scaled size - Vector2D tsz = new Vector2D(base.Texture.ScaledWidth, base.Texture.ScaledHeight); - tsz = tsz / tscale; + // Get texture scaled size. Round up, because that's apparently what GZDoom does + Vector2D tsz = new Vector2D(Math.Ceiling(base.Texture.ScaledWidth / tscale.x), Math.Ceiling(base.Texture.ScaledHeight / tscale.y)); // Get texture offsets Vector2D tof = new Vector2D(Sidedef.OffsetX, Sidedef.OffsetY); @@ -143,6 +142,9 @@ namespace CodeImp.DoomBuilder.BuilderModes // If the texture gets replaced with a "hires" texture it adds more fuckery if (base.Texture is HiResImage) tof *= tscaleAbs; + + // Round up, since that's apparently what GZDoom does. Not sure if this is the right place or if it also has to be done earlier + tof = new Vector2D(Math.Ceiling(tof.x), Math.Ceiling(tof.y)); } // Determine texture coordinates plane as they would be in normal circumstances. diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualMiddle3D.cs b/Source/Plugins/BuilderModes/VisualModes/VisualMiddle3D.cs index 7da3145fdfbf1f2661fabba825d4f9cd8f44049c..74075a979f530a0e1acfa39459679a3a378b96f0 100755 --- a/Source/Plugins/BuilderModes/VisualModes/VisualMiddle3D.cs +++ b/Source/Plugins/BuilderModes/VisualModes/VisualMiddle3D.cs @@ -142,10 +142,9 @@ namespace CodeImp.DoomBuilder.BuilderModes base.Texture = General.Map.Data.MissingTexture3D; setuponloadedtexture = 0; } - - // Get texture scaled size - Vector2D tsz = new Vector2D(base.Texture.ScaledWidth, base.Texture.ScaledHeight); - tsz = tsz / tscale; + + // Get texture scaled size. Round up, because that's apparently what GZDoom does + Vector2D tsz = new Vector2D(Math.Ceiling(base.Texture.ScaledWidth / tscale.x), Math.Ceiling(base.Texture.ScaledHeight / tscale.y)); // Get texture offsets Vector2D tof = new Vector2D(Sidedef.OffsetX, Sidedef.OffsetY) + new Vector2D(sourceside.OffsetX, sourceside.OffsetY); @@ -161,6 +160,9 @@ namespace CodeImp.DoomBuilder.BuilderModes // If the texture gets replaced with a "hires" texture it adds more fuckery if (base.Texture is HiResImage) tof *= tscaleAbs; + + // Round up, since that's apparently what GZDoom does. Not sure if this is the right place or if it also has to be done earlier + tof = new Vector2D(Math.Ceiling(tof.x), Math.Ceiling(tof.y)); } // For Vavoom type 3D floors the ceiling is lower than floor and they are reversed. diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleBack.cs b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleBack.cs index e97ee0c231870e344b525f5a6db6dc7dc246e22c..a6775a4d1fef16a9d161eaa133047b8627037224 100755 --- a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleBack.cs +++ b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleBack.cs @@ -98,10 +98,9 @@ namespace CodeImp.DoomBuilder.BuilderModes base.Texture = General.Map.Data.MissingTexture3D; setuponloadedtexture = 0; } - - // Get texture scaled size - Vector2D tsz = new Vector2D(base.Texture.ScaledWidth, base.Texture.ScaledHeight); - tsz = tsz / tscale; + + // Get texture scaled size. Round up, because that's apparently what GZDoom does + Vector2D tsz = new Vector2D(Math.Ceiling(base.Texture.ScaledWidth / tscale.x), Math.Ceiling(base.Texture.ScaledHeight / tscale.y)); // Get texture offsets Vector2D tof = new Vector2D(Sidedef.OffsetX, Sidedef.OffsetY) + new Vector2D(sourceside.OffsetX, sourceside.OffsetY); diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleDouble.cs b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleDouble.cs index 537bfad0ba53163a649716bceed32b992ccb3232..0c5cf77a2c68d99f4688f3c83075730d718e080c 100755 --- a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleDouble.cs +++ b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleDouble.cs @@ -125,9 +125,8 @@ namespace CodeImp.DoomBuilder.BuilderModes setuponloadedtexture = 0; } - // Get texture scaled size - Vector2D tsz = new Vector2D(base.Texture.ScaledWidth, base.Texture.ScaledHeight); - tsz = tsz / tscale; + // Get texture scaled size. Round up, because that's apparently what GZDoom does + Vector2D tsz = new Vector2D(Math.Ceiling(base.Texture.ScaledWidth / tscale.x), Math.Ceiling(base.Texture.ScaledHeight / tscale.y)); // Get texture offsets Vector2D tof = new Vector2D(Sidedef.OffsetX, Sidedef.OffsetY); @@ -143,6 +142,9 @@ namespace CodeImp.DoomBuilder.BuilderModes // If the texture gets replaced with a "hires" texture it adds more fuckery if (base.Texture is HiResImage) tof *= tscaleAbs; + + // Round up, since that's apparently what GZDoom does. Not sure if this is the right place or if it also has to be done earlier + tof = new Vector2D(Math.Ceiling(tof.x), Math.Ceiling(tof.y)); } // Determine texture coordinates plane as they would be in normal circumstances. diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleSingle.cs b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleSingle.cs index 2b9b08a6ff33f1c7fc1e30654ccba39bfea3af6e..9af2c2dbbfefc6c21cc11bdb255ac25ca87791ad 100755 --- a/Source/Plugins/BuilderModes/VisualModes/VisualMiddleSingle.cs +++ b/Source/Plugins/BuilderModes/VisualModes/VisualMiddleSingle.cs @@ -110,11 +110,10 @@ namespace CodeImp.DoomBuilder.BuilderModes base.Texture = General.Map.Data.MissingTexture3D; setuponloadedtexture = 0; } - - // Get texture scaled size - Vector2D tsz = new Vector2D(base.Texture.ScaledWidth, base.Texture.ScaledHeight); - tsz = tsz / tscale; - + + // Get texture scaled size. Round up, because that's apparently what GZDoom does + Vector2D tsz = new Vector2D(Math.Ceiling(base.Texture.ScaledWidth / tscale.x), Math.Ceiling(base.Texture.ScaledHeight / tscale.y)); + // Get texture offsets Vector2D tof = new Vector2D(Sidedef.OffsetX, Sidedef.OffsetY); @@ -129,6 +128,9 @@ namespace CodeImp.DoomBuilder.BuilderModes // If the texture gets replaced with a "hires" texture it adds more fuckery if (base.Texture is HiResImage) tof *= tscaleAbs; + + // Round up, since that's apparently what GZDoom does. Not sure if this is the right place or if it also has to be done earlier + tof = new Vector2D(Math.Ceiling(tof.x), Math.Ceiling(tof.y)); } // Determine texture coordinates plane as they would be in normal circumstances. diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualUpper.cs b/Source/Plugins/BuilderModes/VisualModes/VisualUpper.cs index 1bdc68aad6b966aa5d404cfea014cf6a08530ad7..36ffc8438e1e4959f7b2bbb84a22fe2a7c59aa03 100755 --- a/Source/Plugins/BuilderModes/VisualModes/VisualUpper.cs +++ b/Source/Plugins/BuilderModes/VisualModes/VisualUpper.cs @@ -126,10 +126,9 @@ namespace CodeImp.DoomBuilder.BuilderModes setuponloadedtexture = 0; } - // Get texture scaled size - Vector2D tsz = new Vector2D(base.Texture.ScaledWidth, base.Texture.ScaledHeight); - tsz = tsz / tscale; - + // Get texture scaled size. Round up, because that's apparently what GZDoom does + Vector2D tsz = new Vector2D(Math.Ceiling(base.Texture.ScaledWidth / tscale.x), Math.Ceiling(base.Texture.ScaledHeight / tscale.y)); + // Get texture offsets Vector2D tof = new Vector2D(Sidedef.OffsetX, Sidedef.OffsetY); @@ -144,6 +143,9 @@ namespace CodeImp.DoomBuilder.BuilderModes // If the texture gets replaced with a "hires" texture it adds more fuckery if (base.Texture is HiResImage) tof *= tscaleAbs; + + // Round up, since that's apparently what GZDoom does. Not sure if this is the right place or if it also has to be done earlier + tof = new Vector2D(Math.Ceiling(tof.x), Math.Ceiling(tof.y)); } // Determine texture coordinates plane as they would be in normal circumstances.