diff --git a/libultraship/libultraship/ImGuiImpl.cpp b/libultraship/libultraship/ImGuiImpl.cpp index 6b04209ba..ed3287a5c 100644 --- a/libultraship/libultraship/ImGuiImpl.cpp +++ b/libultraship/libultraship/ImGuiImpl.cpp @@ -165,8 +165,14 @@ namespace SohImGui { } else { console->Close(); } - SohImGui::controller->Opened = CVar_GetS32("gControllerConfigurationEnabled", 0); - UpdateAudio(); + + if (CVar_GetS32("gControllerConfigurationEnabled", 0)) { + controller->Open(); + } else { + controller->Close(); + } + + UpdateAudio(); }); } @@ -1096,7 +1102,11 @@ namespace SohImGui { bool currentValue = CVar_GetS32("gControllerConfigurationEnabled", 0); CVar_SetS32("gControllerConfigurationEnabled", !currentValue); needs_save = true; - controller->Opened = CVar_GetS32("gControllerConfigurationEnabled", 0); + if (CVar_GetS32("gControllerConfigurationEnabled", 0)) { + controller->Open(); + } else { + controller->Close(); + } } ImGui::PopStyleColor(1); ImGui::PopStyleVar(3); diff --git a/libultraship/libultraship/InputEditor.cpp b/libultraship/libultraship/InputEditor.cpp index a6754045f..156eafae3 100644 --- a/libultraship/libultraship/InputEditor.cpp +++ b/libultraship/libultraship/InputEditor.cpp @@ -20,7 +20,7 @@ namespace Ship { return controlDeck->GetPhysicalDeviceFromVirtualSlot(slot); } - void InputEditor::DrawButton(const char* label, int n64Btn) { + void InputEditor::DrawButton(const char* label, int32_t n64Btn) { const std::shared_ptr backend = GetControllerPerSlot(CurrentPort); float size = 40; @@ -357,4 +357,16 @@ namespace Ship { ImGui::End(); } + + bool InputEditor::IsOpened() { + return Opened; + } + + void InputEditor::Open() { + Opened = true; + } + + void InputEditor::Close() { + Opened = false; + } } diff --git a/libultraship/libultraship/InputEditor.h b/libultraship/libultraship/InputEditor.h index 81b1997ec..50b059e2d 100644 --- a/libultraship/libultraship/InputEditor.h +++ b/libultraship/libultraship/InputEditor.h @@ -1,18 +1,22 @@ #pragma once +#include "stdint.h" #include "Lib/ImGui/imgui.h" namespace Ship { class InputEditor { - int CurrentPort = 0; - int BtnReading = -1; - public: + int32_t CurrentPort = 0; + int32_t BtnReading = -1; bool Opened = false; + public: void Init(); - void DrawButton(const char* label, int n64Btn); + void DrawButton(const char* label, int32_t n64Btn); void DrawVirtualStick(const char* label, ImVec2 stick); void DrawControllerSchema(); void DrawHud(); + bool IsOpened(); + void Open(); + void Close(); }; } diff --git a/libultraship/libultraship/Window.cpp b/libultraship/libultraship/Window.cpp index 81ccb68cc..666c1e0c0 100644 --- a/libultraship/libultraship/Window.cpp +++ b/libultraship/libultraship/Window.cpp @@ -86,7 +86,7 @@ extern "C" { pad->gyro_x = 0; pad->gyro_y = 0; - if (SohImGui::controller->Opened) return; + if (SohImGui::controller->IsOpened()) return; Ship::Window::GetInstance()->GetControlDeck()->WriteToPad(pad); Ship::ExecuteHooks(pad);