aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra
diff options
context:
space:
mode:
authorFlorian Kagerer2010-10-22 13:10:41 +0000
committerFlorian Kagerer2010-10-22 13:10:41 +0000
commitd6e4c07dac32cb184e69fa41772f13b6769933c6 (patch)
tree0dc7cb523d371e002e5a2f09b2574270436783d4 /engines/kyra
parentb816a81c028730c586e29045ac24e11d49e2ca0f (diff)
downloadscummvm-rg350-d6e4c07dac32cb184e69fa41772f13b6769933c6.tar.gz
scummvm-rg350-d6e4c07dac32cb184e69fa41772f13b6769933c6.tar.bz2
scummvm-rg350-d6e4c07dac32cb184e69fa41772f13b6769933c6.zip
LOL: fix possible regressions
svn-id: r53700
Diffstat (limited to 'engines/kyra')
-rw-r--r--engines/kyra/items_lol.cpp3
-rw-r--r--engines/kyra/script_lol.cpp8
2 files changed, 8 insertions, 3 deletions
diff --git a/engines/kyra/items_lol.cpp b/engines/kyra/items_lol.cpp
index 52c75f8b5e..5db4ff9f26 100644
--- a/engines/kyra/items_lol.cpp
+++ b/engines/kyra/items_lol.cpp
@@ -271,6 +271,9 @@ void LoLEngine::runItemScript(int charNum, int item, int flags, int next, int re
}
void LoLEngine::setHandItem(Item itemIndex) {
+ if (itemIndex == -1)
+ return;
+
if (itemIndex && _itemProperties[_itemsInPlay[itemIndex].itemPropertyIndex].flags & 0x80) {
runItemScript(-1, itemIndex, 0x400, 0, 0);
if (_itemsInPlay[itemIndex].shpCurFrame_flg & 0x8000)
diff --git a/engines/kyra/script_lol.cpp b/engines/kyra/script_lol.cpp
index 1034e86d4e..104a135ff6 100644
--- a/engines/kyra/script_lol.cpp
+++ b/engines/kyra/script_lol.cpp
@@ -700,7 +700,7 @@ int LoLEngine::olol_setGlobalVar(EMCState *script) {
break;
case 3:
- setHandItem(b);
+ setHandItem((Item)b);
break;
case 4:
@@ -1065,7 +1065,9 @@ int LoLEngine::olol_createHandItem(EMCState *script) {
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_createHandItem(%p) (%d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2));
if (_itemInHand)
return 0;
- setHandItem(makeItem(stackPos(0), stackPos(1), stackPos(2)));
+
+ uint16 itm = makeItem(stackPos(0), stackPos(1), stackPos(2));
+ setHandItem((Item)itm);
return 1;
}
@@ -2085,7 +2087,7 @@ int LoLEngine::olol_placeInventoryItemInHand(EMCState *script) {
_inventoryCurItem = i;
int r = _itemInHand;
- setHandItem(_inventory[i]);
+ setHandItem((Item)_inventory[i]);
_inventory[i] = r;
if (stackPos(1))