[Scummvm-git-logs] scummvm master -> 06fac89723638f57d4d2160e743ecd82a774ab17

neuromancer noreply at scummvm.org
Thu Aug 10 10:48:09 UTC 2023


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
8a78be95e5 FREESCAPE: correct castle detection entry
a2d978bf21 FREESCAPE: avoid player to escape the game area
06fac89723 FREESCAPE: improved reading of extra colors in amiga/atari


Commit: 8a78be95e584588f87633efa93fc1400c0cbd8b5
    https://github.com/scummvm/scummvm/commit/8a78be95e584588f87633efa93fc1400c0cbd8b5
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2023-08-10T12:50:05+02:00

Commit Message:
FREESCAPE: correct castle detection entry

Changed paths:
    engines/freescape/detection.cpp


diff --git a/engines/freescape/detection.cpp b/engines/freescape/detection.cpp
index 5fc3d2bf8ae..b6b404c9f3c 100644
--- a/engines/freescape/detection.cpp
+++ b/engines/freescape/detection.cpp
@@ -508,7 +508,7 @@ static const ADGameDescription gameDescriptions[] = {
 		},
 		Common::EN_ANY,
 		Common::kPlatformAmiga,
-		ADGF_UNSTABLE,
+		ADGF_UNSTABLE | ADGF_DEMO,
 		GUIO1(GUIO_NOMIDI)
 	},
 	{


Commit: a2d978bf21b06bb2c9c924552162eaa1285639e9
    https://github.com/scummvm/scummvm/commit/a2d978bf21b06bb2c9c924552162eaa1285639e9
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2023-08-10T12:50:05+02:00

Commit Message:
FREESCAPE: avoid player to escape the game area

Changed paths:
    engines/freescape/movement.cpp


diff --git a/engines/freescape/movement.cpp b/engines/freescape/movement.cpp
index 170186ae3a8..cd58d40ba43 100644
--- a/engines/freescape/movement.cpp
+++ b/engines/freescape/movement.cpp
@@ -253,6 +253,7 @@ void FreescapeEngine::rise() {
 			}
 		}
 	}
+	checkIfStillInArea();
 	_lastPosition = _position;
 	debugC(1, kFreescapeDebugMove, "new player position: %f, %f, %f", _position.x(), _position.y(), _position.z());
 	executeMovementConditions();
@@ -271,7 +272,7 @@ void FreescapeEngine::lower() {
 		_playerHeightNumber--;
 		changePlayerHeight(_playerHeightNumber);
 	}
-
+	checkIfStillInArea();
 	_lastPosition = _position;
 	debugC(1, kFreescapeDebugMove, "new player position: %f, %f, %f", _position.x(), _position.y(), _position.z());
 	executeMovementConditions();
@@ -318,6 +319,8 @@ void FreescapeEngine::move(CameraMovement direction, uint8 scale, float deltaTim
 	if (!_flyMode)
 		destination.y() = positionY;
 	resolveCollisions(destination);
+	checkIfStillInArea();
+
 	_lastPosition = _position;
 	debugC(1, kFreescapeDebugMove, "new player position: %f, %f, %f", _position.x(), _position.y(), _position.z());
 	//debugC(1, kFreescapeDebugMove, "player height: %f", _position.y() - areaScale * _playerHeight);


Commit: 06fac89723638f57d4d2160e743ecd82a774ab17
    https://github.com/scummvm/scummvm/commit/06fac89723638f57d4d2160e743ecd82a774ab17
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2023-08-10T12:50:05+02:00

Commit Message:
FREESCAPE: improved reading of extra colors in amiga/atari

Changed paths:
    engines/freescape/loaders/8bitBinaryLoader.cpp


diff --git a/engines/freescape/loaders/8bitBinaryLoader.cpp b/engines/freescape/loaders/8bitBinaryLoader.cpp
index 5569cd2688b..473ff8e1541 100644
--- a/engines/freescape/loaders/8bitBinaryLoader.cpp
+++ b/engines/freescape/loaders/8bitBinaryLoader.cpp
@@ -152,20 +152,28 @@ Object *FreescapeEngine::load8bitObject(Common::SeekableReadStream *file) {
 		debugC(1, kFreescapeDebugParser, "Number of colors: %d", numberOfColours / 2);
 		uint8 entry;
 		for (uint8 colour = 0; colour < numberOfColours / 2; colour++) {
-			uint8 data = readField(file, 8);
+			uint8 data = 0;
+			uint8 extraData = 0;
+			if (!isDriller() && (isAmiga() || isAtariST())) {
+				uint16 field = file->readUint16BE();
+				data = field & 0xff;
+				extraData = field >> 8;
+			} else
+				data = readField(file, 8);
+
 			entry = data & 0xf;
-			//if (_renderMode == Common::kRenderCGA)
-			//	entry = entry % 4; // TODO: use dithering
 
 			colours->push_back(entry);
 			debugC(1, kFreescapeDebugParser, "color[%d] = %x", 2 * colour, entry);
+			if (!isDriller() && (isAmiga() || isAtariST()))
+				debugC(1, kFreescapeDebugParser, "ecolor[%d] = %x", 2 * colour, extraData & 0xf);
 
 			entry = data >> 4;
-			//if (_renderMode == Common::kRenderCGA)
-			//	entry = entry % 4; // TODO: use dithering
-
 			colours->push_back(entry);
 			debugC(1, kFreescapeDebugParser, "color[%d] = %x", 2 * colour + 1, entry);
+			if (!isDriller() && (isAmiga() || isAtariST()))
+				debugC(1, kFreescapeDebugParser, "ecolor[%d] = %x", 2 * colour + 1, extraData >> 4);
+
 			byteSizeOfObject--;
 		}
 




More information about the Scummvm-git-logs mailing list