mirror of
https://github.com/Oibaf66/fbzx-wii.git
synced 2024-11-30 20:14:15 +01:00
Virtual keyboard and pause button also for the second controller
This commit is contained in:
parent
513da5147c
commit
228d0b06e6
@ -175,13 +175,14 @@ struct virtkey *get_key_internal()
|
|||||||
int key_h = 64/RATIO;
|
int key_h = 64/RATIO;
|
||||||
int border_x = VirtualKeyboard.sel_x/RATIO;
|
int border_x = VirtualKeyboard.sel_x/RATIO;
|
||||||
int border_y = VirtualKeyboard.sel_y/RATIO;
|
int border_y = VirtualKeyboard.sel_y/RATIO;
|
||||||
|
int joy_n=0;
|
||||||
|
|
||||||
draw_vk();
|
draw_vk();
|
||||||
SDL_Flip(VirtualKeyboard.screen);
|
SDL_Flip(VirtualKeyboard.screen);
|
||||||
|
|
||||||
SDL_ShowCursor(SDL_ENABLE);
|
SDL_ShowCursor(SDL_ENABLE);
|
||||||
|
|
||||||
k = menu_wait_key_press();
|
k = menu_wait_key_press(&joy_n);
|
||||||
|
|
||||||
SDL_ShowCursor(SDL_DISABLE);
|
SDL_ShowCursor(SDL_DISABLE);
|
||||||
|
|
||||||
@ -198,15 +199,15 @@ struct virtkey *get_key_internal()
|
|||||||
i = y/key_h*KEY_COLS + x/key_w;
|
i = y/key_h*KEY_COLS + x/key_w;
|
||||||
|
|
||||||
#ifdef HW_RVL
|
#ifdef HW_RVL
|
||||||
if (ordenador.vk_rumble) WPAD_Rumble(0, 1);
|
if (ordenador.vk_rumble) WPAD_Rumble(joy_n, 1);
|
||||||
SDL_Delay(90);
|
SDL_Delay(90);
|
||||||
if (ordenador.vk_rumble) WPAD_Rumble(0, 0);
|
if (ordenador.vk_rumble) WPAD_Rumble(joy_n, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HW_DOL
|
#ifdef HW_DOL
|
||||||
if (ordenador.vk_rumble) PAD_ControlMotor(0,PAD_MOTOR_RUMBLE);
|
if (ordenador.vk_rumble) PAD_ControlMotor(joy_n,PAD_MOTOR_RUMBLE);
|
||||||
SDL_Delay(90);
|
SDL_Delay(90);
|
||||||
if (ordenador.vk_rumble) PAD_ControlMotor(0,PAD_MOTOR_STOP);
|
if (ordenador.vk_rumble) PAD_ControlMotor(joy_n,PAD_MOTOR_STOP);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
virtkey_t *key = &keys[i];
|
virtkey_t *key = &keys[i];
|
||||||
@ -248,47 +249,52 @@ void virtkey_ir_run(void)
|
|||||||
int border_x = VirtualKeyboard.sel_x/RATIO;
|
int border_x = VirtualKeyboard.sel_x/RATIO;
|
||||||
int border_y = VirtualKeyboard.sel_y/RATIO;
|
int border_y = VirtualKeyboard.sel_y/RATIO;
|
||||||
int key_sel = 0;
|
int key_sel = 0;
|
||||||
|
int joy_n;
|
||||||
SDL_Joystick *joy;
|
SDL_Joystick *joy;
|
||||||
static int joy_bottons_last[5];
|
static int joy_bottons_last[2][5];
|
||||||
static char countdown_rumble=0;
|
static char countdown_rumble[2];
|
||||||
|
|
||||||
|
for(joy_n=0;joy_n<ordenador.joystick_number;joy_n++)
|
||||||
|
{
|
||||||
|
key_sel = 0;
|
||||||
|
|
||||||
#ifdef HW_RVL
|
#ifdef HW_RVL
|
||||||
if (countdown_rumble > 0) {countdown_rumble--; if ((countdown_rumble==0)&&(ordenador.vk_rumble)) WPAD_Rumble(0, 0);}
|
if (countdown_rumble[joy_n] > 0) {countdown_rumble[joy_n]--; if ((countdown_rumble[joy_n]==0)&&(ordenador.vk_rumble)) WPAD_Rumble(joy_n, 0);}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HW_DOL
|
#ifdef HW_DOL
|
||||||
if (countdown_rumble > 0) {countdown_rumble--; if ((countdown_rumble==0)&&(ordenador.vk_rumble)) PAD_ControlMotor(0,PAD_MOTOR_STOP);}
|
if (countdown_rumble[joy_n] > 0) {countdown_rumble[joy_n]--; if ((countdown_rumble[joy_n]==0)&&(ordenador.vk_rumble)) PAD_ControlMotor(joy_n,PAD_MOTOR_STOP);}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
joy = ordenador.joystick_sdl[0];
|
joy = ordenador.joystick_sdl[joy_n];
|
||||||
|
|
||||||
if ((SDL_JoystickGetButton(joy, 0) && !joy_bottons_last[0]) || /* A */
|
if ((SDL_JoystickGetButton(joy, 0) && !joy_bottons_last[joy_n][0]) || /* A */
|
||||||
(SDL_JoystickGetButton(joy, 3) && !joy_bottons_last[1]) || /* 2 */
|
(SDL_JoystickGetButton(joy, 3) && !joy_bottons_last[joy_n][1]) || /* 2 */
|
||||||
(SDL_JoystickGetButton(joy, 9) && !joy_bottons_last[2]) || /* CA */
|
(SDL_JoystickGetButton(joy, 9) && !joy_bottons_last[joy_n][2]) || /* CA */
|
||||||
(SDL_JoystickGetButton(joy, 10) && !joy_bottons_last[3]) /* CB */
|
(SDL_JoystickGetButton(joy, 10) && !joy_bottons_last[joy_n][3]) /* CB */
|
||||||
#ifndef GEKKO //Win
|
#ifndef GEKKO //Win
|
||||||
||((SDL_GetMouseState(NULL, NULL)&SDL_BUTTON(1))&& !joy_bottons_last[4])//mouse left button
|
||(!joy_n && (SDL_GetMouseState(NULL, NULL)&SDL_BUTTON(1))&& !joy_bottons_last[0][4])//mouse left button
|
||||||
#endif
|
#endif
|
||||||
) key_sel = KEY_SELECT;
|
) key_sel = KEY_SELECT;
|
||||||
|
|
||||||
|
|
||||||
if ((!SDL_JoystickGetButton(joy, 0) && joy_bottons_last[0]) || /* A */
|
if ((!SDL_JoystickGetButton(joy, 0) && joy_bottons_last[joy_n][0]) || /* A */
|
||||||
(!SDL_JoystickGetButton(joy, 3) && joy_bottons_last[1]) || /* 2 */
|
(!SDL_JoystickGetButton(joy, 3) && joy_bottons_last[joy_n][1]) || /* 2 */
|
||||||
(!SDL_JoystickGetButton(joy, 9) && joy_bottons_last[2]) || /* CA */
|
(!SDL_JoystickGetButton(joy, 9) && joy_bottons_last[joy_n][2]) || /* CA */
|
||||||
(!SDL_JoystickGetButton(joy, 10) && joy_bottons_last[3]) /* CB */
|
(!SDL_JoystickGetButton(joy, 10) && joy_bottons_last[joy_n][3]) /* CB */
|
||||||
#ifndef GEKKO //Win
|
#ifndef GEKKO //Win
|
||||||
||(!(SDL_GetMouseState(NULL, NULL)&SDL_BUTTON(1)) && joy_bottons_last[4]) //mouse left button
|
||(!joy_n && !(SDL_GetMouseState(NULL, NULL)&SDL_BUTTON(1)) && joy_bottons_last[0][4]) //mouse left button
|
||||||
#endif
|
#endif
|
||||||
) key_sel = KEY_DESELECT;
|
) key_sel = KEY_DESELECT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
joy_bottons_last[0]=SDL_JoystickGetButton(joy, 0) ; /* A */
|
joy_bottons_last[joy_n][0] =SDL_JoystickGetButton(joy, 0) ; /* A */
|
||||||
joy_bottons_last[1] =SDL_JoystickGetButton(joy, 3) ; /* 2 */
|
joy_bottons_last[joy_n][1] =SDL_JoystickGetButton(joy, 3) ; /* 2 */
|
||||||
joy_bottons_last[2] =SDL_JoystickGetButton(joy, 9) ; /* CA */
|
joy_bottons_last[joy_n][2] =SDL_JoystickGetButton(joy, 9) ; /* CA */
|
||||||
joy_bottons_last[3] =SDL_JoystickGetButton(joy, 10) ; /* CB */
|
joy_bottons_last[joy_n][3] =SDL_JoystickGetButton(joy, 10) ; /* CB */
|
||||||
#ifndef GEKKO //Win
|
#ifndef GEKKO //Win
|
||||||
joy_bottons_last[4] =SDL_GetMouseState(NULL, NULL)&SDL_BUTTON(1); //mouse left button
|
if (!joy_n) joy_bottons_last[0][4] =SDL_GetMouseState(NULL, NULL)&SDL_BUTTON(1); //mouse left button
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (key_sel==KEY_SELECT)
|
if (key_sel==KEY_SELECT)
|
||||||
@ -299,14 +305,14 @@ void virtkey_ir_run(void)
|
|||||||
if ((x>0)&&(x< KEY_COLS*key_w)&&(y>0)&&(y< KEY_ROWS*key_h))
|
if ((x>0)&&(x< KEY_COLS*key_w)&&(y>0)&&(y< KEY_ROWS*key_h))
|
||||||
{
|
{
|
||||||
#ifdef HW_RVL
|
#ifdef HW_RVL
|
||||||
if (ordenador.vk_rumble) WPAD_Rumble(0, 1);
|
if (ordenador.vk_rumble) WPAD_Rumble(joy_n, 1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HW_DOL
|
#ifdef HW_DOL
|
||||||
if (ordenador.vk_rumble) PAD_ControlMotor(0,PAD_MOTOR_RUMBLE);
|
if (ordenador.vk_rumble) PAD_ControlMotor(joy_n,PAD_MOTOR_RUMBLE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
countdown_rumble=5;
|
countdown_rumble[joy_n]=5;
|
||||||
|
|
||||||
i = y/key_h*KEY_COLS + x/key_w;
|
i = y/key_h*KEY_COLS + x/key_w;
|
||||||
|
|
||||||
@ -357,6 +363,7 @@ void virtkey_ir_run(void)
|
|||||||
key_code=0;
|
key_code=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void virtkey_ir_activate(void)
|
void virtkey_ir_activate(void)
|
||||||
{
|
{
|
||||||
|
@ -1184,7 +1184,8 @@ inline void paint_one_pixel(unsigned char *colour,unsigned char *address ) {
|
|||||||
inline void pause() {
|
inline void pause() {
|
||||||
unsigned int temporal_io;
|
unsigned int temporal_io;
|
||||||
SDL_Event evento,*pevento;
|
SDL_Event evento,*pevento;
|
||||||
unsigned char minus_pressed=2;
|
unsigned char minus_pressed[2]={2,2};
|
||||||
|
int joy_n;
|
||||||
|
|
||||||
pevento=&evento;
|
pevento=&evento;
|
||||||
printf("Pause\n");
|
printf("Pause\n");
|
||||||
@ -1193,19 +1194,21 @@ inline void pause() {
|
|||||||
{
|
{
|
||||||
SDL_JoystickUpdate();
|
SDL_JoystickUpdate();
|
||||||
|
|
||||||
|
for(joy_n=0;joy_n<ordenador.joystick_number;joy_n++)
|
||||||
|
{
|
||||||
#ifdef HW_DOL //Gamecube button "Z"
|
#ifdef HW_DOL //Gamecube button "Z"
|
||||||
if (!SDL_JoystickGetButton(ordenador.joystick_sdl[0], 4 ) && minus_pressed==2 ) minus_pressed = 1; //Released
|
if (!SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 4 ) && minus_pressed[joy_n]==2) minus_pressed[joy_n] = 1; //Released
|
||||||
if (SDL_JoystickGetButton(ordenador.joystick_sdl[0], 4 ) && minus_pressed==1) minus_pressed = 0; //Pressed
|
if (SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 4 ) && minus_pressed[joy_n]==1) minus_pressed[joy_n] = 0; //Pressed
|
||||||
if (!SDL_JoystickGetButton(ordenador.joystick_sdl[0], 4 ) && minus_pressed==0 ) return; //Released
|
if (!SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 4 ) && minus_pressed[joy_n]==0) return; //Released
|
||||||
#else //HW_RVL - WIN // Wii button "-"
|
#else //HW_RVL - WIN // Wii button "-"
|
||||||
if (!SDL_JoystickGetButton(ordenador.joystick_sdl[0], 4) &&
|
if (!SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 4) &&
|
||||||
!SDL_JoystickGetButton(ordenador.joystick_sdl[0], 17) && minus_pressed==2 ) minus_pressed=1; //Released
|
!SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 17) && minus_pressed[joy_n]==2) minus_pressed[joy_n]=1; //Released
|
||||||
if ((SDL_JoystickGetButton(ordenador.joystick_sdl[0], 4) ||
|
if ((SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 4) ||
|
||||||
SDL_JoystickGetButton(ordenador.joystick_sdl[0], 17)) && minus_pressed==1) minus_pressed = 0; //Pressed
|
SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 17)) && minus_pressed[joy_n]==1) minus_pressed[joy_n] = 0; //Pressed
|
||||||
if (!SDL_JoystickGetButton(ordenador.joystick_sdl[0], 4) &&
|
if (!SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 4) &&
|
||||||
!SDL_JoystickGetButton(ordenador.joystick_sdl[0], 17) && minus_pressed==0 ) return; //Released
|
!SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 17) && minus_pressed[joy_n]==0) return; //Released
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
memset(&evento,0, sizeof(SDL_Event));
|
memset(&evento,0, sizeof(SDL_Event));
|
||||||
SDL_PollEvent (&evento);
|
SDL_PollEvent (&evento);
|
||||||
|
|
||||||
@ -1276,17 +1279,19 @@ inline void read_keyboard () {
|
|||||||
|
|
||||||
SDL_JoystickUpdate();
|
SDL_JoystickUpdate();
|
||||||
|
|
||||||
|
for(joy_n=0;joy_n<ordenador.joystick_number;joy_n++)
|
||||||
|
{
|
||||||
#ifdef HW_DOL
|
#ifdef HW_DOL
|
||||||
if (SDL_JoystickGetButton(ordenador.joystick_sdl[0], 7)) //Gamecube button "Start"
|
if (SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 7)) //Gamecube button "Start"
|
||||||
{if (ordenador.vk_is_active) virtkey_ir_deactivate();main_menu(); }
|
{if (ordenador.vk_is_active) virtkey_ir_deactivate();main_menu(); }
|
||||||
if (SDL_JoystickGetButton(ordenador.joystick_sdl[0], 4)) //Gamecube button "Z"
|
if (SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 4)) //Gamecube button "Z"
|
||||||
pause();
|
pause();
|
||||||
#else //HW_RVL - WIN
|
#else //HW_RVL - WIN
|
||||||
if (SDL_JoystickGetButton(ordenador.joystick_sdl[0], 6) ||//Wii button "Home"
|
if (SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 6) ||//Wii button "Home"
|
||||||
SDL_JoystickGetButton(ordenador.joystick_sdl[0], 19))
|
SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 19))
|
||||||
{if (ordenador.vk_is_active) virtkey_ir_deactivate();main_menu(); }
|
{if (ordenador.vk_is_active) virtkey_ir_deactivate();main_menu(); }
|
||||||
if (SDL_JoystickGetButton(ordenador.joystick_sdl[0], 4) ||//Wii button "-"
|
if (SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 4) ||//Wii button "-"
|
||||||
SDL_JoystickGetButton(ordenador.joystick_sdl[0], 17))
|
SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 17))
|
||||||
pause();
|
pause();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1294,15 +1299,13 @@ inline void read_keyboard () {
|
|||||||
if (!ordenador.vk_auto)
|
if (!ordenador.vk_auto)
|
||||||
{
|
{
|
||||||
int SDL_PrivateMouseMotion(Uint8 buttonstate, int relative, Sint16 x, Sint16 y);
|
int SDL_PrivateMouseMotion(Uint8 buttonstate, int relative, Sint16 x, Sint16 y);
|
||||||
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[0], 2) > 16384) SDL_PrivateMouseMotion(0,1,4/RATIO,0); //C-stick Horizontal axix
|
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[joy_n], 2) > 16384) SDL_PrivateMouseMotion(0,1,4/RATIO,0); //C-stick Horizontal axix
|
||||||
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[0], 2) < -16384) SDL_PrivateMouseMotion(0,1,-4/RATIO,0); //C-stick Horizontal axix
|
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[joy_n], 2) < -16384) SDL_PrivateMouseMotion(0,1,-4/RATIO,0); //C-stick Horizontal axix
|
||||||
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[0], 3) > 16384) SDL_PrivateMouseMotion(0,1,0,4/RATIO); //C-stick vertical axix
|
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[joy_n], 3) > 16384) SDL_PrivateMouseMotion(0,1,0,4/RATIO); //C-stick vertical axix
|
||||||
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[0], 3) < -16384) SDL_PrivateMouseMotion(0,1,0,-4/RATIO); //C-stick vertical axix
|
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[joy_n], 3) < -16384) SDL_PrivateMouseMotion(0,1,0,-4/RATIO); //C-stick vertical axix
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for(joy_n=0;joy_n<ordenador.joystick_number;joy_n++)
|
|
||||||
{
|
|
||||||
joy_axis_x[joy_n] = SDL_JoystickGetAxis(ordenador.joystick_sdl[joy_n], 0);
|
joy_axis_x[joy_n] = SDL_JoystickGetAxis(ordenador.joystick_sdl[joy_n], 0);
|
||||||
joy_axis_y[joy_n] = SDL_JoystickGetAxis(ordenador.joystick_sdl[joy_n], 1);
|
joy_axis_y[joy_n] = SDL_JoystickGetAxis(ordenador.joystick_sdl[joy_n], 1);
|
||||||
|
|
||||||
@ -1777,24 +1780,31 @@ inline void read_keyboard () {
|
|||||||
|
|
||||||
//VK activation/deactivation
|
//VK activation/deactivation
|
||||||
|
|
||||||
static char old_plus_button;
|
static char old_plus_button[2];
|
||||||
char plus_button;
|
char plus_button[2];
|
||||||
|
|
||||||
plus_button= SDL_JoystickGetButton(ordenador.joystick_sdl[0], 5) || //Wii button "+" - Gamecube "R"
|
|
||||||
SDL_JoystickGetButton(ordenador.joystick_sdl[0], 18);
|
|
||||||
|
|
||||||
|
|
||||||
if (!ordenador.vk_auto && plus_button && !old_plus_button)
|
if (!ordenador.vk_auto)
|
||||||
|
for(joy_n=0;joy_n<ordenador.joystick_number;joy_n++)
|
||||||
|
{
|
||||||
|
plus_button[joy_n] = SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 5) || //Wii button "+" - Gamecube "R"
|
||||||
|
SDL_JoystickGetButton(ordenador.joystick_sdl[joy_n], 18);
|
||||||
|
|
||||||
|
if (plus_button[joy_n] && !old_plus_button[joy_n])
|
||||||
{if (!ordenador.vk_is_active) virtkey_ir_activate(); else virtkey_ir_deactivate();}
|
{if (!ordenador.vk_is_active) virtkey_ir_activate(); else virtkey_ir_deactivate();}
|
||||||
|
|
||||||
if (ordenador.vk_auto)
|
old_plus_button[joy_n] = plus_button[joy_n];
|
||||||
|
}
|
||||||
|
|
||||||
|
else //Auto VK
|
||||||
{
|
{
|
||||||
#ifdef HW_RVL
|
#ifdef HW_RVL
|
||||||
WPADData *wd;
|
WPADData *wd0, *wd1;
|
||||||
wd = WPAD_Data(0); //only wiimote 0
|
wd0 = WPAD_Data(0); //wiimote 0
|
||||||
if ((wd->ir.valid)&&(!ordenador.vk_is_active)) virtkey_ir_activate();
|
wd1 = WPAD_Data(1); //wiimote 1
|
||||||
if ((!wd->ir.valid)&&(ordenador.vk_is_active)) virtkey_ir_deactivate();
|
if (((wd0->ir.valid)||(wd1->ir.valid))&&(!ordenador.vk_is_active)) virtkey_ir_activate();
|
||||||
#else //WH_DOL - Win
|
if ((!wd0->ir.valid)&&(!wd1->ir.valid)&&(ordenador.vk_is_active)) virtkey_ir_deactivate();
|
||||||
|
#else //Win
|
||||||
int x=0,y=0 ;
|
int x=0,y=0 ;
|
||||||
SDL_GetMouseState(&x,&y);
|
SDL_GetMouseState(&x,&y);
|
||||||
if ((x>64/RATIO)&&(x<576/RATIO)&&(y>90/RATIO)&&(y<390/RATIO))
|
if ((x>64/RATIO)&&(x<576/RATIO)&&(y>90/RATIO)&&(y<390/RATIO))
|
||||||
@ -1807,7 +1817,6 @@ inline void read_keyboard () {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
old_plus_button = plus_button;
|
|
||||||
|
|
||||||
if (ordenador.vk_is_active) virtkey_ir_run();
|
if (ordenador.vk_is_active) virtkey_ir_run();
|
||||||
|
|
||||||
|
@ -559,6 +559,7 @@ if (sound_type==SOUND_SDL)
|
|||||||
if(SDL_NumJoysticks()>0){
|
if(SDL_NumJoysticks()>0){
|
||||||
// Open joystick
|
// Open joystick
|
||||||
ordenador.joystick_number = SDL_NumJoysticks();
|
ordenador.joystick_number = SDL_NumJoysticks();
|
||||||
|
printf("Found %d joysticks \n", ordenador.joystick_number);
|
||||||
if (ordenador.joystick_number>2) ordenador.joystick_number = 2; //Open max 2 joysticks
|
if (ordenador.joystick_number>2) ordenador.joystick_number = 2; //Open max 2 joysticks
|
||||||
printf("Try to open %d joysticks \n", ordenador.joystick_number);
|
printf("Try to open %d joysticks \n", ordenador.joystick_number);
|
||||||
for (bucle=0;bucle<ordenador.joystick_number;bucle++) {
|
for (bucle=0;bucle<ordenador.joystick_number;bucle++) {
|
||||||
|
@ -1638,7 +1638,7 @@ int parse_poke (const char *filename)
|
|||||||
k=0;
|
k=0;
|
||||||
|
|
||||||
while (!((k & KEY_ESCAPE)||(k & KEY_SELECT)))
|
while (!((k & KEY_ESCAPE)||(k & KEY_SELECT)))
|
||||||
{k = menu_wait_key_press();}
|
{k = menu_wait_key_press(NULL);}
|
||||||
|
|
||||||
SDL_FillRect(screen, &banner, SDL_MapRGB(screen->format, 0, 0, 0));
|
SDL_FillRect(screen, &banner, SDL_MapRGB(screen->format, 0, 0, 0));
|
||||||
|
|
||||||
@ -1709,7 +1709,7 @@ int parse_poke (const char *filename)
|
|||||||
k=0;
|
k=0;
|
||||||
|
|
||||||
while (!(k & KEY_ESCAPE)&&(ritorno==0))
|
while (!(k & KEY_ESCAPE)&&(ritorno==0))
|
||||||
{k = menu_wait_key_press();}
|
{k = menu_wait_key_press(NULL);}
|
||||||
play_click(2);
|
play_click(2);
|
||||||
|
|
||||||
fclose(fpoke);
|
fclose(fpoke);
|
||||||
|
@ -156,7 +156,7 @@ int msgInfo(char *text, int duration, SDL_Rect *irc)
|
|||||||
SDL_FillRect(real_screen, &brc, SDL_MapRGB(real_screen->format, 0x00, 0x80, 0x00));
|
SDL_FillRect(real_screen, &brc, SDL_MapRGB(real_screen->format, 0x00, 0x80, 0x00));
|
||||||
menu_print_font(real_screen, 0,0,0, FULL_DISPLAY_X/2-w, Y+h*2, "OK",FONT_NORM,64);
|
menu_print_font(real_screen, 0,0,0, FULL_DISPLAY_X/2-w, Y+h*2, "OK",FONT_NORM,64);
|
||||||
SDL_UpdateRect(real_screen, brc.x, brc.y, brc.w, brc.h);
|
SDL_UpdateRect(real_screen, brc.x, brc.y, brc.w, brc.h);
|
||||||
while (!(KEY_SELECT & menu_wait_key_press())) {}
|
while (!(KEY_SELECT & menu_wait_key_press(NULL))) {}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,7 +232,7 @@ int msgYesNo(char *text, int default_opt, int x, int y)
|
|||||||
SDL_UpdateRect(real_screen, brc.x, brc.y, brc.w,brc.h);
|
SDL_UpdateRect(real_screen, brc.x, brc.y, brc.w,brc.h);
|
||||||
|
|
||||||
//SDL_Flip(real_screen);
|
//SDL_Flip(real_screen);
|
||||||
key = menu_wait_key_press();
|
key = menu_wait_key_press(NULL);
|
||||||
if (key & KEY_SELECT)
|
if (key & KEY_SELECT)
|
||||||
{
|
{
|
||||||
play_click(1);
|
play_click(1);
|
||||||
@ -1145,7 +1145,7 @@ static void menu_fini(menu_t *p_menu)
|
|||||||
free(p_menu->p_submenus);
|
free(p_menu->p_submenus);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t menu_wait_key_press()
|
uint32_t menu_wait_key_press(int *joy_n_p)
|
||||||
{
|
{
|
||||||
SDL_Event ev;
|
SDL_Event ev;
|
||||||
uint32_t keys = 0;
|
uint32_t keys = 0;
|
||||||
@ -1157,18 +1157,8 @@ uint32_t menu_wait_key_press()
|
|||||||
static int joy_keys_changed;
|
static int joy_keys_changed;
|
||||||
static int joy_keys_last;
|
static int joy_keys_last;
|
||||||
static int joy_bottons_last[2][8];
|
static int joy_bottons_last[2][8];
|
||||||
SDL_JoystickUpdate();
|
|
||||||
|
|
||||||
#if defined(HW_RVL) || defined(HW_DOL)
|
SDL_JoystickUpdate();
|
||||||
if (!ordenador.vk_auto)
|
|
||||||
{
|
|
||||||
int SDL_PrivateMouseMotion(Uint8 buttonstate, int relative, Sint16 x, Sint16 y);
|
|
||||||
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[0], 2) > 16384) SDL_PrivateMouseMotion(0,1,4/RATIO,0); //C-stick Horizontal axix
|
|
||||||
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[0], 2) < -16384) SDL_PrivateMouseMotion(0,1,-4/RATIO,0); //C-stick Horizontal axix
|
|
||||||
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[0], 3) > 16384) SDL_PrivateMouseMotion(0,1,0,4/RATIO); //C-stick vertical axix
|
|
||||||
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[0], 3) < -16384) SDL_PrivateMouseMotion(0,1,0,-4/RATIO); //C-stick vertical axix
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Wii-specific, sorry */
|
/* Wii-specific, sorry */
|
||||||
for (nr = 0; nr < ordenador.joystick_number; nr++) {
|
for (nr = 0; nr < ordenador.joystick_number; nr++) {
|
||||||
@ -1176,6 +1166,16 @@ uint32_t menu_wait_key_press()
|
|||||||
if (!joy)
|
if (!joy)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
#if defined(HW_RVL) || defined(HW_DOL)
|
||||||
|
if (!ordenador.vk_auto)
|
||||||
|
{
|
||||||
|
int SDL_PrivateMouseMotion(Uint8 buttonstate, int relative, Sint16 x, Sint16 y);
|
||||||
|
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[nr], 2) > 16384) SDL_PrivateMouseMotion(0,1,4/RATIO,0); //C-stick Horizontal axix
|
||||||
|
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[nr], 2) < -16384) SDL_PrivateMouseMotion(0,1,-4/RATIO,0); //C-stick Horizontal axix
|
||||||
|
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[nr], 3) > 16384) SDL_PrivateMouseMotion(0,1,0,4/RATIO); //C-stick vertical axix
|
||||||
|
if (SDL_JoystickGetAxis(ordenador.joystick_sdl[nr], 3) < -16384) SDL_PrivateMouseMotion(0,1,0,-4/RATIO); //C-stick vertical axix
|
||||||
|
}
|
||||||
|
#endif
|
||||||
hats = SDL_JoystickNumHats (joy);
|
hats = SDL_JoystickNumHats (joy);
|
||||||
for (i = 0; i < hats; i++) {
|
for (i = 0; i < hats; i++) {
|
||||||
Uint8 v = SDL_JoystickGetHat (joy, i);
|
Uint8 v = SDL_JoystickGetHat (joy, i);
|
||||||
@ -1225,9 +1225,16 @@ uint32_t menu_wait_key_press()
|
|||||||
joy_bottons_last[nr][5] =SDL_JoystickGetButton(joy, 11) ; /* CX */
|
joy_bottons_last[nr][5] =SDL_JoystickGetButton(joy, 11) ; /* CX */
|
||||||
joy_bottons_last[nr][6] =SDL_JoystickGetButton(joy, 12) ; /* CY */
|
joy_bottons_last[nr][6] =SDL_JoystickGetButton(joy, 12) ; /* CY */
|
||||||
joy_bottons_last[nr][7] =SDL_JoystickGetButton(joy, 1) ; /* B */
|
joy_bottons_last[nr][7] =SDL_JoystickGetButton(joy, 1) ; /* B */
|
||||||
}
|
|
||||||
|
|
||||||
joy_keys_changed = keys != joy_keys_last;
|
joy_keys_changed = keys != joy_keys_last;
|
||||||
|
|
||||||
|
if (joy_keys_changed&&keys)
|
||||||
|
{
|
||||||
|
if (joy_n_p) *joy_n_p = nr;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
joy_keys_last = keys;
|
joy_keys_last = keys;
|
||||||
if (!joy_keys_changed)
|
if (!joy_keys_changed)
|
||||||
keys = 0;
|
keys = 0;
|
||||||
@ -1333,7 +1340,7 @@ static int menu_select_internal(SDL_Surface *screen,
|
|||||||
menu_draw(screen, p_menu, 0, font_type, draw_scr);
|
menu_draw(screen, p_menu, 0, font_type, draw_scr);
|
||||||
SDL_Flip(screen);
|
SDL_Flip(screen);
|
||||||
|
|
||||||
keys = menu_wait_key_press();
|
keys = menu_wait_key_press(NULL);
|
||||||
|
|
||||||
quit_thread = 1;
|
quit_thread = 1;
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ const char *menu_select_file(char *dir_path,const char *selected_file, int draw_
|
|||||||
const char *menu_select_browser(unsigned int tape_pos);
|
const char *menu_select_browser(unsigned int tape_pos);
|
||||||
const char *menu_select_browser_rzx();
|
const char *menu_select_browser_rzx();
|
||||||
|
|
||||||
uint32_t menu_wait_key_press();
|
uint32_t menu_wait_key_press(int *joy_n_p);
|
||||||
|
|
||||||
void msgKill(SDL_Rect *rc);
|
void msgKill(SDL_Rect *rc);
|
||||||
int msgInfo(char *text, int duration, SDL_Rect *rc);
|
int msgInfo(char *text, int duration, SDL_Rect *rc);
|
||||||
|
Loading…
Reference in New Issue
Block a user