[Scummvm-git-logs] scummvm master -> 5e2f191d75b590fbc61cb521cef209af173caa6a
elasota
noreply at scummvm.org
Wed Jul 27 06:35:43 UTC 2022
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:
3503feec23 MTROPOLIS: Fix up some things used by Obsidian demos
5e2f191d75 MTROPOLIS: Fix detection entry for Obsidian Mac demo
Commit: 3503feec239729741c96ff16b40ab4c3496c032d
https://github.com/scummvm/scummvm/commit/3503feec239729741c96ff16b40ab4c3496c032d
Author: elasota (ejlasota at gmail.com)
Date: 2022-07-27T02:34:17-04:00
Commit Message:
MTROPOLIS: Fix up some things used by Obsidian demos
Changed paths:
engines/mtropolis/plugin/standard.cpp
engines/mtropolis/plugin/standard.h
engines/mtropolis/plugin/standard_data.cpp
engines/mtropolis/runtime.cpp
engines/mtropolis/runtime.h
diff --git a/engines/mtropolis/plugin/standard.cpp b/engines/mtropolis/plugin/standard.cpp
index b50598d7733..8629179616f 100644
--- a/engines/mtropolis/plugin/standard.cpp
+++ b/engines/mtropolis/plugin/standard.cpp
@@ -2423,6 +2423,9 @@ MiniscriptInstructionOutcome MidiModifier::writeRefAttribute(MiniscriptThread *t
} else if (attrib == "tempo") {
DynamicValueWriteFuncHelper<MidiModifier, &MidiModifier::scriptSetTempo>::create(this, result);
return kMiniscriptInstructionOutcomeContinue;
+ } else if (attrib == "mutetrack") {
+ DynamicValueWriteFuncHelper<MidiModifier, &MidiModifier::scriptSetMuteTrack>::create(this, result);
+ return kMiniscriptInstructionOutcomeContinue;
}
return Modifier::writeRefAttribute(thread, result, attrib);
@@ -2591,7 +2594,25 @@ MiniscriptInstructionOutcome MidiModifier::scriptSetPlayNote(MiniscriptThread *t
return kMiniscriptInstructionOutcomeContinue;
}
-MiniscriptInstructionOutcome MidiModifier::scriptSetMuteTrack(MiniscriptThread *thread, size_t trackIndex, bool muted) {
+MiniscriptInstructionOutcome MidiModifier::scriptSetMuteTrack(MiniscriptThread *thread, const DynamicValue &value) {
+ if (value.getType() != DynamicValueTypes::kBoolean) {
+ thread->error("Invalid type for mutetrack");
+ return kMiniscriptInstructionOutcomeFailed;
+ }
+
+ uint16 mutedTracks = value.getBool() ? 0xffffu : 0u;
+
+ if (mutedTracks != _mutedTracks) {
+ _mutedTracks = mutedTracks;
+
+ if (_filePlayer)
+ _plugIn->getMidi()->setPlayerMutedTracks(_filePlayer, mutedTracks);
+ }
+
+ return kMiniscriptInstructionOutcomeContinue;
+}
+
+MiniscriptInstructionOutcome MidiModifier::scriptSetMuteTrackIndexed(MiniscriptThread *thread, size_t trackIndex, bool muted) {
if (trackIndex >= 16) {
thread->error("Invalid track index for mutetrack");
return kMiniscriptInstructionOutcomeFailed;
@@ -2621,7 +2642,7 @@ MiniscriptInstructionOutcome MidiModifier::MuteTrackProxyInterface::write(Minisc
return kMiniscriptInstructionOutcomeFailed;
}
- return static_cast<MidiModifier *>(objectRef)->scriptSetMuteTrack(thread, ptrOrOffset, value.getBool());
+ return static_cast<MidiModifier *>(objectRef)->scriptSetMuteTrackIndexed(thread, ptrOrOffset, value.getBool());
}
MiniscriptInstructionOutcome MidiModifier::MuteTrackProxyInterface::refAttrib(MiniscriptThread *thread, DynamicValueWriteProxy &proxy, void *objectRef, uintptr ptrOrOffset, const Common::String &attrib) {
diff --git a/engines/mtropolis/plugin/standard.h b/engines/mtropolis/plugin/standard.h
index f01f3c9bf29..feb9ff5a950 100644
--- a/engines/mtropolis/plugin/standard.h
+++ b/engines/mtropolis/plugin/standard.h
@@ -252,8 +252,9 @@ private:
MiniscriptInstructionOutcome scriptSetLoop(MiniscriptThread *thread, const DynamicValue &value);
MiniscriptInstructionOutcome scriptSetPlayNote(MiniscriptThread *thread, const DynamicValue &value);
MiniscriptInstructionOutcome scriptSetTempo(MiniscriptThread *thread, const DynamicValue &value);
+ MiniscriptInstructionOutcome scriptSetMuteTrack(MiniscriptThread *thread, const DynamicValue &value);
- MiniscriptInstructionOutcome scriptSetMuteTrack(MiniscriptThread *thread, size_t trackIndex, bool muted);
+ MiniscriptInstructionOutcome scriptSetMuteTrackIndexed(MiniscriptThread *thread, size_t trackIndex, bool muted);
uint getBoostedVolume(Runtime *runtime) const;
diff --git a/engines/mtropolis/plugin/standard_data.cpp b/engines/mtropolis/plugin/standard_data.cpp
index 29011b102a9..743e2f5e8a6 100644
--- a/engines/mtropolis/plugin/standard_data.cpp
+++ b/engines/mtropolis/plugin/standard_data.cpp
@@ -140,7 +140,7 @@ ListVariableModifier::~ListVariableModifier() {
}
DataReadErrorCode ListVariableModifier::load(PlugIn &plugIn, const PlugInModifier &prefix, DataReader &reader) {
- if (prefix.plugInRevision != 2 && prefix.plugInRevision != 3)
+ if (prefix.plugInRevision < 1 || prefix.plugInRevision > 3)
return kDataReadErrorUnsupportedRevision;
int64 privateDataPos = reader.tell();
@@ -150,12 +150,17 @@ DataReadErrorCode ListVariableModifier::load(PlugIn &plugIn, const PlugInModifie
persistentValuesGarbled = false;
- if (prefix.plugInRevision == 3) {
- PlugInTypeTaggedValue persistentFlag;
- if (!persistentFlag.load(reader) || persistentFlag.type != PlugInTypeTaggedValue::kBoolean)
- return kDataReadErrorReadFailed;
+ if (prefix.plugInRevision == 1 || prefix.plugInRevision == 3) {
+ if (prefix.plugInRevision == 1) {
+ havePersistentData = true;
+ } else if (prefix.plugInRevision == 3) {
+ PlugInTypeTaggedValue persistentFlag;
+ if (!persistentFlag.load(reader) || persistentFlag.type != PlugInTypeTaggedValue::kBoolean)
+ return kDataReadErrorReadFailed;
+
+ havePersistentData = (persistentFlag.value.asBoolean != 0);
+ }
- havePersistentData = (persistentFlag.value.asBoolean != 0);
if (havePersistentData) {
PlugInTypeTaggedValue numValuesVar;
if (!numValuesVar.load(reader) || numValuesVar.type != PlugInTypeTaggedValue::kInteger || numValuesVar.value.asInt < 0)
diff --git a/engines/mtropolis/runtime.cpp b/engines/mtropolis/runtime.cpp
index 13e52eabd06..2d0fd6062b4 100644
--- a/engines/mtropolis/runtime.cpp
+++ b/engines/mtropolis/runtime.cpp
@@ -2414,6 +2414,10 @@ MiniscriptInstructionOutcome WorldManagerInterface::writeRefAttribute(Miniscript
DynamicValueWriteFuncHelper<WorldManagerInterface, &WorldManagerInterface::setAutoResetCursor>::create(this, result);
return kMiniscriptInstructionOutcomeContinue;
}
+ if (attrib == "winsndbuffersize") {
+ DynamicValueWriteFuncHelper<WorldManagerInterface, &WorldManagerInterface::setWinSndBufferSize>::create(this, result);
+ return kMiniscriptInstructionOutcomeContinue;
+ }
return RuntimeObject::writeRefAttribute(thread, result, attrib);
}
@@ -2463,6 +2467,11 @@ MiniscriptInstructionOutcome WorldManagerInterface::setAutoResetCursor(Miniscrip
return kMiniscriptInstructionOutcomeContinue;
}
+MiniscriptInstructionOutcome WorldManagerInterface::setWinSndBufferSize(MiniscriptThread *thread, const DynamicValue &value) {
+ // Ignore
+ return kMiniscriptInstructionOutcomeContinue;
+}
+
SystemInterface::SystemInterface() : _masterVolume(kFullVolume) {
}
diff --git a/engines/mtropolis/runtime.h b/engines/mtropolis/runtime.h
index d842d08bfae..ae4f58ccb9f 100644
--- a/engines/mtropolis/runtime.h
+++ b/engines/mtropolis/runtime.h
@@ -1938,6 +1938,7 @@ private:
MiniscriptInstructionOutcome setCurrentScene(MiniscriptThread *thread, const DynamicValue &value);
MiniscriptInstructionOutcome setRefreshCursor(MiniscriptThread *thread, const DynamicValue &value);
MiniscriptInstructionOutcome setAutoResetCursor(MiniscriptThread *thread, const DynamicValue &value);
+ MiniscriptInstructionOutcome setWinSndBufferSize(MiniscriptThread *thread, const DynamicValue &value);
};
class AssetManagerInterface : public RuntimeObject {
Commit: 5e2f191d75b590fbc61cb521cef209af173caa6a
https://github.com/scummvm/scummvm/commit/5e2f191d75b590fbc61cb521cef209af173caa6a
Author: elasota (ejlasota at gmail.com)
Date: 2022-07-27T02:35:13-04:00
Commit Message:
MTROPOLIS: Fix detection entry for Obsidian Mac demo
Changed paths:
engines/mtropolis/detection_tables.h
diff --git a/engines/mtropolis/detection_tables.h b/engines/mtropolis/detection_tables.h
index 4d6c7b640e5..4d4dbfab862 100644
--- a/engines/mtropolis/detection_tables.h
+++ b/engines/mtropolis/detection_tables.h
@@ -127,7 +127,7 @@ static const MTropolisGameDescription gameDescriptions[] = {
{ "mNet.rPP", 0, "ed5d998e7db6daae1f24bb124cc269aa", 134784 },
{ "Obsidian.cPP", 0, "6da7babae9725a716f27f9f4ea382e92", 7552 },
{ "RSGKit.rPP", 0, "c359e3c932b09280d1ccf21f8fb52bd7", 668160 },
- { "Obs Demo Large w Sega", 0, "34efe95fc32dcf0a2a90bf6854c08e95", 98953679 },
+ { "Obs Demo Large w Sega", 0, "4672fe8ba459811dea0744cf90063a35", 98954240 },
AD_LISTEND
},
Common::EN_ANY,
More information about the Scummvm-git-logs
mailing list