public static BioQuestMap Load(Stream stream) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } using (var reader = new BioQuestMapReader(stream)) { var map = new BinaryBioQuestMap(); var questsCount = reader.ReadInt32(); map.Quests = new Dictionary<int, BioQuest>(); for (var i = 0; i < questsCount; i++) { var id = reader.ReadInt32(); var quest = reader.ReadQuest(); if (!map.Quests.ContainsKey(id)) { map.Quests.Add(id, quest); } else { map.Quests[id] = quest; } } // var taskEvalsCount = reader.ReadInt32(); map.BoolTaskEvals = new Dictionary<int, BioStateTaskList>(); for (var i = 0; i < taskEvalsCount; i++) { var id = reader.ReadInt32(); var taskList = reader.ReadStateTaskList(); if (!map.BoolTaskEvals.ContainsKey(id)) { map.BoolTaskEvals.Add(id, taskList); } else { map.BoolTaskEvals[id] = taskList; } } // var intTaskEvalsCount = reader.ReadInt32(); map.IntTaskEvals = new Dictionary<int, BioStateTaskList>(); for (var i = 0; i < intTaskEvalsCount; i++) { var id = reader.ReadInt32(); var taskList = reader.ReadStateTaskList(); if (!map.IntTaskEvals.ContainsKey(id)) { map.IntTaskEvals.Add(id, taskList); } else { map.IntTaskEvals[id] = taskList; } } // var floatTaskEvalsCount = reader.ReadInt32(); map.FloatTaskEvals = new Dictionary<int, BioStateTaskList>(); for (var i = 0; i < floatTaskEvalsCount; i++) { var id = reader.ReadInt32(); var taskList = reader.ReadStateTaskList(); if (!map.FloatTaskEvals.ContainsKey(id)) { map.FloatTaskEvals.Add(id, taskList); } else { map.FloatTaskEvals[id] = taskList; } } return map; } }
public static BioQuestMap Load(Stream stream) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } using (var reader = new BioQuestMapReader(stream)) { var map = new BinaryBioQuestMap(); var questsCount = reader.ReadInt32(); map.Quests = new Dictionary <int, BioQuest>(); for (var i = 0; i < questsCount; i++) { var id = reader.ReadInt32(); var quest = reader.ReadQuest(); if (!map.Quests.ContainsKey(id)) { map.Quests.Add(id, quest); } else { map.Quests[id] = quest; } } // var taskEvalsCount = reader.ReadInt32(); map.BoolTaskEvals = new Dictionary <int, BioStateTaskList>(); for (var i = 0; i < taskEvalsCount; i++) { var id = reader.ReadInt32(); var taskList = reader.ReadStateTaskList(); if (!map.BoolTaskEvals.ContainsKey(id)) { map.BoolTaskEvals.Add(id, taskList); } else { map.BoolTaskEvals[id] = taskList; } } // var intTaskEvalsCount = reader.ReadInt32(); map.IntTaskEvals = new Dictionary <int, BioStateTaskList>(); for (var i = 0; i < intTaskEvalsCount; i++) { var id = reader.ReadInt32(); var taskList = reader.ReadStateTaskList(); if (!map.IntTaskEvals.ContainsKey(id)) { map.IntTaskEvals.Add(id, taskList); } else { map.IntTaskEvals[id] = taskList; } } // var floatTaskEvalsCount = reader.ReadInt32(); map.FloatTaskEvals = new Dictionary <int, BioStateTaskList>(); for (var i = 0; i < floatTaskEvalsCount; i++) { var id = reader.ReadInt32(); var taskList = reader.ReadStateTaskList(); if (!map.FloatTaskEvals.ContainsKey(id)) { map.FloatTaskEvals.Add(id, taskList); } else { map.FloatTaskEvals[id] = taskList; } } return(map); } }
public void SaveFile() { if (pcc == null) { return; } if (CodexMapControl != null) { IExportEntry export; int dataOffset; if (CodexMapView.TryFindCodexMap(pcc, out export, out dataOffset)) { using (var stream = new MemoryStream()) { var codexMap = CodexMapControl.ToCodexMap(); var binaryCodexMap = new BinaryBioCodexMap(codexMap.Sections, codexMap.Pages); binaryCodexMap.Save(stream); export.setBinaryData(stream.ToArray()); } } } if (QuestMapControl != null) { IExportEntry export; int dataOffset; if (QuestMapControl.TryFindQuestMap(pcc, out export, out dataOffset)) { using (var stream = new MemoryStream()) { var questMap = QuestMapControl.ToQuestMap(); var binaryQuestMap = new BinaryBioQuestMap(questMap.Quests, questMap.BoolTaskEvals, questMap.IntTaskEvals, questMap.FloatTaskEvals); binaryQuestMap.Save(stream); export.setBinaryData(stream.ToArray()); } } } if (StateEventMapControl != null) { IExportEntry export; int dataOffset; if (StateEventMapControl.TryFindStateEventMap(pcc, out export, out dataOffset)) { using (var stream = new MemoryStream()) { var stateEventMap = StateEventMapControl.ToStateEventMap(); var binaryStateEventMap = new BinaryBioStateEventMap(stateEventMap.StateEvents); binaryStateEventMap.Save(stream); export.setBinaryData(stream.ToArray()); } } } pcc.save(FileName); }