Mercurial > repos > blastem
diff nuklear_ui/blastem_nuklear.c @ 2311:07aeea6cb068
Fix analog stick UI for real. Allow clearing a controller binding
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 29 Mar 2023 22:36:34 -0700 |
parents | b0ec82a59472 |
children | 3f2ecd156453 |
line wrap: on
line diff
--- 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: