1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-29 21:56:54 +02:00

attempt to show shipyard dialog only when a hero is selected

fixes regression from a4e8255cbcfbb288c7bf9524d6763901a761e418
This commit is contained in:
Andrey Filipenkov 2023-01-25 20:47:33 +03:00
parent 54537fc02c
commit 612b5e2746

@ -1587,6 +1587,7 @@ void CAdvMapInt::tileLClicked(const int3 &mapPos)
bool canSelect = topBlocking && topBlocking->ID == Obj::HERO && topBlocking->tempOwner == LOCPLINT->playerID;
canSelect |= topBlocking && topBlocking->ID == Obj::TOWN && LOCPLINT->cb->getPlayerRelations(LOCPLINT->playerID, topBlocking->tempOwner);
bool isHero = false;
if(selection->ID != Obj::HERO) //hero is not selected (presumably town)
{
assert(!terrain.currentPath); //path can be active only when hero is selected
@ -1597,6 +1598,8 @@ void CAdvMapInt::tileLClicked(const int3 &mapPos)
}
else if(const CGHeroInstance * currentHero = curHero()) //hero is selected
{
isHero = true;
const CGPathNode *pn = LOCPLINT->cb->getPathsInfo(currentHero)->getPathInfo(mapPos);
if(currentHero == topBlocking) //clicked selected hero
{
@ -1638,7 +1641,8 @@ void CAdvMapInt::tileLClicked(const int3 &mapPos)
throw std::runtime_error("Nothing is selected...");
}
if(const IShipyard *shipyard = ourInaccessibleShipyard(topBlocking))
const auto shipyard = ourInaccessibleShipyard(topBlocking);
if(isHero && shipyard != nullptr)
{
LOCPLINT->showShipyardDialogOrProblemPopup(shipyard);
}