[Scummvm-git-logs] scummvm master -> 2244b8c30a66faad853c6dd977948a4bb4947b29

aquadran noreply at scummvm.org
Sat Aug 16 11:11:23 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:
2244b8c30a WINTERMUTE: Small code sync with original


Commit: 2244b8c30a66faad853c6dd977948a4bb4947b29
    https://github.com/scummvm/scummvm/commit/2244b8c30a66faad853c6dd977948a4bb4947b29
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2025-08-16T13:11:17+02:00

Commit Message:
WINTERMUTE: Small code sync with original

Changed paths:
    engines/wintermute/ad/ad_layer.cpp
    engines/wintermute/ad/ad_scene.cpp
    engines/wintermute/ad/ad_scene.h


diff --git a/engines/wintermute/ad/ad_layer.cpp b/engines/wintermute/ad/ad_layer.cpp
index 982baa077a2..b1f400f9dff 100644
--- a/engines/wintermute/ad/ad_layer.cpp
+++ b/engines/wintermute/ad/ad_layer.cpp
@@ -27,6 +27,8 @@
 
 #include "engines/wintermute/base/base_game.h"
 #include "engines/wintermute/ad/ad_layer.h"
+#include "engines/wintermute/ad/ad_game.h"
+#include "engines/wintermute/ad/ad_scene.h"
 #include "engines/wintermute/ad/ad_scene_node.h"
 #include "engines/wintermute/base/base_dynamic_buffer.h"
 #include "engines/wintermute/base/base_file_manager.h"
@@ -463,6 +465,7 @@ bool AdLayer::scSetProperty(const char *name, ScValue *value) {
 		if (_width < 0) {
 			_width = 0;
 		}
+		((AdGame *)_gameRef)->_scene->onLayerResized(this);
 		return STATUS_OK;
 	}
 
@@ -474,6 +477,7 @@ bool AdLayer::scSetProperty(const char *name, ScValue *value) {
 		if (_height < 0) {
 			_height = 0;
 		}
+		((AdGame *)_gameRef)->_scene->onLayerResized(this);
 		return STATUS_OK;
 	}
 
diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp
index 2f90c96d261..37c4369cdde 100644
--- a/engines/wintermute/ad/ad_scene.cpp
+++ b/engines/wintermute/ad/ad_scene.cpp
@@ -359,7 +359,7 @@ uint32 AdScene::getAlphaAt(int x, int y, bool colorCheck) {
 	}
 
 	if (_mainLayer) {
-		for (int32 i = (int32)_mainLayer->_nodes.getSize() - 1; i >= 0; i--) {
+		for (int32 i = _mainLayer->_nodes.getSize() - 1; i >= 0; i--) {
 			AdSceneNode *node = _mainLayer->_nodes[i];
 			if (node->_type == OBJECT_REGION && node->_region->_active && (colorCheck || !node->_region->_blocked) && node->_region->pointInRegion(x, y)) {
 				if (!node->_region->_blocked) {
@@ -1237,6 +1237,7 @@ bool AdScene::traverseNodes(bool doUpdate) {
 						_gameRef->_renderer->setup2D();
 					}
 
+					// only display 3D if geometry is set
 					if (!node->_entity->_is3D || _geom) {
 						if (doUpdate) {
 							node->_entity->update();
@@ -3752,7 +3753,7 @@ bool AdScene::getRegionObjects(AdRegion *region, BaseArray<AdObject *> &objects,
 
 #ifdef ENABLE_WME3D
 //////////////////////////////////////////////////////////////////////////
-void Wintermute::AdScene::setMaxShadowType(Wintermute::TShadowType shadowType) {
+void AdScene::setMaxShadowType(Wintermute::TShadowType shadowType) {
 	if (shadowType > SHADOW_STENCIL) {
 		shadowType = SHADOW_STENCIL;
 	}
@@ -3765,6 +3766,14 @@ void Wintermute::AdScene::setMaxShadowType(Wintermute::TShadowType shadowType) {
 }
 #endif
 
+//////////////////////////////////////////////////////////////////////////
+void AdScene::onLayerResized(AdLayer *layer) {
+	if (layer != nullptr && layer == _mainLayer) {
+		_width = layer->_width;
+		_height = layer->_height;
+	}
+}
+
 Common::String AdScene::debuggerToString() const {
 	return Common::String::format("%p: Scene \"%s\", paralax: %d, autoscroll: %d", (const void *)this, _name, _paralaxScrolling, _autoScroll);
 }
diff --git a/engines/wintermute/ad/ad_scene.h b/engines/wintermute/ad/ad_scene.h
index 98d443a4c1c..02b76985224 100644
--- a/engines/wintermute/ad/ad_scene.h
+++ b/engines/wintermute/ad/ad_scene.h
@@ -187,6 +187,8 @@ public:
 	bool restoreDeviceObjects() override;
 	int getPointsDist(const BasePoint &p1, const BasePoint &p2, BaseObject *requester = nullptr);
 
+	void onLayerResized(AdLayer *layer);
+
 	// scripting interface
 	ScValue *scGetProperty(const Common::String &name) override;
 	bool scSetProperty(const char *name, ScValue *value) override;




More information about the Scummvm-git-logs mailing list