diff options
-rw-r--r-- | engines/kyra/chargen.cpp | 12 | ||||
-rw-r--r-- | engines/kyra/darkmoon.cpp | 29 | ||||
-rw-r--r-- | engines/kyra/darkmoon.h | 4 | ||||
-rw-r--r-- | engines/kyra/eob.cpp | 32 | ||||
-rw-r--r-- | engines/kyra/eob.h | 4 | ||||
-rw-r--r-- | engines/kyra/eobcommon.cpp | 23 | ||||
-rw-r--r-- | engines/kyra/eobcommon.h | 12 | ||||
-rw-r--r-- | engines/kyra/gui_eob.cpp | 130 | ||||
-rw-r--r-- | engines/kyra/kyra_rpg.cpp | 23 | ||||
-rw-r--r-- | engines/kyra/kyra_rpg.h | 51 | ||||
-rw-r--r-- | engines/kyra/lol.cpp | 16 | ||||
-rw-r--r-- | engines/kyra/lol.h | 4 | ||||
-rw-r--r-- | engines/kyra/sequences_eob.cpp | 2 | ||||
-rw-r--r-- | engines/kyra/staticres_eob.cpp | 10 | ||||
-rw-r--r-- | engines/kyra/staticres_lol.cpp | 5 | ||||
-rw-r--r-- | engines/kyra/text_rpg.cpp | 42 |
16 files changed, 191 insertions, 208 deletions
diff --git a/engines/kyra/chargen.cpp b/engines/kyra/chargen.cpp index e4b89c9a99..50153d7de3 100644 --- a/engines/kyra/chargen.cpp +++ b/engines/kyra/chargen.cpp @@ -1616,15 +1616,15 @@ int TransferPartyWiz::selectCharactersMenu() { _screen->setFont(Screen::FID_6_FNT); _screen->clearCurPage(); - _vm->gui_drawBox(0, 0, 320, 163, _vm->_color1_1, _vm->_color2_1, _vm->_bkgColor_1); + _vm->gui_drawBox(0, 0, 320, 163, _vm->guiSettings()->colors.frame1, _vm->guiSettings()->colors.frame2, _vm->guiSettings()->colors.fill); _screen->printText(_strings2[0], 5, 3, 15, 0); _screen->printText(_strings2[1], 5, 10, 15, 0); for (int i = 0; i < 6; i++) drawCharPortraitWithStats(i, 0); - _vm->gui_drawBox(4, 148, 43, 12, _vm->_color1_1, _vm->_color2_1, _vm->_bkgColor_1); - _vm->gui_drawBox(272, 148, 43, 12, _vm->_color1_1, _vm->_color2_1, _vm->_bkgColor_1); + _vm->gui_drawBox(4, 148, 43, 12, _vm->guiSettings()->colors.frame1, _vm->guiSettings()->colors.frame2, _vm->guiSettings()->colors.fill); + _vm->gui_drawBox(272, 148, 43, 12, _vm->guiSettings()->colors.frame1, _vm->guiSettings()->colors.frame2, _vm->guiSettings()->colors.fill); _screen->printShadedText(_labels[0], 9, 151, 15, 0); _screen->printShadedText(_labels[1], 288, 151, 15, 0); @@ -1686,10 +1686,10 @@ int TransferPartyWiz::selectCharactersMenu() { } int x = (highlight - 6) * 268 + 4; - _vm->gui_drawBox(x, 148, 43, 12, _vm->_bkgColor_1, _vm->_bkgColor_1, -1); + _vm->gui_drawBox(x, 148, 43, 12, _vm->guiSettings()->colors.fill, _vm->guiSettings()->colors.fill, -1); _screen->updateScreen(); _vm->_system->delayMillis(80); - _vm->gui_drawBox(x, 148, 43, 12, _vm->_color1_1, _vm->_color2_1, -1); + _vm->gui_drawBox(x, 148, 43, 12, _vm->guiSettings()->colors.frame1, _vm->guiSettings()->colors.frame2, -1); _screen->updateScreen(); if (highlight == 6 || _vm->shouldQuit()) { @@ -1726,7 +1726,7 @@ void TransferPartyWiz::drawCharPortraitWithStats(int charIndex, bool enabled) { EoBCharacter *c = &_vm->_characters[charIndex]; _screen->fillRect(x + 4, y + 24, x + 36, y + 57, 12); - _vm->gui_drawBox(x + 40, y + 24, 118, 34, _vm->_color1_1, _vm->_color2_1, _vm->_bkgColor_1); + _vm->gui_drawBox(x + 40, y + 24, 118, 34, _vm->guiSettings()->colors.frame1, _vm->guiSettings()->colors.frame2, _vm->guiSettings()->colors.fill); if (!(c->flags & 1)) return; diff --git a/engines/kyra/darkmoon.cpp b/engines/kyra/darkmoon.cpp index 304e5c9537..c12ef1050a 100644 --- a/engines/kyra/darkmoon.cpp +++ b/engines/kyra/darkmoon.cpp @@ -58,31 +58,6 @@ Common::Error DarkMoonEngine::init() { _monsterProps = new EoBMonsterProperty[10]; - static const uint16 wX[] = { 221, 76 }; - static const uint8 wY[] = { 189, 162 }; - static const uint16 wW[] = { 95, 95 }; - - _dialogueButtonLabelCol1 = 9; - _dialogueButtonLabelCol2 = 15; - _dialogueButtonW = 95; - _dialogueButtonH = 9; - _waitButtonPresX = wX; - _waitButtonPresY = wY; - _waitButtonPresW = wW; - _waitButtonReverveW = 7; - - _bkgColor_1 = 183; - _color1_1 = 186; - _color2_1 = 181; - _color4 = 133; - _color5 = 184; - _color6 = 183; - _color7 = 181; - _color8 = 186; - _color12 = 180; - _color13 = 177; - _color14 = 182; - return Common::kNoError; } @@ -475,6 +450,10 @@ void DarkMoonEngine::characterLevelGain(int charIndex) { } } +const KyraRpgGUISettings *DarkMoonEngine::guiSettings() { + return &_guiSettings; +} + } // End of namespace Kyra #endif // ENABLE_EOB diff --git a/engines/kyra/darkmoon.h b/engines/kyra/darkmoon.h index 590b2f4ea1..8abbc2bea2 100644 --- a/engines/kyra/darkmoon.h +++ b/engines/kyra/darkmoon.h @@ -128,8 +128,12 @@ private: int charSelectDialogue(); void characterLevelGain(int charIndex); + const KyraRpgGUISettings *guiSettings(); + const char *const *_hornStrings; const uint8 *_hornSounds; + + static const KyraRpgGUISettings _guiSettings; }; } // End of namespace Kyra diff --git a/engines/kyra/eob.cpp b/engines/kyra/eob.cpp index 96eb388699..7524b077ff 100644 --- a/engines/kyra/eob.cpp +++ b/engines/kyra/eob.cpp @@ -61,32 +61,6 @@ Common::Error EoBEngine::init() { _itemsOverlay = _res->fileData("ITEMRMP.VGA", 0); - static const uint16 wX[] = { 285, 139 }; - static const uint8 wY[] = { 189, 162 }; - static const uint16 wW[] = { 31, 31 }; - - _dialogueButtonLabelCol1 = 9; - _dialogueButtonLabelCol2 = 15; - _dialogueButtonW = 95; - _dialogueButtonH = 9; - _waitButtonPresX = wX; - _waitButtonPresY = wY; - _waitButtonPresW = wW; - _waitButtonReverveW = 7; - - _bkgColor_1 = 132; - _color1_1 = 135; - _color2_1 = 130; - _color4 = 133; - _color5 = 133; - _color6 = 180; - _color7 = 177; - _color8 = 184; - - _color14 = _color8; - _color13 = _color7; - _color12 = _color6; - _screen->modifyScreenDim(7, 0x01, 0xB3, 0x22, 0x12); _screen->modifyScreenDim(9, 0x01, 0x7D, 0x26, 0x3F); _screen->modifyScreenDim(12, 0x01, 0x04, 0x14, 0xA0); @@ -520,7 +494,7 @@ void EoBEngine::turnUndeadAutoHit() { bool EoBEngine::checkPartyStatusExtra() { _screen->copyPage(0, 10); int cd = _screen->curDimIndex(); - gui_drawBox(0, 121, 320, 80, _color1_1, _color2_1, _bkgColor_1); + gui_drawBox(0, 121, 320, 80, guiSettings()->colors.frame1, guiSettings()->colors.frame2, guiSettings()->colors.fill); _txt->setupField(9, false); _txt->printMessage(_menuStringsDefeat[0]); while (!shouldQuit()) { @@ -573,6 +547,10 @@ void EoBEngine::healParty() { } } +const KyraRpgGUISettings *EoBEngine::guiSettings() { + return &_guiSettings; +} + } // End of namespace Kyra #endif // ENABLE_EOB diff --git a/engines/kyra/eob.h b/engines/kyra/eob.h index 0f83c47b03..6123c26726 100644 --- a/engines/kyra/eob.h +++ b/engines/kyra/eob.h @@ -139,6 +139,10 @@ private: bool checkPartyStatusExtra(); int resurrectionSelectDialogue(); void healParty(); + + const KyraRpgGUISettings *guiSettings(); + + static const KyraRpgGUISettings _guiSettings; }; diff --git a/engines/kyra/eobcommon.cpp b/engines/kyra/eobcommon.cpp index 8e14b895a0..bc01fead6b 100644 --- a/engines/kyra/eobcommon.cpp +++ b/engines/kyra/eobcommon.cpp @@ -107,11 +107,6 @@ EoBCoreEngine::EoBCoreEngine(OSystem *system, const GameFlags &flags) _dscDoorY1 = 0; _dscDoorXE = 0; - _color9 = 17; - _color10 = 23; - _color11 = 20; - _color4 = _color5 = _color6 = _color7 = _color8 = _color12 = _color13 = _color14 = 0; - _menuDefs = 0; _exchangeCharacterId = -1; @@ -1106,7 +1101,7 @@ void EoBCoreEngine::npcSequence(int npcIndex) { _screen->loadFileDataToPage(s, 5, 32000); delete s; - gui_drawBox(0, 121, 320, 79, _color1_1, _color2_1, _bkgColor_1); + gui_drawBox(0, 121, 320, 79, guiSettings()->colors.frame1, guiSettings()->colors.frame2, guiSettings()->colors.fill); _txt->setupField(9, true); _txt->resetPageBreakString(); @@ -1544,7 +1539,7 @@ void EoBCoreEngine::displayParchment(int id) { // display text Common::SeekableReadStream *s = _res->createReadStream("TEXT.DAT"); _screen->loadFileDataToPage(s, 5, 32000); - gui_drawBox(0, 0, 176, 175, _color1_1, _color2_1, _bkgColor_1); + gui_drawBox(0, 0, 176, 175, guiSettings()->colors.frame1, guiSettings()->colors.frame2, guiSettings()->colors.fill); _txt->setupField(12, 1); if (_flags.gameID == GI_EOB2) id++; @@ -1686,21 +1681,21 @@ bool EoBCoreEngine::checkPassword() { _screen->copyPage(0, 10); _screen->setScreenDim(13); - gui_drawBox(_screen->_curDim->sx << 3, _screen->_curDim->sy, _screen->_curDim->w << 3, _screen->_curDim->h, _color1_1, _color2_1, -1); - gui_drawBox((_screen->_curDim->sx << 3) + 1, _screen->_curDim->sy + 1, (_screen->_curDim->w << 3) - 2, _screen->_curDim->h - 2, _color1_1, _color2_1, _bkgColor_1); + gui_drawBox(_screen->_curDim->sx << 3, _screen->_curDim->sy, _screen->_curDim->w << 3, _screen->_curDim->h, guiSettings()->colors.frame1, guiSettings()->colors.frame2, -1); + gui_drawBox((_screen->_curDim->sx << 3) + 1, _screen->_curDim->sy + 1, (_screen->_curDim->w << 3) - 2, _screen->_curDim->h - 2, guiSettings()->colors.frame1, guiSettings()->colors.frame2, guiSettings()->colors.fill); _screen->modifyScreenDim(13, _screen->_curDim->sx + 1, _screen->_curDim->sy + 2, _screen->_curDim->w - 2, _screen->_curDim->h - 16); for (int i = 0; i < 3; i++) { - _screen->fillRect(_screen->_curDim->sx << 3, _screen->_curDim->sy, ((_screen->_curDim->sx + _screen->_curDim->w) << 3) - 1, (_screen->_curDim->sy + _screen->_curDim->h) - 1, _bkgColor_1); + _screen->fillRect(_screen->_curDim->sx << 3, _screen->_curDim->sy, ((_screen->_curDim->sx + _screen->_curDim->w) << 3) - 1, (_screen->_curDim->sy + _screen->_curDim->h) - 1, guiSettings()->colors.fill); int c = rollDice(1, _mnNumWord - 1, -1); const uint8 *shp = (_mnDef[c << 2] < _numLargeItemShapes) ? _largeItemShapes[_mnDef[c << 2]] : (_mnDef[c << 2] < 15 ? 0 : _smallItemShapes[_mnDef[c << 2] - 15]); assert(shp); _screen->drawShape(0, shp, 100, 2, 13); - _screen->printShadedText(Common::String::format(_mnPrompt[0], _mnDef[(c << 2) + 1], _mnDef[(c << 2) + 2]).c_str(), (_screen->_curDim->sx + 1) << 3, _screen->_curDim->sy, _screen->_curDim->unk8, _bkgColor_1); + _screen->printShadedText(Common::String::format(_mnPrompt[0], _mnDef[(c << 2) + 1], _mnDef[(c << 2) + 2]).c_str(), (_screen->_curDim->sx + 1) << 3, _screen->_curDim->sy, _screen->_curDim->unk8, guiSettings()->colors.fill); memset(answ, 0, 20); - gui_drawBox(76, 100, 133, 14, _color2_1, _color1_1, -1); - gui_drawBox(77, 101, 131, 12, _color2_1, _color1_1, -1); - if (_gui->getTextInput(answ, 10, 103, 15, _screen->_curDim->unk8, _bkgColor_1, 8) < 0) + gui_drawBox(76, 100, 133, 14, guiSettings()->colors.frame2, guiSettings()->colors.frame1, -1); + gui_drawBox(77, 101, 131, 12, guiSettings()->colors.frame2, guiSettings()->colors.frame1, -1); + if (_gui->getTextInput(answ, 10, 103, 15, _screen->_curDim->unk8, guiSettings()->colors.fill, 8) < 0) i = 3; if (!scumm_stricmp(_mnWord[c], answ)) break; diff --git a/engines/kyra/eobcommon.h b/engines/kyra/eobcommon.h index fa65c93a4e..9284a181b4 100644 --- a/engines/kyra/eobcommon.h +++ b/engines/kyra/eobcommon.h @@ -764,18 +764,6 @@ protected: char _dialogueLastBitmap[13]; int _moveCounter; - uint8 _color4; - uint8 _color5; - uint8 _color6; - uint8 _color7; - uint8 _color8; - uint8 _color9; - uint8 _color10; - uint8 _color11; - uint8 _color12; - uint8 _color13; - uint8 _color14; - const char *const *_chargenStatStrings; const char *const *_chargenRaceSexStrings; const char *const *_chargenClassStrings; diff --git a/engines/kyra/gui_eob.cpp b/engines/kyra/gui_eob.cpp index 51a9e52266..1ccb60ada1 100644 --- a/engines/kyra/gui_eob.cpp +++ b/engines/kyra/gui_eob.cpp @@ -100,9 +100,9 @@ void EoBCoreEngine::gui_drawCharPortraitWithStats(int index) { int cp = _screen->setCurPage(2); if (index == _exchangeCharacterId) - _screen->printText(_characterGuiStringsSt[0], x2 + 2, y2 + 2, 8, _bkgColor_1); + _screen->printText(_characterGuiStringsSt[0], x2 + 2, y2 + 2, 8, guiSettings()->colors.fill); else - _screen->printText(c->name, x2 + 2, y2 + 2, txtCol1, _bkgColor_1); + _screen->printText(c->name, x2 + 2, y2 + 2, txtCol1, guiSettings()->colors.fill); gui_drawFaceShape(index); gui_drawWeaponSlot(index, 0); @@ -129,23 +129,23 @@ void EoBCoreEngine::gui_drawCharPortraitWithStats(int index) { _screen->copyRegion(176, 0, 0, 0, 144, 168, 2, 2, Screen::CR_NO_P_CHECK); _screen->_curPage = 2; gui_drawFaceShape(index); - _screen->printShadedText(c->name, 219, 6, txtCol2, _bkgColor_1); + _screen->printShadedText(c->name, 219, 6, txtCol2, guiSettings()->colors.fill); gui_drawHitpoints(index); gui_drawFoodStatusGraph(index); if (_currentControlMode == 1) { if (c->hitPointsCur == -10) - _screen->printShadedText(_characterGuiStringsSt[1], 247, 158, 6, _color6); + _screen->printShadedText(_characterGuiStringsSt[1], 247, 158, 6, guiSettings()->colors.extraFill); else if (c->hitPointsCur < 1) - _screen->printShadedText(_characterGuiStringsSt[2], 226, 158, 6, _color6); + _screen->printShadedText(_characterGuiStringsSt[2], 226, 158, 6, guiSettings()->colors.extraFill); else if (c->effectFlags & (_flags.gameID == GI_EOB1 ? 0x80 : 0x2000)) - _screen->printShadedText(_characterGuiStringsSt[3], 220, 158, 6, _color6); + _screen->printShadedText(_characterGuiStringsSt[3], 220, 158, 6, guiSettings()->colors.extraFill); else if (c->flags & 2) - _screen->printShadedText(_characterGuiStringsSt[4], 235, 158, 6, _color6); + _screen->printShadedText(_characterGuiStringsSt[4], 235, 158, 6, guiSettings()->colors.extraFill); else if (c->flags & 4) - _screen->printShadedText(_characterGuiStringsSt[5], 232, 158, 6, _color6); + _screen->printShadedText(_characterGuiStringsSt[5], 232, 158, 6, guiSettings()->colors.extraFill); else if (c->flags & 8) - _screen->printShadedText(_characterGuiStringsSt[6], 232, 158, 6, _color6); + _screen->printShadedText(_characterGuiStringsSt[6], 232, 158, 6, guiSettings()->colors.extraFill); for (int i = 0; i < 27; i++) gui_drawInventoryItem(i, 0, 2); @@ -158,38 +158,38 @@ void EoBCoreEngine::gui_drawCharPortraitWithStats(int index) { static const uint16 cm2Y2[] = { 165, 165, 147 }; for (int i = 0; i < 3; i++) - _screen->fillRect(cm2X1[i], cm2Y1[i], cm2X2[i], cm2Y2[i], _color6); + _screen->fillRect(cm2X1[i], cm2Y1[i], cm2X2[i], cm2Y2[i], guiSettings()->colors.extraFill); - _screen->printShadedText(_characterGuiStringsIn[0], 183, 42, 15, _color6); - _screen->printText(_chargenClassStrings[c->cClass], 183, 55, 12, _color6); - _screen->printText(_chargenAlignmentStrings[c->alignment], 183, 62, 12, _color6); - _screen->printText(_chargenRaceSexStrings[c->raceSex], 183, 69, 12, _color6); + _screen->printShadedText(_characterGuiStringsIn[0], 183, 42, 15, guiSettings()->colors.extraFill); + _screen->printText(_chargenClassStrings[c->cClass], 183, 55, 12, guiSettings()->colors.extraFill); + _screen->printText(_chargenAlignmentStrings[c->alignment], 183, 62, 12, guiSettings()->colors.extraFill); + _screen->printText(_chargenRaceSexStrings[c->raceSex], 183, 69, 12, guiSettings()->colors.extraFill); for (int i = 0; i < 6; i++) - _screen->printText(_chargenStatStrings[6 + i], 183, 82 + i * 7, 12, _color6); + _screen->printText(_chargenStatStrings[6 + i], 183, 82 + i * 7, 12, guiSettings()->colors.extraFill); - _screen->printText(_characterGuiStringsIn[1], 183, 124, 12, _color6); - _screen->printText(_characterGuiStringsIn[2], 239, 138, 12, _color6); - _screen->printText(_characterGuiStringsIn[3], 278, 138, 12, _color6); + _screen->printText(_characterGuiStringsIn[1], 183, 124, 12, guiSettings()->colors.extraFill); + _screen->printText(_characterGuiStringsIn[2], 239, 138, 12, guiSettings()->colors.extraFill); + _screen->printText(_characterGuiStringsIn[3], 278, 138, 12, guiSettings()->colors.extraFill); - _screen->printText(getCharStrength(c->strengthCur, c->strengthExtCur).c_str(), 275, 82, 15, _color6); - _screen->printText(Common::String::format("%d", c->intelligenceCur).c_str(), 275, 89, 15, _color6); - _screen->printText(Common::String::format("%d", c->wisdomCur).c_str(), 275, 96, 15, _color6); - _screen->printText(Common::String::format("%d", c->dexterityCur).c_str(), 275, 103, 15, _color6); - _screen->printText(Common::String::format("%d", c->constitutionCur).c_str(), 275, 110, 15, _color6); - _screen->printText(Common::String::format("%d", c->charismaCur).c_str(), 275, 117, 15, _color6); - _screen->printText(Common::String::format("%d", c->armorClass).c_str(), 275, 124, 15, _color6); + _screen->printText(getCharStrength(c->strengthCur, c->strengthExtCur).c_str(), 275, 82, 15, guiSettings()->colors.extraFill); + _screen->printText(Common::String::format("%d", c->intelligenceCur).c_str(), 275, 89, 15, guiSettings()->colors.extraFill); + _screen->printText(Common::String::format("%d", c->wisdomCur).c_str(), 275, 96, 15, guiSettings()->colors.extraFill); + _screen->printText(Common::String::format("%d", c->dexterityCur).c_str(), 275, 103, 15, guiSettings()->colors.extraFill); + _screen->printText(Common::String::format("%d", c->constitutionCur).c_str(), 275, 110, 15, guiSettings()->colors.extraFill); + _screen->printText(Common::String::format("%d", c->charismaCur).c_str(), 275, 117, 15, guiSettings()->colors.extraFill); + _screen->printText(Common::String::format("%d", c->armorClass).c_str(), 275, 124, 15, guiSettings()->colors.extraFill); for (int i = 0; i < 3; i++) { int t = getCharacterClassType(c->cClass, i); if (t == -1) continue; - _screen->printText(_chargenClassStrings[t + 15], 180, 145 + 7 * i, 12, _color6); + _screen->printText(_chargenClassStrings[t + 15], 180, 145 + 7 * i, 12, guiSettings()->colors.extraFill); Common::String tmpStr = Common::String::format("%d", c->experience[i]); - _screen->printText(tmpStr.c_str(), 251 - tmpStr.size() * 3, 145 + 7 * i, 15, _color6); + _screen->printText(tmpStr.c_str(), 251 - tmpStr.size() * 3, 145 + 7 * i, 15, guiSettings()->colors.extraFill); tmpStr = Common::String::format("%d", c->level[i]); - _screen->printText(tmpStr.c_str(), 286 - tmpStr.size() * 3, 145 + 7 * i, 15, _color6); + _screen->printText(tmpStr.c_str(), 286 - tmpStr.size() * 3, 145 + 7 * i, 15, guiSettings()->colors.extraFill); } } @@ -272,7 +272,7 @@ void EoBCoreEngine::gui_drawWeaponSlot(int charIndex, int slot) { x += 176; int itm = _characters[charIndex].inventory[slot]; - gui_drawBox(x, y, 31, 16, _color1_1, _color2_1, _bkgColor_1); + gui_drawBox(x, y, 31, 16, guiSettings()->colors.frame1, guiSettings()->colors.frame2, guiSettings()->colors.fill); if (_characters[charIndex].slotStatus[slot]) { gui_drawWeaponSlotStatus(x, y, _characters[charIndex].slotStatus[slot]); @@ -297,7 +297,7 @@ void EoBCoreEngine::gui_drawWeaponSlotStatus(int x, int y, int status) { if (status > -3 || status == -5) _screen->drawShape(_screen->_curPage, _greenSplatShape, x - 1, y, 0); else - gui_drawBox(x, y, 31, 16, _color9, _color10, _color11); + gui_drawBox(x, y, 31, 16, guiSettings()->colors.warningFrame1, guiSettings()->colors.warningFrame2, guiSettings()->colors.warningFill); switch (status + 5) { case 0: @@ -369,7 +369,7 @@ void EoBCoreEngine::gui_drawHitpoints(int index) { _screen->printText(_characterGuiStringsHp[0], x - 13, y - 1, 12, 0); - gui_drawHorizontalBarGraph(x, y, w, h, bgCur, bgMax, barColor[col], _color5); + gui_drawHorizontalBarGraph(x, y, w, h, bgCur, bgMax, barColor[col], guiSettings()->colors.barGraph); } else { Common::String tmpString = Common::String::format(_characterGuiStringsHp[1], c->hitPointsCur, c->hitPointsMax); @@ -379,7 +379,7 @@ void EoBCoreEngine::gui_drawHitpoints(int index) { y -= 1; } - _screen->printText(tmpString.c_str(), x, y, 12, _bkgColor_1); + _screen->printText(tmpString.c_str(), x, y, 12, guiSettings()->colors.fill); } } @@ -398,11 +398,11 @@ void EoBCoreEngine::gui_drawFoodStatusGraph(int index) { return; uint8 col = c->food < 20 ? 8 : (c->food < 33 ? 5 : 3); - gui_drawHorizontalBarGraph(250, 25, 51, 5, c->food, 100, col, _color5); + gui_drawHorizontalBarGraph(250, 25, 51, 5, c->food, 100, col, guiSettings()->colors.barGraph); } void EoBCoreEngine::gui_drawHorizontalBarGraph(int x, int y, int w, int h, int32 curVal, int32 maxVal, int col1, int col2) { - gui_drawBox(x - 1, y - 1, w + 3, h + 2, _color2_1, _color1_1, -1); + gui_drawBox(x - 1, y - 1, w + 3, h + 2, guiSettings()->colors.frame2, guiSettings()->colors.frame1, -1); KyraRpgEngine::gui_drawHorizontalBarGraph(x, y, w + 2, h, curVal, maxVal, col1, col2); } @@ -464,8 +464,8 @@ void EoBCoreEngine::gui_drawCharPortraitStatusFrame(int index) { } } else { - _screen->drawClippedLine(x, y, x + 62, y, _color1_1); - _screen->drawClippedLine(x, y + 49, x + 62, y + 49, _color2_1); + _screen->drawClippedLine(x, y, x + 62, y, guiSettings()->colors.frame1); + _screen->drawClippedLine(x, y + 49, x + 62, y + 49, guiSettings()->colors.frame2); _screen->drawClippedLine(x - 1, y, x - 1, y + 50, 12); _screen->drawClippedLine(x + 63, y, x + 63, y + 50, 12); } @@ -480,7 +480,7 @@ void EoBCoreEngine::gui_drawInventoryItem(int slot, int special, int pageNum) { if (special) { int wh = (slot == 25 || slot == 26) ? 10 : 18; - gui_drawBox(x - 1, y - 1, wh, wh, _color1_1, _color2_1, slot == 16 ? -1 : _bkgColor_1); + gui_drawBox(x - 1, y - 1, wh, wh, guiSettings()->colors.frame1, guiSettings()->colors.frame2, slot == 16 ? -1 : guiSettings()->colors.fill); if (slot == 16) { _screen->fillRect(227, 65, 238, 69, 12); @@ -517,7 +517,7 @@ void EoBCoreEngine::gui_drawCompass(bool force) { } void EoBCoreEngine::gui_drawDialogueBox() { - gui_drawBox(0, 121, 320, 79, _color1_1, _color2_1, _bkgColor_1); + gui_drawBox(0, 121, 320, 79, guiSettings()->colors.frame1, guiSettings()->colors.frame2, guiSettings()->colors.fill); txt()->clearCurDim(); } @@ -527,14 +527,14 @@ void EoBCoreEngine::gui_drawSpellbook() { _screen->copyRegion(64, 121, 64, 121, 112, 56, 0, 2, Screen::CR_NO_P_CHECK); for (int i = 0; i < numTab; i++) { - int col1 = _color14; - int col2 = _color13; - int col3 = _color12; + int col1 = guiSettings()->colors.inactiveTabFrame1; + int col2 = guiSettings()->colors.inactiveTabFrame2; + int col3 = guiSettings()->colors.inactiveTabFill; if (i == _openBookSpellLevel) { - col1 = _color1_1; - col2 = _color2_1; - col3 = _bkgColor_1; + col1 = guiSettings()->colors.frame1; + col2 = guiSettings()->colors.frame2; + col3 = guiSettings()->colors.fill; } if (_flags.gameID == GI_EOB1) { @@ -547,12 +547,12 @@ void EoBCoreEngine::gui_drawSpellbook() { } if (_flags.gameID == GI_EOB1) - gui_drawBox(71, 131, 105, 44, _color1_1, _color2_1, _bkgColor_1); + gui_drawBox(71, 131, 105, 44, guiSettings()->colors.frame1, guiSettings()->colors.frame2, guiSettings()->colors.fill); else { - gui_drawBox(68, 130, 108, 47, _color1_1, _color2_1, _bkgColor_1); - gui_drawBox(68, 168, 78, 9, _color8, _color7, _color6); - gui_drawBox(146, 168, 14, 9, _color8, _color7, _color6); - gui_drawBox(160, 168, 16, 9, _color8, _color7, _color6); + gui_drawBox(68, 130, 108, 47, guiSettings()->colors.frame1, guiSettings()->colors.frame2, guiSettings()->colors.fill); + gui_drawBox(68, 168, 78, 9, guiSettings()->colors.extraFrame1, guiSettings()->colors.extraFrame2, guiSettings()->colors.extraFill); + gui_drawBox(146, 168, 14, 9, guiSettings()->colors.extraFrame1, guiSettings()->colors.extraFrame2, guiSettings()->colors.extraFill); + gui_drawBox(160, 168, 16, 9, guiSettings()->colors.extraFrame1, guiSettings()->colors.extraFrame2, guiSettings()->colors.extraFill); gui_drawSpellbookScrollArrow(150, 169, 0); gui_drawSpellbookScrollArrow(165, 169, 1); } @@ -562,14 +562,14 @@ void EoBCoreEngine::gui_drawSpellbook() { int textXa = 74; int textXs = 71; int textY = 170; - int col3 = _bkgColor_1; - int col4 = _color6; + int col3 = guiSettings()->colors.fill; + int col4 = guiSettings()->colors.extraFill; if (_flags.gameID == GI_EOB1) { textCol2 = 11; textXa = textXs = 73; textY = 168; - col4 = _bkgColor_1; + col4 = guiSettings()->colors.fill; } for (int i = 0; i < 7; i++) { @@ -2377,7 +2377,7 @@ void GUI_EoB::messageDialogue2(int dim, int id, int buttonTextCol) { } } - _vm->gui_drawBox(x, y, w, 14, _vm->_color2_1, _vm->_bkgColor_1, -1); + _vm->gui_drawBox(x, y, w, 14, _vm->guiSettings()->colors.frame2, _vm->guiSettings()->colors.fill, -1); _screen->updateScreen(); _vm->_system->delayMillis(80); drawMenuButtonBox(x, y, w, 14, false, false); @@ -2657,7 +2657,7 @@ bool GUI_EoB::runSaveMenu(int x, int y) { int fy = y + slot * 17 + 23; for (int in = -1; in == -1 && !_vm->shouldQuit();) { - _screen->fillRect(fx - 2, fy, fx + 160, fy + 8, _vm->_bkgColor_1); + _screen->fillRect(fx - 2, fy, fx + 160, fy + 8, _vm->guiSettings()->colors.fill); in = getTextInput(_saveSlotStringsTemp[slot], x + 1, fy, 19, 2, 0, 8); if (!strlen(_saveSlotStringsTemp[slot])) { messageDialogue(11, 54, 6); @@ -2665,7 +2665,7 @@ bool GUI_EoB::runSaveMenu(int x, int y) { } }; - _screen->fillRect(fx - 2, fy, fx + 160, fy + 8, _vm->_bkgColor_1); + _screen->fillRect(fx - 2, fy, fx + 160, fy + 8, _vm->guiSettings()->colors.fill); _screen->printShadedText(_saveSlotStringsTemp[slot], (x + 1) << 3, fy, 15, 0); Graphics::Surface thumb; @@ -2778,7 +2778,7 @@ int GUI_EoB::selectSaveSlotDialogue(int x, int y, int id) { // Display highlighted slot index in the bottom left corner to avoid people getting lost with the 990 save slots _screen->setFont(Screen::FID_6_FNT); int sli = (newHighlight == 6) ? _savegameOffset : (_savegameOffset + newHighlight); - _screen->printText(Common::String::format("%03d/989", sli).c_str(), _saveSlotX + 5, _saveSlotY + 135, _vm->_color2_1, _vm->_bkgColor_1); + _screen->printText(Common::String::format("%03d/989", sli).c_str(), _saveSlotX + 5, _saveSlotY + 135, _vm->guiSettings()->colors.frame2, _vm->guiSettings()->colors.fill); _screen->setFont(Screen::FID_8_FNT); _screen->updateScreen(); @@ -2937,7 +2937,7 @@ void GUI_EoB::runMemorizePrayMenu(int charIndex, int spellType) { if (updateDesc) { updateDesc = false; - _screen->printShadedText(Common::String::format(_vm->_menuStringsMgc[1], np[lastHighLightButton] - numAssignedSpellsPerBookPage[lastHighLightButton], np[lastHighLightButton]).c_str(), 8, 38, 9, _vm->_bkgColor_1); + _screen->printShadedText(Common::String::format(_vm->_menuStringsMgc[1], np[lastHighLightButton] - numAssignedSpellsPerBookPage[lastHighLightButton], np[lastHighLightButton]).c_str(), 8, 38, 9, _vm->guiSettings()->colors.fill); } if (newHighLightText < 0) @@ -3721,7 +3721,7 @@ Button *GUI_EoB::initMenu(int id) { if (m->dim) { const ScreenDim *dm = _screen->getScreenDim(m->dim); - _screen->fillRect(dm->sx << 3, dm->sy, ((dm->sx + dm->w) << 3) - 1, (dm->sy + dm->h) - 1, _vm->_bkgColor_1); + _screen->fillRect(dm->sx << 3, dm->sy, ((dm->sx + dm->w) << 3) - 1, (dm->sy + dm->h) - 1, _vm->guiSettings()->colors.fill); _screen->setScreenDim(m->dim); drawMenuButtonBox(dm->sx << 3, dm->sy, dm->w << 3, dm->h, false, false); } @@ -3789,14 +3789,14 @@ void GUI_EoB::drawMenuButton(Button *b, bool clicked, bool highlight, bool noFil } void GUI_EoB::drawMenuButtonBox(int x, int y, int w, int h, bool clicked, bool noFill) { - uint8 col1 = _vm->_color1_1; - uint8 col2 = _vm->_color2_1; + uint8 col1 = _vm->guiSettings()->colors.frame1; + uint8 col2 = _vm->guiSettings()->colors.frame2; if (clicked) - col1 = col2 = _vm->_bkgColor_1; + col1 = col2 = _vm->guiSettings()->colors.fill; _vm->gui_drawBox(x, y, w, h, col1, col2, -1); - _vm->gui_drawBox(x + 1, y + 1, w - 2, h - 2, _vm->_color1_1, _vm->_color2_1, noFill ? -1 : _vm->_bkgColor_1); + _vm->gui_drawBox(x + 1, y + 1, w - 2, h - 2, _vm->guiSettings()->colors.frame1, _vm->guiSettings()->colors.frame2, noFill ? -1 : _vm->guiSettings()->colors.fill); } void GUI_EoB::drawTextBox(int dim, int id) { @@ -3852,10 +3852,10 @@ void GUI_EoB::memorizePrayMenuPrintString(int spellId, int bookPageIndex, int sp if (noFill) _screen->printText(s.c_str(), 8, y, highLight ? 6 : 15, 0); else - _screen->printShadedText(s.c_str(), 8, y, highLight ? 6 : 15, _vm->_bkgColor_1); + _screen->printShadedText(s.c_str(), 8, y, highLight ? 6 : 15, _vm->guiSettings()->colors.fill); } else { - _screen->fillRect(6, y, 168, y + 8, _vm->_bkgColor_1); + _screen->fillRect(6, y, 168, y + 8, _vm->guiSettings()->colors.fill); } } @@ -4000,7 +4000,7 @@ void GUI_EoB::restParty_updateRestTime(int hours, bool init) { } _screen->setCurPage(2); - _screen->printShadedText(Common::String::format(_vm->_menuStringsRest2[3], hours).c_str(), (_screen->_curDim->sx + 1) << 3, _screen->_curDim->sy + 20, 15, _vm->_bkgColor_1); + _screen->printShadedText(Common::String::format(_vm->_menuStringsRest2[3], hours).c_str(), (_screen->_curDim->sx + 1) << 3, _screen->_curDim->sy + 20, 15, _vm->guiSettings()->colors.fill); _screen->setCurPage(0); _screen->copyRegion(((_screen->_curDim->sx + 1) << 3) - 1, _screen->_curDim->sy + 20, ((_screen->_curDim->sx + 1) << 3) - 1, _screen->_curDim->sy + 20, 144, 8, 2, 0, Screen::CR_NO_P_CHECK); _screen->updateScreen(); diff --git a/engines/kyra/kyra_rpg.cpp b/engines/kyra/kyra_rpg.cpp index 92aa12bc7a..4487290bf9 100644 --- a/engines/kyra/kyra_rpg.cpp +++ b/engines/kyra/kyra_rpg.cpp @@ -103,15 +103,6 @@ KyraRpgEngine::KyraRpgEngine(OSystem *system, const GameFlags &flags) : KyraEngi _dialogueNumButtons = _dialogueButtonYoffs = _dialogueHighlightedButton = 0; _currentControlMode = 0; _specialSceneFlag = 0; - _dialogueButtonLabelCol1 = 0; - _dialogueButtonLabelCol2 = 0; - _dialogueButtonW = 0; - _dialogueButtonH = 0; - _waitButtonPresX = 0; - _waitButtonPresY = 0; - _waitButtonPresW = 0; - _waitButtonReverveW = 0; - _updateCharNum = -1; _activeVoiceFileTotalTime = 0; _updatePortraitSpeechAnimDuration = _resetPortraitAfterSpeechAnim = _needSceneRestore = 0; @@ -193,6 +184,10 @@ Common::Error KyraRpgEngine::init() { _envSfxDistThreshold = (_sound->getSfxType() == Sound::kAdLib || _sound->getSfxType() == Sound::kPCSpkr) ? 15 : 3; + _dialogueButtonLabelColor1 = guiSettings()->buttons.labelColor1; + _dialogueButtonLabelColor2 = guiSettings()->buttons.labelColor2; + _dialogueButtonWidth = guiSettings()->buttons.width; + return Common::kNoError; } @@ -213,9 +208,9 @@ void KyraRpgEngine::drawDialogueButtons() { screen()->printText(_dialogueButtonString[i], (x + 37 - (screen()->getTextWidth(_dialogueButtonString[i])) / 2) & ~3, ((_dialogueButtonYoffs + _dialogueButtonPosY[i]) + 2) & ~7, _dialogueHighlightedButton == i ? 0xc1 : 0xe1, 0); } else { - gui_drawBox(x, (_dialogueButtonYoffs + _dialogueButtonPosY[i]), _dialogueButtonW, _dialogueButtonH, _color1_1, _color2_1, _bkgColor_1); - screen()->printText(_dialogueButtonString[i], x + (_dialogueButtonW >> 1) - (screen()->getTextWidth(_dialogueButtonString[i])) / 2, - (_dialogueButtonYoffs + _dialogueButtonPosY[i]) + 2, _dialogueHighlightedButton == i ? _dialogueButtonLabelCol1 : _dialogueButtonLabelCol2, 0); + gui_drawBox(x, (_dialogueButtonYoffs + _dialogueButtonPosY[i]), _dialogueButtonWidth, guiSettings()->buttons.height, guiSettings()->colors.frame1, guiSettings()->colors.frame2, guiSettings()->colors.fill); + screen()->printText(_dialogueButtonString[i], x + (_dialogueButtonWidth >> 1) - (screen()->getTextWidth(_dialogueButtonString[i])) / 2, + (_dialogueButtonYoffs + _dialogueButtonPosY[i]) + 2, _dialogueHighlightedButton == i ? _dialogueButtonLabelColor1 : _dialogueButtonLabelColor2, 0); } } screen()->setFont(of); @@ -230,7 +225,7 @@ uint16 KyraRpgEngine::processDialogue() { int x = _dialogueButtonPosX[i]; int y = (gameFlags().use16ColorMode ? ((_dialogueButtonYoffs + _dialogueButtonPosY[i]) & ~7) - 1 : (_dialogueButtonYoffs + _dialogueButtonPosY[i])); Common::Point p = getMousePos(); - if (posWithinRect(p.x, p.y, x, y, x + _dialogueButtonW, y + _dialogueButtonH)) { + if (posWithinRect(p.x, p.y, x, y, x + _dialogueButtonWidth, y + guiSettings()->buttons.height)) { _dialogueHighlightedButton = i; break; } @@ -266,7 +261,7 @@ uint16 KyraRpgEngine::processDialogue() { int x = _dialogueButtonPosX[i]; int y = (gameFlags().use16ColorMode ? ((_dialogueButtonYoffs + _dialogueButtonPosY[i]) & ~7) - 1 : (_dialogueButtonYoffs + _dialogueButtonPosY[i])); Common::Point p = getMousePos(); - if (posWithinRect(p.x, p.y, x, y, x + _dialogueButtonW, y + _dialogueButtonH)) { + if (posWithinRect(p.x, p.y, x, y, x + _dialogueButtonWidth, y + guiSettings()->buttons.height)) { _dialogueHighlightedButton = i; res = _dialogueHighlightedButton + 1; break; diff --git a/engines/kyra/kyra_rpg.h b/engines/kyra/kyra_rpg.h index 678f8120b5..24c19105d9 100644 --- a/engines/kyra/kyra_rpg.h +++ b/engines/kyra/kyra_rpg.h @@ -80,6 +80,40 @@ struct EoBFlyingObject { uint8 unused; }; +struct KyraRpgGUISettings { + struct DialogueButtons { + uint8 labelColor1; + uint8 labelColor2; + uint16 width; + uint16 height; + int waitReserve; + const uint16 waitX[2]; + const uint8 waitY[2]; + const uint16 waitWidth[2]; + } buttons; + + struct Colors { + uint8 frame1; + uint8 frame2; + int fill; + + uint8 unused; + uint8 barGraph; + + uint8 warningFrame1; + uint8 warningFrame2; + int warningFill; + + uint8 extraFrame1; + uint8 extraFrame2; + int extraFill; + + uint8 inactiveTabFrame1; + uint8 inactiveTabFrame2; + int inactiveTabFill; + } colors; +}; + class KyraRpgEngine : public KyraEngine_v1 { friend class TextDisplayer_rpg; public: @@ -251,6 +285,8 @@ protected: bool clickedShape(int shapeIndex); + virtual const KyraRpgGUISettings *guiSettings() = 0; + int _clickedShapeXOffs; int _clickedShapeYOffs; @@ -283,22 +319,13 @@ protected: const uint16 *_dialogueButtonPosX; const uint8 *_dialogueButtonPosY; int16 _dialogueButtonYoffs; - uint16 _dialogueButtonW; - uint16 _dialogueButtonH; - const uint16 *_waitButtonPresX; - const uint8 *_waitButtonPresY; - const uint16 *_waitButtonPresW; - int _waitButtonReverveW; + uint16 _dialogueButtonWidth; int _dialogueNumButtons; int _dialogueHighlightedButton; int _currentControlMode; int _specialSceneFlag; - uint8 _dialogueButtonLabelCol1; - uint8 _dialogueButtonLabelCol2; - - int _bkgColor_1; - uint8 _color1_1; - uint8 _color2_1; + uint8 _dialogueButtonLabelColor1; + uint8 _dialogueButtonLabelColor2; const char *const *_moreStrings; diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp index 01b1bdf065..a57fe4fdb8 100644 --- a/engines/kyra/lol.cpp +++ b/engines/kyra/lol.cpp @@ -380,18 +380,8 @@ Common::Error LoLEngine::init() { assert(_gui); _gui->initStaticData(); - _dialogueButtonLabelCol1 = 144; - _dialogueButtonLabelCol2 = 254; - _dialogueButtonW = 74; - _dialogueButtonH = 9; - _waitButtonReverveW = 80; - _txt = new TextDisplayer_LoL(this, _screen); - _bkgColor_1 = -1; - _color1_1 = 136; - _color2_1 = 251; - _screen->setAnimBlockPtr(10000); _screen->setScreenDim(0); @@ -1941,7 +1931,7 @@ void LoLEngine::setupDialogueButtons(int numStr, const char *s1, const char *s2, _dialogueButtonPosY = posY; if (numStr == 1) { - posX[0] = posX[1] = posX[2] = d->sx + d->w - (_dialogueButtonW + 3); + posX[0] = posX[1] = posX[2] = d->sx + d->w - (_dialogueButtonWidth + 3); } else { int xOffs = d->w / numStr; posX[0] = d->sx + (xOffs >> 1) - 37; @@ -1989,6 +1979,10 @@ void LoLEngine::delay(uint32 millis, bool doUpdate, bool) { } } +const KyraRpgGUISettings *LoLEngine::guiSettings() { + return &_guiSettings; +} + // spells int LoLEngine::castSpell(int charNum, int spellType, int spellLevel) { diff --git a/engines/kyra/lol.h b/engines/kyra/lol.h index eeaa1b51ad..c6d05c45d1 100644 --- a/engines/kyra/lol.h +++ b/engines/kyra/lol.h @@ -1149,6 +1149,8 @@ private: // misc void delay(uint32 millis, bool doUpdate = false, bool isMainLoop = false); + const KyraRpgGUISettings *guiSettings(); + uint8 _compassBroken; uint8 _drainMagic; uint16 _globalScriptVars2[8]; @@ -1156,6 +1158,8 @@ private: uint8 *_pageBuffer1; uint8 *_pageBuffer2; + static const KyraRpgGUISettings _guiSettings; + // spells typedef Common::Functor1Mem<ActiveSpell *, int, LoLEngine> SpellProc; Common::Array<const SpellProc*> _spellProcs; diff --git a/engines/kyra/sequences_eob.cpp b/engines/kyra/sequences_eob.cpp index 8fdd8680b1..2d8e85471b 100644 --- a/engines/kyra/sequences_eob.cpp +++ b/engines/kyra/sequences_eob.cpp @@ -166,7 +166,7 @@ void EoBEngine::seq_playFinale() { _txt->resetPageBreakString(); _txt->setWaitButtonMode(1); _txt->setupField(12, true); - gui_drawBox(0, 0, 176, 175, _color1_1, _color2_1, _bkgColor_1); + gui_drawBox(0, 0, 176, 175, guiSettings()->colors.frame1, guiSettings()->colors.frame2, guiSettings()->colors.fill); _txt->printDialogueText(51, _moreStrings[0]); if (!checkScriptFlags(0x1ffe)) { diff --git a/engines/kyra/staticres_eob.cpp b/engines/kyra/staticres_eob.cpp index d51bf4eee3..ce43d22362 100644 --- a/engines/kyra/staticres_eob.cpp +++ b/engines/kyra/staticres_eob.cpp @@ -1190,6 +1190,11 @@ void EoBEngine::initSpells() { } } +const KyraRpgGUISettings EoBEngine::_guiSettings = { + { 9, 15, 95, 9, 7, { 285, 139 }, { 189, 162 }, { 31, 31 } }, + { 135, 130, 132, 133, 133, 17, 23, 20, 184, 177, 180, 184, 177, 180 } +}; + void DarkMoonEngine::initStaticResource() { int temp; _mainMenuStrings = _staticres->loadStrings(kEoB2MainMenuStrings, temp); @@ -1312,6 +1317,11 @@ const char *DarkMoonEngine::_palFilesFinale[] = { 0 }; +const KyraRpgGUISettings DarkMoonEngine::_guiSettings = { + { 9, 15, 95, 9, 7, { 221, 76 }, { 189, 162 }, { 95, 95 } }, + { 186, 181, 183, 133, 184, 17, 23, 20, 186, 181, 183, 182, 177, 180 } +}; + #endif // ENABLE_EOB } // End of namespace Kyra diff --git a/engines/kyra/staticres_lol.cpp b/engines/kyra/staticres_lol.cpp index 3faef7b981..deb6355384 100644 --- a/engines/kyra/staticres_lol.cpp +++ b/engines/kyra/staticres_lol.cpp @@ -764,6 +764,11 @@ const int8 LoLEngine::_mapCoords[12][4] = { { 3, 1, 3, 1 }, { -1, 6, -1, -8 }, { -7, -1, 5, -1 } }; +const KyraRpgGUISettings LoLEngine::_guiSettings = { + { 144, 254, 74, 9, 80, { 0, 0 }, { 0, 0 }, { 0, 0 } }, + { 136, 251, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +}; + const MistOfDoomAnimData LoLEngine::_mistAnimData[] = { { 0, 7, 7, 13, 155 }, { 0, 16, 16, 17, 155 }, diff --git a/engines/kyra/text_rpg.cpp b/engines/kyra/text_rpg.cpp index 78206d3a06..a78adb93d9 100644 --- a/engines/kyra/text_rpg.cpp +++ b/engines/kyra/text_rpg.cpp @@ -73,7 +73,7 @@ TextDisplayer_rpg::~TextDisplayer_rpg() { void TextDisplayer_rpg::setupField(int dim, bool mode) { setPageBreakFlag(); - _textDimData[dim].color2 = _vm->_bkgColor_1; + _textDimData[dim].color2 = _vm->guiSettings()->colors.fill; _screen->setScreenDim(dim); if (mode) @@ -335,13 +335,13 @@ void TextDisplayer_rpg::printLine(char *str) { if ((lw + _textDimData[sdx].column) > w) { if ((lines - 1 - (_waitButtonSpace << 1)) <= _lineCount) // cut off line to leave space for "MORE" button - w -= vm()->_waitButtonReverveW; + w -= vm()->guiSettings()->buttons.waitReserve; } else { if (!_sjisLineBreakFlag || (_lineCount + 1 < lines - 1)) ct = false; else // cut off line to leave space for "MORE" button - w -= vm()->_waitButtonReverveW; + w -= vm()->guiSettings()->buttons.waitReserve; } if (ct) { @@ -363,7 +363,7 @@ void TextDisplayer_rpg::printLine(char *str) { if ((lw + _textDimData[sdx].column) > w) { if ((lines - 1) <= _lineCount && _allowPageBreak) // cut off line to leave space for "MORE" button - w -= vm()->_waitButtonReverveW; + w -= vm()->guiSettings()->buttons.waitReserve; w -= _textDimData[sdx].column; @@ -510,7 +510,7 @@ int TextDisplayer_rpg::clearDim(int dim) { int res = _screen->curDimIndex(); _screen->setScreenDim(dim); _textDimData[dim].color1 = _screen->_curDim->unk8; - _textDimData[dim].color2 = vm()->game() == GI_LOL ? _screen->_curDim->unkA : vm()->_bkgColor_1; + _textDimData[dim].color2 = vm()->game() == GI_LOL ? _screen->_curDim->unkA : vm()->guiSettings()->colors.fill; clearCurDim(); return res; } @@ -529,7 +529,7 @@ void TextDisplayer_rpg::clearCurDim() { void TextDisplayer_rpg::textPageBreak() { if (vm()->game() != GI_LOL) - SWAP(vm()->_dialogueButtonLabelCol1, vm()->_dialogueButtonLabelCol2); + SWAP(vm()->_dialogueButtonLabelColor1, vm()->_dialogueButtonLabelColor2); int cp = _screen->setCurPage(0); Screen::FontId cf = _screen->setFont(vm()->gameFlags().use16ColorMode ? Screen::FID_SJIS_FNT : Screen::FID_6_FNT); @@ -555,9 +555,9 @@ void TextDisplayer_rpg::textPageBreak() { const ScreenDim *dim = _screen->getScreenDim(_screen->curDimIndex()); - int x = ((dim->sx + dim->w) << 3) - (_vm->_dialogueButtonW + 3); + int x = ((dim->sx + dim->w) << 3) - (_vm->_dialogueButtonWidth + 3); int y = 0; - int w = vm()->_dialogueButtonW; + int w = vm()->_dialogueButtonWidth; if (vm()->game() == GI_LOL) { if (vm()->_needSceneRestore && (vm()->_updateFlags & 2)) { @@ -571,17 +571,17 @@ void TextDisplayer_rpg::textPageBreak() { y = dim->sy + dim->h - 10; } } else { - y = vm()->_waitButtonPresY[_waitButtonMode]; - x = vm()->_waitButtonPresX[_waitButtonMode]; - w = vm()->_waitButtonPresW[_waitButtonMode]; + y = vm()->guiSettings()->buttons.waitY[_waitButtonMode]; + x = vm()->guiSettings()->buttons.waitX[_waitButtonMode]; + w = vm()->guiSettings()->buttons.waitWidth[_waitButtonMode]; } if (vm()->gameFlags().use16ColorMode) { vm()->gui_drawBox(x + 8, (y & ~7) - 1, 66, 10, 0xee, 0xcc, -1); _screen->printText(_pageBreakString, (x + 37 - (strlen(_pageBreakString) << 1) + 4) & ~3, (y + 2) & ~7, 0xc1, 0); } else { - vm()->gui_drawBox(x, y, w, vm()->_dialogueButtonH, vm()->_color1_1, vm()->_color2_1, vm()->_bkgColor_1); - _screen->printText(_pageBreakString, x + (w >> 1) - (vm()->screen()->getTextWidth(_pageBreakString) >> 1), y + 2, vm()->_dialogueButtonLabelCol1, 0); + vm()->gui_drawBox(x, y, w, vm()->guiSettings()->buttons.height, vm()->guiSettings()->colors.frame1, vm()->guiSettings()->colors.frame2, vm()->guiSettings()->colors.fill); + _screen->printText(_pageBreakString, x + (w >> 1) - (vm()->screen()->getTextWidth(_pageBreakString) >> 1), y + 2, vm()->_dialogueButtonLabelColor1, 0); } vm()->removeInputTop(); @@ -650,7 +650,7 @@ void TextDisplayer_rpg::textPageBreak() { _screen->setCurPage(cp); if (vm()->game() != GI_LOL) - SWAP(vm()->_dialogueButtonLabelCol1, vm()->_dialogueButtonLabelCol2); + SWAP(vm()->_dialogueButtonLabelColor1, vm()->_dialogueButtonLabelColor2); vm()->removeInputTop(); } @@ -662,12 +662,12 @@ void TextDisplayer_rpg::displayWaitButton() { vm()->_dialogueButtonString[2] = 0; vm()->_dialogueHighlightedButton = 0; - vm()->_dialogueButtonPosX = &vm()->_waitButtonPresX[_waitButtonMode]; - vm()->_dialogueButtonPosY = &vm()->_waitButtonPresY[_waitButtonMode]; - vm()->_dialogueButtonW = vm()->_waitButtonPresW[_waitButtonMode]; + vm()->_dialogueButtonPosX = &vm()->guiSettings()->buttons.waitX[_waitButtonMode]; + vm()->_dialogueButtonPosY = &vm()->guiSettings()->buttons.waitY[_waitButtonMode]; + vm()->_dialogueButtonWidth = vm()->guiSettings()->buttons.waitWidth[_waitButtonMode]; vm()->_dialogueButtonYoffs = 0; - SWAP(vm()->_dialogueButtonLabelCol1, vm()->_dialogueButtonLabelCol2); + SWAP(vm()->_dialogueButtonLabelColor1, vm()->_dialogueButtonLabelColor2); vm()->drawDialogueButtons(); if (!vm()->shouldQuit()) @@ -675,10 +675,10 @@ void TextDisplayer_rpg::displayWaitButton() { while (!vm()->processDialogue() && !vm()->shouldQuit()) {} - _screen->fillRect(vm()->_dialogueButtonPosX[0], vm()->_dialogueButtonPosY[0], vm()->_dialogueButtonPosX[0] + vm()->_dialogueButtonW - 1, vm()->_dialogueButtonPosY[0] + vm()->_dialogueButtonH - 1, vm()->_bkgColor_1); + _screen->fillRect(vm()->_dialogueButtonPosX[0], vm()->_dialogueButtonPosY[0], vm()->_dialogueButtonPosX[0] + vm()->_dialogueButtonWidth - 1, vm()->_dialogueButtonPosY[0] + vm()->guiSettings()->buttons.height - 1, vm()->guiSettings()->colors.fill); _screen->updateScreen(); - vm()->_dialogueButtonW = 95; - SWAP(vm()->_dialogueButtonLabelCol1, vm()->_dialogueButtonLabelCol2); + vm()->_dialogueButtonWidth = 95; + SWAP(vm()->_dialogueButtonLabelColor1, vm()->_dialogueButtonLabelColor2); clearCurDim(); } |