浏览代码

extract campaign to map folder

Laserlicht 1 年之前
父节点
当前提交
a89a1efa89
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      launcher/modManager/chroniclesextractor.cpp

+ 6 - 0
launcher/modManager/chroniclesextractor.cpp

@@ -193,6 +193,7 @@ void ChroniclesExtractor::extractFiles(int no)
 	QDir outDirSprites(pathToQString(VCMIDirs::get().userDataPath() / "Mods" / "chronicles" / "Mods" / ("chronicles_" + std::to_string(no)) / "content" / "Sprites"));
 	QDir outDirVideo(pathToQString(VCMIDirs::get().userDataPath() / "Mods" / "chronicles" / "Mods" / ("chronicles_" + std::to_string(no)) / "content" / "Video"));
 	QDir outDirSounds(pathToQString(VCMIDirs::get().userDataPath() / "Mods" / "chronicles" / "Mods" / ("chronicles_" + std::to_string(no)) / "content" / "Sounds"));
+	QDir outDirMaps(pathToQString(VCMIDirs::get().userDataPath() / "Mods" / "chronicles" / "Mods" / ("chronicles_" + std::to_string(no)) / "content" / "Maps"));
 
 	auto extract = [tmpDir, no](QDir dest, QString file){
 		CArchiveLoader archive("", tmpDir.filePath(tmpDir.entryList({file}).front()).toStdString(), false);
@@ -225,6 +226,11 @@ void ChroniclesExtractor::extractFiles(int no)
 	rename(outDirSprites);
 	rename(outDirVideo);
 	rename(outDirSounds);
+
+	if(!outDirMaps.exists())
+		outDirMaps.mkpath(".");
+	QString campaignFileName = "Hc" + QString::number(no) + "_Main.h3c";
+	QFile(outDirData.filePath(outDirData.entryList({campaignFileName}).front())).copy(outDirMaps.filePath(campaignFileName));
 }
 
 void ChroniclesExtractor::installChronicles(QStringList exe)