From c9d866aed877217450edce6bb3d1ecc1b3e75bbc Mon Sep 17 00:00:00 2001 From: Laserlicht <13953785+Laserlicht@users.noreply.github.com> Date: Mon, 29 Sep 2025 01:39:50 +0200 Subject: [PATCH] texts for mine --- .../CommonConstructors.cpp | 17 +++++++++++++++++ lib/mapObjectConstructors/CommonConstructors.h | 2 ++ lib/mapObjects/MiscObjects.cpp | 4 ++-- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/mapObjectConstructors/CommonConstructors.cpp b/lib/mapObjectConstructors/CommonConstructors.cpp index 56795c513..3dbf45d27 100644 --- a/lib/mapObjectConstructors/CommonConstructors.cpp +++ b/lib/mapObjectConstructors/CommonConstructors.cpp @@ -25,6 +25,7 @@ #include "../mapping/TerrainTile.h" #include "../modding/IdentifierStorage.h" #include "../texts/TextIdentifier.h" +#include "../texts/CGeneralTextHandler.h" VCMI_LIB_NAMESPACE_BEGIN @@ -99,6 +100,12 @@ void MineInstanceConstructor::initTypeData(const JsonNode & input) { resourceType = GameResID(index); }); + + if (!config["name"].isNull()) + LIBRARY->generaltexth->registerString(config.getModScope(), getNameTextID(), config["name"]); + + if (!config["description"].isNull()) + LIBRARY->generaltexth->registerString(config.getModScope(), getDescriptionTextID(), config["description"]); } GameResID MineInstanceConstructor::getResourceType() const @@ -106,6 +113,16 @@ GameResID MineInstanceConstructor::getResourceType() const return resourceType; } +std::string MineInstanceConstructor::getDescriptionTextID() const +{ + return TextIdentifier(getBaseTextID(), "description").get(); +} + +std::string MineInstanceConstructor::getDescriptionTranslated() const +{ + return LIBRARY->generaltexth->translate(getDescriptionTextID()); +} + void CTownInstanceConstructor::initTypeData(const JsonNode & input) { LIBRARY->identifiers()->requestIdentifier("faction", input["faction"], [&](si32 index) diff --git a/lib/mapObjectConstructors/CommonConstructors.h b/lib/mapObjectConstructors/CommonConstructors.h index ebcc009d0..04750a688 100644 --- a/lib/mapObjectConstructors/CommonConstructors.h +++ b/lib/mapObjectConstructors/CommonConstructors.h @@ -70,6 +70,8 @@ public: void initTypeData(const JsonNode & input) override; GameResID getResourceType() const; + std::string getDescriptionTextID() const; + std::string getDescriptionTranslated() const; }; class CTownInstanceConstructor : public CDefaultObjectTypeHandler diff --git a/lib/mapObjects/MiscObjects.cpp b/lib/mapObjects/MiscObjects.cpp index 6914f09bb..0be931f9c 100644 --- a/lib/mapObjects/MiscObjects.cpp +++ b/lib/mapObjects/MiscObjects.cpp @@ -171,7 +171,7 @@ std::string CGMine::getObjectName() const if(getResourceHandler()->getResourceType() == GameResID::NONE || getObjTypeIndex() < GameConstants::RESOURCE_QUANTITY) return LIBRARY->generaltexth->translate("core.minename", getObjTypeIndex()); else - return getResourceHandler()->getResourceType().toResource()->getNameTranslated() + " " + LIBRARY->generaltexth->translate("core.genrltxt.617"); // TODO: new strings for new mines + return getResourceHandler()->getNameTranslated(); } std::string CGMine::getHoverText(PlayerColor player) const @@ -201,7 +201,7 @@ void CGMine::flagMine(IGameEventCallback & gameEvents, const PlayerColor & playe if(getResourceHandler()->getResourceType() == GameResID::NONE || getObjTypeIndex() < GameConstants::RESOURCE_QUANTITY) iw.text.appendTextID(TextIdentifier("core.mineevnt", producedResource.getNum()).get()); //not use subID, abandoned mines uses default mine texts else - iw.text.appendRawString(getObjectName()); // TODO: new strings for new mines + iw.text.appendRawString(getResourceHandler()->getDescriptionTranslated()); iw.player = player; iw.components.emplace_back(ComponentType::RESOURCE_PER_DAY, producedResource, getProducedQuantity()); gameEvents.showInfoDialog(&iw);