diff --git a/client/windows/CTradeWindow.cpp b/client/windows/CTradeWindow.cpp index 0cbcb528f..50372b46f 100644 --- a/client/windows/CTradeWindow.cpp +++ b/client/windows/CTradeWindow.cpp @@ -1201,8 +1201,11 @@ void CAltarWindow::getBaseForPositions(EType type, int &dx, int &dy, int &x, int void CAltarWindow::sliderMoved(int to) { - sacrificedUnits[hLeft->serial] = to; - updateRight(hRight); + if(hLeft) + sacrificedUnits[hLeft->serial] = to; + if(hRight) + updateRight(hRight); + deal->block(!to); calcTotalExp(); redraw(); @@ -1356,13 +1359,7 @@ void CAltarWindow::garrisonChanged() std::set empty; getEmptySlots(empty); - for(CTradeableItem *t : empty) - { - removeItem(*std::find_if(items[0].begin(), items[0].end(), [&](const CTradeableItem * item) - { - return item->serial == t->serial; - })); - } + removeItems(empty); initSubs(true); getExpValues();