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;
|
||||
|
||||
// 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
|
||||
{
|
||||
Flush_update();
|
||||
return 0; // Il ne s'est rien passé
|
||||
if(SDL_JoystickGetButton(joystick,0))
|
||||
{
|
||||
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
|
||||
|
||||
1
global.h
1
global.h
@ -778,4 +778,5 @@ GFX2_GLOBAL fonction_lecteur Lit_pixel_de_sauvegarde;
|
||||
* Spécifique à SDL *
|
||||
********************/
|
||||
GFX2_GLOBAL SDL_Surface * Ecran_SDL;
|
||||
GFX2_GLOBAL SDL_Joystick* joystick;
|
||||
#endif
|
||||
|
||||
4
main.c
4
main.c
@ -341,7 +341,9 @@ void Initialisation_du_programme(int argc,char * argv[])
|
||||
Brouillon_Loupe_Decalage_Y=0;
|
||||
|
||||
// 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_EnableUNICODE(SDL_ENABLE);
|
||||
SDL_WM_SetCaption("GrafX2 beta "POURCENTAGE_VERSION" - USE AT YOUR OWN RISK","GrafX2");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user