[Scummvm-git-logs] scummvm master -> 0accaa18f45b9c39215b10da3149f3ef1139e1ce
athrxx
noreply at scummvm.org
Tue Sep 8 12:31:22 UTC 2026
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
51f42605b6 KYRA: (EOB automap feature) - minor drawing fix for portals
0accaa18f4 KYRA: (EOB) - fix possible invalid mem access
Commit: 51f42605b6cd61be2452a8d505149bb4f5590e0a
https://github.com/scummvm/scummvm/commit/51f42605b6cd61be2452a8d505149bb4f5590e0a
Author: athrxx (athrxx at scummvm.org)
Date: 2026-09-08T14:29:32+02:00
Commit Message:
KYRA: (EOB automap feature) - minor drawing fix for portals
- Add missing identification data for one portal.
- There is an exit-only portal in level 8. It is basically dysfunctional,
since there are no script functions attached to it. We still want to
draw it, although we normally avoid that for other objects.
Changed paths:
engines/kyra/gui/automap_eob.cpp
diff --git a/engines/kyra/gui/automap_eob.cpp b/engines/kyra/gui/automap_eob.cpp
index 9d6a16e0752..74468496e9a 100644
--- a/engines/kyra/gui/automap_eob.cpp
+++ b/engines/kyra/gui/automap_eob.cpp
@@ -274,7 +274,7 @@ Automap_EoB::Automap_EoB(OSystem *system, LevelBlockProperty **blockData, const
const uint8 stairsUp = 23;
const uint8 stairsDown = 24;
const uint8 types[] = { teleporter, illusion1, illusion2, illusion3, 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 eob1PortalParams[] = { 2, 4, 46, 5, 43, 6, 45, 7, 40, 7, 41, 7, 43, 7, 44, 7, 46, 8, 45, 9, 43, 10, 39, 11, 37, 11, 36, 12, 37 };
static const uint8 eob2PortalParams[] = { 7, 3, 54, 6, 54, 14, 69 };
uint8 *specialBlockIDs = new uint8[ARRAYSIZE(types)]();
@@ -483,6 +483,14 @@ void Automap_EoB::draw(int level, uint16 partyBlock, int8 partyDirection) {
if (st == 0 || st == 5 || st == 6 || st == 0xFF)
continue;
+ // Check if it is a stone portal.
+ if (st == _portalParams[0]) {
+ for (int i = 1; i < _portalParamsLen && st != 20; i += 2) {
+ if (level == _portalParams[i] && wn == _portalParams[i + 1])
+ st = 20;
+ }
+ }
+
// For EOBI, there are cases where a wall has a clickable shape type, but there is no script
// function assigned to it or there isn't even a clickable shape. We don't want to draw these
// "fake" triggers.
@@ -505,14 +513,6 @@ void Automap_EoB::draw(int level, uint16 partyBlock, int8 partyDirection) {
if (isCenteredSwitch(nb))
continue;
- // Check if it is a stone portal.
- if (st == _portalParams[0]) {
- for (int i = 1; i < _portalParamsLen && st != 20; i += 2) {
- if (level == _portalParams[i] && wn == _portalParams[i + 1])
- st = 20;
- }
- }
-
uint32 pcol = _colors[(st == 10) ? kColorNiche : (st == 1 || st == 3 || st == 4) ? kColorLever : (st == 20 ? kColorTele : kColorInteractive)];
uint flag = (st == 10) ? 0x1000 : (st == 1 || st == 3 || st == 4) ? 0x400 : (st == 20 ? 0x2000 : 0x800);
int plen = MAX(2, cell * 2 / (st < 10 ? 8 : st == 10 ? 6 : 3));
Commit: 0accaa18f45b9c39215b10da3149f3ef1139e1ce
https://github.com/scummvm/scummvm/commit/0accaa18f45b9c39215b10da3149f3ef1139e1ce
Author: athrxx (athrxx at scummvm.org)
Date: 2026-09-08T14:29:51+02:00
Commit Message:
KYRA: (EOB) - fix possible invalid mem access
(signed/unsigned mismatch)
Changed paths:
engines/kyra/engine/eobcommon.h
engines/kyra/resource/staticres_eob.cpp
diff --git a/engines/kyra/engine/eobcommon.h b/engines/kyra/engine/eobcommon.h
index 4e05751488b..2c2095ce8c8 100644
--- a/engines/kyra/engine/eobcommon.h
+++ b/engines/kyra/engine/eobcommon.h
@@ -705,7 +705,7 @@ protected:
const uint8 *_dscItemPosIndex;
const int16 *_dscItemShpX;
const uint8 *_dscItemScaleIndex;
- const uint8 *_dscItemTileIndex;
+ const int8 *_dscItemTileIndex;
const uint8 *_dscItemShapeMap;
const uint8 *_dscDoorScaleMult1;
diff --git a/engines/kyra/resource/staticres_eob.cpp b/engines/kyra/resource/staticres_eob.cpp
index 198448d8ad6..c85b284c104 100644
--- a/engines/kyra/resource/staticres_eob.cpp
+++ b/engines/kyra/resource/staticres_eob.cpp
@@ -452,7 +452,7 @@ void EoBCoreEngine::initStaticResource() {
_dscItemPosIndex = _staticres->loadRawData(kEoBBaseDscItemPosIndex, temp);
_dscItemShpX = (const int16 *)_staticres->loadRawDataBe16(kEoBBaseDscItemShpX, temp);
_dscItemScaleIndex = _staticres->loadRawData(kEoBBaseDscItemScaleIndex, temp);
- _dscItemTileIndex = _staticres->loadRawData(kEoBBaseDscItemTileIndex, temp);
+ _dscItemTileIndex = (const int8 *)_staticres->loadRawData(kEoBBaseDscItemTileIndex, temp);
_dscItemShapeMap = _staticres->loadRawData(kEoBBaseDscItemShapeMap, temp);
_bookNumbers = _staticres->loadStrings(kEoBBaseBookNumbers, temp);
More information about the Scummvm-git-logs
mailing list