# HG changeset patch # User Michael Pavone # Date 1680154594 25200 # Node ID 07aeea6cb0687d6b8c3ed31652b4b7340c110397 # Parent b0ec82a594725a1b39a1f543c90dc921bafd59f8 Fix analog stick UI for real. Allow clearing a controller binding diff -r b0ec82a59472 -r 07aeea6cb068 nuklear_ui/blastem_nuklear.c --- a/nuklear_ui/blastem_nuklear.c Wed Mar 29 22:11:03 2023 -0700 +++ b/nuklear_ui/blastem_nuklear.c Wed Mar 29 22:36:34 2023 -0700 @@ -733,10 +733,15 @@ bind_option_group(context, "Debugging", debugger, sizeof(debugger)/sizeof(*debugger)); bind_option_group(context, "Speed Control", speeds, sizeof(speeds)/sizeof(*speeds)); - nk_layout_row_static(context, context->style.font->height, (render_width() - 80)/4, 1); + nk_layout_row_static(context, context->style.font->height, (render_width() - 80)/4, 2); if (nk_button_label(context, "Back")) { pop_view(); } + if (nk_button_label(context, "Clear")) { + *current_bind_dest = NULL; + controller_binding_changed = 1; + pop_view(); + } nk_end(context); } } @@ -757,7 +762,7 @@ labels[i] = get_axis_label(&selected_controller_info, binds[i] & ~AXIS); conf_vals[i] = &bindings->triggers[(binds[i] & ~AXIS) - SDL_CONTROLLER_AXIS_TRIGGERLEFT]; } else if (binds[i] & STICKDIR) { - static char const * dirs[] = {"Up", "Down", "Right", "Left"}; + static char const * dirs[] = {"Down", "Up", "Right", "Left"}; labels[i] = dirs[binds[i] & 3]; conf_vals[i] = &(binds[i] & LEFTSTICK ? bindings->left_stick : bindings->right_stick)[binds[i] & 3]; } else { @@ -828,11 +833,11 @@ { case SDL_CONTROLLER_AXIS_LEFTX: case SDL_CONTROLLER_AXIS_LEFTY: - bindings->left_stick[(axis - SDL_CONTROLLER_AXIS_LEFTX) * 2 + is_negative] = val.ptrval; + bindings->left_stick[(SDL_CONTROLLER_AXIS_LEFTY - axis) * 2 + is_negative] = val.ptrval; break; case SDL_CONTROLLER_AXIS_RIGHTX: case SDL_CONTROLLER_AXIS_RIGHTY: - bindings->right_stick[(axis - SDL_CONTROLLER_AXIS_RIGHTX) * 2 + is_negative] = val.ptrval; + bindings->right_stick[(SDL_CONTROLLER_AXIS_RIGHTX - axis) * 2 + is_negative] = val.ptrval; break; case SDL_CONTROLLER_AXIS_TRIGGERLEFT: case SDL_CONTROLLER_AXIS_TRIGGERRIGHT: