|
|
@@ -21,6 +21,7 @@
|
|
|
#include "../../../CCallback.h"
|
|
|
|
|
|
#include "../../../lib/CGeneralTextHandler.h"
|
|
|
+#include "../../../lib/mapObjects/CGHeroInstance.h"
|
|
|
#include "../../../lib/mapObjects/CGMarket.h"
|
|
|
#include "../../../lib/mapObjects/CGTownInstance.h"
|
|
|
|
|
|
@@ -71,10 +72,17 @@ void CArtifactsBuying::deselect()
|
|
|
|
|
|
void CArtifactsBuying::makeDeal()
|
|
|
{
|
|
|
- LOCPLINT->cb->trade(market, EMarketMode::RESOURCE_ARTIFACT, GameResID(bidTradePanel->getSelectedItemId()),
|
|
|
- ArtifactID(offerTradePanel->highlightedSlot->id), offerQty, hero);
|
|
|
- CMarketTraderText::makeDeal();
|
|
|
- deselect();
|
|
|
+ if(ArtifactID(offerTradePanel->getSelectedItemId()).toArtifact()->canBePutAt(hero))
|
|
|
+ {
|
|
|
+ LOCPLINT->cb->trade(market, EMarketMode::RESOURCE_ARTIFACT, GameResID(bidTradePanel->getSelectedItemId()),
|
|
|
+ ArtifactID(offerTradePanel->getSelectedItemId()), offerQty, hero);
|
|
|
+ CMarketTraderText::makeDeal();
|
|
|
+ deselect();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ LOCPLINT->showInfoDialog(CGI->generaltexth->translate("core.genrltxt.326"));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
CMarketBase::MarketShowcasesParams CArtifactsBuying::getShowcasesParams() const
|