mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-23 00:28:08 +02:00
fix tavern
This commit is contained in:
@ -599,20 +599,6 @@ void CKingdomInterface::generateMinesList(const std::vector<const CGObjectInstan
|
|||||||
incomeArea->pos = Rect(pos.x+580, pos.y+31+footerPos, 136, 68);
|
incomeArea->pos = Rect(pos.x+580, pos.y+31+footerPos, 136, 68);
|
||||||
incomeArea->hoverText = CGI->generaltexth->allTexts[255];
|
incomeArea->hoverText = CGI->generaltexth->allTexts[255];
|
||||||
incomeAmount = std::make_shared<CLabel>(628, footerPos + 70, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE, std::to_string(totalIncome));
|
incomeAmount = std::make_shared<CLabel>(628, footerPos + 70, FONT_SMALL, ETextAlignment::TOPLEFT, Colors::WHITE, std::to_string(totalIncome));
|
||||||
|
|
||||||
fastMarket = std::make_shared<LRClickableArea>(Rect(20, 31 + footerPos, 716, 68), []()
|
|
||||||
{
|
|
||||||
std::vector<const CGTownInstance*> towns = LOCPLINT->cb->getTownsInfo(true);
|
|
||||||
for(auto & town : towns)
|
|
||||||
{
|
|
||||||
if(town->builtBuildings.count(BuildingID::MARKETPLACE))
|
|
||||||
{
|
|
||||||
GH.windows().createAndPushWindow<CMarketplaceWindow>(town, nullptr, nullptr, EMarketMode::RESOURCE_RESOURCE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LOCPLINT->showInfoDialog(CGI->generaltexth->translate("vcmi.adventureMap.noTownWithMarket"));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CKingdomInterface::generateButtons()
|
void CKingdomInterface::generateButtons()
|
||||||
@ -793,13 +779,6 @@ CTownItem::CTownItem(const CGTownInstance * Town)
|
|||||||
hall = std::make_shared<CTownInfo>( 69, 31, town, true);
|
hall = std::make_shared<CTownInfo>( 69, 31, town, true);
|
||||||
fort = std::make_shared<CTownInfo>(111, 31, town, false);
|
fort = std::make_shared<CTownInfo>(111, 31, town, false);
|
||||||
|
|
||||||
fastTownHall = std::make_shared<CButton>(Point(69, 31), AnimationPath::builtin("ITMTL.def"), CButton::tooltip(), [&]() { std::make_shared<CCastleBuildings>(town)->enterTownHall(); });
|
|
||||||
fastTownHall->setImageOrder(town->hallLevel() - 1, town->hallLevel() - 1, town->hallLevel() - 1, town->hallLevel() - 1);
|
|
||||||
fastTownHall->setAnimateLonelyFrame(true);
|
|
||||||
fastArmyPurchase = std::make_shared<CButton>(Point(111, 31), AnimationPath::builtin("itmcl.def"), CButton::tooltip(), [&]() { std::make_shared<CCastleBuildings>(town)->enterToTheQuickRecruitmentWindow(); });
|
|
||||||
fastArmyPurchase->setImageOrder(town->fortLevel() - 1, town->fortLevel() - 1, town->fortLevel() - 1, town->fortLevel() - 1);
|
|
||||||
fastArmyPurchase->setAnimateLonelyFrame(true);
|
|
||||||
|
|
||||||
garr = std::make_shared<CGarrisonInt>(Point(313, 3), 4, Point(232,0), town->getUpperArmy(), town->visitingHero, true, true, CGarrisonInt::ESlotsLayout::TWO_ROWS);
|
garr = std::make_shared<CGarrisonInt>(Point(313, 3), 4, Point(232,0), town->getUpperArmy(), town->visitingHero, true, true, CGarrisonInt::ESlotsLayout::TWO_ROWS);
|
||||||
heroes = std::make_shared<HeroSlots>(town, Point(244,6), Point(475,6), garr, false);
|
heroes = std::make_shared<HeroSlots>(town, Point(244,6), Point(475,6), garr, false);
|
||||||
|
|
||||||
@ -813,6 +792,31 @@ CTownItem::CTownItem(const CGTownInstance * Town)
|
|||||||
growth.push_back(std::make_shared<CCreaInfo>(Point(401+37*(int)i, 78), town, (int)i, true, true));
|
growth.push_back(std::make_shared<CCreaInfo>(Point(401+37*(int)i, 78), town, (int)i, true, true));
|
||||||
available.push_back(std::make_shared<CCreaInfo>(Point(48+37*(int)i, 78), town, (int)i, true, false));
|
available.push_back(std::make_shared<CCreaInfo>(Point(48+37*(int)i, 78), town, (int)i, true, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fastTownHall = std::make_shared<CButton>(Point(69, 31), AnimationPath::builtin("ITMTL.def"), CButton::tooltip(), [&]() { std::make_shared<CCastleBuildings>(town)->enterTownHall(); });
|
||||||
|
fastTownHall->setImageOrder(town->hallLevel() - 1, town->hallLevel() - 1, town->hallLevel() - 1, town->hallLevel() - 1);
|
||||||
|
fastTownHall->setAnimateLonelyFrame(true);
|
||||||
|
fastArmyPurchase = std::make_shared<CButton>(Point(111, 31), AnimationPath::builtin("itmcl.def"), CButton::tooltip(), [&]() { std::make_shared<CCastleBuildings>(town)->enterToTheQuickRecruitmentWindow(); });
|
||||||
|
fastArmyPurchase->setImageOrder(town->fortLevel() - 1, town->fortLevel() - 1, town->fortLevel() - 1, town->fortLevel() - 1);
|
||||||
|
fastArmyPurchase->setAnimateLonelyFrame(true);
|
||||||
|
fastTavern = std::make_shared<LRClickableArea>(Rect(5, 6, 58, 64), [&]()
|
||||||
|
{
|
||||||
|
if(town->builtBuildings.count(BuildingID::TAVERN))
|
||||||
|
LOCPLINT->showTavernWindow(town, nullptr, QueryID::NONE);
|
||||||
|
});
|
||||||
|
fastMarket = std::make_shared<LRClickableArea>(Rect(153, 6, 65, 64), []()
|
||||||
|
{
|
||||||
|
std::vector<const CGTownInstance*> towns = LOCPLINT->cb->getTownsInfo(true);
|
||||||
|
for(auto & town : towns)
|
||||||
|
{
|
||||||
|
if(town->builtBuildings.count(BuildingID::MARKETPLACE))
|
||||||
|
{
|
||||||
|
GH.windows().createAndPushWindow<CMarketplaceWindow>(town, nullptr, nullptr, EMarketMode::RESOURCE_RESOURCE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LOCPLINT->showInfoDialog(CGI->generaltexth->translate("vcmi.adventureMap.noTownWithMarket"));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTownItem::updateGarrisons()
|
void CTownItem::updateGarrisons()
|
||||||
|
@ -233,7 +233,6 @@ private:
|
|||||||
|
|
||||||
std::shared_ptr<CHoverableArea> incomeArea;
|
std::shared_ptr<CHoverableArea> incomeArea;
|
||||||
std::shared_ptr<CLabel> incomeAmount;
|
std::shared_ptr<CLabel> incomeAmount;
|
||||||
std::shared_ptr<LRClickableArea> fastMarket;
|
|
||||||
|
|
||||||
std::shared_ptr<CGStatusBar> statusbar;
|
std::shared_ptr<CGStatusBar> statusbar;
|
||||||
std::shared_ptr<CResDataBar> resdatabar;
|
std::shared_ptr<CResDataBar> resdatabar;
|
||||||
@ -280,6 +279,8 @@ class CTownItem : public CIntObject, public IGarrisonHolder
|
|||||||
|
|
||||||
std::shared_ptr<CButton> fastTownHall;
|
std::shared_ptr<CButton> fastTownHall;
|
||||||
std::shared_ptr<CButton> fastArmyPurchase;
|
std::shared_ptr<CButton> fastArmyPurchase;
|
||||||
|
std::shared_ptr<LRClickableArea> fastMarket;
|
||||||
|
std::shared_ptr<LRClickableArea> fastTavern;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
const CGTownInstance * town;
|
const CGTownInstance * town;
|
||||||
|
@ -489,7 +489,7 @@ CTavernWindow::CTavernWindow(const CGObjectInstance * TavernObj, const std::func
|
|||||||
recruit->addHoverText(CButton::NORMAL, boost::str(boost::format(CGI->generaltexth->tavernInfo[1]) % LOCPLINT->cb->howManyHeroes(false)));
|
recruit->addHoverText(CButton::NORMAL, boost::str(boost::format(CGI->generaltexth->tavernInfo[1]) % LOCPLINT->cb->howManyHeroes(false)));
|
||||||
recruit->block(true);
|
recruit->block(true);
|
||||||
}
|
}
|
||||||
else if(LOCPLINT->castleInt && LOCPLINT->castleInt->town->visitingHero)
|
else if((LOCPLINT->castleInt && LOCPLINT->castleInt->town->visitingHero) || (dynamic_cast<const CGTownInstance *>(TavernObj) && dynamic_cast<const CGTownInstance *>(TavernObj)->visitingHero))
|
||||||
{
|
{
|
||||||
recruit->addHoverText(CButton::NORMAL, CGI->generaltexth->tavernInfo[2]); //Cannot recruit. You already have a Hero in this town.
|
recruit->addHoverText(CButton::NORMAL, CGI->generaltexth->tavernInfo[2]); //Cannot recruit. You already have a Hero in this town.
|
||||||
recruit->block(true);
|
recruit->block(true);
|
||||||
@ -501,6 +501,8 @@ CTavernWindow::CTavernWindow(const CGObjectInstance * TavernObj, const std::func
|
|||||||
}
|
}
|
||||||
if(LOCPLINT->castleInt)
|
if(LOCPLINT->castleInt)
|
||||||
CCS->videoh->open(LOCPLINT->castleInt->town->town->clientInfo.tavernVideo);
|
CCS->videoh->open(LOCPLINT->castleInt->town->town->clientInfo.tavernVideo);
|
||||||
|
else if(dynamic_cast<const CGTownInstance *>(TavernObj))
|
||||||
|
CCS->videoh->open(dynamic_cast<const CGTownInstance *>(TavernObj)->town->clientInfo.tavernVideo);
|
||||||
else
|
else
|
||||||
CCS->videoh->open(VideoPath::builtin("TAVERN.BIK"));
|
CCS->videoh->open(VideoPath::builtin("TAVERN.BIK"));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user