[Scummvm-git-logs] scummvm master -> 6edd735c6ce47d3a76178d3ff42898be09df94f6
rvanlaar
noreply at scummvm.org
Fri Jan 3 16:43:06 UTC 2025
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:
6edd735c6c DIRECTOR: Implement RTECastMember duplication
Commit: 6edd735c6ce47d3a76178d3ff42898be09df94f6
https://github.com/scummvm/scummvm/commit/6edd735c6ce47d3a76178d3ff42898be09df94f6
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2025-01-03T17:42:32+01:00
Commit Message:
DIRECTOR: Implement RTECastMember duplication
Implement support for `RTECastMember` in `duplicateCastMember`.
Adds a constructor on `RTECastMember` for duplication.
Resolves a crash in the Safecracker menu where the error was:
Uncaught Lingo error: No match found for cast member
Changed paths:
engines/director/cast.cpp
engines/director/castmember/text.cpp
engines/director/castmember/text.h
diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index 15b36205436..9434cebf8b3 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -277,6 +277,9 @@ bool Cast::duplicateCastMember(CastMember *source, CastMemberInfo *info, int tar
case kCastText:
target = (CastMember *)(new TextCastMember(this, targetId, *(TextCastMember *)source));
break;
+ case kCastRTE:
+ target = (CastMember *)(new RTECastMember(this, targetId, *(RTECastMember *)source));
+ break;
case kCastTransition:
target = (CastMember *)(new TransitionCastMember(this, targetId, *(TransitionCastMember *)source));
break;
diff --git a/engines/director/castmember/text.cpp b/engines/director/castmember/text.cpp
index c145fdac921..13f9277830f 100644
--- a/engines/director/castmember/text.cpp
+++ b/engines/director/castmember/text.cpp
@@ -742,6 +742,12 @@ RTECastMember::RTECastMember(Cast *cast, uint16 castId, Common::SeekableReadStre
_type = kCastRTE;
}
+RTECastMember::RTECastMember(Cast *cast, uint16 castId, RTECastMember &source)
+ : TextCastMember(cast, castId, source) {
+
+ _type = kCastRTE;
+}
+
void RTECastMember::load() {
if (_loaded)
return;
diff --git a/engines/director/castmember/text.h b/engines/director/castmember/text.h
index 4a8e4a94d1c..21600fef73d 100644
--- a/engines/director/castmember/text.h
+++ b/engines/director/castmember/text.h
@@ -102,6 +102,7 @@ private:
class RTECastMember : public TextCastMember {
public:
RTECastMember(Cast *cast, uint16 castId, Common::SeekableReadStreamEndian &stream, uint16 version);
+ RTECastMember(Cast *cast, uint16 castId, RTECastMember &source);
void loadChunks();
void load() override;
More information about the Scummvm-git-logs
mailing list