[Scummvm-git-logs] scummvm master -> f772a3dffa71293083b87b253d0eebcd7f372830
neuromancer
noreply at scummvm.org
Wed Nov 9 22:03:54 UTC 2022
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
02be5c144d FREESCAPE: show on the UI of driller if an area is completed
f772a3dffa FREESCAPE: save, load and show correctly playerHeightNumber in driller
Commit: 02be5c144d932ab78fb29252c93724a3112508f0
https://github.com/scummvm/scummvm/commit/02be5c144d932ab78fb29252c93724a3112508f0
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-11-09T23:04:53+01:00
Commit Message:
FREESCAPE: show on the UI of driller if an area is completed
Changed paths:
engines/freescape/games/driller.cpp
diff --git a/engines/freescape/games/driller.cpp b/engines/freescape/games/driller.cpp
index b4b24550f1b..c2274be632e 100644
--- a/engines/freescape/games/driller.cpp
+++ b/engines/freescape/games/driller.cpp
@@ -372,15 +372,22 @@ void DrillerEngine::drawDOSUI(Graphics::Surface *surface) {
int seconds = _countdown - hours * 3600 - minutes * 60;
drawStringInSurface(Common::String::format("%02d", seconds), 254, 8, yellow, black, surface);
- Common::String temporaryMessage;
- int temporaryMessageDeadline;
- getLatestMessages(temporaryMessage, temporaryMessageDeadline);
- if (temporaryMessageDeadline <= _countdown) {
- drawStringInSurface(temporaryMessage, 191, 177, black, yellow, surface);
- _temporaryMessages.push_back(temporaryMessage);
- _temporaryMessageDeadlines.push_back(temporaryMessageDeadline);
+ Common::String message;
+ int deadline;
+ getLatestMessages(message, deadline);
+ if (deadline <= _countdown) {
+ drawStringInSurface(message, 191, 177, black, yellow, surface);
+ _temporaryMessages.push_back(message);
+ _temporaryMessageDeadlines.push_back(deadline);
} else {
- drawStringInSurface(_messagesList[1], 191, 177, yellow, black, surface);
+ if (_currentArea->_gasPocketRadius == 0)
+ message = _messagesList[2];
+ else if (_completeAreas[_currentArea->getAreaID()])
+ message = _messagesList[0];
+ else
+ message = _messagesList[1];
+
+ drawStringInSurface(message, 191, 177, yellow, black, surface);
}
int energy = _gameStateVars[k8bitVariableEnergy];
Commit: f772a3dffa71293083b87b253d0eebcd7f372830
https://github.com/scummvm/scummvm/commit/f772a3dffa71293083b87b253d0eebcd7f372830
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-11-09T23:04:53+01:00
Commit Message:
FREESCAPE: save, load and show correctly playerHeightNumber in driller
Changed paths:
engines/freescape/freescape.cpp
engines/freescape/games/driller.cpp
engines/freescape/language/instruction.cpp
diff --git a/engines/freescape/freescape.cpp b/engines/freescape/freescape.cpp
index 9864cf2285d..8d7998ca1e2 100644
--- a/engines/freescape/freescape.cpp
+++ b/engines/freescape/freescape.cpp
@@ -585,6 +585,7 @@ Common::Error FreescapeEngine::loadGameStream(Common::SeekableReadStream *stream
}
_flyMode = stream->readByte();
+ _playerHeightNumber = stream->readByte();
if (!_currentArea || _currentArea->getAreaID() != areaID)
gotoArea(areaID, -1); // Do not change position nor rotation
return Common::kNoError;
@@ -622,6 +623,7 @@ Common::Error FreescapeEngine::saveGameStream(Common::WriteStream *stream, bool
}
stream->writeByte(_flyMode);
+ stream->writeByte(_playerHeightNumber);
return Common::kNoError;
}
diff --git a/engines/freescape/games/driller.cpp b/engines/freescape/games/driller.cpp
index c2274be632e..6f79eba9be4 100644
--- a/engines/freescape/games/driller.cpp
+++ b/engines/freescape/games/driller.cpp
@@ -362,7 +362,11 @@ void DrillerEngine::drawDOSUI(Graphics::Surface *surface) {
drawStringInSurface(Common::String::format("%04d", 2 * int(_position.x())), 150, 145, yellow, black, surface);
drawStringInSurface(Common::String::format("%04d", 2 * int(_position.z())), 150, 153, yellow, black, surface);
drawStringInSurface(Common::String::format("%04d", 2 * int(_position.y())), 150, 161, yellow, black, surface);
- drawStringInSurface(Common::String::format("%d", _playerHeightNumber), 57, 161, yellow, black, surface);
+ if (_playerHeightNumber >= 0)
+ drawStringInSurface(Common::String::format("%d", _playerHeightNumber), 57, 161, yellow, black, surface);
+ else
+ drawStringInSurface(Common::String::format("%s", "J"), 57, 161, yellow, black, surface);
+
drawStringInSurface(Common::String::format("%07d", score), 240, 129, yellow, black, surface);
int hours = _countdown / 3600;
diff --git a/engines/freescape/language/instruction.cpp b/engines/freescape/language/instruction.cpp
index 42299bc082d..9d55a51ea32 100644
--- a/engines/freescape/language/instruction.cpp
+++ b/engines/freescape/language/instruction.cpp
@@ -383,11 +383,16 @@ bool FreescapeEngine::executeEndIfBitNotEqual(FCLInstruction &instruction) {
}
void FreescapeEngine::executeSwapJet(FCLInstruction &instruction) {
+ playSound(15, false);
_flyMode = !_flyMode;
- if (_flyMode)
+ if (_flyMode) {
debugC(1, kFreescapeDebugCode, "Swaping to ship mode");
- else
+ _playerHeightNumber = -1;
+ _playerHeight = 1;
+ } else {
debugC(1, kFreescapeDebugCode, "Swaping to tank mode");
+ _playerHeightNumber = 0;
+ }
// TODO: implement the rest of the changes (e.g. border)
}
More information about the Scummvm-git-logs
mailing list