[Scummvm-git-logs] scummvm master -> 8c570d270188c72ed1d5510f0a891d22882cc6e2
sev-
noreply at scummvm.org
Tue Feb 7 23:33:21 UTC 2023
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:
8ddde7a12b MTROPOLIS: Implement the Return Modifier
8c570d2701 MTROPOLIS: Implement tentative worldmanager.opint handling
Commit: 8ddde7a12b4c9eed5e71e3539eb2315617023f9a
https://github.com/scummvm/scummvm/commit/8ddde7a12b4c9eed5e71e3539eb2315617023f9a
Author: Willem Sonke (willem at wimiso.nl)
Date: 2023-02-08T00:33:16+01:00
Commit Message:
MTROPOLIS: Implement the Return Modifier
Changed paths:
engines/mtropolis/modifiers.cpp
diff --git a/engines/mtropolis/modifiers.cpp b/engines/mtropolis/modifiers.cpp
index a6f159dcd21..d370b8145dd 100644
--- a/engines/mtropolis/modifiers.cpp
+++ b/engines/mtropolis/modifiers.cpp
@@ -2562,7 +2562,7 @@ bool ReturnModifier::respondsToEvent(const Event &evt) const {
}
VThreadState ReturnModifier::consumeMessage(Runtime *runtime, const Common::SharedPtr<MessageProperties> &msg) {
- warning("Return modifier not implemented");
+ runtime->addSceneStateTransition(HighLevelSceneTransition(nullptr, HighLevelSceneTransition::kTypeReturn, false, false));
return kVThreadReturn;
}
Commit: 8c570d270188c72ed1d5510f0a891d22882cc6e2
https://github.com/scummvm/scummvm/commit/8c570d270188c72ed1d5510f0a891d22882cc6e2
Author: Willem Sonke (willem at wimiso.nl)
Date: 2023-02-08T00:33:16+01:00
Commit Message:
MTROPOLIS: Implement tentative worldmanager.opint handling
When SPQR opens a dialog box it wants to return from, it sets
worldmanager.opint to 7 before switching worldmanager.currentscene to
the dialog box scene. (Other values encountered in SPQR are 2 and 4,
which seem to be used for scene transitions that do not go to dialogs.)
It therefore seems logical that 7 is used to indicate that the
add-to-return-list flag should be set. This commit tentatively assumes
that the least significant bit of opint is the add-to-return-list flag
and sets this flag accordingly when handling writes to
worldmanager.currentscene.
Changed paths:
engines/mtropolis/runtime.cpp
diff --git a/engines/mtropolis/runtime.cpp b/engines/mtropolis/runtime.cpp
index 476bb7a6bb8..cee20bafc28 100644
--- a/engines/mtropolis/runtime.cpp
+++ b/engines/mtropolis/runtime.cpp
@@ -2766,7 +2766,8 @@ MiniscriptInstructionOutcome WorldManagerInterface::setCurrentScene(MiniscriptTh
return kMiniscriptInstructionOutcomeFailed;
}
- thread->getRuntime()->addSceneStateTransition(HighLevelSceneTransition(scene->getSelfReference().lock().staticCast<Structural>(), HighLevelSceneTransition::kTypeChangeToScene, false, false));
+ bool addToReturnList = _opInt & 0x01 != 0;
+ thread->getRuntime()->addSceneStateTransition(HighLevelSceneTransition(scene->getSelfReference().lock().staticCast<Structural>(), HighLevelSceneTransition::kTypeChangeToScene, false, addToReturnList));
return kMiniscriptInstructionOutcomeContinue;
}
More information about the Scummvm-git-logs
mailing list