[Scummvm-git-logs] scummvm master -> ea2121f9ed5ded3f2ee5ec7470b7b80128bc40a1
neuromancer
noreply at scummvm.org
Sat Apr 6 11:12:50 UTC 2024
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:
7ce5c1344e FREESCAPE: added more dark releases for amiga/atari
ea2121f9ed FREESCAPE: improved parsing of groups in dark releases for amiga/atari
Commit: 7ce5c1344ede73903a3d09b2eebb5edcbdd445f9
https://github.com/scummvm/scummvm/commit/7ce5c1344ede73903a3d09b2eebb5edcbdd445f9
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-04-06T13:10:22+02:00
Commit Message:
FREESCAPE: added more dark releases for amiga/atari
Changed paths:
engines/freescape/detection.cpp
diff --git a/engines/freescape/detection.cpp b/engines/freescape/detection.cpp
index 870355ffb4d..35e840c5b16 100644
--- a/engines/freescape/detection.cpp
+++ b/engines/freescape/detection.cpp
@@ -335,6 +335,20 @@ static const ADGameDescription gameDescriptions[] = {
ADGF_UNSTABLE,
GUIO1(GUIO_NOMIDI)
},
+ // Microstatus release
+ {
+ "darkside",
+ "Encrypted binary with CopyLock",
+ {
+ {"0.DRK", 0, "c19bc332f6550e21e7b8ef79bcf3d99e", 81840},
+ {"1.DRK", 0, "9e700d991054f4393b1ccef706586b5b", 223272},
+ AD_LISTEND
+ },
+ Common::EN_ANY,
+ Common::kPlatformAtariST,
+ ADGF_UNSUPPORTED,
+ GUIO1(GUIO_NOMIDI)
+ },
// Stampede Amiga, Issue 1, July 1990
{
"darkside",
@@ -346,7 +360,7 @@ static const ADGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformAmiga,
- ADGF_UNSTABLE,
+ ADGF_UNSUPPORTED,
GUIO1(GUIO_NOMIDI)
},
{
Commit: ea2121f9ed5ded3f2ee5ec7470b7b80128bc40a1
https://github.com/scummvm/scummvm/commit/ea2121f9ed5ded3f2ee5ec7470b7b80128bc40a1
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-04-06T13:10:22+02:00
Commit Message:
FREESCAPE: improved parsing of groups in dark releases for amiga/atari
Changed paths:
engines/freescape/loaders/8bitBinaryLoader.cpp
engines/freescape/objects/group.cpp
diff --git a/engines/freescape/loaders/8bitBinaryLoader.cpp b/engines/freescape/loaders/8bitBinaryLoader.cpp
index cce00b8345a..3b06ed4ef84 100644
--- a/engines/freescape/loaders/8bitBinaryLoader.cpp
+++ b/engines/freescape/loaders/8bitBinaryLoader.cpp
@@ -130,11 +130,12 @@ Group *FreescapeEngine::load8bitGroupV1(Common::SeekableReadStream *file, byte r
else
value = readField(file, 8);
- debugC(1, kFreescapeDebugParser, "Reading value: %x", value);
int opcode = value >> 8;
+ debugC(1, kFreescapeDebugParser, "Reading opcode: %x", opcode);
AnimationOpcode* operation = new AnimationOpcode(opcode);
byteSizeOfObject--;
if (opcode == 0xff) {
+ assert(value == 0xffff);
debugC(1, kFreescapeDebugParser, "Group operation rewind");
} else if (opcode == 0x01) {
debugC(1, kFreescapeDebugParser, "Group operation script execution");
diff --git a/engines/freescape/objects/group.cpp b/engines/freescape/objects/group.cpp
index 74635449f24..598769cee0c 100644
--- a/engines/freescape/objects/group.cpp
+++ b/engines/freescape/objects/group.cpp
@@ -67,14 +67,17 @@ void Group::linkObject(Object *obj) {
if (objectIndex == -1)
return;
+ debugC(1, kFreescapeDebugParser, "Linking object: %d to group %d", obj->getObjectID(), this->getObjectID());
_origins.push_back(obj->getOrigin());
+ debugC(1, kFreescapeDebugParser, "Origin %f, %f %f", obj->getOrigin().x(), obj->getOrigin().y(), obj->getOrigin().z());
+
obj->_partOfGroup = this;
_objects.push_back(obj);
}
void Group::assemble(int index) {
GeometricObject *gobj = (GeometricObject *)_objects[index];
- gobj->makeVisible();
+ //gobj->makeVisible();
Math::Vector3d position = _operations[_step]->position;
if (!GeometricObject::isPolygon(gobj->getType()))
@@ -85,17 +88,7 @@ void Group::assemble(int index) {
}
void Group::run() {
- if (_finished)
- return;
-
- uint32 groupSize = _objects.size();
- for (uint32 i = 0; i < groupSize ; i++) {
- run(i);
- }
-}
-
-void Group::run(int index) {
- if (_step < 0)
+ if (_finished || _step < 0)
return;
int opcode = _operations[_step]->opcode;
@@ -103,13 +96,21 @@ void Group::run(int index) {
reset();
} else if (opcode == 0x01) {
g_freescape->executeCode(_operations[_step]->condition, false, true, false, false);
+ } else if (opcode == 0x6e) {
+ uint32 groupSize = _objects.size();
+ for (uint32 i = 0; i < groupSize ; i++)
+ _objects[i]->makeInvisible();
} else {
- if (opcode == 0x10)
+ uint32 groupSize = _objects.size();
+ for (uint32 i = 0; i < groupSize ; i++)
+ assemble(i);
+
+ if (opcode == 0x10) {
if (!_active) {
_step = -1;
return;
}
- assemble(index);
+ }
}
}
More information about the Scummvm-git-logs
mailing list