private void HandleRawMouseMove(int x, int y) { TooltipManager.CancelTooltip(); if (!Main.Active) { Program.MainInstance.IsMouseVisible = true; return; } float baseMouseSpeed = ((float)System.Windows.Forms.SystemInformation.MouseSpeed / 20f) * OverallMouseSpeedMult; if (Main.Input.ShiftHeld) { baseMouseSpeed *= 5; } if (Main.Input.LeftClickHeld && dragType == ViewportDragType.LeftClick) { Program.MainInstance.IsMouseVisible = false; Mouse.SetPosition((int)Math.Round(Main.Input.LeftClickDownAnchor.X * Main.DPIX), (int)Math.Round(Main.Input.LeftClickDownAnchor.Y * Main.DPIY)); bool isInvertedPitch = false; //float pitchCheck = OrbitCamEuler.X + MathHelper.PiOver2; //if (pitchCheck >= 0) //{ // isInvertedPitch = Math.Floor(pitchCheck / MathHelper.Pi) % 2 == 1; //} //else //{ // isInvertedPitch = Math.Floor(-pitchCheck / MathHelper.Pi) % 2 == 0; //} OrbitCamEuler += new Vector3(-y, isInvertedPitch ? x : -x, 0) * baseMouseSpeed * CameraTurnSpeedMouse * 0.01f; } else if (Main.Input.RightClickHeld && dragType == ViewportDragType.RightClick) { FollowingLockon = false; Program.MainInstance.IsMouseVisible = false; Mouse.SetPosition((int)Math.Round(Main.Input.LeftClickDownAnchor.X * Main.DPIX), (int)Math.Round(Main.Input.LeftClickDownAnchor.Y * Main.DPIY)); if (Main.Input.CtrlHeld) { CameraOrbitOrigin += Vector3.Transform( new Vector3(-x, 0, -y), CameraLocationInWorld.Rotation) * baseMouseSpeed * CameraMoveSpeed * 0.0015f * OrbitCamDistance * ProjectionVerticalFovRatio; } else { CameraOrbitOrigin += Vector3.Transform( new Vector3(-x, y, 0), CameraLocationInWorld.Rotation) * baseMouseSpeed * CameraMoveSpeed * 0.0015f * OrbitCamDistance * ProjectionVerticalFovRatio; } } else { Program.MainInstance.IsMouseVisible = true; } }