aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2010-01-20 19:45:42 +0000
committerMartin Kiewitz2010-01-20 19:45:42 +0000
commit49d3ba06bf8c249b440e4b3333a5dcebd8567fb7 (patch)
treec892dcff1124123f987109eae70a761a33c54a98
parentbbc2ec095802421f221046a3882792da52037eab (diff)
downloadscummvm-rg350-49d3ba06bf8c249b440e4b3333a5dcebd8567fb7.tar.gz
scummvm-rg350-49d3ba06bf8c249b440e4b3333a5dcebd8567fb7.tar.bz2
scummvm-rg350-49d3ba06bf8c249b440e4b3333a5dcebd8567fb7.zip
SCI: kDrawCel workaround documented and not temporary anymore
svn-id: r47409
-rw-r--r--engines/sci/engine/kgraphics.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp
index 71e11f98e1..47415e7565 100644
--- a/engines/sci/engine/kgraphics.cpp
+++ b/engines/sci/engine/kgraphics.cpp
@@ -918,9 +918,11 @@ reg_t kDrawCel(EngineState *s, int argc, reg_t *argv) {
bool hiresMode = (argc > 7) ? true : false;
reg_t upscaledHiresHandle = (argc > 7) ? argv[7] : NULL_REG;
- // WORKAROUND for script/VM issue in Freddy Pharkas - priority is taken from local variable and that is 8250h in sierra sci
- // and 0h in our sci. It seems as some interpreter issue.
if (s->_gameId == "freddypharkas") {
+ // WORKAROUND
+ // Script 24 contains code that draws the game menu on screen. It uses a temp variable for setting priority that
+ // is not set. in Sierra sci this happens to be 8250h. In our sci temporary variables are initialized thus we would
+ // get 0 here resulting in broken menus.
if ((viewId == 995) && (x == 0x33) && (y == 0x26)) // game menu
priority = 15;
if ((viewId == 992) && (x == 48) && (y == 24)) // quit game