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