From bc583179ca3a3795e627a64edef98061916508cc Mon Sep 17 00:00:00 2001 From: Jlahh <151048038+Jlahh@users.noreply.github.com> Date: Fri, 17 Nov 2023 06:20:39 +1000 Subject: [PATCH] Update ControllerOverlay.cpp Right stick added by non coder --- ControllerOverlay/ControllerOverlay.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ControllerOverlay/ControllerOverlay.cpp b/ControllerOverlay/ControllerOverlay.cpp index 138ee16..b482771 100644 --- a/ControllerOverlay/ControllerOverlay.cpp +++ b/ControllerOverlay/ControllerOverlay.cpp @@ -67,6 +67,7 @@ void ControllerOverlay::onLoad() inputs["XboxTypeS_LeftTrigger"] = { 0, false, WHITE, "L2" }; inputs["XboxTypeS_RightTrigger"] = { 0, false, WHITE, "R2" }; inputs["XboxTypeS_LeftThumbStick"] = { 0, false, GREY, "L3" }; + inputs["XboxTypeS_RightThumbStick"] = { 0, false, GREY, "L3" }; } else { @@ -81,6 +82,7 @@ void ControllerOverlay::onLoad() inputs["XboxTypeS_LeftTrigger"] = { 0, false, WHITE, "LT" }; inputs["XboxTypeS_RightTrigger"] = { 0, false, WHITE, "RT" }; inputs["XboxTypeS_LeftThumbStick"] = { 0, false, GREY, "LS" }; + inputs["XboxTypeS_RightThumbStick"] = { 0, false, GREY, "L3" }; } for (const std::pair& input : inputs) { @@ -340,6 +342,20 @@ void ControllerOverlay::RenderImGui() std::map buttonPositions; std::map buttonTextPositions; + float rightStickRadius = 32 * scale; + ImVec2 rightStickCenter = ImVec2(p.x + 160 * scale, p.y + rightStickRadius); // Adjust as needed + + drawList->AddCircle(rightStickCenter, 24 * scale, WHITE, 32, 2 * scale); + + drawList->AddCircleFilled(ImVec2(rightStickCenter.x + (controllerInput.Steer * 8 * scale), rightStickCenter.y + (controllerInput.Pitch * 8 * scale)), 20 * scale, (inputs["XboxTypeS_LeftThumbStick"].pressed ? GREY : WHITE), 32); + drawList->AddCircleFilled(ImVec2(rightStickCenter.x + (controllerInput.Steer * 8 * scale), rightStickCenter.y + (controllerInput.Pitch * 8 * scale)), 16 * scale, (inputs["XboxTypeS_LeftThumbStick"].pressed ? DARKGREY : GREY), 32); + + float rightButtonRadius = 12 * scale; + ImVec2 rightButtonsCenter = ImVec2(rightStickCenter.x + 128 * scale, rightStickCenter.y); + + std::map ButtonPositions; + std::map ButtonTextPositions; + if (type == 0) { buttonPositions["XboxTypeS_A"] = ImVec2(buttonsCenter.x, buttonsCenter.y + buttonRadius * 2); buttonPositions["XboxTypeS_B"] = ImVec2(buttonsCenter.x + buttonRadius * 2, buttonsCenter.y);