Mercurial > hg > openttd
changeset 4557:8b01cb5b0e4f draft
(svn r6404) -Fix: GetStringWidth failed to calculate correct string width if the string
contained newlines.
author | Darkvater <Darkvater@openttd.org> |
---|---|
date | Tue, 05 Sep 2006 23:02:31 +0000 |
parents | 42753ba89276 |
children | e1e6c5c6865a |
files | gfx.c |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/gfx.c +++ b/gfx.c @@ -542,8 +542,10 @@ int GetStringWidth(const char *str) { FontSize size = _cur_fontsize; - int w = 0; + int w, max_w; byte c; + + w = max_w = 0; for (c = *str; c != '\0'; c = *(++str)) { if (c >= ASCII_LETTERSTART) { w += GetCharacterWidth(size, c); @@ -552,9 +554,11 @@ else if (c == ASCII_SETXY) str += 2; else if (c == ASCII_TINYFONT) size = FS_SMALL; else if (c == ASCII_BIGFONT) size = FS_LARGE; + else if (c == ASCII_NL && w > max_w) {max_w = w; w = 0;} } } - return w; + + return max(w, max_w); }