[Scummvm-git-logs] scummvm master -> 8040f2a8ce97b67e35eaee4b8b49aca4a08290dc
athrxx
noreply at scummvm.org
Tue Jul 18 19:37:21 UTC 2023
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
1f97973e01 KYRA: (EOB II/ZH) - fix minor text glitch
4d1e616816 KYRA: (EOB II/ZH) - update static resources
f93a3acd2d KYRA: (EOB/Amiga) - fix text color regression
15415dc7f4 KYRA: (EOB II/ZH) - fix character name length
8040f2a8ce KYRA: (EOB II/ZH) - fix party/inventory/stats pages
Commit: 1f97973e01ad96b95bdb99395d07c527eb3ff792
https://github.com/scummvm/scummvm/commit/1f97973e01ad96b95bdb99395d07c527eb3ff792
Author: athrxx (athrxx at scummvm.org)
Date: 2023-07-18T21:36:04+02:00
Commit Message:
KYRA: (EOB II/ZH) - fix minor text glitch
Changed paths:
engines/kyra/text/text_rpg.cpp
diff --git a/engines/kyra/text/text_rpg.cpp b/engines/kyra/text/text_rpg.cpp
index e10c38534b7..a6032636283 100644
--- a/engines/kyra/text/text_rpg.cpp
+++ b/engines/kyra/text/text_rpg.cpp
@@ -352,9 +352,10 @@ void TextDisplayer_rpg::printLine(char *str) {
int h1 = ((sd->h / fh) - 1) * fh;
int h2 = sd->h - fh;
+ int wOffs = (_textDimData[sdx].shadowColor && sd->sx > 0) ? 1 : 0;
if (h2)
- _screen->copyRegion(sd->sx << 3, sd->sy + fh, sd->sx << 3, sd->sy, sd->w << 3, h2, _screen->_curPage, _screen->_curPage, Screen::CR_NO_P_CHECK);
+ _screen->copyRegion((sd->sx << 3) - wOffs, sd->sy + fh, (sd->sx << 3) - wOffs, sd->sy, (sd->w << 3) + wOffs, h2, _screen->_curPage, _screen->_curPage, Screen::CR_NO_P_CHECK);
// HACK: In Chinese EOBII some characters overdraw the valid boundaries by one pixel
// (at least the ',' does). So, the original redraws the border here. We do the same
@@ -363,7 +364,7 @@ void TextDisplayer_rpg::printLine(char *str) {
_screen->drawBox(3, 170, 290, 199, _vm->guiSettings()->colors.fill);
_screen->set16bitShadingLevel(4);
- _screen->fillRect(sd->sx << 3, sd->sy + h1, ((sd->sx + sd->w) << 3) - 1, sd->sy + sd->h - 1, _textDimData[sdx].color2);
+ _screen->fillRect((sd->sx << 3) - wOffs, sd->sy + h1, ((sd->sx + sd->w) << 3) - 1, sd->sy + sd->h - 1, _textDimData[sdx].color2);
_screen->set16bitShadingLevel(0);
if (_textDimData[sdx].line)
Commit: 4d1e616816ad041f1dee45ade133f938fe74ac37
https://github.com/scummvm/scummvm/commit/4d1e616816ad041f1dee45ade133f938fe74ac37
Author: athrxx (athrxx at scummvm.org)
Date: 2023-07-18T21:36:08+02:00
Commit Message:
KYRA: (EOB II/ZH) - update static resources
(still weren't complete; also fix a couple of PC98 strings)
Changed paths:
devtools/create_kyradat/resources/eob2_dos_chinese.h
devtools/create_kyradat/resources/eob2_pc98_japanese.h
dists/engine-data/kyra.dat
diff --git a/devtools/create_kyradat/resources/eob2_dos_chinese.h b/devtools/create_kyradat/resources/eob2_dos_chinese.h
index 944d21c1337..521b6ce8b71 100644
--- a/devtools/create_kyradat/resources/eob2_dos_chinese.h
+++ b/devtools/create_kyradat/resources/eob2_dos_chinese.h
@@ -501,15 +501,17 @@ static const char *const kEoB2MenuStringsSpecDOSChinese[2] = {
static const StringListProvider kEoB2MenuStringsSpecDOSChineseProvider = { ARRAYSIZE(kEoB2MenuStringsSpecDOSChinese), kEoB2MenuStringsSpecDOSChinese };
static const char *const kEoB2MenuYesNoStringsDOSChinese[2] = {
- "Yes",
- "No"
+ "\xac""O", /* "æ¯" */
+ "\xa4\xa3" /* "ä¸" */
};
static const StringListProvider kEoB2MenuYesNoStringsDOSChineseProvider = { ARRAYSIZE(kEoB2MenuYesNoStringsDOSChinese), kEoB2MenuYesNoStringsDOSChinese };
-static const char *const kEoB2CharGuiStringsHpDOSChinese[2] = {
- "HP",
- "%3d of %-3d"
+static const char *const kEoB2CharGuiStringsHpDOSChinese[4] = {
+ "\xa9""R", /* "å½" */
+ "%2d",
+ "%2d/%-2d",
+ "\xad\xb9" /* "é£" */
};
static const StringListProvider kEoB2CharGuiStringsHpDOSChineseProvider = { ARRAYSIZE(kEoB2CharGuiStringsHpDOSChinese), kEoB2CharGuiStringsHpDOSChinese };
@@ -525,20 +527,20 @@ static const StringListProvider kEoB2CharGuiStringsWp2DOSChineseProvider = { ARR
static const char *const kEoB2CharGuiStringsWrDOSChinese[4] = {
"\xb5\x4c\xaa\x6b\xa7\xf0\xc0\xbb", /* "ç¡æ³æ»æ"; */
"",
- "NO",
- "AMMO"
+ "\xb5""L""\xa8\xbe\xc5""@""\xa4""O",/* "ç¡é²è·å"; */
+ ""
};
static const StringListProvider kEoB2CharGuiStringsWrDOSChineseProvider = { ARRAYSIZE(kEoB2CharGuiStringsWrDOSChinese), kEoB2CharGuiStringsWrDOSChinese };
static const char *const kEoB2CharGuiStringsSt2DOSChinese[7] = {
- "Swapping",
+ "\xa5\xe6\xb4\xab\xa6\xec\xb8""m", /* "交æä½ç½®"; */
"\xa5\xfa\xba\x61\xb0\x7d\xa4\x60", /* "å
榮é£äº¡"; */
"\xa9\xfc\xb0\x67\xa4\xa3\xbf\xf4", /* "æè¿·ä¸é"; */
"\xba\x43\xa9\xca\xa4\xa4\xac\x72", /* "æ
¢æ§ä¸æ¯"; */
"\xa8\xad\xac\x56\xbc\x40\xac\x72", /* "身æåæ¯"; */
"\xa5\xfe\xa8\xad\xb7\xf2\xb7\xf4", /* "å
¨èº«ç²çº"; */
- "\xc5\xdc\xa6\xa8\xa4\xc6\xa5\xdb", /* "è®æåç³"; */
+ "\xc5\xdc\xa6\xa8\xa4\xc6\xa5\xdb" /* "è®æåç³"; */
};
static const StringListProvider kEoB2CharGuiStringsSt2DOSChineseProvider = { ARRAYSIZE(kEoB2CharGuiStringsSt2DOSChinese), kEoB2CharGuiStringsSt2DOSChinese };
@@ -547,7 +549,7 @@ static const char *const kEoB2CharGuiStringsInDOSChinese[4] = {
"\xb6\xa4\xad\xfb\xb8\xea\xae\xc6", /* "éå¡è³æ"; */
"\xa8\xbe\xc5\x40\xa4\x4f\x3a", /* "é²è·å:"; */
"\xb8\x67\xc5\xe7", /* "ç¶é©"; */
- "\xb5\xa5\xaf\xc5", /* "çç´"; */
+ "\xb5\xa5\xaf\xc5" /* "çç´"; */
};
static const StringListProvider kEoB2CharGuiStringsInDOSChineseProvider = { ARRAYSIZE(kEoB2CharGuiStringsInDOSChinese), kEoB2CharGuiStringsInDOSChinese };
diff --git a/devtools/create_kyradat/resources/eob2_pc98_japanese.h b/devtools/create_kyradat/resources/eob2_pc98_japanese.h
index a15bdbf1bc0..4067a2677f2 100644
--- a/devtools/create_kyradat/resources/eob2_pc98_japanese.h
+++ b/devtools/create_kyradat/resources/eob2_pc98_japanese.h
@@ -36,12 +36,12 @@ static const char *const kEoB2ChargenStatStringsPC98Japanese[12] = {
"DEX",
"CON",
"CHA",
- "STR",
- "INT",
- "WIS",
- "DEX",
- "CON",
- "CHA"
+ "STRENGTH",
+ "INTELLIGENCE",
+ "WISDOM",
+ "DEXTERITY",
+ "CONSTITUTION",
+ "CHARISMA"
};
static const StringListProvider kEoB2ChargenStatStringsPC98JapaneseProvider = { ARRAYSIZE(kEoB2ChargenStatStringsPC98Japanese), kEoB2ChargenStatStringsPC98Japanese };
diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat
index 7a2a15fbebb..34209460cd4 100644
Binary files a/dists/engine-data/kyra.dat and b/dists/engine-data/kyra.dat differ
Commit: f93a3acd2d1aff69c9dc18fa4aa675529addec03
https://github.com/scummvm/scummvm/commit/f93a3acd2d1aff69c9dc18fa4aa675529addec03
Author: athrxx (athrxx at scummvm.org)
Date: 2023-07-18T21:36:12+02:00
Commit Message:
KYRA: (EOB/Amiga) - fix text color regression
Changed paths:
engines/kyra/text/text_rpg.cpp
diff --git a/engines/kyra/text/text_rpg.cpp b/engines/kyra/text/text_rpg.cpp
index a6032636283..e83e15448c6 100644
--- a/engines/kyra/text/text_rpg.cpp
+++ b/engines/kyra/text/text_rpg.cpp
@@ -364,7 +364,7 @@ void TextDisplayer_rpg::printLine(char *str) {
_screen->drawBox(3, 170, 290, 199, _vm->guiSettings()->colors.fill);
_screen->set16bitShadingLevel(4);
- _screen->fillRect((sd->sx << 3) - wOffs, sd->sy + h1, ((sd->sx + sd->w) << 3) - 1, sd->sy + sd->h - 1, _textDimData[sdx].color2);
+ _screen->fillRect((sd->sx << 3) - wOffs, sd->sy + h1, ((sd->sx + sd->w) << 3) - 1, sd->sy + sd->h - 1, remapColor(sdx, _textDimData[sdx].color2));
_screen->set16bitShadingLevel(0);
if (_textDimData[sdx].line)
@@ -494,7 +494,7 @@ void TextDisplayer_rpg::printLine(char *str) {
str[s] = 0;
uint8 col1 = remapColor(sdx, _textDimData[sdx].color1);
- uint8 col2 = _isChinese ? remapColor(sdx, _textDimData[sdx].color2) : _textDimData[sdx].color2;
+ uint8 col2 = remapColor(sdx, _textDimData[sdx].color2);
if (sjisTextMode && (sdx == 2 || sdx == 3 || sdx == 4 || sdx == 5 || sdx == 15)) {
x1 &= ~3;
y = (y + 8) & ~7;
@@ -599,7 +599,7 @@ void TextDisplayer_rpg::printMessage(const char *str, int textColor, ...) {
int TextDisplayer_rpg::clearDim(int dim) {
int res = _screen->curDimIndex();
_screen->setScreenDim(dim);
- _textDimData[dim].color1= _screen->_curDim->col1;
+ _textDimData[dim].color1 = _screen->_curDim->col1;
_textDimData[dim].color2 = (_vm->game() == GI_LOL || _vm->gameFlags().platform == Common::kPlatformAmiga) ? _screen->_curDim->col2 : _vm->guiSettings()->colors.fill;
clearCurDim();
@@ -859,6 +859,11 @@ uint8 TextDisplayer_rpg::remapColor(int sd, uint8 color) const {
if (sd < -1 || sd >= _dimCount)
error("TextDisplayer_rpg::applySetting(): arg out of range");
+ // HACK: Apparently, this needs a better implementation (allowing to set
+ // mappings for col1 and col2 independently). But this will do for now...
+ if (_vm->gameFlags().platform == Common::kPlatformAmiga && sd != 7 && color == _textDimData[sd].color2)
+ return color;
+
if (sd != -1 && _textDimData[sd].colorMap != nullptr)
return _textDimData[sd].colorMap[color];
Commit: 15415dc7f42798dd39443098e8e2a7bea5286ad9
https://github.com/scummvm/scummvm/commit/15415dc7f42798dd39443098e8e2a7bea5286ad9
Author: athrxx (athrxx at scummvm.org)
Date: 2023-07-18T21:36:16+02:00
Commit Message:
KYRA: (EOB II/ZH) - fix character name length
Changed paths:
engines/kyra/engine/chargen.cpp
diff --git a/engines/kyra/engine/chargen.cpp b/engines/kyra/engine/chargen.cpp
index 0d029b041d7..7698fd7bb48 100644
--- a/engines/kyra/engine/chargen.cpp
+++ b/engines/kyra/engine/chargen.cpp
@@ -718,7 +718,7 @@ void CharacterGenerator::createPartyMember() {
_screen->printShadedText(_chargenStrings2[11], 149, 100, _vm->guiSettings()->colors.guiColorLightBlue, 0, _vm->guiSettings()->colors.guiColorBlack);
if (!_vm->shouldQuit()) {
if (_vm->game() == GI_EOB2 && _vm->gameFlags().lang == Common::Language::ZH_TWN) {
- _vm->_gui->getTextInput(_characters[_activeBox].name, 28, 100, 9,
+ _vm->_gui->getTextInput(_characters[_activeBox].name, 28, 100, 8,
_vm->guiSettings()->colors.guiColorWhite, 0, _vm->guiSettings()->colors.guiColorDarkRed);
} else {
Screen::FontId of = _screen->setFont(_vm->_invFont3);
@@ -2304,6 +2304,8 @@ void TransferPartyWiz::convertStats() {
cname = convertFromJISX0201(cname);
cname = makeTwoByteString(cname);
Common::strlcpy(c->name, cname.c_str(), sizeof(c->name));
+ } else if (_vm->_flags.lang == Common::ZH_TWN) {
+ c->name[8] = '\0';
}
for (int ii = 0; ii < 25; ii++) {
Commit: 8040f2a8ce97b67e35eaee4b8b49aca4a08290dc
https://github.com/scummvm/scummvm/commit/8040f2a8ce97b67e35eaee4b8b49aca4a08290dc
Author: athrxx (athrxx at scummvm.org)
Date: 2023-07-18T21:36:20+02:00
Commit Message:
KYRA: (EOB II/ZH) - fix party/inventory/stats pages
Changed paths:
engines/kyra/engine/eobcommon.cpp
engines/kyra/engine/eobcommon.h
engines/kyra/engine/kyra_rpg.h
engines/kyra/gui/gui_eob.cpp
engines/kyra/resource/staticres_eob.cpp
engines/kyra/resource/staticres_lol.cpp
diff --git a/engines/kyra/engine/eobcommon.cpp b/engines/kyra/engine/eobcommon.cpp
index 8c15d1b19a4..0fdb59bfa13 100644
--- a/engines/kyra/engine/eobcommon.cpp
+++ b/engines/kyra/engine/eobcommon.cpp
@@ -197,7 +197,7 @@ EoBCoreEngine::EoBCoreEngine(OSystem *system, const GameFlags &flags) : KyraRpgE
_buttonList3Size = _buttonList4Size = _buttonList5Size = _buttonList6Size = 0;
_buttonList7Size = _buttonList8Size = 0;
_inventorySlotsY = _mnDef = 0;
- _invFont1 = _invFont2 = _invFont4 = _conFont = _bookFont = Screen::FID_6_FNT;
+ _invFont1 = _invFont2 = _invFont4 = _invFont5 = _invFont6 = _hpStatFont = _conFont = _bookFont = Screen::FID_6_FNT;
_titleFont = _invFont3 = Screen::FID_8_FNT;
_transferStringsScummVM = 0;
_buttonDefs = 0;
@@ -596,17 +596,18 @@ void EoBCoreEngine::loadFonts() {
if (_flags.gameID == GI_EOB1) {
_screen->loadFont(Screen::FID_SJIS_SMALL_FNT, "FONT12.FNT");
_bookFont = Screen::FID_SJIS_SMALL_FNT;
- _invFont4 = Screen::FID_SJIS_FNT;
+ _invFont4 = _invFont5 = _invFont6 = Screen::FID_SJIS_FNT;
}
_titleFont = _conFont = _invFont3 = Screen::FID_SJIS_FNT;
_invFont1 = Screen::FID_SJIS_SMALL_FNT;
} else if (_flags.platform == Common::kPlatformSegaCD) {
_screen->loadFont(Screen::FID_8_FNT, "FONTK12");
_screen->setFontStyles(Screen::FID_8_FNT, Font::kStyleNone);
- _invFont1 = _invFont2 = _invFont4 = _conFont = Screen::FID_8_FNT;
+ _invFont1 = _invFont2 = _invFont4 = _invFont5 = _invFont6 = _hpStatFont = _conFont = Screen::FID_8_FNT;
} else if (_flags.lang == Common::ZH_TWN) {
_screen->loadFont(Screen::FID_CHINESE_FNT, "FONT8.FNT");
- _titleFont = _conFont = Screen::FID_CHINESE_FNT;
+ _titleFont = _conFont = _invFont1 = _invFont2 = _invFont4 = Screen::FID_CHINESE_FNT;
+ _invFont5 = Screen::FID_8_FNT;
}
}
diff --git a/engines/kyra/engine/eobcommon.h b/engines/kyra/engine/eobcommon.h
index 506292bb127..3c46db0c40c 100644
--- a/engines/kyra/engine/eobcommon.h
+++ b/engines/kyra/engine/eobcommon.h
@@ -762,6 +762,7 @@ protected:
void gui_setCastOnWhomButtons();
void gui_initButton(int index, int x = -1, int y = -1, int val = -1) override;
Button *gui_getButton(Button *buttonList, int index);
+ void printStatsPageString(const char *str, int x, int y, int col);
int clickedInventoryNextPage(Button *button);
int clickedPortraitRestore(Button *button);
@@ -835,9 +836,12 @@ protected:
Screen::FontId _invFont2;
Screen::FontId _invFont3;
Screen::FontId _invFont4;
+ Screen::FontId _invFont5;
+ Screen::FontId _invFont6;
Screen::FontId _conFont;
Screen::FontId _titleFont;
Screen::FontId _bookFont;
+ Screen::FontId _hpStatFont;
const uint8 **_compassShapes;
uint8 _charExchangeSwap;
uint8 *_swapShape;
diff --git a/engines/kyra/engine/kyra_rpg.h b/engines/kyra/engine/kyra_rpg.h
index e759ab34143..efbaf5a1988 100644
--- a/engines/kyra/engine/kyra_rpg.h
+++ b/engines/kyra/engine/kyra_rpg.h
@@ -127,9 +127,12 @@ struct KyraRpgGUISettings {
uint8 guiColorDarkRed;
uint8 guiColorLightBlue;
uint8 guiColorBlue;
+ uint8 guiColorDarkBlue;
uint8 guiColorYellow;
uint8 guiColorLightGreen;
uint8 guiColorDarkGreen;
+ uint8 guiColorPurple;
+ uint8 guiColorBrown;
uint8 guiColorBlack;
} colors;
@@ -150,11 +153,64 @@ struct KyraRpgGUISettings {
uint8 hpBarHeight_1;
int16 hpFoodBarX_2[3];
int16 hpFoodBarY_2[3];
- uint8 hpFoodBarWidth_2;
+ uint8 hpFoodBarWidth_2[2];
uint8 hpFoodBarHeight_2;
+ int16 nameLabelOffsetX;
+ int16 nameLabelOffsetY;
+ int16 exchangeLabelOffsetX;
+ int16 exchangeLabelOffsetY;
int16 redSplatOffsetX;
int16 redSplatOffsetY;
} charBoxCoords;
+
+ struct StatsPageCoords {
+ int16 headlineX;
+ int16 headlineY;
+ int16 descStartX;
+ int16 descStartY;
+ uint8 descYInc;
+ int16 statsGroup1StringsX;
+ int16 statsGroup1StringsY;
+ int16 statsGroup2StringsX;
+ int16 statsGroup2StringsY;
+ uint8 statsStringsYInc;
+ int16 statsGroup1StatsX;
+ int16 statsGroup1StatsY;
+ int16 statsGroup2StatsX;
+ int16 statsGroup2StatsY;
+ uint8 statsStatsYInc;
+ int16 acStringX;
+ int16 acStringY;
+ int16 acStatsX;
+ int16 acStatsY;
+ int16 expStringX;
+ int16 expStringY;
+ int16 expStatsX;
+ int16 expStatsY;
+ uint8 expStatsXInc;
+ uint8 expStatsYInc;
+ int16 lvlStringX;
+ int16 lvlStringY;
+ int16 lvlStatsX;
+ int16 lvlStatsY;
+ uint8 lvlStatsXInc;
+ uint8 lvlStatsYInc;
+ int16 classStringsX;
+ int16 classStringsY;
+ uint8 classStringsXInc;
+ uint8 classStringsYInc;
+ } statsPageCoords;
+
+ struct StatsPageColors {
+ uint8 headLine;
+ uint8 cls[3];
+ uint8 alignment;
+ uint8 race;
+ uint8 acString;
+ uint8 statsStrings;
+ uint8 statsValues;
+ uint8 expLvl[3];
+ } statsPageColors;
};
class KyraRpgEngine : public KyraEngine_v1 {
diff --git a/engines/kyra/gui/gui_eob.cpp b/engines/kyra/gui/gui_eob.cpp
index 0ff4aac72c3..9100df61649 100644
--- a/engines/kyra/gui/gui_eob.cpp
+++ b/engines/kyra/gui/gui_eob.cpp
@@ -101,31 +101,37 @@ void EoBCoreEngine::gui_drawCharPortraitWithStats(int index, bool screenUpdt) {
return;
EoBCharacter *c = &_characters[index];
- int txtCol1 = guiSettings()->colors.guiColorBlack;
- int txtCol2 = guiSettings()->colors.guiColorWhite;
+ const KyraRpgGUISettings *g = guiSettings();
+ int txtCol1 = g->colors.guiColorBlack;
+ int txtCol2 = g->colors.guiColorWhite;
if ((_flags.gameID == GI_EOB1 && c->flags & 6) || (_flags.gameID == GI_EOB2 && c->flags & 0x0E)) {
- txtCol1 = guiSettings()->colors.guiColorDarkRed;
- txtCol2 = guiSettings()->colors.guiColorLightRed;
+ txtCol1 = g->colors.guiColorDarkRed;
+ txtCol2 = g->colors.guiColorLightRed;
}
if (_currentControlMode == 0) {
- int x2 = guiSettings()->charBoxCoords.facePosX_1[index & 1];
- int y2 = guiSettings()->charBoxCoords.boxY[index >> 1];
-
- _screen->copyRegion(176, 168, x2, y2, guiSettings()->charBoxCoords.boxWidth, 24, 2, 2, Screen::CR_NO_P_CHECK);
- _screen->copyRegion(240, 168, x2, y2 + 24, guiSettings()->charBoxCoords.boxWidth, guiSettings()->charBoxCoords.boxHeight - 24, 2, 2, Screen::CR_NO_P_CHECK);
+ int x2 = g->charBoxCoords.facePosX_1[index & 1];
+ int y2 = g->charBoxCoords.boxY[index >> 1];
int cp = _screen->setCurPage(2);
Screen::FontId cf = _screen->setFont(_invFont1);
+ if (_flags.lang == Common::ZH_TWN)
+ gui_drawBox(176, 168, 63, 15, g->colors.frame1, g->colors.frame2, g->colors.fill);
+
+ _screen->copyRegion(176, 168, x2, y2, g->charBoxCoords.boxWidth, 24, 2, 2, Screen::CR_NO_P_CHECK);
+ _screen->copyRegion(240, 168, x2, y2 + 24, g->charBoxCoords.boxWidth, g->charBoxCoords.boxHeight - 24, 2, 2, Screen::CR_NO_P_CHECK);
+
if (_flags.platform == Common::kPlatformSegaCD) {
_screen->drawShape(_screen->_curPage, (index == _exchangeCharacterId) ? _swapShape : c->nameShape, x2 + 4, y2 + 4, 0);
} else {
if (index == _exchangeCharacterId)
- _screen->printText(_characterGuiStringsSt[0], x2 + 2, y2 + 2, guiSettings()->colors.guiColorDarkRed, guiSettings()->colors.fill);
+ _screen->printText(_characterGuiStringsSt[0], x2 + g->charBoxCoords.exchangeLabelOffsetX, y2 + g->charBoxCoords.exchangeLabelOffsetY, g->colors.guiColorDarkRed, g->colors.fill);
+ else if (_flags.lang == Common::ZH_TWN)
+ _screen->printShadedText(c->name, x2 + g->charBoxCoords.nameLabelOffsetX, y2 + g->charBoxCoords.nameLabelOffsetY, g->colors.guiColorYellow, 0, g->colors.guiColorBlack);
else
- _screen->printText(c->name, x2 + 2, y2 + (_flags.platform == Common::kPlatformFMTowns ? 1 : 2), txtCol1, _flags.platform == Common::kPlatformPC98 ? 0 : guiSettings()->colors.fill);
+ _screen->printText(c->name, x2 + g->charBoxCoords.nameLabelOffsetX, y2 + g->charBoxCoords.nameLabelOffsetY, txtCol1, _flags.platform == Common::kPlatformPC98 ? 0 : g->colors.fill);
}
_screen->setFont(_invFont2);
@@ -138,12 +144,14 @@ void EoBCoreEngine::gui_drawCharPortraitWithStats(int index, bool screenUpdt) {
gui_drawCharPortraitStatusFrame(index);
if (c->damageTaken > 0) {
- _screen->drawShape(2, _redSplatShape, x2 + guiSettings()->charBoxCoords.redSplatOffsetX, y2 + guiSettings()->charBoxCoords.redSplatOffsetY, 0);
+ _screen->drawShape(2, _redSplatShape, x2 + g->charBoxCoords.redSplatOffsetX, y2 + g->charBoxCoords.redSplatOffsetY, 0);
if (_flags.platform == Common::kPlatformSegaCD) {
- gui_printInventoryDigits(x2 + guiSettings()->charBoxCoords.redSplatOffsetX + 12, y2 + guiSettings()->charBoxCoords.redSplatOffsetY + 10, c->damageTaken);
+ gui_printInventoryDigits(x2 + g->charBoxCoords.redSplatOffsetX + 12, y2 + g->charBoxCoords.redSplatOffsetY + 10, c->damageTaken);
} else {
Common::String tmpStr = Common::String::format("%d", c->damageTaken);
- _screen->printText(tmpStr.c_str(), x2 + 34 - tmpStr.size() * 3, y2 + 42, (_configRenderMode == Common::kRenderCGA) ? 12 : guiSettings()->colors.guiColorWhite, 0);
+ Screen::FontId fnt = _screen->setFont(_hpStatFont);
+ _screen->printText(tmpStr.c_str(), x2 + 34 - tmpStr.size() * 3, y2 + 42, (_configRenderMode == Common::kRenderCGA) ? 12 : g->colors.guiColorWhite, 0);
+ _screen->setFont(fnt);
}
}
@@ -152,14 +160,14 @@ void EoBCoreEngine::gui_drawCharPortraitWithStats(int index, bool screenUpdt) {
if (!cp) {
if (_redSplatBG[index])
- _screen->copyBlockToPage(0, guiSettings()->charBoxCoords.boxX[index & 1] + guiSettings()->charBoxCoords.redSplatOffsetX, y2 + guiSettings()->charBoxCoords.boxHeight - 1, _redSplatShape[2] << 3, 4, _redSplatBG[index]);
+ _screen->copyBlockToPage(0, g->charBoxCoords.boxX[index & 1] + g->charBoxCoords.redSplatOffsetX, y2 + g->charBoxCoords.boxHeight - 1, _redSplatShape[2] << 3, 4, _redSplatBG[index]);
- _screen->copyRegion(x2, y2, guiSettings()->charBoxCoords.boxX[index & 1], y2, guiSettings()->charBoxCoords.boxWidth, guiSettings()->charBoxCoords.boxHeight, 2, 0, Screen::CR_NO_P_CHECK);
+ _screen->copyRegion(x2, y2, g->charBoxCoords.boxX[index & 1], y2, g->charBoxCoords.boxWidth, g->charBoxCoords.boxHeight, 2, 0, Screen::CR_NO_P_CHECK);
// Redraw this for the SegaCD version, since the red splat shapes do overlap with the next portrait to the bottom and would otherwise be cut off.
if (_flags.platform == Common::kPlatformSegaCD && c->damageTaken > 0) {
- _screen->drawShape(0, _redSplatShape, guiSettings()->charBoxCoords.boxX[index & 1] + guiSettings()->charBoxCoords.redSplatOffsetX, y2 + guiSettings()->charBoxCoords.redSplatOffsetY, 0);
- gui_printInventoryDigits(guiSettings()->charBoxCoords.boxX[index & 1] + guiSettings()->charBoxCoords.redSplatOffsetX + 12, y2 + guiSettings()->charBoxCoords.redSplatOffsetY + 10, c->damageTaken);
+ _screen->drawShape(0, _redSplatShape, g->charBoxCoords.boxX[index & 1] + g->charBoxCoords.redSplatOffsetX, y2 + g->charBoxCoords.redSplatOffsetY, 0);
+ gui_printInventoryDigits(g->charBoxCoords.boxX[index & 1] + g->charBoxCoords.redSplatOffsetX + 12, y2 + g->charBoxCoords.redSplatOffsetY + 10, c->damageTaken);
}
if (screenUpdt)
_screen->updateScreen();
@@ -172,11 +180,17 @@ void EoBCoreEngine::gui_drawCharPortraitWithStats(int index, bool screenUpdt) {
gui_drawFaceShape(index);
+ if (_flags.lang == Common::ZH_TWN) {
+ _screen->fillRect(216, 5, 300, 33, g->colors.fill);
+ _screen->printShadedText(_characterGuiStringsHp[0], 214, 20, g->colors.guiColorDarkBlue, 0, 0);
+ _screen->printShadedText(_characterGuiStringsHp[3], 272, 20, g->colors.guiColorDarkBlue, 0, 0);
+ }
+
Screen::FontId cf = _screen->setFont(_invFont1);
if (_flags.platform == Common::kPlatformSegaCD)
_screen->drawShape(_screen->_curPage, (index == _exchangeCharacterId) ? _swapShape : c->nameShape, 224, 8);
else
- _screen->printShadedText(c->name, 219, 6, txtCol2, 0, guiSettings()->colors.guiColorBlack);
+ _screen->printShadedText(c->name, 219, 6, txtCol2, 0, g->colors.guiColorBlack);
_screen->setFont(_invFont2);
gui_drawHitpoints(index);
@@ -191,17 +205,17 @@ void EoBCoreEngine::gui_drawCharPortraitWithStats(int index, bool screenUpdt) {
if (_characterGuiStringsSt) {
if (c->hitPointsCur == -10)
- _screen->printShadedText(_characterGuiStringsSt[1], 247, statusTxtY, guiSettings()->colors.guiColorLightRed, 0, guiSettings()->colors.guiColorBlack);
+ _screen->printShadedText(_characterGuiStringsSt[1], 247, statusTxtY, g->colors.guiColorLightRed, 0, g->colors.guiColorBlack);
else if (c->hitPointsCur < 1)
- _screen->printShadedText(_characterGuiStringsSt[2], 226, statusTxtY, guiSettings()->colors.guiColorLightRed, 0, guiSettings()->colors.guiColorBlack);
+ _screen->printShadedText(_characterGuiStringsSt[2], 226, statusTxtY, g->colors.guiColorLightRed, 0, g->colors.guiColorBlack);
else if (c->effectFlags & 0x2000)
- _screen->printShadedText(_characterGuiStringsSt[3], 220, statusTxtY, guiSettings()->colors.guiColorLightRed, 0, guiSettings()->colors.guiColorBlack);
+ _screen->printShadedText(_characterGuiStringsSt[3], 220, statusTxtY, g->colors.guiColorLightRed, 0, g->colors.guiColorBlack);
else if (c->flags & 2)
- _screen->printShadedText(_characterGuiStringsSt[4], 235, statusTxtY, guiSettings()->colors.guiColorLightRed, 0, guiSettings()->colors.guiColorBlack);
+ _screen->printShadedText(_characterGuiStringsSt[4], 235, statusTxtY, g->colors.guiColorLightRed, 0, g->colors.guiColorBlack);
else if (c->flags & 4)
- _screen->printShadedText(_characterGuiStringsSt[5], 232, statusTxtY, guiSettings()->colors.guiColorLightRed, 0, guiSettings()->colors.guiColorBlack);
+ _screen->printShadedText(_characterGuiStringsSt[5], 232, statusTxtY, g->colors.guiColorLightRed, 0, g->colors.guiColorBlack);
else if (c->flags & 8)
- _screen->printShadedText(_characterGuiStringsSt[6], 232, statusTxtY, guiSettings()->colors.guiColorLightRed, 0, guiSettings()->colors.guiColorBlack);
+ _screen->printShadedText(_characterGuiStringsSt[6], 232, statusTxtY, g->colors.guiColorLightRed, 0, g->colors.guiColorBlack);
}
_screen->setFont(_invFont2);
@@ -351,6 +365,8 @@ void EoBCoreEngine::gui_drawWeaponSlotStatus(int x, int y, int status) {
if (!tmpStr2.empty()) {
_screen->printText(tmpStr.c_str(), x + (16 - tmpStr.size() * 3), y + 2, textColor, 0);
_screen->printText(tmpStr2.c_str(), x + (16 - tmpStr.size() * 3), y + 9, textColor, 0);
+ } else if (_flags.lang == Common::ZH_TWN) {
+ _screen->printText(tmpStr.c_str(), x + (status > -1 ? (12 - ((tmpStr.size() - 1) << 2)) : (32 - (tmpStr.size() << 3))), y + 1, textColor, 0);
} else {
_screen->printText(tmpStr.c_str(), x + (16 - tmpStr.size() * 3), y + 5, textColor, 0);
}
@@ -363,22 +379,24 @@ void EoBCoreEngine::gui_drawHitpoints(int index) {
if (_currentControlMode && (index != _updateCharNum))
return;
- int x = guiSettings()->charBoxCoords.hpBarX_1[index & 1];
- int y = guiSettings()->charBoxCoords.hpBarY_1[index >> 1];
- int w = guiSettings()->charBoxCoords.hpBarWidth_1;
- int h = guiSettings()->charBoxCoords.hpBarHeight_1;
- uint8 bgCol = guiSettings()->colors.fill;
+ const KyraRpgGUISettings *g = guiSettings();
+
+ int x = g->charBoxCoords.hpBarX_1[index & 1];
+ int y = g->charBoxCoords.hpBarY_1[index >> 1];
+ int w = g->charBoxCoords.hpBarWidth_1;
+ int h = g->charBoxCoords.hpBarHeight_1;
+ uint8 bgCol = g->colors.fill;
if (!_screen->_curPage)
x += 176;
if (_currentControlMode) {
- x = guiSettings()->charBoxCoords.hpFoodBarX_2[0];
- y = guiSettings()->charBoxCoords.hpFoodBarY_2[0];
- w = guiSettings()->charBoxCoords.hpFoodBarWidth_2;
- h = guiSettings()->charBoxCoords.hpFoodBarHeight_2;
+ x = g->charBoxCoords.hpFoodBarX_2[0];
+ y = g->charBoxCoords.hpFoodBarY_2[0];
+ w = g->charBoxCoords.hpFoodBarWidth_2[0];
+ h = g->charBoxCoords.hpFoodBarHeight_2;
if (_flags.platform == Common::kPlatformAmiga && _flags.gameID == GI_EOB1)
- bgCol = guiSettings()->colors.sfill;
+ bgCol = g->colors.sfill;
}
EoBCharacter *c = &_characters[index];
@@ -386,26 +404,39 @@ void EoBCoreEngine::gui_drawHitpoints(int index) {
if (_configHpBarGraphs) {
int bgCur = c->hitPointsCur + 10;
int bgMax = c->hitPointsMax + 10;
- int col = ((bgMax / 3) > bgCur) ? guiSettings()->colors.guiColorYellow : guiSettings()->colors.guiColorDarkGreen;
+ int col = ((bgMax / 3) > bgCur) ? g->colors.guiColorYellow : g->colors.guiColorDarkGreen;
if (bgCur <= 10)
- col = guiSettings()->colors.guiColorDarkRed;
+ col = g->colors.guiColorDarkRed;
if (_flags.platform == Common::kPlatformSegaCD)
- col = (bgCur * 40 / bgMax) < 12 ? guiSettings()->colors.guiColorDarkRed : ((bgCur * 40 / bgMax) < 24 ? guiSettings()->colors.guiColorYellow : guiSettings()->colors.guiColorDarkGreen);
- else if (!_currentControlMode)
- _screen->printText(_characterGuiStringsHp[0], x - 13, y - 1, guiSettings()->colors.guiColorBlack, 0);
+ col = (bgCur * 40 / bgMax) < 12 ? g->colors.guiColorDarkRed : ((bgCur * 40 / bgMax) < 24 ? g->colors.guiColorYellow : g->colors.guiColorDarkGreen);
+ else if (!_currentControlMode && _flags.lang != Common::ZH_TWN)
+ _screen->printText(_characterGuiStringsHp[0], x - 13, y - 1, g->colors.guiColorBlack, 0);
- gui_drawHorizontalBarGraph(x, y, w, h, bgCur, bgMax, col, guiSettings()->colors.barGraph);
+ gui_drawHorizontalBarGraph(x, y, w, h, bgCur, bgMax, col, g->colors.barGraph);
} else {
Common::String tmpString = Common::String::format(_characterGuiStringsHp[1], c->hitPointsCur, c->hitPointsMax);
-
- if (!_currentControlMode) {
+ int txtCol = g->colors.guiColorBlack;
+
+ if (_flags.lang == Common::ZH_TWN) {
+ txtCol = g->colors.guiColorWhite;
+ if (_currentControlMode) {
+ tmpString = Common::String::format(_characterGuiStringsHp[2], c->hitPointsCur, c->hitPointsMax);
+ x -= 3;
+ y += 1;
+ } else {
+ x -= 1;
+ y -= 3;
+ }
+ } else if (!_currentControlMode) {
x -= 13;
y -= 1;
}
- _screen->printText(tmpString.c_str(), x, y, guiSettings()->colors.guiColorBlack, bgCol);
+ Screen::FontId of = _screen->setFont(_hpStatFont);
+ _screen->printText(tmpString.c_str(), x, y, txtCol, bgCol);
+ _screen->setFont(of);
}
}
@@ -423,8 +454,9 @@ void EoBCoreEngine::gui_drawFoodStatusGraph(int index) {
if (index != _updateCharNum)
return;
- uint8 col = c->food < 20 ? guiSettings()->colors.guiColorDarkRed : (c->food < 33 ? guiSettings()->colors.guiColorYellow : guiSettings()->colors.guiColorDarkGreen);
- gui_drawHorizontalBarGraph(guiSettings()->charBoxCoords.hpFoodBarX_2[1], guiSettings()->charBoxCoords.hpFoodBarY_2[1], guiSettings()->charBoxCoords.hpFoodBarWidth_2, guiSettings()->charBoxCoords.hpFoodBarHeight_2, c->food, 100, col, guiSettings()->colors.barGraph);
+ const KyraRpgGUISettings *g = guiSettings();
+ uint8 col = c->food < 20 ? g->colors.guiColorDarkRed : (c->food < 33 ? g->colors.guiColorYellow : g->colors.guiColorDarkGreen);
+ gui_drawHorizontalBarGraph(g->charBoxCoords.hpFoodBarX_2[1], g->charBoxCoords.hpFoodBarY_2[1], g->charBoxCoords.hpFoodBarWidth_2[1], g->charBoxCoords.hpFoodBarHeight_2, c->food, 100, col, g->colors.barGraph);
}
void EoBCoreEngine::gui_drawHorizontalBarGraph(int x, int y, int w, int h, int32 curVal, int32 maxVal, int col1, int col2) {
@@ -438,9 +470,10 @@ void EoBCoreEngine::gui_drawCharPortraitStatusFrame(int index) {
if (_flags.platform == Common::kPlatformSegaCD)
return;
- uint8 redGreenColor = (_partyEffectFlags & 0x20000) ? guiSettings()->colors.guiColorLightGreen : ((_configRenderMode == Common::kRenderCGA) ? 3 : guiSettings()->colors.guiColorLightRed);
- int x = guiSettings()->charBoxCoords.facePosX_1[index & 1];
- int y = guiSettings()->charBoxCoords.boxY[index >> 1];
+ const KyraRpgGUISettings *g = guiSettings();
+ uint8 redGreenColor = (_partyEffectFlags & 0x20000) ? g->colors.guiColorLightGreen : ((_configRenderMode == Common::kRenderCGA) ? 3 : g->colors.guiColorLightRed);
+ int x = g->charBoxCoords.facePosX_1[index & 1];
+ int y = g->charBoxCoords.boxY[index >> 1];
int xOffset = (_configRenderMode == Common::kRenderCGA) ? 0 : 1;
if (!_screen->_curPage)
@@ -453,12 +486,12 @@ void EoBCoreEngine::gui_drawCharPortraitStatusFrame(int index) {
if (redGreen || yellow) {
if (redGreen && !yellow) {
- _screen->drawBox(x, y, x + guiSettings()->charBoxCoords.boxWidth - 1, y + guiSettings()->charBoxCoords.boxHeight - 1, redGreenColor);
+ _screen->drawBox(x, y, x + g->charBoxCoords.boxWidth - 1, y + g->charBoxCoords.boxHeight - 1, redGreenColor);
return;
}
if (yellow && !redGreen) {
- _screen->drawBox(x, y, x + guiSettings()->charBoxCoords.boxWidth - 1, y + guiSettings()->charBoxCoords.boxHeight - 1, guiSettings()->colors.guiColorYellow);
+ _screen->drawBox(x, y, x + g->charBoxCoords.boxWidth - 1, y + g->charBoxCoords.boxHeight - 1, g->colors.guiColorYellow);
return;
}
@@ -469,11 +502,11 @@ void EoBCoreEngine::gui_drawCharPortraitStatusFrame(int index) {
x = iX + i;
if (redGreen) {
_screen->drawClippedLine(x, y, x + 7, y, redGreenColor);
- _screen->drawClippedLine(x + 8, y + guiSettings()->charBoxCoords.boxHeight - 1, x + 15, y + guiSettings()->charBoxCoords.boxHeight - 1, redGreenColor);
+ _screen->drawClippedLine(x + 8, y + g->charBoxCoords.boxHeight - 1, x + 15, y + g->charBoxCoords.boxHeight - 1, redGreenColor);
}
if (yellow) {
- _screen->drawClippedLine(x + 8, y, x + 15, y, guiSettings()->colors.guiColorYellow);
- _screen->drawClippedLine(x, y + guiSettings()->charBoxCoords.boxHeight - 1, x + 7, y + guiSettings()->charBoxCoords.boxHeight - 1, guiSettings()->colors.guiColorYellow);
+ _screen->drawClippedLine(x + 8, y, x + 15, y, g->colors.guiColorYellow);
+ _screen->drawClippedLine(x, y + g->charBoxCoords.boxHeight - 1, x + 7, y + g->charBoxCoords.boxHeight - 1, g->colors.guiColorYellow);
}
}
@@ -483,20 +516,20 @@ void EoBCoreEngine::gui_drawCharPortraitStatusFrame(int index) {
y = iY + i - 1;
if (yellow) {
- _screen->drawClippedLine(x, y + 1, x, y + 6, guiSettings()->colors.guiColorYellow);
- _screen->drawClippedLine(x + guiSettings()->charBoxCoords.boxWidth - 1, y + 7, x + guiSettings()->charBoxCoords.boxWidth - 1, y + 12, guiSettings()->colors.guiColorYellow);
+ _screen->drawClippedLine(x, y + 1, x, y + 6, g->colors.guiColorYellow);
+ _screen->drawClippedLine(x + g->charBoxCoords.boxWidth - 1, y + 7, x + g->charBoxCoords.boxWidth - 1, y + 12, g->colors.guiColorYellow);
}
if (redGreen) {
_screen->drawClippedLine(x, y + 7, x, y + 12, redGreenColor);
- _screen->drawClippedLine(x + guiSettings()->charBoxCoords.boxWidth - 1, y + 1, x + guiSettings()->charBoxCoords.boxWidth - 1, y + 6, redGreenColor);
+ _screen->drawClippedLine(x + g->charBoxCoords.boxWidth - 1, y + 1, x + g->charBoxCoords.boxWidth - 1, y + 6, redGreenColor);
}
}
} else {
- _screen->drawClippedLine(x, y, x + guiSettings()->charBoxCoords.boxWidth - 2, y, guiSettings()->colors.frame2);
- _screen->drawClippedLine(x, y + guiSettings()->charBoxCoords.boxHeight - 1, x + guiSettings()->charBoxCoords.boxWidth - 2, y + guiSettings()->charBoxCoords.boxHeight - 1, guiSettings()->colors.frame1);
- _screen->drawClippedLine(x - xOffset, y, x - xOffset, y + guiSettings()->charBoxCoords.boxHeight, guiSettings()->colors.guiColorBlack);
- _screen->drawClippedLine(x + guiSettings()->charBoxCoords.boxWidth - 1, y, x + guiSettings()->charBoxCoords.boxWidth - 1, y + guiSettings()->charBoxCoords.boxHeight, guiSettings()->colors.guiColorBlack);
+ _screen->drawClippedLine(x, y, x + g->charBoxCoords.boxWidth - 2, y, g->colors.frame2);
+ _screen->drawClippedLine(x, y + g->charBoxCoords.boxHeight - 1, x + g->charBoxCoords.boxWidth - 2, y + g->charBoxCoords.boxHeight - 1, g->colors.frame1);
+ _screen->drawClippedLine(x - xOffset, y, x - xOffset, y + g->charBoxCoords.boxHeight, g->colors.guiColorBlack);
+ _screen->drawClippedLine(x + g->charBoxCoords.boxWidth - 1, y, x + g->charBoxCoords.boxWidth - 1, y + g->charBoxCoords.boxHeight, g->colors.guiColorBlack);
}
}
@@ -559,66 +592,53 @@ void EoBCoreEngine::gui_drawCharacterStatsPage() {
static const uint16 cm2Y2[] = { 165, 165, 147 };
EoBCharacter *c = &_characters[_updateCharNum];
+ const KyraRpgGUISettings *g = guiSettings();
+ const KyraRpgGUISettings::StatsPageCoords &cd = g->statsPageCoords;
+ const KyraRpgGUISettings::StatsPageColors &cl = g->statsPageColors;
- if (_flags.platform != Common::kPlatformSegaCD) {
- for (int i = 0; i < 3; i++)
- _screen->fillRect(cm2X1[i], cm2Y1[i], cm2X2[i], cm2Y2[i], guiSettings()->colors.sfill);
- }
-
- int lineH = MIN(_screen->getFontHeight() + 1, 8);
- _screen->printShadedText(_characterGuiStringsIn[0], 183, 42, guiSettings()->colors.guiColorWhite, guiSettings()->colors.sfill, guiSettings()->colors.guiColorBlack);
- _screen->printText(_chargenClassStrings[c->cClass], 183, 55, guiSettings()->colors.guiColorBlack, guiSettings()->colors.sfill);
- _screen->printText(_chargenAlignmentStrings[c->alignment], 183, 55 + lineH, guiSettings()->colors.guiColorBlack, guiSettings()->colors.sfill);
- _screen->printText(_chargenRaceSexStrings[c->raceSex], 183, 55 + 2 * lineH, guiSettings()->colors.guiColorBlack, guiSettings()->colors.sfill);
-
- lineH = _screen->getFontHeight() + 1;
- int tX = 183;
- int tY = _flags.use16ColorMode ? 87 : 82;
for (int i = 0; i < 3; i++)
- _screen->printText(_chargenStatStrings[6 + i], tX, tY + i * lineH, guiSettings()->colors.guiColorBlack, guiSettings()->colors.sfill);
-
- if (_flags.use16ColorMode) {
- tX += 72;
- tY -= 27;
- }
- for (int i = 3; i < 6; i++)
- _screen->printText(_chargenStatStrings[6 + i], tX, tY + i * lineH, guiSettings()->colors.guiColorBlack, guiSettings()->colors.sfill);
+ _screen->fillRect(cm2X1[i], cm2Y1[i], cm2X2[i], cm2Y2[i], g->colors.sfill);
- _screen->printText(_characterGuiStringsIn[1], 183, tY + 6 * lineH, guiSettings()->colors.guiColorBlack, guiSettings()->colors.sfill);
+ _screen->printShadedText(_characterGuiStringsIn[0], cd.headlineX, cd.headlineY, cl.headLine, g->colors.sfill, g->colors.guiColorBlack);
+ if (_flags.lang != Common::ZH_TWN)
+ printStatsPageString(_chargenClassStrings[c->cClass], cd.descStartX, cd.descStartY , cl.cls[0]);
+ printStatsPageString(_chargenAlignmentStrings[c->alignment], cd.descStartX, cd.descStartY + cd.descYInc, cl.alignment);
+ printStatsPageString(_chargenRaceSexStrings[c->raceSex], cd.descStartX, cd.descStartY + 2 * cd.descYInc, cl.race);
- tY = _flags.use16ColorMode ? 127 : 138;
- _screen->printText(_characterGuiStringsIn[2], 239, tY, guiSettings()->colors.guiColorBlack, guiSettings()->colors.sfill);
- _screen->printText(_characterGuiStringsIn[3], 278, tY, guiSettings()->colors.guiColorBlack, guiSettings()->colors.sfill);
-
- tX = _flags.use16ColorMode ? 210 : 275;
- tY = _flags.use16ColorMode ? 87 : 82;
- _screen->printText(getCharStrength(c->strengthCur, c->strengthExtCur).c_str(), tX, tY, guiSettings()->colors.guiColorWhite, guiSettings()->colors.sfill);
- _screen->printText(Common::String::format("%d", c->intelligenceCur).c_str(), tX, tY + lineH, guiSettings()->colors.guiColorWhite, guiSettings()->colors.sfill);
- _screen->printText(Common::String::format("%d", c->wisdomCur).c_str(), tX, tY + 2 * lineH, guiSettings()->colors.guiColorWhite, guiSettings()->colors.sfill);
-
- if (_flags.use16ColorMode) {
- tX = 285;
- tY -= 27;
+ for (int i = 0; i < 3; i++) {
+ printStatsPageString(_chargenStatStrings[6 + i], cd.statsGroup1StringsX, cd.statsGroup1StringsY + i * cd.statsStringsYInc, cl.statsStrings);
+ printStatsPageString(_chargenStatStrings[9 + i], cd.statsGroup2StringsX, cd.statsGroup2StringsY + i * cd.statsStringsYInc, cl.statsStrings);
}
- _screen->printText(Common::String::format("%d", c->dexterityCur).c_str(), tX, tY + 3 * lineH, guiSettings()->colors.guiColorWhite, guiSettings()->colors.sfill);
- _screen->printText(Common::String::format("%d", c->constitutionCur).c_str(), tX, tY + 4 * lineH, guiSettings()->colors.guiColorWhite, guiSettings()->colors.sfill);
- _screen->printText(Common::String::format("%d", c->charismaCur).c_str(), tX, tY + 5 * lineH, guiSettings()->colors.guiColorWhite, guiSettings()->colors.sfill);
- if (_flags.use16ColorMode)
- tX = 255;
- _screen->printText(Common::String::format("%d", c->armorClass).c_str(), tX, tY + 6 * lineH, guiSettings()->colors.guiColorWhite, guiSettings()->colors.sfill);
+ printStatsPageString(_characterGuiStringsIn[1], cd.acStringX, cd.acStringY, cl.acString);
+ printStatsPageString(_characterGuiStringsIn[2], cd.expStringX, cd.expStringY, cl.statsStrings);
+ printStatsPageString(_characterGuiStringsIn[3], cd.lvlStringX, cd.lvlStringY, cl.statsStrings);
+
+ Screen::FontId of = _screen->setFont(_invFont5);
+ printStatsPageString(getCharStrength(c->strengthCur, c->strengthExtCur).c_str(), cd.statsGroup1StatsX, cd.statsGroup1StatsY, cl.statsValues);
+ printStatsPageString(Common::String::format("%d", c->intelligenceCur).c_str(), cd.statsGroup1StatsX, cd.statsGroup1StatsY + cd.statsStatsYInc, cl.statsValues);
+ printStatsPageString(Common::String::format("%d", c->wisdomCur).c_str(), cd.statsGroup1StatsX, cd.statsGroup1StatsY + 2 * cd.statsStatsYInc, cl.statsValues);
+ printStatsPageString(Common::String::format("%d", c->dexterityCur).c_str(), cd.statsGroup2StatsX, cd.statsGroup2StatsY, cl.statsValues);
+ printStatsPageString(Common::String::format("%d", c->constitutionCur).c_str(), cd.statsGroup2StatsX, cd.statsGroup2StatsY + cd.statsStatsYInc, cl.statsValues);
+ printStatsPageString(Common::String::format("%d", c->charismaCur).c_str(), cd.statsGroup2StatsX, cd.statsGroup2StatsY + 2 * cd.statsStatsYInc, cl.statsValues);
+ printStatsPageString(Common::String::format("%d", c->armorClass).c_str(), cd.acStatsX, cd.acStatsY, cl.statsValues);
+ _screen->setFont(of);
- tY = _flags.use16ColorMode ? 136 : 145;
for (int i = 0; i < 3; i++) {
int t = getCharacterClassType(c->cClass, i);
if (t == -1)
continue;
- tX = (_flags.use16ColorMode) ? 183 : 180;
- _screen->printText(_chargenClassStrings[t + 15], tX, tY + lineH * i, guiSettings()->colors.guiColorBlack, guiSettings()->colors.sfill);
+
+ printStatsPageString(_chargenClassStrings[t + 15], cd.classStringsX + cd.classStringsXInc * i, cd.classStringsY + cd.classStringsYInc * i, cl.cls[i]);
+ if (_flags.lang == Common::ZH_TWN && i < 2 && getCharacterClassType(c->cClass, i + 1) != -1)
+ _screen->printShadedText("/", 182 + i * 8 + (i + 1) * 30, 148, g->colors.guiColorWhite, 0, g->colors.guiColorBlack);
+
+ of = _screen->setFont(_invFont6);
Common::String tmpStr = Common::String::format("%d", c->experience[i]);
- _screen->printText(tmpStr.c_str(), 251 - (_screen->getTextWidth(tmpStr.c_str()) >> 1), tY + lineH * i, guiSettings()->colors.guiColorWhite, guiSettings()->colors.sfill);
+ printStatsPageString(tmpStr.c_str(), cd.expStatsX - (_screen->getTextWidth(tmpStr.c_str()) >> 1) + cd.expStatsXInc * i, cd.expStatsY + cd.expStatsYInc * i, cl.expLvl[i]);
tmpStr = Common::String::format("%d", c->level[i]);
- _screen->printText(tmpStr.c_str(), 286 - (_screen->getTextWidth(tmpStr.c_str()) >> 1), tY + lineH * i, guiSettings()->colors.guiColorWhite, guiSettings()->colors.sfill);
+ printStatsPageString(tmpStr.c_str(), cd.lvlStatsX - (_screen->getTextWidth(tmpStr.c_str()) >> 1) + cd.lvlStatsXInc * i, cd.lvlStatsY + cd.lvlStatsYInc * i, cl.expLvl[i]);
+ _screen->setFont(of);
}
}
@@ -867,6 +887,13 @@ void EoBCoreEngine::gui_initButton(int index, int, int, int) {
b->arg = d->arg;
}
+void EoBCoreEngine::printStatsPageString(const char *str, int x, int y, int col) {
+ if (_flags.lang == Common::ZH_TWN)
+ _screen->printShadedText(str, x, y, col, guiSettings()->colors.sfill, guiSettings()->colors.guiColorBlack);
+ else
+ _screen->printText(str, x, y, col, guiSettings()->colors.sfill);
+}
+
int EoBCoreEngine::clickedCharPortraitDefault(Button *button) {
if (!testCharacter(button->arg, 1))
return 1;
diff --git a/engines/kyra/resource/staticres_eob.cpp b/engines/kyra/resource/staticres_eob.cpp
index 1c17fc6163e..0dc3c3e2f63 100644
--- a/engines/kyra/resource/staticres_eob.cpp
+++ b/engines/kyra/resource/staticres_eob.cpp
@@ -1664,69 +1664,80 @@ void EoBEngine::initSpells() {
const KyraRpgGUISettings EoBEngine::_guiSettingsVGA = {
{ _dlgButtonPosX_Def, _dlgButtonPosY_Def, 9, 15, false, 95, 9, 2, 7, { 285, 139 }, { 189, 162 }, { 31, 31 } },
- { 135, 130, 132, 180, 133, 17, 23, 20, 184, 177, 180, 184, 177, 180, 15, 6, 8, 9, 2, 5, 4, 3, 12 },
+ { 135, 130, 132, 180, 133, 17, 23, 20, 184, 177, 180, 184, 177, 180, 15, 6, 8, 9, 2, 11, 5, 4, 3, 1, 7, 12 },
{ { 184, 256, -1}, { 2, 54, 106 }, 64, 50,
{ 8, 80, -1 }, { 11, 63, 115 }, { 181, -1, -1 }, { 3, -1, -1 },
{ 40, 112, -1 }, { 11, 27, 63, 79, 115, 131 },
- { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, 51, 5,
- 13, 30
- }
+ { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, { 51, 51 }, 5,
+ 2, 2, 2, 2, 13, 30
+ },
+ { 183, 42, 183, 55, 7, 183, 82, 183, 103, 7, 275, 82, 275, 103, 7, 183, 124, 275, 124, 239, 138, 251, 145, 0, 7, 278, 138, 286, 145, 0, 7, 180, 145, 0, 7 },
+ { 15, { 12, 12, 12 }, 12, 12, 12, 12, 15, { 15, 15, 15 } }
};
const KyraRpgGUISettings EoBEngine::_guiSettingsEGA = {
{ _dlgButtonPosX_Def, _dlgButtonPosY_Def, 9, 15, false, 95, 9, 2, 7, { 285, 139 }, { 189, 162 }, { 31, 31 } },
- { 13, 9, 2, 14, 2, 6, 13, 8, 13, 15, 14, 13, 15, 14, 15, 6, 8, 9, 2, 5, 4, 3, 12 },
+ { 13, 9, 2, 14, 2, 6, 13, 8, 13, 15, 14, 13, 15, 14, 15, 6, 8, 9, 2, 11, 5, 4, 3, 1, 7, 12 },
{ { 184, 256, -1}, { 2, 54, 106 }, 64, 50,
{ 8, 80, -1 }, { 11, 63, 115 }, { 181, -1, -1 }, { 3, -1, -1 },
{ 40, 112, -1 }, { 11, 27, 63, 79, 115, 131 },
- { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, 51, 5,
- 13, 30
- }
+ { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, { 51, 51 }, 5,
+ 2, 2, 2, 2, 13, 30
+ },
+ { 183, 42, 183, 55, 7, 183, 82, 183, 103, 7, 275, 82, 275, 103, 7, 183, 124, 275, 124, 239, 138, 251, 145, 0, 7, 278, 138, 286, 145, 0, 7, 180, 145, 0, 7 },
+ { 15, { 12, 12, 12 }, 12, 12, 12, 12, 15, { 15, 15, 15 } }
};
const KyraRpgGUISettings EoBEngine::_guiSettingsPC98 = {
{ _dlgButtonPosX_Def, _dlgButtonPosY_Def, 9, 15, false, 95, 11, 1, 7, { 285, 139 }, { 189, 162 }, { 31, 31 } },
- { 13, 9, 2, 14, 2, 6, 13, 8, 13, 15, 14, 13, 15, 14, 15, 6, 8, 9, 2, 5, 4, 3, 12 },
+ { 13, 9, 2, 14, 2, 6, 13, 8, 13, 15, 14, 13, 15, 14, 15, 6, 8, 9, 2, 11, 5, 4, 3, 1, 7, 12 },
{ { 184, 256, -1}, { 2, 54, 106 }, 64, 50,
{ 8, 80, -1 }, { 11, 63, 115 }, { 181, -1, -1 }, { 3, -1, -1 },
{ 40, 112, -1 }, { 11, 27, 63, 79, 115, 131 },
- { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, 51, 5,
- 13, 30
- }
+ { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, { 51, 51 }, 5,
+ 2, 2, 2, 2, 13, 30
+ },
+ { 183, 42, 183, 55, 8, 183, 87, 255, 87, 9, 210, 87, 285, 87, 9, 183, 114, 255, 114, 239, 127, 251, 136, 0, 9, 278, 127, 286, 136, 0, 9, 183, 136, 0, 9 },
+ { 15, { 12, 12, 12 }, 12, 12, 12, 12, 15, { 15, 15, 15 } }
};
const KyraRpgGUISettings EoBEngine::_guiSettingsAmiga = {
{ _dlgButtonPosX_Def, _dlgButtonPosY_Def, 28, 31, false, 95, 9, 2, 7, { 285, 139 }, { 189, 162 }, { 31, 31 } },
- { 18, 17, 10, 17, 11, 24, 22, 25, 18, 9, 10, 18, 9, 10, 31, 24, 25, 28, 29, 7, 26, 27, 19 },
+ { 18, 17, 10, 17, 11, 24, 22, 25, 18, 9, 10, 18, 9, 10, 31, 24, 25, 28, 29, 16, 7, 26, 27, 6, 22, 19 },
{ { 184, 256, -1}, { 2, 54, 106 }, 64, 50,
{ 8, 80, -1 }, { 11, 63, 115 }, { 181, -1, -1 }, { 3, -1, -1 },
{ 40, 112, -1 }, { 11, 27, 63, 79, 115, 131 },
- { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, 51, 5,
- 13, 30
- }
+ { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, { 51, 51 }, 5,
+ 2, 2, 2, 2, 13, 30
+ },
+ { 183, 42, 183, 55, 7, 183, 82, 183, 103, 7, 275, 82, 275, 103, 7, 183, 124, 275, 124, 239, 138, 251, 145, 0, 7, 278, 138, 286, 145, 0, 7, 180, 145, 0, 7 },
+ { 31, { 19, 19, 19 }, 19, 19, 19, 19, 31, { 31, 31, 31 } }
};
const KyraRpgGUISettings EoBEngine::_guiSettingsAmigaMainMenu = {
{ _dlgButtonPosX_Def, _dlgButtonPosY_Def, 28, 31, false, 95, 9, 2, 7, { 285, 139 }, { 189, 162 }, { 31, 31 } },
- { 22, 28, 30, 17, 11, 24, 22, 25, 18, 9, 10, 18, 9, 10, 31, 24, 25, 28, 29, 7, 26, 27, 19 },
+ { 22, 28, 30, 17, 11, 24, 22, 25, 18, 9, 10, 18, 9, 10, 31, 24, 25, 28, 29, 16, 7, 26, 27, 6, 22, 19 },
{ { 184, 256, -1}, { 2, 54, 106 }, 64, 50,
{ 8, 80, -1 }, { 11, 63, 115 }, { 181, -1, -1 }, { 3, -1, -1 },
{ 40, 112, -1 }, { 11, 27, 63, 79, 115, 131 },
- { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, 51, 5,
- 13, 30
- }
+ { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, { 51, 51 }, 5,
+ 2, 2, 2, 2, 13, 30
+ },
+ { 183, 42, 183, 55, 7, 183, 82, 183, 103, 7, 275, 82, 275, 103, 7, 183, 124, 275, 124, 239, 138, 251, 145, 0, 7, 278, 138, 286, 145, 0, 7, 180, 145, 0, 7 },
+ { 31, { 19, 19, 19 }, 19, 19, 19, 19, 31, { 31, 31, 31 } }
};
const KyraRpgGUISettings EoBEngine::_guiSettingsSegaCD = {
{ _dlgButtonPosX_Sega, _dlgButtonPosY_Sega, 0x66, 0xFF, false, 90, 14, 2, 7, { 285, 139 }, { 189, 162 }, { 31, 31 } },
- { 135, 130, 132, 180, 0x00, 17, 23, 20, 184, 177, 180, 184, 177, 180, 15, 6, 0x31, 9, 2, 0x35, 4, 0x33, 0x3C },
+ { 135, 130, 132, 180, 0x00, 17, 23, 20, 184, 177, 180, 184, 177, 180, 15, 6, 0x31, 9, 2, 11, 0x35, 4, 0x33, 1, 7, 0x3C },
{ { 184, 256, -1}, { 1, 57, 113 }, 64, 55,
{ 8, 80, -1 }, { 16, 72, 128 }, { 184, -1, -1 }, { 8, -1, -1 },
{ 40, 112, -1 }, { 16, 32, 72, 88, 128, 144 },
- { 24, 96, -1}, { 51, 107, 163 }, 40, 2, { 248, 248, -1}, { 19, 27, -1 }, 47, 2,
- 16, 39
- }
-
+ { 24, 96, -1}, { 51, 107, 163 }, 40, 2, { 248, 248, -1}, { 19, 27, -1 }, { 47, 47 }, 2,
+ 2, 2, 2, 2, 16, 39
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, { 0, 0, 0 }, 0, 0, 0, 0, 0, { 0, 0, 0 } }
};
const uint8 EoBEngine::_redGridTile[8] = {
@@ -1940,57 +1951,67 @@ void DarkMoonEngine::initSpells() {
const KyraRpgGUISettings DarkMoonEngine::_guiSettingsFMTowns = {
{ _dlgButtonPosX_Def, _dlgButtonPosY_Def, 9, 15, false, 95, 11, 1, 7, { 221, 76 }, { 187, 162 }, { 95, 95 } },
- { 186, 181, 183, 183, 184, 17, 23, 20, 186, 181, 183, 182, 177, 180, 15, 6, 8, 9, 2, 5, 4, 3, 12 },
+ { 186, 181, 183, 183, 184, 17, 23, 20, 186, 181, 183, 182, 177, 180, 15, 6, 8, 9, 2, 11, 5, 4, 3, 1, 7, 12 },
{ { 184, 256, -1}, { 2, 54, 106 }, 64, 50,
{ 8, 80, -1 }, { 11, 63, 115 }, { 181, -1, -1 }, { 3, -1, -1 },
{ 40, 112, -1 }, { 11, 27, 63, 79, 115, 131 },
- { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, 51, 5,
- 13, 30
- }
+ { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, { 51, 51 }, 5,
+ 2, 1, 2, 2, 13, 30
+ },
+ { 183, 42, 183, 55, 7, 183, 82, 183, 103, 7, 275, 82, 275, 103, 7, 183, 124, 275, 124, 239, 138, 251, 145, 0, 7, 278, 138, 286, 145, 0, 7, 180, 145, 0, 7 },
+ { 15, { 12, 12, 12 }, 12, 12, 12, 12, 15, { 15, 15, 15 } }
};
const KyraRpgGUISettings DarkMoonEngine::_guiSettingsPC98 = {
{ _dlgButtonPosX_Def, _dlgButtonPosY_Def, 9, 15, false, 95, 11, 2, 7, { 221, 76 }, { 189, 162 }, { 95, 95 } },
- { 186, 181, 183, 183, 184, 17, 23, 20, 186, 181, 183, 182, 177, 180, 15, 6, 8, 9, 2, 5, 4, 3, 12 },
+ { 186, 181, 183, 183, 184, 17, 23, 20, 186, 181, 183, 182, 177, 180, 15, 6, 8, 9, 2, 11, 5, 4, 3, 1, 7, 12 },
{ { 184, 256, -1}, { 2, 54, 106 }, 64, 50,
{ 8, 80, -1 }, { 11, 63, 115 }, { 181, -1, -1 }, { 3, -1, -1 },
{ 40, 112, -1 }, { 11, 27, 63, 79, 115, 131 },
- { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, 51, 5,
- 13, 30
- }
+ { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, { 51, 51 }, 5,
+ 2, 2, 2, 2, 13, 30
+ },
+ { 183, 42, 183, 55, 7, 183, 82, 183, 103, 7, 275, 82, 275, 103, 7, 183, 124, 275, 124, 239, 138, 251, 145, 0, 7, 278, 138, 286, 145, 0, 7, 180, 145, 0, 7 },
+ { 15, { 12, 12, 12 }, 12, 12, 12, 12, 15, { 15, 15, 15 } }
};
const KyraRpgGUISettings DarkMoonEngine::_guiSettingsDOS = {
{ _dlgButtonPosX_Def, _dlgButtonPosY_Def, 9, 15, false, 95, 9, 2, 7, { 221, 76 }, { 189, 162 }, { 95, 95 } },
- { 186, 181, 183, 183, 184, 17, 23, 20, 186, 181, 183, 182, 177, 180, 15, 6, 8, 9, 2, 5, 4, 3, 12 },
+ { 186, 181, 183, 183, 184, 17, 23, 20, 186, 181, 183, 182, 177, 180, 15, 6, 8, 9, 2, 11, 5, 4, 3, 1, 7, 12 },
{ { 184, 256, -1}, { 2, 54, 106 }, 64, 50,
{ 8, 80, -1 }, { 11, 63, 115 }, { 181, -1, -1 }, { 3, -1, -1 },
{ 40, 112, -1 }, { 11, 27, 63, 79, 115, 131 },
- { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, 51, 5,
- 13, 30
- }
+ { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, { 51, 51 }, 5,
+ 2, 2, 2, 2, 13, 30
+ },
+ { 183, 42, 183, 55, 7, 183, 82, 183, 103, 7, 275, 82, 275, 103, 7, 183, 124, 275, 124, 239, 138, 251, 145, 0, 7, 278, 138, 286, 145, 0, 7, 180, 145, 0, 7 },
+ { 15, { 12, 12, 12 }, 12, 12, 12, 12, 15, { 15, 15, 15 } }
};
const KyraRpgGUISettings DarkMoonEngine::_guiSettingsDOS_ZH = {
{ _dlgButtonPosX_ZH, _dlgButtonPosY_ZH, 9, 15, true, 69, 16, 1, 7, { 246, 86 }, { 184, 184 }, { 69, 69 } },
- { 186, 181, 183, 183, 184, 17, 23, 20, 186, 181, 183, 182, 177, 180, 15, 6, 8, 9, 2, 5, 4, 3, 12 },
+ { 186, 181, 183, 183, 184, 17, 23, 20, 186, 181, 183, 182, 177, 180, 15, 6, 8, 9, 2, 11, 5, 4, 3, 1, 7, 12 },
{ { 184, 256, -1}, { 2, 54, 106 }, 64, 50,
- { 8, 80, -1 }, { 11, 63, 115 }, { 181, -1, -1 }, { 3, -1, -1 },
- { 40, 112, -1 }, { 11, 27, 63, 79, 115, 131 },
- { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, 51, 5,
- 13, 30
- }
+ { 8, 80, -1 }, { 18, 70, 121 }, { 181, -1, -1 }, { 3, -1, -1 },
+ { 40, 112, -1 }, { 17, 33, 69, 85, 120, 137 },
+ { 42, 114, -1}, { 49, 101, 153 }, 25, 2, { 233, 290, -1}, { 25, 25, -1 }, { 30, 23 }, 8,
+ 0, 1, 0, 0, 13, 30
+ },
+ { 180, 37, 180, 36, 16, 180, 100, 261, 100, 15, 219, 104, 300, 104, 15, 180, 84, 236, 88, 254, 51, 270, 67, 0, 7, 287, 51, 301, 67, 0, 7, 180, 148, 38, 0 },
+ { 15, { 4, 5, 6 }, 1, 2, 7, 15, 15, { 4, 5, 6 } }
};
const KyraRpgGUISettings DarkMoonEngine::_guiSettingsAmiga = {
{ _dlgButtonPosX_Def, _dlgButtonPosY_Def, 28, 31, false, 95, 9, 2, 7, { 221, 76 }, { 189, 162 }, { 95, 95 } },
- { 18, 17, 10, 17, 11, 10, 12, 25, 18, 9, 10, 18, 9, 10, 31, 24, 25, 28, 29, 7, 26, 27, 19 },
+ { 18, 17, 10, 17, 11, 10, 12, 25, 18, 9, 10, 18, 9, 10, 31, 24, 25, 28, 29, 16, 7, 26, 27, 6, 22, 19 },
{ { 184, 256, -1}, { 2, 54, 106 }, 64, 50,
{ 8, 80, -1 }, { 11, 63, 115 }, { 181, -1, -1 }, { 3, -1, -1 },
{ 40, 112, -1 }, { 11, 27, 63, 79, 115, 131 },
- { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, 51, 5,
- 13, 30
- }
+ { 23, 95, -1}, { 46, 98, 150 }, 38, 3, { 250, 250, -1}, { 16, 25, -1 }, { 51, 51 }, 5,
+ 2, 2, 2, 2, 13, 30
+ },
+ { 183, 42, 183, 55, 7, 183, 82, 183, 103, 7, 275, 82, 275, 103, 7, 183, 124, 275, 124, 239, 138, 251, 145, 0, 7, 278, 138, 286, 145, 0, 7, 180, 145, 0, 7 },
+ { 31, { 19, 19, 19 }, 19, 19, 19, 19, 31, { 31, 31, 31 } }
};
const uint16 DarkMoonEngine::_dlgButtonPosX_ZH[17] = { 62, 192, 6, 86, 166, 246, 6, 86, 166, 246, 168, 250, 32, 174, 248, 0 };
diff --git a/engines/kyra/resource/staticres_lol.cpp b/engines/kyra/resource/staticres_lol.cpp
index 80e49f4bae0..384ddc3a97e 100644
--- a/engines/kyra/resource/staticres_lol.cpp
+++ b/engines/kyra/resource/staticres_lol.cpp
@@ -806,24 +806,28 @@ const int8 LoLEngine::_mapCoords[12][4] = {
// be the PC-98 16 color version. That said, I have filled all the unused parts of the struct with zeroes.
const KyraRpgGUISettings LoLEngine::_guiSettings = {
{ _dlgButtonPosX_Def, _dlgButtonPosY_Def, 144, 254, false, 74, 9, 2, 80, { 0, 0 }, { 0, 0 }, { 0, 0 } },
- { 136, 251, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 136, 251, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 0, 0, 0 }, { 0, 0, 0 }, 0, 0,
{ 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 },
{ 0, 0, 0 }, { 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0 }, { 0, 0, 0 }, 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, 0, 0,
- 0, 0
- }
+ { 0, 0, 0 }, { 0, 0, 0 }, 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0 }, 0,
+ 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, { 0, 0, 0 }, 0, 0, 0, 0, 0, { 0, 0, 0 } }
};
const KyraRpgGUISettings LoLEngine::_guiSettingsZH = {
{ _dlgButtonPosX_Def, _dlgButtonPosY_Def, 144, 254, false, 68, 18, 2, 66, { 0, 0 }, { 0, 0 }, { 0, 0 } },
- { 136, 251, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 136, 251, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ { 0, 0, 0 }, { 0, 0, 0 }, 0, 0,
{ 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 },
{ 0, 0, 0 }, { 0, 0, 0, 0, 0, 0 },
- { 0, 0, 0 }, { 0, 0, 0 }, 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, 0, 0,
- 0, 0
- }
+ { 0, 0, 0 }, { 0, 0, 0 }, 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0 }, 0,
+ 0, 0, 0, 0, 0, 0
+ },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, { 0, 0, 0 }, 0, 0, 0, 0, 0, { 0, 0, 0 } }
};
const MistOfDoomAnimData LoLEngine::_mistAnimData[] = {
More information about the Scummvm-git-logs
mailing list