void NpcSellDialog::sellAction(const ActionEvent &event) { const std::string &eventId = event.getId(); const int selectedItem = mShopItemList->getSelected(); ShopItem *const item = mShopItems->at(selectedItem); if (!item || PlayerInfo::isItemProtected(item->getId())) return; if (eventId == "presell") { if (mAmountItems <= 0 || mAmountItems > mMaxItems) return; const ItemInfo &info = ItemDB::get(item->getId()); if (info.isProtected()) { ConfirmDialog *const dialog = CREATEWIDGETR(ConfirmDialog, // TRANSLATORS: sell confirmation header _("sell item"), // TRANSLATORS: sell confirmation message strprintf(_("Do you really want to sell %s?"), info.getName().c_str()), SOUND_REQUEST, false, Modal_true); dialog->addActionListener(this); return; } } if (mAdvanced) sellManyItems(event.getId()); else sellOneItem(); }
ActionEventTransitPtr ActionEvent::create(FieldContainerRefPtr Source, Time TimeStamp) { ActionEvent* TheEvent = ActionEvent::createEmpty(); TheEvent->setSource(Source); TheEvent->setTimeStamp(TimeStamp); return ActionEventTransitPtr(TheEvent); }
double RobotController::onAction(ActionEvent &evt) { #if 1 sendText(evt.time(), "Robot2", "hello!"); #else double distance = 10.0; sendText(evt.time(), NULL, "hello!", distance); #endif return 3.0; }
void NpcPostDialog::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "send") { if (mSender->getText().empty() || mText->getText().empty()) { if (localChatTab) { // TRANSLATORS: npc post message error localChatTab->chatLog(_("Failed to send as sender or letter " "invalid.")); } } else { Net::getNpcHandler()->sendLetter(mNpcId, mSender->getText(), mText->getText()); } setVisible(false); } else if (eventId == "cancel") { setVisible(false); } }
void DidYouKnowWindow::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "close") { setVisible(false); } else { const unsigned num = config.getIntValue("currentTip"); if (eventId == "prev") { loadData(num - 1); } else if (eventId == "next") { loadData(num + 1); } else if (eventId == "openagain") { config.setValue("showDidYouKnow", mOpenAgainCheckBox->isSelected()); } } }
void TextSelectDialog::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "quit") { close(); return; } const int selectedItem = mItemList->getSelected(); // The following actions require a valid item selection if (selectedItem == -1 || selectedItem >= mModel->getNumberOfElements()) { return; } else if (eventId == "select") { const int index = mItemList->getSelected(); if (index < 0 || index >= CAST_S32(mModel->size())) return; mText = mModel->getElementAt(index); distributeActionEvent(); close(); } }
void OutfitWindow::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "next") { next(); } else if (eventId == "previous") { previous(); } else if (eventId == "unequip") { if (mCurrentOutfit >= 0 && mCurrentOutfit < static_cast<int>( OUTFITS_COUNT)) { mItemsUnequip[mCurrentOutfit] = mUnequipCheck->isSelected(); } } else if (eventId == "equip") { wearOutfit(mCurrentOutfit); if (Game::instance()) Game::instance()->setValidSpeed(); } else if (eventId == "away") { mAwayOutfit = mCurrentOutfit; if (!mAwayOutfitCheck->isSelected()) mAwayOutfitCheck->setSelected(true); } }
void TextCommandEditor::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "magic") { mIsMagicCommand = true; showControls(Visible_true); } else if (eventId == "other") { mIsMagicCommand = false; showControls(Visible_false); } else if (eventId == "save") { save(); scheduleDelete(); } else if (eventId == "cancel") { scheduleDelete(); } else if (eventId == "delete") { deleteCommand(); scheduleDelete(); } }
void MailViewWindow::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "close") { scheduleDelete(); } else if (eventId == "attach") { if (mGetAttachButton) mailHandler->getAttach(mMessage->id); } else if (eventId == "next") { if (mMessage) mailWindow->viewNext(mMessage->id); } else if (eventId == "prev") { if (mMessage) mailWindow->viewPrev(mMessage->id); } else if (eventId == "reply") { if (!mMessage) return; if (mailEditWindow) mailEditWindow->scheduleDelete(); CREATEWIDGETV0(mailEditWindow, MailEditWindow); mailEditWindow->setTo(mMessage->sender); mailEditWindow->setSubject("Re:" + mMessage->title); mailEditWindow->setMessage(">" + mMessage->text); scheduleDelete(); } }
void RenameListener::action(const ActionEvent &event) { if (event.getId() == "ok" && viewport && mDialog) { const Map *const map = viewport->getMap(); if (!map) return; const SpecialLayer *const sl = map->getSpecialLayer(); MapItem *item = nullptr; if (sl) { item = sl->getTile(mMapItemX, mMapItemY); if (item) item->setComment(mDialog->getText()); } item = map->findPortalXY(mMapItemX, mMapItemY); if (item) item->setComment(mDialog->getText()); if (socialWindow) socialWindow->updatePortalNames(); } mDialog = nullptr; }
double RobotController::onAction(ActionEvent &evt) { LOG_MSG(("\ncurrent time : %f", evt.time())); static int cnt = 0; try { const char *name = myname(); SimObj *obj = getObj(name); obj->dump(); if (!obj->dynamics()) { double angle = 2*PI*cnt*0.01; double xx = 5*sin(angle); double yy = 0.5; double zz = 5*cos(angle); LOG_MSG(("pos (%f, %f, %f)", xx, yy, zz)); obj->setPosition(xx, yy, zz); obj->setAxisAndAngle(0.0, 1.0, 0.0, angle); } obj->dump(); } catch(SimObj::NoAttributeException &) { } catch(SimObj::AttributeReadOnlyException &) { } catch(SimObj::Exception &) { } cnt++; return 0.1; }
void KillStats::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "reset") { mKillCounter = 0; mExpCounter = 0; mLine3->setCaption(strprintf("1%% = %d exp, avg mob for 1%%: %s", PlayerInfo::getAttribute(Attributes::EXP_NEEDED) / 100, "?")); // TRANSLATORS: kill stats window label mLine4->setCaption(strprintf(_("Kills: %s, total exp: %s"), "?", "?")); // TRANSLATORS: kill stats window label mLine5->setCaption(strprintf(_("Avg Exp: %s"), "?")); mLine6->setCaption(strprintf( // TRANSLATORS: kill stats window label _("No. of avg mob to next level: %s"), "?")); resetTimes(); } else if (eventId == "timer") { mKillTimer = 0; mKillTCounter = 0; mExpTCounter = 0; mLine7->setCaption(strprintf( // TRANSLATORS: kill stats window label _("Kills/Min: %s, Exp/Min: %s"), "?", "?")); resetTimes(); } }
void ChangePincodeListener::action(const ActionEvent &event) { if (event.getId() == "ok") { const PincodeDialog *const dialog = dynamic_cast<PincodeDialog*>( event.getSource()); if (dialog != nullptr) { const std::string &pincode = dialog->getMsg(); pincodeManager.changePincode(pincode); } } else { client->setState(State::SWITCH_LOGIN); } }
void BankWindow::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "deposit") bankHandler->deposit(mInputMoneyTextField->getValue()); else if (eventId == "withdraw") bankHandler->withdraw(mInputMoneyTextField->getValue()); }
void SetupItem::action(const ActionEvent &event) { if (!mWidget) return; if (event.getId() == mWidget->getActionEventId()) action(); }
void ShopRenameListener::action(const ActionEvent &event) { if (event.getId() != "OK") return; if (mDialog != nullptr) { shopWindow->setShopName(mDialog->getMsg()); mDialog = nullptr; } }
void PincodeListener::action(const ActionEvent &event) { const EditDialog *const dialog = dynamic_cast<EditDialog*>( event.getSource()); if (dialog) { const std::string pincode = dialog->getMsg(); charServerHandler->setNewPincode(pincode); } }
double MyController::onAction(ActionEvent &evt) { SimObj *obj = getObj(myname()); //obtaining handle to the agent obj->setLinearVelocity(0,0,100); //apply the linear velocity 20[m/s] in Z axis Vector3d currentVelocity; obj->getLinearVelocity(currentVelocity); if (myfile.is_open() && (evt.time() < 15) ) { myfile << currentVelocity.x() << " , " << currentVelocity.z() << "\n" ; } if(evt.time() > 15) { exit(0); } return 0.00001; }
void SkillDialog::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "inc") { const SkillTab *const tab = static_cast<const SkillTab *const>( mTabs->getSelectedTab()); if (tab) { if (const SkillInfo *const info = tab->getSelectedInfo()) playerHandler->increaseSkill(static_cast<uint16_t>(info->id)); } } else if (eventId == "sel") { const SkillTab *const tab = static_cast<const SkillTab *const>( mTabs->getSelectedTab()); if (tab) { if (const SkillInfo *const info = tab->getSelectedInfo()) { mUseButton->setEnabled(info->isUsable()); mUseButton->setCaption(info->useButton); mIncreaseButton->setEnabled(info->id < SKILL_VAR_MIN_ID); const int num = itemShortcutWindow->getTabIndex(); if (num >= 0 && num < static_cast<int>(SHORTCUT_TABS) && itemShortcut[num]) { itemShortcut[num]->setItemSelected( info->id + SKILL_MIN_ID); } } else { mUseButton->setEnabled(false); mIncreaseButton->setEnabled(false); mUseButton->setCaption(_("Use")); } } } else if (eventId == "use") { const SkillTab *const tab = static_cast<const SkillTab *const>( mTabs->getSelectedTab()); if (tab) { const SkillInfo *const info = tab->getSelectedInfo(); useSkill(info); } } else if (eventId == "close") { setVisible(Visible_false); } }
void AwayListener::action(const ActionEvent &event) { if (event.getId() == "ok" && modifiers && player_node && settings.awayMode) { modifiers->changeAwayMode(); player_node->updateStatus(); if (outfitWindow) outfitWindow->unwearAwayOutfit(); UpdateStatusListener::distributeEvent(); } }
void QuitDialog::action(const ActionEvent &event) { soundManager.playGuiSound(SOUND_HIDE_WINDOW); if (event.getId() == "ok") { if (viewport) { const Map *const map = viewport->getMap(); if (map) map->saveExtraLayer(); } if (mForceQuit->isSelected()) { client->setState(STATE_FORCE_QUIT); } else if (mLogoutQuit->isSelected()) { DialogsManager::closeDialogs(); client->setState(STATE_EXIT); } else if (mRate && mRate->isSelected()) { openBrowser("https://play.google.com/store/apps/details?" "id=org.evolonline.beta.manaplus"); config.setValue("rated", true); if (mNeedForceQuit) { client->setState(STATE_FORCE_QUIT); } else { DialogsManager::closeDialogs(); client->setState(STATE_EXIT); } } else if (Net::getGameHandler()->isConnected() && mSwitchAccountServer->isSelected()) { DialogsManager::closeDialogs(); client->setState(STATE_SWITCH_SERVER); } else if (mSwitchCharacter->isSelected()) { if (client->getState() == STATE_GAME) { Net::getCharServerHandler()->switchCharacter(); DialogsManager::closeDialogs(); serverConfig.write(); } } } scheduleDelete(); }
void TabbedArea::action(const ActionEvent& actionEvent) { Widget* source = actionEvent.getSource(); Tab* tab = dynamic_cast<Tab*>(source); if (tab == NULL) { throw GCN_EXCEPTION("Received an action from a widget that's not a tab!"); } setSelectedTab(tab); }
void SellDialog::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "quit") { close(); return; } const int selectedItem = mShopItemList->getSelected(); // The following actions require a valid item selection if (selectedItem == -1 || selectedItem >= mShopItems->getNumberOfElements()) { return; } if (eventId == "slider") { if (mSlider) { mAmountItems = CAST_S32(mSlider->getValue()); updateButtonsAndLabels(); } } else if (eventId == "inc" && mSlider && mAmountItems < mMaxItems) { mAmountItems++; mSlider->setValue(mAmountItems); updateButtonsAndLabels(); } else if (eventId == "dec" && mSlider && mAmountItems > 1) { mAmountItems--; mSlider->setValue(mAmountItems); updateButtonsAndLabels(); } else if (eventId == "max" && mSlider) { mAmountItems = mMaxItems; mSlider->setValue(mAmountItems); updateButtonsAndLabels(); } else if (eventId == "presell" || eventId == "sell" || eventId == "yes" || eventId == "confirm") { sellAction(event); } }
void AwayListener::action(const ActionEvent &event) { if (event.getId() == "ok" && localPlayer != nullptr && settings.awayMode) { GameModifiers::changeAwayMode(true); localPlayer->updateStatus(); if (outfitWindow != nullptr) outfitWindow->unwearAwayOutfit(); UpdateStatusListener::distributeEvent(); } }
void PlayerListener::action(const ActionEvent &event) { if (event.getId() == "ok" && !mNick.empty() && mDialog) { std::string comment = mDialog->getText(); Being *const being = actorManager->findBeingByName( mNick, static_cast<ActorTypeT>(mType)); if (being) being->setComment(comment); Being::saveComment(mNick, comment, mType); } mDialog = nullptr; }
void MailEditWindow::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "close") { scheduleDelete(); } else if (eventId == "send") { const int money = mMoneyField->getValue(); if (money) mailHandler->setAttachMoney(money); const Item *const tempItem = mInventory->getItem(0); if (tempItem) { const Inventory *const inv = PlayerInfo::getInventory(); if (inv) { const Item *const item = inv->findItem( tempItem->getId(), ItemColor_one); if (item) { mailHandler->setAttach(item->getInvIndex(), tempItem->getQuantity()); } } } std::string subject = mSubjectField->getText(); if (subject.empty()) { // TRANSLATORS: empty mail message subject subject.append(_("empty subject")); } mailHandler->send(mToField->getText(), subject, mMessageField->getText()); } else if (eventId == "add") { Item *const item = inventoryWindow->getSelectedItem(); if (!item) return; ItemAmountWindow::showWindow(ItemAmountWindowUsage::MailAdd, this, item); } }
void QuestsWindow::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "select") { const int id = mQuestsListBox->getSelected(); if (id < 0) return; showQuest(mQuestLinks[id]); } else if (eventId == "close") { setVisible(false); } }
void InputActionRemoteListener::action(const ActionEvent &event) { if (event.getId() != "yes") { mCommand.clear(); mArgs.clear(); return; } inputManager.executeRemoteChatCommand(mCommand, mArgs, nullptr); mCommand.clear(); mArgs.clear(); }
void Setup_Joystick::action(const ActionEvent &event) { const Widget *const source = event.getSource(); if (source == mJoystickEnabled) { setTempEnabled(mJoystickEnabled->isSelected()); } else if (source == mNamesDropDown) { if (joystick != nullptr) joystick->setNumber(mNamesDropDown->getSelected()); } else if (source == mDetectButton) { if (joystick != nullptr) { joystick->reload(); Joystick::getNames(mNamesModel->getNames()); mNamesDropDown->setSelected(joystick->getNumber()); } } else { if (joystick == nullptr) return; if (joystick->isCalibrating()) { // TRANSLATORS: joystick settings tab button mCalibrateButton->setCaption(_("Calibrate")); mCalibrateLabel->setCaption // TRANSLATORS: joystick settings tab label (_("Press the button to start calibration")); joystick->finishCalibration(); } else { // TRANSLATORS: joystick settings tab button mCalibrateButton->setCaption(_("Stop")); mCalibrateLabel->setCaption( // TRANSLATORS: joystick settings tab label _("Rotate the stick and don't press buttons")); joystick->startCalibration(); } } }
void LoginDialog::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "login" && canSubmit()) { prepareUpdate(); mLoginData->registerLogin = false; client->setState(STATE_LOGIN_ATTEMPT); } else if (eventId == "server") { close(); } else if (eventId == "register") { if (loginHandler->isRegistrationEnabled()) { prepareUpdate(); client->setState(STATE_REGISTER_PREP); } else if (!mLoginData->registerUrl.empty()) { const std::string &url = mLoginData->registerUrl; urlListener.url = url; ConfirmDialog *const confirmDlg = CREATEWIDGETR(ConfirmDialog, // TRANSLATORS: question dialog _("Open register url"), url, SOUND_REQUEST, false, Modal_true); confirmDlg->addActionListener(&urlListener); } } else if (eventId == "customhost") { mUpdateHostText->setVisible(fromBool( mCustomUpdateHost->isSelected(), Visible)); } else if (eventId == "updateselect") { mCustomUpdateHost->setSelected(false); mUpdateHostText->setVisible(Visible_false); } }