From 562b3f777d22100abf1efef456d9104a54348f89 Mon Sep 17 00:00:00 2001 From: Laserlicht <13953785+Laserlicht@users.noreply.github.com> Date: Thu, 10 Apr 2025 21:41:22 +0200 Subject: [PATCH] code review (second batch) --- lib/campaign/CampaignState.cpp | 2 +- lib/texts/MetaString.cpp | 7 ++++++ lib/texts/MetaString.h | 2 ++ mapeditor/campaigneditor/startingbonus.cpp | 29 +++++++++++++--------- 4 files changed, 27 insertions(+), 13 deletions(-) diff --git a/lib/campaign/CampaignState.cpp b/lib/campaign/CampaignState.cpp index 81d7488c4..6aaa99769 100644 --- a/lib/campaign/CampaignState.cpp +++ b/lib/campaign/CampaignState.cpp @@ -432,7 +432,7 @@ std::unique_ptr CampaignState::getMap(CampaignScenarioID scenarioId, IGame boost::to_lower(scenarioName); scenarioName += ':' + std::to_string(scenarioId.getNum()); - if(!mapPieces.count(scenarioId) || !mapPieces.find(scenarioId)->second.size()) + if(!mapPieces.count(scenarioId)) return nullptr; const auto & mapContent = mapPieces.find(scenarioId)->second; diff --git a/lib/texts/MetaString.cpp b/lib/texts/MetaString.cpp index 5bc5875f9..5eb89f304 100644 --- a/lib/texts/MetaString.cpp +++ b/lib/texts/MetaString.cpp @@ -39,6 +39,13 @@ MetaString MetaString::createFromTextID(const std::string & value) return result; } +MetaString MetaString::createFromName(const GameResID& id) +{ + MetaString result; + result.appendName(id); + return result; +} + void MetaString::appendLocalString(EMetaText type, ui32 serial) { message.push_back(EMessage::APPEND_LOCAL_STRING); diff --git a/lib/texts/MetaString.h b/lib/texts/MetaString.h index 68230a027..3ee360200 100644 --- a/lib/texts/MetaString.h +++ b/lib/texts/MetaString.h @@ -68,6 +68,8 @@ public: static MetaString createFromRawString(const std::string & value); /// Creates MetaString and appends provided text ID string to it static MetaString createFromTextID(const std::string & value); + /// Creates MetaString and appends provided name string to it + static MetaString createFromName(const GameResID& id); /// Appends local string to resulting string void appendLocalString(EMetaText type, ui32 serial); diff --git a/mapeditor/campaigneditor/startingbonus.cpp b/mapeditor/campaigneditor/startingbonus.cpp index a1a9ea976..f1aa50e35 100644 --- a/mapeditor/campaigneditor/startingbonus.cpp +++ b/mapeditor/campaigneditor/startingbonus.cpp @@ -21,6 +21,7 @@ #include "../../lib/CSkillHandler.h" #include "../../lib/CCreatureHandler.h" #include "../../lib/spells/CSpellHandler.h" +#include "../../lib/texts/CGeneralTextHandler.h" StartingBonus::StartingBonus(PlayerColor color, std::shared_ptr map, CampaignBonus bonus): ui(new Ui::StartingBonus), @@ -102,19 +103,23 @@ void StartingBonus::initControls() for(auto const & objectPtr : LIBRARY->skillh->objects) ui->comboBoxSecondarySkillSecondarySkill->addItem(QString::fromStdString(objectPtr->getNameTranslated()), QVariant(objectPtr->getId())); - ui->comboBoxSecondarySkillMastery->addItem(tr("Basic"), QVariant(0)); - ui->comboBoxSecondarySkillMastery->addItem(tr("Advanced"), QVariant(1)); - ui->comboBoxSecondarySkillMastery->addItem(tr("Expert"), QVariant(2)); + for(int i = 0; i < 3; i++) // Basic, Advanced, Expert + ui->comboBoxSecondarySkillMastery->addItem(QString::fromStdString(LIBRARY->generaltexth->translate("core.skilllev", i)), QVariant(i)); - ui->comboBoxResourceResourceType->addItem(tr("Wood"), QVariant(EGameResID::WOOD)); - ui->comboBoxResourceResourceType->addItem(tr("Mercury"), QVariant(EGameResID::MERCURY)); - ui->comboBoxResourceResourceType->addItem(tr("Ore"), QVariant(EGameResID::ORE)); - ui->comboBoxResourceResourceType->addItem(tr("Sulfur"), QVariant(EGameResID::SULFUR)); - ui->comboBoxResourceResourceType->addItem(tr("Crystal"), QVariant(EGameResID::CRYSTAL)); - ui->comboBoxResourceResourceType->addItem(tr("Gems"), QVariant(EGameResID::GEMS)); - ui->comboBoxResourceResourceType->addItem(tr("Gold"), QVariant(EGameResID::GOLD)); - ui->comboBoxResourceResourceType->addItem(tr("Common (Wood and Ore)"), QVariant(EGameResID::COMMON)); - ui->comboBoxResourceResourceType->addItem(tr("Rare (Mercury, Sulfur, Crystal, Gems)"), QVariant(EGameResID::RARE)); + for(auto & res : std::vector({EGameResID::WOOD, EGameResID::MERCURY, EGameResID::ORE, EGameResID::SULFUR, EGameResID::CRYSTAL, EGameResID::GEMS, EGameResID::GOLD})) + ui->comboBoxResourceResourceType->addItem(QString::fromStdString(MetaString::createFromName(res).toString()), QVariant(res)); + ui->comboBoxResourceResourceType->addItem( + tr("Common (%1 and %2)") + .arg(QString::fromStdString(MetaString::createFromName(EGameResID::WOOD).toString())) + .arg(QString::fromStdString(MetaString::createFromName(EGameResID::ORE).toString())) + , QVariant(EGameResID::COMMON)); + ui->comboBoxResourceResourceType->addItem( + tr("Rare (%1, %2, %3, %4)") + .arg(QString::fromStdString(MetaString::createFromName(EGameResID::MERCURY).toString())) + .arg(QString::fromStdString(MetaString::createFromName(EGameResID::SULFUR).toString())) + .arg(QString::fromStdString(MetaString::createFromName(EGameResID::CRYSTAL).toString())) + .arg(QString::fromStdString(MetaString::createFromName(EGameResID::GEMS).toString())) + , QVariant(EGameResID::RARE)); } void StartingBonus::loadBonus()