[Scummvm-git-logs] scummvm master -> 2e9cff78b6ea4d380e4529989484a41d96577114
elasota
noreply at scummvm.org
Fri May 24 18:41:27 UTC 2024
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:
2e9cff78b6 MTROPOLIS: support loading cue source as string
Commit: 2e9cff78b6ea4d380e4529989484a41d96577114
https://github.com/scummvm/scummvm/commit/2e9cff78b6ea4d380e4529989484a41d96577114
Author: Michael (michael_kuerbis at web.de)
Date: 2024-05-24T14:41:24-04:00
Commit Message:
MTROPOLIS: support loading cue source as string
This constellation occurs in the retail version of Star Trek: The Game Show
Changed paths:
engines/mtropolis/plugin/standard.cpp
engines/mtropolis/plugin/standard.h
diff --git a/engines/mtropolis/plugin/standard.cpp b/engines/mtropolis/plugin/standard.cpp
index f83c1ec1a35..7eae9f42036 100644
--- a/engines/mtropolis/plugin/standard.cpp
+++ b/engines/mtropolis/plugin/standard.cpp
@@ -250,6 +250,9 @@ MediaCueMessengerModifier::~MediaCueMessengerModifier() {
case kCueSourceLabel:
_cueSource.destruct<Label, &CueSourceUnion::asLabel>();
break;
+ case kCueSourceString:
+ // No destruct necessary, string is not in union
+ break;
default:
_cueSource.destruct<uint64, &CueSourceUnion::asUnset>();
break;
@@ -305,6 +308,10 @@ bool MediaCueMessengerModifier::load(const PlugInModifierLoaderContext &context,
if (!_cueSource.asLabel.load(data.executeAt.value.asLabel))
return false;
break;
+ case Data::PlugInTypeTaggedValue::kString:
+ _cueSourceType = kCueSourceString;
+ _cueSource.asString = data.executeAt.value.asString;
+ break;
default:
return false;
}
diff --git a/engines/mtropolis/plugin/standard.h b/engines/mtropolis/plugin/standard.h
index f3bebf57b9f..2710c26539d 100644
--- a/engines/mtropolis/plugin/standard.h
+++ b/engines/mtropolis/plugin/standard.h
@@ -124,19 +124,23 @@ private:
kCueSourceIntegerRange,
kCueSourceVariableReference,
kCueSourceLabel,
+ kCueSourceString,
kCueSourceInvalid = -1,
};
- union CueSourceUnion {
+ struct CueSourceUnion {
CueSourceUnion();
~CueSourceUnion();
- int32 asInt;
- IntRange asIntRange;
- uint32 asVarRefGUID;
- Label asLabel;
- uint64 asUnset;
+ union {
+ int32 asInt;
+ IntRange asIntRange;
+ uint32 asVarRefGUID;
+ Label asLabel;
+ uint64 asUnset;
+ };
+ Common::String asString; //String object in the union would prevent copyability
template<class T, T (CueSourceUnion::*TMember)>
void construct(const T &value);
More information about the Scummvm-git-logs
mailing list