[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