浏览代码

Fix parsing of Chronicles campaigns

Ivan Savenko 5 月之前
父节点
当前提交
f3d8ae81fe
共有 1 个文件被更改,包括 6 次插入3 次删除
  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);
 	const auto & mapping = LIBRARY->mapFormat->getMapping(ret.version);
 
 
 	CampaignRegionID campaignMapId(reader.readUInt8());
 	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.name.appendTextID(readLocalizedString(ret, reader, filename, modName, encoding, "name"));
 	ret.description.appendTextID(readLocalizedString(ret, reader, filename, modName, encoding, "description"));
 	ret.description.appendTextID(readLocalizedString(ret, reader, filename, modName, encoding, "description"));
 	ret.author.appendRawString("");
 	ret.author.appendRawString("");