[Scummvm-cvs-logs] scummvm master -> 4938e49e2df1d2f8f794461a32a7da86f4e1e967

bluegr md5 at scummvm.org
Sun Jan 8 18:05:16 CET 2012


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
2bc89ea4dc TSAGE: Fix incorrect popup menu positions (regression)
4938e49e2d TSAGE: Fix assert triggering when there's nothing to update on screen


Commit: 2bc89ea4dcab39607002427862a6e0afacaad113
    https://github.com/scummvm/scummvm/commit/2bc89ea4dcab39607002427862a6e0afacaad113
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-01-08T09:03:41-08:00

Commit Message:
TSAGE: Fix incorrect popup menu positions (regression)

Changed paths:
    engines/tsage/graphics.cpp



diff --git a/engines/tsage/graphics.cpp b/engines/tsage/graphics.cpp
index 8436afe..b211f91 100644
--- a/engines/tsage/graphics.cpp
+++ b/engines/tsage/graphics.cpp
@@ -1302,19 +1302,31 @@ int GfxManager::getAngle(const Common::Point &p1, const Common::Point &p2) {
 	}
 }
 
+// FIXME: The two checks for screenSurface inside these two copyFrom() methods
+// are meant for Ringworld 2, but the corresponding setBounds case causes a lot
+// of issues with the popup menus when right clicking in all games (i.e. the
+// popup menu is always shown on the top left of the screen). For now, these checks
+// are limited for R2R only (as was the original intent), but they should be
+// investigated, as they cause the same glitches with the popup menu there as with
+// the other games.
 
 void GfxManager::copyFrom(GfxSurface &src, Rect destBounds, Region *priorityRegion) {
+#if 0
 	if (&_surface == &(GLOBALS._screenSurface))
 		_surface.setBounds(Rect(0, 0, _bounds.width(), _bounds.height()));
 	else
+#endif
 		_surface.setBounds(_bounds);
 
 	_surface.copyFrom(src, destBounds, priorityRegion);
 }
+
 void GfxManager::copyFrom(GfxSurface &src, int destX, int destY) {
+#if 0
 	if (&_surface == &(GLOBALS._screenSurface))
 		_surface.setBounds(Rect(0, 0, _bounds.width(), _bounds.height()));
 	else
+#endif
 		_surface.setBounds(_bounds);
 
 	_surface.copyFrom(src, destX, destY);


Commit: 4938e49e2df1d2f8f794461a32a7da86f4e1e967
    https://github.com/scummvm/scummvm/commit/4938e49e2df1d2f8f794461a32a7da86f4e1e967
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-01-08T09:03:43-08:00

Commit Message:
TSAGE: Fix assert triggering when there's nothing to update on screen

Changed paths:
    engines/tsage/graphics.cpp



diff --git a/engines/tsage/graphics.cpp b/engines/tsage/graphics.cpp
index b211f91..afaf051 100644
--- a/engines/tsage/graphics.cpp
+++ b/engines/tsage/graphics.cpp
@@ -259,6 +259,12 @@ void GfxSurface::updateScreen() {
 	for (Common::List<Rect>::iterator i = _dirtyRects.begin(); i != _dirtyRects.end(); ++i) {
 		Rect r = *i;
 
+		// Make sure that there is something to update. If not, skip this
+		// rectangle. An example case is the speedbike closeup at the beginning
+		// of Ringworld (third screen).
+		if (r.isEmpty())
+			continue;
+
 		const byte *srcP = (const byte *)_customSurface->getBasePtr(r.left, r.top);
 		g_system->copyRectToScreen(srcP, _customSurface->pitch, r.left, r.top, 
 			r.width(), r.height());






More information about the Scummvm-git-logs mailing list