aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWalter van Niftrik2010-01-24 18:57:23 +0000
committerWalter van Niftrik2010-01-24 18:57:23 +0000
commite7e90061228b4a680fa0a15cdfca413636d22396 (patch)
treeae595f249e3713c0cce803d15baaff059dc426ea
parent865b176b15a6a84c403129e6eac87694ce4d6be0 (diff)
downloadscummvm-rg350-e7e90061228b4a680fa0a15cdfca413636d22396.tar.gz
scummvm-rg350-e7e90061228b4a680fa0a15cdfca413636d22396.tar.bz2
scummvm-rg350-e7e90061228b4a680fa0a15cdfca413636d22396.zip
SCI: Fix list control scrolling in Jones EGA and VGA.
svn-id: r47511
-rw-r--r--engines/sci/engine/kgraphics.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp
index 3048e30745..3f96afcd9a 100644
--- a/engines/sci/engine/kgraphics.cpp
+++ b/engines/sci/engine/kgraphics.cpp
@@ -779,8 +779,11 @@ void _k_GenericDrawControl(EngineState *s, reg_t controlObject, bool hilite) {
// Games from early SCI1 onwards use topString
upperOffset = GET_SEL32V(s->_segMan, controlObject, topString);
} else {
- // Earlier games use lsTop
- upperOffset = GET_SEL32V(s->_segMan, controlObject, lsTop);
+ // Earlier games use lsTop or brTop
+ if (lookup_selector(s->_segMan, controlObject, s->_kernel->_selectorCache.brTop, NULL, NULL) == kSelectorVariable)
+ upperOffset = GET_SEL32V(s->_segMan, controlObject, brTop);
+ else
+ upperOffset = GET_SEL32V(s->_segMan, controlObject, lsTop);
}
// Count string entries in NULL terminated string list