[Scummvm-git-logs] scummvm master -> 464834000f857feac8504e33c5d44b943f0b9a1f
elasota
noreply at scummvm.org
Tue Jun 13 04:10:49 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
464834000f MTROPOLIS: Add another variable reference hack to fix Hispaniola not transitioning to night in MTI
Commit: 464834000f857feac8504e33c5d44b943f0b9a1f
https://github.com/scummvm/scummvm/commit/464834000f857feac8504e33c5d44b943f0b9a1f
Author: elasota (ejlasota at gmail.com)
Date: 2023-06-13T00:10:23-04:00
Commit Message:
MTROPOLIS: Add another variable reference hack to fix Hispaniola not transitioning to night in MTI
Changed paths:
engines/mtropolis/modifiers.cpp
engines/mtropolis/runtime.cpp
engines/mtropolis/runtime.h
diff --git a/engines/mtropolis/modifiers.cpp b/engines/mtropolis/modifiers.cpp
index 614720a9169..cc92919274e 100644
--- a/engines/mtropolis/modifiers.cpp
+++ b/engines/mtropolis/modifiers.cpp
@@ -2770,6 +2770,16 @@ Modifier *CompoundVariableModifier::findChildByName(Runtime *runtime, const Comm
if (modifier)
return modifier;
}
+
+ if (myName.size() == 1 && myName == "g") {
+ if (caseInsensitiveEqual(name, "choresdone") || caseInsensitiveEqual(name, "donechore")) {
+ Project *project = runtime->getProject();
+ Modifier *modifier = project->findGlobalVarWithName(MTropolis::toCaseInsensitive(name)).get();
+
+ if (modifier)
+ return modifier;
+ }
+ }
}
for (Common::Array<Common::SharedPtr<Modifier> >::const_iterator it = _children.begin(), itEnd = _children.end(); it != itEnd; ++it) {
@@ -2814,10 +2824,20 @@ CompoundVariableModifier::SaveLoad::SaveLoad(Runtime *runtime, CompoundVariableM
break;
}
}
+
}
for (const Common::SharedPtr<Modifier> &child : modifier->_children) {
- if (isMTIHackGlobalContainer) {
+ bool loadFromGlobal = false;
+
+ if (isMTIHackGlobalContainer)
+ loadFromGlobal = true;
+ else if (isMTIHackG) {
+ // Hack to fix Hispaniola not transitioning to night
+ loadFromGlobal = caseInsensitiveEqual(child->getName(), "choresdone") || caseInsensitiveEqual(child->getName(), "donechore");
+ }
+
+ if (loadFromGlobal) {
Common::SharedPtr<Modifier> globalVarModifier = runtime->getProject()->findGlobalVarWithName(child->getName());
if (globalVarModifier) {
diff --git a/engines/mtropolis/runtime.cpp b/engines/mtropolis/runtime.cpp
index 6f5e5819788..4c4fb84a85f 100644
--- a/engines/mtropolis/runtime.cpp
+++ b/engines/mtropolis/runtime.cpp
@@ -9324,6 +9324,15 @@ DynamicValueWriteProxy VariableModifier::createWriteProxy() {
return proxy;
}
+#ifdef MTROPOLIS_DEBUG_ENABLE
+void VariableModifier::debugInspect(IDebugInspectionReport *report) const {
+ Modifier::debugInspect(report);
+
+ if (report->declareStatic("storage"))
+ report->declareStaticContents(Common::String::format("%p", _storage.get()));
+}
+#endif
+
MiniscriptInstructionOutcome VariableModifier::WriteProxyInterface::write(MiniscriptThread *thread, const DynamicValue &dest, void *objectRef, uintptr ptrOrOffset) {
if (!static_cast<VariableModifier *>(objectRef)->varSetValue(thread, dest))
return kMiniscriptInstructionOutcomeFailed;
diff --git a/engines/mtropolis/runtime.h b/engines/mtropolis/runtime.h
index efbb305f5ae..3a772362456 100644
--- a/engines/mtropolis/runtime.h
+++ b/engines/mtropolis/runtime.h
@@ -3010,6 +3010,10 @@ public:
virtual DynamicValueWriteProxy createWriteProxy();
+#ifdef MTROPOLIS_DEBUG_ENABLE
+ void debugInspect(IDebugInspectionReport *report) const override;
+#endif
+
private:
VariableModifier() = delete;
More information about the Scummvm-git-logs
mailing list