[Scummvm-git-logs] scummvm master -> 4173f39e0f83866ff23152e772c2b5f0511ef4be

AndywinXp noreply at scummvm.org
Sat Nov 8 20:35:02 UTC 2025


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:
4173f39e0f LASTEXPRESS: Fix copySeq copying stale values


Commit: 4173f39e0f83866ff23152e772c2b5f0511ef4be
    https://github.com/scummvm/scummvm/commit/4173f39e0f83866ff23152e772c2b5f0511ef4be
Author: AndywinXp (andywinxp at gmail.com)
Date: 2025-11-08T21:34:56+01:00

Commit Message:
LASTEXPRESS: Fix copySeq copying stale values

This fixes #16335:
"LASTEXPRESS: Coudert's sprite loops between two states"

Changed paths:
    engines/lastexpress/memory.cpp


diff --git a/engines/lastexpress/memory.cpp b/engines/lastexpress/memory.cpp
index 5ae5941a3f4..4dd2c0a5451 100644
--- a/engines/lastexpress/memory.cpp
+++ b/engines/lastexpress/memory.cpp
@@ -291,6 +291,12 @@ Seq *MemoryManager::copySeq(Seq *sequenceToCopy) {
 		newSeq->sprites[frame].copyScreenAndRedrawFlag = newSeqDataStream->readByte();
 		newSeq->sprites[frame].spritesUnk3 = newSeqDataStream->readByte();
 		newSeq->sprites[frame].ticksToWaitUntilCycleRestart = newSeqDataStream->readByte();
+
+		// This variable could have been edited afterwards...
+		if (newSeq->sprites[frame].ticksToWaitUntilCycleRestart != sequenceToCopy->sprites[frame].ticksToWaitUntilCycleRestart) {
+			newSeq->sprites[frame].ticksToWaitUntilCycleRestart = sequenceToCopy->sprites[frame].ticksToWaitUntilCycleRestart;
+		}
+
 		newSeq->sprites[frame].soundDelay = newSeqDataStream->readByte();
 		newSeq->sprites[frame].soundAction = newSeqDataStream->readByte();
 		newSeq->sprites[frame].flags = newSeqDataStream->readByte();
@@ -303,6 +309,11 @@ Seq *MemoryManager::copySeq(Seq *sequenceToCopy) {
 		newSeq->sprites[frame].visibilityDist = newSeqDataStream->readUint16LE();
 		newSeq->sprites[frame].hotspotPriority = newSeqDataStream->readUint16LE();
 
+		// This variable could have been edited afterwards...
+		if (newSeq->sprites[frame].hotspotPriority != sequenceToCopy->sprites[frame].hotspotPriority) {
+			newSeq->sprites[frame].hotspotPriority = sequenceToCopy->sprites[frame].hotspotPriority;
+		}
+
 		newSeqDataStream->readUint32LE(); // Empty "next" sprite pointer
 	}
 




More information about the Scummvm-git-logs mailing list