public virtual void BaseDeserialize(GenericReader reader) { Type[] referenceTable = this.TypeReferenceTable; int version = reader.ReadEncodedInt(); switch (version) { case 0: { int count = reader.ReadEncodedInt(); m_Objectives = new ArrayList(count); for (int i = 0; i < count; ++i) { QuestObjective obj = QuestSerializer.DeserializeObjective(referenceTable, reader); if (obj != null) { obj.System = this; m_Objectives.Add(obj); } } count = reader.ReadEncodedInt(); m_Conversations = new ArrayList(count); for (int i = 0; i < count; ++i) { QuestConversation conv = QuestSerializer.DeserializeConversation(referenceTable, reader); if (conv != null) { conv.System = this; m_Conversations.Add(conv); } } break; } } ChildDeserialize(reader); }
public virtual void BaseSerialize(GenericWriter writer) { Type[] referenceTable = this.TypeReferenceTable; writer.WriteEncodedInt((int)0); // version writer.WriteEncodedInt((int)m_Objectives.Count); for (int i = 0; i < m_Objectives.Count; ++i) { QuestSerializer.Serialize(referenceTable, (QuestObjective)m_Objectives[i], writer); } writer.WriteEncodedInt((int)m_Conversations.Count); for (int i = 0; i < m_Conversations.Count; ++i) { QuestSerializer.Serialize(referenceTable, (QuestConversation)m_Conversations[i], writer); } ChildSerialize(writer); }