// Token: 0x06000107 RID: 263 RVA: 0x0000A06C File Offset: 0x0000826C private static void LoadTask(TaskSerializationData taskSerializationData, FieldSerializationData fieldSerializationData, ref List <Task> taskList, ref BehaviorSource behaviorSource) { int count = taskList.Count; Type type = TaskUtility.GetTypeWithinAssembly(taskSerializationData.types[count]); if (type == null) { bool flag = false; for (int i = 0; i < taskSerializationData.parentIndex.Count; i++) { if (count == taskSerializationData.parentIndex[i]) { flag = true; break; } } if (flag) { type = typeof(UnknownParentTask); } else { type = typeof(UnknownTask); } } Task task = TaskUtility.CreateInstance(type) as Task; task.Owner = (behaviorSource.Owner.GetObject() as Behavior); taskList.Add(task); int num = taskSerializationData.startIndex[count]; int num2; if (count + 1 < taskSerializationData.startIndex.Count) { num2 = taskSerializationData.startIndex[count + 1]; } else { num2 = fieldSerializationData.startIndex.Count; } Dictionary <string, int> dictionary = ObjectPool.Get <Dictionary <string, int> >(); dictionary.Clear(); for (int j = num; j < num2; j++) { if (!dictionary.ContainsKey(fieldSerializationData.typeName[j])) { dictionary.Add(fieldSerializationData.typeName[j], fieldSerializationData.startIndex[j]); } } task.ID = (int)BinaryDeserializationDeprecated.LoadField(fieldSerializationData, dictionary, typeof(int), "ID", null, null, null); task.FriendlyName = (string)BinaryDeserializationDeprecated.LoadField(fieldSerializationData, dictionary, typeof(string), "FriendlyName", null, null, null); task.IsInstant = (bool)BinaryDeserializationDeprecated.LoadField(fieldSerializationData, dictionary, typeof(bool), "IsInstant", null, null, null); object obj; if ((obj = BinaryDeserializationDeprecated.LoadField(fieldSerializationData, dictionary, typeof(bool), "Disabled", null, null, null)) != null) { task.Disabled = (bool)obj; } BinaryDeserializationDeprecated.LoadNodeData(fieldSerializationData, dictionary, taskList[count]); if (task.GetType().Equals(typeof(UnknownTask)) || task.GetType().Equals(typeof(UnknownParentTask))) { if (!task.FriendlyName.Contains("Unknown ")) { task.FriendlyName = string.Format("Unknown {0}", task.FriendlyName); } if (!task.NodeData.Comment.Contains("Loaded from an unknown type. Was a task renamed or deleted?")) { task.NodeData.Comment = string.Format("Loaded from an unknown type. Was a task renamed or deleted?{0}", (!task.NodeData.Comment.Equals(string.Empty)) ? string.Format("\0{0}", task.NodeData.Comment) : string.Empty); } } BinaryDeserializationDeprecated.LoadFields(fieldSerializationData, dictionary, taskList[count], string.Empty, behaviorSource); ObjectPool.Return <Dictionary <string, int> >(dictionary); }