mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-24 22:14:36 +02:00
Merge branch 'vcmi/beta' into 'vcmi/develop'
This commit is contained in:
commit
e93a060500
@ -21,6 +21,7 @@
|
|||||||
"vcmi.adventureMap.playerAttacked" : "Player has been attacked: %s",
|
"vcmi.adventureMap.playerAttacked" : "Player has been attacked: %s",
|
||||||
"vcmi.adventureMap.moveCostDetails" : "Movement points - Cost: %TURNS turns + %POINTS points, Remaining points: %REMAINING",
|
"vcmi.adventureMap.moveCostDetails" : "Movement points - Cost: %TURNS turns + %POINTS points, Remaining points: %REMAINING",
|
||||||
"vcmi.adventureMap.moveCostDetailsNoTurns" : "Movement points - Cost: %POINTS points, Remaining points: %REMAINING",
|
"vcmi.adventureMap.moveCostDetailsNoTurns" : "Movement points - Cost: %POINTS points, Remaining points: %REMAINING",
|
||||||
|
"vcmi.adventureMap.movementPointsHeroInfo" : "(Movement points: %REMAINING / %POINTS)",
|
||||||
"vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Sorry, replay opponent turn is not implemented yet!",
|
"vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Sorry, replay opponent turn is not implemented yet!",
|
||||||
|
|
||||||
"vcmi.capitalColors.0" : "Red",
|
"vcmi.capitalColors.0" : "Red",
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
"vcmi.adventureMap.playerAttacked" : "Gracz został zaatakowany: %s",
|
"vcmi.adventureMap.playerAttacked" : "Gracz został zaatakowany: %s",
|
||||||
"vcmi.adventureMap.moveCostDetails" : "Punkty ruchu - Koszt: %TURNS tury + %POINTS punktów, Pozostanie: %REMAINING punktów",
|
"vcmi.adventureMap.moveCostDetails" : "Punkty ruchu - Koszt: %TURNS tury + %POINTS punktów, Pozostanie: %REMAINING punktów",
|
||||||
"vcmi.adventureMap.moveCostDetailsNoTurns" : "Punkty ruchu - Koszt: %POINTS punktów, Pozostanie: %REMAINING punktów",
|
"vcmi.adventureMap.moveCostDetailsNoTurns" : "Punkty ruchu - Koszt: %POINTS punktów, Pozostanie: %REMAINING punktów",
|
||||||
|
"vcmi.adventureMap.movementPointsHeroInfo" : "(Punkty ruchu: %REMAINING / %POINTS)",
|
||||||
"vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Wybacz, powtórka ruchu wroga nie została jeszcze zaimplementowana!",
|
"vcmi.adventureMap.replayOpponentTurnNotImplemented" : "Wybacz, powtórka ruchu wroga nie została jeszcze zaimplementowana!",
|
||||||
|
|
||||||
"vcmi.capitalColors.0" : "Czerwony",
|
"vcmi.capitalColors.0" : "Czerwony",
|
||||||
|
@ -171,10 +171,11 @@ void CPlayerInterface::initGameInterface(std::shared_ptr<Environment> ENV, std::
|
|||||||
void CPlayerInterface::closeAllDialogs()
|
void CPlayerInterface::closeAllDialogs()
|
||||||
{
|
{
|
||||||
// remove all active dialogs that do not expect query answer
|
// remove all active dialogs that do not expect query answer
|
||||||
for (;;)
|
while(true)
|
||||||
{
|
{
|
||||||
auto adventureWindow = GH.windows().topWindow<AdventureMapInterface>();
|
auto adventureWindow = GH.windows().topWindow<AdventureMapInterface>();
|
||||||
auto infoWindow = GH.windows().topWindow<CInfoWindow>();
|
auto infoWindow = GH.windows().topWindow<CInfoWindow>();
|
||||||
|
auto topWindow = GH.windows().topWindow<WindowBase>();
|
||||||
|
|
||||||
if(adventureWindow != nullptr)
|
if(adventureWindow != nullptr)
|
||||||
break;
|
break;
|
||||||
@ -182,16 +183,8 @@ void CPlayerInterface::closeAllDialogs()
|
|||||||
if(infoWindow && infoWindow->ID != QueryID::NONE)
|
if(infoWindow && infoWindow->ID != QueryID::NONE)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (infoWindow)
|
topWindow->close();
|
||||||
infoWindow->close();
|
|
||||||
else
|
|
||||||
GH.windows().popWindows(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(castleInt)
|
|
||||||
castleInt->close();
|
|
||||||
|
|
||||||
castleInt = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPlayerInterface::playerEndsTurn(PlayerColor player)
|
void CPlayerInterface::playerEndsTurn(PlayerColor player)
|
||||||
@ -1460,6 +1453,7 @@ void CPlayerInterface::playerBlocked(int reason, bool start)
|
|||||||
cmp.push_back(std::make_shared<CComponent>(ComponentType::FLAG, playerID));
|
cmp.push_back(std::make_shared<CComponent>(ComponentType::FLAG, playerID));
|
||||||
makingTurn = true; //workaround for stiff showInfoDialog implementation
|
makingTurn = true; //workaround for stiff showInfoDialog implementation
|
||||||
showInfoDialog(msg, cmp);
|
showInfoDialog(msg, cmp);
|
||||||
|
waitWhileDialog();
|
||||||
makingTurn = false;
|
makingTurn = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -557,7 +557,8 @@ void AdventureMapInterface::onTileLeftClicked(const int3 &targetPosition)
|
|||||||
else //still here? we need to move hero if we clicked end of already selected path or calculate a new path otherwise
|
else //still here? we need to move hero if we clicked end of already selected path or calculate a new path otherwise
|
||||||
{
|
{
|
||||||
if(LOCPLINT->localState->hasPath(currentHero) &&
|
if(LOCPLINT->localState->hasPath(currentHero) &&
|
||||||
LOCPLINT->localState->getPath(currentHero).endPos() == targetPosition)//we'll be moving
|
LOCPLINT->localState->getPath(currentHero).endPos() == targetPosition &&
|
||||||
|
!GH.isKeyboardShiftDown())//we'll be moving
|
||||||
{
|
{
|
||||||
assert(!CGI->mh->hasOngoingAnimations());
|
assert(!CGI->mh->hasOngoingAnimations());
|
||||||
if(!CGI->mh->hasOngoingAnimations() && LOCPLINT->localState->getPath(currentHero).nextNode().turns == 0)
|
if(!CGI->mh->hasOngoingAnimations() && LOCPLINT->localState->getPath(currentHero).nextNode().turns == 0)
|
||||||
|
@ -266,7 +266,7 @@ void CHeroList::CHeroItem::showTooltip()
|
|||||||
|
|
||||||
std::string CHeroList::CHeroItem::getHoverText()
|
std::string CHeroList::CHeroItem::getHoverText()
|
||||||
{
|
{
|
||||||
return boost::str(boost::format(CGI->generaltexth->allTexts[15]) % hero->getNameTranslated() % hero->getClassNameTranslated());
|
return boost::str(boost::format(CGI->generaltexth->allTexts[15]) % hero->getNameTranslated() % hero->getClassNameTranslated()) + hero->getMovementPointsTextIfOwner(hero->getOwner());
|
||||||
}
|
}
|
||||||
|
|
||||||
void CHeroList::CHeroItem::gesture(bool on, const Point & initialPosition, const Point & finalPosition)
|
void CHeroList::CHeroItem::gesture(bool on, const Point & initialPosition, const Point & finalPosition)
|
||||||
|
@ -343,6 +343,6 @@ WindowBase::WindowBase(int used_, Point pos_)
|
|||||||
void WindowBase::close()
|
void WindowBase::close()
|
||||||
{
|
{
|
||||||
if(!GH.windows().isTopWindow(this))
|
if(!GH.windows().isTopWindow(this))
|
||||||
logGlobal->error("Only top interface must be closed");
|
throw std::runtime_error("Only top interface can be closed");
|
||||||
GH.windows().popWindows(1);
|
GH.windows().popWindows(1);
|
||||||
}
|
}
|
||||||
|
@ -148,7 +148,6 @@ class WindowBase : public CIntObject
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
WindowBase(int used_ = 0, Point pos_ = Point());
|
WindowBase(int used_ = 0, Point pos_ = Point());
|
||||||
protected:
|
|
||||||
virtual void close();
|
virtual void close();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -567,6 +567,25 @@ std::string CGHeroInstance::getObjectName() const
|
|||||||
return VLC->objtypeh->getObjectName(ID, 0);
|
return VLC->objtypeh->getObjectName(ID, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string CGHeroInstance::getHoverText(PlayerColor player) const
|
||||||
|
{
|
||||||
|
std::string hoverText = CArmedInstance::getHoverText(player) + getMovementPointsTextIfOwner(player);
|
||||||
|
return hoverText;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string CGHeroInstance::getMovementPointsTextIfOwner(PlayerColor player) const
|
||||||
|
{
|
||||||
|
std::string output = "";
|
||||||
|
if(player == getOwner())
|
||||||
|
{
|
||||||
|
output += " " + VLC->generaltexth->translate("vcmi.adventureMap.movementPointsHeroInfo");
|
||||||
|
boost::replace_first(output, "%POINTS", std::to_string(movementPointsLimit(!boat)));
|
||||||
|
boost::replace_first(output, "%REMAINING", std::to_string(movementPointsRemaining()));
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
ui8 CGHeroInstance::maxlevelsToMagicSchool() const
|
ui8 CGHeroInstance::maxlevelsToMagicSchool() const
|
||||||
{
|
{
|
||||||
return type->heroClass->isMagicHero() ? 3 : 4;
|
return type->heroClass->isMagicHero() ? 3 : 4;
|
||||||
|
@ -301,6 +301,8 @@ public:
|
|||||||
void pickRandomObject(vstd::RNG & rand) override;
|
void pickRandomObject(vstd::RNG & rand) override;
|
||||||
void onHeroVisit(const CGHeroInstance * h) const override;
|
void onHeroVisit(const CGHeroInstance * h) const override;
|
||||||
std::string getObjectName() const override;
|
std::string getObjectName() const override;
|
||||||
|
std::string getHoverText(PlayerColor player) const override;
|
||||||
|
std::string getMovementPointsTextIfOwner(PlayerColor player) const;
|
||||||
|
|
||||||
void afterAddToMap(CMap * map) override;
|
void afterAddToMap(CMap * map) override;
|
||||||
void afterRemoveFromMap(CMap * map) override;
|
void afterRemoveFromMap(CMap * map) override;
|
||||||
|
Loading…
Reference in New Issue
Block a user