diff --git a/ClassicalSharp/2D/Utils/TextAtlas.cs b/ClassicalSharp/2D/Utils/TextAtlas.cs index 5a4c495e0..ebe7ef35b 100644 --- a/ClassicalSharp/2D/Utils/TextAtlas.cs +++ b/ClassicalSharp/2D/Utils/TextAtlas.cs @@ -74,6 +74,7 @@ namespace ClassicalSharp { unsafe static int MakeDigits(int value, byte* digits) { int count = 0; + // use a do while loop here, as we still want a '0' digit if input is 0. do { digits[count] = (byte)Math.Abs(value % 10); value /= 10; count++; diff --git a/ClassicalSharp/Utils/StringBuffer.cs b/ClassicalSharp/Utils/StringBuffer.cs index 8758b014d..0ec5e45a3 100644 --- a/ClassicalSharp/Utils/StringBuffer.cs +++ b/ClassicalSharp/Utils/StringBuffer.cs @@ -63,11 +63,10 @@ namespace ClassicalSharp { int MakeNum(long num) { int len = 0; - numBuffer[len++] = (char)('0' + (num % 10)); num /= 10; - - while (num > 0) { - numBuffer[len++] = (char)('0' + (num % 10)); num /= 10; - } + do { + numBuffer[len] = (char)('0' + (num % 10)); + num /= 10; len++; + } while (num > 0); return len; } diff --git a/src/Client/String.c b/src/Client/String.c index 3375cd5a4..734e6d4d9 100644 --- a/src/Client/String.c +++ b/src/Client/String.c @@ -119,8 +119,8 @@ static Int32 String_MakeInt32(Int32 num, UInt8* numBuffer) { Int32 len = 0; do { - numBuffer[len] = (char)('0' + (num % 10)); num /= 10; - len++; + numBuffer[len] = (UInt8)('0' + (num % 10)); + num /= 10; len++; } while (num > 0); return len; }