protected virtual RewiredPointerInputModule.MouseState GetMousePointerEventData(
            int playerId,
            int mouseIndex)
        {
            IMouseInputSource mouseInputSource = this.GetMouseInputSource(playerId, mouseIndex);

            if (mouseInputSource == null)
            {
                return((RewiredPointerInputModule.MouseState)null);
            }
            PlayerPointerEventData data1;
            bool pointerData = this.GetPointerData(playerId, mouseIndex, -1, out data1, true, PointerEventType.Mouse);

            ((AbstractEventData)data1).Reset();
            if (pointerData)
            {
                data1.set_position(mouseInputSource.get_screenPosition());
            }
            Vector2 screenPosition = mouseInputSource.get_screenPosition();

            if (mouseInputSource.get_locked())
            {
                data1.set_position(new Vector2(-1f, -1f));
                data1.set_delta(Vector2.get_zero());
            }
            else
            {
                data1.set_delta(Vector2.op_Subtraction(screenPosition, data1.get_position()));
                data1.set_position(screenPosition);
            }
            data1.set_scrollDelta(mouseInputSource.get_wheelDelta());
            data1.set_button((PointerEventData.InputButton) 0);
            this.get_eventSystem().RaycastAll((PointerEventData)data1, (List <RaycastResult>) this.m_RaycastResultCache);
            RaycastResult firstRaycast = BaseInputModule.FindFirstRaycast((List <RaycastResult>) this.m_RaycastResultCache);

            data1.set_pointerCurrentRaycast(firstRaycast);
            ((List <RaycastResult>) this.m_RaycastResultCache).Clear();
            PlayerPointerEventData data2;

            this.GetPointerData(playerId, mouseIndex, -2, out data2, true, PointerEventType.Mouse);
            this.CopyFromTo((PointerEventData)data1, (PointerEventData)data2);
            data2.set_button((PointerEventData.InputButton) 1);
            PlayerPointerEventData data3;

            this.GetPointerData(playerId, mouseIndex, -3, out data3, true, PointerEventType.Mouse);
            this.CopyFromTo((PointerEventData)data1, (PointerEventData)data3);
            data3.set_button((PointerEventData.InputButton) 2);
            for (int index = 3; index < mouseInputSource.get_buttonCount(); ++index)
            {
                PlayerPointerEventData data4;
                this.GetPointerData(playerId, mouseIndex, index - 2147483520, out data4, true, PointerEventType.Mouse);
                this.CopyFromTo((PointerEventData)data1, (PointerEventData)data4);
                data4.set_button((PointerEventData.InputButton) - 1);
            }
            this.m_MouseState.SetButtonState(0, this.StateForMouseButton(playerId, mouseIndex, 0), data1);
            this.m_MouseState.SetButtonState(1, this.StateForMouseButton(playerId, mouseIndex, 1), data2);
            this.m_MouseState.SetButtonState(2, this.StateForMouseButton(playerId, mouseIndex, 2), data3);
            for (int index = 3; index < mouseInputSource.get_buttonCount(); ++index)
            {
                PlayerPointerEventData data4;
                this.GetPointerData(playerId, mouseIndex, index - 2147483520, out data4, false, PointerEventType.Mouse);
                this.m_MouseState.SetButtonState(index, this.StateForMouseButton(playerId, mouseIndex, index), data4);
            }
            return(this.m_MouseState);
        }