diff options
author | md5 | 2011-03-08 13:44:09 +0200 |
---|---|---|
committer | md5 | 2011-03-08 13:44:09 +0200 |
commit | 6a31e398f76ec37a15d1aa40d7c93b6256cdea25 (patch) | |
tree | d4c35d1cb9db390fec85ddc5923176593ae8348a | |
parent | b2a72da6518b30a58a1257ff7217185ae5683628 (diff) | |
download | scummvm-rg350-6a31e398f76ec37a15d1aa40d7c93b6256cdea25.tar.gz scummvm-rg350-6a31e398f76ec37a15d1aa40d7c93b6256cdea25.tar.bz2 scummvm-rg350-6a31e398f76ec37a15d1aa40d7c93b6256cdea25.zip |
SCI: Comparisons between pointers and numbers are also done in SCI1.1
Fixes SQ4CD
-rw-r--r-- | engines/sci/engine/vm_types.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/engines/sci/engine/vm_types.cpp b/engines/sci/engine/vm_types.cpp index 0b790bb8af..e14c0ca44b 100644 --- a/engines/sci/engine/vm_types.cpp +++ b/engines/sci/engine/vm_types.cpp @@ -193,7 +193,7 @@ int reg_t::cmp(const reg_t right, bool treatAsUnsigned) const { bool reg_t::pointerComparisonWithInteger(const reg_t right) const { // This function handles the case where a script tries to compare a pointer // to a number. Normally, we would not want to allow that. However, SCI0 - - // SCI1 scripts do this in order to distinguish references to + // SCI1.1 scripts do this in order to distinguish references to // external resources (which are numbers) from pointers. In // our SCI implementation, such a check may seem pointless, as // one can simply use the segment value to achieve this goal. @@ -220,7 +220,8 @@ bool reg_t::pointerComparisonWithInteger(const reg_t right) const { // Hoyle 3, Pachisi, when any opponent is about to talk // SQ1, room 28, when throwing water at the Orat // SQ1, room 58, when giving the ID card to the robot - return (isPointer() && right.isNumber() && right.offset <= 2000 && getSciVersion() <= SCI_VERSION_1_LATE); + // SQ4 CD, at the first game screen, when the narrator is about to talk + return (isPointer() && right.isNumber() && right.offset <= 2000 && getSciVersion() <= SCI_VERSION_1_1); } } // End of namespace Sci |