[Scummvm-git-logs] scummvm master -> 361ebbcd9e4e572694e66054841bf6a5f5607a8f

bluegr noreply at scummvm.org
Mon Mar 10 16:56:39 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:
361ebbcd9e SWORD25: Fix display order of deathscreen


Commit: 361ebbcd9e4e572694e66054841bf6a5f5607a8f
    https://github.com/scummvm/scummvm/commit/361ebbcd9e4e572694e66054841bf6a5f5607a8f
Author: rinevard (rinevard at outlook.com)
Date: 2025-03-10T18:56:36+02:00

Commit Message:
SWORD25: Fix display order of deathscreen

Fix death screen appearing behind save/load menu by adjusting its
z-value. The issue occurs due to differences in render order between
original engine and ScummVM implementation.

The original engine renders based on parent-child relationships, it
renders the subtree of a node completely before moving to other nodes.
while ScummVM sorts by absolute z-values (parent absolute z + child z).

View `BS_RenderObject::Render` in `renderobject.cpp` in the source code
of the original engine and `RenderObject::render` in `renderobject.cpp`
in the source code of ScummVM version for more details.

Fixes: https://bugs.scummvm.org/ticket/15426

Changed paths:
    engines/sword25/package/packagemanager.cpp


diff --git a/engines/sword25/package/packagemanager.cpp b/engines/sword25/package/packagemanager.cpp
index 7bee61fd8de..5cd7a7e5962 100644
--- a/engines/sword25/package/packagemanager.cpp
+++ b/engines/sword25/package/packagemanager.cpp
@@ -206,6 +206,15 @@ byte *PackageManager::getFile(const Common::String &fileName, uint *fileSizePtr)
 		}
 	}
 
+	// Modify the buffer to properly set the death screen as background 
+	// by changing its z value
+    if (fileName.equals("rooms/tod/scripts/default.lua")) {
+        char *found = strstr((char *)buffer, "self:AddOccluder('/rooms/tod/gfx/rip.png', { X = 0, Y = 80 }, 10)");
+        if (found != nullptr) {
+            memcpy(found + 62, " 8", 2);
+        }
+    }
+
 	if (!bytesRead) {
 		delete[] buffer;
 		return NULL;




More information about the Scummvm-git-logs mailing list