[Scummvm-git-logs] scummvm master -> 9b1185ff92813a740a1117937468af8ac1e62701
neuromancer
noreply at scummvm.org
Sat Mar 28 09:28:57 UTC 2026
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
0e12f5af57 FREESCAPE: improved endgame in amiga/atari
9f34f36c49 FREESCAPE: improved endgame code in amiga/atari
3c2446705f FREESCAPE: remove redundant code
ab06f0349b FREESCAPE: correctly show areas cleared in driller amiga/atari
9b1185ff92 FREESCAPE: correclty execute castle cpc endgame
Commit: 0e12f5af57ad3f6e36f4e510ca6761199d165e1b
https://github.com/scummvm/scummvm/commit/0e12f5af57ad3f6e36f4e510ca6761199d165e1b
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2026-03-28T10:28:44+01:00
Commit Message:
FREESCAPE: improved endgame in amiga/atari
Changed paths:
engines/freescape/games/driller/amiga.cpp
diff --git a/engines/freescape/games/driller/amiga.cpp b/engines/freescape/games/driller/amiga.cpp
index d942963ea4c..cfd74afb0b4 100644
--- a/engines/freescape/games/driller/amiga.cpp
+++ b/engines/freescape/games/driller/amiga.cpp
@@ -406,7 +406,7 @@ void DrillerEngine::drawAmigaAtariSTUI(Graphics::Surface *surface) {
Common::String coords;
// It seems that some demos will not include the complete font
- if (!isDemo() || (_variant & GF_AMIGA_MAGAZINE_DEMO) || (_variant & GF_ATARI_MAGAZINE_DEMO)) {
+ if (_currentArea->getAreaID() != _endArea && (!isDemo() || (_variant & GF_AMIGA_MAGAZINE_DEMO) || (_variant & GF_ATARI_MAGAZINE_DEMO))) {
drawString(kDrillerFontSmall, ":", 38, 18, white, white, transparent, surface); // ":" is the next character to "9" representing "x"
coords = Common::String::format("%04d", 2 * int(_position.x()));
Commit: 9f34f36c491bac39df6c5474a6b43d6d975cfa55
https://github.com/scummvm/scummvm/commit/9f34f36c491bac39df6c5474a6b43d6d975cfa55
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2026-03-28T10:28:44+01:00
Commit Message:
FREESCAPE: improved endgame code in amiga/atari
Changed paths:
engines/freescape/games/driller/driller.cpp
diff --git a/engines/freescape/games/driller/driller.cpp b/engines/freescape/games/driller/driller.cpp
index 7298f771d48..009705cc815 100644
--- a/engines/freescape/games/driller/driller.cpp
+++ b/engines/freescape/games/driller/driller.cpp
@@ -937,14 +937,6 @@ bool DrillerEngine::triggerWinCondition() {
if (!_currentArea || _currentArea->getAreaID() != 18)
gotoArea(18, 20);
- if ((isAmiga() || isAtariST()) && _currentArea && _currentArea->getAreaID() == _endArea) {
- _endGameDelayTicks = 0;
- _endGameKeyPressed = false;
- _endGamePlayerEndArea = false;
- _amigaAtariEndGameStep = -1;
- _gameStateControl = kFreescapeGameStateEnd;
- }
-
return true;
}
@@ -974,7 +966,6 @@ void DrillerEngine::endGame() {
if (_gameStateVars[32] == 18) // All areas are complete
insertTemporaryMessage(_messagesList[19], INT_MIN);
- waitInLoop(0); // Initial BT01 after switching to set 127
for (int step = 0; step < 21; step++) {
_position.z() += 400.0f / areaScale;
_position.y() -= 140.0f / areaScale;
Commit: 3c2446705fd5db7070114ea27560217d35216027
https://github.com/scummvm/scummvm/commit/3c2446705fd5db7070114ea27560217d35216027
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2026-03-28T10:28:44+01:00
Commit Message:
FREESCAPE: remove redundant code
Changed paths:
engines/freescape/games/driller/driller.cpp
diff --git a/engines/freescape/games/driller/driller.cpp b/engines/freescape/games/driller/driller.cpp
index 009705cc815..19cbd380457 100644
--- a/engines/freescape/games/driller/driller.cpp
+++ b/engines/freescape/games/driller/driller.cpp
@@ -963,9 +963,6 @@ void DrillerEngine::endGame() {
_endGamePlayerEndArea = false;
_amigaAtariEndGameStep = 0;
- if (_gameStateVars[32] == 18) // All areas are complete
- insertTemporaryMessage(_messagesList[19], INT_MIN);
-
for (int step = 0; step < 21; step++) {
_position.z() += 400.0f / areaScale;
_position.y() -= 140.0f / areaScale;
@@ -986,11 +983,6 @@ void DrillerEngine::endGame() {
if (!_endGamePlayerEndArea)
return;
-
- if (_gameStateVars[32] == 18) { // All areas are complete
- insertTemporaryMessage(_messagesList[19], _countdown - 2);
- _gameStateVars[32] = 0; // Avoid repeating the message
- }
}
if (_endGameKeyPressed) {
Commit: ab06f0349bc3046ebc0b8a0ddeaefa49ca3d516a
https://github.com/scummvm/scummvm/commit/ab06f0349bc3046ebc0b8a0ddeaefa49ca3d516a
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2026-03-28T10:28:44+01:00
Commit Message:
FREESCAPE: correctly show areas cleared in driller amiga/atari
Changed paths:
engines/freescape/games/driller/driller.cpp
diff --git a/engines/freescape/games/driller/driller.cpp b/engines/freescape/games/driller/driller.cpp
index 19cbd380457..19b07cd85b1 100644
--- a/engines/freescape/games/driller/driller.cpp
+++ b/engines/freescape/games/driller/driller.cpp
@@ -282,7 +282,7 @@ void DrillerEngine::gotoArea(uint16 areaID, int entranceID) {
_pitch = 335;
_flyMode = true; // Avoid falling
// Show the number of completed areas
- _areaMap[127]->_name.replace(0, 3, Common::String::format("%4d", _gameStateVars[32]));
+ _areaMap[127]->_name.replace(0, isAmiga() || isAtariST() ? 4 : 3, Common::String::format("%4d", _gameStateVars[32]));
} else
playSound(_soundIndexAreaChange, false, _soundFxHandle);
Commit: 9b1185ff92813a740a1117937468af8ac1e62701
https://github.com/scummvm/scummvm/commit/9b1185ff92813a740a1117937468af8ac1e62701
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2026-03-28T10:28:44+01:00
Commit Message:
FREESCAPE: correclty execute castle cpc endgame
Changed paths:
engines/freescape/games/castle/castle.cpp
engines/freescape/language/instruction.cpp
engines/freescape/ui.cpp
diff --git a/engines/freescape/games/castle/castle.cpp b/engines/freescape/games/castle/castle.cpp
index 9e696d4ce2a..008f0c5f32f 100644
--- a/engines/freescape/games/castle/castle.cpp
+++ b/engines/freescape/games/castle/castle.cpp
@@ -737,18 +737,14 @@ bool CastleEngine::checkIfGameEnded() {
}
bool CastleEngine::triggerWinCondition() {
- if (isDOS()) {
+ if (isDOS() || isAmiga() || isAtariST()) {
if (!_areaMap.contains(74))
return false;
gotoArea(74, 0);
} else {
- setGameBit(31);
+ _gameStateVars[31] = 10;
+ gotoArea(16, 136);
}
-
- _endGameDelayTicks = 0;
- _endGameKeyPressed = false;
- _endGamePlayerEndArea = false;
- _gameStateControl = kFreescapeGameStateEnd;
return true;
}
diff --git a/engines/freescape/language/instruction.cpp b/engines/freescape/language/instruction.cpp
index aa646daca7c..c67acf8abda 100644
--- a/engines/freescape/language/instruction.cpp
+++ b/engines/freescape/language/instruction.cpp
@@ -355,7 +355,7 @@ void FreescapeEngine::executeRedraw(FCLInstruction &instruction) {
if (isEclipse2() && _currentArea->getAreaID() == _startArea && _gameStateControl == kFreescapeGameStateStart)
delay = delay * 10;
- if (isCastle() && isSpectrum() && getGameBit(31))
+ if (isCastle() && (isSpectrum() || isCPC()) && getGameBit(31))
delay = delay * 15; // Slow down redraws when the final cutscene is playing
waitInLoop(delay);
}
diff --git a/engines/freescape/ui.cpp b/engines/freescape/ui.cpp
index 9f26f70a4de..dca45969c04 100644
--- a/engines/freescape/ui.cpp
+++ b/engines/freescape/ui.cpp
@@ -43,7 +43,7 @@ void FreescapeEngine::waitInLoop(int maxWait) {
case Common::EVENT_MOUSEMOVE:
if (_hasFallen || _playerWasCrushed || _gameStateControl != kFreescapeGameStatePlaying)
break;
- if (isCastle() && isSpectrum() && getGameBit(31)) // Game is finished
+ if (isCastle() && (isSpectrum() || isCPC()) && getGameBit(31)) // Game is finished
break;
if (isDriller() && _gameStateVars[32] == 18) // Game is finished
break;
More information about the Scummvm-git-logs
mailing list