From 927adb7f05e06ecc3a6303dbc2437e8b8f45dd70 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 6 Nov 2016 14:26:44 -0500 Subject: TITANIC: Fix word wrapping in the conversation log --- engines/titanic/pet_control/pet_text.cpp | 2 +- engines/titanic/support/font.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/engines/titanic/pet_control/pet_text.cpp b/engines/titanic/pet_control/pet_text.cpp index 3ad14d0d5e..c7c6f490db 100644 --- a/engines/titanic/pet_control/pet_text.cpp +++ b/engines/titanic/pet_control/pet_text.cpp @@ -296,7 +296,7 @@ int CPetText::getTextWidth(CScreenManager *screenManager) { int CPetText::getTextHeight(CScreenManager *screenManager) { mergeStrings(); int oldFontNumber = screenManager->setFontNumber(_fontNumber); - int textHeight = screenManager->getTextBounds(_lines, _bounds.width()); + int textHeight = screenManager->getTextBounds(_lines, _bounds.width() - 4); screenManager->setFontNumber(oldFontNumber); return textHeight; diff --git a/engines/titanic/support/font.cpp b/engines/titanic/support/font.cpp index 2e98639ff7..f81251b10b 100644 --- a/engines/titanic/support/font.cpp +++ b/engines/titanic/support/font.cpp @@ -315,10 +315,10 @@ void STFont::extendBounds(Point &textSize, byte c, int maxWidth) const { void STFont::checkLineWrap(Point &textSize, int maxWidth, const char *&str) const { bool flag = false; int totalWidth = 0; - for (const char *srcPtr = str + 1; *srcPtr && *srcPtr != ' '; ++srcPtr) { - if (*srcPtr == ' ' && flag) - break; + // Loop forward getting the width of the word (including preceding space) + // until a space is encountered following at least one character + for (const char *srcPtr = str; *srcPtr && (*srcPtr != ' ' || !flag); ++srcPtr) { if (*srcPtr == TEXTCMD_NPC) { srcPtr += 3; } else if (*srcPtr == TEXTCMD_SET_COLOR) { -- cgit v1.2.3