[Scummvm-git-logs] scummvm master -> ab0b2f81802c6fc33a47b3fafc310bd86e16c504
kelmer44
noreply at scummvm.org
Thu Oct 2 16:56:32 UTC 2025
This automated email contains information about 8 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
88dd25a2a2 TOT: Remove unnecessary debug line with useless bolean. PSV-Studio: V547
6752bac832 TOT: Rework exit mechanism. PVS-Studio: V774, V586
16a57f6cf4 TOT: Fix usage of double quotes instead of simple. PVS-Studio: V653
75958238e3 TOT: Fix update of alternate screen. PVS-Studio: V595
fc0abd0613 TOT: Amend overlapping ranges in animation depth. PVS-Studio: V695
d8d6ee5acf TOT: Remove redundant initializers. PVS-Studio V519
1ca443afe2 TOT: Fix inventory loop indexing. PVS-Studio V557
ab0b2f8180 TOT: Properly free text pointer. PVS-Studio V773
Commit: 88dd25a2a24fa65d4739a2d9d5525e77d2842797
https://github.com/scummvm/scummvm/commit/88dd25a2a24fa65d4739a2d9d5525e77d2842797
Author: kelmer (kelmer at gmail.com)
Date: 2025-10-02T18:56:14+02:00
Commit Message:
TOT: Remove unnecessary debug line with useless bolean. PSV-Studio: V547
Changed paths:
engines/tot/engine.cpp
diff --git a/engines/tot/engine.cpp b/engines/tot/engine.cpp
index 34e673194ca..5dc20ad6c24 100644
--- a/engines/tot/engine.cpp
+++ b/engines/tot/engine.cpp
@@ -246,11 +246,6 @@ static void overlayLayers() {
void drawMainCharacter() {
- bool debug = false;
- if (debug) {
- g_engine->_graphics->sceneTransition(false, g_engine->_sceneBackground, 13);
- }
-
uint16 tempW;
uint16 tempH;
tempW = READ_LE_UINT16(g_engine->_curCharacterAnimationFrame);
@@ -274,11 +269,6 @@ void drawMainCharacter() {
g_engine->_graphics->putImg(g_engine->_dirtyMainSpriteX, g_engine->_dirtyMainSpriteY, g_engine->_characterDirtyRect);
- if (debug) {
- // draw background dirty area
- drawRect(2, g_engine->_dirtyMainSpriteX, g_engine->_dirtyMainSpriteY, g_engine->_dirtyMainSpriteX + tempW, g_engine->_dirtyMainSpriteY + tempH);
- drawPos(g_engine->_xframe2, g_engine->_yframe2, 218);
- }
free(g_engine->_characterDirtyRect);
}
@@ -1014,7 +1004,7 @@ void TotEngine::goToObject(byte zone1, byte zone2) {
if ((zone2 >= 1 && zone2 <= 5) ||
(zone2 >= 9 && zone2 <= 13) ||
(zone2 >= 18 && zone2 <= 21) ||
- zone2 == 24 || zone2 == 25) {
+ zone2 == 25) {
_targetZone = 7;
_mouse->mouseClickX = 232;
@@ -1023,6 +1013,10 @@ void TotEngine::goToObject(byte zone1, byte zone2) {
}
if (zone2 == 24) {
barredZone = false;
+ _targetZone = 7;
+ _mouse->mouseClickX = 232;
+ _mouse->mouseClickY = 75;
+ zone2 = 7;
}
}
if (zone1 < 10) {
Commit: 6752bac832823f7cfd49eb64583d0e52068a47a1
https://github.com/scummvm/scummvm/commit/6752bac832823f7cfd49eb64583d0e52068a47a1
Author: kelmer (kelmer at gmail.com)
Date: 2025-10-02T18:56:14+02:00
Commit Message:
TOT: Rework exit mechanism. PVS-Studio: V774, V586
Changed paths:
engines/tot/tot.cpp
diff --git a/engines/tot/tot.cpp b/engines/tot/tot.cpp
index c5fcef1ef50..f8dfa18f83d 100644
--- a/engines/tot/tot.cpp
+++ b/engines/tot/tot.cpp
@@ -141,7 +141,6 @@ int TotEngine::engineStart() {
} else if (_continueGame && !shouldQuit()) {
resumeGame();
}
-
return startGame();
}
@@ -401,6 +400,9 @@ void TotEngine::processEvents(bool &escapePressed) {
}
int TotEngine::startGame() {
+ if(shouldQuit()) {
+ return 0;
+ }
_sound->fadeOutMusic();
switch (_gamePart) {
case 1:
@@ -1272,7 +1274,7 @@ void TotEngine::mainMenu(bool fade) {
void exitGame() {
g_engine->_graphics->clear();
- g_system->quit();
+ g_engine->quitGame();
}
void TotEngine::clearGame() {
@@ -1309,25 +1311,20 @@ void TotEngine::exitToDOS() {
if (_events->_escKeyFl) {
exitChar = '\33';
} else if (_events->_gameKey == KEY_YES) {
- debug("would exit game now");
- free(dialogBackground);
exitGame();
} else if (_events->_gameKey == KEY_NO) {
exitChar = '\33';
}
-
- if (_events->_leftMouseButton) {
+ else if (_events->_leftMouseButton) {
uint x = g_engine->_mouse->mouseClickX;
if (x < 145) {
- free(dialogBackground);
- g_system->quit();
+ exitGame();
} else if (x > 160) {
exitChar = '\33';
}
}
_screen->update();
} while (exitChar != '\33' && !shouldQuit());
- debug("finished exitToDos");
_graphics->putImg(58, 48, dialogBackground);
_mouse->mouseX = oldMousePosX;
_mouse->mouseY = oldMousePosY;
Commit: 16a57f6cf46748c68729f9aafd6e1c4d5e879e41
https://github.com/scummvm/scummvm/commit/16a57f6cf46748c68729f9aafd6e1c4d5e879e41
Author: kelmer (kelmer at gmail.com)
Date: 2025-10-02T18:56:15+02:00
Commit Message:
TOT: Fix usage of double quotes instead of simple. PVS-Studio: V653
Changed paths:
engines/tot/statics.h
diff --git a/engines/tot/statics.h b/engines/tot/statics.h
index 86dd3960123..9430b21c8e4 100644
--- a/engines/tot/statics.h
+++ b/engines/tot/statics.h
@@ -788,7 +788,7 @@ static const char *const fullScreenMessages[2][59] = {
" If you fail... ETERNAL DEATH!!!",
// 43
" You did it!",
- " I""M FREEEEEEEEEEE!!!",
+ " I'M FREEEEEEEEEEE!!!",
// WC
// 45
"... MMPFFFF!! ...",
@@ -1136,10 +1136,10 @@ static const char *const hardcodedTexts_EN[] = {
"LIGHT BULB",
"NICHE",
"DIVINE STATUE",
- "POTTER""S HANDBOOK",
+ "POTTER'S HANDBOOK",
"GROTESQUE STATUE",
"WALL",
- "POTTER""S WHEEL",
+ "POTTER'S WHEEL",
"FREE",
"AVAILABLE",
"Search in row %d and column %d"
Commit: 75958238e30d42493fad70ee1ca482274a654f5f
https://github.com/scummvm/scummvm/commit/75958238e30d42493fad70ee1ca482274a654f5f
Author: kelmer (kelmer at gmail.com)
Date: 2025-10-02T18:56:15+02:00
Commit Message:
TOT: Fix update of alternate screen. PVS-Studio: V595
To always check for null pointer.
Changed paths:
engines/tot/engine.cpp
diff --git a/engines/tot/engine.cpp b/engines/tot/engine.cpp
index 5dc20ad6c24..820029dd459 100644
--- a/engines/tot/engine.cpp
+++ b/engines/tot/engine.cpp
@@ -4147,100 +4147,100 @@ void TotEngine::updateAltScreen(byte otherScreenNumber) {
uint i22;
uint i11;
- byte currentScreen = _currentRoomData->code;
+ if (_currentRoomData) {
+ byte currentScreen = _currentRoomData->code;
- setRoomTrajectories(_secondaryAnimHeight, _secondaryAnimWidth, RESTORE);
+ setRoomTrajectories(_secondaryAnimHeight, _secondaryAnimWidth, RESTORE);
- // Save current room
- saveRoomData(_currentRoomData, _rooms);
+ // Save current room
+ saveRoomData(_currentRoomData, _rooms);
- // Load other screen
- _rooms->seek(otherScreenNumber * kRoomRegSize, SEEK_SET);
- if (_currentRoomData) {
+ // Load other screen
+ _rooms->seek(otherScreenNumber * kRoomRegSize, SEEK_SET);
delete _currentRoomData;
- }
- _currentRoomData = readScreenDataFile(_rooms);
+ _currentRoomData = readScreenDataFile(_rooms);
- switch (otherScreenNumber) {
- case 20: {
- switch (_niche[0][_niche[0][3]]) {
- case 0: {
- _currentRoomData->screenObjectIndex[9]->objectName = getObjectName(4);
- _currentRoomData->screenLayers[1].bitmapPointer = 1190768;
- } break;
- case 561: {
- _currentRoomData->screenObjectIndex[9]->objectName = getObjectName(5);
- _currentRoomData->screenLayers[1].bitmapPointer = 1182652;
- } break;
- case 563: {
- _currentRoomData->screenObjectIndex[9]->objectName = getObjectName(6);
- _currentRoomData->screenLayers[1].bitmapPointer = 1186044;
- } break;
- case 615: {
- _currentRoomData->screenObjectIndex[9]->objectName = getObjectName(7);
- _currentRoomData->screenLayers[1].bitmapPointer = 1181760;
- } break;
- }
- _currentRoomData->screenLayers[1].bitmapSize = 892;
- _currentRoomData->screenLayers[1].coordx = 66;
- _currentRoomData->screenLayers[1].coordy = 35;
- _currentRoomData->screenLayers[1].depth = 1;
- } break;
- case 24: {
- switch (_niche[1][_niche[1][3]]) {
- case 0: {
- _currentRoomData->screenObjectIndex[8]->objectName = getObjectName(4);
- _currentRoomData->screenLayers[0].bitmapPointer = 1399610;
- } break;
- case 561: {
- _currentRoomData->screenObjectIndex[8]->objectName = getObjectName(5);
- _currentRoomData->screenLayers[0].bitmapPointer = 1381982;
- } break;
- case 615: {
- _currentRoomData->screenObjectIndex[8]->objectName = getObjectName(7);
- _currentRoomData->screenLayers[0].bitmapPointer = 1381090;
+ switch (otherScreenNumber) {
+ case 20: {
+ switch (_niche[0][_niche[0][3]]) {
+ case 0: {
+ _currentRoomData->screenObjectIndex[9]->objectName = getObjectName(4);
+ _currentRoomData->screenLayers[1].bitmapPointer = 1190768;
+ } break;
+ case 561: {
+ _currentRoomData->screenObjectIndex[9]->objectName = getObjectName(5);
+ _currentRoomData->screenLayers[1].bitmapPointer = 1182652;
+ } break;
+ case 563: {
+ _currentRoomData->screenObjectIndex[9]->objectName = getObjectName(6);
+ _currentRoomData->screenLayers[1].bitmapPointer = 1186044;
+ } break;
+ case 615: {
+ _currentRoomData->screenObjectIndex[9]->objectName = getObjectName(7);
+ _currentRoomData->screenLayers[1].bitmapPointer = 1181760;
+ } break;
+ }
+ _currentRoomData->screenLayers[1].bitmapSize = 892;
+ _currentRoomData->screenLayers[1].coordx = 66;
+ _currentRoomData->screenLayers[1].coordy = 35;
+ _currentRoomData->screenLayers[1].depth = 1;
} break;
- case 622: {
- _currentRoomData->screenObjectIndex[8]->objectName = getObjectName(8);
- _currentRoomData->screenLayers[0].bitmapPointer = 1400502;
+ case 24: {
+ switch (_niche[1][_niche[1][3]]) {
+ case 0: {
+ _currentRoomData->screenObjectIndex[8]->objectName = getObjectName(4);
+ _currentRoomData->screenLayers[0].bitmapPointer = 1399610;
+ } break;
+ case 561: {
+ _currentRoomData->screenObjectIndex[8]->objectName = getObjectName(5);
+ _currentRoomData->screenLayers[0].bitmapPointer = 1381982;
+ } break;
+ case 615: {
+ _currentRoomData->screenObjectIndex[8]->objectName = getObjectName(7);
+ _currentRoomData->screenLayers[0].bitmapPointer = 1381090;
+ } break;
+ case 622: {
+ _currentRoomData->screenObjectIndex[8]->objectName = getObjectName(8);
+ _currentRoomData->screenLayers[0].bitmapPointer = 1400502;
+ } break;
+ case 623: {
+ _currentRoomData->screenObjectIndex[8]->objectName = getObjectName(9);
+ _currentRoomData->screenLayers[0].bitmapPointer = 1398718;
+ } break;
+ }
+ _currentRoomData->screenLayers[0].bitmapSize = 892;
+ _currentRoomData->screenLayers[0].coordx = 217;
+ _currentRoomData->screenLayers[0].coordy = 48;
+ _currentRoomData->screenLayers[0].depth = 1;
} break;
- case 623: {
- _currentRoomData->screenObjectIndex[8]->objectName = getObjectName(9);
- _currentRoomData->screenLayers[0].bitmapPointer = 1398718;
+ case 31: {
+ for (i11 = 23; i11 <= 25; i11++)
+ for (i22 = 4; i22 <= 9; i22++)
+ _currentRoomData->mouseGrid[i11][i22] = 4;
+ for (i11 = 23; i11 <= 25; i11++)
+ for (i22 = 10; i22 <= 11; i22++)
+ _currentRoomData->mouseGrid[i11][i22] = 3;
+
+ _currentRoomData->screenLayers[0].bitmapSize = 0;
+ _currentRoomData->screenLayers[0].bitmapPointer = 0;
+ _currentRoomData->screenLayers[0].coordx = 0;
+ _currentRoomData->screenLayers[0].coordy = 0;
+ _currentRoomData->screenLayers[0].depth = 0;
} break;
}
- _currentRoomData->screenLayers[0].bitmapSize = 892;
- _currentRoomData->screenLayers[0].coordx = 217;
- _currentRoomData->screenLayers[0].coordy = 48;
- _currentRoomData->screenLayers[0].depth = 1;
- } break;
- case 31: {
- for (i11 = 23; i11 <= 25; i11++)
- for (i22 = 4; i22 <= 9; i22++)
- _currentRoomData->mouseGrid[i11][i22] = 4;
- for (i11 = 23; i11 <= 25; i11++)
- for (i22 = 10; i22 <= 11; i22++)
- _currentRoomData->mouseGrid[i11][i22] = 3;
-
- _currentRoomData->screenLayers[0].bitmapSize = 0;
- _currentRoomData->screenLayers[0].bitmapPointer = 0;
- _currentRoomData->screenLayers[0].coordx = 0;
- _currentRoomData->screenLayers[0].coordy = 0;
- _currentRoomData->screenLayers[0].depth = 0;
- } break;
- }
- // Save other screen
- saveRoomData(_currentRoomData, _rooms);
+ // Save other screen
+ saveRoomData(_currentRoomData, _rooms);
- // Restore current room again
- _rooms->seek(currentScreen * kRoomRegSize, SEEK_SET);
- if (_currentRoomData) {
- delete _currentRoomData;
- }
- _currentRoomData = readScreenDataFile(_rooms);
+ // Restore current room again
+ _rooms->seek(currentScreen * kRoomRegSize, SEEK_SET);
+ if (_currentRoomData) {
+ delete _currentRoomData;
+ }
+ _currentRoomData = readScreenDataFile(_rooms);
- setRoomTrajectories(_secondaryAnimHeight, _secondaryAnimWidth, SET_WITH_ANIM);
+ setRoomTrajectories(_secondaryAnimHeight, _secondaryAnimWidth, SET_WITH_ANIM);
+ }
}
void TotEngine::loadTV() {
Commit: fc0abd06131f46c4c60d8ba5428ac27bfa9f1574
https://github.com/scummvm/scummvm/commit/fc0abd06131f46c4c60d8ba5428ac27bfa9f1574
Author: kelmer (kelmer at gmail.com)
Date: 2025-10-02T18:56:15+02:00
Commit Message:
TOT: Amend overlapping ranges in animation depth. PVS-Studio: V695
Changed paths:
engines/tot/engine.cpp
diff --git a/engines/tot/engine.cpp b/engines/tot/engine.cpp
index 820029dd459..5597d8f49b4 100644
--- a/engines/tot/engine.cpp
+++ b/engines/tot/engine.cpp
@@ -1044,21 +1044,21 @@ void TotEngine::updateSecondaryAnimationDepth() {
uint animationPos = _secondaryAnimation.posy + _secondaryAnimHeight - 1;
if (animationPos && animationPos <= 56) {
_secondaryAnimation.depth = 0;
- } else if (animationPos >= 57 && animationPos <= 66) {
+ } else if (animationPos >= 57 && animationPos <= 64) {
_secondaryAnimation.depth = 1;
- } else if (animationPos >= 65 && animationPos <= 74) {
+ } else if (animationPos >= 65 && animationPos <= 72) {
_secondaryAnimation.depth = 2;
- } else if (animationPos >= 73 && animationPos <= 82) {
+ } else if (animationPos >= 73 && animationPos <= 80) {
_secondaryAnimation.depth = 3;
- } else if (animationPos >= 81 && animationPos <= 90) {
+ } else if (animationPos >= 81 && animationPos <= 88) {
_secondaryAnimation.depth = 4;
- } else if (animationPos >= 89 && animationPos <= 98) {
+ } else if (animationPos >= 89 && animationPos <= 96) {
_secondaryAnimation.depth = 5;
- } else if (animationPos >= 97 && animationPos <= 106) {
+ } else if (animationPos >= 97 && animationPos <= 104) {
_secondaryAnimation.depth = 6;
- } else if (animationPos >= 105 && animationPos <= 114) {
+ } else if (animationPos >= 105 && animationPos <= 112) {
_secondaryAnimation.depth = 7;
- } else if (animationPos >= 113 && animationPos <= 122) {
+ } else if (animationPos >= 113 && animationPos <= 120) {
_secondaryAnimation.depth = 8;
} else if (animationPos >= 121 && animationPos <= 140) {
_secondaryAnimation.depth = 9;
Commit: d8d6ee5acff870c4f048cddadc9addc21fe75c1e
https://github.com/scummvm/scummvm/commit/d8d6ee5acff870c4f048cddadc9addc21fe75c1e
Author: kelmer (kelmer at gmail.com)
Date: 2025-10-02T18:56:15+02:00
Commit Message:
TOT: Remove redundant initializers. PVS-Studio V519
In copy protection it was done to conceal real data from reverse engineering.
Changed paths:
engines/tot/engine.cpp
engines/tot/forest.cpp
diff --git a/engines/tot/engine.cpp b/engines/tot/engine.cpp
index 5597d8f49b4..779adbadf5d 100644
--- a/engines/tot/engine.cpp
+++ b/engines/tot/engine.cpp
@@ -5002,9 +5002,7 @@ void TotEngine::copyProtection() {
byte numColumn = getRandom(38) + 1;
protectionFile.seek(1 * chunkSize);
- protXor1 = 6543736;
protXor1 = protectionFile.readUint32LE();
- protXor2 = 9873254;
protectionFile.seek((((numRow - 1) * 38) + numColumn + 1) * chunkSize);
protXor2 = protectionFile.readUint32LE();
inputPassword = 0;
diff --git a/engines/tot/forest.cpp b/engines/tot/forest.cpp
index eefd0bf1384..f1aaf605ed0 100644
--- a/engines/tot/forest.cpp
+++ b/engines/tot/forest.cpp
@@ -149,8 +149,6 @@ void readTree(Common::SeekableReadStream &stream, Tree &a, uint position) {
do {
tmpExpression = tmpExpression + expresion[pos];
} while (expresion[pos++] != '@');
- data.spoken = '0';
- data.index = 0;
int nIndex = tmpExpression.find('N');
strInd = tmpExpression.substr(0, nIndex - 1);
@@ -158,7 +156,6 @@ void readTree(Common::SeekableReadStream &stream, Tree &a, uint position) {
data.spoken = tmpExpression[nIndex - 1];
data.index = atoi(strInd.c_str());
- levelAsString = "";
levelAsString = tmpExpression.substr(nIndex + 1, tmpExpression.size() - nIndex - 2);
level = atoi(levelAsString.c_str());
Commit: 1ca443afe2092bf5415f864fc5117f51e4df7812
https://github.com/scummvm/scummvm/commit/1ca443afe2092bf5415f864fc5117f51e4df7812
Author: kelmer (kelmer at gmail.com)
Date: 2025-10-02T18:56:16+02:00
Commit Message:
TOT: Fix inventory loop indexing. PVS-Studio V557
The wrong condition could overflow the array
Changed paths:
engines/tot/engine.cpp
diff --git a/engines/tot/engine.cpp b/engines/tot/engine.cpp
index 779adbadf5d..2cf8ef3ae72 100644
--- a/engines/tot/engine.cpp
+++ b/engines/tot/engine.cpp
@@ -2067,7 +2067,7 @@ void TotEngine::useScreenObject() {
if (verifyList) {
int completedListItems = 0;
for (listIndex = 0; listIndex < 5; listIndex++) {
- for (invIndex = 0; invIndex <= kInventoryIconCount; invIndex++) {
+ for (invIndex = 0; invIndex < kInventoryIconCount; invIndex++) {
if (_inventory[invIndex].code == _secondList[listIndex]) {
completedListItems += 1;
break;
Commit: ab0b2f81802c6fc33a47b3fafc310bd86e16c504
https://github.com/scummvm/scummvm/commit/ab0b2f81802c6fc33a47b3fafc310bd86e16c504
Author: kelmer (kelmer at gmail.com)
Date: 2025-10-02T18:56:16+02:00
Commit Message:
TOT: Properly free text pointer. PVS-Studio V773
Free the pointer upon destructing the Graphics Manager, as it is a member of that class.
Changed paths:
engines/tot/anims.cpp
engines/tot/anims.h
engines/tot/graphics.cpp
engines/tot/tot.cpp
diff --git a/engines/tot/anims.cpp b/engines/tot/anims.cpp
index 0a3b6ebd099..4d75032af68 100644
--- a/engines/tot/anims.cpp
+++ b/engines/tot/anims.cpp
@@ -990,7 +990,4 @@ Lexit_proc:
delete flic;
}
-void clearAnims() {
- free(g_engine->_graphics->_textAreaBackground);
-}
} // End of namespace Tot
diff --git a/engines/tot/anims.h b/engines/tot/anims.h
index a7547af13d1..0feefb4f794 100644
--- a/engines/tot/anims.h
+++ b/engines/tot/anims.h
@@ -29,7 +29,6 @@ void drawFlc(uint x, uint y, int32 offset, uint loop,
byte speed, byte eventNumber, bool fullPalette, bool isSkipAllowed,
bool limitPaletteTo200, bool &exitAnim);
-void clearAnims();
/**
* Header of an Autodesk Animator FLIC file.
*/
diff --git a/engines/tot/graphics.cpp b/engines/tot/graphics.cpp
index 6818b69f962..08d7675e29e 100644
--- a/engines/tot/graphics.cpp
+++ b/engines/tot/graphics.cpp
@@ -63,6 +63,7 @@ GraphicsManager::~GraphicsManager() {
delete (_dosFont);
delete (_litt);
delete (_euro);
+ free(_textAreaBackground);
}
void GraphicsManager::restoreBackgroundArea(uint x, uint y, uint x2, uint y2) {
diff --git a/engines/tot/tot.cpp b/engines/tot/tot.cpp
index f8dfa18f83d..54bacf7925a 100644
--- a/engines/tot/tot.cpp
+++ b/engines/tot/tot.cpp
@@ -1279,7 +1279,6 @@ void exitGame() {
void TotEngine::clearGame() {
resetGameState();
- clearAnims();
clearVars();
}
More information about the Scummvm-git-logs
mailing list