diff --git a/sword1/menu.cpp b/sword1/menu.cpp index f085a549644..6d0b281fa53 100644 --- a/sword1/menu.cpp +++ b/sword1/menu.cpp @@ -299,6 +299,7 @@ void SwordMenu::fnStartMenu(void) { SwordLogic::_scriptVars[OBJECT_HELD] = 0; // icon no longer selected SwordLogic::_scriptVars[SECOND_ITEM] = 0; // second icon no longer selected (after using one on another) SwordLogic::_scriptVars[MENU_LOOKING] = 0; // no longer 'looking at' an icon + _mouse->setLuggage(0, 0); buildMenu(); _mouse->controlPanel(true); // so that the arrow cursor will be shown. showMenu(MENU_TOP); @@ -313,6 +314,7 @@ void SwordMenu::fnEndMenu(void) { void SwordMenu::fnChooser(BsObject *compact) { SwordLogic::_scriptVars[OBJECT_HELD] = 0; + _mouse->setLuggage(0, 0); buildSubjects(); compact->o_logic = LOGIC_choose; _mouse->controlPanel(true); // so the mouse cursor will be shown. @@ -324,6 +326,7 @@ void SwordMenu::fnEndChooser(void) { _subjectBarStatus = MENU_CLOSING; _objectBarStatus = MENU_CLOSING; _mouse->controlPanel(false); + _mouse->setLuggage(0, 0); } void SwordMenu::checkTopMenu(void) { diff --git a/sword1/mouse.cpp b/sword1/mouse.cpp index 5412dd1ebe0..035ead96a92 100644 --- a/sword1/mouse.cpp +++ b/sword1/mouse.cpp @@ -243,7 +243,7 @@ void SwordMouse::setLuggage(uint32 resId, uint32 rate) { } void SwordMouse::animate(void) { - if ((SwordLogic::_scriptVars[MOUSE_STATUS] == 1) || _mouseOverride) { + if ((SwordLogic::_scriptVars[MOUSE_STATUS] == 1) || (_mouseOverride && _currentPtr)) { _frame = (_frame + 1) % _currentPtr->numFrames; uint8 *ptrData = (uint8*)_currentPtr + sizeof(MousePtr); ptrData += _frame * _currentPtr->sizeX * _currentPtr->sizeY;