[Scummvm-git-logs] scummvm master -> 96e896fad890d250099e5b51c94d8e8fa99289a7

aquadran noreply at scummvm.org
Sat Jan 31 14:06:12 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:
96e896fad8 WINTERMUTE: Fixed 'Face Noir' (bug #16175) and 'The Ancient Mark' games


Commit: 96e896fad890d250099e5b51c94d8e8fa99289a7
    https://github.com/scummvm/scummvm/commit/96e896fad890d250099e5b51c94d8e8fa99289a7
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2026-01-31T15:06:04+01:00

Commit Message:
WINTERMUTE: Fixed 'Face Noir' (bug #16175) and 'The Ancient Mark' games

Changed paths:
    engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
    engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
    engines/wintermute/base/gfx/tinygl/base_surface_tinygl.cpp


diff --git a/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp b/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
index cfe40fa529f..09052f8af65 100644
--- a/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
@@ -395,7 +395,16 @@ bool BaseSurfaceOpenGL3D::isTransparentAtLite(int x, int y) const {
 
 	uint8 a, r, g, b;
 	_imageData->format.colorToARGB(_imageData->getPixel(x, y), a, r, g, b);
-	return a == 0;
+	// Keep behavior in sync with the 2D renderer, which implements the WME Lite logic
+	// by comparing alpha against 128.
+	// This differs from the original WME1 sources, where alpha is compared against 0.
+	// The likely reason for this discrepancy is a difference in how bitmaps are
+	// converted after loading.
+	if (a <= 128) {
+		return true;
+	} else {
+		return false;
+	}
 }
 
 void BaseSurfaceOpenGL3D::setTexture() {
diff --git a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
index 497c5f6513c..3da65a53202 100644
--- a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
+++ b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
@@ -268,6 +268,10 @@ bool BaseSurfaceOSystem::isTransparentAtLite(int x, int y) const {
 	uint32 pixel = _surface->getPixel(x, y);
 	uint8 r, g, b, a;
 	_surface->format.colorToARGB(pixel, a, r, g, b);
+	// This implements the WME Lite logic by comparing alpha against 128.
+	// This differs from the original WME1 sources, where alpha is compared against 0.
+	// The likely reason for this discrepancy is a difference in how bitmaps are
+	// converted after loading.
 	if (a <= 128) {
 		return true;
 	} else {
diff --git a/engines/wintermute/base/gfx/tinygl/base_surface_tinygl.cpp b/engines/wintermute/base/gfx/tinygl/base_surface_tinygl.cpp
index a53c6c5cd92..582ce8bbba1 100644
--- a/engines/wintermute/base/gfx/tinygl/base_surface_tinygl.cpp
+++ b/engines/wintermute/base/gfx/tinygl/base_surface_tinygl.cpp
@@ -386,7 +386,16 @@ bool BaseSurfaceTinyGL::isTransparentAtLite(int x, int y) const {
 
 	uint8 a, r, g, b;
 	_imageData->format.colorToARGB(_imageData->getPixel(x, y), a, r, g, b);
-	return a == 0;
+	// Keep behavior in sync with the 2D renderer, which implements the WME Lite logic
+	// by comparing alpha against 128.
+	// This differs from the original WME1 sources, where alpha is compared against 0.
+	// The likely reason for this discrepancy is a difference in how bitmaps are
+	// converted after loading.
+	if (a <= 128) {
+		return true;
+	} else {
+		return false;
+	}
 }
 
 void BaseSurfaceTinyGL::setTexture() {




More information about the Scummvm-git-logs mailing list