コード例 #1
0
        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);
            }
        }
コード例 #2
0
		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;
			}
		}