[Scummvm-git-logs] scummvm master -> 1272665764d8df9acb212b1d12fa8ab74c6e43d4
alxpnv
noreply at scummvm.org
Mon Dec 6 11:18:32 UTC 2021
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
17abacd66a ASYLUM: convert a couple of workarounds to patches
7ec7e45043 ASYLUM: fix invalid direction crash
28dc2e14bf ASYLUM: fix subtitle index
7cccbafc9d ASYLUM: fix crash after reaching limit of savegames
1272665764 ASYLUM: fix yawning during active gameplay
Commit: 17abacd66a8e7fb303d8912a0241fad35c103207
https://github.com/scummvm/scummvm/commit/17abacd66a8e7fb303d8912a0241fad35c103207
Author: alxpnv (alxpnv22 at yahoo.com)
Date: 2021-12-06T14:21:27+03:00
Commit Message:
ASYLUM: convert a couple of workarounds to patches
Changed paths:
engines/asylum/resources/script.cpp
engines/asylum/resources/worldstats.cpp
engines/asylum/views/scene.cpp
diff --git a/engines/asylum/resources/script.cpp b/engines/asylum/resources/script.cpp
index c6370ecc33..d2c966d797 100644
--- a/engines/asylum/resources/script.cpp
+++ b/engines/asylum/resources/script.cpp
@@ -268,6 +268,12 @@ void ScriptManager::load(Common::SeekableReadStream *stream) {
_scripts[34].commands[13].param1 = 453;
_scripts[43].commands[ 9].param1 = 455;
}
+
+ // Patch for Demo lockup bug
+ if (_vm->checkGameVersion("Demo")) {
+ _scripts[1].commands[6].param2 = 151;
+ _scripts[1].commands[6].param3 = 332;
+ }
}
void ScriptManager::saveLoadWithSerializer(Common::Serializer &s) {
@@ -629,11 +635,6 @@ END_OPCODE
IMPLEMENT_OPCODE(SetActorPosition)
Actor *actor = getScene()->getActor(cmd->param1);
- if (_vm->checkGameVersion("Demo") && cmd->param2 == 150 && cmd->param3 == 337) {
- actor->setPosition(151, 332, (ActorDirection)cmd->param4, (uint32)cmd->param5);
- return;
- }
-
actor->setPosition((int16)cmd->param2, (int16)cmd->param3, (ActorDirection)cmd->param4, (uint32)cmd->param5);
END_OPCODE
diff --git a/engines/asylum/resources/worldstats.cpp b/engines/asylum/resources/worldstats.cpp
index c6d8bdcec7..268007670d 100644
--- a/engines/asylum/resources/worldstats.cpp
+++ b/engines/asylum/resources/worldstats.cpp
@@ -202,6 +202,10 @@ void WorldStats::load(Common::SeekableReadStream *stream) {
musicResourceIndex = stream->readSint32LE();
musicStatusExt = stream->readSint32LE();
+ // Patch a flag number which is too big
+ if (chapter == kChapter8 && ambientSounds[1].flagNum[1] == 99999)
+ ambientSounds[1].flagNum[1] = 0;
+
load_objects:
//////////////////////////////////////////////////////////////////////////
// Read Objects
diff --git a/engines/asylum/views/scene.cpp b/engines/asylum/views/scene.cpp
index b8bad08a16..8e6d870551 100644
--- a/engines/asylum/views/scene.cpp
+++ b/engines/asylum/views/scene.cpp
@@ -852,9 +852,6 @@ void Scene::updateAmbientSounds() {
if (!gameFlag)
break;
- if (gameFlag == 99999)
- continue;
-
if (gameFlag >= 0) {
if (_vm->isGameFlagNotSet((GameFlag)gameFlag)) {
processSound = false;
Commit: 7ec7e45043889b719227c5b413e31c36bddff69f
https://github.com/scummvm/scummvm/commit/7ec7e45043889b719227c5b413e31c36bddff69f
Author: alxpnv (alxpnv22 at yahoo.com)
Date: 2021-12-06T14:21:27+03:00
Commit Message:
ASYLUM: fix invalid direction crash
Bug no. 13130
Changed paths:
engines/asylum/resources/actor.cpp
engines/asylum/resources/script.cpp
diff --git a/engines/asylum/resources/actor.cpp b/engines/asylum/resources/actor.cpp
index c80d6c71c1..f7b2a7ac73 100644
--- a/engines/asylum/resources/actor.cpp
+++ b/engines/asylum/resources/actor.cpp
@@ -3797,7 +3797,7 @@ int32 Actor::getWalkIncrement(ActorDirection dir, uint32 frameIndex) const {
switch (dir) {
default:
- error("[Actor::getWalkIncrement] Invalid direction");
+ error("[Actor::getWalkIncrement] Invalid direction %d", dir);
case kDirectionN:
return -_distancesNS[frameIndex];
diff --git a/engines/asylum/resources/script.cpp b/engines/asylum/resources/script.cpp
index d2c966d797..77e93225d9 100644
--- a/engines/asylum/resources/script.cpp
+++ b/engines/asylum/resources/script.cpp
@@ -724,14 +724,15 @@ END_OPCODE
// Opcode 0x13
IMPLEMENT_OPCODE(JumpAndSetDirection)
Actor *actor = getScene()->getActor(cmd->param1);
+ ActorDirection newDirection = (ActorDirection)(cmd->param4 & 7);
if (actor->getStatus() != kActorStatusWalkingTo && actor->getStatus() != kActorStatusWalkingTo2) {
if (cmd->param5 != 2) {
if (cmd->param2 == -1 || cmd->param3 == -1) {
- actor->changeDirection((ActorDirection)cmd->param4);
+ actor->changeDirection(newDirection);
} else if ((actor->getPoint1()->x + actor->getPoint2()->x) == cmd->param2 && (actor->getPoint1()->y + actor->getPoint2()->y) == cmd->param3) {
- actor->changeDirection((ActorDirection)cmd->param4);
+ actor->changeDirection(newDirection);
} else {
actor->forceTo((int16)cmd->param2, (int16)cmd->param3, (bool)cmd->param6);
@@ -745,7 +746,7 @@ IMPLEMENT_OPCODE(JumpAndSetDirection)
_processNextEntry = false;
if ((actor->getPoint1()->x + actor->getPoint2()->x) == cmd->param2 && (actor->getPoint1()->y + actor->getPoint2()->y) == cmd->param3)
- actor->changeDirection((ActorDirection)cmd->param4);
+ actor->changeDirection(newDirection);
}
} else {
if (cmd->param5 == 2)
Commit: 28dc2e14bf83dbec4a9b6815c6180c4e4003017b
https://github.com/scummvm/scummvm/commit/28dc2e14bf83dbec4a9b6815c6180c4e4003017b
Author: alxpnv (alxpnv22 at yahoo.com)
Date: 2021-12-06T14:21:27+03:00
Commit Message:
ASYLUM: fix subtitle index
Bug no. 13135
Changed paths:
engines/asylum/views/video.cpp
diff --git a/engines/asylum/views/video.cpp b/engines/asylum/views/video.cpp
index 14c4b7f50c..2ab990f56d 100644
--- a/engines/asylum/views/video.cpp
+++ b/engines/asylum/views/video.cpp
@@ -295,7 +295,13 @@ void VideoPlayer::loadSubtitles() {
if (!tok)
error("[Video::loadSubtitles] Invalid subtitle (resource id missing)!");
- newSubtitle.resourceId = (ResourceId)(atoi(tok) + video_subtitle_resourceIds[_currentMovie]);
+ int index = atoi(tok);
+
+ // Original bug: index starts from 1 instead of 0
+ if (_currentMovie == 36)
+ index--;
+
+ newSubtitle.resourceId = (ResourceId)(index + video_subtitle_resourceIds[_currentMovie]);
tok = strtok(nullptr, " ");
Commit: 7cccbafc9d03276e7ddb2ca2a8b2ba61a6c9cfe1
https://github.com/scummvm/scummvm/commit/7cccbafc9d03276e7ddb2ca2a8b2ba61a6c9cfe1
Author: alxpnv (alxpnv22 at yahoo.com)
Date: 2021-12-06T14:21:27+03:00
Commit Message:
ASYLUM: fix crash after reaching limit of savegames
Bug no. 13144
Changed paths:
engines/asylum/metaengine.cpp
diff --git a/engines/asylum/metaengine.cpp b/engines/asylum/metaengine.cpp
index 1f20851eb0..11d2c3b16e 100644
--- a/engines/asylum/metaengine.cpp
+++ b/engines/asylum/metaengine.cpp
@@ -50,8 +50,8 @@ public:
return "Sanitarium (c) ASC Games";
}
- int getMaximumSaveSlot() const override { return 25; }
- int getAutosaveSlot() const override { return getMaximumSaveSlot() - 1; }
+ int getMaximumSaveSlot() const override { return 24; }
+ int getAutosaveSlot() const override { return getMaximumSaveSlot(); }
SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const override;
void getSavegameThumbnail(Graphics::Surface &thumb) override;
Common::Error createInstance(OSystem *syst, Engine **engine, const ADGameDescription *gd) const override;
Commit: 1272665764d8df9acb212b1d12fa8ab74c6e43d4
https://github.com/scummvm/scummvm/commit/1272665764d8df9acb212b1d12fa8ab74c6e43d4
Author: alxpnv (alxpnv22 at yahoo.com)
Date: 2021-12-06T14:21:27+03:00
Commit Message:
ASYLUM: fix yawning during active gameplay
Bug no. 13136
Changed paths:
engines/asylum/views/scene.cpp
diff --git a/engines/asylum/views/scene.cpp b/engines/asylum/views/scene.cpp
index 8e6d870551..3f3506f6bc 100644
--- a/engines/asylum/views/scene.cpp
+++ b/engines/asylum/views/scene.cpp
@@ -530,6 +530,8 @@ bool Scene::clickDown(const AsylumEvent &evt) {
}
Actor *player = getActor();
+ player->setLastScreenUpdate(_vm->screenUpdateCount);
+
switch (evt.type) {
default:
break;
More information about the Scummvm-git-logs
mailing list