Esempio n. 1
0
 void ProcessClientEvents(ulong _ulPlayerId, TPlayerStates _tPlayers)
 {
     // Send out input events to subscribers on server
     for (int i = 0; i < (int)EInput.MAX; ++i)
     {
         if ((_tPlayers.ulPreviousInput & (ulong)1 << i) == 0 &&
             (_tPlayers.ulInput & (ulong)1 << i) > 0)
         {
             InvokeClientInputEvent((EInput)i, _ulPlayerId, true);
         }
         else if ((_tPlayers.ulPreviousInput & (ulong)1 << i) > 0 &&
                  (_tPlayers.ulInput & (ulong)1 << i) == 0)
         {
             InvokeClientInputEvent((EInput)i, _ulPlayerId, false);
         }
     }
 }
Esempio n. 2
0
    public static void UnserializeInbound(CNetworkPlayer _cPlayer, CNetworkStream _cStream)
    {
        TPlayerStates tPlayerStates = s_cInstance.m_mPlayerStates[_cPlayer.PlayerId];

        tPlayerStates.ulPreviousInput = tPlayerStates.ulInput;
        tPlayerStates.ulInput         = _cStream.ReadULong();
        tPlayerStates.fPreviousMouseX = tPlayerStates.fMouseX;
        tPlayerStates.fPreviousMouseY = tPlayerStates.fMouseY;
        tPlayerStates.fMouseX         = _cStream.ReadFloat();
        tPlayerStates.fMouseY         = _cStream.ReadFloat();

        if (tPlayerStates.fPreviousMouseX != tPlayerStates.fMouseX)
        {
            s_cInstance.InvokeClientClientAxisEvent(EAxis.MouseX, _cPlayer.PlayerId, tPlayerStates.fMouseX);
        }

        if (tPlayerStates.fPreviousMouseY != tPlayerStates.fMouseY)
        {
            s_cInstance.InvokeClientClientAxisEvent(EAxis.MouseY, _cPlayer.PlayerId, tPlayerStates.fMouseY);
        }

        s_cInstance.ProcessClientEvents(_cPlayer.PlayerId, tPlayerStates);
    }