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; } }