diff --git a/engines/sci/graphics/controls.cpp b/engines/sci/graphics/controls.cpp index 8a2c3275bec..b1392cea118 100644 --- a/engines/sci/graphics/controls.cpp +++ b/engines/sci/graphics/controls.cpp @@ -116,12 +116,12 @@ void GfxControls::texteditCursorDraw(Common::Rect rect, const char *text, uint16 if (!_texteditCursorVisible) { textWidth = 0; for (i = 0; i < curPos; i++) { - textWidth += _text16->_font->getCharWidth(text[i]); + textWidth += _text16->_font->getCharWidth((unsigned char)text[i]); } _texteditCursorRect.left = rect.left + textWidth; _texteditCursorRect.top = rect.top; _texteditCursorRect.bottom = _texteditCursorRect.top + _text16->_font->getHeight(); - _texteditCursorRect.right = _texteditCursorRect.left + (text[curPos] == 0 ? 1 : _text16->_font->getCharWidth(text[curPos])); + _texteditCursorRect.right = _texteditCursorRect.left + (text[curPos] == 0 ? 1 : _text16->_font->getCharWidth((unsigned char)text[curPos])); _paint16->invertRect(_texteditCursorRect); _paint16->bitsShow(_texteditCursorRect); _texteditCursorVisible = true; diff --git a/engines/sci/graphics/font.h b/engines/sci/graphics/font.h index c405f5a0a05..90f18e426da 100644 --- a/engines/sci/graphics/font.h +++ b/engines/sci/graphics/font.h @@ -39,7 +39,6 @@ public: virtual byte getHeight() { return 0; }; virtual bool isDoubleByte(uint16 chr) { return false; }; virtual byte getCharWidth(uint16 chr) { return 0; }; - virtual byte getCharHeight(uint16 chr) { return 0; }; virtual void draw(uint16 chr, int16 top, int16 left, byte color, bool greyedOutput) {}; }; @@ -56,10 +55,10 @@ public: GuiResourceId getResourceId(); byte getHeight(); byte getCharWidth(uint16 chr); - byte getCharHeight(uint16 chr); void draw(uint16 chr, int16 top, int16 left, byte color, bool greyedOutput); private: + byte getCharHeight(uint16 chr); byte *getCharData(uint16 chr); ResourceManager *_resMan; diff --git a/engines/sci/graphics/fontsjis.cpp b/engines/sci/graphics/fontsjis.cpp index 8e908c2853f..c2e3d123181 100644 --- a/engines/sci/graphics/fontsjis.cpp +++ b/engines/sci/graphics/fontsjis.cpp @@ -67,10 +67,6 @@ byte GfxFontSjis::getCharWidth(uint16 chr) { return _commonFont->getCharWidth(chr) >> 1; } -byte GfxFontSjis::getCharHeight(uint16 chr) { - return _commonFont->getFontHeight() >> 1; -} - void GfxFontSjis::draw(uint16 chr, int16 top, int16 left, byte color, bool greyedOutput) { // TODO: Check, if character fits on screen - if it doesn't we need to skip it // Normally SCI cuts the character and draws the part that fits, but the common SJIS doesn't support that diff --git a/engines/sci/graphics/fontsjis.h b/engines/sci/graphics/fontsjis.h index 4330342331c..24c8423ddb9 100644 --- a/engines/sci/graphics/fontsjis.h +++ b/engines/sci/graphics/fontsjis.h @@ -44,7 +44,6 @@ public: byte getHeight(); bool isDoubleByte(uint16 chr); byte getCharWidth(uint16 chr); - byte getCharHeight(uint16 chr); void draw(uint16 chr, int16 top, int16 left, byte color, bool greyedOutput); private: diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp index e4017982334..78253bd913f 100644 --- a/engines/sci/graphics/frameout.cpp +++ b/engines/sci/graphics/frameout.cpp @@ -252,7 +252,7 @@ void GfxFrameout::kernelFrameout() { // TODO: proper text splitting... this is a hack if ((text[i] == ' ' && i > 0 && text[i - i] == ' ') || text[i] == '\n' || (curX + font->getCharWidth(text[i]) > _screen->getWidth())) { - curY += font->getCharHeight('A'); + curY += font->getHeight(); curX = itemEntry->x; } font->draw(text[i], curY, curX, foreColor, dimmed);