Browse Source

Fix parsing of Chronicles campaigns

Ivan Savenko 4 tháng trước cách đây
mục cha
commit
f3d8ae81fe
1 tập tin đã thay đổi với 6 bổ sung3 xóa
  1. 6 3
      lib/campaign/CampaignHandler.cpp

+ 6 - 3
lib/campaign/CampaignHandler.cpp

@@ -356,9 +356,12 @@ void CampaignHandler::readHeaderFromMemory( CampaignHeader & ret, CBinaryReader
 	const auto & mapping = LIBRARY->mapFormat->getMapping(ret.version);
 
 	CampaignRegionID campaignMapId(reader.readUInt8());
-	ret.campaignRegions = *LIBRARY->campaignRegions->getByIndex(mapping.remap(campaignMapId));
-	if(ret.version != CampaignVersion::HotA)
-		ret.numberOfScenarios = ret.campaignRegions.regionsCount();
+	if(ret.version != CampaignVersion::Chr)
+	{
+		ret.campaignRegions = *LIBRARY->campaignRegions->getByIndex(mapping.remap(campaignMapId));
+		if(ret.version != CampaignVersion::HotA)
+			ret.numberOfScenarios = ret.campaignRegions.regionsCount();
+	}
 	ret.name.appendTextID(readLocalizedString(ret, reader, filename, modName, encoding, "name"));
 	ret.description.appendTextID(readLocalizedString(ret, reader, filename, modName, encoding, "description"));
 	ret.author.appendRawString("");