[Scummvm-git-logs] scummvm master -> 4b4f4da44fd775f634694be9f09da51a7a015f6a

moralrecordings noreply at scummvm.org
Fri May 31 09:18:25 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:
4b4f4da44f DIRECTOR: Fix missing cast member ID in palette record


Commit: 4b4f4da44fd775f634694be9f09da51a7a015f6a
    https://github.com/scummvm/scummvm/commit/4b4f4da44fd775f634694be9f09da51a7a015f6a
Author: Scott Percival (code at moral.net.au)
Date: 2024-05-31T17:15:57+08:00

Commit Message:
DIRECTOR: Fix missing cast member ID in palette record

This is relied on by b_puppetSprite.

Fixes various palette regressions in The Dark Eye.

Changed paths:
    engines/director/castmember/palette.cpp
    engines/director/castmember/palette.h


diff --git a/engines/director/castmember/palette.cpp b/engines/director/castmember/palette.cpp
index e6ef96e646e..0c59ab0c072 100644
--- a/engines/director/castmember/palette.cpp
+++ b/engines/director/castmember/palette.cpp
@@ -48,6 +48,17 @@ PaletteCastMember::~PaletteCastMember() {
 	}
 }
 
+CastMemberID PaletteCastMember::getPaletteId() {
+	load();
+	return _palette ? _palette->id : CastMemberID();
+}
+
+void PaletteCastMember::activatePalette() {
+	load();
+	if (_palette)
+		g_director->setPalette(_palette->id);
+}
+
 Common::String PaletteCastMember::formatInfo() {
 	Common::String result;
 	if (_palette) {
@@ -89,8 +100,8 @@ void PaletteCastMember::load() {
 			Common::SeekableReadStreamEndian *pal = arch->getResource(MKTAG('C', 'L', 'U', 'T'), paletteId);
 			debugC(2, kDebugImages, "PaletteCastMember::load(): linking palette id %d to cast index %d", paletteId, _castId);
 			PaletteV4 palData = _cast->loadPalette(*pal, paletteId);
-			CastMemberID cid(_castId, _cast->_castLibID);
-			g_director->addPalette(cid, palData.palette, palData.length);
+			palData.id = CastMemberID(_castId, _cast->_castLibID);
+			g_director->addPalette(palData.id, palData.palette, palData.length);
 			_palette = new PaletteV4(palData);
 			delete pal;
 		} else {
diff --git a/engines/director/castmember/palette.h b/engines/director/castmember/palette.h
index d669d78b82b..78e5bb90f9d 100644
--- a/engines/director/castmember/palette.h
+++ b/engines/director/castmember/palette.h
@@ -31,8 +31,8 @@ public:
 	PaletteCastMember(Cast *cast, uint16 castId, Common::SeekableReadStreamEndian &stream, uint16 version);
 	PaletteCastMember(Cast *cast, uint16 castId, PaletteCastMember &source);
 	~PaletteCastMember();
-	CastMemberID getPaletteId() { return _palette ? _palette->id : CastMemberID(0, 0); }
-	void activatePalette() { if (_palette) g_director->setPalette(_palette->id); }
+	CastMemberID getPaletteId();
+	void activatePalette();
 
 	Common::String formatInfo() override;
 




More information about the Scummvm-git-logs mailing list