Browse Source

Fix tooltip for spell scrolls on adventure map

Ivan Savenko 1 year ago
parent
commit
9c9127be7d
2 changed files with 7 additions and 3 deletions
  1. 5 2
      lib/ArtifactUtils.cpp
  2. 2 1
      lib/mapObjects/MiscObjects.cpp

+ 5 - 2
lib/ArtifactUtils.cpp

@@ -254,10 +254,13 @@ DLL_LINKAGE void ArtifactUtils::insertScrrollSpellName(std::string & description
 	// However other language versions don't have name placeholder at all, so we have to be careful
 	auto nameStart = description.find_first_of('[');
 	auto nameEnd = description.find_first_of(']', nameStart);
-	if(sid.getNum() >= 0)
+
+	if(nameStart != std::string::npos && nameEnd != std::string::npos)
 	{
-		if(nameStart != std::string::npos && nameEnd != std::string::npos)
+		if(sid.getNum() >= 0)
 			description = description.replace(nameStart, nameEnd - nameStart + 1, sid.toEntity(VLC->spells())->getNameTranslated());
+		else
+			description = description.erase(nameStart, nameEnd - nameStart + 2); // erase "[spell name] " - including space
 	}
 }
 

+ 2 - 1
lib/mapObjects/MiscObjects.cpp

@@ -779,7 +779,8 @@ std::string CGArtifact::getPopupText(PlayerColor player) const
 	if (settings["general"]["enableUiEnhancements"].Bool())
 	{
 		std::string description = VLC->artifacts()->getById(getArtifact())->getDescriptionTranslated();
-		ArtifactUtils::insertScrrollSpellName(description, SpellID::NONE); // erase text placeholder
+		if (getArtifact() == ArtifactID::SPELL_SCROLL)
+			ArtifactUtils::insertScrrollSpellName(description, SpellID::NONE); // erase text placeholder
 		return description;
 	}
 	else