diff options
author | Filippos Karapetis | 2011-10-12 02:43:08 +0300 |
---|---|---|
committer | Filippos Karapetis | 2011-10-12 02:44:16 +0300 |
commit | 4af034a7a991d12ea062b90548fd4c7339d5b527 (patch) | |
tree | 60a82c8ca1a08912841ddbb7cd15247e692ce931 /engines/sci/engine | |
parent | 271a1018993c30ad7ba74fa5a1d7d6dd78ed7869 (diff) | |
download | scummvm-rg350-4af034a7a991d12ea062b90548fd4c7339d5b527.tar.gz scummvm-rg350-4af034a7a991d12ea062b90548fd4c7339d5b527.tar.bz2 scummvm-rg350-4af034a7a991d12ea062b90548fd4c7339d5b527.zip |
SCI: Added proper handling of duplicate items in kAddScreenItem
- Items that are being readded to the scene should be updated instead
- Added a findScreenItem() call to simplify the code slightly
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/kgraphics.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp index 5c33db080f..c60c0a44b9 100644 --- a/engines/sci/engine/kgraphics.cpp +++ b/engines/sci/engine/kgraphics.cpp @@ -1287,7 +1287,10 @@ reg_t kCantBeHere32(EngineState *s, int argc, reg_t *argv) { } reg_t kAddScreenItem(EngineState *s, int argc, reg_t *argv) { - g_sci->_gfxFrameout->kernelAddScreenItem(argv[0]); + if (g_sci->_gfxFrameout->findScreenItem(argv[0]) == NULL) + g_sci->_gfxFrameout->kernelAddScreenItem(argv[0]); + else + g_sci->_gfxFrameout->kernelUpdateScreenItem(argv[0]); return s->r_acc; } |