mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-12 22:51:11 +00:00
Fix fonts in intro. It is a very dirty code. Actually we should specify
font Ids in game settings. Also uhnm demo will definitely not work with current code as it has lesser number of fonts. svn-id: r18900
This commit is contained in:
parent
a7ec941d30
commit
36f77ad3f9
@ -1022,11 +1022,11 @@ void Actor::handleSpeech(int msec) {
|
|||||||
_activeSpeech.drawRect.bottom = _speechBoxScript.bottom;
|
_activeSpeech.drawRect.bottom = _speechBoxScript.bottom;
|
||||||
} else {
|
} else {
|
||||||
width = _activeSpeech.speechBox.width();
|
width = _activeSpeech.speechBox.width();
|
||||||
height = _vm->_font->getHeight(kMediumFont, _activeSpeech.strings[0], width - 2, _activeSpeech.getFontFlags(0)) + 1;
|
height = _vm->_font->getHeight((_vm->getGameType() == GType_ITE ? kMediumFont : kIHNMMainFont), _activeSpeech.strings[0], width - 2, _activeSpeech.getFontFlags(0)) + 1;
|
||||||
|
|
||||||
if (height > 40 && width < _vm->getDisplayWidth() - 100) {
|
if (height > 40 && width < _vm->getDisplayWidth() - 100) {
|
||||||
width = _vm->getDisplayWidth() - 100;
|
width = _vm->getDisplayWidth() - 100;
|
||||||
height = _vm->_font->getHeight(kMediumFont, _activeSpeech.strings[0], width - 2, _activeSpeech.getFontFlags(0)) + 1;
|
height = _vm->_font->getHeight((_vm->getGameType() == GType_ITE ? kMediumFont : kIHNMMainFont), _activeSpeech.strings[0], width - 2, _activeSpeech.getFontFlags(0)) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
_activeSpeech.speechBox.setWidth(width);
|
_activeSpeech.speechBox.setWidth(width);
|
||||||
@ -1635,8 +1635,8 @@ void Actor::drawSpeech(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (_activeSpeech.actorsCount > 1) {
|
if (_activeSpeech.actorsCount > 1) {
|
||||||
height = _vm->_font->getHeight(kMediumFont);
|
height = _vm->_font->getHeight((_vm->getGameType() == GType_ITE ? kMediumFont : kIHNMMainFont));
|
||||||
width = _vm->_font->getStringWidth(kMediumFont, _activeSpeech.strings[0], 0, kFontNormal);
|
width = _vm->_font->getStringWidth((_vm->getGameType() == GType_ITE ? kMediumFont : kIHNMMainFont), _activeSpeech.strings[0], 0, kFontNormal);
|
||||||
|
|
||||||
for (i = 0; i < _activeSpeech.actorsCount; i++) {
|
for (i = 0; i < _activeSpeech.actorsCount; i++) {
|
||||||
actor = getActor(_activeSpeech.actorIds[i]);
|
actor = getActor(_activeSpeech.actorIds[i]);
|
||||||
@ -1645,11 +1645,11 @@ void Actor::drawSpeech(void) {
|
|||||||
textPoint.x = clamp( 10, actor->_screenPosition.x - width / 2, _vm->getDisplayWidth() - 10 - width);
|
textPoint.x = clamp( 10, actor->_screenPosition.x - width / 2, _vm->getDisplayWidth() - 10 - width);
|
||||||
textPoint.y = clamp( 10, actor->_screenPosition.y - 58, _vm->getSceneHeight() - 10 - height);
|
textPoint.y = clamp( 10, actor->_screenPosition.y - 58, _vm->getSceneHeight() - 10 - height);
|
||||||
|
|
||||||
_vm->_font->textDraw(kMediumFont, backBuffer, _activeSpeech.strings[0], textPoint,
|
_vm->_font->textDraw((_vm->getGameType() == GType_ITE ? kMediumFont : kIHNMMainFont), backBuffer, _activeSpeech.strings[0], textPoint,
|
||||||
_activeSpeech.speechColor[i], _activeSpeech.outlineColor[i], _activeSpeech.getFontFlags(i));
|
_activeSpeech.speechColor[i], _activeSpeech.outlineColor[i], _activeSpeech.getFontFlags(i));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
_vm->_font->textDrawRect(kMediumFont, backBuffer, _activeSpeech.strings[0], _activeSpeech.drawRect, _activeSpeech.speechColor[0],
|
_vm->_font->textDrawRect((_vm->getGameType() == GType_ITE ? kMediumFont : kIHNMMainFont), backBuffer, _activeSpeech.strings[0], _activeSpeech.drawRect, _activeSpeech.speechColor[0],
|
||||||
_activeSpeech.outlineColor[0], _activeSpeech.getFontFlags(0));
|
_activeSpeech.outlineColor[0], _activeSpeech.getFontFlags(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -693,7 +693,7 @@ static GameFontDescription IHNMCD_GameFonts[] = {
|
|||||||
{5},
|
{5},
|
||||||
{6},
|
{6},
|
||||||
{7},
|
{7},
|
||||||
{8}
|
{8} // kIHNMMainFont
|
||||||
};
|
};
|
||||||
|
|
||||||
static GameSoundInfo IHNM_GameSound = {
|
static GameSoundInfo IHNM_GameSound = {
|
||||||
|
@ -159,7 +159,7 @@ struct Converse {
|
|||||||
int replyBit;
|
int replyBit;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ITEColors {
|
enum GameColors {
|
||||||
kITEColorBrightWhite = 0x01,
|
kITEColorBrightWhite = 0x01,
|
||||||
kITEColorWhite = 0x02,
|
kITEColorWhite = 0x02,
|
||||||
kITEColorLightGrey = 0x04,
|
kITEColorLightGrey = 0x04,
|
||||||
@ -174,7 +174,9 @@ enum ITEColors {
|
|||||||
kITEColorLightBlue92 = 0x92,
|
kITEColorLightBlue92 = 0x92,
|
||||||
kITEColorBlue = 0x93,
|
kITEColorBlue = 0x93,
|
||||||
kITEColorLightBlue94 = 0x94,
|
kITEColorLightBlue94 = 0x94,
|
||||||
kITEColorLightBlue96 = 0x96
|
kITEColorLightBlue96 = 0x96,
|
||||||
|
|
||||||
|
kIHNMColorBlack = 0xfa
|
||||||
};
|
};
|
||||||
|
|
||||||
enum StatusTextInputState {
|
enum StatusTextInputState {
|
||||||
|
@ -319,7 +319,9 @@ enum GameFeatures {
|
|||||||
enum FontId {
|
enum FontId {
|
||||||
kSmallFont,
|
kSmallFont,
|
||||||
kMediumFont,
|
kMediumFont,
|
||||||
kBigFont
|
kBigFont,
|
||||||
|
|
||||||
|
kIHNMMainFont = 6
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FontEffectFlags {
|
enum FontEffectFlags {
|
||||||
|
@ -1583,13 +1583,20 @@ void Script::sfScriptText(SCRIPTFUNC_PARAMS) {
|
|||||||
point.y = thread->pop();
|
point.y = thread->pop();
|
||||||
|
|
||||||
text = thread->_strings->getString(stringId);
|
text = thread->_strings->getString(stringId);
|
||||||
width = _vm->_font->getStringWidth(kMediumFont, text, 0, kFontOutline);
|
|
||||||
|
if (_vm->getGameType() == GType_ITE)
|
||||||
|
width = _vm->_font->getStringWidth(kMediumFont, text, 0, kFontOutline);
|
||||||
|
else
|
||||||
|
width = _vm->_font->getStringWidth(kIHNMMainFont, text, 0, kFontOutline);
|
||||||
rect.top = point.y - 6;
|
rect.top = point.y - 6;
|
||||||
rect.setHeight(12);
|
rect.setHeight(12);
|
||||||
rect.left = point.x - width / 2;
|
rect.left = point.x - width / 2;
|
||||||
rect.setWidth(width);
|
rect.setWidth(width);
|
||||||
|
|
||||||
_vm->_actor->setSpeechColor(color, kITEColorBlack);
|
if (_vm->getGameType() == GType_ITE)
|
||||||
|
_vm->_actor->setSpeechColor(color, kITEColorBlack);
|
||||||
|
else
|
||||||
|
_vm->_actor->setSpeechColor(color, kIHNMColorBlack);
|
||||||
_vm->_actor->nonActorSpeech(rect, &text, 1, -1, flags);
|
_vm->_actor->nonActorSpeech(rect, &text, 1, -1, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user