public static void Write() { string buildPath = DataDirectory.GetBuildPath(); Build build = new Build(buildPath); BuildTarget qfBuildTarget = BuildTargetFactory.Construct(BuildTargetFactory.QFName, build); BuildTarget tifBuildTarget = BuildTargetFactory.Construct(BuildTargetFactory.TIFName, build); TES4Collection collection = TES4CollectionFactory.Create(DataDirectory.GetESMDirectoryPath(), DataDirectory.TES4GameFileName);//Needs the "full" collection for SCRO lookups. using (ESMAnalyzer esmAnalyzer = ESMAnalyzer.Load(collection)) { foreach (TES4Record record in collection.Where(r => r.RecordType == TES4RecordType.INFO)) { var scroRecords = esmAnalyzer.GetTypesFromSCROEnumerable(record, null); string[] aliases = scroRecords.Select(r => r.Key).ToArray(); Write(qfBuildTarget, tifBuildTarget, record, null, aliases); } foreach (TES4Record record in collection.GetGrupRecords(TES4RecordType.QUST)) { Dictionary <StageIndexAndLogIndex, List <string> > aliasesDictionary = new Dictionary <StageIndexAndLogIndex, List <string> >(); foreach (var subrecord in record.GetSubrecordsWithStageIndexAndLogIndex("SCRO")) { int formID = subrecord.Item1.Value.FirstFourBytesToInt(); string name = formID == TES5PlayerReference.FormID ? TES5PlayerReference.PlayerRefName : esmAnalyzer.GetEDIDByFormID(formID); aliasesDictionary.AddNewListIfNotContainsKeyAndAddValueToList(subrecord.Item2, name); } foreach (var aliases in aliasesDictionary) { Write(qfBuildTarget, tifBuildTarget, record, aliases.Key, aliases.Value); } } } }
public static void Write() { TES4Collection collection = TES4CollectionFactory.CreateForQUSTReferenceAliasExporting(DataDirectory.GetESMDirectoryPath(), DataDirectory.TES4GameFileName); BuildTarget qfBuildTarget = BuildTargetFactory.Construct(BuildTargetFactory.QFName, new Build(DataDirectory.GetBuildPath())); string sourcePath = qfBuildTarget.GetSourcePath(); IEnumerable <TES4Record> qustRecords = collection.GetGrupRecords(TES4RecordType.QUST); foreach (TES4Record qust in qustRecords) { Write(sourcePath, qust); } }
public static void Write() { BuildTarget qfBuildTarget = BuildTargetFactory.Construct(BuildTargetFactory.QFName, new Build(DataDirectory.GetBuildPath())); string sourcePath = qfBuildTarget.GetSourcePath(); TES4Collection collection = TES4CollectionFactory.CreateForQUSTStageMapExportingFromESM(DataDirectory.GetESMDirectoryPath(), DataDirectory.TES4GameFileName); IEnumerable <TES4Record> qusts = collection.GetGrupRecords(TES4RecordType.QUST); foreach (TES4Record qust in qusts) { string fileNameNoExt = BuildTargetsWriter.GetFileNameNoExt(TES5ReferenceFactory.qf_Prefix, qust, true, null); string fileName = fileNameNoExt + ".map"; string mapFilePath = sourcePath + Path.DirectorySeparatorChar + fileName; string contentsString = StageMapFromESMBuilder.BuildString(qust); FileWriter.WriteAllTextOrThrowIfExists(mapFilePath, contentsString); } }
public static void Write() { BuildTarget qfBuildTarget = BuildTargetFactory.Construct(BuildTargetFactory.QFName, new Build(DataDirectory.GetBuildPath())); string transpiledPath = qfBuildTarget.GetTranspiledPath(); string sourcePath = qfBuildTarget.GetSourcePath(); foreach (string pscPath in Directory.EnumerateFiles(transpiledPath, "*.psc")) { Write(sourcePath, pscPath); } TES4Collection collection = TES4CollectionFactory.CreateForQUSTStageMapExportingFromPSCFiles(DataDirectory.GetESMDirectoryPath(), DataDirectory.TES4GameFileName); IEnumerable <TES4Record> qustRecords = collection.GetGrupRecords(TES4RecordType.QUST); foreach (TES4Record qust in qustRecords) { string path = sourcePath + BuildTargetsWriter.GetFileNameNoExt(TES5ReferenceFactory.qf_Prefix, qust, true, null) + ".map2"; FileWriter.WriteAllTextIfNotExists(path, ""); } }
public override void Execute() { if (!PreExecutionChecks(false, true, false, false)) { return; } Build build = new Build(Build.DEFAULT_BUILD_PATH); BuildTarget buildTarget = BuildTargetFactory.Construct(BuildTargetFactory.QFName, build); bool preprocessed; Dictionary <int, List <int> > originalStageMap = StageMapFromMAPBuilder.BuildStageMapDictionary(buildTarget, "QF_FGC01Rats_01035713", out preprocessed); StageMap stageMap = new StageMap(originalStageMap.ToDictionary(m => m.Key, m => m.Value.ToList()), preprocessed);//Copy dictionary StringBuilder output = new StringBuilder(StageMapToMAPBuilder.GetContents(stageMap, originalStageMap)); output.Append("Mapping index print"); foreach (var kvp in stageMap.MappedTargetsIndex) { var originalTargetIndex = kvp.Key; var mappedTargetIndexes = kvp.Value; output.AppendLine(); output.Append(originalTargetIndex + " - " + string.Join(" ", mappedTargetIndexes)); } string outputString = output.ToString(); Console.WriteLine(outputString); const string fgc01RatsResultFromPHP = @"10 - 0 0 0 1 10 - 0 0 0 1 0 0 0 0 0 0 20 - 1 0 0 0 20 - 1 0 0 0 0 0 0 0 0 0 30 - 0 0 0 1 30 - 0 0 0 0 1 0 0 0 0 0 40 - 0 0 1 0 40 - 0 0 1 0 0 0 0 0 0 0 50 - 0 0 1 0 50 - 0 0 1 0 0 0 0 0 0 0 55 - 0 0 0 1 55 - 0 0 0 0 0 1 0 0 0 0 60 - 1 0 0 0 60 - 0 0 0 0 0 0 1 0 0 0 65 - 0 0 0 1 65 - 0 0 0 0 0 0 0 1 0 0 70 - 0 1 0 0 70 - 0 1 0 0 0 0 0 0 0 0 80 - 0 1 0 0 80 - 0 1 0 0 0 0 0 0 0 0 90 - 0 0 0 1 90 - 0 0 0 0 0 0 0 0 1 0 100 - 0 0 0 0 100 - 0 0 0 0 0 0 0 0 0 0 105 - 0 1 0 0 105 - 0 0 0 0 0 0 0 0 0 1 110 - 0 0 0 0 110 - 0 0 0 0 0 0 0 0 0 0 200 - 0 0 0 0 200 - 0 0 0 0 0 0 0 0 0 0 Mapping index print 3 - 4 5 7 8 0 - 6 1 - 9"; bool match = fgc01RatsResultFromPHP.Replace("\r\n", "\n") == outputString.Replace("\r\n", "\n"); Console.WriteLine("Output " + (match ? "matched" : "did not match") + " the output of the PHP version."); }