void MerchantRepair::onRepairButtonClick(MyGUI::Widget *sender) { MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr(); int price = MyGUI::utility::parseInt(sender->getUserString("Price")); if (price > player.getClass().getContainerStore(player).count(MWWorld::ContainerStore::sGoldId)) return; // repair MWWorld::Ptr item = *sender->getUserData<MWWorld::Ptr>(); item.getCellRef().setCharge(item.getClass().getItemMaxHealth(item)); player.getClass().getContainerStore(player).restack(item); MWBase::Environment::get().getSoundManager()->playSound("Repair",1,1); player.getClass().getContainerStore(player).remove(MWWorld::ContainerStore::sGoldId, price, player); // add gold to NPC trading gold pool MWMechanics::CreatureStats& actorStats = mActor.getClass().getCreatureStats(mActor); actorStats.setGoldPool(actorStats.getGoldPool() + price); startRepair(mActor); }
void MerchantRepair::onRepairButtonClick(MyGUI::Widget *sender) { // repair MWWorld::Ptr item = *sender->getUserData<MWWorld::Ptr>(); item.getCellRef().mCharge = MWWorld::Class::get(item).getItemMaxHealth(item); MWBase::Environment::get().getSoundManager()->playSound("Repair",1,1); int price = boost::lexical_cast<int>(sender->getUserString("Price")); MWBase::Environment::get().getWindowManager()->getTradeWindow()->addOrRemoveGold(-price); startRepair(mActor); }
void MerchantRepair::onRepairButtonClick(MyGUI::Widget *sender) { // repair MWWorld::Ptr item = *sender->getUserData<MWWorld::Ptr>(); item.getCellRef().mCharge = MWWorld::Class::get(item).getItemMaxHealth(item); MWBase::Environment::get().getSoundManager()->playSound("Repair",1,1); int price = boost::lexical_cast<int>(sender->getUserString("Price")); MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr(); player.getClass().getContainerStore(player).remove(MWWorld::ContainerStore::sGoldId, price, player); startRepair(mActor); }