Mouse input is now fully working (we can even release a mouse button :) quite useful :))
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@52 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
		
							parent
							
								
									50d60aa753
								
							
						
					
					
						commit
						7240396ae6
					
				
							
								
								
									
										3
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								Makefile
									
									
									
									
									
								
							@ -2,8 +2,9 @@ CC = distcc powerpc-linux-gnu-gcc
 | 
			
		||||
COPT = -Wall -Os -c
 | 
			
		||||
LOPT = -lSDL -o grafx2
 | 
			
		||||
 | 
			
		||||
gfx2 : main.o init.o graph.o sdlscreen.o divers.o special.o boutons.o palette.o aide.o operatio.o loadsave.o readline.o moteur.o files.o op_c.o linux.o op_asm.o
 | 
			
		||||
grafx2 : main.o init.o graph.o sdlscreen.o divers.o special.o boutons.o palette.o aide.o operatio.o loadsave.o readline.o moteur.o files.o op_c.o linux.o op_asm.o
 | 
			
		||||
	$(CC) $(LOPT) main.o graph.o divers.o init.o files.o linux.o loadsave.o boutons.o moteur.o sdlscreen.o aide.o palette.o operatio.o op_c.o readline.o special.o op_asm.o
 | 
			
		||||
	strip grafx2
 | 
			
		||||
 | 
			
		||||
main.o : graph.o const.h struct.h global.h graph.h divers.h init.h boutons.h moteur.h files.h loadsave.h main.c readini.h saveini.h
 | 
			
		||||
	$(CC) $(COPT) main.c
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										119
									
								
								divers.c
									
									
									
									
									
								
							
							
						
						
									
										119
									
								
								divers.c
									
									
									
									
									
								
							@ -130,6 +130,10 @@ void Get_input(void)
 | 
			
		||||
		//Clic sur un des boutons de la souris
 | 
			
		||||
		INPUT_Nouveau_Mouse_K=event.button.button;
 | 
			
		||||
	    break;
 | 
			
		||||
	    case SDL_MOUSEBUTTONUP:
 | 
			
		||||
		//Bouton souris relaché
 | 
			
		||||
		INPUT_Nouveau_Mouse_K=0;
 | 
			
		||||
	    break;
 | 
			
		||||
	    case SDL_KEYDOWN:
 | 
			
		||||
		//Appui sur une touche du clavier
 | 
			
		||||
 | 
			
		||||
