[Scummvm-git-logs] scummvm master -> 159a0cc150994be602ed75a54768382c5a34d930

neuromancer noreply at scummvm.org
Wed Aug 2 19:52:13 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:
29f3ea251d FREESCAPE: added new driller demo for atari
fc8bfaeb48 FREESCAPE: better parsing of group objects for dark
159a0cc150 FREESCAPE: implemented jetpack logic in dark


Commit: 29f3ea251dd808c7129796b72581061d76c35e5d
    https://github.com/scummvm/scummvm/commit/29f3ea251dd808c7129796b72581061d76c35e5d
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2023-08-02T21:54:09+02:00

Commit Message:
FREESCAPE: added new driller demo for atari

Changed paths:
    engines/freescape/detection.cpp


diff --git a/engines/freescape/detection.cpp b/engines/freescape/detection.cpp
index 94be669dc45..ef2a618e66f 100644
--- a/engines/freescape/detection.cpp
+++ b/engines/freescape/detection.cpp
@@ -248,6 +248,20 @@ static const ADGameDescription gameDescriptions[] = {
 		ADGF_DEMO,
 		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
+	{
+		"driller",
+		"Demo",
+		{
+			{"auto_x.prg", 0, "14388ba3cfd222938e5e48f0e316b335", 158919},
+			{"data", 0, "6add87a10042d0a9fd32c62ed56b7690", 24220},
+			{"demo.cmd", 0, "7b90427c5c3c4bbb42d14076af994d50", 4096},
+			AD_LISTEND
+		},
+		Common::EN_ANY,
+		Common::kPlatformAtariST,
+		ADGF_DEMO,
+		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+	},
 	{
 		"driller",
 		"Rolling Demo",


Commit: fc8bfaeb4878bba48087674bbe12518e89cf3ac9
    https://github.com/scummvm/scummvm/commit/fc8bfaeb4878bba48087674bbe12518e89cf3ac9
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2023-08-02T21:54:09+02:00

Commit Message:
FREESCAPE: better parsing of group objects for dark

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


diff --git a/engines/freescape/loaders/8bitBinaryLoader.cpp b/engines/freescape/loaders/8bitBinaryLoader.cpp
index 0e6d9eb4058..fd6af7d4eaf 100644
--- a/engines/freescape/loaders/8bitBinaryLoader.cpp
+++ b/engines/freescape/loaders/8bitBinaryLoader.cpp
@@ -303,7 +303,11 @@ Object *FreescapeEngine::load8bitObject(Common::SeekableReadStream *file) {
 		while(--byteSizeOfObject > 0)
 			if (isAmiga() || isAtariST()) {
 				uint16 field = file->readUint16BE();
-				assert((field >> 8) == 0);
+				if (isCastle())
+					assert(field >> 8 == 0);
+				else
+					groupDataArray.push_back(field >> 8);
+
 				groupDataArray.push_back(field & 0xff);
 			} else
 				groupDataArray.push_back(readField(file, 8));


Commit: 159a0cc150994be602ed75a54768382c5a34d930
    https://github.com/scummvm/scummvm/commit/159a0cc150994be602ed75a54768382c5a34d930
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2023-08-02T21:54:09+02:00

Commit Message:
FREESCAPE: implemented jetpack logic in dark

Changed paths:
    engines/freescape/freescape.h
    engines/freescape/games/dark/dark.cpp


diff --git a/engines/freescape/freescape.h b/engines/freescape/freescape.h
index fc9155b6c46..d29e4dd7c61 100644
--- a/engines/freescape/freescape.h
+++ b/engines/freescape/freescape.h
@@ -525,6 +525,7 @@ public:
 
 	uint32 _initialEnergy;
 	uint32 _initialShield;
+	uint32 _jetFuelSeconds;
 	void addSkanner(Area *area);
 
 	void initGameState() override;
@@ -545,6 +546,7 @@ public:
 	void loadAssetsZXDemo() override;
 
 	int _lastTenSeconds;
+	int _lastSecond;
 	void updateTimeVariables() override;
 
 	void drawSensorShoot(Sensor *sensor) override;
diff --git a/engines/freescape/games/dark/dark.cpp b/engines/freescape/games/dark/dark.cpp
index 98633b3a7cd..f9947f6e668 100644
--- a/engines/freescape/games/dark/dark.cpp
+++ b/engines/freescape/games/dark/dark.cpp
@@ -43,6 +43,7 @@ DarkEngine::DarkEngine(OSystem *syst, const ADGameDescription *gd) : FreescapeEn
 	_playerWidth = 12;
 	_playerDepth = 32;
 	_lastTenSeconds = -1;
+	_lastSecond = -1;
 
 	_angleRotations.push_back(5);
 	_angleRotations.push_back(10);
@@ -53,6 +54,8 @@ DarkEngine::DarkEngine(OSystem *syst, const ADGameDescription *gd) : FreescapeEn
 
 	_initialEnergy = 11;
 	_initialShield = 15;
+
+	_jetFuelSeconds = _initialEnergy * 6;
 }
 
 void DarkEngine::addECDs(Area *area) {
@@ -252,14 +255,6 @@ bool DarkEngine::checkIfGameEnded() {
 		g_system->updateScreen();
 		g_system->delayMillis(2000);
 		gotoArea(1, 26);
-	} else if (_gameStateVars[k8bitVariableEnergy] == 0) {
-		insertTemporaryMessage(_messagesList[16], _countdown - 2);
-		_gameStateVars[kVariableDarkEnding] = kDarkEndingEvathDestroyed;
-		drawFrame();
-		_gfx->flipBuffer();
-		g_system->updateScreen();
-		g_system->delayMillis(2000);
-		gotoArea(1, 26);
 	} else if (_forceEndGame) {
 		_forceEndGame = false;
 		insertTemporaryMessage(_messagesList[18], _countdown - 2);
@@ -360,7 +355,10 @@ void DarkEngine::pressedKey(const int keycode) {
 	if (keycode == Common::KEYCODE_j) {
 		_flyMode = !_flyMode;
 
-		if (_flyMode)
+		if (_flyMode && _gameStateVars[k8bitVariableEnergy] == 0) {
+			_flyMode = false;
+			insertTemporaryMessage(_messagesList[13], _countdown - 2);
+		} else if (_flyMode)
 			insertTemporaryMessage(_messagesList[11], _countdown - 2);
 		else {
 			resolveCollisions(_position);
@@ -374,6 +372,18 @@ void DarkEngine::updateTimeVariables() {
 	// This function only executes "on collision" room/global conditions
 	int seconds, minutes, hours;
 	getTimeFromCountdown(seconds, minutes, hours);
+	if (_flyMode && seconds != _lastSecond) {
+		_jetFuelSeconds--;
+		_lastSecond = seconds;
+		if (seconds % 6 == 0)
+			if (_gameStateVars[k8bitVariableEnergy] > 0)
+				_gameStateVars[k8bitVariableEnergy]--;
+
+		if (_flyMode && _gameStateVars[k8bitVariableEnergy] == 0) {
+			_flyMode = false;
+			insertTemporaryMessage(_messagesList[13], _countdown - 2);
+		}
+	}
 	if (_lastTenSeconds != seconds / 10) {
 		_gameStateVars[0x1e] += 1;
 		_gameStateVars[0x1f] += 1;




More information about the Scummvm-git-logs mailing list