diff options
author | Martin Kiewitz | 2010-10-26 16:21:00 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-10-26 16:21:00 +0000 |
commit | 9af803f575aa63cd30e82c596e9e6cbac82613bb (patch) | |
tree | 63a8de11a99f62a365c1b0f19495b7b5b94c4229 /engines/sci | |
parent | a877ba002681f08785c6e01ab341193158c9c648 (diff) | |
download | scummvm-rg350-9af803f575aa63cd30e82c596e9e6cbac82613bb.tar.gz scummvm-rg350-9af803f575aa63cd30e82c596e9e6cbac82613bb.tar.bz2 scummvm-rg350-9af803f575aa63cd30e82c596e9e6cbac82613bb.zip |
SCI: kAnimate bit 2 is hoyle 4 exclusive
adjusted comments about that and also renamed the bit, also added additional TODO, because hoyle 4 has special code that gets into action, when bit 0 is not set, but bit 2 is
svn-id: r53853
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/graphics/animate.cpp | 16 | ||||
-rw-r--r-- | engines/sci/graphics/animate.h | 6 |
2 files changed, 9 insertions, 13 deletions
diff --git a/engines/sci/graphics/animate.cpp b/engines/sci/graphics/animate.cpp index 30329fa688..8aa6f5284f 100644 --- a/engines/sci/graphics/animate.cpp +++ b/engines/sci/graphics/animate.cpp @@ -286,16 +286,12 @@ void GfxAnimate::fill(byte &old_picNotValid) { view->getCelRect(it->loopNo, it->celNo, it->x, it->y, it->z, it->celRect); } - // This statement must be here for Hoyle4, otherwise cards are unclickable. - // This is probably one of the experimental features that were occasionally - // added to SCI interpreters; the corresponding check is absent in many SSCI - // versions. m_kiewitz knew about this flag before I (lskovlun) implemented it, - // so it is possible that more test cases are known. Also, some presently open - // SCI1.1 bugs may be fixed by this and should be re-tested with this patch generalized. - - // NOTE: *this* breaks at least eco quest 2. One should go through interpreters and check - // the code before enabling it for more games (TODO) - if ((g_sci->getGameId() == GID_HOYLE4) && (it->scaleSignal & kScaleSignalDontSetNsrect)) + // Checking for this bit must be here for Hoyle4, otherwise cards are unclickable. + // This feature is not included in the other SCI1.1 interpreters and MUST NOT be + // checked in those cases, otherwise we will break games (e.g. EcoQuest 2, room 200) + // TODO: hoyle 4 has different code inside kAnimate and even special code, when bit 0 is not + // set, but bit 2 is + if ((g_sci->getGameId() == GID_HOYLE4) && (it->scaleSignal & kScaleSignalHoyle4DontSetNsrect)) setNsRect = false; if (setNsRect) { diff --git a/engines/sci/graphics/animate.h b/engines/sci/graphics/animate.h index 12c8bd0643..04e6b36dcf 100644 --- a/engines/sci/graphics/animate.h +++ b/engines/sci/graphics/animate.h @@ -51,9 +51,9 @@ enum ViewSignals { }; enum ViewScaleSignals { - kScaleSignalDoScaling = 0x0001, // enables scaling when drawing that cel (involves scaleX and scaleY) - kScaleSignalGlobalScaling = 0x0002, // means that global scaling shall get applied on that cel (sets scaleX/scaleY) - kScaleSignalDontSetNsrect = 0x0004 // do not set nsRect inside kAnimate(); for a test case see bug #3038424 + kScaleSignalDoScaling = 0x0001, // enables scaling when drawing that cel (involves scaleX and scaleY) + kScaleSignalGlobalScaling = 0x0002, // means that global scaling shall get applied on that cel (sets scaleX/scaleY) + kScaleSignalHoyle4DontSetNsrect = 0x0004 // HOYLE4-exclusive: do not set nsRect inside kAnimate(); for a test case see bug #3038424 }; |