| 176 | } |
| 177 | |
| 178 | void MerchantPane::swapSlot() { |
| 179 | ItemPtr source = m_player->inventory()->swapSlotItem(); |
| 180 | auto inv = m_player->inventory(); |
| 181 | if (context()->shiftHeld()) { |
| 182 | if (m_itemGrid->selectedItem()) { |
| 183 | auto remainder = inv->addItems(m_itemBag->takeItems(m_itemGrid->selectedIndex())); |
| 184 | if (remainder && !remainder->empty()) |
| 185 | m_itemBag->setItem(m_itemGrid->selectedIndex(), remainder); |
| 186 | } |
| 187 | } else { |
| 188 | if (auto heldItem = m_player->inventory()->swapSlotItem()) |
| 189 | inv->setSwapSlotItem(m_itemBag->swapItems(m_itemGrid->selectedIndex(), heldItem)); |
| 190 | else |
| 191 | inv->setSwapSlotItem(m_itemBag->takeItems(m_itemGrid->selectedIndex())); |
| 192 | } |
| 193 | } |
| 194 | |
| 195 | void MerchantPane::buildItemList() { |
| 196 | m_itemGuiList->clear(); |
nothing calls this directly
no test coverage detected