diff options
author | Florian Kagerer | 2010-10-22 13:10:41 +0000 |
---|---|---|
committer | Florian Kagerer | 2010-10-22 13:10:41 +0000 |
commit | d6e4c07dac32cb184e69fa41772f13b6769933c6 (patch) | |
tree | 0dc7cb523d371e002e5a2f09b2574270436783d4 /engines/kyra | |
parent | b816a81c028730c586e29045ac24e11d49e2ca0f (diff) | |
download | scummvm-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.cpp | 3 | ||||
-rw-r--r-- | engines/kyra/script_lol.cpp | 8 |
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)) |