Browse Source

Fix mapping of map objects linked to game entities

Ivan Savenko 2 years ago
parent
commit
d742b6b809
1 changed files with 9 additions and 0 deletions
  1. 9 0
      lib/mapping/MapIdentifiersH3M.cpp

+ 9 - 0
lib/mapping/MapIdentifiersH3M.cpp

@@ -111,6 +111,15 @@ void MapIdentifiersH3M::remapTemplate(ObjectTemplate & objectTemplate)
 		objectTemplate.id = mappedType.ID;
 		objectTemplate.subid = mappedType.subID;
 	}
+
+	if (objectTemplate.id == Obj::TOWN || objectTemplate.id == Obj::RANDOM_DWELLING_FACTION)
+		objectTemplate.subid = remap(FactionID(objectTemplate.subid));
+
+	if (objectTemplate.id == Obj::MONSTER)
+		objectTemplate.subid = remap(CreatureID(objectTemplate.subid));
+
+	if (objectTemplate.id == Obj::ARTIFACT)
+		objectTemplate.subid = remap(ArtifactID(objectTemplate.subid));
 }
 
 BuildingID MapIdentifiersH3M::remapBuilding(std::optional<FactionID> owner, BuildingID input) const