diff --git a/src/input_manager.cpp b/src/input_manager.cpp index 53ea187..050840b 100644 --- a/src/input_manager.cpp +++ b/src/input_manager.cpp @@ -242,6 +242,9 @@ class InputManager uint32_t switch_previous; uint32_t switch_overlay; + // user settings + bool BypassGameSensitivity = false; + public: ~InputManager() { @@ -510,7 +513,7 @@ class InputManager continue; volumes[i] = vol; - if (i == 0) + if (i == 0 && !BypassGameSensitivity) { int cur = ceil(volumes[i].currentValue * 127.0f); int prev = ceil(volumes[i].previousValue * 127.0f); @@ -843,6 +846,8 @@ class InputManager ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysAutoResize)) { + ImGui::Text("Note: settings here currently aren't saved, fix soon."); + if (ImGui::BeginTable("Controllers", 2, ImGuiTableFlags_Borders)) { ImGui::TableSetupColumn("Detected Controllers"); @@ -1075,6 +1080,14 @@ class InputManager } } + int deadzonePercent = Settings::SteeringDeadZone * 100.f; + if (ImGui::SliderInt("Steering Deadzone", &deadzonePercent, 5, 20, "%d%%")) + Settings::SteeringDeadZone = float(deadzonePercent) / 100.f; + + ImGui::Checkbox("Bypass Sensitivity", &BypassGameSensitivity); + if(ImGui::IsItemHovered()) + ImGui::SetTooltip("Passes steering input to the game directly, allows for more sensitive controls"); + if (ImGui::Button("Return to game")) dialogOpen = false; ImGui::SameLine(); @@ -1088,6 +1101,8 @@ class InputManager } else { + Settings::SteeringDeadZone = 0.2f; + BypassGameSensitivity = false; setupDefaultBindings(); if (auto* controller = primary_gamepad()) setupGamepad(controller); diff --git a/src/overlay/overlay.cpp b/src/overlay/overlay.cpp index 33bf329..3d751d4 100644 --- a/src/overlay/overlay.cpp +++ b/src/overlay/overlay.cpp @@ -54,8 +54,10 @@ class GlobalsWindow : public OverlayWindow if (ImGui::Button("Open Draw Distance Debugger")) Game::DrawDistanceDebugEnabled = true; +#ifdef _DEBUG if (ImGui::Button("Open Binding Dialog")) Overlay::IsBindingDialogActive = true; +#endif ImGui::Separator(); ImGui::Text("Gameplay");