public static QuestConversation DeserializeConversation(Type[] referenceTable, GenericReader reader) { int encoding = reader.ReadEncodedInt(); switch (encoding) { default: case 0x00: // null { return(null); } case 0x01: { Type type = ReadType(referenceTable, reader); QuestConversation conv = Construct(type) as QuestConversation; if (conv != null) { conv.BaseDeserialize(reader); } return(conv); } } }
public static QuestConversation DeserializeConversation(QuestSystem qs, GenericReader reader) { int encoding = reader.ReadEncodedInt(); switch (encoding) { default: case 0x00: // null { return(null); } case 0x01: // old format { Type type = ReadType(qs, reader); QuestConversation conv = Construct(type) as QuestConversation; if (conv == null) { QuestConversationStub.Instance.BaseDeserialize(reader); } else { conv.BaseDeserialize(reader); } return(conv); } case 0x02: { Type type = reader.ReadObjectType(); QuestConversation conv = Construct(type) as QuestConversation; Persistence.DeserializeBlock(reader, r => conv?.BaseDeserialize(r)); return(conv); } } }