SCI2+: Fixed the implementation of kTextSize(), removing some hacks

Thanks to lskovlun for the fix
This commit is contained in:
Filippos Karapetis 2011-10-08 19:11:14 +03:00
parent 4ad2ebd995
commit 227e69ef08
2 changed files with 9 additions and 16 deletions

View file

@ -379,8 +379,13 @@ reg_t kTextSize(EngineState *s, int argc, reg_t *argv) {
}
debugC(kDebugLevelStrings, "GetTextSize '%s' -> %dx%d", text.c_str(), textWidth, textHeight);
if (getSciVersion() <= SCI_VERSION_1_1) {
dest[2] = make_reg(0, textHeight);
dest[3] = make_reg(0, textWidth);
} else {
dest[2] = make_reg(0, textWidth);
dest[3] = make_reg(0, textHeight);
}
return s->r_acc;
}

View file

@ -94,15 +94,8 @@ void GfxText32::drawTextBitmap(reg_t textObject, uint16 textX, uint16 textY, uin
while (*txt) {
charCount = GetLongest(txt, maxWidth, font);
if (charCount == 0) {
// If the text does not fit inside the given plane, use the
// whole screen.
// TODO/FIXME: Is this really needed? Perhaps some other
// functionality is missing instead?
charCount = GetLongest(txt, _screen->getWidth() - textX, font);
if (charCount == 0)
break;
}
uint16 curX = textX;
@ -248,11 +241,6 @@ void GfxText32::kernelTextSize(const char *text, int16 font, int16 maxWidth, int
Size(rect, text, font, maxWidth);
*textWidth = rect.width();
*textHeight = rect.height();
// TODO: Setting textWidth properly changes the subtitle plane top to 0.
// I have no idea why, so we currently hack in the old behavior here.
*textWidth = 0;
*textHeight = 0;
}
void GfxText32::StringWidth(const char *str, GuiResourceId fontId, int16 &textWidth, int16 &textHeight) {