[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