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