aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormd52011-03-08 13:44:09 +0200
committermd52011-03-08 13:44:09 +0200
commit6a31e398f76ec37a15d1aa40d7c93b6256cdea25 (patch)
treed4c35d1cb9db390fec85ddc5923176593ae8348a
parentb2a72da6518b30a58a1257ff7217185ae5683628 (diff)
downloadscummvm-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.cpp5
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