Simple joystick support. Should be made configurable and all the gp2x buttons could be used as shortcuts.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@463 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
132eabcde5
commit
8c0475c43e
193
divers.c
193
divers.c
@ -295,12 +295,201 @@ int Get_input(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// Joystick handling
|
||||||
|
// Mostly useful for the gp2x
|
||||||
|
// FIXME : should be made configurable with gfxcfg.
|
||||||
|
case SDL_JOYBUTTONUP:
|
||||||
|
if(event.jbutton.button==13 || event.jbutton.button==14)
|
||||||
|
INPUT_Nouveau_Mouse_K=0;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SDL_JOYBUTTONDOWN:
|
||||||
|
switch(event.jbutton.button)
|
||||||
|
{
|
||||||
|
|
||||||
|
case 13:
|
||||||
|
INPUT_Nouveau_Mouse_K = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 14:
|
||||||
|
INPUT_Nouveau_Mouse_K = 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Flush_update();
|
if(SDL_JoystickGetButton(joystick,0))
|
||||||
return 0; // Il ne s'est rien passé
|
{
|
||||||
|
if(INPUT_Nouveau_Mouse_Y!=0)
|
||||||
|
{
|
||||||
|
if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
|
||||||
|
INPUT_Nouveau_Mouse_Y=INPUT_Nouveau_Mouse_Y<Loupe_Facteur?0:INPUT_Nouveau_Mouse_Y-Loupe_Facteur;
|
||||||
|
else
|
||||||
|
INPUT_Nouveau_Mouse_Y--;
|
||||||
|
ok=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if(SDL_JoystickGetButton(joystick,1))
|
||||||
|
{
|
||||||
|
if(INPUT_Nouveau_Mouse_Y!=0)
|
||||||
|
{
|
||||||
|
if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
|
||||||
|
INPUT_Nouveau_Mouse_Y=INPUT_Nouveau_Mouse_Y<Loupe_Facteur?0:INPUT_Nouveau_Mouse_Y-Loupe_Facteur;
|
||||||
|
else
|
||||||
|
INPUT_Nouveau_Mouse_Y--;
|
||||||
|
ok=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(INPUT_Nouveau_Mouse_X!=0)
|
||||||
|
{
|
||||||
|
if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
|
||||||
|
INPUT_Nouveau_Mouse_X-=Loupe_Facteur;
|
||||||
|
else
|
||||||
|
INPUT_Nouveau_Mouse_X--;
|
||||||
|
ok=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if(SDL_JoystickGetButton(joystick,2))
|
||||||
|
{
|
||||||
|
if(INPUT_Nouveau_Mouse_X!=0)
|
||||||
|
{
|
||||||
|
if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
|
||||||
|
INPUT_Nouveau_Mouse_X-=Loupe_Facteur;
|
||||||
|
else
|
||||||
|
INPUT_Nouveau_Mouse_X--;
|
||||||
|
ok=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if(SDL_JoystickGetButton(joystick,3))
|
||||||
|
{
|
||||||
|
if(INPUT_Nouveau_Mouse_X!=0)
|
||||||
|
{
|
||||||
|
if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
|
||||||
|
INPUT_Nouveau_Mouse_X-=Loupe_Facteur;
|
||||||
|
else
|
||||||
|
INPUT_Nouveau_Mouse_X--;
|
||||||
|
ok=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(INPUT_Nouveau_Mouse_Y<Hauteur_ecran-1)
|
||||||
|
{
|
||||||
|
if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
|
||||||
|
{
|
||||||
|
INPUT_Nouveau_Mouse_Y+=Loupe_Facteur;
|
||||||
|
if (INPUT_Nouveau_Mouse_Y>=Hauteur_ecran)
|
||||||
|
INPUT_Nouveau_Mouse_Y=Hauteur_ecran-1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
INPUT_Nouveau_Mouse_Y++;
|
||||||
|
ok=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if(SDL_JoystickGetButton(joystick,4))
|
||||||
|
{
|
||||||
|
if(INPUT_Nouveau_Mouse_Y<Hauteur_ecran-1)
|
||||||
|
{
|
||||||
|
if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
|
||||||
|
{
|
||||||
|
INPUT_Nouveau_Mouse_Y+=Loupe_Facteur;
|
||||||
|
if (INPUT_Nouveau_Mouse_Y>=Hauteur_ecran)
|
||||||
|
INPUT_Nouveau_Mouse_Y=Hauteur_ecran-1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
INPUT_Nouveau_Mouse_Y++;
|
||||||
|
ok=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if(SDL_JoystickGetButton(joystick,5))
|
||||||
|
{
|
||||||
|
if(INPUT_Nouveau_Mouse_Y<Hauteur_ecran-1)
|
||||||
|
{
|
||||||
|
if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
|
||||||
|
{
|
||||||
|
INPUT_Nouveau_Mouse_Y+=Loupe_Facteur;
|
||||||
|
if (INPUT_Nouveau_Mouse_Y>=Hauteur_ecran)
|
||||||
|
INPUT_Nouveau_Mouse_Y=Hauteur_ecran-1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
INPUT_Nouveau_Mouse_Y++;
|
||||||
|
ok=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(INPUT_Nouveau_Mouse_X<Largeur_ecran-1)
|
||||||
|
{
|
||||||
|
if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
|
||||||
|
{
|
||||||
|
INPUT_Nouveau_Mouse_X+=Loupe_Facteur;
|
||||||
|
if (INPUT_Nouveau_Mouse_X>=Largeur_ecran)
|
||||||
|
INPUT_Nouveau_Mouse_X=Largeur_ecran-1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
INPUT_Nouveau_Mouse_X++;
|
||||||
|
ok=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if(SDL_JoystickGetButton(joystick,6))
|
||||||
|
{
|
||||||
|
if(INPUT_Nouveau_Mouse_X<Largeur_ecran-1)
|
||||||
|
{
|
||||||
|
if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
|
||||||
|
{
|
||||||
|
INPUT_Nouveau_Mouse_X+=Loupe_Facteur;
|
||||||
|
if (INPUT_Nouveau_Mouse_X>=Largeur_ecran)
|
||||||
|
INPUT_Nouveau_Mouse_X=Largeur_ecran-1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
INPUT_Nouveau_Mouse_X++;
|
||||||
|
ok=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if(SDL_JoystickGetButton(joystick,7))
|
||||||
|
{
|
||||||
|
if(INPUT_Nouveau_Mouse_X<Largeur_ecran-1)
|
||||||
|
{
|
||||||
|
if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
|
||||||
|
{
|
||||||
|
INPUT_Nouveau_Mouse_X+=Loupe_Facteur;
|
||||||
|
if (INPUT_Nouveau_Mouse_X>=Largeur_ecran)
|
||||||
|
INPUT_Nouveau_Mouse_X=Largeur_ecran-1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
INPUT_Nouveau_Mouse_X++;
|
||||||
|
ok=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(INPUT_Nouveau_Mouse_Y!=0)
|
||||||
|
{
|
||||||
|
if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
|
||||||
|
INPUT_Nouveau_Mouse_Y=INPUT_Nouveau_Mouse_Y<Loupe_Facteur?0:INPUT_Nouveau_Mouse_Y-Loupe_Facteur;
|
||||||
|
else
|
||||||
|
INPUT_Nouveau_Mouse_Y--;
|
||||||
|
ok=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ok)
|
||||||
|
{
|
||||||
|
SDL_WarpMouse(
|
||||||
|
INPUT_Nouveau_Mouse_X*Pixel_width,
|
||||||
|
INPUT_Nouveau_Mouse_Y*Pixel_height
|
||||||
|
);
|
||||||
|
Wait_VBL(); // Histoire que ça bouge pas trop vite ...
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
Flush_update();
|
||||||
|
return 0; // Il ne s'est rien passé
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Gestion "avancée" du curseur: interdire la descente du curseur dans le
|
//Gestion "avancée" du curseur: interdire la descente du curseur dans le
|
||||||
|
|||||||
1
global.h
1
global.h
@ -778,4 +778,5 @@ GFX2_GLOBAL fonction_lecteur Lit_pixel_de_sauvegarde;
|
|||||||
* Spécifique à SDL *
|
* Spécifique à SDL *
|
||||||
********************/
|
********************/
|
||||||
GFX2_GLOBAL SDL_Surface * Ecran_SDL;
|
GFX2_GLOBAL SDL_Surface * Ecran_SDL;
|
||||||
|
GFX2_GLOBAL SDL_Joystick* joystick;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
4
main.c
4
main.c
@ -341,7 +341,9 @@ void Initialisation_du_programme(int argc,char * argv[])
|
|||||||
Brouillon_Loupe_Decalage_Y=0;
|
Brouillon_Loupe_Decalage_Y=0;
|
||||||
|
|
||||||
// SDL
|
// SDL
|
||||||
SDL_Init(SDL_INIT_TIMER|SDL_INIT_VIDEO);
|
|
||||||
|
SDL_Init(SDL_INIT_TIMER|SDL_INIT_VIDEO|SDL_INIT_JOYSTICK);
|
||||||
|
joystick = SDL_JoystickOpen(0);
|
||||||
SDL_EnableKeyRepeat(250, 32);
|
SDL_EnableKeyRepeat(250, 32);
|
||||||
SDL_EnableUNICODE(SDL_ENABLE);
|
SDL_EnableUNICODE(SDL_ENABLE);
|
||||||
SDL_WM_SetCaption("GrafX2 beta "POURCENTAGE_VERSION" - USE AT YOUR OWN RISK","GrafX2");
|
SDL_WM_SetCaption("GrafX2 beta "POURCENTAGE_VERSION" - USE AT YOUR OWN RISK","GrafX2");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user