[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