[Scummvm-git-logs] scummvm master -> d2e156e9595cb5b4366291586db34265558d5a2a
athrxx
noreply at scummvm.org
Tue Sep 1 13:56:41 UTC 2026
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
b9868d360b KYRA: (EOB) - fix minor glitch
bcbc63ed5e KYRA: (EOB automap feature) - improve drawing
d2e156e959 KYRA: (EOBII/PC98) - fix dialog overdraw glitch
Commit: b9868d360b89a2299902cfefb9690a8b444303d4
https://github.com/scummvm/scummvm/commit/b9868d360b89a2299902cfefb9690a8b444303d4
Author: athrxx (athrxx at scummvm.org)
Date: 2026-09-01T15:53:57+02:00
Commit Message:
KYRA: (EOB) - fix minor glitch
(unneeded gfx refresh on copy protection screen)
Changed paths:
engines/kyra/script/script_eob.cpp
diff --git a/engines/kyra/script/script_eob.cpp b/engines/kyra/script/script_eob.cpp
index df8a641cd04..c36f8d05c94 100644
--- a/engines/kyra/script/script_eob.cpp
+++ b/engines/kyra/script/script_eob.cpp
@@ -1494,12 +1494,12 @@ int EoBInfProcessor::oeob_identifyItems(int8 *data) {
int EoBInfProcessor::oeob_sequence(int8 *data) {
int8 *pos = data;
+ int cmd = *pos++;
_vm->_npcSequenceSub = -1;
_vm->txt()->setWaitButtonMode(0);
_vm->gui_updateControls();
- _vm->drawScene(1);
+ _vm->drawScene(cmd != -1 ? 1 : 0);
- int cmd = *pos++;
if (_vm->game() == GI_EOB1) {
if (cmd == 10)
Commit: bcbc63ed5e3cb8cbfd590401085777e70491a978
https://github.com/scummvm/scummvm/commit/bcbc63ed5e3cb8cbfd590401085777e70491a978
Author: athrxx (athrxx at scummvm.org)
Date: 2026-09-01T15:54:03+02:00
Commit Message:
KYRA: (EOB automap feature) - improve drawing
- add exit key to legend
- fix wall of force drawing
Changed paths:
engines/kyra/gui/automap_eob.cpp
engines/kyra/gui/automap_eob.h
diff --git a/engines/kyra/gui/automap_eob.cpp b/engines/kyra/gui/automap_eob.cpp
index e06101beb5b..b8a10cfd1c2 100644
--- a/engines/kyra/gui/automap_eob.cpp
+++ b/engines/kyra/gui/automap_eob.cpp
@@ -173,9 +173,9 @@ const Automap_EoB::TranslateableStrings Automap_EoB::_stringTable[] = {
},
{
- "- KEYS -",
- "Select Level",
- "Exit"
+ "- KEYS -", "",
+ "Up/Down", "Select Level",
+ "Esc/Tab", "Exit"
},
// Area names for the plaque. The games have no level names in their data and the file
@@ -274,7 +274,7 @@ Automap_EoB::Automap_EoB(OSystem *system, LevelBlockProperty **blockData, const
const uint8 stairsDown = 24;
const uint8 types[] = { teleporter, illusion1, illusion2, stairsUp, stairsDown, pit, plate1, plate2 };
static const uint8 eob1PortalParams[] = { 2, 4, 46, 5, 43, 6, 45, 7, 40, 7, 41, 7, 43, 7, 44, 7, 46, 9, 43, 10, 39, 11, 37, 11, 36, 12, 37 };
- static const uint8 eob2PortalParams[] = { 7, 3, 54, 6, 54 };
+ static const uint8 eob2PortalParams[] = { 7, 3, 54, 6, 54, 14, 69 };
uint8 *specialBlockIDs = new uint8[ARRAYSIZE(types)]();
memcpy(specialBlockIDs, types, sizeof(types));
@@ -327,12 +327,12 @@ void Automap_EoB::markSeen(uint16 block, int8 dir) {
bool breakableFromHere = ((breakAbleObject == kBreakableBlockObject && (_specialWallTypes[wn] == 8 || _specialWallTypes[wn] == 9)) ||
(!(d & 1) && breakAbleObject == kBreakableBarrierNS) || ((d & 1) && breakAbleObject == kBreakableBarrierEW));
- if ((!(_wllWallFlags[wn] & 9) && breakAbleObject == kNoBreakableObject) || _blockData[b].flags & 7)
+ if ((!(_wllWallFlags[wn] & 9) && breakAbleObject == kNoBreakableObject && wn != _wallOfForceID) || _blockData[b].flags & 7)
break;
b = nb;
if (reveal)
_blockData[b].direction |= 1;
- if ((_wllWallFlags[wn] & 9) == 8 || breakableFromHere)
+ if ((_wllWallFlags[wn] & 9) == 8 || breakableFromHere || wn == _wallOfForceID)
break;
}
}
@@ -897,12 +897,20 @@ void Automap_EoB::drawLegend(const AutomapLayout &l, uint flags) {
bg.hLine(lx, cyy + 1, lx + colW - 1, _colors[kColorStoneEdge]);
cyy += MAX(6, sc * 4);
const int chipPad = MAX(2, sc * 2);
- const int chipW = (bigFont ? bigFont->getStringWidth("Up/Down") * sc : 6 * sc) + chipPad * 2; // TODO: Use actual up/down arrow symbols. Our font doesn't have these.
const int chipH = fh * sc + chipPad;
- bg.fillRect(Common::Rect(lx, cyy, lx + chipW, cyy + chipH), _colors[kColorPlaqueEd]);
- bg.fillRect(Common::Rect(lx + 1, cyy + 1, lx + chipW - 1, cyy + chipH - 1), _colors[kColorPlaqueBg]);
- automapDrawBigString(bg, bigFont, "Up/Down", lx, cyy + chipPad / 2, chipW, _colors[kColorGold], sc); // TODO: see above
- automapDrawBigString(bg, bigFont, _controlStrings[1], lx + chipW + MAX(4, sc * 3), cyy + (chipH - fh * sc) / 2, colW - chipW - MAX(4, sc * 3), _colors[kColorPanelTxt], sc, Graphics::kTextAlignLeft);
+
+ int maxW = 0;
+ for (int i = 2; i < ARRAYSIZE(_stringTable[0].controlStrings); i += 2)
+ maxW = MAX<int>(maxW, (bigFont ? bigFont->getStringWidth(_controlStrings[i]) * sc : 6 * sc) + chipPad * 2);
+
+ for (int i = 2; i < ARRAYSIZE(_stringTable[0].controlStrings); i += 2) {
+ int chipW = (bigFont ? bigFont->getStringWidth(_controlStrings[i]) * sc : 6 * sc) + chipPad * 2;
+ bg.fillRect(Common::Rect(lx, cyy, lx + chipW, cyy + chipH), _colors[kColorPlaqueEd]);
+ bg.fillRect(Common::Rect(lx + 1, cyy + 1, lx + chipW - 1, cyy + chipH - 1), _colors[kColorPlaqueBg]);
+ automapDrawBigString(bg, bigFont, _controlStrings[i], lx, cyy + chipPad / 2, chipW, _colors[kColorGold], sc);
+ automapDrawBigString(bg, bigFont, _controlStrings[i + 1], lx + maxW + MAX(4, sc * 3), cyy + (chipH - fh * sc) / 2, colW - maxW - MAX(4, sc * 3), _colors[kColorPanelTxt], sc, Graphics::kTextAlignLeft);
+ cyy += fh * sc + MAX(4, sc * 3);
+ }
}
uint16 Automap_EoB::calcNewBlockPosition(uint16 block, int8 dir) const {
diff --git a/engines/kyra/gui/automap_eob.h b/engines/kyra/gui/automap_eob.h
index 7b095396a15..30283d39dcb 100644
--- a/engines/kyra/gui/automap_eob.h
+++ b/engines/kyra/gui/automap_eob.h
@@ -66,7 +66,7 @@ private:
struct TranslateableStrings {
const char *const legendStrings[15];
- const char *const controlStrings[3];
+ const char *const controlStrings[6];
const char *const levelNames[2][16];
};
Commit: d2e156e9595cb5b4366291586db34265558d5a2a
https://github.com/scummvm/scummvm/commit/d2e156e9595cb5b4366291586db34265558d5a2a
Author: athrxx (athrxx at scummvm.org)
Date: 2026-09-01T15:54:05+02:00
Commit Message:
KYRA: (EOBII/PC98) - fix dialog overdraw 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 317236966c4..e97ec3b8776 100644
--- a/engines/kyra/text/text_rpg.cpp
+++ b/engines/kyra/text/text_rpg.cpp
@@ -811,6 +811,9 @@ void TextDisplayer_rpg::displayWaitButton() {
_screen->set16bitShadingLevel(4);
_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);
+ // Fix border overdraw glitch
+ if (_vm->game() == GI_EOB2 && (_isChinese || _vm->gameFlags().platform == Common::kPlatformPC98) && _vm->_dialogueButtonPosY[0] + _vm->guiSettings()->buttons.height == 200)
+ _screen->drawClippedLine(_vm->_dialogueButtonPosX[0], 199, _vm->_dialogueButtonPosX[0] + _vm->_dialogueButtonWidth - 1, 199, _vm->guiSettings()->colors.frame1);
clearCurDim();
_screen->set16bitShadingLevel(0);
_screen->updateScreen();
More information about the Scummvm-git-logs
mailing list