[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