diff options
Diffstat (limited to 'engines/kyra/kyra_mr.cpp')
-rw-r--r-- | engines/kyra/kyra_mr.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/engines/kyra/kyra_mr.cpp b/engines/kyra/kyra_mr.cpp index 1ed347953d..d2987d314f 100644 --- a/engines/kyra/kyra_mr.cpp +++ b/engines/kyra/kyra_mr.cpp @@ -79,6 +79,8 @@ KyraEngine_MR::KyraEngine_MR(OSystem *system, const GameFlags &flags) : KyraEngi _mainCharacter.facing = 5; _mainCharacter.animFrame = 0x57; _mainCharacter.walkspeed = 5; + memset(_activeItemAnim, 0, sizeof(_activeItemAnim)); + _nextAnimItem = 0; _text = 0; _commandLineY = 189; _inventoryState = false; @@ -1125,7 +1127,7 @@ void KyraEngine_MR::update() { updateMouse(); updateSpecialSceneScripts(); updateCommandLine(); - //XXX + updateItemAnimations(); musicUpdate(0); _screen->updateScreen(); @@ -1137,7 +1139,7 @@ void KyraEngine_MR::updateWithText() { musicUpdate(0); updateMouse(); - //XXX + updateItemAnimations(); updateSpecialSceneScripts(); updateCommandLine(); musicUpdate(0); @@ -1265,9 +1267,11 @@ void KyraEngine_MR::updateMouse() { } if (type != 0 && type != _handItemSet && !hasItemCollision) { + _mouseState = _handItemSet = type; _handItemSet = type; _screen->setMouseCursor(offsetX, offsetY, _gameShapes[shape]); } else if (type == 0 && _handItemSet != _itemInHand && mouse.x > 8 && mouse.x < 311 && mouse.y < 171 && mouse.y > 8) { + _mouseState = 0; setItemMouseCursor(); } else if (mouse.y > 187 && _handItemSet > -4 && type == 0 && !_inventoryState) { showInventory(); |