From 8c0475c43ef8d2be698ed5d0de9918f0500505cf Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Mon, 5 Jan 2009 22:00:23 +0000 Subject: [PATCH] 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 --- divers.c | 193 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- global.h | 1 + main.c | 4 +- 3 files changed, 195 insertions(+), 3 deletions(-) diff --git a/divers.c b/divers.c index 666febd2..73953865 100644 --- a/divers.c +++ b/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 Principal_Split) + INPUT_Nouveau_Mouse_Y=INPUT_Nouveau_Mouse_Y 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 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 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 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 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 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 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