Browse Source

Fix crash on miniHillFort popup window

MichalZr6 11 months ago
parent
commit
ab1f1d6d99
3 changed files with 9 additions and 3 deletions
  1. 1 1
      lib/mapObjects/MiscObjects.cpp
  2. 6 1
      lib/texts/MetaString.cpp
  3. 2 1
      lib/texts/MetaString.h

+ 1 - 1
lib/mapObjects/MiscObjects.cpp

@@ -1337,7 +1337,7 @@ std::string HillFort::getPopupText(PlayerColor player) const
 {
 	MetaString message = MetaString::createFromRawString("{%s}\r\n\r\n%s");
 
-	message.replaceName(ID);
+	message.replaceName(ID, subID);
 	message.replaceTextID(getDescriptionToolTip());
 
 	return message.toString();

+ 6 - 1
lib/texts/MetaString.cpp

@@ -393,11 +393,16 @@ void MetaString::replaceName(const FactionID & id)
 	replaceTextID(id.toEntity(VLC)->getNameTextID());
 }
 
-void MetaString::replaceName(const MapObjectID& id)
+void MetaString::replaceName(const MapObjectID & id)
 {
 	replaceTextID(VLC->objtypeh->getObjectName(id, 0));
 }
 
+void MetaString::replaceName(const MapObjectID & id, const MapObjectSubID & subId)
+{
+	replaceTextID(VLC->objtypeh->getObjectName(id, subId));
+}
+
 void MetaString::replaceName(const PlayerColor & id)
 {
 	replaceTextID(TextIdentifier("vcmi.capitalColors", id.getNum()).get());

+ 2 - 1
lib/texts/MetaString.h

@@ -99,7 +99,8 @@ public:
 
 	void replaceName(const ArtifactID & id);
 	void replaceName(const FactionID& id);
-	void replaceName(const MapObjectID& id);
+	void replaceName(const MapObjectID & id);
+	void replaceName(const MapObjectID & id, const MapObjectSubID & subId);
 	void replaceName(const PlayerColor& id);
 	void replaceName(const SecondarySkill& id);
 	void replaceName(const SpellID& id);