[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