示例#1
0
        public static StreamEntry CreateStreamEntryByType(StreamEntryType type)
        {
            switch (type)
            {
            case StreamEntryType.DONATE: return(new DonateStreamEntry());

            case StreamEntryType.CHAT: return(new ChatStreamEntry());

            case StreamEntryType.JOIN_REQUEST: return(new JoinRequestAllianceStreamEntry());

            case StreamEntryType.ALLIANCE_EVENT: return(new AllianceEventStreamEntry());

            case StreamEntryType.REPLAY: return(new ReplayStreamEntry());

            case StreamEntryType.CHALLENGE_REPLAY: return(new ChallengeReplayStreamEntry());

            case StreamEntryType.CHALLENGE: return(new ChallengeStreamEntry());

            case StreamEntryType.ALLIANCE_GIFT: return(new AllianceGiftStreamEntry());

            case StreamEntryType.VERSUS_BATTLE_REQUEST: return(new VersusChallengeStreamEntry());

            case StreamEntryType.VERSUS_BATTLE_REPLAY: return(new VersusBattleReplayStreamEntry());

            case StreamEntryType.DUEL_REPLAY: return(new DuelReplayStreamEntry());

            default: return(null);
            }
        }
示例#2
0
        protected void readStreamAttribute(MemoryStream ms)
        {
            //StreamEntry
            byte[]       entryBuffer = ms.ReadFixedLengthByteArray(ms.ReadInt8());
            MemoryStream ms2         = new MemoryStream(entryBuffer);

            StreamEntryType = (StreamEntryType)ms2.ReadInt8();
            switch (StreamEntryType)
            {
            case StreamEntryType.STREAM_FOR_PLAYITEM:
                StreamPIDOfMainClip = ms2.ReadUInt16BE();
                ms2.Position       += 6;
                break;

            case StreamEntryType.STREAM_FOR_SUBPATH:
                SubPathId           = ms2.ReadInt8();
                SubClipEntryId      = ms2.ReadInt8();
                StreamPIDOfMainClip = ms2.ReadUInt16BE();
                ms2.Position       += 4;
                break;

            case StreamEntryType.STREAM_FOR_IN_MUX_SUBPATH:
                SubPathId           = ms2.ReadInt8();
                StreamPIDOfMainClip = ms2.ReadUInt16BE();
                ms2.Position       += 5;
                break;

            default:
                throw new NotImplementedException(StreamEntryType.ToString());
            }
        }