aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics
diff options
context:
space:
mode:
authorFilippos Karapetis2011-10-20 00:46:42 +0300
committerFilippos Karapetis2011-10-20 00:47:53 +0300
commit228c4fb2869fe9394cb437307cb7125141487546 (patch)
tree9e98a983e6c15a006eb1711b73032252a2f4fce0 /engines/sci/graphics
parentd1956307f836376edbf154029ec6b3609522a54c (diff)
downloadscummvm-rg350-228c4fb2869fe9394cb437307cb7125141487546.tar.gz
scummvm-rg350-228c4fb2869fe9394cb437307cb7125141487546.tar.bz2
scummvm-rg350-228c4fb2869fe9394cb437307cb7125141487546.zip
SCI: Added a hack to fix bug #3035693 - "SCI: QFG3 demo: Rope swinging more heroic than ever"
Diffstat (limited to 'engines/sci/graphics')
-rw-r--r--engines/sci/graphics/view.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/engines/sci/graphics/view.cpp b/engines/sci/graphics/view.cpp
index d5c52bfb59..e095cde697 100644
--- a/engines/sci/graphics/view.cpp
+++ b/engines/sci/graphics/view.cpp
@@ -172,6 +172,20 @@ void GfxView::initData(GuiResourceId resourceId) {
cel->displaceX = (signed char)celData[4];
cel->displaceY = celData[5];
cel->clearKey = celData[6];
+
+ // HACK: Fix Ego's odd displacement in the QFG3 demo, scene 740.
+ // For some reason, ego jumps above the rope, so we fix his rope
+ // hanging view by displacing it down by 40 pixels. Fixes bug
+ // #3035693.
+ // FIXME: Remove this once we figure out why Ego jumps so high.
+ // Likely culprits include kInitBresen, kDoBresen and kCantBeHere.
+ // The scripts have the y offset that hero reaches (11) hardcoded,
+ // so it might be collision detection. However, since this requires
+ // extensive work to fix properly for very little gain, this hack
+ // here will suffice until the actual issue is found.
+ if (g_sci->getGameId() == GID_QFG3 && g_sci->isDemo() && resourceId == 39)
+ cel->displaceY = 98;
+
if (isEGA) {
cel->offsetEGA = celOffset + 7;
cel->offsetRLE = 0;