mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2024-07-04 23:31:19 +01:00
Replace text with vectors
This commit is contained in:
parent
481cd86722
commit
ea1f656d7e
2 changed files with 312 additions and 83 deletions
|
@ -250,9 +250,9 @@ void PlayerControlPreview::DrawLeftController(QPainter& p, const QPointF center)
|
|||
|
||||
// D-pad constants
|
||||
const QPointF dpad_center = center + QPoint(9, 14);
|
||||
const int dpad_distance = 23;
|
||||
const int dpad_radius = 11;
|
||||
const float dpad_arrow_size = 1.2f;
|
||||
constexpr int dpad_distance = 23;
|
||||
constexpr int dpad_radius = 11;
|
||||
constexpr float dpad_arrow_size = 1.2f;
|
||||
|
||||
// D-pad buttons
|
||||
p.setPen(colors.outline);
|
||||
|
@ -344,8 +344,9 @@ void PlayerControlPreview::DrawRightController(QPainter& p, const QPointF center
|
|||
|
||||
// Face buttons constants
|
||||
const QPointF face_center = center + QPoint(-9, -73);
|
||||
const int face_distance = 23;
|
||||
const int face_radius = 11;
|
||||
constexpr int face_distance = 23;
|
||||
constexpr int face_radius = 11;
|
||||
constexpr float text_size = 1.1f;
|
||||
|
||||
// Face buttons
|
||||
p.setPen(colors.outline);
|
||||
|
@ -356,11 +357,12 @@ void PlayerControlPreview::DrawRightController(QPainter& p, const QPointF center
|
|||
DrawCircleButton(p, face_center + QPoint(-face_distance, 0), button_values[Y], face_radius);
|
||||
|
||||
// Face buttons text
|
||||
p.setPen(colors.font);
|
||||
DrawText(p, face_center + QPoint(face_distance, 0), 10, QStringLiteral("A"));
|
||||
DrawText(p, face_center + QPoint(0, face_distance), 10, QStringLiteral("B"));
|
||||
DrawText(p, face_center + QPoint(0, -face_distance), 10, QStringLiteral("X"));
|
||||
DrawText(p, face_center + QPoint(-face_distance + 1, 1), 10, QStringLiteral("Y"));
|
||||
p.setPen(colors.transparent);
|
||||
p.setBrush(colors.font);
|
||||
DrawSymbol(p, face_center + QPoint(face_distance, 0), Symbol::A, text_size);
|
||||
DrawSymbol(p, face_center + QPoint(0, face_distance), Symbol::B, text_size);
|
||||
DrawSymbol(p, face_center + QPoint(0, -face_distance), Symbol::X, text_size);
|
||||
DrawSymbol(p, face_center + QPoint(-face_distance, 1), Symbol::Y, text_size);
|
||||
|
||||
// SR and SL buttons
|
||||
p.setPen(colors.outline);
|
||||
|
@ -385,7 +387,9 @@ void PlayerControlPreview::DrawRightController(QPainter& p, const QPointF center
|
|||
DrawCircleButton(p, center + QPoint(-26, 66), button_values[Home], 12);
|
||||
button_color = colors.button;
|
||||
DrawCircleButton(p, center + QPoint(-26, 66), button_values[Home], 9);
|
||||
DrawHouseIcon(p, center + QPoint(-26, 66), 5);
|
||||
p.setPen(colors.transparent);
|
||||
p.setBrush(colors.font2);
|
||||
DrawSymbol(p, center + QPoint(-26, 66), Symbol::House, 5);
|
||||
}
|
||||
|
||||
void PlayerControlPreview::DrawDualController(QPainter& p, const QPointF center) {
|
||||
|
@ -457,9 +461,9 @@ void PlayerControlPreview::DrawDualController(QPainter& p, const QPointF center)
|
|||
|
||||
// Face buttons constants
|
||||
const QPointF face_center = center + QPoint(65, -65);
|
||||
const int face_distance = 20;
|
||||
const int face_radius = 10;
|
||||
const int text_size = 10;
|
||||
constexpr int face_distance = 20;
|
||||
constexpr int face_radius = 10;
|
||||
constexpr float text_size = 1.0f;
|
||||
|
||||
// Face buttons
|
||||
p.setPen(colors.outline);
|
||||
|
@ -470,17 +474,18 @@ void PlayerControlPreview::DrawDualController(QPainter& p, const QPointF center)
|
|||
DrawCircleButton(p, face_center + QPoint(-face_distance, 0), button_values[Y], face_radius);
|
||||
|
||||
// Face buttons text
|
||||
p.setPen(colors.font);
|
||||
DrawText(p, face_center + QPoint(face_distance, 0), text_size, QStringLiteral("A"));
|
||||
DrawText(p, face_center + QPoint(0, face_distance), text_size, QStringLiteral("B"));
|
||||
DrawText(p, face_center + QPoint(0, -face_distance), text_size, QStringLiteral("X"));
|
||||
DrawText(p, face_center + QPointF(-face_distance + 0.5f, 1), text_size, QStringLiteral("Y"));
|
||||
p.setPen(colors.transparent);
|
||||
p.setBrush(colors.font);
|
||||
DrawSymbol(p, face_center + QPoint(face_distance, 0), Symbol::A, text_size);
|
||||
DrawSymbol(p, face_center + QPoint(0, face_distance), Symbol::B, text_size);
|
||||
DrawSymbol(p, face_center + QPoint(0, -face_distance), Symbol::X, text_size);
|
||||
DrawSymbol(p, face_center + QPoint(-face_distance, 1), Symbol::Y, text_size);
|
||||
|
||||
// D-pad constants
|
||||
const QPointF dpad_center = center + QPoint(-65, 12);
|
||||
const int dpad_distance = 20;
|
||||
const int dpad_radius = 10;
|
||||
const float dpad_arrow_size = 1.1f;
|
||||
constexpr int dpad_distance = 20;
|
||||
constexpr int dpad_radius = 10;
|
||||
constexpr float dpad_arrow_size = 1.1f;
|
||||
|
||||
// D-pad buttons
|
||||
p.setPen(colors.outline);
|
||||
|
@ -516,7 +521,9 @@ void PlayerControlPreview::DrawDualController(QPainter& p, const QPointF center)
|
|||
DrawCircleButton(p, center + QPoint(50, 60), button_values[Home], 11);
|
||||
button_color = colors.button;
|
||||
DrawCircleButton(p, center + QPoint(50, 60), button_values[Home], 8.5f);
|
||||
DrawHouseIcon(p, center + QPoint(50, 60), 4.2f);
|
||||
p.setPen(colors.transparent);
|
||||
p.setBrush(colors.font2);
|
||||
DrawSymbol(p, center + QPoint(50, 60), Symbol::House, 4.2f);
|
||||
}
|
||||
|
||||
void PlayerControlPreview::DrawHandheldController(QPainter& p, const QPointF center) {
|
||||
|
@ -539,9 +546,9 @@ void PlayerControlPreview::DrawHandheldController(QPainter& p, const QPointF cen
|
|||
|
||||
// Face buttons constants
|
||||
const QPointF face_center = center + QPoint(171, -41);
|
||||
const int face_distance = 12;
|
||||
const int face_radius = 6;
|
||||
const float text_size = 5.5f;
|
||||
constexpr int face_distance = 12;
|
||||
constexpr int face_radius = 6;
|
||||
constexpr float text_size = 0.6f;
|
||||
|
||||
// Face buttons
|
||||
p.setPen(colors.outline);
|
||||
|
@ -552,17 +559,18 @@ void PlayerControlPreview::DrawHandheldController(QPainter& p, const QPointF cen
|
|||
DrawCircleButton(p, face_center + QPoint(-face_distance, 0), button_values[Y], face_radius);
|
||||
|
||||
// Face buttons text
|
||||
p.setPen(colors.font);
|
||||
DrawText(p, face_center + QPointF(face_distance + 0.2f, 0), text_size, QStringLiteral("A"));
|
||||
DrawText(p, face_center + QPoint(0, face_distance), text_size, QStringLiteral("B"));
|
||||
DrawText(p, face_center + QPoint(0, -face_distance), text_size, QStringLiteral("X"));
|
||||
DrawText(p, face_center + QPointF(-face_distance + 0.2f, 0), text_size, QStringLiteral("Y"));
|
||||
p.setPen(colors.transparent);
|
||||
p.setBrush(colors.font);
|
||||
DrawSymbol(p, face_center + QPoint(face_distance, 0), Symbol::A, text_size);
|
||||
DrawSymbol(p, face_center + QPoint(0, face_distance), Symbol::B, text_size);
|
||||
DrawSymbol(p, face_center + QPoint(0, -face_distance), Symbol::X, text_size);
|
||||
DrawSymbol(p, face_center + QPoint(-face_distance, 1), Symbol::Y, text_size);
|
||||
|
||||
// D-pad constants
|
||||
const QPointF dpad_center = center + QPoint(-171, 8);
|
||||
const int dpad_distance = 12;
|
||||
const int dpad_radius = 6;
|
||||
const float dpad_arrow_size = 0.68f;
|
||||
constexpr int dpad_distance = 12;
|
||||
constexpr int dpad_radius = 6;
|
||||
constexpr float dpad_arrow_size = 0.68f;
|
||||
|
||||
// D-pad buttons
|
||||
p.setPen(colors.outline);
|
||||
|
@ -582,11 +590,12 @@ void PlayerControlPreview::DrawHandheldController(QPainter& p, const QPointF cen
|
|||
|
||||
// ZL and ZR buttons
|
||||
p.setPen(colors.outline);
|
||||
DrawCircleButton(p, center + QPoint(-175, -120), button_values[ZL], 15);
|
||||
DrawCircleButton(p, center + QPoint(175, -120), button_values[ZR], 15);
|
||||
p.setPen(colors.font);
|
||||
DrawText(p, center + QPoint(-175, -120), 9, QStringLiteral("ZL"));
|
||||
DrawText(p, center + QPoint(175, -120), 9, QStringLiteral("ZR"));
|
||||
DrawTriggerButton(p, center + QPoint(-210, -130), Direction::Left, button_values[ZL]);
|
||||
DrawTriggerButton(p, center + QPoint(210, -130), Direction::Right, button_values[ZR]);
|
||||
p.setPen(colors.transparent);
|
||||
p.setBrush(colors.font);
|
||||
DrawSymbol(p, center + QPoint(-210, -130), Symbol::ZL, 1.5f);
|
||||
DrawSymbol(p, center + QPoint(210, -130), Symbol::ZR, 1.5f);
|
||||
|
||||
// Minus and Plus button
|
||||
p.setPen(colors.outline);
|
||||
|
@ -607,7 +616,9 @@ void PlayerControlPreview::DrawHandheldController(QPainter& p, const QPointF cen
|
|||
DrawCircleButton(p, center + QPoint(161, 37), button_values[Home], 7);
|
||||
button_color = colors.button;
|
||||
DrawCircleButton(p, center + QPoint(161, 37), button_values[Home], 5);
|
||||
DrawHouseIcon(p, center + QPoint(161, 37), 2.75f);
|
||||
p.setPen(colors.transparent);
|
||||
p.setBrush(colors.font2);
|
||||
DrawSymbol(p, center + QPoint(161, 37), Symbol::House, 2.75f);
|
||||
}
|
||||
|
||||
void PlayerControlPreview::DrawProController(QPainter& p, const QPointF center) {
|
||||
|
@ -630,9 +641,9 @@ void PlayerControlPreview::DrawProController(QPainter& p, const QPointF center)
|
|||
|
||||
// Face buttons constants
|
||||
const QPointF face_center = center + QPoint(105, -56);
|
||||
const int face_distance = 31;
|
||||
const int face_radius = 15;
|
||||
const int text_size = 13;
|
||||
constexpr int face_distance = 31;
|
||||
constexpr int face_radius = 15;
|
||||
constexpr float text_size = 1.5f;
|
||||
|
||||
// Face buttons
|
||||
p.setPen(colors.outline);
|
||||
|
@ -643,11 +654,12 @@ void PlayerControlPreview::DrawProController(QPainter& p, const QPointF center)
|
|||
DrawCircleButton(p, face_center + QPoint(-face_distance, 0), button_values[Y], face_radius);
|
||||
|
||||
// Face buttons text
|
||||
p.setPen(colors.font);
|
||||
DrawText(p, face_center + QPoint(face_distance, 0), text_size, QStringLiteral("A"));
|
||||
DrawText(p, face_center + QPoint(0, face_distance), text_size, QStringLiteral("B"));
|
||||
DrawText(p, face_center + QPoint(0, -face_distance), text_size, QStringLiteral("X"));
|
||||
DrawText(p, face_center + QPoint(-face_distance, 1), text_size, QStringLiteral("Y"));
|
||||
p.setPen(colors.transparent);
|
||||
p.setBrush(colors.font);
|
||||
DrawSymbol(p, face_center + QPoint(face_distance, 0), Symbol::A, text_size);
|
||||
DrawSymbol(p, face_center + QPoint(0, face_distance), Symbol::B, text_size);
|
||||
DrawSymbol(p, face_center + QPoint(0, -face_distance), Symbol::X, text_size);
|
||||
DrawSymbol(p, face_center + QPoint(-face_distance, 1), Symbol::Y, text_size);
|
||||
|
||||
// D-pad buttons
|
||||
const QPointF dpad_postion = center + QPoint(-61, 0);
|
||||
|
@ -655,23 +667,28 @@ void PlayerControlPreview::DrawProController(QPainter& p, const QPointF center)
|
|||
DrawArrowButton(p, dpad_postion, Direction::Left, button_values[DLeft]);
|
||||
DrawArrowButton(p, dpad_postion, Direction::Right, button_values[DRight]);
|
||||
DrawArrowButton(p, dpad_postion, Direction::Down, button_values[DDown]);
|
||||
DrawArrowButtonOutline(p, dpad_postion);
|
||||
|
||||
// ZL and ZR buttons
|
||||
p.setPen(colors.outline);
|
||||
DrawCircleButton(p, center + QPoint(-175, -120), button_values[ZL], 15);
|
||||
DrawCircleButton(p, center + QPoint(175, -120), button_values[ZR], 15);
|
||||
p.setPen(colors.font);
|
||||
DrawText(p, center + QPoint(-175, -120), 9, QStringLiteral("ZL"));
|
||||
DrawText(p, center + QPoint(175, -120), 9, QStringLiteral("ZR"));
|
||||
DrawTriggerButton(p, center + QPoint(-210, -130), Direction::Left, button_values[ZL]);
|
||||
DrawTriggerButton(p, center + QPoint(210, -130), Direction::Right, button_values[ZR]);
|
||||
p.setPen(colors.transparent);
|
||||
p.setBrush(colors.font);
|
||||
DrawSymbol(p, center + QPoint(-210, -130), Symbol::ZL, 1.5f);
|
||||
DrawSymbol(p, center + QPoint(210, -130), Symbol::ZR, 1.5f);
|
||||
|
||||
// Minus and Plus buttons
|
||||
p.setPen(colors.outline);
|
||||
DrawCircleButton(p, center + QPoint(-50, -86), button_values[Minus], 9);
|
||||
DrawCircleButton(p, center + QPoint(49, -86), button_values[Plus], 9);
|
||||
DrawCircleButton(p, center + QPoint(50, -86), button_values[Plus], 9);
|
||||
|
||||
// Minus and Plus symbols
|
||||
p.setPen(colors.font2);
|
||||
p.setBrush(colors.font2);
|
||||
DrawRectangle(p, center + QPoint(-50, -86), 8, 2);
|
||||
DrawText(p, center + QPointF(49.5f, -86), 12, QStringLiteral("+"));
|
||||
DrawRectangle(p, center + QPoint(-50, -86), 9, 1.5f);
|
||||
DrawRectangle(p, center + QPoint(50, -86), 9, 1.5f);
|
||||
DrawRectangle(p, center + QPoint(50, -86), 1.5f, 9);
|
||||
|
||||
// Screenshot button
|
||||
p.setPen(colors.outline);
|
||||
|
@ -683,21 +700,96 @@ void PlayerControlPreview::DrawProController(QPainter& p, const QPointF center)
|
|||
// Home Button
|
||||
p.setPen(colors.outline);
|
||||
button_color = colors.slider_button;
|
||||
DrawCircleButton(p, center + QPoint(29, -56), button_values[Home], 9);
|
||||
DrawCircleButton(p, center + QPoint(29, -56), button_values[Home], 10.0f);
|
||||
button_color = colors.button;
|
||||
DrawCircleButton(p, center + QPoint(29, -56), button_values[Home], 7.1f);
|
||||
DrawHouseIcon(p, center + QPoint(29, -56), 3.9f);
|
||||
p.setPen(colors.transparent);
|
||||
p.setBrush(colors.font2);
|
||||
DrawSymbol(p, center + QPoint(29, -56), Symbol::House, 3.9f);
|
||||
}
|
||||
|
||||
constexpr std::array<float, 13 * 2> symbol_a = {
|
||||
-1.085f, -5.2f, 1.085f, -5.2f, 5.085f, 5.0f, 2.785f, 5.0f, 1.785f,
|
||||
2.65f, -1.785f, 2.65f, -2.785f, 5.0f, -5.085f, 5.0f, -1.4f, 1.0f,
|
||||
0.0f, -2.8f, 1.4f, 1.0f, -1.4f, 1.0f, -5.085f, 5.0f,
|
||||
};
|
||||
constexpr std::array<float, 134 * 2> symbol_b = {
|
||||
-4.0f, 0.0f, -4.0f, 0.0f, -4.0f, -0.1f, -3.8f, -5.1f, 1.8f, -5.0f, 2.3f, -4.9f, 2.6f,
|
||||
-4.8f, 2.8f, -4.7f, 2.9f, -4.6f, 3.1f, -4.5f, 3.2f, -4.4f, 3.4f, -4.3f, 3.4f, -4.2f,
|
||||
3.5f, -4.1f, 3.7f, -4.0f, 3.7f, -3.9f, 3.8f, -3.8f, 3.8f, -3.7f, 3.9f, -3.6f, 3.9f,
|
||||
-3.5f, 4.0f, -3.4f, 4.0f, -3.3f, 4.1f, -3.1f, 4.1f, -3.0f, 4.0f, -2.0f, 4.0f, -1.9f,
|
||||
3.9f, -1.7f, 3.9f, -1.6f, 3.8f, -1.5f, 3.8f, -1.4f, 3.7f, -1.3f, 3.7f, -1.2f, 3.6f,
|
||||
-1.1f, 3.6f, -1.0f, 3.5f, -0.9f, 3.3f, -0.8f, 3.3f, -0.7f, 3.2f, -0.6f, 3.0f, -0.5f,
|
||||
2.9f, -0.4f, 2.7f, -0.3f, 2.9f, -0.2f, 3.2f, -0.1f, 3.3f, 0.0f, 3.5f, 0.1f, 3.6f,
|
||||
0.2f, 3.8f, 0.3f, 3.9f, 0.4f, 4.0f, 0.6f, 4.1f, 0.7f, 4.3f, 0.8f, 4.3f, 0.9f,
|
||||
4.4f, 1.0f, 4.4f, 1.1f, 4.5f, 1.3f, 4.5f, 1.4f, 4.6f, 1.6f, 4.6f, 1.7f, 4.5f,
|
||||
2.8f, 4.5f, 2.9f, 4.4f, 3.1f, 4.4f, 3.2f, 4.3f, 3.4f, 4.3f, 3.5f, 4.2f, 3.6f,
|
||||
4.2f, 3.7f, 4.1f, 3.8f, 4.1f, 3.9f, 4.0f, 4.0f, 3.9f, 4.2f, 3.8f, 4.3f, 3.6f,
|
||||
4.4f, 3.6f, 4.5f, 3.4f, 4.6f, 3.3f, 4.7f, 3.1f, 4.8f, 2.8f, 4.9f, 2.6f, 5.0f,
|
||||
2.1f, 5.1f, -4.0f, 5.0f, -4.0f, 4.9f,
|
||||
|
||||
-4.0f, 0.0f, 1.1f, 3.4f, 1.1f, 3.4f, 1.5f, 3.3f, 1.8f, 3.2f, 2.0f, 3.1f, 2.1f,
|
||||
3.0f, 2.3f, 2.9f, 2.3f, 2.8f, 2.4f, 2.7f, 2.4f, 2.6f, 2.5f, 2.3f, 2.5f, 2.2f,
|
||||
2.4f, 1.7f, 2.4f, 1.6f, 2.3f, 1.4f, 2.3f, 1.3f, 2.2f, 1.2f, 2.2f, 1.1f, 2.1f,
|
||||
1.0f, 1.9f, 0.9f, 1.6f, 0.8f, 1.4f, 0.7f, -1.9f, 0.6f, -1.9f, 0.7f, -1.8f, 3.4f,
|
||||
1.1f, 3.4f, -4.0f, 0.0f,
|
||||
|
||||
0.3f, -1.1f, 0.3f, -1.1f, 1.3f, -1.2f, 1.5f, -1.3f, 1.8f, -1.4f, 1.8f, -1.5f, 1.9f,
|
||||
-1.6f, 2.0f, -1.8f, 2.0f, -1.9f, 2.1f, -2.0f, 2.1f, -2.1f, 2.0f, -2.7f, 2.0f, -2.8f,
|
||||
1.9f, -2.9f, 1.9f, -3.0f, 1.8f, -3.1f, 1.6f, -3.2f, 1.6f, -3.3f, 1.3f, -3.4f, -1.9f,
|
||||
-3.3f, -1.9f, -3.2f, -1.8f, -1.0f, 0.2f, -1.1f, 0.3f, -1.1f, -4.0f, 0.0f,
|
||||
};
|
||||
|
||||
constexpr std::array<float, 9 * 2> symbol_y = {
|
||||
-4.79f, -4.9f, -2.44f, -4.9f, 0.0f, -0.9f, 2.44f, -4.9f, 4.79f,
|
||||
-4.9f, 1.05f, 1.0f, 1.05f, 5.31f, -1.05f, 5.31f, -1.05f, 1.0f,
|
||||
|
||||
};
|
||||
|
||||
constexpr std::array<float, 12 * 2> symbol_x = {
|
||||
-4.4f, -5.0f, -2.0f, -5.0f, 0.0f, -1.7f, 2.0f, -5.0f, 4.4f, -5.0f, 1.2f, 0.0f,
|
||||
4.4f, 5.0f, 2.0f, 5.0f, 0.0f, 1.7f, -2.0f, 5.0f, -4.4f, 5.0f, -1.2f, 0.0f,
|
||||
|
||||
};
|
||||
|
||||
constexpr std::array<float, 18 * 2> symbol_zl = {
|
||||
-2.6f, -2.13f, -5.6f, -2.13f, -5.6f, -3.23f, -0.8f, -3.23f, -0.8f, -2.13f, -4.4f, 2.12f,
|
||||
-0.7f, 2.12f, -0.7f, 3.22f, -6.0f, 3.22f, -6.0f, 2.12f, 2.4f, -3.23f, 2.4f, 2.1f,
|
||||
5.43f, 2.1f, 5.43f, 3.22f, 0.98f, 3.22f, 0.98f, -3.23f, 2.4f, -3.23f, -6.0f, 2.12f,
|
||||
};
|
||||
|
||||
constexpr std::array<float, 110 * 2> symbol_zr = {
|
||||
-2.6f, -2.13f, -5.6f, -2.13f, -5.6f, -3.23f, -0.8f, -3.23f, -0.8f, -2.13f, -4.4f, 2.12f, -0.7f,
|
||||
2.12f, -0.7f, 3.22f, -6.0f, 3.22f, -6.0f, 2.12f,
|
||||
|
||||
1.0f, 0.0f, 1.0f, -0.1f, 1.1f, -3.3f, 4.3f, -3.2f, 5.1f, -3.1f, 5.4f, -3.0f, 5.6f,
|
||||
-2.9f, 5.7f, -2.8f, 5.9f, -2.7f, 5.9f, -2.6f, 6.0f, -2.5f, 6.1f, -2.3f, 6.2f, -2.2f,
|
||||
6.2f, -2.1f, 6.3f, -2.0f, 6.3f, -1.9f, 6.2f, -0.8f, 6.2f, -0.7f, 6.1f, -0.6f, 6.1f,
|
||||
-0.5f, 6.0f, -0.4f, 6.0f, -0.3f, 5.9f, -0.2f, 5.7f, -0.1f, 5.7f, 0.0f, 5.6f, 0.1f,
|
||||
5.4f, 0.2f, 5.1f, 0.3f, 4.7f, 0.4f, 4.7f, 0.5f, 4.9f, 0.6f, 5.0f, 0.7f, 5.2f,
|
||||
0.8f, 5.2f, 0.9f, 5.3f, 1.0f, 5.5f, 1.1f, 5.5f, 1.2f, 5.6f, 1.3f, 5.7f, 1.5f,
|
||||
5.8f, 1.6f, 5.9f, 1.8f, 6.0f, 1.9f, 6.1f, 2.1f, 6.2f, 2.2f, 6.2f, 2.3f, 6.3f,
|
||||
2.4f, 6.4f, 2.6f, 6.5f, 2.7f, 6.6f, 2.9f, 6.7f, 3.0f, 6.7f, 3.1f, 6.8f, 3.2f,
|
||||
6.8f, 3.3f, 5.3f, 3.2f, 5.2f, 3.1f, 5.2f, 3.0f, 5.1f, 2.9f, 5.0f, 2.7f, 4.9f,
|
||||
2.6f, 4.8f, 2.4f, 4.7f, 2.3f, 4.6f, 2.1f, 4.5f, 2.0f, 4.4f, 1.8f, 4.3f, 1.7f,
|
||||
4.1f, 1.4f, 4.0f, 1.3f, 3.9f, 1.1f, 3.8f, 1.0f, 3.6f, 0.9f, 3.6f, 0.8f, 3.5f,
|
||||
0.7f, 3.3f, 0.6f, 2.9f, 0.5f, 2.3f, 0.6f, 2.3f, 0.7f, 2.2f, 3.3f, 1.0f, 3.2f,
|
||||
1.0f, 3.1f, 1.0f, 0.0f,
|
||||
|
||||
4.2f, -0.5f, 4.2f, -0.5f, 4.4f, -0.6f, 4.7f, -0.7f, 4.8f, -0.8f, 4.9f, -1.0f, 5.0f,
|
||||
-1.1f, 5.0f, -1.2f, 4.9f, -1.7f, 4.9f, -1.8f, 4.8f, -1.9f, 4.8f, -2.0f, 4.6f, -2.1f,
|
||||
4.3f, -2.2f, 2.3f, -2.1f, 2.3f, -2.0f, 2.4f, -0.5f, 4.2f, -0.5f, 1.0f, 0.0f, -6.0f,
|
||||
2.12f,
|
||||
};
|
||||
|
||||
constexpr std::array<float, 12 * 2> house = {
|
||||
-1.3f, 0.0f, -0.93f, 0.0f, -0.93f, 1.15f, 0.93f, 1.15f, 0.93f, 0.0f, 1.3f, 0.0f,
|
||||
0.0f, -1.2f, -1.3f, 0.0f, -0.43f, 0.0f, -0.43f, .73f, 0.43f, .73f, 0.43f, 0.0f,
|
||||
};
|
||||
|
||||
constexpr std::array<float, 15 * 2> up_arrow_button = {
|
||||
-8.6f, -30.0f, -9.0f, -29.8f, -9.3f, -29.5f, -9.5f, -29.1f, -9.5f, -28.7f,
|
||||
-9.1f, -9.1f, -8.8f, -8.8f, 0.3f, -0.3f, 0.6f, -0.6f, 9.4f, -9.8f,
|
||||
9.4f, -10.2f, 8.9f, -29.8f, 8.5f, -30.0f, 8.1f, -30.1f, 7.7f, -30.1f,
|
||||
constexpr std::array<float, 11 * 2> up_arrow_button = {
|
||||
9.1f, -9.1f, 9.1f, -30.0f, 8.1f, -30.1f, 7.7f, -30.1f, -8.6f, -30.0f, -9.0f,
|
||||
-29.8f, -9.3f, -29.5f, -9.5f, -29.1f, -9.1f, -28.7f, -9.1f, -9.1f, 0.0f, 0.6f,
|
||||
};
|
||||
|
||||
constexpr std::array<float, 3 * 2> up_arrow_symbol = {
|
||||
|
@ -710,6 +802,20 @@ constexpr std::array<float, 13 * 2> up_arrow = {
|
|||
-9.5f, -29.1f, -9.5f, -28.7f, -9.1f, -9.1f, -8.8f, -8.8f,
|
||||
};
|
||||
|
||||
constexpr std::array<float, 64 * 2> trigger_button = {
|
||||
5.5f, -12.6f, 5.8f, -12.6f, 6.7f, -12.5f, 8.1f, -12.3f, 8.6f, -12.2f, 9.2f, -12.0f,
|
||||
9.5f, -11.9f, 9.9f, -11.8f, 10.6f, -11.5f, 11.0f, -11.3f, 11.2f, -11.2f, 11.4f, -11.1f,
|
||||
11.8f, -10.9f, 12.0f, -10.8f, 12.2f, -10.7f, 12.4f, -10.5f, 12.6f, -10.4f, 12.8f, -10.3f,
|
||||
13.6f, -9.7f, 13.8f, -9.6f, 13.9f, -9.4f, 14.1f, -9.3f, 14.8f, -8.6f, 15.0f, -8.5f,
|
||||
15.1f, -8.3f, 15.6f, -7.8f, 15.7f, -7.6f, 16.1f, -7.0f, 16.3f, -6.8f, 16.4f, -6.6f,
|
||||
16.5f, -6.4f, 16.8f, -6.0f, 16.9f, -5.8f, 17.0f, -5.6f, 17.1f, -5.4f, 17.2f, -5.2f,
|
||||
17.3f, -5.0f, 17.4f, -4.8f, 17.5f, -4.6f, 17.6f, -4.4f, 17.7f, -4.1f, 17.8f, -3.9f,
|
||||
17.9f, -3.5f, 18.0f, -3.3f, 18.1f, -3.0f, 18.2f, -2.6f, 18.2f, -2.3f, 18.3f, -2.1f,
|
||||
18.3f, -1.9f, 18.4f, -1.4f, 18.5f, -1.2f, 18.6f, -0.3f, 18.6f, 0.0f, 18.3f, 13.9f,
|
||||
-17.0f, 13.8f, -17.0f, 13.6f, -16.4f, -11.4f, -16.3f, -11.6f, -16.1f, -11.8f, -15.7f, -12.0f,
|
||||
-15.5f, -12.1f, -15.1f, -12.3f, -14.6f, -12.4f, -13.4f, -12.5f,
|
||||
};
|
||||
|
||||
constexpr std::array<float, 36 * 2> pro_left_trigger = {
|
||||
-65.2f, -132.6f, -68.2f, -134.1f, -71.3f, -135.5f, -74.4f, -136.7f, -77.6f,
|
||||
-137.6f, -80.9f, -138.1f, -84.3f, -138.3f, -87.6f, -138.3f, -91.0f, -138.1f,
|
||||
|
@ -1660,9 +1766,29 @@ void PlayerControlPreview::DrawCircleButton(QPainter& p, const QPointF center, b
|
|||
}
|
||||
p.drawEllipse(center, button_size, button_size);
|
||||
}
|
||||
|
||||
void PlayerControlPreview::DrawArrowButtonOutline(QPainter& p, const QPointF center) {
|
||||
const std::size_t arrow_points = up_arrow_button.size() / 2;
|
||||
std::array<QPointF, (arrow_points - 1) * 4> arrow_button_outline;
|
||||
|
||||
for (std::size_t point = 0; point < arrow_points - 1; ++point) {
|
||||
arrow_button_outline[point] =
|
||||
center + QPointF(up_arrow_button[point * 2], up_arrow_button[point * 2 + 1]);
|
||||
arrow_button_outline[(arrow_points - 1) * 2 - point - 1] =
|
||||
center + QPointF(up_arrow_button[point * 2 + 1], up_arrow_button[point * 2]);
|
||||
arrow_button_outline[(arrow_points - 1) * 2 + point] =
|
||||
center + QPointF(-up_arrow_button[point * 2], -up_arrow_button[point * 2 + 1]);
|
||||
arrow_button_outline[(arrow_points - 1) * 4 - point - 1] =
|
||||
center + QPointF(-up_arrow_button[point * 2 + 1], -up_arrow_button[point * 2]);
|
||||
}
|
||||
// Draw arrow button outline
|
||||
p.setPen(colors.outline);
|
||||
p.setBrush(colors.transparent);
|
||||
DrawPolygon(p, arrow_button_outline);
|
||||
}
|
||||
|
||||
void PlayerControlPreview::DrawArrowButton(QPainter& p, const QPointF center,
|
||||
const Direction direction, bool pressed) {
|
||||
|
||||
std::array<QPointF, up_arrow_button.size() / 2> arrow_button;
|
||||
QPoint offset;
|
||||
|
||||
|
@ -1671,50 +1797,141 @@ void PlayerControlPreview::DrawArrowButton(QPainter& p, const QPointF center,
|
|||
case Direction::Up:
|
||||
arrow_button[point] =
|
||||
center + QPointF(up_arrow_button[point * 2], up_arrow_button[point * 2 + 1]);
|
||||
offset = QPoint(0, -20);
|
||||
break;
|
||||
case Direction::Left:
|
||||
arrow_button[point] =
|
||||
center + QPointF(up_arrow_button[point * 2 + 1], up_arrow_button[point * 2]);
|
||||
offset = QPoint(-20, 0);
|
||||
break;
|
||||
case Direction::Right:
|
||||
arrow_button[point] =
|
||||
center + QPointF(-up_arrow_button[point * 2 + 1], up_arrow_button[point * 2]);
|
||||
offset = QPoint(20, 0);
|
||||
break;
|
||||
case Direction::Down:
|
||||
arrow_button[point] =
|
||||
center + QPointF(up_arrow_button[point * 2], -up_arrow_button[point * 2 + 1]);
|
||||
offset = QPoint(0, 20);
|
||||
break;
|
||||
case Direction::None:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Draw arrow button
|
||||
p.setPen(pressed ? colors.highlight : colors.button);
|
||||
p.setBrush(pressed ? colors.highlight : colors.button);
|
||||
DrawPolygon(p, arrow_button);
|
||||
|
||||
switch (direction) {
|
||||
case Direction::Up:
|
||||
offset = QPoint(0, -20);
|
||||
break;
|
||||
case Direction::Left:
|
||||
offset = QPoint(-20, 0);
|
||||
break;
|
||||
case Direction::Right:
|
||||
offset = QPoint(20, 0);
|
||||
break;
|
||||
case Direction::Down:
|
||||
offset = QPoint(0, 20);
|
||||
break;
|
||||
case Direction::None:
|
||||
offset = QPoint(0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
// Draw arrow icon
|
||||
p.setPen(colors.font2);
|
||||
p.setBrush(colors.font2);
|
||||
DrawArrow(p, center + offset, direction, 1.0f);
|
||||
}
|
||||
|
||||
void PlayerControlPreview::DrawTriggerButton(QPainter& p, const QPointF center,
|
||||
const Direction direction, bool pressed) {
|
||||
std::array<QPointF, trigger_button.size() / 2> qtrigger_button;
|
||||
QPoint offset;
|
||||
|
||||
for (std::size_t point = 0; point < trigger_button.size() / 2; ++point) {
|
||||
switch (direction) {
|
||||
case Direction::Left:
|
||||
qtrigger_button[point] =
|
||||
center + QPointF(-trigger_button[point * 2], trigger_button[point * 2 + 1]);
|
||||
break;
|
||||
case Direction::Right:
|
||||
qtrigger_button[point] =
|
||||
center + QPointF(trigger_button[point * 2], trigger_button[point * 2 + 1]);
|
||||
break;
|
||||
case Direction::Up:
|
||||
case Direction::Down:
|
||||
case Direction::None:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Draw arrow button
|
||||
p.setPen(colors.outline);
|
||||
p.setBrush(pressed ? colors.highlight : colors.button);
|
||||
DrawPolygon(p, arrow_button);
|
||||
|
||||
// Draw arrow icon
|
||||
p.setPen(colors.font2);
|
||||
p.setBrush(colors.font2);
|
||||
DrawArrow(p, center + offset, direction, 1.0f);
|
||||
DrawPolygon(p, qtrigger_button);
|
||||
}
|
||||
|
||||
void PlayerControlPreview::DrawHouseIcon(QPainter& p, const QPointF center, float icon_size) {
|
||||
void PlayerControlPreview::DrawSymbol(QPainter& p, const QPointF center, Symbol symbol,
|
||||
float icon_size) {
|
||||
std::array<QPointF, house.size() / 2> house_icon;
|
||||
|
||||
for (std::size_t point = 0; point < house.size() / 2; ++point) {
|
||||
house_icon[point] = center + QPointF(house[point * 2] * icon_size,
|
||||
(house[point * 2 + 1] - 0.025f) * icon_size);
|
||||
std::array<QPointF, symbol_a.size() / 2> a_icon;
|
||||
std::array<QPointF, symbol_b.size() / 2> b_icon;
|
||||
std::array<QPointF, symbol_x.size() / 2> x_icon;
|
||||
std::array<QPointF, symbol_y.size() / 2> y_icon;
|
||||
std::array<QPointF, symbol_zl.size() / 2> zl_icon;
|
||||
std::array<QPointF, symbol_zr.size() / 2> zr_icon;
|
||||
switch (symbol) {
|
||||
case Symbol::House:
|
||||
for (std::size_t point = 0; point < house.size() / 2; ++point) {
|
||||
house_icon[point] = center + QPointF(house[point * 2] * icon_size,
|
||||
(house[point * 2 + 1] - 0.025f) * icon_size);
|
||||
}
|
||||
p.drawPolygon(house_icon.data(), static_cast<int>(house_icon.size()));
|
||||
break;
|
||||
case Symbol::A:
|
||||
for (std::size_t point = 0; point < symbol_a.size() / 2; ++point) {
|
||||
a_icon[point] = center + QPointF(symbol_a[point * 2] * icon_size,
|
||||
symbol_a[point * 2 + 1] * icon_size);
|
||||
}
|
||||
p.drawPolygon(a_icon.data(), static_cast<int>(a_icon.size()));
|
||||
break;
|
||||
case Symbol::B:
|
||||
for (std::size_t point = 0; point < symbol_b.size() / 2; ++point) {
|
||||
b_icon[point] = center + QPointF(symbol_b[point * 2] * icon_size,
|
||||
symbol_b[point * 2 + 1] * icon_size);
|
||||
}
|
||||
p.drawPolygon(b_icon.data(), static_cast<int>(b_icon.size()));
|
||||
break;
|
||||
case Symbol::X:
|
||||
for (std::size_t point = 0; point < symbol_x.size() / 2; ++point) {
|
||||
x_icon[point] = center + QPointF(symbol_x[point * 2] * icon_size,
|
||||
symbol_x[point * 2 + 1] * icon_size);
|
||||
}
|
||||
p.drawPolygon(x_icon.data(), static_cast<int>(x_icon.size()));
|
||||
break;
|
||||
case Symbol::Y:
|
||||
for (std::size_t point = 0; point < symbol_y.size() / 2; ++point) {
|
||||
y_icon[point] = center + QPointF(symbol_y[point * 2] * icon_size,
|
||||
(symbol_y[point * 2 + 1] - 1.0f) * icon_size);
|
||||
}
|
||||
p.drawPolygon(y_icon.data(), static_cast<int>(y_icon.size()));
|
||||
break;
|
||||
case Symbol::ZL:
|
||||
for (std::size_t point = 0; point < symbol_zl.size() / 2; ++point) {
|
||||
zl_icon[point] = center + QPointF(symbol_zl[point * 2] * icon_size,
|
||||
symbol_zl[point * 2 + 1] * icon_size);
|
||||
}
|
||||
p.drawPolygon(zl_icon.data(), static_cast<int>(zl_icon.size()));
|
||||
break;
|
||||
case Symbol::ZR:
|
||||
for (std::size_t point = 0; point < symbol_zr.size() / 2; ++point) {
|
||||
zr_icon[point] = center + QPointF(symbol_zr[point * 2] * icon_size,
|
||||
symbol_zr[point * 2 + 1] * icon_size);
|
||||
}
|
||||
p.drawPolygon(zr_icon.data(), static_cast<int>(zr_icon.size()));
|
||||
break;
|
||||
}
|
||||
|
||||
p.setPen(colors.transparent);
|
||||
p.setBrush(colors.font2);
|
||||
p.drawPolygon(house_icon.data(), static_cast<int>(house_icon.size()));
|
||||
}
|
||||
|
||||
void PlayerControlPreview::DrawArrow(QPainter& p, const QPointF center, const Direction direction,
|
||||
|
|
|
@ -43,6 +43,16 @@ private:
|
|||
Left,
|
||||
};
|
||||
|
||||
enum class Symbol {
|
||||
House,
|
||||
A,
|
||||
B,
|
||||
X,
|
||||
Y,
|
||||
ZL,
|
||||
ZR,
|
||||
};
|
||||
|
||||
struct AxisValue {
|
||||
QPointF value{};
|
||||
QPointF raw_value{};
|
||||
|
@ -120,10 +130,12 @@ private:
|
|||
Direction direction = Direction::None, float radius = 2);
|
||||
void DrawMinusButton(QPainter& p, QPointF center, bool pressed, int button_size);
|
||||
void DrawPlusButton(QPainter& p, QPointF center, bool pressed, int button_size);
|
||||
void DrawArrowButtonOutline(QPainter& p, const QPointF center);
|
||||
void DrawArrowButton(QPainter& p, QPointF center, Direction direction, bool pressed);
|
||||
void DrawTriggerButton(QPainter& p, QPointF center, Direction direction, bool pressed);
|
||||
|
||||
// Draw icon functions
|
||||
void DrawHouseIcon(QPainter& p, QPointF center, float icon_size);
|
||||
void DrawSymbol(QPainter& p, QPointF center, Symbol symbol, float icon_size);
|
||||
void DrawArrow(QPainter& p, QPointF center, Direction direction, float size);
|
||||
|
||||
// Draw primitive types
|
||||
|
|
Loading…
Reference in a new issue