Mercurial > repos > blastem
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 }); |