diff options
Diffstat (limited to 'engines/kyra/kyra_v3.cpp')
-rw-r--r-- | engines/kyra/kyra_v3.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/engines/kyra/kyra_v3.cpp b/engines/kyra/kyra_v3.cpp index 0c0b5e2415..6f12cb0fa4 100644 --- a/engines/kyra/kyra_v3.cpp +++ b/engines/kyra/kyra_v3.cpp @@ -1054,7 +1054,14 @@ void KyraEngine_v3::handleInput(int x, int y) { if (runSceneScript2()) return; } else if (_itemInHand >= 0 && _unk3 >= 0) { - //XXX + if (_itemInHand == 27) { + makeCharFacingMouse(); + } else if (y <= 187) { + if (_itemInHand == 43) + removeHandItem(); + else + dropItem(0, _itemInHand, x, y, 1); + } return; } else if (_unk3 == -3) { return; @@ -1422,6 +1429,17 @@ void KyraEngine_v3::resetSkipFlag(bool removeEvent) { } } +void KyraEngine_v3::makeCharFacingMouse() { + debugC(9, kDebugLevelAnimator, "KyraEngine_v3::makeCharFacingMouse()"); + if (_mainCharacter.x1 > _mouseX) + _mainCharacter.facing = 5; + else + _mainCharacter.facing = 3; + _mainCharacter.animFrame = _characterFrameTable[_mainCharacter.facing]; + updateCharacterAnim(0); + refreshAnimObjectsIfNeed(); +} + #pragma mark - int KyraEngine_v3::getDrawLayer(int x, int y) { |