void InputManager::updateConditionMask() { mMask = 1; if (keyboard.isEnabled()) mMask += COND_ENABLED; if ((!chatWindow || !chatWindow->isInputFocused()) && !NpcDialog::isAnyInputFocused() && !InventoryWindow::isAnyInputFocused() && (!tradeWindow || !tradeWindow->isInpupFocused())) { mMask += COND_NOINPUT; } if (!player_node || !player_node->getAway()) mMask += COND_NOAWAY; if (!setupWindow || !setupWindow->isVisible()) mMask += COND_NOSETUP; if (Game::instance() && Game::instance()->getValidSpeed()) mMask += COND_VALIDSPEED; if (gui && !gui->getFocusHandler()->getModalFocused()) mMask += COND_NOMODAL; NpcDialog *dialog = NpcDialog::getActive(); if (!dialog || !dialog->isTextInputFocused()) mMask += COND_NONPCINPUT; if (!player_node || !player_node->getDisableGameModifiers()) mMask += COND_EMODS; if (!isActionActive(Input::KEY_STOP_ATTACK) && !isActionActive(Input::KEY_UNTARGET)) { mMask += COND_NOTARGET; } if (!player_node || player_node->getFollow().empty()) mMask += COND_NOFOLLOW; }