public void AddMoveEvent(int x, int y, int z, int facing, bool createdByPlayerInput)
        {
            MoveEvent moveEvent = new MoveEvent(x, y, z, facing, m_FastWalkKey);

            moveEvent.CreatedByPlayerInput = createdByPlayerInput;

            m_history[m_sequenceQueued] = moveEvent;

            m_sequenceQueued += 1;
            if (m_sequenceQueued > byte.MaxValue)
            {
                m_sequenceQueued = 1;
            }
        }
 public void MoveRequestReject(int sequence, out int x, out int y, out int z, out int facing)
 {
     if (m_history[sequence] != null)
     {
         MoveEvent e = m_history[sequence];
         x      = e.X;
         y      = e.Y;
         z      = e.Z;
         facing = e.Facing;
     }
     else
     {
         x = y = z = facing = -1;
     }
     ResetMoveSequence();
 }
 public MoveEvent GetMoveEvent(out int sequence)
 {
     if (m_history[m_sequenceNextSend] != null)
     {
         MoveEvent m = m_history[m_sequenceNextSend];
         m_history[m_sequenceNextSend] = null;
         sequence = m_sequenceNextSend;
         m_sequenceNextSend++;
         if (m_sequenceNextSend > byte.MaxValue)
         {
             m_sequenceNextSend = 1;
         }
         return(m);
     }
     else
     {
         sequence = 0;
         return(null);
     }
 }