[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