mirror of
https://github.com/Ryuzaki-MrL/savemii.git
synced 2026-04-25 15:41:31 -05:00
[WIP] Add support for additional controllers
Initial commit, currently broken. Bloated lib_easy by ~1000 lines. No buttons work, the unmodified code for the sticks still does.
This commit is contained in:
parent
df3ed9a73d
commit
e2631b5170
32
src/draw.c
32
src/draw.c
|
|
@ -345,21 +345,21 @@ void draw_bitmap(FT_Bitmap* bitmap, FT_Int x, FT_Int y) {
|
|||
}
|
||||
}
|
||||
break;
|
||||
case FT_PIXEL_MODE_BGRA:
|
||||
x_max = x + bitmap->width/2;
|
||||
for (i = x, p = 0; i < x_max; i++, p++) {
|
||||
for (j = y, q = 0; j < y_max; j++, q++) {
|
||||
if (i < 0 || j < 0 || i >= 854 || j >= 480) continue;
|
||||
u8 cb = bitmap->buffer[q * bitmap->pitch + p * 4];
|
||||
u8 cg = bitmap->buffer[q * bitmap->pitch + p * 4 + 1];
|
||||
u8 cr = bitmap->buffer[q * bitmap->pitch + p * 4 + 2];
|
||||
u8 ca = bitmap->buffer[q * bitmap->pitch + p * 4 + 3];
|
||||
|
||||
if ((cr | cg | cb) == 0) continue;
|
||||
drawPixel(i, j, cr, cg, cb, ca);
|
||||
}
|
||||
}
|
||||
break;
|
||||
// case FT_PIXEL_MODE_BGRA:
|
||||
// x_max = x + bitmap->width/2;
|
||||
// for (i = x, p = 0; i < x_max; i++, p++) {
|
||||
// for (j = y, q = 0; j < y_max; j++, q++) {
|
||||
// if (i < 0 || j < 0 || i >= 854 || j >= 480) continue;
|
||||
// u8 cb = bitmap->buffer[q * bitmap->pitch + p * 4];
|
||||
// u8 cg = bitmap->buffer[q * bitmap->pitch + p * 4 + 1];
|
||||
// u8 cr = bitmap->buffer[q * bitmap->pitch + p * 4 + 2];
|
||||
// u8 ca = bitmap->buffer[q * bitmap->pitch + p * 4 + 3];
|
||||
//
|
||||
// if ((cr | cg | cb) == 0) continue;
|
||||
// drawPixel(i, j, cr, cg, cb, ca);
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -507,7 +507,7 @@ int ttfStringWidth(char *string, s8 part) {
|
|||
continue;
|
||||
}
|
||||
|
||||
error = FT_Load_Glyph(face, glyph_index, FT_LOAD_BITMAP_METRICS_ONLY);
|
||||
error = FT_Load_Glyph(face, glyph_index, 1/*FT_LOAD_BITMAP_METRICS_ONLY*/);
|
||||
if (error)
|
||||
continue;
|
||||
|
||||
|
|
|
|||
927
src/lib_easy.c
927
src/lib_easy.c
|
|
@ -3,6 +3,10 @@
|
|||
int vpadError = -1;
|
||||
VPADData vpad;
|
||||
|
||||
s32 padErrors[4];
|
||||
u32 padTypes[4];
|
||||
KPADData pads[4];
|
||||
|
||||
int screen_buf0_size = 0;
|
||||
int screen_buf1_size = 0;
|
||||
|
||||
|
|
@ -20,19 +24,61 @@ void ScreenInit() {
|
|||
initDraw(screenBuffer, screen_buf0_size, screen_buf1_size);
|
||||
}
|
||||
|
||||
void pingControllers() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
padErrors[i] = WPADProbe(i, &padTypes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void updatePressedButtons() {
|
||||
VPADRead(0, &vpad, 1, &vpadError);
|
||||
buttons_pressed = vpad.btns_d;
|
||||
buttons_pressed[0] = vpad.btns_d;
|
||||
|
||||
pingControllers();
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (padErrors[i] == 0) {
|
||||
KPADRead(i, &pads[i], 1);
|
||||
if (pads[i].device_type < 2) {
|
||||
buttons_pressed[i + 1] = pads[i].btns_d;
|
||||
} else {
|
||||
buttons_pressed[i + 1] = pads[i].classic.btns_d;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateHeldButtons() {
|
||||
VPADRead(0, &vpad, 1, &vpadError);
|
||||
buttons_hold = vpad.btns_h;
|
||||
buttons_hold[0] = vpad.btns_h;
|
||||
|
||||
pingControllers();
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (padErrors[i] == 0) {
|
||||
KPADRead(i, &pads[i], 1);
|
||||
if (pads[i].device_type < 2) {
|
||||
buttons_hold[i + 1] = pads[i].btns_h;
|
||||
} else {
|
||||
buttons_hold[i + 1] = pads[i].classic.btns_h;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateReleasedButtons() {
|
||||
VPADRead(0, &vpad, 1, &vpadError);
|
||||
buttons_released = vpad.btns_r;
|
||||
buttons_released[0] = vpad.btns_r;
|
||||
|
||||
pingControllers();
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (padErrors[i] == 0) {
|
||||
KPADRead(i, &pads[i], 1);
|
||||
if (pads[i].device_type < 2) {
|
||||
buttons_released[i + 1] = pads[i].btns_r;
|
||||
} else {
|
||||
buttons_released[i + 1] = pads[i].classic.btns_r;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool stickPos(u8 stick, f32 value) {
|
||||
|
|
@ -56,16 +102,883 @@ bool stickPos(u8 stick, f32 value) {
|
|||
}
|
||||
}
|
||||
|
||||
bool isWiimote(KPADData *padData){
|
||||
return padData->device_type == 0 || padData->device_type == 1 || padData->device_type == 5 || padData->device_type == 6;
|
||||
}
|
||||
|
||||
bool isClassicController(KPADData *padData){
|
||||
return padData->device_type == 2 || padData->device_type == 7;
|
||||
}
|
||||
|
||||
bool isProController(KPADData *padData){
|
||||
return padData->device_type == 31;
|
||||
}
|
||||
|
||||
int isPressed(int button) {
|
||||
return (buttons_pressed&button);
|
||||
//VPad buttons
|
||||
switch (button) {
|
||||
case PAD_BUTTON_A:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_A) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_B:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_B) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_X:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_X) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_Y:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_Y) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_UP:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_UP) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_DOWN:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_DOWN) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_LEFT:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_LEFT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_RIGHT:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_RIGHT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_L:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_R:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_R) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZL:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_ZL) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZR:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_ZR) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_PLUS:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_PLUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_MINUS:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_MINUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_HOME:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_HOME) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_SYNC:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_SYNC) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_STICK_L:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_STICK_R:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_STICK_R) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_TV:
|
||||
if (buttons_pressed[0] & VPAD_BUTTON_TV) return 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
//Buttons handled by the padscore library
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (padErrors[i] == 0) {
|
||||
if (isWiimote(&pads[i])) {
|
||||
switch (button) {
|
||||
case PAD_BUTTON_UP:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_UP) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_DOWN:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_DOWN) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_LEFT:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_LEFT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_RIGHT:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_RIGHT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_A:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_A) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_B:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_B) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_L:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_1) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_R:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_2) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_1:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_1) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_2:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_2) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_Z:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_Z) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_C:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_C) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_PLUS:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_PLUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_MINUS:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_MINUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_HOME:
|
||||
if (buttons_pressed[i + 1] & WPAD_BUTTON_HOME) return 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (isClassicController(&pads[i])) {
|
||||
switch (button) {
|
||||
case PAD_BUTTON_UP:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_UP) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_DOWN:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_DOWN) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_LEFT:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_LEFT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_RIGHT:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_RIGHT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_A:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_A) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_B:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_B) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_X:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_X) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_Y:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_Y) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_L:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_R:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_R) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZL:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_ZL) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZR:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_ZR) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_PLUS:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_PLUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_MINUS:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_MINUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_HOME:
|
||||
if (buttons_pressed[i + 1] & WPAD_CLASSIC_BUTTON_HOME) return 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (isProController(&pads[i])) {
|
||||
switch (button) {
|
||||
case PAD_BUTTON_UP:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_UP) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_DOWN:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_DOWN) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_LEFT:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_LEFT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_RIGHT:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_RIGHT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_A:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_A) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_B:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_B) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_X:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_X) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_Y:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_Y) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_L:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_TRIGGER_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_R:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_TRIGGER_R) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZL:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_TRIGGER_ZL) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZR:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_TRIGGER_ZR) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_PLUS:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_PLUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_MINUS:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_MINUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_HOME:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_HOME) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_STICK_L:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_STICK_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_STICK_R:
|
||||
if (buttons_pressed[i + 1] & WPAD_PRO_BUTTON_STICK_R) return 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int isHeld(int button) {
|
||||
return (buttons_hold&button);
|
||||
//VPad buttons
|
||||
switch (button) {
|
||||
case PAD_BUTTON_A:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_A) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_B:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_B) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_X:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_X) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_Y:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_Y) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_UP:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_UP) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_DOWN:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_DOWN) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_LEFT:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_LEFT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_RIGHT:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_RIGHT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_L:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_R:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_R) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZL:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_ZL) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZR:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_ZR) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_PLUS:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_PLUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_MINUS:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_MINUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_HOME:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_HOME) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_SYNC:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_SYNC) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_STICK_L:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_STICK_R:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_STICK_R) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_TV:
|
||||
if (buttons_hold[0] & VPAD_BUTTON_TV) return 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
//Buttons handled by the padscore library
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (padErrors[i] == 0) {
|
||||
if (isWiimote(&pads[i])) {
|
||||
switch (button) {
|
||||
case PAD_BUTTON_UP:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_UP) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_DOWN:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_DOWN) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_LEFT:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_LEFT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_RIGHT:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_RIGHT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_A:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_A) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_B:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_B) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_L:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_1) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_R:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_2) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_1:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_1) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_2:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_2) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_Z:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_Z) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_C:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_C) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_PLUS:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_PLUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_MINUS:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_MINUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_HOME:
|
||||
if (buttons_hold[i + 1] & WPAD_BUTTON_HOME) return 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (isClassicController(&pads[i])) {
|
||||
switch (button) {
|
||||
case PAD_BUTTON_UP:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_UP) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_DOWN:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_DOWN) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_LEFT:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_LEFT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_RIGHT:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_RIGHT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_A:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_A) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_B:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_B) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_X:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_X) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_Y:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_Y) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_L:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_R:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_R) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZL:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_ZL) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZR:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_ZR) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_PLUS:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_PLUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_MINUS:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_MINUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_HOME:
|
||||
if (buttons_hold[i + 1] & WPAD_CLASSIC_BUTTON_HOME) return 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (isProController(&pads[i])) {
|
||||
switch (button) {
|
||||
case PAD_BUTTON_UP:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_UP) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_DOWN:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_DOWN) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_LEFT:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_LEFT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_RIGHT:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_RIGHT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_A:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_A) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_B:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_B) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_X:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_X) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_Y:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_Y) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_L:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_TRIGGER_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_R:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_TRIGGER_R) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZL:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_TRIGGER_ZL) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZR:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_TRIGGER_ZR) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_PLUS:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_PLUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_MINUS:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_MINUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_HOME:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_HOME) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_STICK_L:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_STICK_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_STICK_R:
|
||||
if (buttons_hold[i + 1] & WPAD_PRO_BUTTON_STICK_R) return 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int isReleased(int button) {
|
||||
return (buttons_released&button);
|
||||
//VPad buttons
|
||||
switch (button) {
|
||||
case PAD_BUTTON_A:
|
||||
if (buttons_released[0] & VPAD_BUTTON_A) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_B:
|
||||
if (buttons_released[0] & VPAD_BUTTON_B) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_X:
|
||||
if (buttons_released[0] & VPAD_BUTTON_X) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_Y:
|
||||
if (buttons_released[0] & VPAD_BUTTON_Y) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_UP:
|
||||
if (buttons_released[0] & VPAD_BUTTON_UP) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_DOWN:
|
||||
if (buttons_released[0] & VPAD_BUTTON_DOWN) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_LEFT:
|
||||
if (buttons_released[0] & VPAD_BUTTON_LEFT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_RIGHT:
|
||||
if (buttons_released[0] & VPAD_BUTTON_RIGHT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_L:
|
||||
if (buttons_released[0] & VPAD_BUTTON_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_R:
|
||||
if (buttons_released[0] & VPAD_BUTTON_R) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZL:
|
||||
if (buttons_released[0] & VPAD_BUTTON_ZL) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZR:
|
||||
if (buttons_released[0] & VPAD_BUTTON_ZR) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_PLUS:
|
||||
if (buttons_released[0] & VPAD_BUTTON_PLUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_MINUS:
|
||||
if (buttons_released[0] & VPAD_BUTTON_MINUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_HOME:
|
||||
if (buttons_released[0] & VPAD_BUTTON_HOME) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_SYNC:
|
||||
if (buttons_released[0] & VPAD_BUTTON_SYNC) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_STICK_L:
|
||||
if (buttons_released[0] & VPAD_BUTTON_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_STICK_R:
|
||||
if (buttons_released[0] & VPAD_BUTTON_STICK_R) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_TV:
|
||||
if (buttons_released[0] & VPAD_BUTTON_TV) return 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
//Buttons handled by the padscore library
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (padErrors[i] == 0) {
|
||||
if (isWiimote(&pads[i])) {
|
||||
switch (button) {
|
||||
case PAD_BUTTON_UP:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_UP) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_DOWN:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_DOWN) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_LEFT:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_LEFT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_RIGHT:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_RIGHT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_A:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_A) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_B:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_B) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_L:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_1) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_R:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_2) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_1:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_1) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_2:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_2) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_Z:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_Z) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_C:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_C) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_PLUS:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_PLUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_MINUS:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_MINUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_HOME:
|
||||
if (buttons_released[i + 1] & WPAD_BUTTON_HOME) return 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (isClassicController(&pads[i])) {
|
||||
switch (button) {
|
||||
case PAD_BUTTON_UP:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_UP) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_DOWN:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_DOWN) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_LEFT:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_LEFT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_RIGHT:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_RIGHT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_A:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_A) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_B:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_B) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_X:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_X) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_Y:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_Y) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_L:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_R:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_R) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZL:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_ZL) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZR:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_ZR) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_PLUS:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_PLUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_MINUS:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_MINUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_HOME:
|
||||
if (buttons_released[i + 1] & WPAD_CLASSIC_BUTTON_HOME) return 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (isProController(&pads[i])) {
|
||||
switch (button) {
|
||||
case PAD_BUTTON_UP:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_UP) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_DOWN:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_DOWN) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_LEFT:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_LEFT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_RIGHT:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_RIGHT) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_A:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_A) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_B:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_B) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_X:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_X) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_Y:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_Y) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_L:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_TRIGGER_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_R:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_TRIGGER_R) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZL:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_TRIGGER_ZL) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_ZR:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_TRIGGER_ZR) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_PLUS:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_PLUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_MINUS:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_MINUS) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_HOME:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_HOME) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_STICK_L:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_STICK_L) return 1;
|
||||
break;
|
||||
|
||||
case PAD_BUTTON_STICK_R:
|
||||
if (buttons_released[i + 1] & WPAD_PRO_BUTTON_STICK_R) return 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void uInit() {
|
||||
|
|
@ -85,6 +998,8 @@ void uInit() {
|
|||
|
||||
memoryInitialize(); //You probably shouldn't care about this for now :P
|
||||
VPADInit(); //Init GamePad input library (needed for getting gamepad input)
|
||||
KPADInit(); //Init controler input library for other wireless inputs
|
||||
WPADInit();
|
||||
ScreenInit(); //Init OSScreen (all the complex stuff is in easyfunctions.h :P )
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,16 +38,46 @@
|
|||
#include "utils/utils.h"
|
||||
#include "common/common.h"
|
||||
|
||||
enum buttons {
|
||||
PAD_BUTTON_A,
|
||||
PAD_BUTTON_B,
|
||||
PAD_BUTTON_X,
|
||||
PAD_BUTTON_Y,
|
||||
PAD_BUTTON_UP,
|
||||
PAD_BUTTON_DOWN,
|
||||
PAD_BUTTON_LEFT,
|
||||
PAD_BUTTON_RIGHT,
|
||||
PAD_BUTTON_L,
|
||||
PAD_BUTTON_R,
|
||||
PAD_BUTTON_ZL,
|
||||
PAD_BUTTON_ZR,
|
||||
PAD_BUTTON_PLUS,
|
||||
PAD_BUTTON_MINUS,
|
||||
PAD_BUTTON_Z,
|
||||
PAD_BUTTON_C,
|
||||
PAD_BUTTON_STICK_L,
|
||||
PAD_BUTTON_STICK_R,
|
||||
PAD_BUTTON_HOME,
|
||||
PAD_BUTTON_SYNC,
|
||||
PAD_BUTTON_TV,
|
||||
PAD_BUTTON_1,
|
||||
PAD_BUTTON_2
|
||||
};
|
||||
|
||||
unsigned char *screenBuffer;
|
||||
uint32_t buttons_hold; //Held buttons
|
||||
uint32_t buttons_pressed; //Pressed buttons
|
||||
uint32_t buttons_released; //Released buttons
|
||||
uint32_t buttons_hold[5]; //Held buttons
|
||||
uint32_t buttons_pressed[5]; //Pressed buttons
|
||||
uint32_t buttons_released[5]; //Released buttons
|
||||
|
||||
void ScreenInit();
|
||||
void pingControllers();
|
||||
void updatePressedButtons();
|
||||
void updateHeldButtons();
|
||||
void updateReleasedButtons();
|
||||
bool stickPos(u8 stick, f32 value);
|
||||
bool isWiimote(KPADData *padData);
|
||||
bool isClassicController(KPADData *padData);
|
||||
bool isProController(KPADData *padData);
|
||||
int isPressed(int button);
|
||||
int isHeld(int button);
|
||||
int isReleased(int button);
|
||||
|
|
|
|||
18
src/main.c
18
src/main.c
|
|
@ -684,13 +684,13 @@ int Menu_Main(void) {
|
|||
updatePressedButtons();
|
||||
updateHeldButtons();
|
||||
|
||||
if (isPressed(VPAD_BUTTON_DOWN) || isHeld(VPAD_BUTTON_DOWN) || stickPos(1, -0.7) || stickPos(3, -0.7)) {
|
||||
if (isPressed(PAD_BUTTON_DOWN) || isHeld(PAD_BUTTON_DOWN) || stickPos(1, -0.7) || stickPos(3, -0.7)) {
|
||||
if (entrycount <= 14) cursor = (cursor + 1) % entrycount;
|
||||
else if (cursor < 6) cursor++;
|
||||
else if ((cursor + scroll + 1) % entrycount) scroll++;
|
||||
else cursor = scroll = 0;
|
||||
os_usleep(100000);
|
||||
} else if (isPressed(VPAD_BUTTON_UP) || isHeld(VPAD_BUTTON_UP) || stickPos(1, 0.7) || stickPos(3, 0.7)) {
|
||||
} else if (isPressed(PAD_BUTTON_UP) || isHeld(PAD_BUTTON_UP) || stickPos(1, 0.7) || stickPos(3, 0.7)) {
|
||||
if (scroll > 0) cursor -= (cursor>6) ? 1 : 0 * (scroll--);
|
||||
else if (cursor > 0) cursor--;
|
||||
else if (entrycount > 14) scroll = entrycount - (cursor = 6) - 1;
|
||||
|
|
@ -698,7 +698,7 @@ int Menu_Main(void) {
|
|||
os_usleep(100000);
|
||||
}
|
||||
|
||||
if (isPressed(VPAD_BUTTON_LEFT) || isHeld(VPAD_BUTTON_LEFT) || stickPos(0, -0.7) || stickPos(2, -0.7)) {
|
||||
if (isPressed(PAD_BUTTON_LEFT) || isHeld(PAD_BUTTON_LEFT) || stickPos(0, -0.7) || stickPos(2, -0.7)) {
|
||||
if (menu==3) {
|
||||
if (task == 5) {
|
||||
switch(cursor) {
|
||||
|
|
@ -746,7 +746,7 @@ int Menu_Main(void) {
|
|||
}
|
||||
}
|
||||
os_usleep(100000);
|
||||
} else if (isPressed(VPAD_BUTTON_RIGHT) || isHeld(VPAD_BUTTON_RIGHT) || stickPos(0, 0.7) || stickPos(2, 0.7)) {
|
||||
} else if (isPressed(PAD_BUTTON_RIGHT) || isHeld(PAD_BUTTON_RIGHT) || stickPos(0, 0.7) || stickPos(2, 0.7)) {
|
||||
if (menu == 3) {
|
||||
if (task == 5) {
|
||||
switch(cursor) {
|
||||
|
|
@ -796,7 +796,7 @@ int Menu_Main(void) {
|
|||
os_usleep(100000);
|
||||
}
|
||||
|
||||
if (isPressed(VPAD_BUTTON_R)) {
|
||||
if (isPressed(PAD_BUTTON_R)) {
|
||||
if (menu == 1) {
|
||||
tsort = (tsort + 1) % 4;
|
||||
qsort(titles, count, sizeof(Title), titleSort);
|
||||
|
|
@ -806,7 +806,7 @@ int Menu_Main(void) {
|
|||
}
|
||||
}
|
||||
|
||||
if (isPressed(VPAD_BUTTON_L)) {
|
||||
if (isPressed(PAD_BUTTON_L)) {
|
||||
if ((menu==1) && (tsort > 0)) {
|
||||
sorta *= -1;
|
||||
qsort(titles, count, sizeof(Title), titleSort);
|
||||
|
|
@ -816,7 +816,7 @@ int Menu_Main(void) {
|
|||
}
|
||||
}
|
||||
|
||||
if (isPressed(VPAD_BUTTON_A)) {
|
||||
if (isPressed(PAD_BUTTON_A)) {
|
||||
clearBuffers();
|
||||
if (menu < 3) {
|
||||
if (menu == 0) {
|
||||
|
|
@ -928,7 +928,7 @@ int Menu_Main(void) {
|
|||
} break;
|
||||
}
|
||||
}
|
||||
} else if (isPressed(VPAD_BUTTON_B) && menu > 0) {
|
||||
} else if (isPressed(PAD_BUTTON_B) && menu > 0) {
|
||||
clearBuffers();
|
||||
menu--;
|
||||
cursor = scroll = 0;
|
||||
|
|
@ -938,7 +938,7 @@ int Menu_Main(void) {
|
|||
}
|
||||
if (menu == 2) cursor = cursort;
|
||||
}
|
||||
if (isPressed(VPAD_BUTTON_HOME)) break;
|
||||
if (isPressed(PAD_BUTTON_HOME)) break;
|
||||
}
|
||||
|
||||
if (tgaBufDRC) free(tgaBufDRC);
|
||||
|
|
|
|||
|
|
@ -300,8 +300,8 @@ bool promptConfirm(Style st, const char* question) {
|
|||
int ret = 0;
|
||||
while(1) {
|
||||
updatePressedButtons();
|
||||
if (isPressed(VPAD_BUTTON_A | VPAD_BUTTON_B | VPAD_BUTTON_HOME)) {
|
||||
ret = isPressed(VPAD_BUTTON_A);
|
||||
if (isPressed(PAD_BUTTON_A | PAD_BUTTON_B | PAD_BUTTON_HOME)) {
|
||||
ret = isPressed(PAD_BUTTON_A);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user