[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