diff --git a/src/spice2x/cfg/api.cpp b/src/spice2x/cfg/api.cpp index 461c9d1..b1c0744 100644 --- a/src/spice2x/cfg/api.cpp +++ b/src/spice2x/cfg/api.cpp @@ -644,10 +644,12 @@ float GameAPI::Analogs::getState(rawinput::Device *device, Analog &analog) { case rawinput::HID: { // get value - if (inverted) { - value = 1.f - device->hidInfo->value_states[index]; - } else { - value = device->hidInfo->value_states[index]; + if (index < device->hidInfo->value_states.size()) { + if (inverted) { + value = 1.f - device->hidInfo->value_states[index]; + } else { + value = device->hidInfo->value_states[index]; + } } // deadzone diff --git a/src/spice2x/overlay/windows/config.cpp b/src/spice2x/overlay/windows/config.cpp index f0cb2e7..a54166f 100644 --- a/src/spice2x/overlay/windows/config.cpp +++ b/src/spice2x/overlay/windows/config.cpp @@ -1743,6 +1743,7 @@ namespace overlay::windows { auto analog_name = analog.getName(); auto analog_display = analog.getDisplayString(RI_MGR.get()); auto analog_state = GameAPI::Analogs::getState(RI_MGR, analog); + analog_state = std::clamp(analog_state, 0.f, 1.f); // list entry ImGui::ProgressBar(analog_state, ImVec2(32.f, 0));