Browse Source

Fixed degree symbol not displaying

Fixed bug with degree symbol not displaying correctly in torque thanks
to the forums:
http://www.garagegames.com/community/forums/viewthread/125190/1#comment-804996
Nathan Bowhay 10 years ago
parent
commit
ac0ba27753
1 changed files with 7 additions and 2 deletions
  1. 7 2
      Engine/source/gfx/gFont.cpp

+ 7 - 2
Engine/source/gfx/gFont.cpp

@@ -568,6 +568,7 @@ void GFont::wrapString(const UTF8 *txt, U32 lineWidth, Vector<U32> &startLineOff
 
    for (U32 i = 0; i < len;)
    {
+      U32 wide = 0; 
       startLine = i;
       startLineOffset.push_back(startLine);
 
@@ -584,6 +585,10 @@ void GFont::wrapString(const UTF8 *txt, U32 lineWidth, Vector<U32> &startLineOff
          else if(isValidChar(txt[i]))
          {
             lineStrWidth += getCharInfo(txt[i]).xIncrement;
+            if(txt[i] < 0) // symbols which code > 127
+            {  
+               wide++; i++;
+            }
             if( lineStrWidth > lineWidth )
             {
                needsNewLine = true;
@@ -595,7 +600,7 @@ void GFont::wrapString(const UTF8 *txt, U32 lineWidth, Vector<U32> &startLineOff
       if (!needsNewLine)
       {
          // we are done!
-         lineLen.push_back(i - startLine);
+         lineLen.push_back(i - startLine - wide);
          return;
       }
 
@@ -628,7 +633,7 @@ void GFont::wrapString(const UTF8 *txt, U32 lineWidth, Vector<U32> &startLineOff
          }
       }
 
-      lineLen.push_back(j - startLine);
+      lineLen.push_back(j - startLine - wide);
       i = j;
 
       // Now we need to increment through any space characters at the