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