comparison nuklear_ui/blastem_nuklear.c @ 1647:5a662692c215

Update binding UI for non-standard controller layouts
author Michael Pavone <pavone@retrodev.com>
date Sat, 15 Dec 2018 13:06:47 -0800
parents 60b199cbb3f7
children fa9ae059e4d3
comparison
equal deleted inserted replaced
1646:60b199cbb3f7 1647:5a662692c215
1028 bind_box_left = img_right; 1028 bind_box_left = img_right;
1029 } else { 1029 } else {
1030 bind_box_left = img_right + (render_width() - img_right) / 2.0f - bind_box_width / 2.0f; 1030 bind_box_left = img_right + (render_width() - img_right) / 2.0f - bind_box_width / 2.0f;
1031 } 1031 }
1032 1032
1033 binding_box(context, bindings, "Action Buttons", bind_box_left, img_top, bind_box_width, 4, (int[]){ 1033 if (selected_controller_info.variant == VARIANT_NORMAL) {
1034 SDL_CONTROLLER_BUTTON_A, 1034 binding_box(context, bindings, "Action Buttons", bind_box_left, img_top, bind_box_width, 4, (int[]){
1035 SDL_CONTROLLER_BUTTON_B, 1035 SDL_CONTROLLER_BUTTON_A,
1036 SDL_CONTROLLER_BUTTON_X, 1036 SDL_CONTROLLER_BUTTON_B,
1037 SDL_CONTROLLER_BUTTON_Y 1037 SDL_CONTROLLER_BUTTON_X,
1038 }); 1038 SDL_CONTROLLER_BUTTON_Y
1039 1039 });
1040 binding_box(context, bindings, "Right Shoulder", bind_box_left, font->height/2, bind_box_width, 2, (int[]){ 1040 } else {
1041 SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, 1041 binding_box(context, bindings, "Action Buttons", bind_box_left, img_top, bind_box_width, 6, (int[]){
1042 AXIS | SDL_CONTROLLER_AXIS_TRIGGERRIGHT 1042 SDL_CONTROLLER_BUTTON_A,
1043 SDL_CONTROLLER_BUTTON_B,
1044 selected_controller_info.variant == VARIANT_6B_RIGHT ? AXIS | SDL_CONTROLLER_AXIS_TRIGGERRIGHT : SDL_CONTROLLER_BUTTON_RIGHTSHOULDER,
1045 SDL_CONTROLLER_BUTTON_X,
1046 SDL_CONTROLLER_BUTTON_Y,
1047 selected_controller_info.variant == VARIANT_6B_RIGHT ? SDL_CONTROLLER_BUTTON_RIGHTSHOULDER : SDL_CONTROLLER_BUTTON_LEFTSHOULDER,
1048 });
1049 }
1050
1051 binding_box(context, bindings, "Right Shoulder", bind_box_left, font->height/2, bind_box_width,
1052 selected_controller_info.variant == VARIANT_6B_BUMPERS ? 1 : 2,
1053 (int[]){
1054 selected_controller_info.variant == VARIANT_6B_RIGHT ? SDL_CONTROLLER_BUTTON_LEFTSHOULDER : SDL_CONTROLLER_BUTTON_RIGHTSHOULDER,
1055 selected_controller_info.variant == VARIANT_6B_RIGHT ? SDL_CONTROLLER_BUTTON_RIGHTSHOULDER : AXIS | SDL_CONTROLLER_AXIS_TRIGGERRIGHT
1043 }); 1056 });
1044 1057
1045 binding_box(context, bindings, "Misc Buttons", (render_width() - bind_box_width) / 2, font->height/2, bind_box_width, 3, (int[]){ 1058 binding_box(context, bindings, "Misc Buttons", (render_width() - bind_box_width) / 2, font->height/2, bind_box_width, 3, (int[]){
1046 SDL_CONTROLLER_BUTTON_BACK, 1059 SDL_CONTROLLER_BUTTON_BACK,
1047 SDL_CONTROLLER_BUTTON_GUIDE, 1060 SDL_CONTROLLER_BUTTON_GUIDE,
1048 SDL_CONTROLLER_BUTTON_START 1061 SDL_CONTROLLER_BUTTON_START
1049 }); 1062 });
1050 1063
1051 binding_box(context, bindings, "Right Stick", img_right - desired_width/3, img_bot, bind_box_width, 5, (int[]){ 1064 if (selected_controller_info.variant == VARIANT_NORMAL)
1052 RIGHTSTICK | UP, 1065 {
1053 RIGHTSTICK | DOWN, 1066 binding_box(context, bindings, "Right Stick", img_right - desired_width/3, img_bot, bind_box_width, 5, (int[]){
1054 RIGHTSTICK | LEFT, 1067 RIGHTSTICK | UP,
1055 RIGHTSTICK | RIGHT, 1068 RIGHTSTICK | DOWN,
1056 SDL_CONTROLLER_BUTTON_RIGHTSTICK 1069 RIGHTSTICK | LEFT,
1070 RIGHTSTICK | RIGHT,
1071 SDL_CONTROLLER_BUTTON_RIGHTSTICK
1072 });
1073 }
1074
1075 bind_box_left -= img_right;
1076 float dpad_left, dpad_top;
1077 if (selected_controller_info.variant == VARIANT_NORMAL)
1078 {
1079 binding_box(context, bindings, "Left Stick", bind_box_left, img_top, bind_box_width, 5, (int[]){
1080 LEFTSTICK | UP,
1081 LEFTSTICK | DOWN,
1082 LEFTSTICK | LEFT,
1083 LEFTSTICK | RIGHT,
1084 SDL_CONTROLLER_BUTTON_LEFTSTICK
1085 });
1086 dpad_left = img_left - desired_width/6;
1087 dpad_top = img_bot + font->height * 1.5;
1088 } else {
1089 dpad_left = bind_box_left;
1090 dpad_top = img_top;
1091 }
1092
1093 binding_box(context, bindings, "Left Shoulder", bind_box_left, font->height/2, bind_box_width,
1094 selected_controller_info.variant == VARIANT_6B_BUMPERS ? 1 : 2,
1095 (int[]){
1096 selected_controller_info.variant == VARIANT_6B_RIGHT ? SDL_CONTROLLER_BUTTON_LEFTSTICK : SDL_CONTROLLER_BUTTON_LEFTSHOULDER,
1097 selected_controller_info.variant == VARIANT_6B_RIGHT ? SDL_CONTROLLER_BUTTON_RIGHTSTICK : AXIS | SDL_CONTROLLER_AXIS_TRIGGERLEFT
1057 }); 1098 });
1058 1099
1059 1100 binding_box(context, bindings, "D-pad", dpad_left, dpad_top, bind_box_width, 4, (int[]){
1060 bind_box_left -= img_right;
1061 binding_box(context, bindings, "Left Stick", bind_box_left, img_top, bind_box_width, 5, (int[]){
1062 LEFTSTICK | UP,
1063 LEFTSTICK | DOWN,
1064 LEFTSTICK | LEFT,
1065 LEFTSTICK | RIGHT,
1066 SDL_CONTROLLER_BUTTON_LEFTSTICK
1067 });
1068
1069 binding_box(context, bindings, "Left Shoulder", bind_box_left, font->height/2, bind_box_width, 2, (int[]){
1070 SDL_CONTROLLER_BUTTON_LEFTSHOULDER,
1071 AXIS | SDL_CONTROLLER_AXIS_TRIGGERLEFT
1072 });
1073
1074 binding_box(context, bindings, "D-pad", img_left - desired_width/6, img_bot + font->height * 1.5, bind_box_width, 4, (int[]){
1075 SDL_CONTROLLER_BUTTON_DPAD_UP, 1101 SDL_CONTROLLER_BUTTON_DPAD_UP,
1076 SDL_CONTROLLER_BUTTON_DPAD_DOWN, 1102 SDL_CONTROLLER_BUTTON_DPAD_DOWN,
1077 SDL_CONTROLLER_BUTTON_DPAD_LEFT, 1103 SDL_CONTROLLER_BUTTON_DPAD_LEFT,
1078 SDL_CONTROLLER_BUTTON_DPAD_RIGHT 1104 SDL_CONTROLLER_BUTTON_DPAD_RIGHT
1079 }); 1105 });