@ -226,11 +230,8 @@ void Get_input(void)
 | 
			
		||||
    //Gestion "avancée" du curseur: interdire la descente du curseur dans le
 | 
			
		||||
    //menu lorsqu'on est en train de travailler dans l'image
 | 
			
		||||
 | 
			
		||||
    printf("Taille de la pile des opérations : %d\n",Operation_Taille_pile);
 | 
			
		||||
 | 
			
		||||
    if(Operation_Taille_pile!=0)
 | 
			
		||||
    {
 | 
			
		||||
	puts("dans le if...");
 | 
			
		||||
	byte bl=0;//BL va indiquer si on doit corriger la position du curseur
 | 
			
		||||
 | 
			
		||||
	//Si le curseur ne se trouve plus dans l'image
 | 
			
		||||
@ -240,38 +241,28 @@ void Get_input(void)
 | 
			
		||||
	    bl++;
 | 
			
		||||
	    INPUT_Nouveau_Mouse_Y=Menu_Ordonnee-1; //La ligne !!au-dessus!! du menu
 | 
			
		||||
	}
 | 
			
		||||
	if(Loupe_Mode != 0)
 | 
			
		||||
 | 
			
		||||
	if(Loupe_Mode)
 | 
			
		||||
	{
 | 
			
		||||
/*
 | 
			
		||||
 | 
			
		||||
      mov  ax,INPUT_Nouveau_Mouse_X
 | 
			
		||||
      cmp  Operation_dans_loupe,0
 | 
			
		||||
      jnz  Get_input_X_dans_loupe
 | 
			
		||||
 | 
			
		||||
        mov dx,Principal_Split
 | 
			
		||||
        cmp ax,dx
 | 
			
		||||
        jb  Get_input_Fin_correction_X
 | 
			
		||||
 | 
			
		||||
        dec dx
 | 
			
		||||
        inc bl
 | 
			
		||||
        mov INPUT_Nouveau_Mouse_X,dx
 | 
			
		||||
 | 
			
		||||
      jmp  Get_input_Fin_correction_X
 | 
			
		||||
      Get_input_X_dans_loupe:
 | 
			
		||||
 | 
			
		||||
        mov dx,Principal_X_Zoom
 | 
			
		||||
        cmp ax,dx
 | 
			
		||||
        jae Get_input_Fin_correction_X
 | 
			
		||||
 | 
			
		||||
        inc bl
 | 
			
		||||
        mov INPUT_Nouveau_Mouse_X,dx
 | 
			
		||||
 | 
			
		||||
      Get_input_Fin_correction_X:
 | 
			
		||||
*/
 | 
			
		||||
	    puts("get input: gestion de la loupe non codée !");
 | 
			
		||||
	    if(Operation_dans_loupe==0)
 | 
			
		||||
	    {
 | 
			
		||||
		if(INPUT_Nouveau_Mouse_X>=Principal_Split)
 | 
			
		||||
		{
 | 
			
		||||
		    bl++;
 | 
			
		||||
		    INPUT_Nouveau_Mouse_X=Principal_Split-1;
 | 
			
		||||
		}
 | 
			
		||||
	    }
 | 
			
		||||
	    else
 | 
			
		||||
	    {
 | 
			
		||||
		if(INPUT_Nouveau_Mouse_X<Principal_X_Zoom)
 | 
			
		||||
		{
 | 
			
		||||
		    bl++;
 | 
			
		||||
		    INPUT_Nouveau_Mouse_X=Principal_X_Zoom;
 | 
			
		||||
		}
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (bl!=0)
 | 
			
		||||
	if (bl)
 | 
			
		||||
	{
 | 
			
		||||
	    SDL_WarpMouse(
 | 
			
		||||
		INPUT_Nouveau_Mouse_X<<Mouse_Facteur_de_correction_X,
 | 
			
		||||
@ -282,45 +273,39 @@ void Get_input(void)
 | 
			
		||||
 | 
			
		||||
	if (Touche != 0)
 | 
			
		||||
	{
 | 
			
		||||
      //Enfin, on inhibe les touches (sauf si c'est un changement de couleur
 | 
			
		||||
      //ou de taille de pinceau lors d'une des operations suivantes:
 | 
			
		||||
      //OPERATION_DESSIN_CONTINU, OPERATION_DESSIN_DISCONTINU, OPERATION_SPRAY)
 | 
			
		||||
      /*
 | 
			
		||||
      cmp  Autoriser_changement_de_couleur_pendant_operation,0
 | 
			
		||||
      jz   Get_input_Il_faut_inhiber_les_touches
 | 
			
		||||
	    //Enfin, on inhibe les touches (sauf si c'est un changement de couleur
 | 
			
		||||
	    //ou de taille de pinceau lors d'une des operations suivantes:
 | 
			
		||||
	    //OPERATION_DESSIN_CONTINU, OPERATION_DESSIN_DISCONTINU, OPERATION_SPRAY)
 | 
			
		||||
	    if(Autoriser_changement_de_couleur_pendant_operation)
 | 
			
		||||
	    {
 | 
			
		||||
		//A ce stade là, on sait qu'on est dans une des 3 opérations
 | 
			
		||||
		//supportant le changement de couleur ou de taille de pinceau.
 | 
			
		||||
 | 
			
		||||
      ; A ce stade là, on sait qu'on est dans une des 3 opérations supportant
 | 
			
		||||
      ; le changement de couleur ou de taille de pinceau.
 | 
			
		||||
      cmp  ax,word ptr [Config_Touche+12]
 | 
			
		||||
      je   Get_input_Pas_de_correction
 | 
			
		||||
      cmp  ax,word ptr [Config_Touche+14]
 | 
			
		||||
      je   Get_input_Pas_de_correction
 | 
			
		||||
      cmp  ax,word ptr [Config_Touche+16]
 | 
			
		||||
      je   Get_input_Pas_de_correction
 | 
			
		||||
      cmp  ax,word ptr [Config_Touche+18]
 | 
			
		||||
      je   Get_input_Pas_de_correction
 | 
			
		||||
      cmp  ax,word ptr [Config_Touche+20]
 | 
			
		||||
      je   Get_input_Pas_de_correction
 | 
			
		||||
      cmp  ax,word ptr [Config_Touche+22]
 | 
			
		||||
      je   Get_input_Pas_de_correction
 | 
			
		||||
      cmp  ax,word ptr [Config_Touche+24]
 | 
			
		||||
      je   Get_input_Pas_de_correction
 | 
			
		||||
      cmp  ax,word ptr [Config_Touche+26]
 | 
			
		||||
      je   Get_input_Pas_de_correction
 | 
			
		||||
      cmp  ax,word ptr [Config_Touche+28]
 | 
			
		||||
      je   Get_input_Pas_de_correction
 | 
			
		||||
      cmp  ax,word ptr [Config_Touche+30]
 | 
			
		||||
      je   Get_input_Pas_de_correction
 | 
			
		||||
 | 
			
		||||
      Get_input_Il_faut_inhiber_les_touches:
 | 
			
		||||
      mov  word ptr Touche,0
 | 
			
		||||
 | 
			
		||||
    Get_input_Pas_de_correction:
 | 
			
		||||
*/
 | 
			
		||||
		if(
 | 
			
		||||
		    (Touche != Config_Touche[6]) &&
 | 
			
		||||
		    (Touche != Config_Touche[7]) &&
 | 
			
		||||
		    (Touche != Config_Touche[8]) &&
 | 
			
		||||
		    (Touche != Config_Touche[9]) &&
 | 
			
		||||
		    (Touche != Config_Touche[10]) &&
 | 
			
		||||
		    (Touche != Config_Touche[11]) &&
 | 
			
		||||
		    (Touche != Config_Touche[12]) &&
 | 
			
		||||
		    (Touche != Config_Touche[13]) &&
 | 
			
		||||
		    (Touche != Config_Touche[14]) &&
 | 
			
		||||
		    (Touche != Config_Touche[15])
 | 
			
		||||
		)
 | 
			
		||||
		{
 | 
			
		||||
			Touche=0;
 | 
			
		||||
		}
 | 
			
		||||
	    }
 | 
			
		||||
	    else Touche = 0;
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (INPUT_Nouveau_Mouse_X != Mouse_X || INPUT_Nouveau_Mouse_Y != Mouse_Y || INPUT_Nouveau_Mouse_K != Mouse_K )
 | 
			
		||||
    if (
 | 
			
		||||
	(INPUT_Nouveau_Mouse_X != Mouse_X) ||
 | 
			
		||||
	(INPUT_Nouveau_Mouse_Y != Mouse_Y) ||
 | 
			
		||||
	(INPUT_Nouveau_Mouse_K != Mouse_K)
 | 
			
		||||
    )
 | 
			
		||||
    {
 | 
			
		||||
	Forcer_affichage_curseur=0;
 | 
			
		||||
	Mouse_X=INPUT_Nouveau_Mouse_X;
 | 
			
		||||
 | 
			
		||||
@ -22,11 +22,11 @@ void Demarrer_pile_operation(word Operation_demandee)
 | 
			
		||||
    case OPERATION_ETIRER_BROSSE :
 | 
			
		||||
    case OPERATION_TOURNER_BROSSE:
 | 
			
		||||
      Operation_avant_interruption=Operation_en_cours;
 | 
			
		||||
      // On passe … l'operation demandée
 | 
			
		||||
      // On passe à l'operation demandée
 | 
			
		||||
      Operation_en_cours=Operation_demandee;
 | 
			
		||||
      break;
 | 
			
		||||
    default :
 | 
			
		||||
      // On passe … l'operation demandée
 | 
			
		||||
      // On passe à l'operation demandée
 | 
			
		||||
      Operation_en_cours=Operation_demandee;
 | 
			
		||||
      Operation_avant_interruption=Operation_en_cours;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user