1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00
This commit is contained in:
Laserlicht
2025-10-25 23:28:17 +02:00
parent 189acf9be4
commit 50db54393d

View File

@@ -255,6 +255,12 @@ BattleOnlyModeHeroSelector::BattleOnlyModeHeroSelector(int id, BattleOnlyModeWin
selectedArmyInput.back()->setCallback([this, i, id](const std::string & text){
if(!parent.startInfo->selectedArmy[id][i])
{
if(!parent.startInfo->selectedArmy[id][i])
{
selectedArmyInput[i]->setText("1");
return;
}
(*parent.startInfo->selectedArmy[id][i]).second = TextOperations::parseMetric<int>(text);
parent.onChange();
}
@@ -274,14 +280,14 @@ void BattleOnlyModeHeroSelector::setHeroIcon()
heroImage = std::make_shared<CPicture>(drawBlackBox(Point(58, 64), LIBRARY->generaltexth->translate("vcmi.lobby.battleOnlyModeSelect")), Point(6, 7));
heroLabel = std::make_shared<CLabel>(160, 16, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE, LIBRARY->generaltexth->translate("core.genrltxt.507"));
for(size_t i=0; i<GameConstants::PRIMARY_SKILLS; i++)
primSkillsInput[i]->setText(std::to_string(parent.startInfo->primSkillLevel[id][i]));
primSkillsInput[i]->setText("0");
}
else
{
heroImage = std::make_shared<CPicture>(ENGINE->renderHandler().loadAnimation(AnimationPath::builtin("PortraitsLarge"), EImageBlitMode::COLORKEY)->getImage((*parent.startInfo->selectedHero[id]).toHeroType()->imageIndex), Point(6, 7));
heroLabel = std::make_shared<CLabel>(160, 16, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE, (*parent.startInfo->selectedHero[id]).toHeroType()->getNameTranslated());
for(size_t i=0; i<GameConstants::PRIMARY_SKILLS; i++)
primSkillsInput[i]->setText("0");
primSkillsInput[i]->setText(std::to_string(parent.startInfo->primSkillLevel[id][i]));
}
heroImage->addLClickCallback([this](){
@@ -354,11 +360,16 @@ void BattleOnlyModeHeroSelector::setCreatureIcons()
for(int i = 0; i < creatureImage.size(); i++)
{
if(!parent.startInfo->selectedArmy[id][i])
{
creatureImage[i] = std::make_shared<CPicture>(drawBlackBox(Point(32, 32), LIBRARY->generaltexth->translate("vcmi.lobby.battleOnlyModeSelect")), Point(6 + i * 36, 78));
selectedArmyInput[i]->setText("1");
}
else
{
auto creatureID = (*parent.startInfo->selectedArmy[id][i]).first;
auto unit = (*parent.startInfo->selectedArmy[id][i]);
auto creatureID = unit.first;
creatureImage[i] = std::make_shared<CPicture>(ENGINE->renderHandler().loadAnimation(AnimationPath::builtin("CPRSMALL"), EImageBlitMode::COLORKEY)->getImage(LIBRARY->creh->objects.at(creatureID)->getIconIndex()), Point(6 + i * 36, 78));
selectedArmyInput[i]->setText(std::to_string(unit.second));
}
creatureImage[i]->addLClickCallback([this, i](){
@@ -403,7 +414,6 @@ void BattleOnlyModeHeroSelector::setCreatureIcons()
auto creature = creatures.at(index).toCreature();
parent.startInfo->selectedArmy[id][i] = std::make_pair(creature->getId(), 100);
selectedArmyInput[SlotID(i)]->setText("100");
parent.onChange();
}, selectedIndex, images, true, true);
window->onPopup = [creatures](int index) {
@@ -420,7 +430,7 @@ void BattleOnlyModeHeroSelector::setCreatureIcons()
if(!parent.startInfo->selectedArmy[id][i])
return;
ENGINE->windows().createAndPushWindow<CStackWindow>(LIBRARY->creh->objects.at(parent.startInfo->selectedArmy[id][i].first).get(), true);
ENGINE->windows().createAndPushWindow<CStackWindow>(LIBRARY->creh->objects.at((*parent.startInfo->selectedArmy[id][i]).first).get(), true);
});
}
}
@@ -460,7 +470,7 @@ void BattleOnlyModeWindow::startBattle()
};
addHero(0, PlayerColor(0), int3(5, 6, 0));
if(startInfo->selectedTown)
if(!startInfo->selectedTown)
addHero(1, PlayerColor(1), int3(5, 5, 0));
else
{