comparison nuklear_ui/blastem_nuklear.c @ 1816:1db1510c7506

Fix bumper/trigger binding boxes for "normal" style conntrollers. Change label of "Back" button to "Save" when there are unsaved changes in controller binding
author Mike Pavone <pavone@retrodev.com>
date Sat, 30 Mar 2019 23:35:16 -0700
parents 7f4fac75b484
children 56a1171e29b9
comparison
equal deleted inserted replaced
1815:7f4fac75b484 1816:1db1510c7506
1059 SDL_CONTROLLER_BUTTON_Y, 1059 SDL_CONTROLLER_BUTTON_Y,
1060 selected_controller_info.variant == VARIANT_6B_RIGHT ? SDL_CONTROLLER_BUTTON_RIGHTSHOULDER : SDL_CONTROLLER_BUTTON_LEFTSHOULDER, 1060 selected_controller_info.variant == VARIANT_6B_RIGHT ? SDL_CONTROLLER_BUTTON_RIGHTSHOULDER : SDL_CONTROLLER_BUTTON_LEFTSHOULDER,
1061 }); 1061 });
1062 } 1062 }
1063 1063
1064 binding_box(context, bindings, "Right Shoulder", bind_box_left, font->height/2, bind_box_width, 1064 if (selected_controller_info.variant == VARIANT_NORMAL) {
1065 selected_controller_info.variant == VARIANT_6B_BUMPERS ? 1 : 2, 1065 binding_box(context, bindings, "Right Shoulder", bind_box_left, font->height/2, bind_box_width, 2, (int[]){
1066 (int[]){ 1066 SDL_CONTROLLER_BUTTON_RIGHTSHOULDER,
1067 selected_controller_info.variant == VARIANT_6B_RIGHT ? SDL_CONTROLLER_BUTTON_LEFTSHOULDER : AXIS | SDL_CONTROLLER_AXIS_TRIGGERRIGHT, 1067 AXIS | SDL_CONTROLLER_AXIS_TRIGGERRIGHT
1068 AXIS | SDL_CONTROLLER_AXIS_TRIGGERLEFT 1068 });
1069 }); 1069 } else {
1070 binding_box(context, bindings, "Right Shoulder", bind_box_left, font->height/2, bind_box_width,
1071 selected_controller_info.variant == VARIANT_6B_BUMPERS ? 1 : 2,
1072 (int[]){
1073 selected_controller_info.variant == VARIANT_6B_RIGHT ? SDL_CONTROLLER_BUTTON_LEFTSHOULDER : AXIS | SDL_CONTROLLER_AXIS_TRIGGERRIGHT,
1074 AXIS | SDL_CONTROLLER_AXIS_TRIGGERLEFT
1075 });
1076 }
1070 1077
1071 binding_box(context, bindings, "Misc Buttons", (render_width() - bind_box_width) / 2, font->height/2, bind_box_width, 3, (int[]){ 1078 binding_box(context, bindings, "Misc Buttons", (render_width() - bind_box_width) / 2, font->height/2, bind_box_width, 3, (int[]){
1072 SDL_CONTROLLER_BUTTON_BACK, 1079 SDL_CONTROLLER_BUTTON_BACK,
1073 SDL_CONTROLLER_BUTTON_GUIDE, 1080 SDL_CONTROLLER_BUTTON_GUIDE,
1074 SDL_CONTROLLER_BUTTON_START 1081 SDL_CONTROLLER_BUTTON_START
1101 } else { 1108 } else {
1102 dpad_left = bind_box_left; 1109 dpad_left = bind_box_left;
1103 dpad_top = img_top; 1110 dpad_top = img_top;
1104 } 1111 }
1105 1112
1106 binding_box(context, bindings, "Left Shoulder", bind_box_left, font->height/2, bind_box_width, 1113 if (selected_controller_info.variant == VARIANT_NORMAL) {
1107 selected_controller_info.variant == VARIANT_6B_BUMPERS ? 1 : 2, 1114 binding_box(context, bindings, "Left Shoulder", bind_box_left, font->height/2, bind_box_width, 2, (int[]){
1108 (int[]){ 1115 SDL_CONTROLLER_BUTTON_LEFTSHOULDER,
1109 selected_controller_info.variant == VARIANT_6B_RIGHT ? SDL_CONTROLLER_BUTTON_LEFTSTICK : AXIS | SDL_CONTROLLER_AXIS_TRIGGERLEFT, 1116 AXIS | SDL_CONTROLLER_AXIS_TRIGGERLEFT
1110 SDL_CONTROLLER_BUTTON_RIGHTSTICK 1117 });
1111 }); 1118 } else {
1119 binding_box(context, bindings, "Left Shoulder", bind_box_left, font->height/2, bind_box_width,
1120 selected_controller_info.variant == VARIANT_6B_BUMPERS ? 1 : 2,
1121 (int[]){
1122 selected_controller_info.variant == VARIANT_6B_RIGHT ? SDL_CONTROLLER_BUTTON_LEFTSTICK : AXIS | SDL_CONTROLLER_AXIS_TRIGGERLEFT,
1123 SDL_CONTROLLER_BUTTON_RIGHTSTICK
1124 });
1125 }
1112 1126
1113 binding_box(context, bindings, "D-pad", dpad_left, dpad_top, bind_box_width, 4, (int[]){ 1127 binding_box(context, bindings, "D-pad", dpad_left, dpad_top, bind_box_width, 4, (int[]){
1114 SDL_CONTROLLER_BUTTON_DPAD_UP, 1128 SDL_CONTROLLER_BUTTON_DPAD_UP,
1115 SDL_CONTROLLER_BUTTON_DPAD_DOWN, 1129 SDL_CONTROLLER_BUTTON_DPAD_DOWN,
1116 SDL_CONTROLLER_BUTTON_DPAD_LEFT, 1130 SDL_CONTROLLER_BUTTON_DPAD_LEFT,
1119 1133
1120 nk_layout_space_end(context); 1134 nk_layout_space_end(context);
1121 1135
1122 def_font->handle.height = orig_height; 1136 def_font->handle.height = orig_height;
1123 nk_layout_row_static(context, orig_height + 4, (render_width() - 2*orig_height) / 4, 1); 1137 nk_layout_row_static(context, orig_height + 4, (render_width() - 2*orig_height) / 4, 1);
1124 if (nk_button_label(context, "Back")) { 1138 if (nk_button_label(context, controller_binding_changed ? "Save" : "Back")) {
1125 pop_view(); 1139 pop_view();
1126 if (controller_binding_changed) { 1140 if (controller_binding_changed) {
1127 push_view(view_select_binding_dest); 1141 push_view(view_select_binding_dest);
1128 } 1142 }
1129 } 1143 }