[Scummvm-git-logs] scummvm master -> 6336897f2a9bc91ae87bdd4fd3bc07c5bc650b25
a-yyg
76591232+a-yyg at users.noreply.github.com
Mon Jul 19 04:26:52 UTC 2021
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
6336897f2a SAGA2: Fix pointer arithmetic in tile.cpp
Commit: 6336897f2a9bc91ae87bdd4fd3bc07c5bc650b25
https://github.com/scummvm/scummvm/commit/6336897f2a9bc91ae87bdd4fd3bc07c5bc650b25
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-07-19T13:26:16+09:00
Commit Message:
SAGA2: Fix pointer arithmetic in tile.cpp
Changed paths:
engines/saga2/tile.cpp
engines/saga2/tile.h
diff --git a/engines/saga2/tile.cpp b/engines/saga2/tile.cpp
index d1da5f36e7..b00f31b7ae 100644
--- a/engines/saga2/tile.cpp
+++ b/engines/saga2/tile.cpp
@@ -1442,6 +1442,7 @@ void initMaps(void) {
ripTableList[k].metaID = NoMetaTile;
ripTableList[k].ripID = 0;
memset(ripTableList[k].zTable, 0, sizeof(ripTableList[k].zTable));
+ ripTableList[k]._index = k;
}
initPlatformCache();
@@ -2086,8 +2087,7 @@ RipTable *RipTable::ripTableAddress(RipTableID id) {
// Return a rip table's ID
RipTableID RipTable::thisID(void) {
- warning("RipTable::thisID(): Unsafe pointer arithmetics");
- return this - ripTableList;
+ return _index;
}
/* ====================================================================== *
@@ -2699,7 +2699,7 @@ void buildRipTables(void) {
// Null out pointer
mtTable[i] = nullptr;
// Mark the table as unavailable
- tableIndex = mtRipTable - ripTableList;
+ tableIndex = mtRipTable->_index;
tableAvail[tableIndex >> 3] &= ~(1 << (tableIndex & 0x7));
}
}
diff --git a/engines/saga2/tile.h b/engines/saga2/tile.h
index d272ee670b..4105c494f2 100644
--- a/engines/saga2/tile.h
+++ b/engines/saga2/tile.h
@@ -765,13 +765,14 @@ struct RipTable {
MetaTileID metaID;
uint16 ripID;
int16 zTable[kPlatformWidth][kPlatformWidth];
+ int _index;
enum {
kRipTableSize = 25
};
// Constructor
- RipTable(void) : metaID(NoMetaTile), ripID(0) {
+ RipTable(void) : metaID(NoMetaTile), ripID(0), _index(-1) {
for (int i = 0; i < kPlatformWidth; i++)
for (int j = 0; j < kPlatformWidth; j++)
zTable[i][j] = 0;
More information about the Scummvm-git-logs
mailing list