コード例 #1
0
ファイル: EOClient.cs プロジェクト: Vulttwin/EndlessClient
        public int GetHashCode(object obj)
        {
            if (!(obj is FamilyActionPair))
            {
                return(0);
            }

            FamilyActionPair fap /*lol*/ = (FamilyActionPair)obj;

            return((int)fap.fam << 8 & (byte)fap.act);
        }
コード例 #2
0
ファイル: EOClient.cs プロジェクト: Vulttwin/EndlessClient
 public void AddPacketHandler(FamilyActionPair key, PacketHandler handlerFunction, bool inGameOnly)
 {
     if (m_handlers.ContainsKey(key))
     {
         m_handlers[key] = new LockedHandlerMethod(handlerFunction, inGameOnly);
     }
     else
     {
         m_handlers.Add(key, new LockedHandlerMethod(handlerFunction, inGameOnly));
     }
 }
コード例 #3
0
ファイル: EOClient.cs プロジェクト: Vulttwin/EndlessClient
        bool IEqualityComparer.Equals(object obj1, object obj2)
        {
            if (!(obj1 is FamilyActionPair) || !(obj2 is FamilyActionPair))
            {
                return(false);
            }

            FamilyActionPair fap1 = (FamilyActionPair)obj1, fap2 = (FamilyActionPair)obj2;

            return(fap1.fam == fap2.fam && fap1.act == fap2.act);
        }
コード例 #4
0
 public void AddPacketHandler(FamilyActionPair key, PacketHandler handlerFunction, bool inGameOnly)
 {
     if (_handlers.ContainsKey(key))
     {
         _handlers[key] = new PacketHandlerInvoker(handlerFunction, inGameOnly);
     }
     else
     {
         _handlers.Add(key, new PacketHandlerInvoker(handlerFunction, inGameOnly));
     }
 }
コード例 #5
0
ファイル: EOClient.cs プロジェクト: Vulttwin/EndlessClient
        private void _handlePacket(object state)
        {
            Packet           pkt     = (Packet)state;
            FamilyActionPair pair    = new FamilyActionPair(pkt.Family, pkt.Action);
            bool             handled = false;

            if (m_handlers.ContainsKey(pair))
            {
                handled = true;
                m_handlers[pair].InvokeHandler(pkt, IsInGame);
            }

            if (EventReceiveData != null)
            {
                DataTransferEventArgs dte = new DataTransferEventArgs(DataTransferEventArgs.TransferType.Recv, pkt.Family, pkt.Action, pkt.Data)
                {
                    PacketHandled = handled
                };
                EventReceiveData(dte);
            }
        }
コード例 #6
0
ファイル: EOClient.cs プロジェクト: Vulttwin/EndlessClient
        private void _handlePacket(object state)
        {
            Packet pkt = (Packet) state;
            FamilyActionPair pair = new FamilyActionPair(pkt.Family, pkt.Action);
            bool handled = false;
            if (m_handlers.ContainsKey(pair))
            {
                handled = true;
                m_handlers[pair].InvokeHandler(pkt, IsInGame);
            }

            if (EventReceiveData != null)
            {
                DataTransferEventArgs dte = new DataTransferEventArgs(DataTransferEventArgs.TransferType.Recv, pkt.Family, pkt.Action, pkt.Data)
                {
                    PacketHandled = handled
                };
                EventReceiveData(dte);
            }
        }
コード例 #7
0
ファイル: EOClient.cs プロジェクト: Vulttwin/EndlessClient
 public void AddPacketHandler(FamilyActionPair key, PacketHandler handlerFunction, bool inGameOnly)
 {
     if (m_handlers.ContainsKey(key))
         m_handlers[key] = new LockedHandlerMethod(handlerFunction, inGameOnly);
     else
         m_handlers.Add(key, new LockedHandlerMethod(handlerFunction, inGameOnly));
 }