[Scummvm-git-logs] scummvm master -> de44a90a4d6daac002fed6f483ec56199e856654

sev- noreply at scummvm.org
Thu Jul 23 14:00:16 UTC 2026


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
de44a90a4d DIRECTOR: Don't mark bitmaps runtime-changed at load time


Commit: de44a90a4d6daac002fed6f483ec56199e856654
    https://github.com/scummvm/scummvm/commit/de44a90a4d6daac002fed6f483ec56199e856654
Author: Gianluca Boiano (morf3089 at gmail.com)
Date: 2026-07-23T16:00:13+02:00

Commit Message:
DIRECTOR: Don't mark bitmaps runtime-changed at load time

BitmapCastMember::load() routes the decoded image through setPicture(),
which flags the member as changed so the renderer refreshes. That flag
is also the save preflight's persist-dirty signal, so every loaded
bitmap looked runtime-modified and movies whose version has no bitmap
writer (D6+) refused to save.

Preserve the change-tracking state across the load: a freshly loaded
member matches its on-disk data by definition.

Fixes TKKG4 refusing to save on its first save attempt

Changed paths:
    engines/director/castmember/bitmap.cpp


diff --git a/engines/director/castmember/bitmap.cpp b/engines/director/castmember/bitmap.cpp
index 9361b980590..24bb74c788f 100644
--- a/engines/director/castmember/bitmap.cpp
+++ b/engines/director/castmember/bitmap.cpp
@@ -827,7 +827,11 @@ void BitmapCastMember::load() {
 
 	// dumpFile("LoadedBitmap", _castId, MKTAG('B', 'I', 'T', 'D'), (byte *)img->getSurface()->getPixels(), img->getSurface()->h * img->getSurface()->w);
 
+	// setPicture() marks us dirty so the renderer refreshes, but loading
+	// itself is not a runtime change: restore the change-tracking state
+	bool wasChanged = _isChanged;
 	setPicture(*img, true);
+	_isChanged = wasChanged;
 
 	if (ConfMan.getBool("dump_scripts")) {
 




More information about the Scummvm-git-logs mailing list