diff options
| author | Willem Jan Palenstijn | 2017-07-09 17:25:17 +0200 |
|---|---|---|
| committer | Willem Jan Palenstijn | 2017-07-09 22:56:04 +0200 |
| commit | 820caf370e2c24e6aefd8b1b90227ca29564bab6 (patch) | |
| tree | 053eaaf33fc0ea8e63be6c2265942251934181ac /engines/sci/engine | |
| parent | 33cfcfd5ff626e8b341fdee3171bf1367191fe65 (diff) | |
| download | scummvm-rg350-820caf370e2c24e6aefd8b1b90227ca29564bab6.tar.gz scummvm-rg350-820caf370e2c24e6aefd8b1b90227ca29564bab6.tar.bz2 scummvm-rg350-820caf370e2c24e6aefd8b1b90227ca29564bab6.zip | |
SCI32: Fix kObjectIntersect
It was using SCI16 calls to get the NowSeenRects.
This fixes #9855.
Diffstat (limited to 'engines/sci/engine')
| -rw-r--r-- | engines/sci/engine/kgraphics32.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/engines/sci/engine/kgraphics32.cpp b/engines/sci/engine/kgraphics32.cpp index 76ed27ae68..44a3517458 100644 --- a/engines/sci/engine/kgraphics32.cpp +++ b/engines/sci/engine/kgraphics32.cpp @@ -102,20 +102,14 @@ reg_t kSetNowSeen32(EngineState *s, int argc, reg_t *argv) { // NOTE: MGDX is assumed to use the older kSetNowSeen since it was // released before SQ6, but this has not been verified since it cannot be // disassembled at the moment (Phar Lap Windows-only release) + // (See also getNowSeenRect) if (getSciVersion() <= SCI_VERSION_2_1_EARLY || g_sci->getGameId() == GID_SQ6 || g_sci->getGameId() == GID_MOTHERGOOSEHIRES) { - if (!found) { - error("kSetNowSeen: Unable to find screen item %04x:%04x", PRINT_REG(argv[0])); - } return s->r_acc; } - if (!found) { - warning("kSetNowSeen: Unable to find screen item %04x:%04x", PRINT_REG(argv[0])); - } - return make_reg(0, found); } @@ -245,9 +239,8 @@ reg_t kSetPalStyleRange(EngineState *s, int argc, reg_t *argv) { } reg_t kObjectIntersect(EngineState *s, int argc, reg_t *argv) { - Common::Rect objRect1 = g_sci->_gfxCompare->getNSRect(argv[0]); - Common::Rect objRect2 = g_sci->_gfxCompare->getNSRect(argv[1]); - return make_reg(0, objRect1.intersects(objRect2)); + int16 area = g_sci->_gfxFrameout->kernelObjectIntersect(argv[0], argv[1]); + return make_reg(0, area); } reg_t kIsOnMe(EngineState *s, int argc, reg_t *argv) { |
