summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/yuzu/configuration/configure_input_player_widget.cpp233
1 files changed, 125 insertions, 108 deletions
diff --git a/src/yuzu/configuration/configure_input_player_widget.cpp b/src/yuzu/configuration/configure_input_player_widget.cpp
index 416e4d168..d928bbb37 100644
--- a/src/yuzu/configuration/configure_input_player_widget.cpp
+++ b/src/yuzu/configuration/configure_input_player_widget.cpp
@@ -518,14 +518,15 @@ void PlayerControlPreview::DrawDualController(QPainter& p, const QPointF center)
518 { 518 {
519 // Draw joysticks 519 // Draw joysticks
520 using namespace Settings::NativeAnalog; 520 using namespace Settings::NativeAnalog;
521 DrawJoystick(p, center + QPointF(-65, -65) + (axis_values[LStick].value * 7), 1.62f, 521 const auto& l_stick = axis_values[LStick];
522 button_values[Settings::NativeButton::LStick]); 522 const auto l_button = button_values[Settings::NativeButton::LStick];
523 DrawJoystick(p, center + QPointF(65, 12) + (axis_values[RStick].value * 7), 1.62f, 523 const auto& r_stick = axis_values[RStick];
524 button_values[Settings::NativeButton::RStick]); 524 const auto r_button = button_values[Settings::NativeButton::RStick];
525 DrawRawJoystick(p, center + QPointF(-180, 90), axis_values[LStick].raw_value, 525
526 axis_values[LStick].properties); 526 DrawJoystick(p, center + QPointF(-65, -65) + (l_stick.value * 7), 1.62f, l_button);
527 DrawRawJoystick(p, center + QPointF(180, 90), axis_values[RStick].raw_value, 527 DrawJoystick(p, center + QPointF(65, 12) + (r_stick.value * 7), 1.62f, r_button);
528 axis_values[RStick].properties); 528 DrawRawJoystick(p, center + QPointF(-180, 90), l_stick.raw_value, l_stick.properties);
529 DrawRawJoystick(p, center + QPointF(180, 90), r_stick.raw_value, r_stick.properties);
529 } 530 }
530 531
531 using namespace Settings::NativeButton; 532 using namespace Settings::NativeButton;
@@ -604,14 +605,15 @@ void PlayerControlPreview::DrawHandheldController(QPainter& p, const QPointF cen
604 { 605 {
605 // Draw joysticks 606 // Draw joysticks
606 using namespace Settings::NativeAnalog; 607 using namespace Settings::NativeAnalog;
607 DrawJoystick(p, center + QPointF(-171, -41) + (axis_values[LStick].value * 4), 1.0f, 608 const auto& l_stick = axis_values[LStick];
608 button_values[Settings::NativeButton::LStick]); 609 const auto l_button = button_values[Settings::NativeButton::LStick];
609 DrawJoystick(p, center + QPointF(171, 8) + (axis_values[RStick].value * 4), 1.0f, 610 const auto& r_stick = axis_values[RStick];
610 button_values[Settings::NativeButton::RStick]); 611 const auto r_button = button_values[Settings::NativeButton::RStick];
611 DrawRawJoystick(p, center + QPointF(-50, 0), axis_values[LStick].raw_value, 612
612 axis_values[LStick].properties); 613 DrawJoystick(p, center + QPointF(-171, -41) + (l_stick.value * 4), 1.0f, l_button);
613 DrawRawJoystick(p, center + QPointF(50, 0), axis_values[RStick].raw_value, 614 DrawJoystick(p, center + QPointF(171, 8) + (r_stick.value * 4), 1.0f, r_button);
614 axis_values[RStick].properties); 615 DrawRawJoystick(p, center + QPointF(-50, 0), l_stick.raw_value, l_stick.properties);
616 DrawRawJoystick(p, center + QPointF(50, 0), r_stick.raw_value, r_stick.properties);
615 } 617 }
616 618
617 using namespace Settings::NativeButton; 619 using namespace Settings::NativeButton;
@@ -1458,15 +1460,18 @@ void PlayerControlPreview::DrawProBody(QPainter& p, const QPointF center) {
1458 constexpr int radius1 = 32; 1460 constexpr int radius1 = 32;
1459 1461
1460 for (std::size_t point = 0; point < pro_left_handle.size() / 2; ++point) { 1462 for (std::size_t point = 0; point < pro_left_handle.size() / 2; ++point) {
1461 qleft_handle[point] = 1463 const float left_x = pro_left_handle[point * 2 + 0];
1462 center + QPointF(pro_left_handle[point * 2], pro_left_handle[point * 2 + 1]); 1464 const float left_y = pro_left_handle[point * 2 + 1];
1463 qright_handle[point] = 1465
1464 center + QPointF(-pro_left_handle[point * 2], pro_left_handle[point * 2 + 1]); 1466 qleft_handle[point] = center + QPointF(left_x, left_y);
1467 qright_handle[point] = center + QPointF(-left_x, left_y);
1465 } 1468 }
1466 for (std::size_t point = 0; point < pro_body.size() / 2; ++point) { 1469 for (std::size_t point = 0; point < pro_body.size() / 2; ++point) {
1467 qbody[point] = center + QPointF(pro_body[point * 2], pro_body[point * 2 + 1]); 1470 const float body_x = pro_body[point * 2 + 0];
1468 qbody[pro_body.size() - 1 - point] = 1471 const float body_y = pro_body[point * 2 + 1];
1469 center + QPointF(-pro_body[point * 2], pro_body[point * 2 + 1]); 1472
1473 qbody[point] = center + QPointF(body_x, body_y);
1474 qbody[pro_body.size() - 1 - point] = center + QPointF(-body_x, body_y);
1470 } 1475 }
1471 1476
1472 // Draw left handle body 1477 // Draw left handle body
@@ -1497,21 +1502,25 @@ void PlayerControlPreview::DrawGCBody(QPainter& p, const QPointF center) {
1497 constexpr float angle = 2 * 3.1415f / 8; 1502 constexpr float angle = 2 * 3.1415f / 8;
1498 1503
1499 for (std::size_t point = 0; point < gc_left_body.size() / 2; ++point) { 1504 for (std::size_t point = 0; point < gc_left_body.size() / 2; ++point) {
1500 qleft_handle[point] = 1505 const float body_x = gc_left_body[point * 2 + 0];
1501 center + QPointF(gc_left_body[point * 2], gc_left_body[point * 2 + 1]); 1506 const float body_y = gc_left_body[point * 2 + 1];
1502 qright_handle[point] = 1507
1503 center + QPointF(-gc_left_body[point * 2], gc_left_body[point * 2 + 1]); 1508 qleft_handle[point] = center + QPointF(body_x, body_y);
1509 qright_handle[point] = center + QPointF(-body_x, body_y);
1504 } 1510 }
1505 for (std::size_t point = 0; point < gc_body.size() / 2; ++point) { 1511 for (std::size_t point = 0; point < gc_body.size() / 2; ++point) {
1506 qbody[point] = center + QPointF(gc_body[point * 2], gc_body[point * 2 + 1]); 1512 const float body_x = gc_body[point * 2 + 0];
1507 qbody[gc_body.size() - 1 - point] = 1513 const float body_y = gc_body[point * 2 + 1];
1508 center + QPointF(-gc_body[point * 2], gc_body[point * 2 + 1]); 1514
1515 qbody[point] = center + QPointF(body_x, body_y);
1516 qbody[gc_body.size() - 1 - point] = center + QPointF(-body_x, body_y);
1509 } 1517 }
1510 for (std::size_t point = 0; point < 8; ++point) { 1518 for (std::size_t point = 0; point < 8; ++point) {
1511 left_hex[point] = 1519 const float point_cos = std::cos(point * angle);
1512 center + QPointF(34 * std::cos(point * angle) - 111, 34 * std::sin(point * angle) - 44); 1520 const float point_sin = std::sin(point * angle);
1513 right_hex[point] = 1521
1514 center + QPointF(26 * std::cos(point * angle) + 61, 26 * std::sin(point * angle) + 37); 1522 left_hex[point] = center + QPointF(34 * point_cos - 111, 34 * point_sin - 44);
1523 right_hex[point] = center + QPointF(26 * point_cos + 61, 26 * point_sin + 37);
1515 } 1524 }
1516 1525
1517 // Draw body 1526 // Draw body
@@ -1632,32 +1641,36 @@ void PlayerControlPreview::DrawDualBody(QPainter& p, const QPointF center) {
1632 constexpr float offset = 209.3f; 1641 constexpr float offset = 209.3f;
1633 1642
1634 for (std::size_t point = 0; point < left_joycon_body.size() / 2; ++point) { 1643 for (std::size_t point = 0; point < left_joycon_body.size() / 2; ++point) {
1635 left_joycon[point] = center + QPointF(left_joycon_body[point * 2] * size + offset, 1644 const float body_x = left_joycon_body[point * 2 + 0];
1636 left_joycon_body[point * 2 + 1] * size - 1); 1645 const float body_y = left_joycon_body[point * 2 + 1];
1637 right_joycon[point] = center + QPointF(-left_joycon_body[point * 2] * size - offset, 1646
1638 left_joycon_body[point * 2 + 1] * size - 1); 1647 left_joycon[point] = center + QPointF(body_x * size + offset, body_y * size - 1);
1648 right_joycon[point] = center + QPointF(-body_x * size - offset, body_y * size - 1);
1639 } 1649 }
1640 for (std::size_t point = 0; point < left_joycon_slider.size() / 2; ++point) { 1650 for (std::size_t point = 0; point < left_joycon_slider.size() / 2; ++point) {
1641 qleft_joycon_slider[point] = 1651 const float slider_x = left_joycon_slider[point * 2 + 0];
1642 center + QPointF(left_joycon_slider[point * 2], left_joycon_slider[point * 2 + 1]); 1652 const float slider_y = left_joycon_slider[point * 2 + 1];
1643 qright_joycon_slider[point] = 1653
1644 center + QPointF(-left_joycon_slider[point * 2], left_joycon_slider[point * 2 + 1]); 1654 qleft_joycon_slider[point] = center + QPointF(slider_x, slider_y);
1655 qright_joycon_slider[point] = center + QPointF(-slider_x, slider_y);
1645 } 1656 }
1646 for (std::size_t point = 0; point < left_joycon_topview.size() / 2; ++point) { 1657 for (std::size_t point = 0; point < left_joycon_topview.size() / 2; ++point) {
1658 const float top_view_x = left_joycon_topview[point * 2 + 0];
1659 const float top_view_y = left_joycon_topview[point * 2 + 1];
1660
1647 qleft_joycon_topview[point] = 1661 qleft_joycon_topview[point] =
1648 center + QPointF(left_joycon_topview[point * 2] * size2 - 52, 1662 center + QPointF(top_view_x * size2 - 52, top_view_y * size2 - 52);
1649 left_joycon_topview[point * 2 + 1] * size2 - 52);
1650 qright_joycon_topview[point] = 1663 qright_joycon_topview[point] =
1651 center + QPointF(-left_joycon_topview[point * 2] * size2 + 52, 1664 center + QPointF(-top_view_x * size2 + 52, top_view_y * size2 - 52);
1652 left_joycon_topview[point * 2 + 1] * size2 - 52);
1653 } 1665 }
1654 for (std::size_t point = 0; point < left_joycon_slider_topview.size() / 2; ++point) { 1666 for (std::size_t point = 0; point < left_joycon_slider_topview.size() / 2; ++point) {
1667 const float top_view_x = left_joycon_slider_topview[point * 2 + 0];
1668 const float top_view_y = left_joycon_slider_topview[point * 2 + 1];
1669
1655 qleft_joycon_slider_topview[point] = 1670 qleft_joycon_slider_topview[point] =
1656 center + QPointF(left_joycon_slider_topview[point * 2] * size2 - 52, 1671 center + QPointF(top_view_x * size2 - 52, top_view_y * size2 - 52);
1657 left_joycon_slider_topview[point * 2 + 1] * size2 - 52);
1658 qright_joycon_slider_topview[point] = 1672 qright_joycon_slider_topview[point] =
1659 center + QPointF(-left_joycon_slider_topview[point * 2] * size2 + 52, 1673 center + QPointF(-top_view_x * size2 + 52, top_view_y * size2 - 52);
1660 left_joycon_slider_topview[point * 2 + 1] * size2 - 52);
1661 } 1674 }
1662 1675
1663 // right joycon body 1676 // right joycon body
@@ -1906,18 +1919,19 @@ void PlayerControlPreview::DrawProTriggers(QPainter& p, const QPointF center, bo
1906 std::array<QPointF, pro_body_top.size()> qbody_top; 1919 std::array<QPointF, pro_body_top.size()> qbody_top;
1907 1920
1908 for (std::size_t point = 0; point < pro_left_trigger.size() / 2; ++point) { 1921 for (std::size_t point = 0; point < pro_left_trigger.size() / 2; ++point) {
1909 qleft_trigger[point] = 1922 const float trigger_x = pro_left_trigger[point * 2 + 0];
1910 center + QPointF(pro_left_trigger[point * 2], 1923 const float trigger_y = pro_left_trigger[point * 2 + 1];
1911 pro_left_trigger[point * 2 + 1] + (left_pressed ? 2 : 0)); 1924
1912 qright_trigger[point] = 1925 qleft_trigger[point] = center + QPointF(trigger_x, trigger_y + (left_pressed ? 2 : 0));
1913 center + QPointF(-pro_left_trigger[point * 2], 1926 qright_trigger[point] = center + QPointF(-trigger_x, trigger_y + (right_pressed ? 2 : 0));
1914 pro_left_trigger[point * 2 + 1] + (right_pressed ? 2 : 0));
1915 } 1927 }
1916 1928
1917 for (std::size_t point = 0; point < pro_body_top.size() / 2; ++point) { 1929 for (std::size_t point = 0; point < pro_body_top.size() / 2; ++point) {
1918 qbody_top[pro_body_top.size() - 1 - point] = 1930 const float top_x = pro_body_top[point * 2 + 0];
1919 center + QPointF(-pro_body_top[point * 2], pro_body_top[point * 2 + 1]); 1931 const float top_y = pro_body_top[point * 2 + 1];
1920 qbody_top[point] = center + QPointF(pro_body_top[point * 2], pro_body_top[point * 2 + 1]); 1932
1933 qbody_top[pro_body_top.size() - 1 - point] = center + QPointF(-top_x, top_y);
1934 qbody_top[point] = center + QPointF(top_x, top_y);
1921 } 1935 }
1922 1936
1923 // Pro body detail 1937 // Pro body detail
@@ -1940,12 +1954,11 @@ void PlayerControlPreview::DrawGCTriggers(QPainter& p, const QPointF center, boo
1940 std::array<QPointF, left_gc_trigger.size() / 2> qright_trigger; 1954 std::array<QPointF, left_gc_trigger.size() / 2> qright_trigger;
1941 1955
1942 for (std::size_t point = 0; point < left_gc_trigger.size() / 2; ++point) { 1956 for (std::size_t point = 0; point < left_gc_trigger.size() / 2; ++point) {
1943 qleft_trigger[point] = 1957 const float trigger_x = left_gc_trigger[point * 2 + 0];
1944 center + QPointF(left_gc_trigger[point * 2], 1958 const float trigger_y = left_gc_trigger[point * 2 + 1];
1945 left_gc_trigger[point * 2 + 1] + (left_pressed ? 10 : 0)); 1959
1946 qright_trigger[point] = 1960 qleft_trigger[point] = center + QPointF(trigger_x, trigger_y + (left_pressed ? 10 : 0));
1947 center + QPointF(-left_gc_trigger[point * 2], 1961 qright_trigger[point] = center + QPointF(-trigger_x, trigger_y + (right_pressed ? 10 : 0));
1948 left_gc_trigger[point * 2 + 1] + (right_pressed ? 10 : 0));
1949 } 1962 }
1950 1963
1951 // Left trigger 1964 // Left trigger
@@ -1974,12 +1987,13 @@ void PlayerControlPreview::DrawHandheldTriggers(QPainter& p, const QPointF cente
1974 std::array<QPointF, left_joycon_trigger.size() / 2> qright_trigger; 1987 std::array<QPointF, left_joycon_trigger.size() / 2> qright_trigger;
1975 1988
1976 for (std::size_t point = 0; point < left_joycon_trigger.size() / 2; ++point) { 1989 for (std::size_t point = 0; point < left_joycon_trigger.size() / 2; ++point) {
1990 const float left_trigger_x = left_joycon_trigger[point * 2 + 0];
1991 const float left_trigger_y = left_joycon_trigger[point * 2 + 1];
1992
1977 qleft_trigger[point] = 1993 qleft_trigger[point] =
1978 center + QPointF(left_joycon_trigger[point * 2], 1994 center + QPointF(left_trigger_x, left_trigger_y + (left_pressed ? 0.5f : 0));
1979 left_joycon_trigger[point * 2 + 1] + (left_pressed ? 0.5f : 0));
1980 qright_trigger[point] = 1995 qright_trigger[point] =
1981 center + QPointF(-left_joycon_trigger[point * 2], 1996 center + QPointF(-left_trigger_x, left_trigger_y + (right_pressed ? 0.5f : 0));
1982 left_joycon_trigger[point * 2 + 1] + (right_pressed ? 0.5f : 0));
1983 } 1997 }
1984 1998
1985 // Left trigger 1999 // Left trigger
@@ -1999,12 +2013,14 @@ void PlayerControlPreview::DrawDualTriggers(QPainter& p, const QPointF center, b
1999 constexpr float size = 1.62f; 2013 constexpr float size = 1.62f;
2000 constexpr float offset = 210.6f; 2014 constexpr float offset = 210.6f;
2001 for (std::size_t point = 0; point < left_joycon_trigger.size() / 2; ++point) { 2015 for (std::size_t point = 0; point < left_joycon_trigger.size() / 2; ++point) {
2002 qleft_trigger[point] = 2016 const float left_trigger_x = left_joycon_trigger[point * 2 + 0];
2003 center + QPointF(left_joycon_trigger[point * 2] * size + offset, 2017 const float left_trigger_y = left_joycon_trigger[point * 2 + 1];
2004 left_joycon_trigger[point * 2 + 1] * size + (left_pressed ? 0.5f : 0)); 2018
2005 qright_trigger[point] = center + QPointF(-left_joycon_trigger[point * 2] * size - offset, 2019 qleft_trigger[point] = center + QPointF(left_trigger_x * size + offset,
2006 left_joycon_trigger[point * 2 + 1] * size + 2020 left_trigger_y * size + (left_pressed ? 0.5f : 0));
2007 (right_pressed ? 0.5f : 0)); 2021 qright_trigger[point] =
2022 center + QPointF(-left_trigger_x * size - offset,
2023 left_trigger_y * size + (right_pressed ? 0.5f : 0));
2008 } 2024 }
2009 2025
2010 // Left trigger 2026 // Left trigger
@@ -2024,13 +2040,16 @@ void PlayerControlPreview::DrawDualTriggersTopView(QPainter& p, const QPointF ce
2024 constexpr float size = 0.9f; 2040 constexpr float size = 0.9f;
2025 2041
2026 for (std::size_t point = 0; point < left_joystick_L_topview.size() / 2; ++point) { 2042 for (std::size_t point = 0; point < left_joystick_L_topview.size() / 2; ++point) {
2027 qleft_trigger[point] = center + QPointF(left_joystick_L_topview[point * 2] * size - 50, 2043 const float top_view_x = left_joystick_L_topview[point * 2 + 0];
2028 left_joystick_L_topview[point * 2 + 1] * size - 52); 2044 const float top_view_y = left_joystick_L_topview[point * 2 + 1];
2045
2046 qleft_trigger[point] = center + QPointF(top_view_x * size - 50, top_view_y * size - 52);
2029 } 2047 }
2030 for (std::size_t point = 0; point < left_joystick_L_topview.size() / 2; ++point) { 2048 for (std::size_t point = 0; point < left_joystick_L_topview.size() / 2; ++point) {
2031 qright_trigger[point] = 2049 const float top_view_x = left_joystick_L_topview[point * 2 + 0];
2032 center + QPointF(-left_joystick_L_topview[point * 2] * size + 50, 2050 const float top_view_y = left_joystick_L_topview[point * 2 + 1];
2033 left_joystick_L_topview[point * 2 + 1] * size - 52); 2051
2052 qright_trigger[point] = center + QPointF(-top_view_x * size + 50, top_view_y * size - 52);
2034 } 2053 }
2035 2054
2036 p.setPen(colors.outline); 2055 p.setPen(colors.outline);
@@ -2447,17 +2466,16 @@ void PlayerControlPreview::DrawArrowButtonOutline(QPainter& p, const QPointF cen
2447 std::array<QPointF, (arrow_points - 1) * 4> arrow_button_outline; 2466 std::array<QPointF, (arrow_points - 1) * 4> arrow_button_outline;
2448 2467
2449 for (std::size_t point = 0; point < arrow_points - 1; ++point) { 2468 for (std::size_t point = 0; point < arrow_points - 1; ++point) {
2450 arrow_button_outline[point] = center + QPointF(up_arrow_button[point * 2] * size, 2469 const float up_arrow_x = up_arrow_button[point * 2 + 0];
2451 up_arrow_button[point * 2 + 1] * size); 2470 const float up_arrow_y = up_arrow_button[point * 2 + 1];
2471
2472 arrow_button_outline[point] = center + QPointF(up_arrow_x * size, up_arrow_y * size);
2452 arrow_button_outline[(arrow_points - 1) * 2 - point - 1] = 2473 arrow_button_outline[(arrow_points - 1) * 2 - point - 1] =
2453 center + 2474 center + QPointF(up_arrow_y * size, up_arrow_x * size);
2454 QPointF(up_arrow_button[point * 2 + 1] * size, up_arrow_button[point * 2] * size);
2455 arrow_button_outline[(arrow_points - 1) * 2 + point] = 2475 arrow_button_outline[(arrow_points - 1) * 2 + point] =
2456 center + 2476 center + QPointF(-up_arrow_x * size, -up_arrow_y * size);
2457 QPointF(-up_arrow_button[point * 2] * size, -up_arrow_button[point * 2 + 1] * size);
2458 arrow_button_outline[(arrow_points - 1) * 4 - point - 1] = 2477 arrow_button_outline[(arrow_points - 1) * 4 - point - 1] =
2459 center + 2478 center + QPointF(-up_arrow_y * size, -up_arrow_x * size);
2460 QPointF(-up_arrow_button[point * 2 + 1] * size, -up_arrow_button[point * 2] * size);
2461 } 2479 }
2462 // Draw arrow button outline 2480 // Draw arrow button outline
2463 p.setPen(colors.outline); 2481 p.setPen(colors.outline);
@@ -2471,22 +2489,21 @@ void PlayerControlPreview::DrawArrowButton(QPainter& p, const QPointF center,
2471 QPoint offset; 2489 QPoint offset;
2472 2490
2473 for (std::size_t point = 0; point < up_arrow_button.size() / 2; ++point) { 2491 for (std::size_t point = 0; point < up_arrow_button.size() / 2; ++point) {
2492 const float up_arrow_x = up_arrow_button[point * 2 + 0];
2493 const float up_arrow_y = up_arrow_button[point * 2 + 1];
2494
2474 switch (direction) { 2495 switch (direction) {
2475 case Direction::Up: 2496 case Direction::Up:
2476 arrow_button[point] = center + QPointF(up_arrow_button[point * 2] * size, 2497 arrow_button[point] = center + QPointF(up_arrow_x * size, up_arrow_y * size);
2477 up_arrow_button[point * 2 + 1] * size);
2478 break; 2498 break;
2479 case Direction::Left: 2499 case Direction::Left:
2480 arrow_button[point] = center + QPointF(up_arrow_button[point * 2 + 1] * size, 2500 arrow_button[point] = center + QPointF(up_arrow_y * size, up_arrow_x * size);
2481 up_arrow_button[point * 2] * size);
2482 break; 2501 break;
2483 case Direction::Right: 2502 case Direction::Right:
2484 arrow_button[point] = center + QPointF(-up_arrow_button[point * 2 + 1] * size, 2503 arrow_button[point] = center + QPointF(-up_arrow_y * size, up_arrow_x * size);
2485 up_arrow_button[point * 2] * size);
2486 break; 2504 break;
2487 case Direction::Down: 2505 case Direction::Down:
2488 arrow_button[point] = center + QPointF(up_arrow_button[point * 2] * size, 2506 arrow_button[point] = center + QPointF(up_arrow_x * size, -up_arrow_y * size);
2489 -up_arrow_button[point * 2 + 1] * size);
2490 break; 2507 break;
2491 case Direction::None: 2508 case Direction::None:
2492 break; 2509 break;
@@ -2528,14 +2545,15 @@ void PlayerControlPreview::DrawTriggerButton(QPainter& p, const QPointF center,
2528 QPoint offset; 2545 QPoint offset;
2529 2546
2530 for (std::size_t point = 0; point < trigger_button.size() / 2; ++point) { 2547 for (std::size_t point = 0; point < trigger_button.size() / 2; ++point) {
2548 const float trigger_button_x = trigger_button[point * 2 + 0];
2549 const float trigger_button_y = trigger_button[point * 2 + 1];
2550
2531 switch (direction) { 2551 switch (direction) {
2532 case Direction::Left: 2552 case Direction::Left:
2533 qtrigger_button[point] = 2553 qtrigger_button[point] = center + QPointF(-trigger_button_x, trigger_button_y);
2534 center + QPointF(-trigger_button[point * 2], trigger_button[point * 2 + 1]);
2535 break; 2554 break;
2536 case Direction::Right: 2555 case Direction::Right:
2537 qtrigger_button[point] = 2556 qtrigger_button[point] = center + QPointF(trigger_button_x, trigger_button_y);
2538 center + QPointF(trigger_button[point * 2], trigger_button[point * 2 + 1]);
2539 break; 2557 break;
2540 case Direction::Up: 2558 case Direction::Up:
2541 case Direction::Down: 2559 case Direction::Down:
@@ -2658,22 +2676,21 @@ void PlayerControlPreview::DrawArrow(QPainter& p, const QPointF center, const Di
2658 std::array<QPointF, up_arrow_symbol.size() / 2> arrow_symbol; 2676 std::array<QPointF, up_arrow_symbol.size() / 2> arrow_symbol;
2659 2677
2660 for (std::size_t point = 0; point < up_arrow_symbol.size() / 2; ++point) { 2678 for (std::size_t point = 0; point < up_arrow_symbol.size() / 2; ++point) {
2679 const float up_arrow_x = up_arrow_symbol[point * 2 + 0];
2680 const float up_arrow_y = up_arrow_symbol[point * 2 + 1];
2681
2661 switch (direction) { 2682 switch (direction) {
2662 case Direction::Up: 2683 case Direction::Up:
2663 arrow_symbol[point] = center + QPointF(up_arrow_symbol[point * 2] * size, 2684 arrow_symbol[point] = center + QPointF(up_arrow_x * size, up_arrow_y * size);
2664 up_arrow_symbol[point * 2 + 1] * size);
2665 break; 2685 break;
2666 case Direction::Left: 2686 case Direction::Left:
2667 arrow_symbol[point] = center + QPointF(up_arrow_symbol[point * 2 + 1] * size, 2687 arrow_symbol[point] = center + QPointF(up_arrow_y * size, up_arrow_x * size);
2668 up_arrow_symbol[point * 2] * size);
2669 break; 2688 break;
2670 case Direction::Right: 2689 case Direction::Right:
2671 arrow_symbol[point] = center + QPointF(-up_arrow_symbol[point * 2 + 1] * size, 2690 arrow_symbol[point] = center + QPointF(-up_arrow_y * size, up_arrow_x * size);
2672 up_arrow_symbol[point * 2] * size);
2673 break; 2691 break;
2674 case Direction::Down: 2692 case Direction::Down:
2675 arrow_symbol[point] = center + QPointF(up_arrow_symbol[point * 2] * size, 2693 arrow_symbol[point] = center + QPointF(up_arrow_x * size, -up_arrow_y * size);
2676 -up_arrow_symbol[point * 2 + 1] * size);
2677 break; 2694 break;
2678 case Direction::None: 2695 case Direction::None:
2679 break; 2696 break;