From 801926dcf4444621516a0979f7a70135cd756f32 Mon Sep 17 00:00:00 2001 From: Ian C Date: Tue, 14 Jul 2020 20:53:40 +0000 Subject: Fixed block size calculations. --- SpriteEd/NSSpriteEdit.cs | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/SpriteEd/NSSpriteEdit.cs b/SpriteEd/NSSpriteEdit.cs index 53e9ab3..27a67c3 100644 --- a/SpriteEd/NSSpriteEdit.cs +++ b/SpriteEd/NSSpriteEdit.cs @@ -198,19 +198,25 @@ namespace SpriteEd get { uint bx = m_sprite.Width * (DoubleWidth ? 2u : 1u); + uint by = m_sprite.Height * (DoubleHeight ? 2u : 1u); uint s = (uint)Math.Min(Frame.Width, Frame.Height); + uint dx = s/bx; + uint dy = s/by; + + uint min = Math.Min(dx, dy); + if (!(DoubleWidth ^ DoubleHeight)) { - return s/bx * (DoubleWidth ? 2u : 1u); + return min * (DoubleWidth ? 2u : 1u); } else if (DoubleWidth) { - return s/bx * 2u; + return min * 2u; } else { - return s/bx / 2u; + return min; } } } @@ -222,20 +228,26 @@ namespace SpriteEd { get { + uint bx = m_sprite.Width * (DoubleWidth ? 2u : 1u); uint by = m_sprite.Height * (DoubleHeight ? 2u : 1u); uint s = (uint)Math.Min(Frame.Width, Frame.Height); + uint dx = s/bx; + uint dy = s/by; + + uint min = Math.Min(dx, dy); + if (!(DoubleWidth ^ DoubleHeight)) { - return s/by * (DoubleHeight ? 2u : 1u); + return min * (DoubleWidth ? 2u : 1u); } - else if (DoubleWidth) + else if (DoubleHeight) { - return s/by / 2u; + return min * 2u; } else { - return s/by * 2u; + return min; } } } -- cgit v1.2.3