Пример #1
0
 private void ParseVideoPackage()
 {
     while (this._buffRecvSize > 0u)
     {
         int   num   = 0;
         CSPkg cSPkg = CSPkg.New();
         if (cSPkg.unpack(ref this._recvBuff, (int)this._buffRecvSize, ref num, 0u) != null || num <= 0 || num > (int)this._buffRecvSize)
         {
             break;
         }
         if (cSPkg.stPkgHead.dwMsgID == 1035u)
         {
             SCPKG_FRAPBOOTINFO stFrapBootInfo = cSPkg.stPkgData.get_stFrapBootInfo();
             for (int i = 0; i < (int)stFrapBootInfo.bSpareNum; i++)
             {
                 SCPKG_FRAPBOOT_SINGLE sCPKG_FRAPBOOT_SINGLE = stFrapBootInfo.astSpareFrap[i];
                 CSDT_FRAPBOOT_INFO    cSDT_FRAPBOOT_INFO    = CSDT_FRAPBOOT_INFO.New();
                 int num2 = 0;
                 if (cSDT_FRAPBOOT_INFO.unpack(ref sCPKG_FRAPBOOT_SINGLE.szInfoBuff, (int)sCPKG_FRAPBOOT_SINGLE.wLen, ref num2, 0u) == null && num2 > 0)
                 {
                     this._maxFrameNo = cSDT_FRAPBOOT_INFO.dwKFrapsNo;
                     this._pkgQueue.Enqueue(cSDT_FRAPBOOT_INFO);
                 }
             }
         }
         else
         {
             this._pkgQueue.Enqueue(cSPkg);
         }
         this._buffRecvSize -= (uint)num;
         Buffer.BlockCopy(this._recvBuff, num, this._recvBuff, 0, (int)this._buffRecvSize);
     }
 }
Пример #2
0
        private static bool HandleFraqBootSingle(SCPKG_FRAPBOOT_SINGLE fbi)
        {
            CSDT_FRAPBOOT_INFO fbid = CSDT_FRAPBOOT_INFO.New();
            int usedSize            = 0;

            return(((fbid.unpack(ref fbi.szInfoBuff, fbi.wLen, ref usedSize, 0) == TdrError.ErrorType.TDR_NO_ERROR) && (usedSize > 0)) && Singleton <FrameWindow> .GetInstance().SetFrqWin(fbid));
        }
Пример #3
0
 private void ParseVideoPackage()
 {
     while (this._buffRecvSize > 0)
     {
         int   usedSize = 0;
         CSPkg item     = CSPkg.New();
         if (((item.unpack(ref this._recvBuff, (int)this._buffRecvSize, ref usedSize, 0) != TdrError.ErrorType.TDR_NO_ERROR) || (usedSize <= 0)) || (usedSize > this._buffRecvSize))
         {
             break;
         }
         if (item.stPkgHead.dwMsgID == 0x40b)
         {
             SCPKG_FRAPBOOTINFO stFrapBootInfo = item.stPkgData.stFrapBootInfo;
             for (int i = 0; i < stFrapBootInfo.bSpareNum; i++)
             {
                 SCPKG_FRAPBOOT_SINGLE scpkg_frapboot_single = stFrapBootInfo.astSpareFrap[i];
                 CSDT_FRAPBOOT_INFO    csdt_frapboot_info    = CSDT_FRAPBOOT_INFO.New();
                 int num3 = 0;
                 if ((csdt_frapboot_info.unpack(ref scpkg_frapboot_single.szInfoBuff, scpkg_frapboot_single.wLen, ref num3, 0) == TdrError.ErrorType.TDR_NO_ERROR) && (num3 > 0))
                 {
                     this._maxFrameNo = csdt_frapboot_info.dwKFrapsNo;
                     this._pkgQueue.Enqueue(csdt_frapboot_info);
                 }
             }
         }
         else
         {
             this._pkgQueue.Enqueue(item);
         }
         this._buffRecvSize -= (uint)usedSize;
         Buffer.BlockCopy(this._recvBuff, usedSize, this._recvBuff, 0, (int)this._buffRecvSize);
     }
 }
Пример #4
0
        private static bool HandleFraqBootSingle(SCPKG_FRAPBOOT_SINGLE fbi)
        {
            CSDT_FRAPBOOT_INFO cSDT_FRAPBOOT_INFO = CSDT_FRAPBOOT_INFO.New();
            int num = 0;

            return(cSDT_FRAPBOOT_INFO.unpack(ref fbi.szInfoBuff, (int)fbi.wLen, ref num, 0u) == null && num > 0 && Singleton <FrameWindow> .GetInstance().SetFrqWin(cSDT_FRAPBOOT_INFO));
        }
Пример #5
0
        private void RecordReplay(CSDT_FRAPBOOT_INFO fbid)
        {
            CSPkg msg = NetworkModule.CreateDefaultCSPKG(0x40a);
            SCPKG_FRAPBOOT_SINGLE stFrapBootSingle = msg.stPkgData.stFrapBootSingle;
            int usedSize = 0;

            if (fbid.pack(ref stFrapBootSingle.szInfoBuff, stFrapBootSingle.szInfoBuff.Length, ref usedSize, 0) == TdrError.ErrorType.TDR_NO_ERROR)
            {
                stFrapBootSingle.wLen = (ushort)usedSize;
                Singleton <GameReplayModule> .instance.RecordMsg(msg);
            }
            msg.Release();
        }