All code ready for mass translation
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@691 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
		
							parent
							
								
									f8c7c6730b
								
							
						
					
					
						commit
						346d940889
					
				
							
								
								
									
										78
									
								
								aide.c
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								aide.c
									
									
									
									
									
								
							@ -233,8 +233,8 @@ void Fenetre_controle(int NumeroControle)
 | 
			
		||||
 | 
			
		||||
void Afficher_aide(void)
 | 
			
		||||
{
 | 
			
		||||
  short  X;                   // Indices d'affichage d'un caractère
 | 
			
		||||
  short  Y;
 | 
			
		||||
  short  x;                   // Indices d'affichage d'un caractère
 | 
			
		||||
  short  y;
 | 
			
		||||
  short  Position_X;          // Parcours de remplissage du buffer de ligne
 | 
			
		||||
  short  Indice_de_ligne;     // 0-15 (16 lignes de textes)
 | 
			
		||||
  short  Indice_de_caractere; // Parcours des caractères d'une ligne
 | 
			
		||||
@ -298,7 +298,7 @@ void Afficher_aide(void)
 | 
			
		||||
      width = width*2;
 | 
			
		||||
 | 
			
		||||
    // Pour chaque ligne dans la fenêtre:
 | 
			
		||||
    for (Y=0;Y<8;Y++)
 | 
			
		||||
    for (y=0;y<8;y++)
 | 
			
		||||
    {
 | 
			
		||||
      Position_X=0;
 | 
			
		||||
      // On crée une nouvelle ligne à splotcher
 | 
			
		||||
@ -332,10 +332,10 @@ void Afficher_aide(void)
 | 
			
		||||
        else
 | 
			
		||||
          char_pixel=&(Fonte_help_norm['!'][0][0]); // Un garde-fou en cas de probleme
 | 
			
		||||
          
 | 
			
		||||
        for (X=0;X<6;X++)
 | 
			
		||||
        for (x=0;x<6;x++)
 | 
			
		||||
          for (Repeat_Menu_Facteur_X=0;Repeat_Menu_Facteur_X<Menu_Facteur_X;Repeat_Menu_Facteur_X++)
 | 
			
		||||
          {
 | 
			
		||||
            byte Couleur = *(char_pixel+X+Y*6);
 | 
			
		||||
            byte Couleur = *(char_pixel+x+y*6);
 | 
			
		||||
            byte Repetition = Pixel_width-1;
 | 
			
		||||
            // Surlignement pour liens
 | 
			
		||||
            if (TypeLigne=='K' && Indice_de_caractere>=Position_lien
 | 
			
		||||
@ -345,7 +345,7 @@ void Afficher_aide(void)
 | 
			
		||||
                Couleur=CM_Blanc;
 | 
			
		||||
              else if (Couleur == CM_Fonce)
 | 
			
		||||
                Couleur=CM_Clair;
 | 
			
		||||
              else if (Y<7)
 | 
			
		||||
              else if (y<7)
 | 
			
		||||
                Couleur=CM_Fonce;
 | 
			
		||||
            }
 | 
			
		||||
            Buffer_de_ligne_horizontale[Position_X++]=Couleur;
 | 
			
		||||
@ -371,12 +371,12 @@ void Afficher_aide(void)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Scroller_aide(T_Bouton_scroller * Scroller)
 | 
			
		||||
void Scroller_aide(T_Bouton_scroller * scroller)
 | 
			
		||||
{
 | 
			
		||||
  Effacer_curseur();
 | 
			
		||||
  Scroller->Position=Position_d_aide_en_cours;
 | 
			
		||||
  Calculer_hauteur_curseur_jauge(Scroller);
 | 
			
		||||
  Fenetre_Dessiner_jauge(Scroller);
 | 
			
		||||
  scroller->Position=Position_d_aide_en_cours;
 | 
			
		||||
  Calculer_hauteur_curseur_jauge(scroller);
 | 
			
		||||
  Fenetre_Dessiner_jauge(scroller);
 | 
			
		||||
  Afficher_aide();
 | 
			
		||||
  Afficher_curseur();
 | 
			
		||||
}
 | 
			
		||||
@ -400,19 +400,19 @@ void Bouton_Aide(void)
 | 
			
		||||
}
 | 
			
		||||
// Ouvre l'ecran d'aide. Passer -1 pour la section par défaut (ou derniere,)
 | 
			
		||||
// Ou un nombre de l'enumération NUMEROS_DE_BOUTONS pour l'aide contextuelle.
 | 
			
		||||
void Fenetre_aide(int Section, const char *Sous_section)
 | 
			
		||||
void Fenetre_aide(int section, const char *Sous_section)
 | 
			
		||||
{
 | 
			
		||||
  short Bouton_clicke;
 | 
			
		||||
  short Nb_lignes;
 | 
			
		||||
  T_Bouton_scroller * Scroller;
 | 
			
		||||
  T_Bouton_scroller * scroller;
 | 
			
		||||
 | 
			
		||||
  if (Section!=-1)
 | 
			
		||||
  if (section!=-1)
 | 
			
		||||
  {
 | 
			
		||||
    Section_d_aide_en_cours = 4 + Section;
 | 
			
		||||
    Section_d_aide_en_cours = 4 + section;
 | 
			
		||||
    Position_d_aide_en_cours = 0;
 | 
			
		||||
  }
 | 
			
		||||
  Nb_lignes=Table_d_aide[Section_d_aide_en_cours].Nombre_de_lignes;
 | 
			
		||||
  if (Section!=-1 && Sous_section!=NULL)
 | 
			
		||||
  if (section!=-1 && Sous_section!=NULL)
 | 
			
		||||
  {
 | 
			
		||||
    int Indice=0;
 | 
			
		||||
    for (Indice=0; Indice<Nb_lignes; Indice++)
 | 
			
		||||
@ -434,7 +434,7 @@ void Fenetre_aide(int Section, const char *Sous_section)
 | 
			
		||||
        Menu_Facteur_X*272,Menu_Facteur_Y*130,CM_Noir);
 | 
			
		||||
 | 
			
		||||
  Fenetre_Definir_bouton_normal(266,153,35,14,"Exit",0,1,TOUCHE_ESC); // 1
 | 
			
		||||
  Scroller=Fenetre_Definir_bouton_scroller(290,18,130,Nb_lignes,
 | 
			
		||||
  scroller=Fenetre_Definir_bouton_scroller(290,18,130,Nb_lignes,
 | 
			
		||||
                                  16,Position_d_aide_en_cours);   // 2
 | 
			
		||||
 | 
			
		||||
  Fenetre_Definir_bouton_normal(  9,154, 6*8,14,"About"  ,1,1,SDLK_a); // 3
 | 
			
		||||
@ -492,10 +492,10 @@ void Fenetre_aide(int Section, const char *Sous_section)
 | 
			
		||||
          Section_d_aide_en_cours=Bouton_clicke-3;
 | 
			
		||||
          Position_d_aide_en_cours=0;
 | 
			
		||||
          Nb_lignes=Table_d_aide[Section_d_aide_en_cours].Nombre_de_lignes;
 | 
			
		||||
          Scroller->Position=0;
 | 
			
		||||
          Scroller->Nb_elements=Nb_lignes;
 | 
			
		||||
          Calculer_hauteur_curseur_jauge(Scroller);
 | 
			
		||||
          Fenetre_Dessiner_jauge(Scroller);
 | 
			
		||||
          scroller->Position=0;
 | 
			
		||||
          scroller->Nb_elements=Nb_lignes;
 | 
			
		||||
          Calculer_hauteur_curseur_jauge(scroller);
 | 
			
		||||
          Fenetre_Dessiner_jauge(scroller);
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
          Position_d_aide_en_cours=Fenetre_Attribut2;
 | 
			
		||||
@ -511,13 +511,13 @@ void Fenetre_aide(int Section, const char *Sous_section)
 | 
			
		||||
      case SDLK_UP : // Haut
 | 
			
		||||
        if (Position_d_aide_en_cours>0)
 | 
			
		||||
          Position_d_aide_en_cours--;
 | 
			
		||||
        Scroller_aide(Scroller);
 | 
			
		||||
        Scroller_aide(scroller);
 | 
			
		||||
        Touche=0;
 | 
			
		||||
        break;
 | 
			
		||||
      case SDLK_DOWN : // Bas
 | 
			
		||||
        if (Position_d_aide_en_cours<Nb_lignes-16)
 | 
			
		||||
          Position_d_aide_en_cours++;
 | 
			
		||||
        Scroller_aide(Scroller);
 | 
			
		||||
        Scroller_aide(scroller);
 | 
			
		||||
        Touche=0;
 | 
			
		||||
        break;
 | 
			
		||||
      case SDLK_PAGEUP : // PageUp
 | 
			
		||||
@ -525,7 +525,7 @@ void Fenetre_aide(int Section, const char *Sous_section)
 | 
			
		||||
          Position_d_aide_en_cours-=15;
 | 
			
		||||
        else
 | 
			
		||||
          Position_d_aide_en_cours=0;
 | 
			
		||||
        Scroller_aide(Scroller);
 | 
			
		||||
        Scroller_aide(scroller);
 | 
			
		||||
        Touche=0;
 | 
			
		||||
        break;
 | 
			
		||||
      case (TOUCHE_MOUSEWHEELUP) : // WheelUp
 | 
			
		||||
@ -533,7 +533,7 @@ void Fenetre_aide(int Section, const char *Sous_section)
 | 
			
		||||
          Position_d_aide_en_cours-=3;
 | 
			
		||||
        else
 | 
			
		||||
          Position_d_aide_en_cours=0;
 | 
			
		||||
        Scroller_aide(Scroller);
 | 
			
		||||
        Scroller_aide(scroller);
 | 
			
		||||
        Touche=0;
 | 
			
		||||
        break;
 | 
			
		||||
      case SDLK_PAGEDOWN : // PageDown
 | 
			
		||||
@ -543,7 +543,7 @@ void Fenetre_aide(int Section, const char *Sous_section)
 | 
			
		||||
            Position_d_aide_en_cours+=15;
 | 
			
		||||
          else
 | 
			
		||||
            Position_d_aide_en_cours=Nb_lignes-16;
 | 
			
		||||
          Scroller_aide(Scroller);
 | 
			
		||||
          Scroller_aide(scroller);
 | 
			
		||||
          Touche=0;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
@ -554,20 +554,20 @@ void Fenetre_aide(int Section, const char *Sous_section)
 | 
			
		||||
            Position_d_aide_en_cours+=3;
 | 
			
		||||
          else
 | 
			
		||||
            Position_d_aide_en_cours=Nb_lignes-16;
 | 
			
		||||
          Scroller_aide(Scroller);
 | 
			
		||||
          Scroller_aide(scroller);
 | 
			
		||||
          Touche=0;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
      case SDLK_HOME : // Home
 | 
			
		||||
        Position_d_aide_en_cours=0;
 | 
			
		||||
        Scroller_aide(Scroller);
 | 
			
		||||
        Scroller_aide(scroller);
 | 
			
		||||
        Touche=0;
 | 
			
		||||
        break;
 | 
			
		||||
      case SDLK_END : // End
 | 
			
		||||
      if (Nb_lignes>16)
 | 
			
		||||
      {
 | 
			
		||||
        Position_d_aide_en_cours=Nb_lignes-16;
 | 
			
		||||
        Scroller_aide(Scroller);
 | 
			
		||||
        Scroller_aide(scroller);
 | 
			
		||||
        Touche=0;
 | 
			
		||||
      }
 | 
			
		||||
        break;
 | 
			
		||||
@ -591,7 +591,7 @@ void Bouton_Stats(void)
 | 
			
		||||
  char  Buffer[37];
 | 
			
		||||
  dword Utilisation_couleur[256];
 | 
			
		||||
  unsigned long long freeRam;
 | 
			
		||||
  qword Taille = 0;
 | 
			
		||||
  qword mem_size = 0;
 | 
			
		||||
 | 
			
		||||
  Ouvrir_fenetre(310,174,"Statistics");
 | 
			
		||||
 | 
			
		||||
@ -636,29 +636,29 @@ void Bouton_Stats(void)
 | 
			
		||||
    {
 | 
			
		||||
      ULARGE_INTEGER tailleU;
 | 
			
		||||
      GetDiskFreeSpaceEx(Principal_Repertoire_courant,&tailleU,NULL,NULL);
 | 
			
		||||
      Taille = tailleU.QuadPart;
 | 
			
		||||
      mem_size = tailleU.QuadPart;
 | 
			
		||||
    }
 | 
			
		||||
#elif defined(__linux__) || defined(__macosx__) || defined(__FreeBSD__)
 | 
			
		||||
    // Note: under MacOSX, both macros are defined anyway.
 | 
			
		||||
    {
 | 
			
		||||
      struct statfs Informations_Disque;
 | 
			
		||||
      statfs(Principal_Repertoire_courant,&Informations_Disque);
 | 
			
		||||
      Taille=(qword) Informations_Disque.f_bfree * (qword) Informations_Disque.f_bsize;
 | 
			
		||||
      mem_size=(qword) Informations_Disque.f_bfree * (qword) Informations_Disque.f_bsize;
 | 
			
		||||
    }
 | 
			
		||||
#else
 | 
			
		||||
    // Free disk space is only for shows. Other platforms can display 0.
 | 
			
		||||
    #warning "Missing code for your platform !!! Check and correct please :)"
 | 
			
		||||
    Taille=0;
 | 
			
		||||
    mem_size=0;
 | 
			
		||||
#endif
 | 
			
		||||
  
 | 
			
		||||
    if(Taille > (100ULL*1024*1024*1024))
 | 
			
		||||
        sprintf(Buffer,"%u Gigabytes",(unsigned int)(Taille/(1024*1024*1024)));
 | 
			
		||||
    else if(Taille > (100*1024*1024))
 | 
			
		||||
        sprintf(Buffer,"%u Megabytes",(unsigned int)(Taille/(1024*1024)));
 | 
			
		||||
    else if(Taille > (100*1024))
 | 
			
		||||
        sprintf(Buffer,"%u Kilobytes",(unsigned int)(Taille/1024));
 | 
			
		||||
    if(mem_size > (100ULL*1024*1024*1024))
 | 
			
		||||
        sprintf(Buffer,"%u Gigabytes",(unsigned int)(mem_size/(1024*1024*1024)));
 | 
			
		||||
    else if(mem_size > (100*1024*1024))
 | 
			
		||||
        sprintf(Buffer,"%u Megabytes",(unsigned int)(mem_size/(1024*1024)));
 | 
			
		||||
    else if(mem_size > (100*1024))
 | 
			
		||||
        sprintf(Buffer,"%u Kilobytes",(unsigned int)(mem_size/1024));
 | 
			
		||||
    else 
 | 
			
		||||
        sprintf(Buffer,"%u bytes",(unsigned int)Taille);
 | 
			
		||||
        sprintf(Buffer,"%u bytes",(unsigned int)mem_size);
 | 
			
		||||
    Print_dans_fenetre(146,67,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
 | 
			
		||||
 | 
			
		||||
  // Affichage des informations sur l'image
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								aide.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								aide.h
									
									
									
									
									
								
							@ -36,10 +36,10 @@ void Bouton_Stats(void);
 | 
			
		||||
 | 
			
		||||
/*!
 | 
			
		||||
    Displays and runs the "Help / About..." window
 | 
			
		||||
    @param Section Number of the help section page to display (equals the button number the mouse was hovering for the contextual help), -1 for the main help page.
 | 
			
		||||
    @param section Number of the help section page to display (equals the button number the mouse was hovering for the contextual help), -1 for the main help page.
 | 
			
		||||
    @param Sous_section Help sub-section title (the page will be scrolled so this title is at the top).
 | 
			
		||||
*/
 | 
			
		||||
void Fenetre_aide(int Section, const char * Sous_section);
 | 
			
		||||
void Fenetre_aide(int section, const char * Sous_section);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										100
									
								
								boutons.c
									
									
									
									
									
								
							
							
						
						
									
										100
									
								
								boutons.c
									
									
									
									
									
								
							@ -54,7 +54,7 @@
 | 
			
		||||
 | 
			
		||||
#define FILENAMESPACE 13
 | 
			
		||||
 | 
			
		||||
#define Display_Window(X,Y) UpdateRect(Fenetre_Pos_X,Fenetre_Pos_Y,X*Menu_Facteur_X,Y*Menu_Facteur_Y);
 | 
			
		||||
#define Display_Window(x,y) UpdateRect(Fenetre_Pos_X,Fenetre_Pos_Y,(x)*Menu_Facteur_X,(y)*Menu_Facteur_Y);
 | 
			
		||||
 | 
			
		||||
extern short Old_MX;
 | 
			
		||||
extern short Old_MY;
 | 
			
		||||
@ -148,7 +148,7 @@ void Message_Memoire_insuffisante(void)
 | 
			
		||||
void Bouton_Message_initial(void)
 | 
			
		||||
{
 | 
			
		||||
  char  Chaine[21];
 | 
			
		||||
  int   x_pos,Offs_Y,X,Y;
 | 
			
		||||
  int   x_pos,Offs_Y,x,y;
 | 
			
		||||
 | 
			
		||||
  sprintf(Chaine,"GrafX %d.%.2d%s%s",VERSION1, VERSION2, ALPHA_BETA,POURCENTAGE_VERSION);
 | 
			
		||||
  Ouvrir_fenetre(260,172,Chaine);
 | 
			
		||||
@ -157,9 +157,9 @@ void Bouton_Message_initial(void)
 | 
			
		||||
  Block(Fenetre_Pos_X+(Menu_Facteur_X*11),
 | 
			
		||||
        Fenetre_Pos_Y+(Menu_Facteur_Y*21),
 | 
			
		||||
        Menu_Facteur_X*237,Menu_Facteur_Y*60,CM_Noir);
 | 
			
		||||
  for (Y=23,Offs_Y=0; Y<79; Offs_Y+=231,Y++)
 | 
			
		||||
    for (X=14,x_pos=0; x_pos<231; x_pos++,X++)
 | 
			
		||||
      Pixel_dans_fenetre(X,Y,Logo_GrafX2[Offs_Y+x_pos]);
 | 
			
		||||
  for (y=23,Offs_Y=0; y<79; Offs_Y+=231,y++)
 | 
			
		||||
    for (x=14,x_pos=0; x_pos<231; x_pos++,x++)
 | 
			
		||||
      Pixel_dans_fenetre(x,y,Logo_GrafX2[Offs_Y+x_pos]);
 | 
			
		||||
 | 
			
		||||
  Print_dans_fenetre(130-4*21,88,"Copyright (c) 2007 by",CM_Fonce,CM_Clair);
 | 
			
		||||
  Print_dans_fenetre(130-4*23,96,"the Grafx2 project team",CM_Noir,CM_Clair);
 | 
			
		||||
@ -337,7 +337,7 @@ void Bouton_Choix_backcolor(void)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//---------------------- Cacher ou réafficher le menu ------------------------
 | 
			
		||||
void Pixel_dans_barre_d_outil_cachee(__attribute__((unused)) word X,__attribute__((unused)) word Y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
void Pixel_dans_barre_d_outil_cachee(__attribute__((unused)) word x,__attribute__((unused)) word y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  // C'est fait exprès que ce soit vide...
 | 
			
		||||
  // C'est parce que y'a rien du tout à afficher vu que la barre d'outil est
 | 
			
		||||
@ -529,7 +529,7 @@ void Bouton_Clear_colore(void)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
//---------- Menu dans lequel on tagge des couleurs (genre Stencil) ----------
 | 
			
		||||
void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * mode, byte can_cancel, const char *Section_aide)
 | 
			
		||||
void Menu_Tag_couleurs(char * En_tete, byte * table, byte * mode, byte can_cancel, const char *Section_aide)
 | 
			
		||||
{
 | 
			
		||||
  short Bouton_clicke;
 | 
			
		||||
  byte Backup_table[256];
 | 
			
		||||
@ -552,14 +552,14 @@ void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * mode, byte can_cance
 | 
			
		||||
    Fenetre_Definir_bouton_normal(91,129,78,14,"OK"    ,0,1,SDLK_RETURN); // 4
 | 
			
		||||
    Fenetre_Definir_bouton_normal( 7,129,78,14,"Cancel",0,1,TOUCHE_ESC);  // 5
 | 
			
		||||
    // On enregistre la table dans un backup au cas où on ferait Cancel
 | 
			
		||||
    memcpy(Backup_table,Table,256);
 | 
			
		||||
    memcpy(Backup_table,table,256);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
    Fenetre_Definir_bouton_normal(49,129,78,14,"OK"    ,0,1,SDLK_RETURN); // 4
 | 
			
		||||
 | 
			
		||||
  // On affiche l'état actuel de la table
 | 
			
		||||
  for (Indice=0; Indice<=255; Indice++)
 | 
			
		||||
    Stencil_Tagger_couleur(Indice, (Table[Indice])?CM_Noir:CM_Clair);
 | 
			
		||||
    Stencil_Tagger_couleur(Indice, (table[Indice])?CM_Noir:CM_Clair);
 | 
			
		||||
 | 
			
		||||
  Display_Window(176,150);
 | 
			
		||||
  Afficher_curseur();
 | 
			
		||||
@ -582,14 +582,14 @@ void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * mode, byte can_cance
 | 
			
		||||
        {
 | 
			
		||||
          Effacer_curseur();
 | 
			
		||||
          Couleur_taggee=(Bouton_clicke==1) ? Fenetre_Attribut2 : Lit_pixel(Mouse_X,Mouse_Y);
 | 
			
		||||
          Table[Couleur_taggee]=(Mouse_K==A_GAUCHE);
 | 
			
		||||
          table[Couleur_taggee]=(Mouse_K==A_GAUCHE);
 | 
			
		||||
          Stencil_Tagger_couleur(Couleur_taggee,(Mouse_K==A_GAUCHE)?CM_Noir:CM_Clair);
 | 
			
		||||
          Afficher_curseur();
 | 
			
		||||
          Stencil_Actualiser_couleur(Couleur_taggee);
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
      case  2 : // Clear
 | 
			
		||||
        memset(Table,0,256);
 | 
			
		||||
        memset(table,0,256);
 | 
			
		||||
        Effacer_curseur();
 | 
			
		||||
        for (Indice=0; Indice<=255; Indice++)
 | 
			
		||||
          Stencil_Tagger_couleur(Indice,CM_Clair);
 | 
			
		||||
@ -599,7 +599,7 @@ void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * mode, byte can_cance
 | 
			
		||||
      case  3 : // Invert
 | 
			
		||||
        Effacer_curseur();
 | 
			
		||||
        for (Indice=0; Indice<=255; Indice++)
 | 
			
		||||
          Stencil_Tagger_couleur(Indice,(Table[Indice]^=1)?CM_Noir:CM_Clair);
 | 
			
		||||
          Stencil_Tagger_couleur(Indice,(table[Indice]^=1)?CM_Noir:CM_Clair);
 | 
			
		||||
        Afficher_curseur();
 | 
			
		||||
        Display_Window(Fenetre_Largeur, Fenetre_Hauteur);
 | 
			
		||||
    }
 | 
			
		||||
@ -614,7 +614,7 @@ void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * mode, byte can_cance
 | 
			
		||||
        {
 | 
			
		||||
          Effacer_curseur();
 | 
			
		||||
          Couleur_taggee=Couleur;
 | 
			
		||||
          Table[Couleur_taggee]=(click==A_GAUCHE);
 | 
			
		||||
          table[Couleur_taggee]=(click==A_GAUCHE);
 | 
			
		||||
          Stencil_Tagger_couleur(Couleur_taggee,(click==A_GAUCHE)?CM_Noir:CM_Clair);
 | 
			
		||||
          Stencil_Actualiser_couleur(Couleur_taggee);
 | 
			
		||||
          Afficher_curseur();
 | 
			
		||||
@ -636,7 +636,7 @@ void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * mode, byte can_cance
 | 
			
		||||
  Fermer_fenetre();
 | 
			
		||||
 | 
			
		||||
  if (Bouton_clicke==5) // Cancel
 | 
			
		||||
    memcpy(Table,Backup_table,256);
 | 
			
		||||
    memcpy(table,Backup_table,256);
 | 
			
		||||
  else // OK
 | 
			
		||||
    *mode=1;
 | 
			
		||||
 | 
			
		||||
@ -1278,7 +1278,7 @@ void Afficher_liste_modes(short Debut_liste, short Position_curseur)
 | 
			
		||||
  short y_pos;
 | 
			
		||||
  byte  Couleur_texte,Couleur_fond;
 | 
			
		||||
  char Chaine[29];
 | 
			
		||||
  char *Ratio;
 | 
			
		||||
  char *ratio;
 | 
			
		||||
 | 
			
		||||
  for (Mode_courant=Debut_liste,Indice=0; Indice<12 && Mode_courant < Nb_modes_video ; Indice++,Mode_courant++)
 | 
			
		||||
  {
 | 
			
		||||
@ -1311,27 +1311,27 @@ void Afficher_liste_modes(short Debut_liste, short Position_curseur)
 | 
			
		||||
      memcpy(Chaine+9,"   Window   ",13);
 | 
			
		||||
 | 
			
		||||
    if (Mode_video[Mode_courant].Width*3 == Mode_video[Mode_courant].Height*4)
 | 
			
		||||
      Ratio="    4:3";
 | 
			
		||||
      ratio="    4:3";
 | 
			
		||||
    else if (Mode_video[Mode_courant].Width*9 == Mode_video[Mode_courant].Height*16)
 | 
			
		||||
      Ratio="   16:9";
 | 
			
		||||
      ratio="   16:9";
 | 
			
		||||
    else if (Mode_video[Mode_courant].Width*10 == Mode_video[Mode_courant].Height*16)
 | 
			
		||||
      Ratio="  16:10";
 | 
			
		||||
      ratio="  16:10";
 | 
			
		||||
    else if (Mode_video[Mode_courant].Width*145 == Mode_video[Mode_courant].Height*192)
 | 
			
		||||
      Ratio="192:145";
 | 
			
		||||
      ratio="192:145";
 | 
			
		||||
    else if (Mode_video[Mode_courant].Width*2 == Mode_video[Mode_courant].Height*3)
 | 
			
		||||
      Ratio="    3:2";
 | 
			
		||||
      ratio="    3:2";
 | 
			
		||||
    else if (Mode_video[Mode_courant].Width*3 == Mode_video[Mode_courant].Height*5)
 | 
			
		||||
      Ratio="    5:3";
 | 
			
		||||
      ratio="    5:3";
 | 
			
		||||
    else if (Mode_video[Mode_courant].Width*4 == Mode_video[Mode_courant].Height*5)
 | 
			
		||||
      Ratio="    5:4";
 | 
			
		||||
      ratio="    5:4";
 | 
			
		||||
    else if (Mode_video[Mode_courant].Width*16 == Mode_video[Mode_courant].Height*25)
 | 
			
		||||
      Ratio="  25:16";
 | 
			
		||||
      ratio="  25:16";
 | 
			
		||||
    else
 | 
			
		||||
      Ratio="       ";
 | 
			
		||||
      ratio="       ";
 | 
			
		||||
    if (Mode_courant == 0)
 | 
			
		||||
      Ratio="       ";
 | 
			
		||||
      ratio="       ";
 | 
			
		||||
 | 
			
		||||
    strcat(Chaine,Ratio);
 | 
			
		||||
    strcat(Chaine,ratio);
 | 
			
		||||
 | 
			
		||||
    Print_dans_fenetre(38,y_pos,Chaine,Couleur_texte,Couleur_fond);
 | 
			
		||||
  }
 | 
			
		||||
@ -1768,7 +1768,7 @@ void Bouton_Ellipse_pleine(void)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// -- Gestion du menu des dégradés ------------------------------------------
 | 
			
		||||
void Degrade_Dessiner_bouton_de_technique(short x_pos,short y_pos,int Technique)
 | 
			
		||||
void Degrade_Dessiner_bouton_de_technique(short x_pos,short y_pos,int technique)
 | 
			
		||||
{
 | 
			
		||||
  short line;
 | 
			
		||||
 | 
			
		||||
@ -1784,7 +1784,7 @@ void Degrade_Dessiner_bouton_de_technique(short x_pos,short y_pos,int Technique)
 | 
			
		||||
        Menu_Facteur_X*5,
 | 
			
		||||
        Menu_Facteur_Y*10,CM_Blanc);
 | 
			
		||||
 | 
			
		||||
  switch(Technique)
 | 
			
		||||
  switch(technique)
 | 
			
		||||
  {
 | 
			
		||||
    case 1 : // Dégradé de trames simples
 | 
			
		||||
      // Au centre, on place 10 lignes tramées simplement
 | 
			
		||||
@ -4361,7 +4361,7 @@ byte Smooth_Matrice_defaut[4][3][3]=
 | 
			
		||||
void Bouton_Smooth_Menu(void)
 | 
			
		||||
{
 | 
			
		||||
  short Bouton_clicke;
 | 
			
		||||
  short X,Y,i,j;
 | 
			
		||||
  short x,y,i,j;
 | 
			
		||||
  byte  Matrice_choisie[3][3];
 | 
			
		||||
  T_Bouton_special * Matrice_Zone_saisie[3][3];
 | 
			
		||||
  char  Chaine[3];
 | 
			
		||||
@ -4372,12 +4372,12 @@ void Bouton_Smooth_Menu(void)
 | 
			
		||||
  Fenetre_Definir_bouton_normal(82,88,53,14,"OK"    ,0,1,SDLK_RETURN); // 2
 | 
			
		||||
 | 
			
		||||
  Fenetre_Afficher_cadre(6,17,130,37);
 | 
			
		||||
  for (X=11,Y=0; Y<4; X+=31,Y++)
 | 
			
		||||
  for (x=11,y=0; y<4; x+=31,y++)
 | 
			
		||||
  {
 | 
			
		||||
    Fenetre_Definir_bouton_normal(X,22,27,27,"",0,1,SDLK_LAST);      // 3,4,5,6
 | 
			
		||||
    Fenetre_Definir_bouton_normal(x,22,27,27,"",0,1,SDLK_LAST);      // 3,4,5,6
 | 
			
		||||
    for (j=0; j<3; j++)
 | 
			
		||||
      for (i=0; i<3; i++)
 | 
			
		||||
        Print_char_dans_fenetre(X+2+(i<<3),24+(j<<3),'0'+Smooth_Matrice_defaut[Y][i][j],CM_Noir,CM_Clair);
 | 
			
		||||
        Print_char_dans_fenetre(x+2+(i<<3),24+(j<<3),'0'+Smooth_Matrice_defaut[y][i][j],CM_Noir,CM_Clair);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Fenetre_Afficher_cadre(6,58, 69,45);
 | 
			
		||||
@ -4412,12 +4412,12 @@ void Bouton_Smooth_Menu(void)
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
      {
 | 
			
		||||
        i=Bouton_clicke-7; X=i%3; Y=i/3;
 | 
			
		||||
        Num2str(Matrice_choisie[X][Y],Chaine,2);
 | 
			
		||||
        Readline(Matrice_Zone_saisie[X][Y]->Pos_X+2,
 | 
			
		||||
                 Matrice_Zone_saisie[X][Y]->Pos_Y+2,
 | 
			
		||||
        i=Bouton_clicke-7; x=i%3; y=i/3;
 | 
			
		||||
        Num2str(Matrice_choisie[x][y],Chaine,2);
 | 
			
		||||
        Readline(Matrice_Zone_saisie[x][y]->Pos_X+2,
 | 
			
		||||
                 Matrice_Zone_saisie[x][y]->Pos_Y+2,
 | 
			
		||||
                 Chaine,2,1);
 | 
			
		||||
        Matrice_choisie[X][Y]=atoi(Chaine);
 | 
			
		||||
        Matrice_choisie[x][y]=atoi(Chaine);
 | 
			
		||||
        Afficher_curseur();
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
@ -5184,9 +5184,9 @@ void Inverser_trame(void)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Rafraichit toute la zone correspondant à la trame zoomee.
 | 
			
		||||
void Mettre_a_jour_trame(short X, short Y)
 | 
			
		||||
void Mettre_a_jour_trame(short x, short y)
 | 
			
		||||
{
 | 
			
		||||
  UpdateRect(X,Y,80*Menu_Facteur_X,80*Menu_Facteur_Y);
 | 
			
		||||
  UpdateRect(x,y,80*Menu_Facteur_X,80*Menu_Facteur_Y);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5592,26 +5592,26 @@ void Bouton_Ajuster(void)
 | 
			
		||||
 | 
			
		||||
void Afficher_sprite_effet(short Numero_sprite, short Debut_X, short Debut_Y)
 | 
			
		||||
{
 | 
			
		||||
  short X,Y,x_pos,y_pos;
 | 
			
		||||
  short x,y,x_pos,y_pos;
 | 
			
		||||
 | 
			
		||||
  for (Y=0,y_pos=Debut_Y;Y<HAUTEUR_SPRITE_MENU;Y++,y_pos++)
 | 
			
		||||
    for (X=0,x_pos=Debut_X;X<LARGEUR_SPRITE_MENU;X++,x_pos++)
 | 
			
		||||
      Pixel_dans_fenetre(x_pos,y_pos,SPRITE_EFFET[Numero_sprite][Y][X]);
 | 
			
		||||
  for (y=0,y_pos=Debut_Y;y<HAUTEUR_SPRITE_MENU;y++,y_pos++)
 | 
			
		||||
    for (x=0,x_pos=Debut_X;x<LARGEUR_SPRITE_MENU;x++,x_pos++)
 | 
			
		||||
      Pixel_dans_fenetre(x_pos,y_pos,SPRITE_EFFET[Numero_sprite][y][x]);
 | 
			
		||||
 | 
			
		||||
  UpdateRect(ToWinX(Debut_X),ToWinY(Debut_Y),LARGEUR_SPRITE_MENU*Menu_Facteur_X,HAUTEUR_SPRITE_MENU*Menu_Facteur_Y);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Afficher_etat_effet(short X, short Y, char * label, byte state)
 | 
			
		||||
void Afficher_etat_effet(short x, short y, char * label, byte state)
 | 
			
		||||
{
 | 
			
		||||
  Block(Fenetre_Pos_X+(X*Menu_Facteur_X),Fenetre_Pos_Y+(Y*Menu_Facteur_Y),
 | 
			
		||||
  Block(Fenetre_Pos_X+(x*Menu_Facteur_X),Fenetre_Pos_Y+(y*Menu_Facteur_Y),
 | 
			
		||||
        12*Menu_Facteur_X,Menu_Facteur_Y<<3,CM_Clair);
 | 
			
		||||
 | 
			
		||||
  Print_dans_fenetre(X,Y,label,(state)?CM_Blanc:CM_Noir,CM_Clair);
 | 
			
		||||
  Print_dans_fenetre(x,y,label,(state)?CM_Blanc:CM_Noir,CM_Clair);
 | 
			
		||||
  if (state)
 | 
			
		||||
    Print_dans_fenetre(X+56,Y,":ON ",CM_Blanc,CM_Clair);
 | 
			
		||||
    Print_dans_fenetre(x+56,y,":ON ",CM_Blanc,CM_Clair);
 | 
			
		||||
  else
 | 
			
		||||
    Print_dans_fenetre(X+56,Y,":OFF",CM_Noir,CM_Clair);
 | 
			
		||||
    Print_dans_fenetre(x+56,y,":OFF",CM_Noir,CM_Clair);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Afficher_etat_effets(void)
 | 
			
		||||
@ -5920,12 +5920,12 @@ void Bouton_Effets(void)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Affiche tout le selecteur de fontes
 | 
			
		||||
void Dessiner_selecteur_fontes(short X, short Y, short Debut_liste, short Position_curseur, short Nombre_visibles)
 | 
			
		||||
void Dessiner_selecteur_fontes(short x, short y, short Debut_liste, short Position_curseur, short Nombre_visibles)
 | 
			
		||||
{
 | 
			
		||||
  int Indice;
 | 
			
		||||
  for (Indice=0; Indice < Nombre_visibles; Indice++)
 | 
			
		||||
  {
 | 
			
		||||
    Print_dans_fenetre(X,Y+Indice*8,Libelle_fonte(Indice+Debut_liste), CM_Noir, (Position_curseur==Indice)?CM_Fonce:CM_Clair);
 | 
			
		||||
    Print_dans_fenetre(x,y+Indice*8,Libelle_fonte(Indice+Debut_liste), CM_Noir, (Position_curseur==Indice)?CM_Fonce:CM_Clair);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -622,7 +622,7 @@ void Save_picture(byte image);
 | 
			
		||||
/*!
 | 
			
		||||
    Generic color tagging menu, for various effects.
 | 
			
		||||
*/
 | 
			
		||||
void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * mode, byte can_cancel, const char *Section_aide);
 | 
			
		||||
void Menu_Tag_couleurs(char * En_tete, byte * table, byte * mode, byte can_cancel, const char *Section_aide);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*!
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										166
									
								
								brush.c
									
									
									
									
									
								
							
							
						
						
									
										166
									
								
								brush.c
									
									
									
									
									
								
							@ -37,64 +37,64 @@
 | 
			
		||||
 | 
			
		||||
// Calcul de redimensionnement du pinceau pour éviter les débordements de
 | 
			
		||||
// l'écran et de l'image
 | 
			
		||||
void Calculer_dimensions_clipees(short * X,short * Y,short * width,short * height)
 | 
			
		||||
void Calculer_dimensions_clipees(short * x,short * y,short * width,short * height)
 | 
			
		||||
{
 | 
			
		||||
  if ((*X)<Limite_Gauche)
 | 
			
		||||
  if ((*x)<Limite_Gauche)
 | 
			
		||||
  {
 | 
			
		||||
    (*width)-=(Limite_Gauche-(*X));
 | 
			
		||||
    (*X)=Limite_Gauche;
 | 
			
		||||
    (*width)-=(Limite_Gauche-(*x));
 | 
			
		||||
    (*x)=Limite_Gauche;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (((*X)+(*width))>(Limite_Droite+1))
 | 
			
		||||
  if (((*x)+(*width))>(Limite_Droite+1))
 | 
			
		||||
  {
 | 
			
		||||
    (*width)=(Limite_Droite-(*X))+1;
 | 
			
		||||
    (*width)=(Limite_Droite-(*x))+1;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if ((*Y)<Limite_Haut)
 | 
			
		||||
  if ((*y)<Limite_Haut)
 | 
			
		||||
  {
 | 
			
		||||
    (*height)-=(Limite_Haut-(*Y));
 | 
			
		||||
    (*Y)=Limite_Haut;
 | 
			
		||||
    (*height)-=(Limite_Haut-(*y));
 | 
			
		||||
    (*y)=Limite_Haut;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (((*Y)+(*height))>(Limite_Bas+1))
 | 
			
		||||
  if (((*y)+(*height))>(Limite_Bas+1))
 | 
			
		||||
  {
 | 
			
		||||
    (*height)=(Limite_Bas-(*Y))+1;
 | 
			
		||||
    (*height)=(Limite_Bas-(*y))+1;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // -- Calcul de redimensionnement du pinceau pour éviter les débordements
 | 
			
		||||
  //    de l'écran zoomé et de l'image --
 | 
			
		||||
 | 
			
		||||
void Calculer_dimensions_clipees_zoom(short * X,short * Y,short * width,short * height)
 | 
			
		||||
void Calculer_dimensions_clipees_zoom(short * x,short * y,short * width,short * height)
 | 
			
		||||
{
 | 
			
		||||
  if ((*X)<Limite_Gauche_Zoom)
 | 
			
		||||
  if ((*x)<Limite_Gauche_Zoom)
 | 
			
		||||
  {
 | 
			
		||||
    (*width)-=(Limite_Gauche_Zoom-(*X));
 | 
			
		||||
    (*X)=Limite_Gauche_Zoom;
 | 
			
		||||
    (*width)-=(Limite_Gauche_Zoom-(*x));
 | 
			
		||||
    (*x)=Limite_Gauche_Zoom;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (((*X)+(*width))>(Limite_Droite_Zoom+1))
 | 
			
		||||
  if (((*x)+(*width))>(Limite_Droite_Zoom+1))
 | 
			
		||||
  {
 | 
			
		||||
    (*width)=(Limite_Droite_Zoom-(*X))+1;
 | 
			
		||||
    (*width)=(Limite_Droite_Zoom-(*x))+1;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if ((*Y)<Limite_Haut_Zoom)
 | 
			
		||||
  if ((*y)<Limite_Haut_Zoom)
 | 
			
		||||
  {
 | 
			
		||||
    (*height)-=(Limite_Haut_Zoom-(*Y));
 | 
			
		||||
    (*Y)=Limite_Haut_Zoom;
 | 
			
		||||
    (*height)-=(Limite_Haut_Zoom-(*y));
 | 
			
		||||
    (*y)=Limite_Haut_Zoom;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (((*Y)+(*height))>(Limite_Bas_Zoom+1))
 | 
			
		||||
  if (((*y)+(*height))>(Limite_Bas_Zoom+1))
 | 
			
		||||
  {
 | 
			
		||||
    (*height)=(Limite_Bas_Zoom-(*Y))+1;
 | 
			
		||||
    (*height)=(Limite_Bas_Zoom-(*y))+1;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  // -- Afficher le pinceau (de façon définitive ou non) --
 | 
			
		||||
 | 
			
		||||
void Afficher_pinceau(short X,short Y,byte Couleur,byte is_preview)
 | 
			
		||||
  // X,Y: position du centre du pinceau
 | 
			
		||||
void Afficher_pinceau(short x,short y,byte Couleur,byte is_preview)
 | 
			
		||||
  // x,y: position du centre du pinceau
 | 
			
		||||
  // Couleur: couleur à appliquer au pinceau
 | 
			
		||||
  // is_preview: "Il ne faut l'afficher qu'à l'écran"
 | 
			
		||||
{
 | 
			
		||||
@ -134,21 +134,21 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte is_preview)
 | 
			
		||||
        && (Pinceau_Y<=Limite_Bas) )
 | 
			
		||||
        {
 | 
			
		||||
                Pixel_Preview(Pinceau_X,Pinceau_Y,Couleur);
 | 
			
		||||
                Mettre_Ecran_A_Jour(X,Y,1,1);
 | 
			
		||||
                Mettre_Ecran_A_Jour(x,y,1,1);
 | 
			
		||||
        }
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case FORME_PINCEAU_BROSSE_COULEUR : // Brosse en couleur
 | 
			
		||||
 | 
			
		||||
      Debut_X=X-Brosse_Decalage_X;
 | 
			
		||||
      Debut_Y=Y-Brosse_Decalage_Y;
 | 
			
		||||
      Debut_X=x-Brosse_Decalage_X;
 | 
			
		||||
      Debut_Y=y-Brosse_Decalage_Y;
 | 
			
		||||
      width=Brosse_Largeur;
 | 
			
		||||
      height=Brosse_Hauteur;
 | 
			
		||||
      Calculer_dimensions_clipees(&Debut_X,&Debut_Y,&width,&height);
 | 
			
		||||
      if (width<=0 || height<=0)
 | 
			
		||||
        break;
 | 
			
		||||
      Debut_Compteur_X=Debut_X-(X-Brosse_Decalage_X);
 | 
			
		||||
      Debut_Compteur_Y=Debut_Y-(Y-Brosse_Decalage_Y);
 | 
			
		||||
      Debut_Compteur_X=Debut_X-(x-Brosse_Decalage_X);
 | 
			
		||||
      Debut_Compteur_Y=Debut_Y-(y-Brosse_Decalage_Y);
 | 
			
		||||
      Fin_Compteur_X=Debut_Compteur_X+width;
 | 
			
		||||
      Fin_Compteur_Y=Debut_Compteur_Y+height;
 | 
			
		||||
 | 
			
		||||
@ -172,8 +172,8 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte is_preview)
 | 
			
		||||
                &height
 | 
			
		||||
          );
 | 
			
		||||
 | 
			
		||||
          Debut_Compteur_X=Debut_X-(X-Brosse_Decalage_X);
 | 
			
		||||
          Debut_Compteur_Y=Debut_Y-(Y-Brosse_Decalage_Y);
 | 
			
		||||
          Debut_Compteur_X=Debut_X-(x-Brosse_Decalage_X);
 | 
			
		||||
          Debut_Compteur_Y=Debut_Y-(y-Brosse_Decalage_Y);
 | 
			
		||||
 | 
			
		||||
          if ( (width>0) && (height>0) )
 | 
			
		||||
          {
 | 
			
		||||
@ -192,7 +192,7 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte is_preview)
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Mettre_Ecran_A_Jour(X-Brosse_Decalage_X,Y-Brosse_Decalage_Y,Brosse_Largeur,Brosse_Hauteur);
 | 
			
		||||
        Mettre_Ecran_A_Jour(x-Brosse_Decalage_X,y-Brosse_Decalage_Y,Brosse_Largeur,Brosse_Hauteur);
 | 
			
		||||
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
@ -267,13 +267,13 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte is_preview)
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    case FORME_PINCEAU_BROSSE_MONOCHROME : // Brosse monochrome
 | 
			
		||||
      Debut_X=X-Brosse_Decalage_X;
 | 
			
		||||
      Debut_Y=Y-Brosse_Decalage_Y;
 | 
			
		||||
      Debut_X=x-Brosse_Decalage_X;
 | 
			
		||||
      Debut_Y=y-Brosse_Decalage_Y;
 | 
			
		||||
      width=Brosse_Largeur;
 | 
			
		||||
      height=Brosse_Hauteur;
 | 
			
		||||
      Calculer_dimensions_clipees(&Debut_X,&Debut_Y,&width,&height);
 | 
			
		||||
      Debut_Compteur_X=Debut_X-(X-Brosse_Decalage_X);
 | 
			
		||||
      Debut_Compteur_Y=Debut_Y-(Y-Brosse_Decalage_Y);
 | 
			
		||||
      Debut_Compteur_X=Debut_X-(x-Brosse_Decalage_X);
 | 
			
		||||
      Debut_Compteur_Y=Debut_Y-(y-Brosse_Decalage_Y);
 | 
			
		||||
      Fin_Compteur_X=Debut_Compteur_X+width;
 | 
			
		||||
      Fin_Compteur_Y=Debut_Compteur_Y+height;
 | 
			
		||||
      if (is_preview)
 | 
			
		||||
@ -289,8 +289,8 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte is_preview)
 | 
			
		||||
        if (Loupe_Mode)
 | 
			
		||||
        {
 | 
			
		||||
          Calculer_dimensions_clipees_zoom(&Debut_X,&Debut_Y,&width,&height);
 | 
			
		||||
          Debut_Compteur_X=Debut_X-(X-Brosse_Decalage_X);
 | 
			
		||||
          Debut_Compteur_Y=Debut_Y-(Y-Brosse_Decalage_Y);
 | 
			
		||||
          Debut_Compteur_X=Debut_X-(x-Brosse_Decalage_X);
 | 
			
		||||
          Debut_Compteur_Y=Debut_Y-(y-Brosse_Decalage_Y);
 | 
			
		||||
 | 
			
		||||
          if ( (width>0) && (height>0) )
 | 
			
		||||
          {
 | 
			
		||||
@ -311,7 +311,7 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte is_preview)
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Mettre_Ecran_A_Jour(X-Brosse_Decalage_X,Y-Brosse_Decalage_Y,Brosse_Largeur,Brosse_Hauteur);
 | 
			
		||||
        Mettre_Ecran_A_Jour(x-Brosse_Decalage_X,y-Brosse_Decalage_Y,Brosse_Largeur,Brosse_Hauteur);
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
      {
 | 
			
		||||
@ -369,13 +369,13 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte is_preview)
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    default : // Pinceau
 | 
			
		||||
      Debut_X=X-Pinceau_Decalage_X;
 | 
			
		||||
      Debut_Y=Y-Pinceau_Decalage_Y;
 | 
			
		||||
      Debut_X=x-Pinceau_Decalage_X;
 | 
			
		||||
      Debut_Y=y-Pinceau_Decalage_Y;
 | 
			
		||||
      width=Pinceau_Largeur;
 | 
			
		||||
      height=Pinceau_Hauteur;
 | 
			
		||||
      Calculer_dimensions_clipees(&Debut_X,&Debut_Y,&width,&height);
 | 
			
		||||
      Debut_Compteur_X=Debut_X-(X-Pinceau_Decalage_X);
 | 
			
		||||
      Debut_Compteur_Y=Debut_Y-(Y-Pinceau_Decalage_Y);
 | 
			
		||||
      Debut_Compteur_X=Debut_X-(x-Pinceau_Decalage_X);
 | 
			
		||||
      Debut_Compteur_Y=Debut_Y-(y-Pinceau_Decalage_Y);
 | 
			
		||||
      Fin_Compteur_X=Debut_Compteur_X+width;
 | 
			
		||||
      Fin_Compteur_Y=Debut_Compteur_Y+height;
 | 
			
		||||
      if (is_preview)
 | 
			
		||||
@ -394,8 +394,8 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte is_preview)
 | 
			
		||||
        if (Loupe_Mode)
 | 
			
		||||
        {
 | 
			
		||||
          Calculer_dimensions_clipees_zoom(&Debut_X,&Debut_Y,&width,&height);
 | 
			
		||||
          Debut_Compteur_X=Debut_X-(X-Pinceau_Decalage_X);
 | 
			
		||||
          Debut_Compteur_Y=Debut_Y-(Y-Pinceau_Decalage_Y);
 | 
			
		||||
          Debut_Compteur_X=Debut_X-(x-Pinceau_Decalage_X);
 | 
			
		||||
          Debut_Compteur_Y=Debut_Y-(y-Pinceau_Decalage_Y);
 | 
			
		||||
 | 
			
		||||
          if ( (width>0) && (height>0) )
 | 
			
		||||
          {
 | 
			
		||||
@ -476,8 +476,8 @@ void Afficher_pinceau(short X,short Y,byte Couleur,byte is_preview)
 | 
			
		||||
 | 
			
		||||
// -- Effacer le pinceau -- //
 | 
			
		||||
//
 | 
			
		||||
void Effacer_pinceau(short X,short Y)
 | 
			
		||||
  // X,Y: position du centre du pinceau
 | 
			
		||||
void Effacer_pinceau(short x,short y)
 | 
			
		||||
  // x,y: position du centre du pinceau
 | 
			
		||||
{
 | 
			
		||||
  short Debut_X; // Position X (dans l'image) à partir de laquelle on
 | 
			
		||||
        // affiche la brosse/pinceau
 | 
			
		||||
@ -515,13 +515,13 @@ void Effacer_pinceau(short X,short Y)
 | 
			
		||||
      break;
 | 
			
		||||
    case FORME_PINCEAU_BROSSE_COULEUR :    // Brosse en couleur
 | 
			
		||||
    case FORME_PINCEAU_BROSSE_MONOCHROME : // Brosse monochrome
 | 
			
		||||
      Debut_X=X-Brosse_Decalage_X;
 | 
			
		||||
      Debut_Y=Y-Brosse_Decalage_Y;
 | 
			
		||||
      Debut_X=x-Brosse_Decalage_X;
 | 
			
		||||
      Debut_Y=y-Brosse_Decalage_Y;
 | 
			
		||||
      width=Brosse_Largeur;
 | 
			
		||||
      height=Brosse_Hauteur;
 | 
			
		||||
      Calculer_dimensions_clipees(&Debut_X,&Debut_Y,&width,&height);
 | 
			
		||||
      Debut_Compteur_X=Debut_X-(X-Brosse_Decalage_X);
 | 
			
		||||
      Debut_Compteur_Y=Debut_Y-(Y-Brosse_Decalage_Y);
 | 
			
		||||
      Debut_Compteur_X=Debut_X-(x-Brosse_Decalage_X);
 | 
			
		||||
      Debut_Compteur_Y=Debut_Y-(y-Brosse_Decalage_Y);
 | 
			
		||||
      Fin_Compteur_X=Debut_Compteur_X+width;
 | 
			
		||||
      Fin_Compteur_Y=Debut_Compteur_Y+height;
 | 
			
		||||
 | 
			
		||||
@ -556,13 +556,13 @@ void Effacer_pinceau(short X,short Y)
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    default: // Pinceau
 | 
			
		||||
      Debut_X=X-Pinceau_Decalage_X;
 | 
			
		||||
      Debut_Y=Y-Pinceau_Decalage_Y;
 | 
			
		||||
      Debut_X=x-Pinceau_Decalage_X;
 | 
			
		||||
      Debut_Y=y-Pinceau_Decalage_Y;
 | 
			
		||||
      width=Pinceau_Largeur;
 | 
			
		||||
      height=Pinceau_Hauteur;
 | 
			
		||||
      Calculer_dimensions_clipees(&Debut_X,&Debut_Y,&width,&height);
 | 
			
		||||
      Debut_Compteur_X=Debut_X-(X-Pinceau_Decalage_X);
 | 
			
		||||
      Debut_Compteur_Y=Debut_Y-(Y-Pinceau_Decalage_Y);
 | 
			
		||||
      Debut_Compteur_X=Debut_X-(x-Pinceau_Decalage_X);
 | 
			
		||||
      Debut_Compteur_Y=Debut_Y-(y-Pinceau_Decalage_Y);
 | 
			
		||||
      Fin_Compteur_X=Debut_Compteur_X+width;
 | 
			
		||||
      Fin_Compteur_Y=Debut_Compteur_Y+height;
 | 
			
		||||
 | 
			
		||||
@ -1508,7 +1508,7 @@ void Calculer_quad_texture(int X1,int Y1,int Xt1,int Yt1,
 | 
			
		||||
                           byte * Buffer, int width, int height)
 | 
			
		||||
{
 | 
			
		||||
  int Xmin,/*Xmax,*/Ymin/*,Ymax*/;
 | 
			
		||||
  int X,Y,Xt,Yt;
 | 
			
		||||
  int x,y,Xt,Yt;
 | 
			
		||||
  int Debut_X,Fin_X,Largeur_ligne;
 | 
			
		||||
  float Temp;
 | 
			
		||||
  //byte Couleur;
 | 
			
		||||
@ -1524,10 +1524,10 @@ void Calculer_quad_texture(int X1,int Y1,int Xt1,int Yt1,
 | 
			
		||||
  ScanY_X[1] =(float *)malloc(height*sizeof(float));
 | 
			
		||||
 | 
			
		||||
  // Remplir avec des valeurs égales à INDEFINI.
 | 
			
		||||
  for (Y=0; Y<height; Y++)
 | 
			
		||||
  for (y=0; y<height; y++)
 | 
			
		||||
  {
 | 
			
		||||
    ScanY_X[0][Y]=INDEFINI;
 | 
			
		||||
    ScanY_X[1][Y]=INDEFINI;
 | 
			
		||||
    ScanY_X[0][y]=INDEFINI;
 | 
			
		||||
    ScanY_X[1][y]=INDEFINI;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Interpoler_texture(X1-Xmin,Y1-Ymin,Xt1,Yt1,X3-Xmin,Y3-Ymin,Xt3,Yt3,height);
 | 
			
		||||
@ -1535,25 +1535,25 @@ void Calculer_quad_texture(int X1,int Y1,int Xt1,int Yt1,
 | 
			
		||||
  Interpoler_texture(X4-Xmin,Y4-Ymin,Xt4,Yt4,X2-Xmin,Y2-Ymin,Xt2,Yt2,height);
 | 
			
		||||
  Interpoler_texture(X2-Xmin,Y2-Ymin,Xt2,Yt2,X1-Xmin,Y1-Ymin,Xt1,Yt1,height);
 | 
			
		||||
 | 
			
		||||
  for (Y=0; Y<height; Y++)
 | 
			
		||||
  for (y=0; y<height; y++)
 | 
			
		||||
  {
 | 
			
		||||
    Debut_X=Round(ScanY_X[0][Y]);
 | 
			
		||||
    Fin_X  =Round(ScanY_X[1][Y]);
 | 
			
		||||
    Debut_X=Round(ScanY_X[0][y]);
 | 
			
		||||
    Fin_X  =Round(ScanY_X[1][y]);
 | 
			
		||||
 | 
			
		||||
    Largeur_ligne=1+Fin_X-Debut_X;
 | 
			
		||||
 | 
			
		||||
    for (X=0; X<Debut_X; X++)
 | 
			
		||||
      Buffer[X+(Y*width)]=Back_color;
 | 
			
		||||
    for (; X<=Fin_X; X++)
 | 
			
		||||
    for (x=0; x<Debut_X; x++)
 | 
			
		||||
      Buffer[x+(y*width)]=Back_color;
 | 
			
		||||
    for (; x<=Fin_X; x++)
 | 
			
		||||
    {
 | 
			
		||||
      Temp=(float)(0.5+(float)X-ScanY_X[0][Y])/(float)Largeur_ligne;
 | 
			
		||||
      Xt=Round((float)(ScanY_Xt[0][Y])+(Temp*(ScanY_Xt[1][Y]-ScanY_Xt[0][Y])));
 | 
			
		||||
      Yt=Round((float)(ScanY_Yt[0][Y])+(Temp*(ScanY_Yt[1][Y]-ScanY_Yt[0][Y])));
 | 
			
		||||
      Temp=(float)(0.5+(float)x-ScanY_X[0][y])/(float)Largeur_ligne;
 | 
			
		||||
      Xt=Round((float)(ScanY_Xt[0][y])+(Temp*(ScanY_Xt[1][y]-ScanY_Xt[0][y])));
 | 
			
		||||
      Yt=Round((float)(ScanY_Yt[0][y])+(Temp*(ScanY_Yt[1][y]-ScanY_Yt[0][y])));
 | 
			
		||||
 | 
			
		||||
      Buffer[X+(Y*width)]=Lit_pixel_dans_brosse(Xt,Yt);
 | 
			
		||||
      Buffer[x+(y*width)]=Lit_pixel_dans_brosse(Xt,Yt);
 | 
			
		||||
    }
 | 
			
		||||
    for (; X<width; X++)
 | 
			
		||||
      Buffer[X+(Y*width)]=Back_color;
 | 
			
		||||
    for (; x<width; x++)
 | 
			
		||||
      Buffer[x+(y*width)]=Back_color;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  free(ScanY_Xt[0]);
 | 
			
		||||
@ -1658,7 +1658,7 @@ void Dessiner_quad_texture_preview(int X1,int Y1,int Xt1,int Yt1,
 | 
			
		||||
                                   int X4,int Y4,int Xt4,int Yt4)
 | 
			
		||||
{
 | 
			
		||||
  int Xmin,Xmax,Ymin,Ymax;
 | 
			
		||||
  int X,Y,Xt,Yt;
 | 
			
		||||
  int x,y,Xt,Yt;
 | 
			
		||||
  int Y_,Ymin_;
 | 
			
		||||
  int Debut_X,Fin_X,width,height;
 | 
			
		||||
  float Temp;
 | 
			
		||||
@ -1678,10 +1678,10 @@ void Dessiner_quad_texture_preview(int X1,int Y1,int Xt1,int Yt1,
 | 
			
		||||
  ScanY_X[1] =(float *)malloc(height*sizeof(float));
 | 
			
		||||
 | 
			
		||||
  // Remplir avec des valeurs égales à INDEFINI.
 | 
			
		||||
  for (Y=0; Y<height; Y++)
 | 
			
		||||
  for (y=0; y<height; y++)
 | 
			
		||||
  {
 | 
			
		||||
    ScanY_X[0][Y]=INDEFINI;
 | 
			
		||||
    ScanY_X[1][Y]=INDEFINI;
 | 
			
		||||
    ScanY_X[0][y]=INDEFINI;
 | 
			
		||||
    ScanY_X[1][y]=INDEFINI;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Interpoler_texture(X1,Y1-Ymin,Xt1,Yt1,X3,Y3-Ymin,Xt3,Yt3,height);
 | 
			
		||||
@ -1695,24 +1695,24 @@ void Dessiner_quad_texture_preview(int X1,int Y1,int Xt1,int Yt1,
 | 
			
		||||
 | 
			
		||||
  for (Y_=Ymin; Y_<=Ymax; Y_++)
 | 
			
		||||
  {
 | 
			
		||||
    Y=Y_-Ymin_;
 | 
			
		||||
    Debut_X=Round(ScanY_X[0][Y]);
 | 
			
		||||
    Fin_X  =Round(ScanY_X[1][Y]);
 | 
			
		||||
    y=Y_-Ymin_;
 | 
			
		||||
    Debut_X=Round(ScanY_X[0][y]);
 | 
			
		||||
    Fin_X  =Round(ScanY_X[1][y]);
 | 
			
		||||
 | 
			
		||||
    width=1+Fin_X-Debut_X;
 | 
			
		||||
 | 
			
		||||
    if (Debut_X<Limite_Gauche) Debut_X=Limite_Gauche;
 | 
			
		||||
    if (  Fin_X>Limite_Droite)   Fin_X=Limite_Droite;
 | 
			
		||||
 | 
			
		||||
    for (X=Debut_X; X<=Fin_X; X++)
 | 
			
		||||
    for (x=Debut_X; x<=Fin_X; x++)
 | 
			
		||||
    {
 | 
			
		||||
      Temp=(float)(0.5+(float)X-ScanY_X[0][Y])/(float)width;
 | 
			
		||||
      Xt=Round((float)(ScanY_Xt[0][Y])+(Temp*(ScanY_Xt[1][Y]-ScanY_Xt[0][Y])));
 | 
			
		||||
      Yt=Round((float)(ScanY_Yt[0][Y])+(Temp*(ScanY_Yt[1][Y]-ScanY_Yt[0][Y])));
 | 
			
		||||
      Temp=(float)(0.5+(float)x-ScanY_X[0][y])/(float)width;
 | 
			
		||||
      Xt=Round((float)(ScanY_Xt[0][y])+(Temp*(ScanY_Xt[1][y]-ScanY_Xt[0][y])));
 | 
			
		||||
      Yt=Round((float)(ScanY_Yt[0][y])+(Temp*(ScanY_Yt[1][y]-ScanY_Yt[0][y])));
 | 
			
		||||
 | 
			
		||||
      Couleur=Lit_pixel_dans_brosse(Xt,Yt);
 | 
			
		||||
      if (Couleur!=Back_color)
 | 
			
		||||
        Pixel_Preview(X,Y_,Couleur);
 | 
			
		||||
        Pixel_Preview(x,Y_,Couleur);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								clavier.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								clavier.c
									
									
									
									
									
								
							@ -324,7 +324,7 @@ word Modificateurs_Touche(SDLMod Mod)
 | 
			
		||||
 | 
			
		||||
word Conversion_Touche(SDL_keysym Sym)
 | 
			
		||||
{
 | 
			
		||||
  word Retour = 0;
 | 
			
		||||
  word key_code = 0;
 | 
			
		||||
  word Mod;
 | 
			
		||||
  
 | 
			
		||||
  // On ignore shift, alt et control isolés.
 | 
			
		||||
@ -337,10 +337,10 @@ word Conversion_Touche(SDL_keysym Sym)
 | 
			
		||||
  // Les touches qui n'ont qu'une valeur unicode (très rares)
 | 
			
		||||
  // seront codées sur 11 bits, le 12e bit est mis à 1 (0x0800)
 | 
			
		||||
  if (Sym.sym != 0)
 | 
			
		||||
    Retour = Sym.sym;
 | 
			
		||||
    key_code = Sym.sym;
 | 
			
		||||
  else if (Sym.scancode != 0)
 | 
			
		||||
  {
 | 
			
		||||
    Retour = (Sym.scancode & 0x07FF) | 0x0800;
 | 
			
		||||
    key_code = (Sym.scancode & 0x07FF) | 0x0800;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  // Normally I should test Sym.mod here, but on windows the implementation
 | 
			
		||||
@ -348,8 +348,8 @@ word Conversion_Touche(SDL_keysym Sym)
 | 
			
		||||
  // still name the original modifiers.
 | 
			
		||||
  Mod=Modificateurs_Touche(SDL_GetModState());
 | 
			
		||||
  // SDL_GetModState() seems to get the right up-to-date info.
 | 
			
		||||
  Retour |= Mod;
 | 
			
		||||
  return Retour;
 | 
			
		||||
  key_code |= Mod;
 | 
			
		||||
  return key_code;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char * Nom_touche(word Touche)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										84
									
								
								divers.c
									
									
									
									
									
								
							
							
						
						
									
										84
									
								
								divers.c
									
									
									
									
									
								
							@ -129,7 +129,7 @@ void Effacer_image_courante(byte Couleur)
 | 
			
		||||
  );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Sensibilite_souris(__attribute__((unused)) word X,__attribute__((unused)) word Y)
 | 
			
		||||
void Sensibilite_souris(__attribute__((unused)) word x,__attribute__((unused)) word y)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -161,25 +161,25 @@ void Wait_VBL(void)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Pixel_dans_brosse             (word X,word Y,byte Couleur)
 | 
			
		||||
void Pixel_dans_brosse             (word x,word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  *(Brosse+Y*Brosse_Largeur+X)=Couleur;
 | 
			
		||||
  *(Brosse+y*Brosse_Largeur+x)=Couleur;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Lit_pixel_dans_brosse         (word X,word Y)
 | 
			
		||||
byte Lit_pixel_dans_brosse         (word x,word y)
 | 
			
		||||
{
 | 
			
		||||
  return *(Brosse + Y * Brosse_Largeur + X);
 | 
			
		||||
  return *(Brosse + y * Brosse_Largeur + x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
byte Lit_pixel_dans_ecran_courant  (word X,word Y)
 | 
			
		||||
byte Lit_pixel_dans_ecran_courant  (word x,word y)
 | 
			
		||||
{
 | 
			
		||||
        return *(Principal_Ecran+Y*Principal_Largeur_image+X);
 | 
			
		||||
        return *(Principal_Ecran+y*Principal_Largeur_image+x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Pixel_dans_ecran_courant      (word X,word Y,byte Couleur)
 | 
			
		||||
void Pixel_dans_ecran_courant      (word x,word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
    byte* dest=(X+Y*Principal_Largeur_image+Principal_Ecran);
 | 
			
		||||
    byte* dest=(x+y*Principal_Largeur_image+Principal_Ecran);
 | 
			
		||||
    *dest=Couleur;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -244,9 +244,9 @@ void Copier_une_partie_d_image_dans_une_autre(byte * Source,word S_Pos_X,word S_
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Lit_pixel_dans_ecran_brouillon(word X,word Y)
 | 
			
		||||
byte Lit_pixel_dans_ecran_brouillon(word x,word y)
 | 
			
		||||
{
 | 
			
		||||
  return *(Brouillon_Ecran+Y*Brouillon_Largeur_image+X);
 | 
			
		||||
  return *(Brouillon_Ecran+y*Brouillon_Largeur_image+x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Rotate_90_deg_LOWLEVEL(byte * Source,byte * dest)
 | 
			
		||||
@ -317,9 +317,9 @@ void Copier_image_dans_brosse(short Debut_X,short Debut_Y,short Brosse_Largeur,s
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Lit_pixel_dans_ecran_feedback (word X,word Y)
 | 
			
		||||
byte Lit_pixel_dans_ecran_feedback (word x,word y)
 | 
			
		||||
{
 | 
			
		||||
  return *(FX_Feedback_Ecran+Y*Principal_Largeur_image+X);
 | 
			
		||||
  return *(FX_Feedback_Ecran+y*Principal_Largeur_image+x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dword Round_div(dword Numerateur,dword Diviseur)
 | 
			
		||||
@ -327,9 +327,9 @@ dword Round_div(dword Numerateur,dword Diviseur)
 | 
			
		||||
        return Numerateur/Diviseur;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Effet_Trame(word X,word Y)
 | 
			
		||||
byte Effet_Trame(word x,word y)
 | 
			
		||||
{
 | 
			
		||||
  return Trame[X % Trame_Largeur][Y % Trame_Hauteur];
 | 
			
		||||
  return Trame[x % Trame_Largeur][y % Trame_Hauteur];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Set_mouse_position(void)
 | 
			
		||||
@ -361,9 +361,9 @@ void Remplacer_toutes_les_couleurs_dans_limites(byte * Table_de_remplacement)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Lit_pixel_dans_ecran_backup (word X,word Y)
 | 
			
		||||
byte Lit_pixel_dans_ecran_backup (word x,word y)
 | 
			
		||||
{
 | 
			
		||||
  return *(Ecran_backup + X + Principal_Largeur_image * Y);
 | 
			
		||||
  return *(Ecran_backup + x + Principal_Largeur_image * y);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Palette_256_to_64(T_Palette palette)
 | 
			
		||||
@ -388,7 +388,7 @@ void Palette_64_to_256(T_Palette palette)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Effet_Colorize_interpole  (word X,word Y,byte Couleur)
 | 
			
		||||
byte Effet_Colorize_interpole  (word x,word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  // Facteur_A = 256*(100-Colorize_Opacite)/100
 | 
			
		||||
  // Facteur_B = 256*(    Colorize_Opacite)/100
 | 
			
		||||
@ -398,11 +398,11 @@ byte Effet_Colorize_interpole  (word X,word Y,byte Couleur)
 | 
			
		||||
 | 
			
		||||
  // On place dans ESI 3*Couleur_dessous ( = position de cette couleur dans la
 | 
			
		||||
  // palette des teintes) et dans EDI, 3*Couleur.
 | 
			
		||||
  byte Bleu_dessous=Principal_Palette[*(FX_Feedback_Ecran + Y * Principal_Largeur_image + X)].B;
 | 
			
		||||
  byte Bleu_dessous=Principal_Palette[*(FX_Feedback_Ecran + y * Principal_Largeur_image + x)].B;
 | 
			
		||||
  byte Bleu=Principal_Palette[Couleur].B;
 | 
			
		||||
  byte Vert_dessous=Principal_Palette[*(FX_Feedback_Ecran + Y * Principal_Largeur_image + X)].G;
 | 
			
		||||
  byte Vert_dessous=Principal_Palette[*(FX_Feedback_Ecran + y * Principal_Largeur_image + x)].G;
 | 
			
		||||
  byte Vert=Principal_Palette[Couleur].G;
 | 
			
		||||
  byte Rouge_dessous=Principal_Palette[*(FX_Feedback_Ecran + Y * Principal_Largeur_image + X)].R;
 | 
			
		||||
  byte Rouge_dessous=Principal_Palette[*(FX_Feedback_Ecran + y * Principal_Largeur_image + x)].R;
 | 
			
		||||
  byte Rouge=Principal_Palette[Couleur].R;
 | 
			
		||||
 | 
			
		||||
  // On récupère les 3 composantes RVB
 | 
			
		||||
@ -418,11 +418,11 @@ byte Effet_Colorize_interpole  (word X,word Y,byte Couleur)
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Effet_Colorize_additif    (word X,word Y,byte Couleur)
 | 
			
		||||
byte Effet_Colorize_additif    (word x,word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  byte Bleu_dessous=Principal_Palette[*(FX_Feedback_Ecran + Y * Principal_Largeur_image + X)].B;
 | 
			
		||||
  byte Vert_dessous=Principal_Palette[*(FX_Feedback_Ecran + Y * Principal_Largeur_image + X)].G;
 | 
			
		||||
  byte Rouge_dessous=Principal_Palette[*(FX_Feedback_Ecran + Y * Principal_Largeur_image + X)].R;
 | 
			
		||||
  byte Bleu_dessous=Principal_Palette[*(FX_Feedback_Ecran + y * Principal_Largeur_image + x)].B;
 | 
			
		||||
  byte Vert_dessous=Principal_Palette[*(FX_Feedback_Ecran + y * Principal_Largeur_image + x)].G;
 | 
			
		||||
  byte Rouge_dessous=Principal_Palette[*(FX_Feedback_Ecran + y * Principal_Largeur_image + x)].R;
 | 
			
		||||
  byte Bleu=Principal_Palette[Couleur].B;
 | 
			
		||||
  byte Vert=Principal_Palette[Couleur].G;
 | 
			
		||||
  byte Rouge=Principal_Palette[Couleur].R;
 | 
			
		||||
@ -433,11 +433,11 @@ byte Effet_Colorize_additif    (word X,word Y,byte Couleur)
 | 
			
		||||
    Bleu>Bleu_dessous?Bleu:Bleu_dessous);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Effet_Colorize_soustractif(word X,word Y,byte Couleur)
 | 
			
		||||
byte Effet_Colorize_soustractif(word x,word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  byte Bleu_dessous=Principal_Palette[*(FX_Feedback_Ecran + Y * Principal_Largeur_image + X)].B;
 | 
			
		||||
  byte Vert_dessous=Principal_Palette[*(FX_Feedback_Ecran + Y * Principal_Largeur_image + X)].G;
 | 
			
		||||
  byte Rouge_dessous=Principal_Palette[*(FX_Feedback_Ecran + Y * Principal_Largeur_image + X)].R;
 | 
			
		||||
  byte Bleu_dessous=Principal_Palette[*(FX_Feedback_Ecran + y * Principal_Largeur_image + x)].B;
 | 
			
		||||
  byte Vert_dessous=Principal_Palette[*(FX_Feedback_Ecran + y * Principal_Largeur_image + x)].G;
 | 
			
		||||
  byte Rouge_dessous=Principal_Palette[*(FX_Feedback_Ecran + y * Principal_Largeur_image + x)].R;
 | 
			
		||||
  byte Bleu=Principal_Palette[Couleur].B;
 | 
			
		||||
  byte Vert=Principal_Palette[Couleur].G;
 | 
			
		||||
  byte Rouge=Principal_Palette[Couleur].R;
 | 
			
		||||
@ -600,10 +600,10 @@ void Zoomer_une_ligne(byte* Ligne_originale, byte* Ligne_zoomee,
 | 
			
		||||
)
 | 
			
		||||
{
 | 
			
		||||
        byte color;
 | 
			
		||||
        word X;
 | 
			
		||||
        word x;
 | 
			
		||||
 | 
			
		||||
        // Pour chaque pixel
 | 
			
		||||
        for(X=0;X<width;X++){
 | 
			
		||||
        for(x=0;x<width;x++){
 | 
			
		||||
                color = *Ligne_originale;
 | 
			
		||||
 | 
			
		||||
                memset(Ligne_zoomee,color,factor);
 | 
			
		||||
@ -673,11 +673,11 @@ unsigned long Memoire_libre(void)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Transformer un nombre (entier naturel) en chaîne
 | 
			
		||||
void Num2str(dword number,char * Chaine,byte Taille)
 | 
			
		||||
void Num2str(dword number,char * Chaine,byte nb_char)
 | 
			
		||||
{
 | 
			
		||||
  int Indice;
 | 
			
		||||
 | 
			
		||||
  for (Indice=Taille-1;Indice>=0;Indice--)
 | 
			
		||||
  for (Indice=nb_char-1;Indice>=0;Indice--)
 | 
			
		||||
  {
 | 
			
		||||
    Chaine[Indice]=(number%10)+'0';
 | 
			
		||||
    number/=10;
 | 
			
		||||
@ -685,34 +685,34 @@ void Num2str(dword number,char * Chaine,byte Taille)
 | 
			
		||||
      for (Indice--;Indice>=0;Indice--)
 | 
			
		||||
        Chaine[Indice]=' ';
 | 
			
		||||
  }
 | 
			
		||||
  Chaine[Taille]='\0';
 | 
			
		||||
  Chaine[nb_char]='\0';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Transformer une chaîne en un entier naturel (renvoie -1 si ch. invalide)
 | 
			
		||||
int Str2num(char * Chaine)
 | 
			
		||||
{
 | 
			
		||||
  int Valeur=0;
 | 
			
		||||
  int value=0;
 | 
			
		||||
 | 
			
		||||
  for (;*Chaine;Chaine++)
 | 
			
		||||
  {
 | 
			
		||||
    if ( (*Chaine>='0') && (*Chaine<='9') )
 | 
			
		||||
      Valeur=(Valeur*10)+(*Chaine-'0');
 | 
			
		||||
      value=(value*10)+(*Chaine-'0');
 | 
			
		||||
    else
 | 
			
		||||
      return -1;
 | 
			
		||||
  }
 | 
			
		||||
  return Valeur;
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Arrondir un nombre réel à la valeur entière la plus proche
 | 
			
		||||
short Round(float Valeur)
 | 
			
		||||
short Round(float value)
 | 
			
		||||
{
 | 
			
		||||
  short Temp=Valeur;
 | 
			
		||||
  short Temp=value;
 | 
			
		||||
 | 
			
		||||
  if (Valeur>=0)
 | 
			
		||||
    { if ((Valeur-Temp)>= 0.5) Temp++; }
 | 
			
		||||
  if (value>=0)
 | 
			
		||||
    { if ((value-Temp)>= 0.5) Temp++; }
 | 
			
		||||
  else
 | 
			
		||||
    { if ((Valeur-Temp)<=-0.5) Temp--; }
 | 
			
		||||
    { if ((value-Temp)<=-0.5) Temp--; }
 | 
			
		||||
 | 
			
		||||
  return Temp;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										29
									
								
								divers.h
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								divers.h
									
									
									
									
									
								
							@ -27,7 +27,7 @@ void Scroll_picture(short x_offset,short y_offset);
 | 
			
		||||
void Set_mouse_video_mode_number(void);
 | 
			
		||||
void Set_mouse_position(void);
 | 
			
		||||
void Attendre_fin_de_click(void);
 | 
			
		||||
void Sensibilite_souris(word X,word Y);
 | 
			
		||||
void Sensibilite_souris(word x,word y);
 | 
			
		||||
void Set_color(byte Couleur, byte Rouge, byte Vert, byte Bleu);
 | 
			
		||||
void Set_palette(T_Palette palette);
 | 
			
		||||
void Palette_256_to_64(T_Palette palette);
 | 
			
		||||
@ -39,13 +39,13 @@ void Tempo_jauge(byte Vitesse);
 | 
			
		||||
dword Round_div(dword Numerateur,dword Diviseur);
 | 
			
		||||
word Palette_Compter_nb_couleurs_utilisees(dword * Tableau);
 | 
			
		||||
 | 
			
		||||
void Pixel_dans_ecran_courant      (word X,word Y,byte Couleur);
 | 
			
		||||
void Pixel_dans_brosse             (word X,word Y,byte Couleur);
 | 
			
		||||
byte Lit_pixel_dans_ecran_courant  (word X,word Y);
 | 
			
		||||
byte Lit_pixel_dans_ecran_brouillon(word X,word Y);
 | 
			
		||||
byte Lit_pixel_dans_ecran_backup   (word X,word Y);
 | 
			
		||||
byte Lit_pixel_dans_ecran_feedback (word X,word Y);
 | 
			
		||||
byte Lit_pixel_dans_brosse         (word X,word Y);
 | 
			
		||||
void Pixel_dans_ecran_courant      (word x,word y,byte Couleur);
 | 
			
		||||
void Pixel_dans_brosse             (word x,word y,byte Couleur);
 | 
			
		||||
byte Lit_pixel_dans_ecran_courant  (word x,word y);
 | 
			
		||||
byte Lit_pixel_dans_ecran_brouillon(word x,word y);
 | 
			
		||||
byte Lit_pixel_dans_ecran_backup   (word x,word y);
 | 
			
		||||
byte Lit_pixel_dans_ecran_feedback (word x,word y);
 | 
			
		||||
byte Lit_pixel_dans_brosse         (word x,word y);
 | 
			
		||||
 | 
			
		||||
void Ellipse_Calculer_limites(short Rayon_horizontal,short Rayon_vertical);
 | 
			
		||||
// Calcule les valeurs suivantes en fonction des deux paramètres:
 | 
			
		||||
@ -77,10 +77,10 @@ void Tester_chrono(void);
 | 
			
		||||
void Remplacer_une_couleur(byte Ancienne_couleur, byte Nouvelle_couleur);
 | 
			
		||||
void Remplacer_toutes_les_couleurs_dans_limites(byte * Table_de_remplacement);
 | 
			
		||||
 | 
			
		||||
byte Effet_Colorize_interpole  (word X,word Y,byte Couleur);
 | 
			
		||||
byte Effet_Colorize_additif    (word X,word Y,byte Couleur);
 | 
			
		||||
byte Effet_Colorize_soustractif(word X,word Y,byte Couleur);
 | 
			
		||||
byte Effet_Trame(word X,word Y);
 | 
			
		||||
byte Effet_Colorize_interpole  (word x,word y,byte Couleur);
 | 
			
		||||
byte Effet_Colorize_additif    (word x,word y,byte Couleur);
 | 
			
		||||
byte Effet_Colorize_soustractif(word x,word y,byte Couleur);
 | 
			
		||||
byte Effet_Trame(word x,word y);
 | 
			
		||||
 | 
			
		||||
void Flip_Y_LOWLEVEL(void);
 | 
			
		||||
void Flip_X_LOWLEVEL(void);
 | 
			
		||||
@ -100,11 +100,10 @@ byte Nouvelle_preview; // Bool
 | 
			
		||||
 | 
			
		||||
unsigned long Memoire_libre(void);
 | 
			
		||||
 | 
			
		||||
void  Num2str(dword number,char * Chaine,byte Taille);
 | 
			
		||||
void  Num2str(dword number,char * Chaine,byte nb_char);
 | 
			
		||||
int   Str2num(char * Chaine);
 | 
			
		||||
 | 
			
		||||
short Round(float Valeur);
 | 
			
		||||
short Round_max(short Numerateur,short Diviseur);
 | 
			
		||||
short Round(float value);
 | 
			
		||||
short Round_div_max(short Numerateur,short Diviseur);
 | 
			
		||||
 | 
			
		||||
int Min(int a,int b);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										26
									
								
								files.c
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								files.c
									
									
									
									
									
								
							@ -99,7 +99,7 @@ void Detruire_liste_du_fileselect(void)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// -- Formatage graphique des noms de fichier / répertoire ------------------
 | 
			
		||||
char * Nom_formate(char * fname, int Type)
 | 
			
		||||
char * Nom_formate(char * fname, int type)
 | 
			
		||||
{
 | 
			
		||||
  static char Resultat[13];
 | 
			
		||||
  int         c;
 | 
			
		||||
@ -110,7 +110,7 @@ char * Nom_formate(char * fname, int Type)
 | 
			
		||||
  {
 | 
			
		||||
    strcpy(Resultat,"<-PARENT DIR");
 | 
			
		||||
  }
 | 
			
		||||
  else if (fname[0]=='.' || Type==2)
 | 
			
		||||
  else if (fname[0]=='.' || type==2)
 | 
			
		||||
  {
 | 
			
		||||
    // Fichiers ".quelquechose" ou lecteurs: Calé à gauche sur 12 caractères maximum.
 | 
			
		||||
    strcpy(Resultat,"            ");
 | 
			
		||||
@ -149,7 +149,7 @@ char * Nom_formate(char * fname, int Type)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// -- Rajouter a la liste des elements de la liste un element ---------------
 | 
			
		||||
void Ajouter_element_a_la_liste(char * fname, int Type)
 | 
			
		||||
void Ajouter_element_a_la_liste(char * fname, int type)
 | 
			
		||||
//  Cette procedure ajoute a la liste chainee un fichier passé en argument.
 | 
			
		||||
{
 | 
			
		||||
  // Pointeur temporaire d'insertion
 | 
			
		||||
@ -159,9 +159,9 @@ void Ajouter_element_a_la_liste(char * fname, int Type)
 | 
			
		||||
  Element_temporaire=(Element_de_liste_de_fileselect *)malloc(sizeof(Element_de_liste_de_fileselect));
 | 
			
		||||
 | 
			
		||||
  // On met a jour le nouvel emplacement:
 | 
			
		||||
  strcpy(Element_temporaire->NomAbrege,Nom_formate(fname, Type));
 | 
			
		||||
  strcpy(Element_temporaire->NomAbrege,Nom_formate(fname, type));
 | 
			
		||||
  strcpy(Element_temporaire->NomComplet,fname);
 | 
			
		||||
  Element_temporaire->Type = Type;
 | 
			
		||||
  Element_temporaire->Type = type;
 | 
			
		||||
 | 
			
		||||
  Element_temporaire->Suivant  =Liste_du_fileselect;
 | 
			
		||||
  Element_temporaire->Precedent=NULL;
 | 
			
		||||
@ -563,7 +563,7 @@ void Afficher_la_liste_des_fichiers(short Decalage_premier,short Decalage_select
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// -- Récupérer le libellé d'un élément de la liste -------------------------
 | 
			
		||||
void Determiner_element_de_la_liste(short Decalage_premier,short Decalage_select,char * label,int *Type)
 | 
			
		||||
void Determiner_element_de_la_liste(short Decalage_premier,short Decalage_select,char * label,int *type)
 | 
			
		||||
//
 | 
			
		||||
// Decalage_premier = Décalage entre le premier fichier visible dans le
 | 
			
		||||
//                   sélecteur et le premier fichier de la liste
 | 
			
		||||
@ -573,7 +573,7 @@ void Determiner_element_de_la_liste(short Decalage_premier,short Decalage_select
 | 
			
		||||
//
 | 
			
		||||
// label          = Chaine de réception du libellé de l'élément
 | 
			
		||||
//
 | 
			
		||||
// Type             = Récupération du type: 0 fichier, 1 repertoire, 2 lecteur.
 | 
			
		||||
// type             = Récupération du type: 0 fichier, 1 repertoire, 2 lecteur.
 | 
			
		||||
//                    Passer NULL si pas interessé.
 | 
			
		||||
{
 | 
			
		||||
  Element_de_liste_de_fileselect * Element_courant;
 | 
			
		||||
@ -593,8 +593,8 @@ void Determiner_element_de_la_liste(short Decalage_premier,short Decalage_select
 | 
			
		||||
    // On recopie la chaîne
 | 
			
		||||
    strcpy(label, Element_courant->NomComplet);
 | 
			
		||||
 | 
			
		||||
    if (Type != NULL)
 | 
			
		||||
      *Type=Element_courant->Type;
 | 
			
		||||
    if (type != NULL)
 | 
			
		||||
      *type=Element_courant->Type;
 | 
			
		||||
  } // Fin du test d'existence de fichiers
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -715,12 +715,12 @@ void Afficher_bookmark(T_Bouton_dropdown * Bouton, int Numero_bookmark)
 | 
			
		||||
{
 | 
			
		||||
  if (Config.Bookmark_directory[Numero_bookmark])
 | 
			
		||||
  {
 | 
			
		||||
    int Taille;
 | 
			
		||||
    int label_size;
 | 
			
		||||
    // Libellé
 | 
			
		||||
    Print_dans_fenetre_limite(Bouton->Pos_X+3+10,Bouton->Pos_Y+2,Config.Bookmark_label[Numero_bookmark],8,CM_Noir,CM_Clair);
 | 
			
		||||
    Taille=strlen(Config.Bookmark_label[Numero_bookmark]);
 | 
			
		||||
    if (Taille<8)
 | 
			
		||||
      Block(Fenetre_Pos_X+(Menu_Facteur_X*(Bouton->Pos_X+3+10+Taille*8)),Fenetre_Pos_Y+(Menu_Facteur_Y*(Bouton->Pos_Y+2)),Menu_Facteur_X*(8-Taille)*8,Menu_Facteur_Y*8,CM_Clair);
 | 
			
		||||
    label_size=strlen(Config.Bookmark_label[Numero_bookmark]);
 | 
			
		||||
    if (label_size<8)
 | 
			
		||||
      Block(Fenetre_Pos_X+(Menu_Facteur_X*(Bouton->Pos_X+3+10+label_size*8)),Fenetre_Pos_Y+(Menu_Facteur_Y*(Bouton->Pos_Y+2)),Menu_Facteur_X*(8-label_size)*8,Menu_Facteur_Y*8,CM_Clair);
 | 
			
		||||
    // Menu apparait sur clic droit
 | 
			
		||||
    Bouton->Bouton_actif=A_DROITE;
 | 
			
		||||
    // Choix actifs
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								files.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								files.h
									
									
									
									
									
								
							@ -33,7 +33,7 @@ void Trier_la_liste_des_fichiers(void);
 | 
			
		||||
// -- Affichage des éléments de la liste de fichier / répertoire ------------
 | 
			
		||||
void Afficher_la_liste_des_fichiers(short Decalage_premier,short Decalage_select);
 | 
			
		||||
// -- Récupérer le libellé d'un élément de la liste -------------------------
 | 
			
		||||
void Determiner_element_de_la_liste(short Decalage_premier,short Decalage_select,char * label,int *Type);
 | 
			
		||||
void Determiner_element_de_la_liste(short Decalage_premier,short Decalage_select,char * label,int *type);
 | 
			
		||||
 | 
			
		||||
void Afficher_bookmark(T_Bouton_dropdown * Bouton, int Numero_bookmark);
 | 
			
		||||
 | 
			
		||||
@ -48,7 +48,7 @@ void Select_Home       (short * Decalage_premier,short * Decalage_select);
 | 
			
		||||
 | 
			
		||||
short Calculer_decalage_click_dans_fileselector(void);
 | 
			
		||||
 | 
			
		||||
char * Nom_formate(char * fname, int Type);
 | 
			
		||||
char * Nom_formate(char * fname, int type);
 | 
			
		||||
 | 
			
		||||
// Scans a directory, calls Callback for each file in it,
 | 
			
		||||
void for_each_file(const char * Nom_repertoire, void Callback(const char *));
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										120
									
								
								graph.c
									
									
									
									
									
								
							
							
						
						
									
										120
									
								
								graph.c
									
									
									
									
									
								
							@ -46,7 +46,7 @@
 | 
			
		||||
 | 
			
		||||
// Fonction qui met à jour la zone de l'image donnée en paramètre sur l'écran.
 | 
			
		||||
// Tient compte du décalage X et Y et du zoom, et fait tous les controles nécessaires
 | 
			
		||||
void Mettre_Ecran_A_Jour(short X, short Y, short width, short height)
 | 
			
		||||
void Mettre_Ecran_A_Jour(short x, short y, short width, short height)
 | 
			
		||||
{
 | 
			
		||||
  short L_effectif, H_effectif;
 | 
			
		||||
  short X_effectif;
 | 
			
		||||
@ -56,18 +56,18 @@ void Mettre_Ecran_A_Jour(short X, short Y, short width, short height)
 | 
			
		||||
  // Première étape, si L ou H est négatif, on doit remettre la zone à l'endroit
 | 
			
		||||
  if (width < 0)
 | 
			
		||||
  {
 | 
			
		||||
    X += width;
 | 
			
		||||
    x += width;
 | 
			
		||||
    width = - width;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (height < 0)
 | 
			
		||||
  {
 | 
			
		||||
    Y += height;
 | 
			
		||||
    y += height;
 | 
			
		||||
    height = - height;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // D'abord on met à jour dans la zone écran normale
 | 
			
		||||
  Diff = X-Principal_Decalage_X;
 | 
			
		||||
  Diff = x-Principal_Decalage_X;
 | 
			
		||||
  if (Diff<0)
 | 
			
		||||
  {
 | 
			
		||||
    L_effectif = width + Diff;
 | 
			
		||||
@ -78,7 +78,7 @@ void Mettre_Ecran_A_Jour(short X, short Y, short width, short height)
 | 
			
		||||
    L_effectif = width;
 | 
			
		||||
    X_effectif = Diff;
 | 
			
		||||
  }
 | 
			
		||||
  Diff = Y-Principal_Decalage_Y;
 | 
			
		||||
  Diff = y-Principal_Decalage_Y;
 | 
			
		||||
  if (Diff<0)
 | 
			
		||||
  {
 | 
			
		||||
    H_effectif = height + Diff;
 | 
			
		||||
@ -115,8 +115,8 @@ void Mettre_Ecran_A_Jour(short X, short Y, short width, short height)
 | 
			
		||||
  if(Loupe_Mode)
 | 
			
		||||
  {
 | 
			
		||||
    // Clipping en X
 | 
			
		||||
    X_effectif = (X-Loupe_Decalage_X)*Loupe_Facteur;
 | 
			
		||||
    Y_effectif = (Y-Loupe_Decalage_Y)*Loupe_Facteur;
 | 
			
		||||
    X_effectif = (x-Loupe_Decalage_X)*Loupe_Facteur;
 | 
			
		||||
    Y_effectif = (y-Loupe_Decalage_Y)*Loupe_Facteur;
 | 
			
		||||
    L_effectif = width * Loupe_Facteur;
 | 
			
		||||
    H_effectif = height * Loupe_Facteur;
 | 
			
		||||
 | 
			
		||||
@ -169,11 +169,11 @@ void Mettre_Ecran_A_Jour(short X, short Y, short width, short height)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Transformer_point(short X, short Y, float cosA, float sinA,
 | 
			
		||||
void Transformer_point(short x, short y, float cosA, float sinA,
 | 
			
		||||
                       short * Xr, short * Yr)
 | 
			
		||||
{
 | 
			
		||||
  *Xr=Round(((float)X*cosA)+((float)Y*sinA));
 | 
			
		||||
  *Yr=Round(((float)Y*cosA)-((float)X*sinA));
 | 
			
		||||
  *Xr=Round(((float)x*cosA)+((float)y*sinA));
 | 
			
		||||
  *Yr=Round(((float)y*cosA)-((float)x*sinA));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1468,7 +1468,7 @@ void Tracer_courbe_General(short X1, short Y1,
 | 
			
		||||
                           byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  float delta,t,t2,t3;
 | 
			
		||||
  short X,Y,Old_X,Old_Y;
 | 
			
		||||
  short x,y,Old_X,Old_Y;
 | 
			
		||||
  word  i;
 | 
			
		||||
  int   CX[4];
 | 
			
		||||
  int   CY[4];
 | 
			
		||||
@ -1492,18 +1492,18 @@ void Tracer_courbe_General(short X1, short Y1,
 | 
			
		||||
  for (i=1; i<=20; i++)
 | 
			
		||||
  {
 | 
			
		||||
    t=t+delta; t2=t*t; t3=t2*t;
 | 
			
		||||
    X=Round(t3*CX[0] + t2*CX[1] + t*CX[2] + CX[3]);
 | 
			
		||||
    Y=Round(t3*CY[0] + t2*CY[1] + t*CY[2] + CY[3]);
 | 
			
		||||
    Tracer_ligne_General(Old_X,Old_Y,X,Y,Couleur);
 | 
			
		||||
    Old_X=X;
 | 
			
		||||
    Old_Y=Y;
 | 
			
		||||
    x=Round(t3*CX[0] + t2*CX[1] + t*CX[2] + CX[3]);
 | 
			
		||||
    y=Round(t3*CY[0] + t2*CY[1] + t*CY[2] + CY[3]);
 | 
			
		||||
    Tracer_ligne_General(Old_X,Old_Y,x,y,Couleur);
 | 
			
		||||
    Old_X=x;
 | 
			
		||||
    Old_Y=y;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  X = Min(Min(X1,X2),Min(X3,X4));
 | 
			
		||||
  Y = Min(Min(Y1,Y2),Min(Y3,Y4));
 | 
			
		||||
  Old_X = Max(Max(X1,X2),Max(X3,X4)) - X;
 | 
			
		||||
  Old_Y = Max(Max(Y1,Y2),Max(Y3,Y4)) - Y;
 | 
			
		||||
  Mettre_Ecran_A_Jour(X,Y,Old_X+1,Old_Y+1);
 | 
			
		||||
  x = Min(Min(X1,X2),Min(X3,X4));
 | 
			
		||||
  y = Min(Min(Y1,Y2),Min(Y3,Y4));
 | 
			
		||||
  Old_X = Max(Max(X1,X2),Max(X3,X4)) - x;
 | 
			
		||||
  Old_Y = Max(Max(Y1,Y2),Max(Y3,Y4)) - y;
 | 
			
		||||
  Mettre_Ecran_A_Jour(x,y,Old_X+1,Old_Y+1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // -- Tracer une courbe de Bézier définitivement --
 | 
			
		||||
@ -1554,7 +1554,7 @@ void Aerographe(short Bouton_clicke)
 | 
			
		||||
  long  Rayon_au_carre=(long)Rayon*Rayon;
 | 
			
		||||
  short Indice,Count;
 | 
			
		||||
  byte  Indice_couleur;
 | 
			
		||||
  byte  Sens;
 | 
			
		||||
  byte  direction;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  Effacer_curseur();
 | 
			
		||||
@ -1581,7 +1581,7 @@ void Aerographe(short Bouton_clicke)
 | 
			
		||||
    //   On essaye de se balader dans la table des flux de façon à ce que ce
 | 
			
		||||
    // ne soit pas toujours la dernière couleur qui soit affichée en dernier
 | 
			
		||||
    // Pour ça, on part d'une couleur au pif dans une direction aléatoire.
 | 
			
		||||
    Sens=rand()&1;
 | 
			
		||||
    direction=rand()&1;
 | 
			
		||||
    for (Indice=0,Indice_couleur=rand()/*%256*/; Indice<256; Indice++)
 | 
			
		||||
    {
 | 
			
		||||
      for (Count=1; Count<=Spray_Multi_flow[Indice_couleur]; Count++)
 | 
			
		||||
@ -1598,7 +1598,7 @@ void Aerographe(short Bouton_clicke)
 | 
			
		||||
            Afficher_pinceau(x_pos,y_pos,Back_color,0);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      if (Sens)
 | 
			
		||||
      if (direction)
 | 
			
		||||
        Indice_couleur++;
 | 
			
		||||
      else
 | 
			
		||||
        Indice_couleur--;
 | 
			
		||||
@ -2344,20 +2344,20 @@ void Liste2tables(word * list,short step,byte mode,byte * Table_inc,byte * Table
 | 
			
		||||
  // fonction d'affichage "Pixel" utilisée pour les opérations définitivement
 | 
			
		||||
  // Ne doit à aucune condition être appelée en dehors de la partie visible
 | 
			
		||||
  // de l'image dans l'écran (ça pourrait être grave)
 | 
			
		||||
void Afficher_pixel(word X,word Y,byte Couleur)
 | 
			
		||||
  // X & Y    sont la position d'un point dans l'IMAGE
 | 
			
		||||
void Afficher_pixel(word x,word y,byte Couleur)
 | 
			
		||||
  // x & y    sont la position d'un point dans l'IMAGE
 | 
			
		||||
  // Couleur  est la couleur du point
 | 
			
		||||
  // Le Stencil est géré.
 | 
			
		||||
  // Les effets sont gérés par appel à Fonction_effet().
 | 
			
		||||
  // La Loupe est gérée par appel à Pixel_Preview().
 | 
			
		||||
{
 | 
			
		||||
  if ( ( (!Trame_Mode)   || (Effet_Trame(X,Y)) )
 | 
			
		||||
    && (!((Stencil_Mode) && (Stencil[Lit_pixel_dans_ecran_courant(X,Y)])))
 | 
			
		||||
    && (!((Mask_Mode)    && (Mask_table[Lit_pixel_dans_ecran_brouillon(X,Y)]))) )
 | 
			
		||||
  if ( ( (!Trame_Mode)   || (Effet_Trame(x,y)) )
 | 
			
		||||
    && (!((Stencil_Mode) && (Stencil[Lit_pixel_dans_ecran_courant(x,y)])))
 | 
			
		||||
    && (!((Mask_Mode)    && (Mask_table[Lit_pixel_dans_ecran_brouillon(x,y)]))) )
 | 
			
		||||
  {
 | 
			
		||||
    Couleur=Fonction_effet(X,Y,Couleur);
 | 
			
		||||
    Pixel_dans_ecran_courant(X,Y,Couleur);
 | 
			
		||||
    Pixel_Preview(X,Y,Couleur);
 | 
			
		||||
    Couleur=Fonction_effet(x,y,Couleur);
 | 
			
		||||
    Pixel_dans_ecran_courant(x,y,Couleur);
 | 
			
		||||
    Pixel_Preview(x,y,Couleur);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -2367,26 +2367,26 @@ void Afficher_pixel(word X,word Y,byte Couleur)
 | 
			
		||||
 | 
			
		||||
  // -- Aucun effet en cours --
 | 
			
		||||
 | 
			
		||||
byte Aucun_effet(__attribute__((unused)) word X,__attribute__((unused)) word Y,byte Couleur)
 | 
			
		||||
byte Aucun_effet(__attribute__((unused)) word x,__attribute__((unused)) word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  return Couleur;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // -- Effet de Shading --
 | 
			
		||||
 | 
			
		||||
byte Effet_Shade(word X,word Y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
byte Effet_Shade(word x,word y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  return Shade_Table[Lit_pixel_dans_ecran_feedback(X,Y)];
 | 
			
		||||
  return Shade_Table[Lit_pixel_dans_ecran_feedback(x,y)];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Effet_Quick_shade(word X,word Y,byte Couleur)
 | 
			
		||||
byte Effet_Quick_shade(word x,word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  int c=Couleur=Lit_pixel_dans_ecran_feedback(X,Y);
 | 
			
		||||
  int Sens=(Fore_color<=Back_color);
 | 
			
		||||
  int c=Couleur=Lit_pixel_dans_ecran_feedback(x,y);
 | 
			
		||||
  int direction=(Fore_color<=Back_color);
 | 
			
		||||
  byte start,end;
 | 
			
		||||
  int width;
 | 
			
		||||
 | 
			
		||||
  if (Sens)
 | 
			
		||||
  if (direction)
 | 
			
		||||
  {
 | 
			
		||||
    start=Fore_color;
 | 
			
		||||
    end  =Back_color;
 | 
			
		||||
@ -2401,7 +2401,7 @@ byte Effet_Quick_shade(word X,word Y,byte Couleur)
 | 
			
		||||
  {
 | 
			
		||||
    width=1+end-start;
 | 
			
		||||
 | 
			
		||||
    if ( ((Shade_Table==Shade_Table_gauche) && Sens) || ((Shade_Table==Shade_Table_droite) && (!Sens)) )
 | 
			
		||||
    if ( ((Shade_Table==Shade_Table_gauche) && direction) || ((Shade_Table==Shade_Table_droite) && (!direction)) )
 | 
			
		||||
      c-=Quick_shade_Step%width;
 | 
			
		||||
    else
 | 
			
		||||
      c+=Quick_shade_Step%width;
 | 
			
		||||
@ -2428,40 +2428,40 @@ byte Effet_Quick_shade(word X,word Y,byte Couleur)
 | 
			
		||||
 | 
			
		||||
  // -- Effet de Tiling --
 | 
			
		||||
 | 
			
		||||
byte Effet_Tiling(word X,word Y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
byte Effet_Tiling(word x,word y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  return Lit_pixel_dans_brosse((X+Brosse_Largeur-Tiling_Decalage_X)%Brosse_Largeur,
 | 
			
		||||
                               (Y+Brosse_Hauteur-Tiling_Decalage_Y)%Brosse_Hauteur);
 | 
			
		||||
  return Lit_pixel_dans_brosse((x+Brosse_Largeur-Tiling_Decalage_X)%Brosse_Largeur,
 | 
			
		||||
                               (y+Brosse_Hauteur-Tiling_Decalage_Y)%Brosse_Hauteur);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // -- Effet de Smooth --
 | 
			
		||||
 | 
			
		||||
byte Effet_Smooth(word X,word Y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
byte Effet_Smooth(word x,word y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  int r,g,b;
 | 
			
		||||
  byte c;
 | 
			
		||||
  int Poids,Poids_total;
 | 
			
		||||
  byte X2=((X+1)<Principal_Largeur_image);
 | 
			
		||||
  byte Y2=((Y+1)<Principal_Hauteur_image);
 | 
			
		||||
  byte X2=((x+1)<Principal_Largeur_image);
 | 
			
		||||
  byte Y2=((y+1)<Principal_Hauteur_image);
 | 
			
		||||
 | 
			
		||||
  // On commence par le pixel central
 | 
			
		||||
  c=Lit_pixel_dans_ecran_feedback(X,Y);
 | 
			
		||||
  c=Lit_pixel_dans_ecran_feedback(x,y);
 | 
			
		||||
  Poids_total=Smooth_Matrice[1][1];
 | 
			
		||||
  r=Poids_total*Principal_Palette[c].R;
 | 
			
		||||
  g=Poids_total*Principal_Palette[c].G;
 | 
			
		||||
  b=Poids_total*Principal_Palette[c].B;
 | 
			
		||||
 | 
			
		||||
  if (X)
 | 
			
		||||
  if (x)
 | 
			
		||||
  {
 | 
			
		||||
    c=Lit_pixel_dans_ecran_feedback(X-1,Y);
 | 
			
		||||
    c=Lit_pixel_dans_ecran_feedback(x-1,y);
 | 
			
		||||
    Poids_total+=(Poids=Smooth_Matrice[0][1]);
 | 
			
		||||
    r+=Poids*Principal_Palette[c].R;
 | 
			
		||||
    g+=Poids*Principal_Palette[c].G;
 | 
			
		||||
    b+=Poids*Principal_Palette[c].B;
 | 
			
		||||
 | 
			
		||||
    if (Y)
 | 
			
		||||
    if (y)
 | 
			
		||||
    {
 | 
			
		||||
      c=Lit_pixel_dans_ecran_feedback(X-1,Y-1);
 | 
			
		||||
      c=Lit_pixel_dans_ecran_feedback(x-1,y-1);
 | 
			
		||||
      Poids_total+=(Poids=Smooth_Matrice[0][0]);
 | 
			
		||||
      r+=Poids*Principal_Palette[c].R;
 | 
			
		||||
      g+=Poids*Principal_Palette[c].G;
 | 
			
		||||
@ -2469,7 +2469,7 @@ byte Effet_Smooth(word X,word Y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
 | 
			
		||||
      if (Y2)
 | 
			
		||||
      {
 | 
			
		||||
        c=Lit_pixel_dans_ecran_feedback(X-1,Y+1);
 | 
			
		||||
        c=Lit_pixel_dans_ecran_feedback(x-1,y+1);
 | 
			
		||||
        Poids_total+=(Poids=Smooth_Matrice[0][2]);
 | 
			
		||||
        r+=Poids*Principal_Palette[c].R;
 | 
			
		||||
        g+=Poids*Principal_Palette[c].G;
 | 
			
		||||
@ -2480,15 +2480,15 @@ byte Effet_Smooth(word X,word Y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
 | 
			
		||||
  if (X2)
 | 
			
		||||
  {
 | 
			
		||||
    c=Lit_pixel_dans_ecran_feedback(X+1,Y);
 | 
			
		||||
    c=Lit_pixel_dans_ecran_feedback(x+1,y);
 | 
			
		||||
    Poids_total+=(Poids=Smooth_Matrice[2][1]);
 | 
			
		||||
    r+=Poids*Principal_Palette[c].R;
 | 
			
		||||
    g+=Poids*Principal_Palette[c].G;
 | 
			
		||||
    b+=Poids*Principal_Palette[c].B;
 | 
			
		||||
 | 
			
		||||
    if (Y)
 | 
			
		||||
    if (y)
 | 
			
		||||
    {
 | 
			
		||||
      c=Lit_pixel_dans_ecran_feedback(X+1,Y-1);
 | 
			
		||||
      c=Lit_pixel_dans_ecran_feedback(x+1,y-1);
 | 
			
		||||
      Poids_total+=(Poids=Smooth_Matrice[2][0]);
 | 
			
		||||
      r+=Poids*Principal_Palette[c].R;
 | 
			
		||||
      g+=Poids*Principal_Palette[c].G;
 | 
			
		||||
@ -2496,7 +2496,7 @@ byte Effet_Smooth(word X,word Y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
 | 
			
		||||
      if (Y2)
 | 
			
		||||
      {
 | 
			
		||||
        c=Lit_pixel_dans_ecran_feedback(X+1,Y+1);
 | 
			
		||||
        c=Lit_pixel_dans_ecran_feedback(x+1,y+1);
 | 
			
		||||
        Poids_total+=(Poids=Smooth_Matrice[2][2]);
 | 
			
		||||
        r+=Poids*Principal_Palette[c].R;
 | 
			
		||||
        g+=Poids*Principal_Palette[c].G;
 | 
			
		||||
@ -2505,9 +2505,9 @@ byte Effet_Smooth(word X,word Y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (Y)
 | 
			
		||||
  if (y)
 | 
			
		||||
  {
 | 
			
		||||
    c=Lit_pixel_dans_ecran_feedback(X,Y-1);
 | 
			
		||||
    c=Lit_pixel_dans_ecran_feedback(x,y-1);
 | 
			
		||||
    Poids_total+=(Poids=Smooth_Matrice[1][0]);
 | 
			
		||||
    r+=Poids*Principal_Palette[c].R;
 | 
			
		||||
    g+=Poids*Principal_Palette[c].G;
 | 
			
		||||
@ -2516,7 +2516,7 @@ byte Effet_Smooth(word X,word Y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
 | 
			
		||||
  if (Y2)
 | 
			
		||||
  {
 | 
			
		||||
    c=Lit_pixel_dans_ecran_feedback(X,Y+1);
 | 
			
		||||
    c=Lit_pixel_dans_ecran_feedback(x,y+1);
 | 
			
		||||
    Poids_total+=(Poids=Smooth_Matrice[1][2]);
 | 
			
		||||
    r+=Poids*Principal_Palette[c].R;
 | 
			
		||||
    g+=Poids*Principal_Palette[c].G;
 | 
			
		||||
@ -2527,6 +2527,6 @@ byte Effet_Smooth(word X,word Y,__attribute__((unused)) byte Couleur)
 | 
			
		||||
    Meilleure_couleur(Round_div(r,Poids_total),
 | 
			
		||||
                      Round_div(g,Poids_total),
 | 
			
		||||
                      Round_div(b,Poids_total)):
 | 
			
		||||
    Lit_pixel_dans_ecran_courant(X,Y); // C'est bien l'écran courant et pas
 | 
			
		||||
    Lit_pixel_dans_ecran_courant(x,y); // C'est bien l'écran courant et pas
 | 
			
		||||
                                       // l'écran feedback car il s'agit de ne
 | 
			
		||||
}                                      // pas modifier l'écran courant.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										20
									
								
								graph.h
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								graph.h
									
									
									
									
									
								
							@ -23,24 +23,24 @@ void Liste2tables(word * list, short step, byte mode, byte * Table_inc,
 | 
			
		||||
        byte * Table_dec
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
void Transformer_point(short X, short Y,
 | 
			
		||||
void Transformer_point(short x, short y,
 | 
			
		||||
                       float cosA, float sinA, short * Xr, short * Yr);
 | 
			
		||||
 | 
			
		||||
int Initialiser_mode_video(int width, int height, int fullscreen);
 | 
			
		||||
 | 
			
		||||
byte Aucun_effet(word X,word Y,byte Couleur);
 | 
			
		||||
byte Effet_Shade(word X,word Y,byte Couleur);
 | 
			
		||||
byte Effet_Quick_shade(word X,word Y,byte Couleur);
 | 
			
		||||
byte Effet_Tiling(word X,word Y,byte Couleur);
 | 
			
		||||
byte Effet_Smooth(word X,word Y,byte Couleur);
 | 
			
		||||
byte Aucun_effet(word x,word y,byte Couleur);
 | 
			
		||||
byte Effet_Shade(word x,word y,byte Couleur);
 | 
			
		||||
byte Effet_Quick_shade(word x,word y,byte Couleur);
 | 
			
		||||
byte Effet_Tiling(word x,word y,byte Couleur);
 | 
			
		||||
byte Effet_Smooth(word x,word y,byte Couleur);
 | 
			
		||||
 | 
			
		||||
void Afficher_foreback(void);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Afficher_pixel(word X,word Y,byte Couleur);
 | 
			
		||||
void Afficher_pixel(word x,word y,byte Couleur);
 | 
			
		||||
 | 
			
		||||
void Afficher_pinceau(short X,short Y,byte Couleur,byte is_preview);
 | 
			
		||||
void Effacer_pinceau(short X,short Y);
 | 
			
		||||
void Afficher_pinceau(short x,short y,byte Couleur,byte is_preview);
 | 
			
		||||
void Effacer_pinceau(short x,short y);
 | 
			
		||||
 | 
			
		||||
void Redimentionner_image(word Largeur_choisie,word Hauteur_choisie);
 | 
			
		||||
 | 
			
		||||
@ -115,4 +115,4 @@ void Remap_picture(void);
 | 
			
		||||
 | 
			
		||||
// Définition d'une fonction générique de traçage de figures:
 | 
			
		||||
fonction_afficheur Pixel_figure;
 | 
			
		||||
void Mettre_Ecran_A_Jour(short X, short Y, short width, short height);
 | 
			
		||||
void Mettre_Ecran_A_Jour(short x, short y, short width, short height);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										204
									
								
								init.c
									
									
									
									
									
								
							
							
						
						
									
										204
									
								
								init.c
									
									
									
									
									
								
							@ -76,92 +76,92 @@ void bstrtostr( BSTR in, STRPTR out, TEXT max );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Fonctions de lecture dans la skin de l'interface graphique
 | 
			
		||||
void Chercher_bas(SDL_Surface *gui, int *Debut_X, int *Debut_Y, byte Couleur_neutre,char * Section)
 | 
			
		||||
void Chercher_bas(SDL_Surface *gui, int *Debut_X, int *Debut_Y, byte Couleur_neutre,char * section)
 | 
			
		||||
{
 | 
			
		||||
  byte Couleur;
 | 
			
		||||
  int Y;
 | 
			
		||||
  Y=*Debut_Y;
 | 
			
		||||
  int y;
 | 
			
		||||
  y=*Debut_Y;
 | 
			
		||||
  *Debut_X=0;
 | 
			
		||||
  do
 | 
			
		||||
  {
 | 
			
		||||
    Couleur=Sdl_Get_pixel_8(gui,*Debut_X,Y);
 | 
			
		||||
    Couleur=Sdl_Get_pixel_8(gui,*Debut_X,y);
 | 
			
		||||
    if (Couleur!=Couleur_neutre)
 | 
			
		||||
    {
 | 
			
		||||
      *Debut_Y=Y;
 | 
			
		||||
      *Debut_Y=y;
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    Y++;
 | 
			
		||||
  } while (Y<gui->h);
 | 
			
		||||
    y++;
 | 
			
		||||
  } while (y<gui->h);
 | 
			
		||||
  
 | 
			
		||||
  printf("Error in skin file: Was looking down from %d,%d for a '%s', and reached the end of the image\n",
 | 
			
		||||
    *Debut_X, *Debut_Y, Section);
 | 
			
		||||
    *Debut_X, *Debut_Y, section);
 | 
			
		||||
  Erreur(ERREUR_GUI_CORROMPU);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Chercher_droite(SDL_Surface *gui, int *Debut_X, int Debut_Y, byte Couleur_neutre, char * Section)
 | 
			
		||||
void Chercher_droite(SDL_Surface *gui, int *Debut_X, int Debut_Y, byte Couleur_neutre, char * section)
 | 
			
		||||
{
 | 
			
		||||
  byte Couleur;
 | 
			
		||||
  int X;
 | 
			
		||||
  X=*Debut_X;
 | 
			
		||||
  int x;
 | 
			
		||||
  x=*Debut_X;
 | 
			
		||||
  
 | 
			
		||||
  do
 | 
			
		||||
  {
 | 
			
		||||
    Couleur=Sdl_Get_pixel_8(gui,X,Debut_Y);
 | 
			
		||||
    Couleur=Sdl_Get_pixel_8(gui,x,Debut_Y);
 | 
			
		||||
    if (Couleur!=Couleur_neutre)
 | 
			
		||||
    {
 | 
			
		||||
      *Debut_X=X;
 | 
			
		||||
      *Debut_X=x;
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    X++;
 | 
			
		||||
  } while (X<gui->w);
 | 
			
		||||
    x++;
 | 
			
		||||
  } while (x<gui->w);
 | 
			
		||||
  
 | 
			
		||||
  printf("Error in skin file: Was looking right from %d,%d for a '%s', and reached the edege of the image\n",
 | 
			
		||||
    *Debut_X, Debut_Y, Section);
 | 
			
		||||
    *Debut_X, Debut_Y, section);
 | 
			
		||||
  Erreur(ERREUR_GUI_CORROMPU);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Lire_bloc(SDL_Surface *gui, int Debut_X, int Debut_Y, void *Dest, int width, int height, char * Section, int Type)
 | 
			
		||||
void Lire_bloc(SDL_Surface *gui, int Debut_X, int Debut_Y, void *Dest, int width, int height, char * section, int type)
 | 
			
		||||
{
 | 
			
		||||
  // Type: 0 = normal GUI element, only 4 colors allowed
 | 
			
		||||
  // Type: 1 = mouse cursor, 4 colors allowed + transparent
 | 
			
		||||
  // Type: 2 = brush icon or sieve pattern (only CM_Blanc and CM_Trans)
 | 
			
		||||
  // Type: 3 = raw bitmap (splash screen)
 | 
			
		||||
  // type: 0 = normal GUI element, only 4 colors allowed
 | 
			
		||||
  // type: 1 = mouse cursor, 4 colors allowed + transparent
 | 
			
		||||
  // type: 2 = brush icon or sieve pattern (only CM_Blanc and CM_Trans)
 | 
			
		||||
  // type: 3 = raw bitmap (splash screen)
 | 
			
		||||
  
 | 
			
		||||
  byte * Ptr=Dest;
 | 
			
		||||
  int X,Y;
 | 
			
		||||
  int x,y;
 | 
			
		||||
  byte Couleur;
 | 
			
		||||
 | 
			
		||||
  // Verification taille
 | 
			
		||||
  if (Debut_Y+height>=gui->h || Debut_X+width>=gui->w)
 | 
			
		||||
  {
 | 
			
		||||
    printf("Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but it doesn't fit the image.\n",
 | 
			
		||||
      Debut_X, Debut_Y, height, width, Section);
 | 
			
		||||
      Debut_X, Debut_Y, height, width, section);
 | 
			
		||||
    Erreur(ERREUR_GUI_CORROMPU);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  for (Y=Debut_Y; Y<Debut_Y+height; Y++)
 | 
			
		||||
  for (y=Debut_Y; y<Debut_Y+height; y++)
 | 
			
		||||
  {
 | 
			
		||||
    for (X=Debut_X; X<Debut_X+width; X++)
 | 
			
		||||
    for (x=Debut_X; x<Debut_X+width; x++)
 | 
			
		||||
    {
 | 
			
		||||
      Couleur=Sdl_Get_pixel_8(gui,X,Y);
 | 
			
		||||
      if (Type==0 && (Couleur != CM_Noir && Couleur != CM_Fonce && Couleur != CM_Clair && Couleur != CM_Blanc))
 | 
			
		||||
      Couleur=Sdl_Get_pixel_8(gui,x,y);
 | 
			
		||||
      if (type==0 && (Couleur != CM_Noir && Couleur != CM_Fonce && Couleur != CM_Clair && Couleur != CM_Blanc))
 | 
			
		||||
      {
 | 
			
		||||
        printf("Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but at %d,%d a pixel was found with color %d which isn't one of the GUI colors (which were detected as %d,%d,%d,%d.\n",
 | 
			
		||||
          Debut_X, Debut_Y, height, width, Section, X, Y, Couleur, CM_Noir, CM_Fonce, CM_Clair, CM_Blanc);
 | 
			
		||||
          Debut_X, Debut_Y, height, width, section, x, y, Couleur, CM_Noir, CM_Fonce, CM_Clair, CM_Blanc);
 | 
			
		||||
        Erreur(ERREUR_GUI_CORROMPU);
 | 
			
		||||
      }
 | 
			
		||||
      if (Type==1 && (Couleur != CM_Noir && Couleur != CM_Fonce && Couleur != CM_Clair && Couleur != CM_Blanc && Couleur != CM_Trans))
 | 
			
		||||
      if (type==1 && (Couleur != CM_Noir && Couleur != CM_Fonce && Couleur != CM_Clair && Couleur != CM_Blanc && Couleur != CM_Trans))
 | 
			
		||||
      {
 | 
			
		||||
        printf("Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but at %d,%d a pixel was found with color %d which isn't one of the mouse colors (which were detected as %d,%d,%d,%d,%d.\n",
 | 
			
		||||
          Debut_X, Debut_Y, height, width, Section, X, Y, Couleur, CM_Noir, CM_Fonce, CM_Clair, CM_Blanc, CM_Trans);
 | 
			
		||||
          Debut_X, Debut_Y, height, width, section, x, y, Couleur, CM_Noir, CM_Fonce, CM_Clair, CM_Blanc, CM_Trans);
 | 
			
		||||
        Erreur(ERREUR_GUI_CORROMPU);
 | 
			
		||||
      }
 | 
			
		||||
      if (Type==2)
 | 
			
		||||
      if (type==2)
 | 
			
		||||
      {
 | 
			
		||||
        if (Couleur != CM_Blanc && Couleur != CM_Trans)
 | 
			
		||||
        {
 | 
			
		||||
          printf("Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but at %d,%d a pixel was found with color %d which isn't one of the brush colors (which were detected as %d on %d.\n",
 | 
			
		||||
            Debut_X, Debut_Y, height, width, Section, X, Y, Couleur, CM_Blanc, CM_Trans);
 | 
			
		||||
            Debut_X, Debut_Y, height, width, section, x, y, Couleur, CM_Blanc, CM_Trans);
 | 
			
		||||
          Erreur(ERREUR_GUI_CORROMPU);
 | 
			
		||||
        }
 | 
			
		||||
        // Conversion en 0/1 pour les brosses monochromes internes
 | 
			
		||||
@ -173,19 +173,19 @@ void Lire_bloc(SDL_Surface *gui, int Debut_X, int Debut_Y, void *Dest, int width
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Lire_trame(SDL_Surface *gui, int Debut_X, int Debut_Y, word *Dest, char * Section)
 | 
			
		||||
void Lire_trame(SDL_Surface *gui, int Debut_X, int Debut_Y, word *Dest, char * section)
 | 
			
		||||
{
 | 
			
		||||
  byte Buffer[256];
 | 
			
		||||
  int X,Y;
 | 
			
		||||
  int x,y;
 | 
			
		||||
  
 | 
			
		||||
  Lire_bloc(gui, Debut_X, Debut_Y, Buffer, 16, 16, Section, 2);
 | 
			
		||||
  Lire_bloc(gui, Debut_X, Debut_Y, Buffer, 16, 16, section, 2);
 | 
			
		||||
 | 
			
		||||
  for (Y=0; Y<16; Y++)
 | 
			
		||||
  for (y=0; y<16; y++)
 | 
			
		||||
  {
 | 
			
		||||
    *Dest=0;
 | 
			
		||||
    for (X=0; X<16; X++)
 | 
			
		||||
    for (x=0; x<16; x++)
 | 
			
		||||
    {
 | 
			
		||||
      *Dest=*Dest | Buffer[Y*16+X]<<X;
 | 
			
		||||
      *Dest=*Dest | Buffer[y*16+x]<<x;
 | 
			
		||||
    }
 | 
			
		||||
    Dest++;
 | 
			
		||||
  }
 | 
			
		||||
@ -1120,14 +1120,14 @@ void Initialisation_des_operations(void)
 | 
			
		||||
{
 | 
			
		||||
  byte number; // Numéro de l'option en cours d'auto-initialisation
 | 
			
		||||
  byte Bouton; // Bouton souris en cours d'auto-initialisation
 | 
			
		||||
  byte Taille; // Taille de la pile en cours d'auto-initialisation
 | 
			
		||||
  byte stack_index; // Taille de la pile en cours d'auto-initialisation
 | 
			
		||||
 | 
			
		||||
  // Auto-initialisation des opérations (vers des actions inoffensives)
 | 
			
		||||
 | 
			
		||||
  for (number=0;number<NB_OPERATIONS;number++)
 | 
			
		||||
    for (Bouton=0;Bouton<3;Bouton++)
 | 
			
		||||
      for (Taille=0;Taille<TAILLE_PILE_OPERATIONS;Taille++)
 | 
			
		||||
        Initialiser_operation(number,Bouton,Taille,Print_coordonnees,0);
 | 
			
		||||
      for (stack_index=0;stack_index<TAILLE_PILE_OPERATIONS;stack_index++)
 | 
			
		||||
        Initialiser_operation(number,Bouton,stack_index,Print_coordonnees,0);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  // Ici viennent les déclarations détaillées des opérations
 | 
			
		||||
@ -1661,7 +1661,7 @@ int Charger_CFG(int Tout_charger)
 | 
			
		||||
  char Nom_du_fichier[TAILLE_CHEMIN_FICHIER];
 | 
			
		||||
  long Taille_fichier;
 | 
			
		||||
  int  Indice,Indice2;
 | 
			
		||||
  Config_Header       CFG_Header;
 | 
			
		||||
  Config_Header       cfg_header;
 | 
			
		||||
  Config_Chunk        Chunk;
 | 
			
		||||
  Config_Infos_touche CFG_Infos_touche;
 | 
			
		||||
  Config_Mode_video   CFG_Mode_video;
 | 
			
		||||
@ -1677,48 +1677,48 @@ int Charger_CFG(int Tout_charger)
 | 
			
		||||
  if ((Handle=fopen(Nom_du_fichier,"rb"))==NULL)
 | 
			
		||||
    return ERREUR_CFG_ABSENT;
 | 
			
		||||
 | 
			
		||||
  if ( (Taille_fichier<(long)sizeof(CFG_Header))
 | 
			
		||||
    || (!read_bytes(Handle, &CFG_Header.Signature, 3))
 | 
			
		||||
    || memcmp(CFG_Header.Signature,"CFG",3)
 | 
			
		||||
    || (!read_byte(Handle, &CFG_Header.Version1))
 | 
			
		||||
    || (!read_byte(Handle, &CFG_Header.Version2))
 | 
			
		||||
    || (!read_byte(Handle, &CFG_Header.Beta1))
 | 
			
		||||
    || (!read_byte(Handle, &CFG_Header.Beta2)) )
 | 
			
		||||
  if ( (Taille_fichier<(long)sizeof(cfg_header))
 | 
			
		||||
    || (!read_bytes(Handle, &cfg_header.Signature, 3))
 | 
			
		||||
    || memcmp(cfg_header.Signature,"CFG",3)
 | 
			
		||||
    || (!read_byte(Handle, &cfg_header.Version1))
 | 
			
		||||
    || (!read_byte(Handle, &cfg_header.Version2))
 | 
			
		||||
    || (!read_byte(Handle, &cfg_header.Beta1))
 | 
			
		||||
    || (!read_byte(Handle, &cfg_header.Beta2)) )
 | 
			
		||||
      goto Erreur_lecture_config;
 | 
			
		||||
 | 
			
		||||
  // Version DOS de Robinson et X-Man
 | 
			
		||||
  if ( (CFG_Header.Version1== 2)
 | 
			
		||||
    && (CFG_Header.Version2== 0)
 | 
			
		||||
    && (CFG_Header.Beta1== 96))
 | 
			
		||||
  if ( (cfg_header.Version1== 2)
 | 
			
		||||
    && (cfg_header.Version2== 0)
 | 
			
		||||
    && (cfg_header.Beta1== 96))
 | 
			
		||||
  {
 | 
			
		||||
    // Les touches (scancodes) sont à convertir)
 | 
			
		||||
    Conversion_touches = 1;
 | 
			
		||||
  }
 | 
			
		||||
  // Version SDL jusqu'a 98%
 | 
			
		||||
  else if ( (CFG_Header.Version1== 2)
 | 
			
		||||
    && (CFG_Header.Version2== 0)
 | 
			
		||||
    && (CFG_Header.Beta1== 97))
 | 
			
		||||
  else if ( (cfg_header.Version1== 2)
 | 
			
		||||
    && (cfg_header.Version2== 0)
 | 
			
		||||
    && (cfg_header.Beta1== 97))
 | 
			
		||||
  {
 | 
			
		||||
    // Les touches 00FF (pas de touche) sont a comprendre comme 0x0000
 | 
			
		||||
    Conversion_touches = 2;
 | 
			
		||||
  }
 | 
			
		||||
  // Version SDL
 | 
			
		||||
  else if ( (CFG_Header.Version1!=VERSION1)
 | 
			
		||||
    || (CFG_Header.Version2!=VERSION2)
 | 
			
		||||
    || (CFG_Header.Beta1!=BETA1)
 | 
			
		||||
    || (CFG_Header.Beta2!=BETA2) )
 | 
			
		||||
  else if ( (cfg_header.Version1!=VERSION1)
 | 
			
		||||
    || (cfg_header.Version2!=VERSION2)
 | 
			
		||||
    || (cfg_header.Beta1!=BETA1)
 | 
			
		||||
    || (cfg_header.Beta2!=BETA2) )
 | 
			
		||||
    goto Erreur_config_ancienne;
 | 
			
		||||
 | 
			
		||||
  // - Lecture des infos contenues dans le fichier de config -
 | 
			
		||||
  while (read_byte(Handle, &Chunk.Number))
 | 
			
		||||
  {
 | 
			
		||||
    read_word_le(Handle, &Chunk.Taille);
 | 
			
		||||
    read_word_le(Handle, &Chunk.Size);
 | 
			
		||||
    switch (Chunk.Number)
 | 
			
		||||
    {
 | 
			
		||||
      case CHUNK_TOUCHES: // Touches
 | 
			
		||||
        if (Tout_charger)
 | 
			
		||||
        {
 | 
			
		||||
          for (Indice=0; Indice<(long)(Chunk.Taille/sizeof(CFG_Infos_touche)); Indice++)
 | 
			
		||||
          for (Indice=0; Indice<(long)(Chunk.Size/sizeof(CFG_Infos_touche)); Indice++)
 | 
			
		||||
          {
 | 
			
		||||
            if (!read_word_le(Handle, &CFG_Infos_touche.Number) ||
 | 
			
		||||
                !read_word_le(Handle, &CFG_Infos_touche.Touche) ||
 | 
			
		||||
@ -1766,12 +1766,12 @@ int Charger_CFG(int Tout_charger)
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
          if (fseek(Handle,Chunk.Taille,SEEK_CUR)==-1)
 | 
			
		||||
          if (fseek(Handle,Chunk.Size,SEEK_CUR)==-1)
 | 
			
		||||
            goto Erreur_lecture_config;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
      case CHUNK_MODES_VIDEO: // Modes vidéo
 | 
			
		||||
        for (Indice=0; Indice<(long)(Chunk.Taille/sizeof(CFG_Mode_video)); Indice++)
 | 
			
		||||
        for (Indice=0; Indice<(long)(Chunk.Size/sizeof(CFG_Mode_video)); Indice++)
 | 
			
		||||
        {
 | 
			
		||||
          if (!read_byte(Handle, &CFG_Mode_video.Etat) ||
 | 
			
		||||
              !read_word_le(Handle, &CFG_Mode_video.Width) ||
 | 
			
		||||
@ -1818,7 +1818,7 @@ int Charger_CFG(int Tout_charger)
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
          if (fseek(Handle,Chunk.Taille,SEEK_CUR)==-1)
 | 
			
		||||
          if (fseek(Handle,Chunk.Size,SEEK_CUR)==-1)
 | 
			
		||||
            goto Erreur_lecture_config;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
@ -1830,7 +1830,7 @@ int Charger_CFG(int Tout_charger)
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
          if (fseek(Handle,Chunk.Taille,SEEK_CUR)==-1)
 | 
			
		||||
          if (fseek(Handle,Chunk.Size,SEEK_CUR)==-1)
 | 
			
		||||
            goto Erreur_lecture_config;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
@ -1842,7 +1842,7 @@ int Charger_CFG(int Tout_charger)
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
          if (fseek(Handle,Chunk.Taille,SEEK_CUR)==-1)
 | 
			
		||||
          if (fseek(Handle,Chunk.Size,SEEK_CUR)==-1)
 | 
			
		||||
            goto Erreur_lecture_config;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
@ -1864,7 +1864,7 @@ int Charger_CFG(int Tout_charger)
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
          if (fseek(Handle,Chunk.Taille,SEEK_CUR)==-1)
 | 
			
		||||
          if (fseek(Handle,Chunk.Size,SEEK_CUR)==-1)
 | 
			
		||||
            goto Erreur_lecture_config;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
@ -1878,7 +1878,7 @@ int Charger_CFG(int Tout_charger)
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
          if (fseek(Handle,Chunk.Taille,SEEK_CUR)==-1)
 | 
			
		||||
          if (fseek(Handle,Chunk.Size,SEEK_CUR)==-1)
 | 
			
		||||
            goto Erreur_lecture_config;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
@ -1890,7 +1890,7 @@ int Charger_CFG(int Tout_charger)
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
          if (fseek(Handle,Chunk.Taille,SEEK_CUR)==-1)
 | 
			
		||||
          if (fseek(Handle,Chunk.Size,SEEK_CUR)==-1)
 | 
			
		||||
            goto Erreur_lecture_config;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
@ -1904,7 +1904,7 @@ int Charger_CFG(int Tout_charger)
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
          if (fseek(Handle,Chunk.Taille,SEEK_CUR)==-1)
 | 
			
		||||
          if (fseek(Handle,Chunk.Size,SEEK_CUR)==-1)
 | 
			
		||||
            goto Erreur_lecture_config;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
@ -1922,7 +1922,7 @@ int Charger_CFG(int Tout_charger)
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
          if (fseek(Handle,Chunk.Taille,SEEK_CUR)==-1)
 | 
			
		||||
          if (fseek(Handle,Chunk.Size,SEEK_CUR)==-1)
 | 
			
		||||
            goto Erreur_lecture_config;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
@ -1952,7 +1952,7 @@ int Sauver_CFG(void)
 | 
			
		||||
  int  Indice2;
 | 
			
		||||
  int Modes_a_sauver;
 | 
			
		||||
  char Nom_du_fichier[TAILLE_CHEMIN_FICHIER];
 | 
			
		||||
  Config_Header CFG_Header;
 | 
			
		||||
  Config_Header cfg_header;
 | 
			
		||||
  Config_Chunk Chunk;
 | 
			
		||||
  Config_Infos_touche CFG_Infos_touche;
 | 
			
		||||
  Config_Mode_video   CFG_Mode_video;
 | 
			
		||||
@ -1964,24 +1964,24 @@ int Sauver_CFG(void)
 | 
			
		||||
    return ERREUR_SAUVEGARDE_CFG;
 | 
			
		||||
 | 
			
		||||
  // Ecriture du header
 | 
			
		||||
  memcpy(CFG_Header.Signature,"CFG",3);
 | 
			
		||||
  CFG_Header.Version1=VERSION1;
 | 
			
		||||
  CFG_Header.Version2=VERSION2;
 | 
			
		||||
  CFG_Header.Beta1   =BETA1;
 | 
			
		||||
  CFG_Header.Beta2   =BETA2;
 | 
			
		||||
  if (!write_bytes(Handle, &CFG_Header.Signature,3) ||
 | 
			
		||||
      !write_byte(Handle, CFG_Header.Version1) ||
 | 
			
		||||
      !write_byte(Handle, CFG_Header.Version2) ||
 | 
			
		||||
      !write_byte(Handle, CFG_Header.Beta1) ||
 | 
			
		||||
      !write_byte(Handle, CFG_Header.Beta2) )
 | 
			
		||||
  memcpy(cfg_header.Signature,"CFG",3);
 | 
			
		||||
  cfg_header.Version1=VERSION1;
 | 
			
		||||
  cfg_header.Version2=VERSION2;
 | 
			
		||||
  cfg_header.Beta1   =BETA1;
 | 
			
		||||
  cfg_header.Beta2   =BETA2;
 | 
			
		||||
  if (!write_bytes(Handle, &cfg_header.Signature,3) ||
 | 
			
		||||
      !write_byte(Handle, cfg_header.Version1) ||
 | 
			
		||||
      !write_byte(Handle, cfg_header.Version2) ||
 | 
			
		||||
      !write_byte(Handle, cfg_header.Beta1) ||
 | 
			
		||||
      !write_byte(Handle, cfg_header.Beta2) )
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
 | 
			
		||||
  // Enregistrement des touches
 | 
			
		||||
  Chunk.Number=CHUNK_TOUCHES;
 | 
			
		||||
  Chunk.Taille=NB_TOUCHES*sizeof(CFG_Infos_touche);
 | 
			
		||||
  Chunk.Size=NB_TOUCHES*sizeof(CFG_Infos_touche);
 | 
			
		||||
 | 
			
		||||
  if (!write_byte(Handle, Chunk.Number) ||
 | 
			
		||||
      !write_word_le(Handle, Chunk.Taille) )
 | 
			
		||||
      !write_word_le(Handle, Chunk.Size) )
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
  for (Indice=0; Indice<NB_TOUCHES; Indice++)
 | 
			
		||||
  {
 | 
			
		||||
@ -2015,10 +2015,10 @@ int Sauver_CFG(void)
 | 
			
		||||
 | 
			
		||||
  // Sauvegarde de l'état de chaque mode vidéo
 | 
			
		||||
  Chunk.Number=CHUNK_MODES_VIDEO;
 | 
			
		||||
  Chunk.Taille=Modes_a_sauver * sizeof(CFG_Mode_video);
 | 
			
		||||
  Chunk.Size=Modes_a_sauver * sizeof(CFG_Mode_video);
 | 
			
		||||
 | 
			
		||||
  if (!write_byte(Handle, Chunk.Number) ||
 | 
			
		||||
      !write_word_le(Handle, Chunk.Taille) )
 | 
			
		||||
      !write_word_le(Handle, Chunk.Size) )
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
  for (Indice=1; Indice<Nb_modes_video; Indice++)
 | 
			
		||||
    if (Mode_video[Indice].Etat==0 || Mode_video[Indice].Etat==2 || Mode_video[Indice].Etat==3)
 | 
			
		||||
@ -2035,9 +2035,9 @@ int Sauver_CFG(void)
 | 
			
		||||
 | 
			
		||||
  // Ecriture des données du Shade (précédées du shade en cours)
 | 
			
		||||
  Chunk.Number=CHUNK_SHADE;
 | 
			
		||||
  Chunk.Taille=sizeof(Shade_Liste)+sizeof(Shade_Actuel);
 | 
			
		||||
  Chunk.Size=sizeof(Shade_Liste)+sizeof(Shade_Actuel);
 | 
			
		||||
  if (!write_byte(Handle, Chunk.Number) ||
 | 
			
		||||
      !write_word_le(Handle, Chunk.Taille) )
 | 
			
		||||
      !write_word_le(Handle, Chunk.Size) )
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
  if (!write_byte(Handle, Shade_Actuel))
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
@ -2055,27 +2055,27 @@ int Sauver_CFG(void)
 | 
			
		||||
 | 
			
		||||
  // Sauvegarde des informations du Masque
 | 
			
		||||
  Chunk.Number=CHUNK_MASQUE;
 | 
			
		||||
  Chunk.Taille=sizeof(Mask_table);
 | 
			
		||||
  Chunk.Size=sizeof(Mask_table);
 | 
			
		||||
  if (!write_byte(Handle, Chunk.Number) ||
 | 
			
		||||
      !write_word_le(Handle, Chunk.Taille) )
 | 
			
		||||
      !write_word_le(Handle, Chunk.Size) )
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
  if (!write_bytes(Handle, Mask_table,256))
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
 | 
			
		||||
  // Sauvegarde des informations du Stencil
 | 
			
		||||
  Chunk.Number=CHUNK_STENCIL;
 | 
			
		||||
  Chunk.Taille=sizeof(Stencil);
 | 
			
		||||
  Chunk.Size=sizeof(Stencil);
 | 
			
		||||
  if (!write_byte(Handle, Chunk.Number) ||
 | 
			
		||||
      !write_word_le(Handle, Chunk.Taille) )
 | 
			
		||||
      !write_word_le(Handle, Chunk.Size) )
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
  if (!write_bytes(Handle, Stencil,256))
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
 | 
			
		||||
  // Sauvegarde des informations des dégradés
 | 
			
		||||
  Chunk.Number=CHUNK_DEGRADES;
 | 
			
		||||
  Chunk.Taille=sizeof(Degrade_Tableau)+1;
 | 
			
		||||
  Chunk.Size=sizeof(Degrade_Tableau)+1;
 | 
			
		||||
  if (!write_byte(Handle, Chunk.Number) ||
 | 
			
		||||
      !write_word_le(Handle, Chunk.Taille) )
 | 
			
		||||
      !write_word_le(Handle, Chunk.Size) )
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
  if (!write_byte(Handle, Degrade_Courant))
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
@ -2091,9 +2091,9 @@ int Sauver_CFG(void)
 | 
			
		||||
 | 
			
		||||
  // Sauvegarde de la matrice du Smooth
 | 
			
		||||
  Chunk.Number=CHUNK_SMOOTH;
 | 
			
		||||
  Chunk.Taille=sizeof(Smooth_Matrice);
 | 
			
		||||
  Chunk.Size=sizeof(Smooth_Matrice);
 | 
			
		||||
  if (!write_byte(Handle, Chunk.Number) ||
 | 
			
		||||
      !write_word_le(Handle, Chunk.Taille) )
 | 
			
		||||
      !write_word_le(Handle, Chunk.Size) )
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
  for (Indice=0; Indice<3; Indice++)
 | 
			
		||||
    for (Indice2=0; Indice2<3; Indice2++)
 | 
			
		||||
@ -2102,18 +2102,18 @@ int Sauver_CFG(void)
 | 
			
		||||
 | 
			
		||||
  // Sauvegarde des couleurs à exclure
 | 
			
		||||
  Chunk.Number=CHUNK_EXCLUDE_COLORS;
 | 
			
		||||
  Chunk.Taille=sizeof(Exclude_color);
 | 
			
		||||
  Chunk.Size=sizeof(Exclude_color);
 | 
			
		||||
  if (!write_byte(Handle, Chunk.Number) ||
 | 
			
		||||
      !write_word_le(Handle, Chunk.Taille) )
 | 
			
		||||
      !write_word_le(Handle, Chunk.Size) )
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
 if (!write_bytes(Handle, Exclude_color, 256))
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
 | 
			
		||||
  // Sauvegarde des informations du Quick-shade
 | 
			
		||||
  Chunk.Number=CHUNK_QUICK_SHADE;
 | 
			
		||||
  Chunk.Taille=sizeof(Quick_shade_Step)+sizeof(Quick_shade_Loop);
 | 
			
		||||
  Chunk.Size=sizeof(Quick_shade_Step)+sizeof(Quick_shade_Loop);
 | 
			
		||||
  if (!write_byte(Handle, Chunk.Number) ||
 | 
			
		||||
      !write_word_le(Handle, Chunk.Taille) )
 | 
			
		||||
      !write_word_le(Handle, Chunk.Size) )
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
  if (!write_byte(Handle, Quick_shade_Step))
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
@ -2122,9 +2122,9 @@ int Sauver_CFG(void)
 | 
			
		||||
 | 
			
		||||
  // Sauvegarde des informations de la grille
 | 
			
		||||
  Chunk.Number=CHUNK_GRILLE;
 | 
			
		||||
  Chunk.Taille=8;
 | 
			
		||||
  Chunk.Size=8;
 | 
			
		||||
  if (!write_byte(Handle, Chunk.Number) ||
 | 
			
		||||
      !write_word_le(Handle, Chunk.Taille) )
 | 
			
		||||
      !write_word_le(Handle, Chunk.Size) )
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
  if (!write_word_le(Handle, Snap_Largeur))
 | 
			
		||||
    goto Erreur_sauvegarde_config;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										28
									
								
								input.c
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								input.c
									
									
									
									
									
								
							@ -87,7 +87,7 @@ int Est_Raccourci(word Touche, word function)
 | 
			
		||||
// Called each time there is a cursor move, either triggered by mouse or keyboard shortcuts
 | 
			
		||||
int Move_cursor_with_constraints()
 | 
			
		||||
{
 | 
			
		||||
  int Retour=0;
 | 
			
		||||
  int feedback=0;
 | 
			
		||||
  
 | 
			
		||||
  //Gestion "avancée" du curseur: interdire la descente du curseur dans le
 | 
			
		||||
  //menu lorsqu'on est en train de travailler dans l'image
 | 
			
		||||
@ -136,7 +136,7 @@ int Move_cursor_with_constraints()
 | 
			
		||||
    (INPUT_Nouveau_Mouse_K != Mouse_K))
 | 
			
		||||
  {
 | 
			
		||||
    if ((INPUT_Nouveau_Mouse_K != Mouse_K))
 | 
			
		||||
      Retour=1;        
 | 
			
		||||
      feedback=1;        
 | 
			
		||||
    Effacer_curseur(); // On efface le curseur AVANT de le déplacer...
 | 
			
		||||
    Mouse_X=INPUT_Nouveau_Mouse_X;
 | 
			
		||||
    Mouse_Y=INPUT_Nouveau_Mouse_Y;
 | 
			
		||||
@ -146,10 +146,10 @@ int Move_cursor_with_constraints()
 | 
			
		||||
    
 | 
			
		||||
    Mouse_count++;
 | 
			
		||||
    if (Mouse_count>Config.Mouse_Merge_movement)
 | 
			
		||||
      Retour=1;
 | 
			
		||||
      feedback=1;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return Retour;
 | 
			
		||||
  return feedback;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Fonction qui filtre les evenements génériques.
 | 
			
		||||
@ -549,32 +549,32 @@ void Handle_Joystick_Movement(SDL_JoyAxisEvent event)
 | 
			
		||||
// Attempts to move the mouse cursor by the given deltas (may be more than 1 pixel at a time)
 | 
			
		||||
int Cursor_displace(short Delta_X, short Delta_Y)
 | 
			
		||||
{
 | 
			
		||||
  short X=INPUT_Nouveau_Mouse_X;
 | 
			
		||||
  short Y=INPUT_Nouveau_Mouse_Y;
 | 
			
		||||
  short x=INPUT_Nouveau_Mouse_X;
 | 
			
		||||
  short y=INPUT_Nouveau_Mouse_Y;
 | 
			
		||||
  
 | 
			
		||||
  if(Loupe_Mode && INPUT_Nouveau_Mouse_Y < Menu_Ordonnee && INPUT_Nouveau_Mouse_X > Principal_Split)
 | 
			
		||||
  {
 | 
			
		||||
    // Cursor in zoomed area
 | 
			
		||||
    
 | 
			
		||||
    if (Delta_X<0)
 | 
			
		||||
      INPUT_Nouveau_Mouse_X = Max(Principal_Split, X-Loupe_Facteur);
 | 
			
		||||
      INPUT_Nouveau_Mouse_X = Max(Principal_Split, x-Loupe_Facteur);
 | 
			
		||||
    else if (Delta_X>0)
 | 
			
		||||
      INPUT_Nouveau_Mouse_X = Min(Largeur_ecran-1, X+Loupe_Facteur);
 | 
			
		||||
      INPUT_Nouveau_Mouse_X = Min(Largeur_ecran-1, x+Loupe_Facteur);
 | 
			
		||||
    if (Delta_Y<0)
 | 
			
		||||
      INPUT_Nouveau_Mouse_Y = Max(0, Y-Loupe_Facteur);
 | 
			
		||||
      INPUT_Nouveau_Mouse_Y = Max(0, y-Loupe_Facteur);
 | 
			
		||||
    else if (Delta_Y>0)
 | 
			
		||||
      INPUT_Nouveau_Mouse_Y = Min(Hauteur_ecran-1, Y+Loupe_Facteur);
 | 
			
		||||
      INPUT_Nouveau_Mouse_Y = Min(Hauteur_ecran-1, y+Loupe_Facteur);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    if (Delta_X<0)
 | 
			
		||||
      INPUT_Nouveau_Mouse_X = Max(0, X+Delta_X);
 | 
			
		||||
      INPUT_Nouveau_Mouse_X = Max(0, x+Delta_X);
 | 
			
		||||
    else if (Delta_X>0)
 | 
			
		||||
      INPUT_Nouveau_Mouse_X = Min(Largeur_ecran-1, X+Delta_X);
 | 
			
		||||
      INPUT_Nouveau_Mouse_X = Min(Largeur_ecran-1, x+Delta_X);
 | 
			
		||||
    if (Delta_Y<0)
 | 
			
		||||
      INPUT_Nouveau_Mouse_Y = Max(0, Y+Delta_Y);
 | 
			
		||||
      INPUT_Nouveau_Mouse_Y = Max(0, y+Delta_Y);
 | 
			
		||||
    else if (Delta_Y>0)
 | 
			
		||||
      INPUT_Nouveau_Mouse_Y = Min(Hauteur_ecran-1, Y+Delta_Y);
 | 
			
		||||
      INPUT_Nouveau_Mouse_Y = Min(Hauteur_ecran-1, y+Delta_Y);
 | 
			
		||||
  }
 | 
			
		||||
  return Move_cursor_with_constraints();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								io.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								io.c
									
									
									
									
									
								
							@ -71,15 +71,15 @@ int write_byte(FILE *file, byte b)
 | 
			
		||||
}
 | 
			
		||||
// Lit des octets
 | 
			
		||||
// Renvoie -1 si OK, 0 en cas d'erreur
 | 
			
		||||
int read_bytes(FILE *file, void *Dest, size_t Taille)
 | 
			
		||||
int read_bytes(FILE *file, void *Dest, size_t size)
 | 
			
		||||
{
 | 
			
		||||
  return fread(Dest, 1, Taille, file) == Taille;
 | 
			
		||||
  return fread(Dest, 1, size, file) == size;
 | 
			
		||||
}
 | 
			
		||||
// Ecrit des octets
 | 
			
		||||
// Renvoie -1 si OK, 0 en cas d'erreur
 | 
			
		||||
int write_bytes(FILE *file, void *Src, size_t Taille)
 | 
			
		||||
int write_bytes(FILE *file, void *Src, size_t size)
 | 
			
		||||
{
 | 
			
		||||
  return fwrite(Src, 1, Taille, file) == Taille;
 | 
			
		||||
  return fwrite(Src, 1, size, file) == size;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Lit un word (little-endian)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								io.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								io.h
									
									
									
									
									
								
							@ -25,8 +25,8 @@ dword endian_magic32(dword x);
 | 
			
		||||
int read_byte(FILE *file, byte *Dest);
 | 
			
		||||
int write_byte(FILE *file, byte b);
 | 
			
		||||
 | 
			
		||||
int read_bytes(FILE *file, void *Dest, size_t Taille);
 | 
			
		||||
int write_bytes(FILE *file, void *Dest, size_t Taille);
 | 
			
		||||
int read_bytes(FILE *file, void *Dest, size_t size);
 | 
			
		||||
int write_bytes(FILE *file, void *Dest, size_t size);
 | 
			
		||||
 | 
			
		||||
int read_word_le(FILE *file, word *Dest);
 | 
			
		||||
int write_word_le(FILE *file, word w);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										606
									
								
								loadsave.c
									
									
									
									
									
								
							
							
						
						
									
										606
									
								
								loadsave.c
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										14
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								main.c
									
									
									
									
									
								
							@ -615,7 +615,7 @@ int Initialisation_du_programme(int argc,char * argv[])
 | 
			
		||||
// ------------------------- Fermeture du programme --------------------------
 | 
			
		||||
void Fermeture_du_programme(void)
 | 
			
		||||
{
 | 
			
		||||
  int      Retour;
 | 
			
		||||
  int      return_code;
 | 
			
		||||
 | 
			
		||||
  // On libère le buffer de gestion de lignes
 | 
			
		||||
  free(Buffer_de_ligne_horizontale);
 | 
			
		||||
@ -635,12 +635,12 @@ void Fermeture_du_programme(void)
 | 
			
		||||
    // On sauvegarde les données dans le .CFG et dans le .INI
 | 
			
		||||
    if (Config.Auto_save)
 | 
			
		||||
    {
 | 
			
		||||
      Retour=Sauver_CFG();
 | 
			
		||||
      if (Retour)
 | 
			
		||||
        Erreur(Retour);
 | 
			
		||||
      Retour=Sauver_INI(&Config);
 | 
			
		||||
      if (Retour)
 | 
			
		||||
        Erreur(Retour);
 | 
			
		||||
      return_code=Sauver_CFG();
 | 
			
		||||
      if (return_code)
 | 
			
		||||
        Erreur(return_code);
 | 
			
		||||
      return_code=Sauver_INI(&Config);
 | 
			
		||||
      if (return_code)
 | 
			
		||||
        Erreur(return_code);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								moteur.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								moteur.c
									
									
									
									
									
								
							@ -1093,7 +1093,7 @@ void Gestion_principale(void)
 | 
			
		||||
 | 
			
		||||
//----------------------- Tracer une fenêtre d'options -----------------------
 | 
			
		||||
 | 
			
		||||
void Ouvrir_fenetre(word width,word height, char * Titre)
 | 
			
		||||
void Ouvrir_fenetre(word width,word height, char * title)
 | 
			
		||||
// Lors de l'appel à cette procédure, la souris doit être affichée.
 | 
			
		||||
// En sortie de cette procedure, la souris est effacée.
 | 
			
		||||
{
 | 
			
		||||
@ -1127,7 +1127,7 @@ void Ouvrir_fenetre(word width,word height, char * Titre)
 | 
			
		||||
  Block(Fenetre_Pos_X+(Menu_Facteur_X<<3),Fenetre_Pos_Y+(11*Menu_Facteur_Y),(width-16)*Menu_Facteur_X,Menu_Facteur_Y,CM_Fonce);
 | 
			
		||||
  Block(Fenetre_Pos_X+(Menu_Facteur_X<<3),Fenetre_Pos_Y+(12*Menu_Facteur_Y),(width-16)*Menu_Facteur_X,Menu_Facteur_Y,CM_Blanc);
 | 
			
		||||
 | 
			
		||||
  Print_dans_fenetre((width-(strlen(Titre)<<3))>>1,3,Titre,CM_Noir,CM_Clair);
 | 
			
		||||
  Print_dans_fenetre((width-(strlen(title)<<3))>>1,3,title,CM_Noir,CM_Clair);
 | 
			
		||||
 | 
			
		||||
  if (Fenetre == 1)
 | 
			
		||||
  {
 | 
			
		||||
@ -1235,7 +1235,7 @@ void Fermer_fenetre(void)
 | 
			
		||||
//---------------- Dessiner un bouton normal dans une fenêtre ----------------
 | 
			
		||||
 | 
			
		||||
void Fenetre_Dessiner_bouton_normal(word x_pos,word y_pos,word width,word height,
 | 
			
		||||
                                    char * Titre,byte Lettre_soulignee,byte clickable)
 | 
			
		||||
                                    char * title,byte Lettre_soulignee,byte clickable)
 | 
			
		||||
{
 | 
			
		||||
  byte Couleur_titre;
 | 
			
		||||
  word Pos_texte_X,Pos_texte_Y;
 | 
			
		||||
@ -1253,9 +1253,9 @@ void Fenetre_Dessiner_bouton_normal(word x_pos,word y_pos,word width,word height
 | 
			
		||||
    Couleur_titre=CM_Fonce;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Pos_texte_X=x_pos+( (width-(strlen(Titre)<<3)+1) >>1 );
 | 
			
		||||
  Pos_texte_X=x_pos+( (width-(strlen(title)<<3)+1) >>1 );
 | 
			
		||||
  Pos_texte_Y=y_pos+((height-7)>>1);
 | 
			
		||||
  Print_dans_fenetre(Pos_texte_X,Pos_texte_Y,Titre,Couleur_titre,CM_Clair);
 | 
			
		||||
  Print_dans_fenetre(Pos_texte_X,Pos_texte_Y,title,Couleur_titre,CM_Clair);
 | 
			
		||||
 | 
			
		||||
  if (Lettre_soulignee)
 | 
			
		||||
    Block(Fenetre_Pos_X+((Pos_texte_X+((Lettre_soulignee-1)<<3))*Menu_Facteur_X),
 | 
			
		||||
@ -1452,7 +1452,7 @@ void Fenetre_Effacer_bouton_saisie(T_Bouton_special * button)
 | 
			
		||||
 | 
			
		||||
T_Bouton_normal * Fenetre_Definir_bouton_normal(word x_pos, word y_pos,
 | 
			
		||||
                                   word width, word height,
 | 
			
		||||
                                   char * Titre, byte Lettre_soulignee,
 | 
			
		||||
                                   char * title, byte Lettre_soulignee,
 | 
			
		||||
                                   byte clickable, word Raccourci)
 | 
			
		||||
{
 | 
			
		||||
  T_Bouton_normal * Temp=NULL;
 | 
			
		||||
@ -1474,14 +1474,14 @@ T_Bouton_normal * Fenetre_Definir_bouton_normal(word x_pos, word y_pos,
 | 
			
		||||
    Fenetre_Liste_boutons_normal=Temp;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Fenetre_Dessiner_bouton_normal(x_pos,y_pos,width,height,Titre,Lettre_soulignee,clickable);
 | 
			
		||||
  Fenetre_Dessiner_bouton_normal(x_pos,y_pos,width,height,title,Lettre_soulignee,clickable);
 | 
			
		||||
  return Temp;
 | 
			
		||||
}
 | 
			
		||||
//------ Rajout d'un bouton à la liste de ceux présents dans la fenêtre ------
 | 
			
		||||
 | 
			
		||||
T_Bouton_normal * Fenetre_Definir_bouton_repetable(word x_pos, word y_pos,
 | 
			
		||||
                                   word width, word height,
 | 
			
		||||
                                   char * Titre, byte Lettre_soulignee,
 | 
			
		||||
                                   char * title, byte Lettre_soulignee,
 | 
			
		||||
                                   byte clickable, word Raccourci)
 | 
			
		||||
{
 | 
			
		||||
  T_Bouton_normal * Temp=NULL;
 | 
			
		||||
@ -1503,7 +1503,7 @@ T_Bouton_normal * Fenetre_Definir_bouton_repetable(word x_pos, word y_pos,
 | 
			
		||||
    Fenetre_Liste_boutons_normal=Temp;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Fenetre_Dessiner_bouton_normal(x_pos,y_pos,width,height,Titre,Lettre_soulignee,clickable);
 | 
			
		||||
  Fenetre_Dessiner_bouton_normal(x_pos,y_pos,width,height,title,Lettre_soulignee,clickable);
 | 
			
		||||
  return Temp;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								moteur.h
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								moteur.h
									
									
									
									
									
								
							@ -25,14 +25,14 @@ void Desenclencher_bouton          (int btn_number);
 | 
			
		||||
void Enclencher_bouton             (int btn_number,byte click);
 | 
			
		||||
void Annuler_les_effets            (void);
 | 
			
		||||
void Restaurer_les_effets          (void);
 | 
			
		||||
void Ouvrir_fenetre                (word width,word height, char * Titre);
 | 
			
		||||
void Ouvrir_fenetre                (word width,word height, char * title);
 | 
			
		||||
void Fermer_fenetre                (void);
 | 
			
		||||
 | 
			
		||||
void Ouvrir_popup                  (word x_pos, word y_pos, word width, word height);
 | 
			
		||||
void Fermer_popup                  (void);
 | 
			
		||||
 | 
			
		||||
void Fenetre_Dessiner_bouton_normal(word x_pos,word y_pos,word width,word height,
 | 
			
		||||
                                    char * Titre,byte Lettre_soulignee,byte clickable);
 | 
			
		||||
                                    char * title,byte Lettre_soulignee,byte clickable);
 | 
			
		||||
void Fenetre_Enfoncer_bouton_normal(word x_pos,word y_pos,word width,word height);
 | 
			
		||||
void Fenetre_Desenfoncer_bouton_normal(word x_pos,word y_pos,word width,word height);
 | 
			
		||||
void Fenetre_Dessiner_bouton_palette(word x_pos,word y_pos);
 | 
			
		||||
@ -47,11 +47,11 @@ void Fenetre_Dessiner_bouton_saisie(word x_pos,word y_pos,word Largeur_en_caract
 | 
			
		||||
 | 
			
		||||
T_Bouton_normal * Fenetre_Definir_bouton_normal(word x_pos, word y_pos,
 | 
			
		||||
                                   word width, word height,
 | 
			
		||||
                                   char * Titre,byte Lettre_soulignee,
 | 
			
		||||
                                   char * title,byte Lettre_soulignee,
 | 
			
		||||
                                   byte clickable, word Raccourci);
 | 
			
		||||
T_Bouton_normal * Fenetre_Definir_bouton_repetable(word x_pos, word y_pos,
 | 
			
		||||
                                   word width, word height,
 | 
			
		||||
                                   char * Titre,byte Lettre_soulignee,
 | 
			
		||||
                                   char * title,byte Lettre_soulignee,
 | 
			
		||||
                                   byte clickable, word Raccourci);
 | 
			
		||||
 | 
			
		||||
T_Bouton_palette * Fenetre_Definir_bouton_palette(word x_pos, word y_pos);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										108
									
								
								op_c.c
									
									
									
									
									
								
							
							
						
						
									
										108
									
								
								op_c.c
									
									
									
									
									
								
							@ -170,7 +170,7 @@ void HSLtoRGB(byte h,byte s,byte l, byte* r, byte* g, byte* b)
 | 
			
		||||
Table_conversion * TC_New(int nbb_r,int nbb_g,int nbb_b)
 | 
			
		||||
{
 | 
			
		||||
  Table_conversion * n;
 | 
			
		||||
  int Taille;
 | 
			
		||||
  int size;
 | 
			
		||||
 | 
			
		||||
  n=(Table_conversion *)malloc(sizeof(Table_conversion));
 | 
			
		||||
  if (n!=NULL)
 | 
			
		||||
@ -192,11 +192,11 @@ Table_conversion * TC_New(int nbb_r,int nbb_g,int nbb_b)
 | 
			
		||||
    n->red_b=8-nbb_b;
 | 
			
		||||
 | 
			
		||||
    // On tente d'allouer la table
 | 
			
		||||
    Taille=(n->rng_r)*(n->rng_v)*(n->rng_b);
 | 
			
		||||
    n->table=(byte *)malloc(Taille);
 | 
			
		||||
    size=(n->rng_r)*(n->rng_v)*(n->rng_b);
 | 
			
		||||
    n->table=(byte *)malloc(size);
 | 
			
		||||
    if (n->table!=NULL)
 | 
			
		||||
      // C'est bon!
 | 
			
		||||
      memset(n->table,0,Taille); // Inutile, mais plus propre
 | 
			
		||||
      memset(n->table,0,size); // Inutile, mais plus propre
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
      // Table impossible … allouer
 | 
			
		||||
@ -245,16 +245,16 @@ void TC_Set(Table_conversion * t,int r,int g,int b,byte i)
 | 
			
		||||
 | 
			
		||||
void TO_Init(Table_occurence * t)
 | 
			
		||||
{
 | 
			
		||||
  int Taille;
 | 
			
		||||
  int size;
 | 
			
		||||
 | 
			
		||||
  Taille=(t->rng_r)*(t->rng_v)*(t->rng_b)*sizeof(int);
 | 
			
		||||
  memset(t->table,0,Taille); // On initialise … 0
 | 
			
		||||
  size=(t->rng_r)*(t->rng_v)*(t->rng_b)*sizeof(int);
 | 
			
		||||
  memset(t->table,0,size); // On initialise … 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Table_occurence * TO_New(int nbb_r,int nbb_g,int nbb_b)
 | 
			
		||||
{
 | 
			
		||||
  Table_occurence * n;
 | 
			
		||||
  int Taille;
 | 
			
		||||
  int size;
 | 
			
		||||
 | 
			
		||||
  n=(Table_occurence *)malloc(sizeof(Table_occurence));
 | 
			
		||||
  if (n!=0)
 | 
			
		||||
@ -276,8 +276,8 @@ Table_occurence * TO_New(int nbb_r,int nbb_g,int nbb_b)
 | 
			
		||||
    n->red_b=8-nbb_b;
 | 
			
		||||
 | 
			
		||||
    // On tente d'allouer la table
 | 
			
		||||
    Taille=(n->rng_r)*(n->rng_v)*(n->rng_b)*sizeof(int);
 | 
			
		||||
    n->table=(int *)malloc(Taille);
 | 
			
		||||
    size=(n->rng_r)*(n->rng_v)*(n->rng_b)*sizeof(int);
 | 
			
		||||
    n->table=(int *)malloc(size);
 | 
			
		||||
    if (n->table!=0)
 | 
			
		||||
      // C'est bon! On initialise … 0
 | 
			
		||||
      TO_Init(n);
 | 
			
		||||
@ -328,12 +328,12 @@ void TO_Inc(Table_occurence * t,int r,int g,int b)
 | 
			
		||||
  t->table[index]++;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TO_Compter_occurences(Table_occurence * t,Bitmap24B image,int Taille)
 | 
			
		||||
void TO_Compter_occurences(Table_occurence * t,Bitmap24B image,int size)
 | 
			
		||||
{
 | 
			
		||||
  Bitmap24B ptr;
 | 
			
		||||
  int index;
 | 
			
		||||
 | 
			
		||||
  for (index=Taille,ptr=image;index>0;index--,ptr++)
 | 
			
		||||
  for (index=size,ptr=image;index>0;index--,ptr++)
 | 
			
		||||
    TO_Inc(t,ptr->R,ptr->G,ptr->B);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -788,7 +788,7 @@ void CS_Set(ClusterSet * cs,Cluster * c)
 | 
			
		||||
// 6) On s'arrête quand on a le nombre de couleurs voulu
 | 
			
		||||
void CS_Generer(ClusterSet * cs,Table_occurence * to)
 | 
			
		||||
{
 | 
			
		||||
  Cluster Courant;
 | 
			
		||||
  Cluster current;
 | 
			
		||||
  Cluster Nouveau1;
 | 
			
		||||
  Cluster Nouveau2;
 | 
			
		||||
 | 
			
		||||
@ -796,10 +796,10 @@ void CS_Generer(ClusterSet * cs,Table_occurence * to)
 | 
			
		||||
  while (cs->nb<cs->nb_max)
 | 
			
		||||
  {
 | 
			
		||||
    // On récupère le plus grand cluster
 | 
			
		||||
    CS_Get(cs,&Courant);
 | 
			
		||||
    CS_Get(cs,¤t);
 | 
			
		||||
 | 
			
		||||
    // On le coupe en deux
 | 
			
		||||
    Cluster_Split(&Courant,&Nouveau1,&Nouveau2,Courant.plus_large,to);
 | 
			
		||||
    Cluster_Split(¤t,&Nouveau1,&Nouveau2,current.plus_large,to);
 | 
			
		||||
 | 
			
		||||
    // On compacte ces deux nouveaux (il peut y avoir un espace entre l'endroit de la coupure et les premiers pixels du cluster)
 | 
			
		||||
    Cluster_Analyser(&Nouveau1,to);
 | 
			
		||||
@ -1012,7 +1012,7 @@ void DS_Generer(DegradeSet * ds,ClusterSet * cs)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Table_conversion * Optimiser_palette(Bitmap24B image,int Taille,Composantes * palette,int r,int g,int b)
 | 
			
		||||
Table_conversion * Optimiser_palette(Bitmap24B image,int size,Composantes * palette,int r,int g,int b)
 | 
			
		||||
{
 | 
			
		||||
  Table_occurence  * to;
 | 
			
		||||
  Table_conversion * tc;
 | 
			
		||||
@ -1030,7 +1030,7 @@ Table_conversion * Optimiser_palette(Bitmap24B image,int Taille,Composantes * pa
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
      // Première étape : on compte les pixels de chaque couleur pour pouvoir trier là dessus
 | 
			
		||||
      TO_Compter_occurences(to,image,Taille);
 | 
			
		||||
      TO_Compter_occurences(to,image,size);
 | 
			
		||||
 | 
			
		||||
      cs=CS_New(256,to);
 | 
			
		||||
      if (cs!=0)
 | 
			
		||||
@ -1070,18 +1070,18 @@ Table_conversion * Optimiser_palette(Bitmap24B image,int Taille,Composantes * pa
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int Valeur_modifiee(int Valeur,int modif)
 | 
			
		||||
int Valeur_modifiee(int value,int modif)
 | 
			
		||||
{
 | 
			
		||||
  Valeur+=modif;
 | 
			
		||||
  if (Valeur<0)
 | 
			
		||||
  value+=modif;
 | 
			
		||||
  if (value<0)
 | 
			
		||||
  {
 | 
			
		||||
    Valeur=0;
 | 
			
		||||
    value=0;
 | 
			
		||||
  }
 | 
			
		||||
  else if (Valeur>255)
 | 
			
		||||
  else if (value>255)
 | 
			
		||||
  {
 | 
			
		||||
    Valeur=255;
 | 
			
		||||
    value=255;
 | 
			
		||||
  }
 | 
			
		||||
  return Valeur;
 | 
			
		||||
  return value;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Convert_bitmap_24B_to_256_Floyd_Steinberg(Bitmap256 Dest,Bitmap24B Source,int width,int height,Composantes * palette,Table_conversion * tc)
 | 
			
		||||
@ -1089,22 +1089,22 @@ void Convert_bitmap_24B_to_256_Floyd_Steinberg(Bitmap256 Dest,Bitmap24B Source,i
 | 
			
		||||
// s'en ressert pas, soit on passe à la fonction une copie de travail du
 | 
			
		||||
// bitmap original.
 | 
			
		||||
{
 | 
			
		||||
  Bitmap24B Courant;
 | 
			
		||||
  Bitmap24B C_plus1;
 | 
			
		||||
  Bitmap24B S_moins1;
 | 
			
		||||
  Bitmap24B Suivant;
 | 
			
		||||
  Bitmap24B S_plus1;
 | 
			
		||||
  Bitmap24B current;
 | 
			
		||||
  Bitmap24B c_plus1;
 | 
			
		||||
  Bitmap24B u_minus1;
 | 
			
		||||
  Bitmap24B next;
 | 
			
		||||
  Bitmap24B u_plus1;
 | 
			
		||||
  Bitmap256 d;
 | 
			
		||||
  int x_pos,y_pos;
 | 
			
		||||
  int Rouge,Vert,Bleu;
 | 
			
		||||
  float ERouge,EVert,EBleu;
 | 
			
		||||
 | 
			
		||||
  // On initialise les variables de parcours:
 | 
			
		||||
  Courant =Source;      // Le pixel dont on s'occupe
 | 
			
		||||
  Suivant =Courant+width; // Le pixel en dessous
 | 
			
		||||
  C_plus1 =Courant+1;   // Le pixel à droite
 | 
			
		||||
  S_moins1=Suivant-1;   // Le pixel en bas à gauche
 | 
			
		||||
  S_plus1 =Suivant+1;   // Le pixel en bas à droite
 | 
			
		||||
  current =Source;      // Le pixel dont on s'occupe
 | 
			
		||||
  next =current+width; // Le pixel en dessous
 | 
			
		||||
  c_plus1 =current+1;   // Le pixel à droite
 | 
			
		||||
  u_minus1=next-1;   // Le pixel en bas à gauche
 | 
			
		||||
  u_plus1 =next+1;   // Le pixel en bas à droite
 | 
			
		||||
  d       =Dest;
 | 
			
		||||
 | 
			
		||||
  // On parcours chaque pixel:
 | 
			
		||||
@ -1114,9 +1114,9 @@ void Convert_bitmap_24B_to_256_Floyd_Steinberg(Bitmap256 Dest,Bitmap24B Source,i
 | 
			
		||||
    {
 | 
			
		||||
      // On prends la meilleure couleur de la palette qui traduit la couleur
 | 
			
		||||
      // 24 bits de la source:
 | 
			
		||||
      Rouge=Courant->R;
 | 
			
		||||
      Vert =Courant->G;
 | 
			
		||||
      Bleu =Courant->B;
 | 
			
		||||
      Rouge=current->R;
 | 
			
		||||
      Vert =current->G;
 | 
			
		||||
      Bleu =current->B;
 | 
			
		||||
      // Cherche la couleur correspondant dans la palette et la range dans l'image de destination
 | 
			
		||||
      *d=TC_Get(tc,Rouge,Vert,Bleu);
 | 
			
		||||
 | 
			
		||||
@ -1133,9 +1133,9 @@ void Convert_bitmap_24B_to_256_Floyd_Steinberg(Bitmap256 Dest,Bitmap24B Source,i
 | 
			
		||||
        if (x_pos+1<width)
 | 
			
		||||
        {
 | 
			
		||||
          // Valeur_modifiee fait la somme des 2 params en bornant sur [0,255]
 | 
			
		||||
          C_plus1->R=Valeur_modifiee(C_plus1->R,ERouge);
 | 
			
		||||
          C_plus1->G=Valeur_modifiee(C_plus1->G,EVert );
 | 
			
		||||
          C_plus1->B=Valeur_modifiee(C_plus1->B,EBleu );
 | 
			
		||||
          c_plus1->R=Valeur_modifiee(c_plus1->R,ERouge);
 | 
			
		||||
          c_plus1->G=Valeur_modifiee(c_plus1->G,EVert );
 | 
			
		||||
          c_plus1->B=Valeur_modifiee(c_plus1->B,EBleu );
 | 
			
		||||
        }
 | 
			
		||||
      // En bas à gauche:
 | 
			
		||||
      if (y_pos+1<height)
 | 
			
		||||
@ -1145,35 +1145,35 @@ void Convert_bitmap_24B_to_256_Floyd_Steinberg(Bitmap256 Dest,Bitmap24B Source,i
 | 
			
		||||
        EBleu =(Bleu *3)/16.0;
 | 
			
		||||
        if (x_pos>0)
 | 
			
		||||
        {
 | 
			
		||||
          S_moins1->R=Valeur_modifiee(S_moins1->R,ERouge);
 | 
			
		||||
          S_moins1->G=Valeur_modifiee(S_moins1->G,EVert );
 | 
			
		||||
          S_moins1->B=Valeur_modifiee(S_moins1->B,EBleu );
 | 
			
		||||
          u_minus1->R=Valeur_modifiee(u_minus1->R,ERouge);
 | 
			
		||||
          u_minus1->G=Valeur_modifiee(u_minus1->G,EVert );
 | 
			
		||||
          u_minus1->B=Valeur_modifiee(u_minus1->B,EBleu );
 | 
			
		||||
        }
 | 
			
		||||
      // En bas:
 | 
			
		||||
        ERouge=(Rouge*5/16.0);
 | 
			
		||||
        EVert =(Vert*5 /16.0);
 | 
			
		||||
        EBleu =(Bleu*5 /16.0);
 | 
			
		||||
        Suivant->R=Valeur_modifiee(Suivant->R,ERouge);
 | 
			
		||||
        Suivant->G=Valeur_modifiee(Suivant->G,EVert );
 | 
			
		||||
        Suivant->B=Valeur_modifiee(Suivant->B,EBleu );
 | 
			
		||||
        next->R=Valeur_modifiee(next->R,ERouge);
 | 
			
		||||
        next->G=Valeur_modifiee(next->G,EVert );
 | 
			
		||||
        next->B=Valeur_modifiee(next->B,EBleu );
 | 
			
		||||
      // En bas à droite:
 | 
			
		||||
        if (x_pos+1<width)
 | 
			
		||||
        {
 | 
			
		||||
        ERouge=(Rouge/16.0);
 | 
			
		||||
        EVert =(Vert /16.0);
 | 
			
		||||
        EBleu =(Bleu /16.0);
 | 
			
		||||
          S_plus1->R=Valeur_modifiee(S_plus1->R,ERouge);
 | 
			
		||||
          S_plus1->G=Valeur_modifiee(S_plus1->G,EVert );
 | 
			
		||||
          S_plus1->B=Valeur_modifiee(S_plus1->B,EBleu );
 | 
			
		||||
          u_plus1->R=Valeur_modifiee(u_plus1->R,ERouge);
 | 
			
		||||
          u_plus1->G=Valeur_modifiee(u_plus1->G,EVert );
 | 
			
		||||
          u_plus1->B=Valeur_modifiee(u_plus1->B,EBleu );
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      // On passe au pixel suivant :
 | 
			
		||||
      Courant++;
 | 
			
		||||
      C_plus1++;
 | 
			
		||||
      S_moins1++;
 | 
			
		||||
      Suivant++;
 | 
			
		||||
      S_plus1++;
 | 
			
		||||
      current++;
 | 
			
		||||
      c_plus1++;
 | 
			
		||||
      u_minus1++;
 | 
			
		||||
      next++;
 | 
			
		||||
      u_plus1++;
 | 
			
		||||
      d++;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								op_c.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								op_c.h
									
									
									
									
									
								
							@ -161,7 +161,7 @@ void TO_Delete(Table_occurence * t);
 | 
			
		||||
int TO_Get(Table_occurence * t,int r,int g,int b);
 | 
			
		||||
void TO_Set(Table_occurence * t,int r,int g,int b,int i);
 | 
			
		||||
void TO_Inc(Table_occurence * t,int r,int g,int b);
 | 
			
		||||
void TO_Compter_occurences(Table_occurence * t,Bitmap24B image,int Taille);
 | 
			
		||||
void TO_Compter_occurences(Table_occurence * t,Bitmap24B image,int size);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								operatio.c
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								operatio.c
									
									
									
									
									
								
							@ -89,15 +89,15 @@ void Initialiser_debut_operation(void)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Operation_PUSH(short Valeur)
 | 
			
		||||
void Operation_PUSH(short value)
 | 
			
		||||
{
 | 
			
		||||
  Operation_Pile[++Operation_Taille_pile]=Valeur;
 | 
			
		||||
  Operation_Pile[++Operation_Taille_pile]=value;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Operation_POP(short * Valeur)
 | 
			
		||||
void Operation_POP(short * value)
 | 
			
		||||
{
 | 
			
		||||
  *Valeur=Operation_Pile[Operation_Taille_pile--];
 | 
			
		||||
  *value=Operation_Pile[Operation_Taille_pile--];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -3181,7 +3181,7 @@ void Etirer_brosse_1_7(void)
 | 
			
		||||
  short width;
 | 
			
		||||
  short height;
 | 
			
		||||
  short Etat_prec;
 | 
			
		||||
  short dx,dy,X,Y;
 | 
			
		||||
  short dx,dy,x,y;
 | 
			
		||||
 | 
			
		||||
  Operation_POP(&Etat_prec);
 | 
			
		||||
  Operation_POP(&Ancien_Y);
 | 
			
		||||
@ -3217,15 +3217,15 @@ void Etirer_brosse_1_7(void)
 | 
			
		||||
 | 
			
		||||
    Afficher_ecran();
 | 
			
		||||
 | 
			
		||||
    X=Pinceau_X;
 | 
			
		||||
    Y=Pinceau_Y;
 | 
			
		||||
    x=Pinceau_X;
 | 
			
		||||
    y=Pinceau_Y;
 | 
			
		||||
    if (Snap_Mode && Config.Adjust_brush_pick)
 | 
			
		||||
    {
 | 
			
		||||
      dx=Pinceau_X-Debut_X;
 | 
			
		||||
      dy=Pinceau_Y-Debut_Y;
 | 
			
		||||
      if (dx<0) X++; else {if (dx>0) X--;}
 | 
			
		||||
      if (dy<0) Y++; else {if (dy>0) Y--;}
 | 
			
		||||
      Etirer_brosse_preview(Debut_X,Debut_Y,X,Y);
 | 
			
		||||
      if (dx<0) x++; else {if (dx>0) x--;}
 | 
			
		||||
      if (dy<0) y++; else {if (dy>0) y--;}
 | 
			
		||||
      Etirer_brosse_preview(Debut_X,Debut_Y,x,y);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
      Etirer_brosse_preview(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y);
 | 
			
		||||
@ -3240,8 +3240,8 @@ void Etirer_brosse_1_7(void)
 | 
			
		||||
    Afficher_curseur();
 | 
			
		||||
 | 
			
		||||
    Operation_Taille_pile-=2;
 | 
			
		||||
    Operation_PUSH(X);
 | 
			
		||||
    Operation_PUSH(Y);
 | 
			
		||||
    Operation_PUSH(x);
 | 
			
		||||
    Operation_PUSH(y);
 | 
			
		||||
 | 
			
		||||
    Operation_PUSH(Debut_X);
 | 
			
		||||
    Operation_PUSH(Debut_Y);
 | 
			
		||||
 | 
			
		||||
@ -19,8 +19,8 @@
 | 
			
		||||
    59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 | 
			
		||||
*/
 | 
			
		||||
void Demarrer_pile_operation(word Operation_demandee);
 | 
			
		||||
void Operation_PUSH(short Valeur);
 | 
			
		||||
void Operation_POP(short * Valeur);
 | 
			
		||||
void Operation_PUSH(short value);
 | 
			
		||||
void Operation_POP(short * value);
 | 
			
		||||
 | 
			
		||||
//////////////////////////////////////////////////// OPERATION_DESSIN_CONTINU
 | 
			
		||||
void Freehand_Mode1_1_0(void);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										56
									
								
								pages.c
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								pages.c
									
									
									
									
									
								
							@ -295,7 +295,7 @@ void Initialiser_S_Liste_de_pages(S_Liste_de_pages * list)
 | 
			
		||||
  list->Pages=NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int Allouer_une_liste_de_pages(S_Liste_de_pages * list,int Taille)
 | 
			
		||||
int Allouer_une_liste_de_pages(S_Liste_de_pages * list,int size)
 | 
			
		||||
{
 | 
			
		||||
  // Important: la S_Liste_de_pages ne doit pas déjà désigner une liste de
 | 
			
		||||
  //            pages allouée auquel cas celle-ci serait perdue.
 | 
			
		||||
@ -304,7 +304,7 @@ int Allouer_une_liste_de_pages(S_Liste_de_pages * list,int Taille)
 | 
			
		||||
  /* Debug : if (list->Pages!=NULL) exit(666); */
 | 
			
		||||
 | 
			
		||||
  // On alloue la mémoire pour la liste
 | 
			
		||||
  list->Pages=(S_Page *)malloc(Taille*sizeof(S_Page));
 | 
			
		||||
  list->Pages=(S_Page *)malloc(size*sizeof(S_Page));
 | 
			
		||||
 | 
			
		||||
  // On vérifie que l'allocation se soit bien passée
 | 
			
		||||
  if (list->Pages==NULL)
 | 
			
		||||
@ -312,9 +312,9 @@ int Allouer_une_liste_de_pages(S_Liste_de_pages * list,int Taille)
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    // On initialise chacune des nouvelles pages
 | 
			
		||||
    for (Indice=0;Indice<Taille;Indice++)
 | 
			
		||||
    for (Indice=0;Indice<size;Indice++)
 | 
			
		||||
      Initialiser_S_Page(list->Pages+Indice);
 | 
			
		||||
    list->Taille_liste=Taille;
 | 
			
		||||
    list->Taille_liste=size;
 | 
			
		||||
    list->Nb_pages_allouees=0;
 | 
			
		||||
 | 
			
		||||
    return 1; // Succès
 | 
			
		||||
@ -659,17 +659,17 @@ void Detruire_la_page_courante_d_une_liste(S_Liste_de_pages * list)
 | 
			
		||||
  /// GESTION DES BACKUPS
 | 
			
		||||
  ///
 | 
			
		||||
 | 
			
		||||
int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int width,int height)
 | 
			
		||||
int Initialiser_les_listes_de_backups_en_debut_de_programme(int size,int width,int height)
 | 
			
		||||
{
 | 
			
		||||
  // Taille correspond au nombre de pages que l'on souhaite dans chaque liste
 | 
			
		||||
  // size correspond au nombre de pages que l'on souhaite dans chaque liste
 | 
			
		||||
  // (1 pour la page courante, puis 1 pour chaque backup, soit 2 au minimum).
 | 
			
		||||
  // width et height correspondent à la dimension des images de départ.
 | 
			
		||||
 | 
			
		||||
  S_Page * Page;
 | 
			
		||||
  int Retour=0;
 | 
			
		||||
  int return_code=0;
 | 
			
		||||
 | 
			
		||||
  if (Allouer_une_liste_de_pages(Principal_Backups,Taille) &&
 | 
			
		||||
      Allouer_une_liste_de_pages(Brouillon_Backups,Taille))
 | 
			
		||||
  if (Allouer_une_liste_de_pages(Principal_Backups,size) &&
 | 
			
		||||
      Allouer_une_liste_de_pages(Brouillon_Backups,size))
 | 
			
		||||
  {
 | 
			
		||||
    // On a réussi à allouer deux listes de pages dont la taille correspond à
 | 
			
		||||
    // celle demandée par l'utilisateur.
 | 
			
		||||
@ -702,14 +702,14 @@ int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int width
 | 
			
		||||
        memset(Principal_Ecran,0,Principal_Largeur_image*Principal_Hauteur_image);
 | 
			
		||||
        memset(Brouillon_Ecran,0,Brouillon_Largeur_image*Brouillon_Hauteur_image);
 | 
			
		||||
 | 
			
		||||
        Retour=1;
 | 
			
		||||
        return_code=1;
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
      {
 | 
			
		||||
        // Il n'est pas possible de démarrer le programme avec la page 
 | 
			
		||||
        // principale et la page de brouillon aux dimensions demandée par 
 | 
			
		||||
        // l'utilisateur. ==> On l'envoie ballader
 | 
			
		||||
        Retour=0;
 | 
			
		||||
        return_code=0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
@ -718,7 +718,7 @@ int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int width
 | 
			
		||||
      // page de la dimension souhaitée, donc on laisse tout tomber et on
 | 
			
		||||
      // le renvoie chier.
 | 
			
		||||
      free(Page);
 | 
			
		||||
      Retour=0;
 | 
			
		||||
      return_code=0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
@ -726,10 +726,10 @@ int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int width
 | 
			
		||||
    // On n'a même pas réussi à créer les listes. Donc c'est même pas la 
 | 
			
		||||
    // peine de continuer : l'utilisateur ne pourra jamais rien faire, 
 | 
			
		||||
    // autant avorter le chargement du programme.
 | 
			
		||||
    Retour=0;
 | 
			
		||||
    return_code=0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return Retour;
 | 
			
		||||
  return return_code;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Detruire_les_listes_de_backups_en_fin_de_programme(void)
 | 
			
		||||
@ -765,7 +765,7 @@ int Backup_avec_nouvelles_dimensions(int Upload,int width,int height)
 | 
			
		||||
  // 0 sinon.
 | 
			
		||||
 | 
			
		||||
  S_Page * Nouvelle_page;
 | 
			
		||||
  int Retour=0;
 | 
			
		||||
  int return_code=0;
 | 
			
		||||
 | 
			
		||||
  if (Upload)
 | 
			
		||||
    // On remet à jour l'état des infos de la page courante (pour pouvoir les
 | 
			
		||||
@ -786,13 +786,13 @@ int Backup_avec_nouvelles_dimensions(int Upload,int width,int height)
 | 
			
		||||
    Download_infos_backup(Principal_Backups);
 | 
			
		||||
    // On nettoie la nouvelle image:
 | 
			
		||||
    memset(Principal_Ecran,0,Principal_Largeur_image*Principal_Hauteur_image);
 | 
			
		||||
    Retour=1;
 | 
			
		||||
    return_code=1;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // On détruit le descripteur de la page courante
 | 
			
		||||
  free(Nouvelle_page);
 | 
			
		||||
 | 
			
		||||
  return Retour;
 | 
			
		||||
  return return_code;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int Backuper_et_redimensionner_brouillon(int width,int height)
 | 
			
		||||
@ -801,7 +801,7 @@ int Backuper_et_redimensionner_brouillon(int width,int height)
 | 
			
		||||
  // et 0 sinon.
 | 
			
		||||
 | 
			
		||||
  S_Page * Nouvelle_page;
 | 
			
		||||
  int Retour=0;
 | 
			
		||||
  int return_code=0;
 | 
			
		||||
 | 
			
		||||
  // On remet à jour l'état des infos de la page de brouillon (pour pouvoir
 | 
			
		||||
  // les retrouver plus tard)
 | 
			
		||||
@ -818,13 +818,13 @@ int Backuper_et_redimensionner_brouillon(int width,int height)
 | 
			
		||||
  {
 | 
			
		||||
    Creer_nouvelle_page(Nouvelle_page,Brouillon_Backups,Principal_Backups);
 | 
			
		||||
    Download_infos_page_brouillon(Nouvelle_page);
 | 
			
		||||
    Retour=1;
 | 
			
		||||
    return_code=1;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // On détruit le descripteur de la page courante
 | 
			
		||||
  free(Nouvelle_page);
 | 
			
		||||
 | 
			
		||||
  return Retour;
 | 
			
		||||
  return return_code;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Backup(void)
 | 
			
		||||
@ -956,7 +956,7 @@ void Interchanger_image_principale_et_brouillon(void)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int Emprunt_memoire_de_page_possible(int Taille)
 | 
			
		||||
int Emprunt_memoire_de_page_possible(int size)
 | 
			
		||||
{
 | 
			
		||||
  int Taille_immediatement_disponible;
 | 
			
		||||
  int Taille_liste_courante;
 | 
			
		||||
@ -976,30 +976,30 @@ int Emprunt_memoire_de_page_possible(int Taille)
 | 
			
		||||
      +Taille_liste_courante
 | 
			
		||||
      +Taille_liste_brouillon
 | 
			
		||||
      -Taille_page_courante
 | 
			
		||||
      -Taille_page_brouillon)<Taille)
 | 
			
		||||
      -Taille_page_brouillon)<size)
 | 
			
		||||
    return 0;
 | 
			
		||||
 | 
			
		||||
  return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void * Emprunter_memoire_de_page(int Taille)
 | 
			
		||||
void * Emprunter_memoire_de_page(int size)
 | 
			
		||||
{
 | 
			
		||||
  int                Il_faut_liberer;
 | 
			
		||||
  S_Liste_de_pages * Liste_a_raboter;
 | 
			
		||||
  S_Page *           Page_a_supprimer;
 | 
			
		||||
  //int                Indice;
 | 
			
		||||
 | 
			
		||||
  if (Emprunt_memoire_de_page_possible(Taille))
 | 
			
		||||
  if (Emprunt_memoire_de_page_possible(size))
 | 
			
		||||
  {
 | 
			
		||||
    // On regarde s'il faut libérer des pages:
 | 
			
		||||
    Il_faut_liberer=
 | 
			
		||||
      (Memoire_libre()-QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER)<(unsigned long)Taille;
 | 
			
		||||
      (Memoire_libre()-QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER)<(unsigned long)size;
 | 
			
		||||
 | 
			
		||||
    if (!Il_faut_liberer)
 | 
			
		||||
    {
 | 
			
		||||
      // On a assez de place pour allouer une page. On n'a donc aucune page
 | 
			
		||||
      // à supprimer. On peut allouer de la mémoire directement.
 | 
			
		||||
      return malloc(Taille);
 | 
			
		||||
      return malloc(size);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
@ -1042,12 +1042,12 @@ void * Emprunter_memoire_de_page(int Taille)
 | 
			
		||||
 | 
			
		||||
        // On regarde s'il faut continuer à libérer de la place
 | 
			
		||||
        Il_faut_liberer=
 | 
			
		||||
          (Memoire_libre()-QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER)<(unsigned long)Taille;
 | 
			
		||||
          (Memoire_libre()-QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER)<(unsigned long)size;
 | 
			
		||||
 | 
			
		||||
        // S'il ne faut pas, c'est qu'on peut allouer un bitmap
 | 
			
		||||
        // pour la Nouvelle_page
 | 
			
		||||
        if (!Il_faut_liberer)
 | 
			
		||||
          return malloc(Taille);
 | 
			
		||||
          return malloc(size);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								pages.h
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								pages.h
									
									
									
									
									
								
							@ -49,7 +49,7 @@ int Taille_d_une_page(S_Page * Page);
 | 
			
		||||
  ///
 | 
			
		||||
 | 
			
		||||
void Initialiser_S_Liste_de_pages(S_Liste_de_pages * list);
 | 
			
		||||
int Allouer_une_liste_de_pages(S_Liste_de_pages * list,int Taille);
 | 
			
		||||
int Allouer_une_liste_de_pages(S_Liste_de_pages * list,int size);
 | 
			
		||||
void Liberer_une_liste_de_pages(S_Liste_de_pages * list);
 | 
			
		||||
int Taille_d_une_liste_de_pages(S_Liste_de_pages * list);
 | 
			
		||||
void Reculer_dans_une_liste_de_pages(S_Liste_de_pages * list);
 | 
			
		||||
@ -66,7 +66,7 @@ void Detruire_la_page_courante_d_une_liste(S_Liste_de_pages * list);
 | 
			
		||||
  /// GESTION DES BACKUPS
 | 
			
		||||
  ///
 | 
			
		||||
 | 
			
		||||
int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int width,int height);
 | 
			
		||||
int Initialiser_les_listes_de_backups_en_debut_de_programme(int size,int width,int height);
 | 
			
		||||
void Detruire_les_listes_de_backups_en_fin_de_programme(void);
 | 
			
		||||
void Nouveau_nombre_de_backups(int nb_backups);
 | 
			
		||||
int Backup_avec_nouvelles_dimensions(int Upload,int width,int height);
 | 
			
		||||
@ -83,8 +83,8 @@ void Interchanger_image_principale_et_brouillon(void);
 | 
			
		||||
  /// GESTION DES EMPRUNTS DE MEMOIRE DE PAGE
 | 
			
		||||
  ///
 | 
			
		||||
 | 
			
		||||
int Emprunt_memoire_de_page_possible(int Taille);
 | 
			
		||||
void * Emprunter_memoire_de_page(int Taille);
 | 
			
		||||
int Emprunt_memoire_de_page_possible(int size);
 | 
			
		||||
void * Emprunter_memoire_de_page(int size);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								palette.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								palette.c
									
									
									
									
									
								
							@ -81,21 +81,21 @@ void Unite_Composantes(int Count)
 | 
			
		||||
 | 
			
		||||
void Modifier_HSL(T_Palette Palette_depart, T_Palette Palette_arrivee, byte Couleur, short Difference_H, short Difference_S, short Difference_L)
 | 
			
		||||
{
 | 
			
		||||
    byte h, S, l;
 | 
			
		||||
    RGBtoHSL(Palette_depart[Couleur].R,Palette_depart[Couleur].G,Palette_depart[Couleur].B,&h,&S,&l);
 | 
			
		||||
    byte h, s, l;
 | 
			
		||||
    RGBtoHSL(Palette_depart[Couleur].R,Palette_depart[Couleur].G,Palette_depart[Couleur].B,&h,&s,&l);
 | 
			
		||||
    // La teinte (Hue) est cyclique
 | 
			
		||||
    h=(Difference_H+256+h);
 | 
			
		||||
    // Pour les autres (Saturation, Lightness), au lieu d'additionner,
 | 
			
		||||
    // on va faire un ratio, cela utilise mieux la plage de valeurs 0-255
 | 
			
		||||
    if (Difference_S<0)
 | 
			
		||||
      S=(255+Difference_S)*S/255;
 | 
			
		||||
      s=(255+Difference_S)*s/255;
 | 
			
		||||
    else if (Difference_S>0)
 | 
			
		||||
      S=255-(255-Difference_S)*(255-S)/255;
 | 
			
		||||
      s=255-(255-Difference_S)*(255-s)/255;
 | 
			
		||||
    if (Difference_L<0)
 | 
			
		||||
      l=(255+Difference_L)*l/255;
 | 
			
		||||
    else if (Difference_L>0)
 | 
			
		||||
      l=255-(255-Difference_L)*(255-l)/255;
 | 
			
		||||
    HSLtoRGB(h,S,l,&Palette_arrivee[Couleur].R,&Palette_arrivee[Couleur].G,&Palette_arrivee[Couleur].B);
 | 
			
		||||
    HSLtoRGB(h,s,l,&Palette_arrivee[Couleur].R,&Palette_arrivee[Couleur].G,&Palette_arrivee[Couleur].B);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Modifier_Rouge(byte Couleur, short Nouvelle_teinte, T_Palette palette)
 | 
			
		||||
@ -139,10 +139,10 @@ void Modifier_Bleu(byte Couleur, short Nouvelle_teinte, T_Palette palette)
 | 
			
		||||
  Set_color(Couleur,palette[Couleur].R,palette[Couleur].G,palette[Couleur].B);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Formate_composante(byte Valeur, char *Chaine)
 | 
			
		||||
void Formate_composante(byte value, char *Chaine)
 | 
			
		||||
// Formate une chaine de 4 caractères+\0 : "nnn "
 | 
			
		||||
{
 | 
			
		||||
  Num2str(Valeur,Chaine,3);
 | 
			
		||||
  Num2str(value,Chaine,3);
 | 
			
		||||
  Chaine[3]=' ';
 | 
			
		||||
  Chaine[4]='\0';
 | 
			
		||||
}
 | 
			
		||||
@ -642,13 +642,13 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
			
		||||
 | 
			
		||||
void Palette_Modifier_jauge(T_Bouton_scroller * slider,
 | 
			
		||||
                            word nb_elements, word position,
 | 
			
		||||
                            char * Valeur, short x_pos)
 | 
			
		||||
                            char * value, short x_pos)
 | 
			
		||||
{
 | 
			
		||||
  slider->Nb_elements=nb_elements;
 | 
			
		||||
  slider->Position=position;
 | 
			
		||||
  Calculer_hauteur_curseur_jauge(slider);
 | 
			
		||||
  Fenetre_Dessiner_jauge(slider);
 | 
			
		||||
  Print_compteur(x_pos,172,Valeur,CM_Noir,CM_Clair);
 | 
			
		||||
  Print_compteur(x_pos,172,value,CM_Noir,CM_Clair);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										40
									
								
								pxdouble.c
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								pxdouble.c
									
									
									
									
									
								
							@ -32,19 +32,19 @@
 | 
			
		||||
#define ZOOMX 2
 | 
			
		||||
#define ZOOMY 2
 | 
			
		||||
 | 
			
		||||
void Pixel_Double (word X,word Y,byte Couleur)
 | 
			
		||||
/* Affiche un pixel de la Couleur aux coords X;Y à l'écran */
 | 
			
		||||
void Pixel_Double (word x,word y,byte Couleur)
 | 
			
		||||
/* Affiche un pixel de la Couleur aux coords x;y à l'écran */
 | 
			
		||||
{
 | 
			
		||||
  *(Ecran + X * 2 + Y * 4 * Largeur_ecran)=Couleur;
 | 
			
		||||
  *(Ecran + X * 2 + Y * 4 * Largeur_ecran + 1)=Couleur;
 | 
			
		||||
  *(Ecran + X * 2 + (Y * 4 + 2 )* Largeur_ecran)=Couleur;
 | 
			
		||||
  *(Ecran + X * 2 + (Y * 4 + 2 )* Largeur_ecran + 1)=Couleur;
 | 
			
		||||
  *(Ecran + x * 2 + y * 4 * Largeur_ecran)=Couleur;
 | 
			
		||||
  *(Ecran + x * 2 + y * 4 * Largeur_ecran + 1)=Couleur;
 | 
			
		||||
  *(Ecran + x * 2 + (y * 4 + 2 )* Largeur_ecran)=Couleur;
 | 
			
		||||
  *(Ecran + x * 2 + (y * 4 + 2 )* Largeur_ecran + 1)=Couleur;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Lit_Pixel_Double (word X,word Y)
 | 
			
		||||
byte Lit_Pixel_Double (word x,word y)
 | 
			
		||||
/* On retourne la couleur du pixel aux coords données */
 | 
			
		||||
{
 | 
			
		||||
  return *( Ecran + Y * 4 * Largeur_ecran + X * 2);
 | 
			
		||||
  return *( Ecran + y * 4 * Largeur_ecran + x * 2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Block_Double (word Debut_X,word Debut_Y,word width,word height,byte Couleur)
 | 
			
		||||
@ -86,28 +86,28 @@ void Afficher_partie_de_l_ecran_Double (word width,word height,word image_width)
 | 
			
		||||
  //UpdateRect(0,0,width,height);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Pixel_Preview_Normal_Double (word X,word Y,byte Couleur)
 | 
			
		||||
void Pixel_Preview_Normal_Double (word x,word y,byte Couleur)
 | 
			
		||||
/* Affichage d'un pixel dans l'écran, par rapport au décalage de l'image 
 | 
			
		||||
 * dans l'écran, en mode normal (pas en mode loupe)
 | 
			
		||||
 * Note: si on modifie cette procédure, il faudra penser à faire également 
 | 
			
		||||
 * la modif dans la procédure Pixel_Preview_Loupe_SDL. */
 | 
			
		||||
{
 | 
			
		||||
//  if(X-Principal_Decalage_X >= 0 && Y - Principal_Decalage_Y >= 0)
 | 
			
		||||
  Pixel_Double(X-Principal_Decalage_X,Y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
//  if(x-Principal_Decalage_X >= 0 && y - Principal_Decalage_Y >= 0)
 | 
			
		||||
  Pixel_Double(x-Principal_Decalage_X,y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Pixel_Preview_Loupe_Double  (word X,word Y,byte Couleur)
 | 
			
		||||
void Pixel_Preview_Loupe_Double  (word x,word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  // Affiche le pixel dans la partie non zoomée
 | 
			
		||||
  Pixel_Double(X-Principal_Decalage_X,Y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
  Pixel_Double(x-Principal_Decalage_X,y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
  
 | 
			
		||||
  // Regarde si on doit aussi l'afficher dans la partie zoomée
 | 
			
		||||
  if (Y >= Limite_Haut_Zoom && Y <= Limite_visible_Bas_Zoom
 | 
			
		||||
          && X >= Limite_Gauche_Zoom && X <= Limite_visible_Droite_Zoom)
 | 
			
		||||
  if (y >= Limite_Haut_Zoom && y <= Limite_visible_Bas_Zoom
 | 
			
		||||
          && x >= Limite_Gauche_Zoom && x <= Limite_visible_Droite_Zoom)
 | 
			
		||||
  {
 | 
			
		||||
    // On est dedans
 | 
			
		||||
    int height;
 | 
			
		||||
    int Y_Zoom = Table_mul_facteur_zoom[Y-Loupe_Decalage_Y];
 | 
			
		||||
    int Y_Zoom = Table_mul_facteur_zoom[y-Loupe_Decalage_Y];
 | 
			
		||||
 | 
			
		||||
    if (Menu_Ordonnee - Y_Zoom < Loupe_Facteur)
 | 
			
		||||
      // On ne doit dessiner qu'un morceau du pixel
 | 
			
		||||
@ -117,7 +117,7 @@ void Pixel_Preview_Loupe_Double  (word X,word Y,byte Couleur)
 | 
			
		||||
      height = Loupe_Facteur;
 | 
			
		||||
 | 
			
		||||
    Block_Double(
 | 
			
		||||
      Table_mul_facteur_zoom[X-Loupe_Decalage_X]+Principal_X_Zoom, 
 | 
			
		||||
      Table_mul_facteur_zoom[x-Loupe_Decalage_X]+Principal_X_Zoom, 
 | 
			
		||||
      Y_Zoom, Loupe_Facteur, height, Couleur
 | 
			
		||||
      );
 | 
			
		||||
  }
 | 
			
		||||
@ -128,10 +128,10 @@ void Ligne_horizontale_XOR_Double(word x_pos,word y_pos,word width)
 | 
			
		||||
  //On calcule la valeur initiale de Dest:
 | 
			
		||||
  byte* Dest=y_pos*4*Largeur_ecran+x_pos*2+Ecran;
 | 
			
		||||
 | 
			
		||||
  int X;
 | 
			
		||||
  int x;
 | 
			
		||||
 | 
			
		||||
  for (X=0;X<width*2;X+=2)
 | 
			
		||||
    *(Dest+X+2*Largeur_ecran+1)=*(Dest+X+2*Largeur_ecran)=*(Dest+X+1)=*(Dest+X)=~*(Dest+X);
 | 
			
		||||
  for (x=0;x<width*2;x+=2)
 | 
			
		||||
    *(Dest+x+2*Largeur_ecran+1)=*(Dest+x+2*Largeur_ecran)=*(Dest+x+1)=*(Dest+x)=~*(Dest+x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Ligne_verticale_XOR_Double(word x_pos,word y_pos,word height)
 | 
			
		||||
 | 
			
		||||
@ -21,11 +21,11 @@
 | 
			
		||||
*/
 | 
			
		||||
#include "struct.h"
 | 
			
		||||
 | 
			
		||||
  void Pixel_Double                      (word X,word Y,byte Couleur);
 | 
			
		||||
  byte Lit_Pixel_Double                  (word X,word Y);
 | 
			
		||||
  void Pixel_Double                      (word x,word y,byte Couleur);
 | 
			
		||||
  byte Lit_Pixel_Double                  (word x,word y);
 | 
			
		||||
  void Block_Double                      (word Debut_X,word Debut_Y,word width,word height,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Normal_Double       (word X,word Y,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Loupe_Double        (word X,word Y,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Normal_Double       (word x,word y,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Loupe_Double        (word x,word y,byte Couleur);
 | 
			
		||||
  void Ligne_horizontale_XOR_Double      (word x_pos,word y_pos,word width);
 | 
			
		||||
  void Ligne_verticale_XOR_Double        (word x_pos,word y_pos,word height);
 | 
			
		||||
  void Display_brush_Color_Double        (word x_pos,word y_pos,word x_offset,word y_offset,word width,word height,byte Couleur_de_transparence,word Largeur_brosse);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										34
									
								
								pxsimple.c
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								pxsimple.c
									
									
									
									
									
								
							@ -28,16 +28,16 @@
 | 
			
		||||
#include "sdlscreen.h"
 | 
			
		||||
#include "divers.h"
 | 
			
		||||
 | 
			
		||||
void Pixel_Simple (word X,word Y,byte Couleur)
 | 
			
		||||
/* Affiche un pixel de la Couleur aux coords X;Y à l'écran */
 | 
			
		||||
void Pixel_Simple (word x,word y,byte Couleur)
 | 
			
		||||
/* Affiche un pixel de la Couleur aux coords x;y à l'écran */
 | 
			
		||||
{
 | 
			
		||||
  *(Ecran + X + Y * Largeur_ecran)=Couleur;
 | 
			
		||||
  *(Ecran + x + y * Largeur_ecran)=Couleur;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Lit_Pixel_Simple (word X,word Y)
 | 
			
		||||
byte Lit_Pixel_Simple (word x,word y)
 | 
			
		||||
/* On retourne la couleur du pixel aux coords données */
 | 
			
		||||
{
 | 
			
		||||
  return *( Ecran + Y * Largeur_ecran + X );
 | 
			
		||||
  return *( Ecran + y * Largeur_ecran + x );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Block_Simple (word Debut_X,word Debut_Y,word width,word height,byte Couleur)
 | 
			
		||||
@ -71,28 +71,28 @@ void Afficher_partie_de_l_ecran_Simple (word width,word height,word image_width)
 | 
			
		||||
  //UpdateRect(0,0,width,height);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Pixel_Preview_Normal_Simple (word X,word Y,byte Couleur)
 | 
			
		||||
void Pixel_Preview_Normal_Simple (word x,word y,byte Couleur)
 | 
			
		||||
/* Affichage d'un pixel dans l'écran, par rapport au décalage de l'image 
 | 
			
		||||
 * dans l'écran, en mode normal (pas en mode loupe)
 | 
			
		||||
 * Note: si on modifie cette procédure, il faudra penser à faire également 
 | 
			
		||||
 * la modif dans la procédure Pixel_Preview_Loupe_SDL. */
 | 
			
		||||
{
 | 
			
		||||
//  if(X-Principal_Decalage_X >= 0 && Y - Principal_Decalage_Y >= 0)
 | 
			
		||||
  Pixel_Simple(X-Principal_Decalage_X,Y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
//  if(x-Principal_Decalage_X >= 0 && y - Principal_Decalage_Y >= 0)
 | 
			
		||||
  Pixel_Simple(x-Principal_Decalage_X,y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Pixel_Preview_Loupe_Simple  (word X,word Y,byte Couleur)
 | 
			
		||||
void Pixel_Preview_Loupe_Simple  (word x,word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  // Affiche le pixel dans la partie non zoomée
 | 
			
		||||
  Pixel_Simple(X-Principal_Decalage_X,Y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
  Pixel_Simple(x-Principal_Decalage_X,y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
  
 | 
			
		||||
  // Regarde si on doit aussi l'afficher dans la partie zoomée
 | 
			
		||||
  if (Y >= Limite_Haut_Zoom && Y <= Limite_visible_Bas_Zoom
 | 
			
		||||
          && X >= Limite_Gauche_Zoom && X <= Limite_visible_Droite_Zoom)
 | 
			
		||||
  if (y >= Limite_Haut_Zoom && y <= Limite_visible_Bas_Zoom
 | 
			
		||||
          && x >= Limite_Gauche_Zoom && x <= Limite_visible_Droite_Zoom)
 | 
			
		||||
  {
 | 
			
		||||
    // On est dedans
 | 
			
		||||
    int height;
 | 
			
		||||
    int Y_Zoom = Table_mul_facteur_zoom[Y-Loupe_Decalage_Y];
 | 
			
		||||
    int Y_Zoom = Table_mul_facteur_zoom[y-Loupe_Decalage_Y];
 | 
			
		||||
 | 
			
		||||
    if (Menu_Ordonnee - Y_Zoom < Loupe_Facteur)
 | 
			
		||||
      // On ne doit dessiner qu'un morceau du pixel
 | 
			
		||||
@ -102,7 +102,7 @@ void Pixel_Preview_Loupe_Simple  (word X,word Y,byte Couleur)
 | 
			
		||||
      height = Loupe_Facteur;
 | 
			
		||||
 | 
			
		||||
    Block_Simple(
 | 
			
		||||
      Table_mul_facteur_zoom[X-Loupe_Decalage_X]+Principal_X_Zoom, 
 | 
			
		||||
      Table_mul_facteur_zoom[x-Loupe_Decalage_X]+Principal_X_Zoom, 
 | 
			
		||||
      Y_Zoom, Loupe_Facteur, height, Couleur
 | 
			
		||||
      );
 | 
			
		||||
  }
 | 
			
		||||
@ -113,10 +113,10 @@ void Ligne_horizontale_XOR_Simple(word x_pos,word y_pos,word width)
 | 
			
		||||
  //On calcule la valeur initiale de Dest:
 | 
			
		||||
  byte* Dest=y_pos*Largeur_ecran+x_pos+Ecran;
 | 
			
		||||
 | 
			
		||||
  int X;
 | 
			
		||||
  int x;
 | 
			
		||||
 | 
			
		||||
  for (X=0;X<width;X++)
 | 
			
		||||
    *(Dest+X)=~*(Dest+X);
 | 
			
		||||
  for (x=0;x<width;x++)
 | 
			
		||||
    *(Dest+x)=~*(Dest+x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Ligne_verticale_XOR_Simple(word x_pos,word y_pos,word height)
 | 
			
		||||
 | 
			
		||||
@ -21,11 +21,11 @@
 | 
			
		||||
*/
 | 
			
		||||
#include "struct.h"
 | 
			
		||||
 | 
			
		||||
  void Pixel_Simple                      (word X,word Y,byte Couleur);
 | 
			
		||||
  byte Lit_Pixel_Simple                  (word X,word Y);
 | 
			
		||||
  void Pixel_Simple                      (word x,word y,byte Couleur);
 | 
			
		||||
  byte Lit_Pixel_Simple                  (word x,word y);
 | 
			
		||||
  void Block_Simple                      (word Debut_X,word Debut_Y,word width,word height,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Normal_Simple       (word X,word Y,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Loupe_Simple        (word X,word Y,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Normal_Simple       (word x,word y,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Loupe_Simple        (word x,word y,byte Couleur);
 | 
			
		||||
  void Ligne_horizontale_XOR_Simple      (word x_pos,word y_pos,word width);
 | 
			
		||||
  void Ligne_verticale_XOR_Simple        (word x_pos,word y_pos,word height);
 | 
			
		||||
  void Display_brush_Color_Simple        (word x_pos,word y_pos,word x_offset,word y_offset,word width,word height,byte Couleur_de_transparence,word Largeur_brosse);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										40
									
								
								pxtall.c
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								pxtall.c
									
									
									
									
									
								
							@ -29,17 +29,17 @@
 | 
			
		||||
#include "divers.h"
 | 
			
		||||
#include "pxsimple.h"
 | 
			
		||||
 | 
			
		||||
void Pixel_Tall (word X,word Y,byte Couleur)
 | 
			
		||||
/* Affiche un pixel de la Couleur aux coords X;Y à l'écran */
 | 
			
		||||
void Pixel_Tall (word x,word y,byte Couleur)
 | 
			
		||||
/* Affiche un pixel de la Couleur aux coords x;y à l'écran */
 | 
			
		||||
{
 | 
			
		||||
  *(Ecran + X + Y * 2 * Largeur_ecran)=Couleur;
 | 
			
		||||
  *(Ecran + X + (Y * 2 + 1) * Largeur_ecran)=Couleur;
 | 
			
		||||
  *(Ecran + x + y * 2 * Largeur_ecran)=Couleur;
 | 
			
		||||
  *(Ecran + x + (y * 2 + 1) * Largeur_ecran)=Couleur;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Lit_Pixel_Tall (word X,word Y)
 | 
			
		||||
byte Lit_Pixel_Tall (word x,word y)
 | 
			
		||||
/* On retourne la couleur du pixel aux coords données */
 | 
			
		||||
{
 | 
			
		||||
  return *( Ecran + Y * 2 * Largeur_ecran + X );
 | 
			
		||||
  return *( Ecran + y * 2 * Largeur_ecran + x );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Block_Tall (word Debut_X,word Debut_Y,word width,word height,byte Couleur)
 | 
			
		||||
@ -75,28 +75,28 @@ void Afficher_partie_de_l_ecran_Tall (word width,word height,word image_width)
 | 
			
		||||
  //UpdateRect(0,0,width,height);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Pixel_Preview_Normal_Tall (word X,word Y,byte Couleur)
 | 
			
		||||
void Pixel_Preview_Normal_Tall (word x,word y,byte Couleur)
 | 
			
		||||
/* Affichage d'un pixel dans l'écran, par rapport au décalage de l'image 
 | 
			
		||||
 * dans l'écran, en mode normal (pas en mode loupe)
 | 
			
		||||
 * Note: si on modifie cette procédure, il faudra penser à faire également 
 | 
			
		||||
 * la modif dans la procédure Pixel_Preview_Loupe_SDL. */
 | 
			
		||||
{
 | 
			
		||||
//  if(X-Principal_Decalage_X >= 0 && Y - Principal_Decalage_Y >= 0)
 | 
			
		||||
  Pixel_Tall(X-Principal_Decalage_X,Y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
//  if(x-Principal_Decalage_X >= 0 && y - Principal_Decalage_Y >= 0)
 | 
			
		||||
  Pixel_Tall(x-Principal_Decalage_X,y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Pixel_Preview_Loupe_Tall  (word X,word Y,byte Couleur)
 | 
			
		||||
void Pixel_Preview_Loupe_Tall  (word x,word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  // Affiche le pixel dans la partie non zoomée
 | 
			
		||||
  Pixel_Tall(X-Principal_Decalage_X,Y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
  Pixel_Tall(x-Principal_Decalage_X,y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
  
 | 
			
		||||
  // Regarde si on doit aussi l'afficher dans la partie zoomée
 | 
			
		||||
  if (Y >= Limite_Haut_Zoom && Y <= Limite_visible_Bas_Zoom
 | 
			
		||||
          && X >= Limite_Gauche_Zoom && X <= Limite_visible_Droite_Zoom)
 | 
			
		||||
  if (y >= Limite_Haut_Zoom && y <= Limite_visible_Bas_Zoom
 | 
			
		||||
          && x >= Limite_Gauche_Zoom && x <= Limite_visible_Droite_Zoom)
 | 
			
		||||
  {
 | 
			
		||||
    // On est dedans
 | 
			
		||||
    int height;
 | 
			
		||||
    int Y_Zoom = Table_mul_facteur_zoom[Y-Loupe_Decalage_Y];
 | 
			
		||||
    int Y_Zoom = Table_mul_facteur_zoom[y-Loupe_Decalage_Y];
 | 
			
		||||
 | 
			
		||||
    if (Menu_Ordonnee - Y_Zoom < Loupe_Facteur)
 | 
			
		||||
      // On ne doit dessiner qu'un morceau du pixel
 | 
			
		||||
@ -106,7 +106,7 @@ void Pixel_Preview_Loupe_Tall  (word X,word Y,byte Couleur)
 | 
			
		||||
      height = Loupe_Facteur;
 | 
			
		||||
 | 
			
		||||
    Block_Tall(
 | 
			
		||||
      Table_mul_facteur_zoom[X-Loupe_Decalage_X]+Principal_X_Zoom, 
 | 
			
		||||
      Table_mul_facteur_zoom[x-Loupe_Decalage_X]+Principal_X_Zoom, 
 | 
			
		||||
      Y_Zoom, Loupe_Facteur, height, Couleur
 | 
			
		||||
      );
 | 
			
		||||
  }
 | 
			
		||||
@ -117,14 +117,14 @@ void Ligne_horizontale_XOR_Tall(word x_pos,word y_pos,word width)
 | 
			
		||||
  //On calcule la valeur initiale de Dest:
 | 
			
		||||
  byte* Dest=y_pos*2*Largeur_ecran+x_pos+Ecran;
 | 
			
		||||
 | 
			
		||||
  int X;
 | 
			
		||||
  int x;
 | 
			
		||||
 | 
			
		||||
  for (X=0;X<width;X++)
 | 
			
		||||
    *(Dest+X)=~*(Dest+X);
 | 
			
		||||
  for (x=0;x<width;x++)
 | 
			
		||||
    *(Dest+x)=~*(Dest+x);
 | 
			
		||||
 | 
			
		||||
  Dest=(y_pos*2+1)*Largeur_ecran+x_pos+Ecran;
 | 
			
		||||
  for (X=0;X<width;X++)
 | 
			
		||||
    *(Dest+X)=~*(Dest+X);
 | 
			
		||||
  for (x=0;x<width;x++)
 | 
			
		||||
    *(Dest+x)=~*(Dest+x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Ligne_verticale_XOR_Tall(word x_pos,word y_pos,word height)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								pxtall.h
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								pxtall.h
									
									
									
									
									
								
							@ -21,11 +21,11 @@
 | 
			
		||||
*/
 | 
			
		||||
#include "struct.h"
 | 
			
		||||
 | 
			
		||||
  void Pixel_Tall                        (word X,word Y,byte Couleur);
 | 
			
		||||
  byte Lit_Pixel_Tall                    (word X,word Y);
 | 
			
		||||
  void Pixel_Tall                        (word x,word y,byte Couleur);
 | 
			
		||||
  byte Lit_Pixel_Tall                    (word x,word y);
 | 
			
		||||
  void Block_Tall                        (word Debut_X,word Debut_Y,word width,word height,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Normal_Tall         (word X,word Y,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Loupe_Tall          (word X,word Y,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Normal_Tall         (word x,word y,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Loupe_Tall          (word x,word y,byte Couleur);
 | 
			
		||||
  void Ligne_horizontale_XOR_Tall        (word x_pos,word y_pos,word width);
 | 
			
		||||
  void Ligne_verticale_XOR_Tall          (word x_pos,word y_pos,word height);
 | 
			
		||||
  void Display_brush_Color_Tall          (word x_pos,word y_pos,word x_offset,word y_offset,word width,word height,byte Couleur_de_transparence,word Largeur_brosse);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										36
									
								
								pxwide.c
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								pxwide.c
									
									
									
									
									
								
							@ -28,17 +28,17 @@
 | 
			
		||||
#include "sdlscreen.h"
 | 
			
		||||
#include "divers.h"
 | 
			
		||||
 | 
			
		||||
void Pixel_Wide (word X,word Y,byte Couleur)
 | 
			
		||||
/* Affiche un pixel de la Couleur aux coords X;Y à l'écran */
 | 
			
		||||
void Pixel_Wide (word x,word y,byte Couleur)
 | 
			
		||||
/* Affiche un pixel de la Couleur aux coords x;y à l'écran */
 | 
			
		||||
{
 | 
			
		||||
  *(Ecran + X * 2 + Y * 2 * Largeur_ecran)=Couleur;
 | 
			
		||||
  *(Ecran + X * 2 + Y * 2 * Largeur_ecran + 1)=Couleur;
 | 
			
		||||
  *(Ecran + x * 2 + y * 2 * Largeur_ecran)=Couleur;
 | 
			
		||||
  *(Ecran + x * 2 + y * 2 * Largeur_ecran + 1)=Couleur;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Lit_Pixel_Wide (word X,word Y)
 | 
			
		||||
byte Lit_Pixel_Wide (word x,word y)
 | 
			
		||||
/* On retourne la couleur du pixel aux coords données */
 | 
			
		||||
{
 | 
			
		||||
  return *( Ecran + Y * 2 * Largeur_ecran + X * 2);
 | 
			
		||||
  return *( Ecran + y * 2 * Largeur_ecran + x * 2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Block_Wide (word Debut_X,word Debut_Y,word width,word height,byte Couleur)
 | 
			
		||||
@ -78,28 +78,28 @@ void Afficher_partie_de_l_ecran_Wide (word width,word height,word image_width)
 | 
			
		||||
  //UpdateRect(0,0,width,height);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Pixel_Preview_Normal_Wide (word X,word Y,byte Couleur)
 | 
			
		||||
void Pixel_Preview_Normal_Wide (word x,word y,byte Couleur)
 | 
			
		||||
/* Affichage d'un pixel dans l'écran, par rapport au décalage de l'image 
 | 
			
		||||
 * dans l'écran, en mode normal (pas en mode loupe)
 | 
			
		||||
 * Note: si on modifie cette procédure, il faudra penser à faire également 
 | 
			
		||||
 * la modif dans la procédure Pixel_Preview_Loupe_SDL. */
 | 
			
		||||
{
 | 
			
		||||
//  if(X-Principal_Decalage_X >= 0 && Y - Principal_Decalage_Y >= 0)
 | 
			
		||||
  Pixel_Wide(X-Principal_Decalage_X,Y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
//  if(x-Principal_Decalage_X >= 0 && y - Principal_Decalage_Y >= 0)
 | 
			
		||||
  Pixel_Wide(x-Principal_Decalage_X,y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Pixel_Preview_Loupe_Wide  (word X,word Y,byte Couleur)
 | 
			
		||||
void Pixel_Preview_Loupe_Wide  (word x,word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  // Affiche le pixel dans la partie non zoomée
 | 
			
		||||
  Pixel_Wide(X-Principal_Decalage_X,Y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
  Pixel_Wide(x-Principal_Decalage_X,y-Principal_Decalage_Y,Couleur);
 | 
			
		||||
  
 | 
			
		||||
  // Regarde si on doit aussi l'afficher dans la partie zoomée
 | 
			
		||||
  if (Y >= Limite_Haut_Zoom && Y <= Limite_visible_Bas_Zoom
 | 
			
		||||
          && X >= Limite_Gauche_Zoom && X <= Limite_visible_Droite_Zoom)
 | 
			
		||||
  if (y >= Limite_Haut_Zoom && y <= Limite_visible_Bas_Zoom
 | 
			
		||||
          && x >= Limite_Gauche_Zoom && x <= Limite_visible_Droite_Zoom)
 | 
			
		||||
  {
 | 
			
		||||
    // On est dedans
 | 
			
		||||
    int height;
 | 
			
		||||
    int Y_Zoom = Table_mul_facteur_zoom[Y-Loupe_Decalage_Y];
 | 
			
		||||
    int Y_Zoom = Table_mul_facteur_zoom[y-Loupe_Decalage_Y];
 | 
			
		||||
 | 
			
		||||
    if (Menu_Ordonnee - Y_Zoom < Loupe_Facteur)
 | 
			
		||||
      // On ne doit dessiner qu'un morceau du pixel
 | 
			
		||||
@ -109,7 +109,7 @@ void Pixel_Preview_Loupe_Wide  (word X,word Y,byte Couleur)
 | 
			
		||||
      height = Loupe_Facteur;
 | 
			
		||||
 | 
			
		||||
    Block_Wide(
 | 
			
		||||
      Table_mul_facteur_zoom[X-Loupe_Decalage_X]+Principal_X_Zoom, 
 | 
			
		||||
      Table_mul_facteur_zoom[x-Loupe_Decalage_X]+Principal_X_Zoom, 
 | 
			
		||||
      Y_Zoom, Loupe_Facteur, height, Couleur
 | 
			
		||||
      );
 | 
			
		||||
  }
 | 
			
		||||
@ -120,10 +120,10 @@ void Ligne_horizontale_XOR_Wide(word x_pos,word y_pos,word width)
 | 
			
		||||
  //On calcule la valeur initiale de Dest:
 | 
			
		||||
  byte* Dest=y_pos*2*Largeur_ecran+x_pos*2+Ecran;
 | 
			
		||||
 | 
			
		||||
  int X;
 | 
			
		||||
  int x;
 | 
			
		||||
 | 
			
		||||
  for (X=0;X<width*2;X+=2)
 | 
			
		||||
    *(Dest+X+1)=*(Dest+X)=~*(Dest+X);
 | 
			
		||||
  for (x=0;x<width*2;x+=2)
 | 
			
		||||
    *(Dest+x+1)=*(Dest+x)=~*(Dest+x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Ligne_verticale_XOR_Wide(word x_pos,word y_pos,word height)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								pxwide.h
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								pxwide.h
									
									
									
									
									
								
							@ -21,11 +21,11 @@
 | 
			
		||||
*/
 | 
			
		||||
#include "struct.h"
 | 
			
		||||
 | 
			
		||||
  void Pixel_Wide                      (word X,word Y,byte Couleur);
 | 
			
		||||
  byte Lit_Pixel_Wide                  (word X,word Y);
 | 
			
		||||
  void Pixel_Wide                      (word x,word y,byte Couleur);
 | 
			
		||||
  byte Lit_Pixel_Wide                  (word x,word y);
 | 
			
		||||
  void Block_Wide                      (word Debut_X,word Debut_Y,word width,word height,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Normal_Wide       (word X,word Y,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Loupe_Wide        (word X,word Y,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Normal_Wide       (word x,word y,byte Couleur);
 | 
			
		||||
  void Pixel_Preview_Loupe_Wide        (word x,word y,byte Couleur);
 | 
			
		||||
  void Ligne_horizontale_XOR_Wide      (word x_pos,word y_pos,word width);
 | 
			
		||||
  void Ligne_verticale_XOR_Wide        (word x_pos,word y_pos,word height);
 | 
			
		||||
  void Display_brush_Color_Wide        (word x_pos,word y_pos,word x_offset,word y_offset,word width,word height,byte Couleur_de_transparence,word Largeur_brosse);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										292
									
								
								readini.c
									
									
									
									
									
								
							
							
						
						
									
										292
									
								
								readini.c
									
									
									
									
									
								
							@ -146,7 +146,7 @@ int Charger_INI_Reach_group(FILE * file,char * Buffer,char * Group)
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int Charger_INI_Get_string(FILE * file,char * Buffer,char * Option,char * Retour)
 | 
			
		||||
int Charger_INI_Get_string(FILE * file,char * Buffer,char * Option,char * return_code)
 | 
			
		||||
{
 | 
			
		||||
  int    Arret;
 | 
			
		||||
  char * Option_upper;
 | 
			
		||||
@ -187,7 +187,7 @@ int Charger_INI_Get_string(FILE * file,char * Buffer,char * Option,char * Retour
 | 
			
		||||
      // On se positionne juste après la chaîne "="
 | 
			
		||||
      Indice_buffer=Charger_INI_Seek_pattern(Buffer_upper,"=");
 | 
			
		||||
 | 
			
		||||
      strcpy(Retour, Buffer_upper + Indice_buffer);
 | 
			
		||||
      strcpy(return_code, Buffer_upper + Indice_buffer);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  while (!Arret);
 | 
			
		||||
@ -401,10 +401,10 @@ int Charger_INI(T_Config * Conf)
 | 
			
		||||
{
 | 
			
		||||
  FILE * file;
 | 
			
		||||
  char * Buffer;
 | 
			
		||||
  int    Valeurs[3];
 | 
			
		||||
  int    values[3];
 | 
			
		||||
  int    Indice;
 | 
			
		||||
  char * Nom_du_fichier;
 | 
			
		||||
  int    Retour;
 | 
			
		||||
  int    return_code;
 | 
			
		||||
  char   Libelle_valeur[1024];
 | 
			
		||||
 | 
			
		||||
  Ligne_INI=0;
 | 
			
		||||
@ -432,40 +432,40 @@ int Charger_INI(T_Config * Conf)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  if ((Retour=Charger_INI_Reach_group(file,Buffer,"[MOUSE]")))
 | 
			
		||||
  if ((return_code=Charger_INI_Reach_group(file,Buffer,"[MOUSE]")))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"X_sensitivity",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"X_sensitivity",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<1) || (Valeurs[0]>255))
 | 
			
		||||
  if ((values[0]<1) || (values[0]>255))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Indice_Sensibilite_souris_X=Valeurs[0];
 | 
			
		||||
  Conf->Indice_Sensibilite_souris_X=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Y_sensitivity",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Y_sensitivity",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<1) || (Valeurs[0]>255))
 | 
			
		||||
  if ((values[0]<1) || (values[0]>255))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Indice_Sensibilite_souris_Y=Valeurs[0];
 | 
			
		||||
  Conf->Indice_Sensibilite_souris_Y=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"X_correction_factor",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"X_correction_factor",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>4))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>4))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Mouse_Facteur_de_correction_X=Mouse_Facteur_de_correction_X=Valeurs[0];
 | 
			
		||||
  Conf->Mouse_Facteur_de_correction_X=Mouse_Facteur_de_correction_X=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Y_correction_factor",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Y_correction_factor",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>4))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>4))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Mouse_Facteur_de_correction_Y=Mouse_Facteur_de_correction_Y=Valeurs[0];
 | 
			
		||||
  Conf->Mouse_Facteur_de_correction_Y=Mouse_Facteur_de_correction_Y=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Cursor_aspect",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Cursor_aspect",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<1) || (Valeurs[0]>3))
 | 
			
		||||
  if ((values[0]<1) || (values[0]>3))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Curseur=Valeurs[0]-1;
 | 
			
		||||
  Conf->Curseur=values[0]-1;
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Reach_group(file,Buffer,"[MENU]")))
 | 
			
		||||
  if ((return_code=Charger_INI_Reach_group(file,Buffer,"[MENU]")))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Conf->Coul_menu_pref[0].R=0;
 | 
			
		||||
@ -475,215 +475,215 @@ int Charger_INI(T_Config * Conf)
 | 
			
		||||
  Conf->Coul_menu_pref[3].G=255;
 | 
			
		||||
  Conf->Coul_menu_pref[3].B=255;
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Light_color",3,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Light_color",3,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>63))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>63))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  if ((Valeurs[1]<0) || (Valeurs[1]>63))
 | 
			
		||||
  if ((values[1]<0) || (values[1]>63))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  if ((Valeurs[2]<0) || (Valeurs[2]>63))
 | 
			
		||||
  if ((values[2]<0) || (values[2]>63))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Coul_menu_pref[2].R=(Valeurs[0]<<2)|(Valeurs[0]>>4);
 | 
			
		||||
  Conf->Coul_menu_pref[2].G=(Valeurs[1]<<2)|(Valeurs[1]>>4);
 | 
			
		||||
  Conf->Coul_menu_pref[2].B=(Valeurs[2]<<2)|(Valeurs[2]>>4);
 | 
			
		||||
  Conf->Coul_menu_pref[2].R=(values[0]<<2)|(values[0]>>4);
 | 
			
		||||
  Conf->Coul_menu_pref[2].G=(values[1]<<2)|(values[1]>>4);
 | 
			
		||||
  Conf->Coul_menu_pref[2].B=(values[2]<<2)|(values[2]>>4);
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Dark_color",3,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Dark_color",3,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>63))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>63))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  if ((Valeurs[1]<0) || (Valeurs[1]>63))
 | 
			
		||||
  if ((values[1]<0) || (values[1]>63))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  if ((Valeurs[2]<0) || (Valeurs[2]>63))
 | 
			
		||||
  if ((values[2]<0) || (values[2]>63))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Coul_menu_pref[1].R=(Valeurs[0]<<2)|(Valeurs[0]>>4);
 | 
			
		||||
  Conf->Coul_menu_pref[1].G=(Valeurs[1]<<2)|(Valeurs[1]>>4);
 | 
			
		||||
  Conf->Coul_menu_pref[1].B=(Valeurs[2]<<2)|(Valeurs[2]>>4);
 | 
			
		||||
  Conf->Coul_menu_pref[1].R=(values[0]<<2)|(values[0]>>4);
 | 
			
		||||
  Conf->Coul_menu_pref[1].G=(values[1]<<2)|(values[1]>>4);
 | 
			
		||||
  Conf->Coul_menu_pref[1].B=(values[2]<<2)|(values[2]>>4);
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Menu_ratio",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Menu_ratio",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>2))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>2))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Ratio=Valeurs[0];
 | 
			
		||||
  Conf->Ratio=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Font",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Font",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<1) || (Valeurs[0]>2))
 | 
			
		||||
  if ((values[0]<1) || (values[0]>2))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Fonte=Valeurs[0]-1;
 | 
			
		||||
  Conf->Fonte=values[0]-1;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Reach_group(file,Buffer,"[FILE_SELECTOR]")))
 | 
			
		||||
  if ((return_code=Charger_INI_Reach_group(file,Buffer,"[FILE_SELECTOR]")))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Show_hidden_files",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Show_hidden_files",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Lire_les_fichiers_caches=Valeurs[0]?-1:0;
 | 
			
		||||
  Conf->Lire_les_fichiers_caches=values[0]?-1:0;
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Show_hidden_directories",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Show_hidden_directories",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Lire_les_repertoires_caches=Valeurs[0]?-1:0;
 | 
			
		||||
  Conf->Lire_les_repertoires_caches=values[0]?-1:0;
 | 
			
		||||
 | 
			
		||||
/*  if ((Retour=Charger_INI_Get_values (file,Buffer,"Show_system_directories",1,Valeurs)))
 | 
			
		||||
/*  if ((return_code=Charger_INI_Get_values (file,Buffer,"Show_system_directories",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Lire_les_repertoires_systemes=Valeurs[0]?-1:0;
 | 
			
		||||
  Conf->Lire_les_repertoires_systemes=values[0]?-1:0;
 | 
			
		||||
*/
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Preview_delay",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Preview_delay",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<1) || (Valeurs[0]>256))
 | 
			
		||||
  if ((values[0]<1) || (values[0]>256))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Chrono_delay=Valeurs[0];
 | 
			
		||||
  Conf->Chrono_delay=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Maximize_preview",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Maximize_preview",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Maximize_preview=Valeurs[0];
 | 
			
		||||
  Conf->Maximize_preview=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Find_file_fast",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Find_file_fast",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>2))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>2))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Find_file_fast=Valeurs[0];
 | 
			
		||||
  Conf->Find_file_fast=values[0];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Reach_group(file,Buffer,"[LOADING]")))
 | 
			
		||||
  if ((return_code=Charger_INI_Reach_group(file,Buffer,"[LOADING]")))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Auto_set_resolution",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Auto_set_resolution",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Auto_set_res=Valeurs[0];
 | 
			
		||||
  Conf->Auto_set_res=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Set_resolution_according_to",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Set_resolution_according_to",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<1) || (Valeurs[0]>2))
 | 
			
		||||
  if ((values[0]<1) || (values[0]>2))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Set_resolution_according_to=Valeurs[0];
 | 
			
		||||
  Conf->Set_resolution_according_to=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Clear_palette",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Clear_palette",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Clear_palette=Valeurs[0];
 | 
			
		||||
  Conf->Clear_palette=values[0];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Reach_group(file,Buffer,"[MISCELLANEOUS]")))
 | 
			
		||||
  if ((return_code=Charger_INI_Reach_group(file,Buffer,"[MISCELLANEOUS]")))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Draw_limits",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Draw_limits",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Afficher_limites_image=Valeurs[0];
 | 
			
		||||
  Conf->Afficher_limites_image=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Adjust_brush_pick",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Adjust_brush_pick",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Adjust_brush_pick=Valeurs[0];
 | 
			
		||||
  Conf->Adjust_brush_pick=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Coordinates",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Coordinates",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<1) || (Valeurs[0]>2))
 | 
			
		||||
  if ((values[0]<1) || (values[0]>2))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Coords_rel=2-Valeurs[0];
 | 
			
		||||
  Conf->Coords_rel=2-values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Backup",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Backup",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Backup=Valeurs[0];
 | 
			
		||||
  Conf->Backup=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Undo_pages",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Undo_pages",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<1) || (Valeurs[0]>99))
 | 
			
		||||
  if ((values[0]<1) || (values[0]>99))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Nb_pages_Undo=Valeurs[0];
 | 
			
		||||
  Conf->Nb_pages_Undo=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Gauges_scrolling_speed_Left",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Gauges_scrolling_speed_Left",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<1) || (Valeurs[0]>255))
 | 
			
		||||
  if ((values[0]<1) || (values[0]>255))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Valeur_tempo_jauge_gauche=Valeurs[0];
 | 
			
		||||
  Conf->Valeur_tempo_jauge_gauche=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Gauges_scrolling_speed_Right",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Gauges_scrolling_speed_Right",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<1) || (Valeurs[0]>255))
 | 
			
		||||
  if ((values[0]<1) || (values[0]>255))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Valeur_tempo_jauge_droite=Valeurs[0];
 | 
			
		||||
  Conf->Valeur_tempo_jauge_droite=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Auto_save",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Auto_save",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Auto_save=Valeurs[0];
 | 
			
		||||
  Conf->Auto_save=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Vertices_per_polygon",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Vertices_per_polygon",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<2) || (Valeurs[0]>16384))
 | 
			
		||||
  if ((values[0]<2) || (values[0]>16384))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Nb_max_de_vertex_par_polygon=Valeurs[0];
 | 
			
		||||
  Conf->Nb_max_de_vertex_par_polygon=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Fast_zoom",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Fast_zoom",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Fast_zoom=Valeurs[0];
 | 
			
		||||
  Conf->Fast_zoom=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Separate_colors",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Separate_colors",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Couleurs_separees=Valeurs[0];
 | 
			
		||||
  Conf->Couleurs_separees=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"FX_feedback",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"FX_feedback",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->FX_Feedback=Valeurs[0];
 | 
			
		||||
  Conf->FX_Feedback=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Safety_colors",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Safety_colors",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Safety_colors=Valeurs[0];
 | 
			
		||||
  Conf->Safety_colors=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Opening_message",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Opening_message",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Opening_message=Valeurs[0];
 | 
			
		||||
  Conf->Opening_message=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Clear_with_stencil",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Clear_with_stencil",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Clear_with_stencil=Valeurs[0];
 | 
			
		||||
  Conf->Clear_with_stencil=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Auto_discontinuous",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Auto_discontinuous",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Auto_discontinuous=Valeurs[0];
 | 
			
		||||
  Conf->Auto_discontinuous=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Save_screen_size_in_GIF",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Save_screen_size_in_GIF",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Taille_ecran_dans_GIF=Valeurs[0];
 | 
			
		||||
  Conf->Taille_ecran_dans_GIF=values[0];
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Charger_INI_Get_values (file,Buffer,"Auto_nb_colors_used",1,Valeurs)))
 | 
			
		||||
  if ((return_code=Charger_INI_Get_values (file,Buffer,"Auto_nb_colors_used",1,values)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
  if ((Valeurs[0]<0) || (Valeurs[0]>1))
 | 
			
		||||
  if ((values[0]<0) || (values[0]>1))
 | 
			
		||||
    goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
  Conf->Auto_nb_used=Valeurs[0];
 | 
			
		||||
  Conf->Auto_nb_used=values[0];
 | 
			
		||||
 | 
			
		||||
  // Optionnel, le mode video par défaut (à partir de beta 97.0%)
 | 
			
		||||
  Conf->Resolution_par_defaut=0;
 | 
			
		||||
@ -697,38 +697,38 @@ int Charger_INI(T_Config * Conf)
 | 
			
		||||
  // Optionnel, les dimensions de la fenêtre (à partir de beta 97.0%)
 | 
			
		||||
  Mode_video[0].Width = 640;
 | 
			
		||||
  Mode_video[0].Height = 480;
 | 
			
		||||
  if (!Charger_INI_Get_values (file,Buffer,"Default_window_size",2,Valeurs))
 | 
			
		||||
  if (!Charger_INI_Get_values (file,Buffer,"Default_window_size",2,values))
 | 
			
		||||
  {
 | 
			
		||||
    if ((Valeurs[0]>=320))
 | 
			
		||||
      Mode_video[0].Width = Valeurs[0];
 | 
			
		||||
    if ((Valeurs[1]>=200))
 | 
			
		||||
      Mode_video[0].Height = Valeurs[1];
 | 
			
		||||
    if ((values[0]>=320))
 | 
			
		||||
      Mode_video[0].Width = values[0];
 | 
			
		||||
    if ((values[1]>=200))
 | 
			
		||||
      Mode_video[0].Height = values[1];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Conf->Mouse_Merge_movement=100;
 | 
			
		||||
  // Optionnel, paramètre pour grouper les mouvements souris (>98.0%)
 | 
			
		||||
  if (!Charger_INI_Get_values (file,Buffer,"Merge_movement",1,Valeurs))
 | 
			
		||||
  if (!Charger_INI_Get_values (file,Buffer,"Merge_movement",1,values))
 | 
			
		||||
  {
 | 
			
		||||
    if ((Valeurs[0]<0) || (Valeurs[0]>1000))
 | 
			
		||||
    if ((values[0]<0) || (values[0]>1000))
 | 
			
		||||
      goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
    Conf->Mouse_Merge_movement=Valeurs[0];
 | 
			
		||||
    Conf->Mouse_Merge_movement=values[0];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Conf->Palette_Cells_X=8;
 | 
			
		||||
  // Optionnel, nombre de colonnes dans la palette (>98.0%)
 | 
			
		||||
  if (!Charger_INI_Get_values (file,Buffer,"Palette_Cells_X",1,Valeurs))
 | 
			
		||||
  if (!Charger_INI_Get_values (file,Buffer,"Palette_Cells_X",1,values))
 | 
			
		||||
  {
 | 
			
		||||
    if ((Valeurs[0]<1) || (Valeurs[0]>256))
 | 
			
		||||
    if ((values[0]<1) || (values[0]>256))
 | 
			
		||||
      goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
    Conf->Palette_Cells_X=Valeurs[0];
 | 
			
		||||
    Conf->Palette_Cells_X=values[0];
 | 
			
		||||
  }
 | 
			
		||||
  Conf->Palette_Cells_Y=8;
 | 
			
		||||
  // Optionnel, nombre de lignes dans la palette (>98.0%)
 | 
			
		||||
  if (!Charger_INI_Get_values (file,Buffer,"Palette_Cells_Y",1,Valeurs))
 | 
			
		||||
  if (!Charger_INI_Get_values (file,Buffer,"Palette_Cells_Y",1,values))
 | 
			
		||||
  {
 | 
			
		||||
    if (Valeurs[0]<1 || Valeurs[0]>16)
 | 
			
		||||
    if (values[0]<1 || values[0]>16)
 | 
			
		||||
      goto Erreur_ERREUR_INI_CORROMPU;
 | 
			
		||||
    Conf->Palette_Cells_Y=Valeurs[0];
 | 
			
		||||
    Conf->Palette_Cells_Y=values[0];
 | 
			
		||||
  }
 | 
			
		||||
  // Optionnel, bookmarks (>98.0%)
 | 
			
		||||
  for (Indice=0;Indice<NB_BOOKMARKS;Indice++)
 | 
			
		||||
@ -740,10 +740,10 @@ int Charger_INI(T_Config * Conf)
 | 
			
		||||
  {
 | 
			
		||||
    if (!Charger_INI_Get_string (file,Buffer,"Bookmark_label",Libelle_valeur))
 | 
			
		||||
    {
 | 
			
		||||
      int Taille=strlen(Libelle_valeur);
 | 
			
		||||
      if (Taille!=0)
 | 
			
		||||
      int size=strlen(Libelle_valeur);
 | 
			
		||||
      if (size!=0)
 | 
			
		||||
      {
 | 
			
		||||
        if (Taille>8)
 | 
			
		||||
        if (size>8)
 | 
			
		||||
        {
 | 
			
		||||
          Libelle_valeur[7]=CARACTERE_SUSPENSION;
 | 
			
		||||
          Libelle_valeur[8]='\0';
 | 
			
		||||
@ -755,10 +755,10 @@ int Charger_INI(T_Config * Conf)
 | 
			
		||||
      break;
 | 
			
		||||
    if (!Charger_INI_Get_string (file,Buffer,"Bookmark_directory",Libelle_valeur))
 | 
			
		||||
    {
 | 
			
		||||
      int Taille=strlen(Libelle_valeur);
 | 
			
		||||
      if (Taille!=0)
 | 
			
		||||
      int size=strlen(Libelle_valeur);
 | 
			
		||||
      if (size!=0)
 | 
			
		||||
      {
 | 
			
		||||
        Conf->Bookmark_directory[Indice]=(char *)malloc(Taille+1);
 | 
			
		||||
        Conf->Bookmark_directory[Indice]=(char *)malloc(size+1);
 | 
			
		||||
        strcpy(Conf->Bookmark_directory[Indice],Libelle_valeur);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
@ -778,7 +778,7 @@ int Charger_INI(T_Config * Conf)
 | 
			
		||||
    fclose(file);
 | 
			
		||||
    free(Nom_du_fichier);
 | 
			
		||||
    free(Buffer);
 | 
			
		||||
    return Retour;
 | 
			
		||||
    return return_code;
 | 
			
		||||
 | 
			
		||||
  Erreur_ERREUR_INI_CORROMPU:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										44
									
								
								readline.c
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								readline.c
									
									
									
									
									
								
							@ -138,7 +138,7 @@ byte Readline_ex(word x_pos,word y_pos,char * Chaine,byte Taille_affichee,byte T
 | 
			
		||||
  char Chaine_initiale[256];
 | 
			
		||||
  char Chaine_affichee[256];
 | 
			
		||||
  byte position;
 | 
			
		||||
  byte Taille;
 | 
			
		||||
  byte size;
 | 
			
		||||
  word Touche_lue=0;
 | 
			
		||||
  byte Touche_autorisee;
 | 
			
		||||
 | 
			
		||||
@ -161,8 +161,8 @@ byte Readline_ex(word x_pos,word y_pos,char * Chaine,byte Taille_affichee,byte T
 | 
			
		||||
    snprintf(Chaine,10,"%d",atoi(Chaine)); // On tasse la chaine à gauche
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  Taille=strlen(Chaine);
 | 
			
		||||
  position=(Taille<Taille_maxi)? Taille:Taille-1;
 | 
			
		||||
  size=strlen(Chaine);
 | 
			
		||||
  position=(size<Taille_maxi)? size:size-1;
 | 
			
		||||
  if (position-offset>Taille_affichee)
 | 
			
		||||
    offset=position-Taille_affichee+1;
 | 
			
		||||
  // Formatage d'une partie de la chaine (si trop longue pour tenir)
 | 
			
		||||
@ -170,7 +170,7 @@ byte Readline_ex(word x_pos,word y_pos,char * Chaine,byte Taille_affichee,byte T
 | 
			
		||||
  Chaine_affichee[Taille_affichee]='\0';
 | 
			
		||||
  if (offset>0)
 | 
			
		||||
    Chaine_affichee[0]=CARACTERE_TRIANGLE_GAUCHE;
 | 
			
		||||
  if (Taille_affichee + offset + 1 < Taille )
 | 
			
		||||
  if (Taille_affichee + offset + 1 < size )
 | 
			
		||||
    Chaine_affichee[Taille_affichee-1]=CARACTERE_TRIANGLE_DROIT;
 | 
			
		||||
  
 | 
			
		||||
  Rafficher_toute_la_chaine(x_pos,y_pos,Chaine_affichee,position - offset);
 | 
			
		||||
@ -190,10 +190,10 @@ byte Readline_ex(word x_pos,word y_pos,char * Chaine,byte Taille_affichee,byte T
 | 
			
		||||
    switch (Touche_lue)
 | 
			
		||||
    {
 | 
			
		||||
      case SDLK_DELETE : // Suppr.
 | 
			
		||||
            if (position<Taille)
 | 
			
		||||
            if (position<size)
 | 
			
		||||
            {
 | 
			
		||||
              Supprimer_caractere(Chaine,position);
 | 
			
		||||
              Taille--;
 | 
			
		||||
              size--;
 | 
			
		||||
              
 | 
			
		||||
              // Effacement de la chaîne
 | 
			
		||||
              Block(Fenetre_Pos_X+(x_pos*Menu_Facteur_X),Fenetre_Pos_Y+(y_pos*Menu_Facteur_Y),
 | 
			
		||||
@ -205,7 +205,7 @@ byte Readline_ex(word x_pos,word y_pos,char * Chaine,byte Taille_affichee,byte T
 | 
			
		||||
            if (position>0)
 | 
			
		||||
            {
 | 
			
		||||
              // Effacement de la chaîne
 | 
			
		||||
              if (position==Taille)
 | 
			
		||||
              if (position==size)
 | 
			
		||||
                Block(Fenetre_Pos_X+(x_pos*Menu_Facteur_X),Fenetre_Pos_Y+(y_pos*Menu_Facteur_Y),
 | 
			
		||||
                      Taille_affichee*(Menu_Facteur_X<<3),(Menu_Facteur_Y<<3),COULEUR_FOND);
 | 
			
		||||
              position--;
 | 
			
		||||
@ -215,11 +215,11 @@ byte Readline_ex(word x_pos,word y_pos,char * Chaine,byte Taille_affichee,byte T
 | 
			
		||||
            }
 | 
			
		||||
      break;
 | 
			
		||||
      case SDLK_RIGHT : // Droite
 | 
			
		||||
            if ((position<Taille) && (position<Taille_maxi-1))
 | 
			
		||||
            if ((position<size) && (position<Taille_maxi-1))
 | 
			
		||||
            {
 | 
			
		||||
              position++;
 | 
			
		||||
              //if (position > Taille_affichee + offset - 2)
 | 
			
		||||
              //if (offset + Taille_affichee < Taille_maxi && (position == Taille || (position > Taille_affichee + offset - 2)))
 | 
			
		||||
              //if (offset + Taille_affichee < Taille_maxi && (position == size || (position > Taille_affichee + offset - 2)))
 | 
			
		||||
              if (Chaine_affichee[position-offset]==CARACTERE_TRIANGLE_DROIT || position-offset>=Taille_affichee)
 | 
			
		||||
                offset++;
 | 
			
		||||
              goto affichage;
 | 
			
		||||
@ -229,7 +229,7 @@ byte Readline_ex(word x_pos,word y_pos,char * Chaine,byte Taille_affichee,byte T
 | 
			
		||||
            if (position)
 | 
			
		||||
            {
 | 
			
		||||
              // Effacement de la chaîne
 | 
			
		||||
              if (position==Taille)
 | 
			
		||||
              if (position==size)
 | 
			
		||||
                Block(Fenetre_Pos_X+(x_pos*Menu_Facteur_X),Fenetre_Pos_Y+(y_pos*Menu_Facteur_Y),
 | 
			
		||||
                      Taille_affichee*(Menu_Facteur_X<<3),(Menu_Facteur_Y<<3),COULEUR_FOND);
 | 
			
		||||
              position = 0;
 | 
			
		||||
@ -238,9 +238,9 @@ byte Readline_ex(word x_pos,word y_pos,char * Chaine,byte Taille_affichee,byte T
 | 
			
		||||
            }
 | 
			
		||||
      break;
 | 
			
		||||
      case SDLK_END : // End
 | 
			
		||||
            if ((position<Taille) && (position<Taille_maxi-1))
 | 
			
		||||
            if ((position<size) && (position<Taille_maxi-1))
 | 
			
		||||
            {
 | 
			
		||||
              position=(Taille<Taille_maxi)?Taille:Taille-1;
 | 
			
		||||
              position=(size<Taille_maxi)?size:size-1;
 | 
			
		||||
              if (position-offset>Taille_affichee)
 | 
			
		||||
                offset=position-Taille_affichee+1;
 | 
			
		||||
              goto affichage;
 | 
			
		||||
@ -254,7 +254,7 @@ byte Readline_ex(word x_pos,word y_pos,char * Chaine,byte Taille_affichee,byte T
 | 
			
		||||
          if (offset > 0 && (position == 0 || position < (offset + 1)))
 | 
			
		||||
            offset--;
 | 
			
		||||
          Supprimer_caractere(Chaine,position);
 | 
			
		||||
          Taille--;
 | 
			
		||||
          size--;
 | 
			
		||||
          // Effacement de la chaîne
 | 
			
		||||
          Block(Fenetre_Pos_X+(x_pos*Menu_Facteur_X),Fenetre_Pos_Y+(y_pos*Menu_Facteur_Y),
 | 
			
		||||
                Taille_affichee*(Menu_Facteur_X<<3),(Menu_Facteur_Y<<3),COULEUR_FOND);
 | 
			
		||||
@ -267,10 +267,10 @@ byte Readline_ex(word x_pos,word y_pos,char * Chaine,byte Taille_affichee,byte T
 | 
			
		||||
      case TOUCHE_ESC :
 | 
			
		||||
        // On restaure la chaine initiale
 | 
			
		||||
        strcpy(Chaine,Chaine_initiale);
 | 
			
		||||
        Taille=strlen(Chaine);
 | 
			
		||||
        size=strlen(Chaine);
 | 
			
		||||
        break;
 | 
			
		||||
      default :
 | 
			
		||||
        if (Taille<Taille_maxi)
 | 
			
		||||
        if (size<Taille_maxi)
 | 
			
		||||
        {
 | 
			
		||||
          // On va regarder si l'utilisateur le droit de se servir de cette touche
 | 
			
		||||
          Touche_autorisee=0; // On commence par supposer qu'elle est interdite
 | 
			
		||||
@ -294,11 +294,11 @@ byte Readline_ex(word x_pos,word y_pos,char * Chaine,byte Taille_affichee,byte T
 | 
			
		||||
          if (Touche_autorisee)
 | 
			
		||||
          {
 | 
			
		||||
            // ... alors on l'insère ...
 | 
			
		||||
            Inserer_caractere(Chaine,Touche_lue,position/*,Taille*/);
 | 
			
		||||
            Inserer_caractere(Chaine,Touche_lue,position/*,size*/);
 | 
			
		||||
            // ce qui augmente la taille de la chaine
 | 
			
		||||
            Taille++;
 | 
			
		||||
            size++;
 | 
			
		||||
            // et qui risque de déplacer le curseur vers la droite
 | 
			
		||||
            if (Taille<Taille_maxi)
 | 
			
		||||
            if (size<Taille_maxi)
 | 
			
		||||
            {
 | 
			
		||||
              position++;
 | 
			
		||||
              if (Chaine_affichee[position-offset]==CARACTERE_TRIANGLE_DROIT || position-offset>=Taille_affichee)
 | 
			
		||||
@ -311,13 +311,13 @@ byte Readline_ex(word x_pos,word y_pos,char * Chaine,byte Taille_affichee,byte T
 | 
			
		||||
        break;
 | 
			
		||||
      
 | 
			
		||||
affichage:
 | 
			
		||||
        Taille=strlen(Chaine);
 | 
			
		||||
        size=strlen(Chaine);
 | 
			
		||||
        // Formatage d'une partie de la chaine (si trop longue pour tenir)
 | 
			
		||||
        strncpy(Chaine_affichee, Chaine + offset, Taille_affichee);
 | 
			
		||||
        Chaine_affichee[Taille_affichee]='\0';
 | 
			
		||||
        if (offset>0)
 | 
			
		||||
          Chaine_affichee[0]=CARACTERE_TRIANGLE_GAUCHE;
 | 
			
		||||
        if (Taille_affichee + offset + 0 < Taille )
 | 
			
		||||
        if (Taille_affichee + offset + 0 < size )
 | 
			
		||||
          Chaine_affichee[Taille_affichee-1]=CARACTERE_TRIANGLE_DROIT;
 | 
			
		||||
        
 | 
			
		||||
        Rafficher_toute_la_chaine(x_pos,y_pos,Chaine_affichee,position - offset);
 | 
			
		||||
@ -337,9 +337,9 @@ affichage:
 | 
			
		||||
    if (Chaine[0]=='\0')
 | 
			
		||||
    {
 | 
			
		||||
      strcpy(Chaine,"0");
 | 
			
		||||
      Taille=1;
 | 
			
		||||
      size=1;
 | 
			
		||||
    }
 | 
			
		||||
    Print_dans_fenetre(x_pos+((Taille_maxi-Taille)<<3),y_pos,Chaine,COULEUR_TEXTE,COULEUR_FOND);
 | 
			
		||||
    Print_dans_fenetre(x_pos+((Taille_maxi-size)<<3),y_pos,Chaine,COULEUR_TEXTE,COULEUR_FOND);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										192
									
								
								saveini.c
									
									
									
									
									
								
							
							
						
						
									
										192
									
								
								saveini.c
									
									
									
									
									
								
							@ -392,10 +392,10 @@ int Sauver_INI(T_Config * Conf)
 | 
			
		||||
  FILE * Ancien_fichier;
 | 
			
		||||
  FILE * Nouveau_fichier;
 | 
			
		||||
  char * Buffer;
 | 
			
		||||
  int    Valeurs[3];
 | 
			
		||||
  int    values[3];
 | 
			
		||||
  char   Nom_du_fichier[TAILLE_CHEMIN_FICHIER];
 | 
			
		||||
  char   Nom_du_fichier_temporaire[TAILLE_CHEMIN_FICHIER];
 | 
			
		||||
  int    Retour;
 | 
			
		||||
  int    return_code;
 | 
			
		||||
  char   Nom_du_fichier_DAT[TAILLE_CHEMIN_FICHIER];
 | 
			
		||||
  int    Ini_existe;
 | 
			
		||||
  int Indice;
 | 
			
		||||
@ -434,197 +434,197 @@ int Sauver_INI(T_Config * Conf)
 | 
			
		||||
    free(Buffer);
 | 
			
		||||
    return ERREUR_SAUVEGARDE_INI;
 | 
			
		||||
  }
 | 
			
		||||
  if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MOUSE]")))
 | 
			
		||||
  if ((return_code=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MOUSE]")))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Indice_Sensibilite_souris_X;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"X_sensitivity",1,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Indice_Sensibilite_souris_X;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"X_sensitivity",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Indice_Sensibilite_souris_Y;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Y_sensitivity",1,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Indice_Sensibilite_souris_Y;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Y_sensitivity",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Mouse_Facteur_de_correction_X;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"X_correction_factor",1,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Mouse_Facteur_de_correction_X;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"X_correction_factor",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Mouse_Facteur_de_correction_Y;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Y_correction_factor",1,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Mouse_Facteur_de_correction_Y;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Y_correction_factor",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=(Conf->Curseur)+1;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Cursor_aspect",1,Valeurs,0)))
 | 
			
		||||
  values[0]=(Conf->Curseur)+1;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Cursor_aspect",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MENU]")))
 | 
			
		||||
  if ((return_code=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MENU]")))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Coul_menu_pref[2].R>>2;
 | 
			
		||||
  Valeurs[1]=Conf->Coul_menu_pref[2].G>>2;
 | 
			
		||||
  Valeurs[2]=Conf->Coul_menu_pref[2].B>>2;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Light_color",3,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Coul_menu_pref[2].R>>2;
 | 
			
		||||
  values[1]=Conf->Coul_menu_pref[2].G>>2;
 | 
			
		||||
  values[2]=Conf->Coul_menu_pref[2].B>>2;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Light_color",3,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Coul_menu_pref[1].R>>2;
 | 
			
		||||
  Valeurs[1]=Conf->Coul_menu_pref[1].G>>2;
 | 
			
		||||
  Valeurs[2]=Conf->Coul_menu_pref[1].B>>2;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Dark_color",3,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Coul_menu_pref[1].R>>2;
 | 
			
		||||
  values[1]=Conf->Coul_menu_pref[1].G>>2;
 | 
			
		||||
  values[2]=Conf->Coul_menu_pref[1].B>>2;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Dark_color",3,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Ratio;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Menu_ratio",1,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Ratio;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Menu_ratio",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=(Conf->Fonte)+1;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Font",1,Valeurs,0)))
 | 
			
		||||
  values[0]=(Conf->Fonte)+1;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Font",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[FILE_SELECTOR]")))
 | 
			
		||||
  if ((return_code=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[FILE_SELECTOR]")))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Lire_les_fichiers_caches?1:0;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Show_hidden_files",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Lire_les_fichiers_caches?1:0;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Show_hidden_files",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Lire_les_repertoires_caches?1:0;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Show_hidden_directories",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Lire_les_repertoires_caches?1:0;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Show_hidden_directories",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
/*  Valeurs[0]=Conf->Lire_les_repertoires_systemes?1:0;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Show_system_directories",1,Valeurs,1)))
 | 
			
		||||
/*  values[0]=Conf->Lire_les_repertoires_systemes?1:0;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Show_system_directories",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
*/
 | 
			
		||||
  Valeurs[0]=Conf->Chrono_delay;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Preview_delay",1,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Chrono_delay;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Preview_delay",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Maximize_preview;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Maximize_preview",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Maximize_preview;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Maximize_preview",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Find_file_fast;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Find_file_fast",1,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Find_file_fast;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Find_file_fast",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[LOADING]")))
 | 
			
		||||
  if ((return_code=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[LOADING]")))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Auto_set_res;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_set_resolution",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Auto_set_res;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_set_resolution",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Set_resolution_according_to;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Set_resolution_according_to",1,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Set_resolution_according_to;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Set_resolution_according_to",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Clear_palette;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Clear_palette",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Clear_palette;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Clear_palette",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MISCELLANEOUS]")))
 | 
			
		||||
  if ((return_code=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MISCELLANEOUS]")))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Afficher_limites_image;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Draw_limits",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Afficher_limites_image;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Draw_limits",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Adjust_brush_pick;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Adjust_brush_pick",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Adjust_brush_pick;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Adjust_brush_pick",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=2-Conf->Coords_rel;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Coordinates",1,Valeurs,0)))
 | 
			
		||||
  values[0]=2-Conf->Coords_rel;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Coordinates",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Backup;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Backup",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Backup;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Backup",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Nb_pages_Undo;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Undo_pages",1,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Nb_pages_Undo;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Undo_pages",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Valeur_tempo_jauge_gauche;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Gauges_scrolling_speed_Left",1,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Valeur_tempo_jauge_gauche;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Gauges_scrolling_speed_Left",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Valeur_tempo_jauge_droite;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Gauges_scrolling_speed_Right",1,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Valeur_tempo_jauge_droite;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Gauges_scrolling_speed_Right",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Auto_save;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_save",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Auto_save;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_save",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Nb_max_de_vertex_par_polygon;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Vertices_per_polygon",1,Valeurs,0)))
 | 
			
		||||
  values[0]=Conf->Nb_max_de_vertex_par_polygon;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Vertices_per_polygon",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Fast_zoom;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Fast_zoom",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Fast_zoom;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Fast_zoom",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Couleurs_separees;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Separate_colors",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Couleurs_separees;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Separate_colors",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->FX_Feedback;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"FX_feedback",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->FX_Feedback;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"FX_feedback",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Safety_colors;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Safety_colors",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Safety_colors;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Safety_colors",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Opening_message;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Opening_message",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Opening_message;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Opening_message",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Clear_with_stencil;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Clear_with_stencil",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Clear_with_stencil;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Clear_with_stencil",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Auto_discontinuous;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_discontinuous",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Auto_discontinuous;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_discontinuous",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Taille_ecran_dans_GIF;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Save_screen_size_in_GIF",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Taille_ecran_dans_GIF;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Save_screen_size_in_GIF",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Conf->Auto_nb_used;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_nb_colors_used",1,Valeurs,1)))
 | 
			
		||||
  values[0]=Conf->Auto_nb_used;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_nb_colors_used",1,values,1)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_strings (Ancien_fichier,Nouveau_fichier,Buffer,"Default_video_mode",Libelle_mode(Conf->Resolution_par_defaut))))
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_strings (Ancien_fichier,Nouveau_fichier,Buffer,"Default_video_mode",Libelle_mode(Conf->Resolution_par_defaut))))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=Mode_video[0].Width;
 | 
			
		||||
  Valeurs[1]=Mode_video[0].Height;
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Default_window_size",2,Valeurs,0)))
 | 
			
		||||
  values[0]=Mode_video[0].Width;
 | 
			
		||||
  values[1]=Mode_video[0].Height;
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Default_window_size",2,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=(Conf->Mouse_Merge_movement);
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Merge_movement",1,Valeurs,0)))
 | 
			
		||||
  values[0]=(Conf->Mouse_Merge_movement);
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Merge_movement",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=(Conf->Palette_Cells_X);
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Palette_Cells_X",1,Valeurs,0)))
 | 
			
		||||
  values[0]=(Conf->Palette_Cells_X);
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Palette_Cells_X",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  Valeurs[0]=(Conf->Palette_Cells_Y);
 | 
			
		||||
  if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Palette_Cells_Y",1,Valeurs,0)))
 | 
			
		||||
  values[0]=(Conf->Palette_Cells_Y);
 | 
			
		||||
  if ((return_code=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Palette_Cells_Y",1,values,0)))
 | 
			
		||||
    goto Erreur_Retour;
 | 
			
		||||
 | 
			
		||||
  for (Indice=0;Indice<NB_BOOKMARKS;Indice++)
 | 
			
		||||
  {
 | 
			
		||||
    if ((Retour=Sauver_INI_Set_strings (Ancien_fichier,Nouveau_fichier,Buffer,"Bookmark_label",Conf->Bookmark_label[Indice])))
 | 
			
		||||
    if ((return_code=Sauver_INI_Set_strings (Ancien_fichier,Nouveau_fichier,Buffer,"Bookmark_label",Conf->Bookmark_label[Indice])))
 | 
			
		||||
      goto Erreur_Retour;
 | 
			
		||||
    if ((Retour=Sauver_INI_Set_strings (Ancien_fichier,Nouveau_fichier,Buffer,"Bookmark_directory",Conf->Bookmark_directory[Indice])))
 | 
			
		||||
    if ((return_code=Sauver_INI_Set_strings (Ancien_fichier,Nouveau_fichier,Buffer,"Bookmark_directory",Conf->Bookmark_directory[Indice])))
 | 
			
		||||
      goto Erreur_Retour;
 | 
			
		||||
  }
 | 
			
		||||
    
 | 
			
		||||
@ -646,7 +646,7 @@ int Sauver_INI(T_Config * Conf)
 | 
			
		||||
    fclose(Nouveau_fichier);
 | 
			
		||||
    fclose(Ancien_fichier);
 | 
			
		||||
    free(Buffer);
 | 
			
		||||
    return Retour;
 | 
			
		||||
    return return_code;
 | 
			
		||||
 | 
			
		||||
  Erreur_ERREUR_SAUVEGARDE_INI:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										36
									
								
								sdlscreen.c
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								sdlscreen.c
									
									
									
									
									
								
							@ -106,10 +106,10 @@ void Flush_update(void)
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void UpdateRect(short X, short Y, unsigned short width, unsigned short height)
 | 
			
		||||
void UpdateRect(short x, short y, unsigned short width, unsigned short height)
 | 
			
		||||
{
 | 
			
		||||
  #if (METHODE_UPDATE == METHODE_UPDATE_MULTI_RECTANGLE)
 | 
			
		||||
    SDL_UpdateRect(Ecran_SDL, X*Pixel_width, Y*Pixel_height, width*Pixel_width, height*Pixel_height);
 | 
			
		||||
    SDL_UpdateRect(Ecran_SDL, x*Pixel_width, y*Pixel_height, width*Pixel_width, height*Pixel_height);
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #if (METHODE_UPDATE == METHODE_UPDATE_PAR_CUMUL)
 | 
			
		||||
@ -120,14 +120,14 @@ void UpdateRect(short X, short Y, unsigned short width, unsigned short height)
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    if (X < Min_X)
 | 
			
		||||
      Min_X = X;
 | 
			
		||||
    if (Y < Min_Y)
 | 
			
		||||
      Min_Y = Y;
 | 
			
		||||
    if (X+width>Max_X)
 | 
			
		||||
      Max_X=X+width;
 | 
			
		||||
    if (Y+height>Max_Y)
 | 
			
		||||
      Max_Y=Y+height;
 | 
			
		||||
    if (x < Min_X)
 | 
			
		||||
      Min_X = x;
 | 
			
		||||
    if (y < Min_Y)
 | 
			
		||||
      Min_Y = y;
 | 
			
		||||
    if (x+width>Max_X)
 | 
			
		||||
      Max_X=x+width;
 | 
			
		||||
    if (y+height>Max_Y)
 | 
			
		||||
      Max_Y=y+height;
 | 
			
		||||
  }
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
@ -144,28 +144,28 @@ byte * Surface_en_bytefield(SDL_Surface *Source, byte * dest)
 | 
			
		||||
{
 | 
			
		||||
  byte *Src;
 | 
			
		||||
  byte *dest_ptr;
 | 
			
		||||
  int Y;
 | 
			
		||||
  int Reste;
 | 
			
		||||
  int y;
 | 
			
		||||
  int remainder;
 | 
			
		||||
 | 
			
		||||
  // Support seulement des images 256 couleurs
 | 
			
		||||
  if (Source->format->BytesPerPixel != 1)
 | 
			
		||||
    return NULL;
 | 
			
		||||
 | 
			
		||||
  if (Source->w & 3)
 | 
			
		||||
    Reste=4-(Source->w&3);
 | 
			
		||||
    remainder=4-(Source->w&3);
 | 
			
		||||
  else
 | 
			
		||||
    Reste=0;
 | 
			
		||||
    remainder=0;
 | 
			
		||||
 | 
			
		||||
  if (dest==NULL)
 | 
			
		||||
    dest=(byte *)malloc(Source->w*Source->h);
 | 
			
		||||
 | 
			
		||||
  dest_ptr=dest;
 | 
			
		||||
  Src=(byte *)(Source->pixels);
 | 
			
		||||
  for(Y=0; Y < Source->h; Y++)
 | 
			
		||||
  for(y=0; y < Source->h; y++)
 | 
			
		||||
  {
 | 
			
		||||
    memcpy(dest_ptr, Src,Source->w);
 | 
			
		||||
    dest_ptr += Source->w;
 | 
			
		||||
    Src += Source->w + Reste;
 | 
			
		||||
    Src += Source->w + remainder;
 | 
			
		||||
  }
 | 
			
		||||
  return dest;
 | 
			
		||||
 | 
			
		||||
@ -184,7 +184,7 @@ SDL_Color Conversion_couleur_SDL(byte index)
 | 
			
		||||
 | 
			
		||||
// Lecture d'un pixel pour une surface SDL.
 | 
			
		||||
// Attention, ne fonctionne que pour les surfaces 8-bit
 | 
			
		||||
byte Sdl_Get_pixel_8(SDL_Surface *Bmp, int X, int Y)
 | 
			
		||||
byte Sdl_Get_pixel_8(SDL_Surface *Bmp, int x, int y)
 | 
			
		||||
{
 | 
			
		||||
  return ((byte *)(Bmp->pixels))[(Y*Bmp->pitch+X)];
 | 
			
		||||
  return ((byte *)(Bmp->pixels))[(y*Bmp->pitch+x)];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -30,10 +30,10 @@
 | 
			
		||||
  SDL_Rect ** Liste_Modes_Videos_SDL;
 | 
			
		||||
  byte* Ecran;
 | 
			
		||||
 | 
			
		||||
  void UpdateRect(short X, short Y, unsigned short width, unsigned short height);
 | 
			
		||||
  void UpdateRect(short x, short y, unsigned short width, unsigned short height);
 | 
			
		||||
  void Flush_update(void);
 | 
			
		||||
  byte * Surface_en_bytefield(SDL_Surface *Source, byte * dest);
 | 
			
		||||
  SDL_Color Conversion_couleur_SDL(byte);
 | 
			
		||||
  byte Sdl_Get_pixel_8(SDL_Surface *Bmp, int X, int Y);
 | 
			
		||||
  byte Sdl_Get_pixel_8(SDL_Surface *Bmp, int x, int y);
 | 
			
		||||
  
 | 
			
		||||
#endif // SDLSCREEN_H_INCLUDED
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								setup.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								setup.c
									
									
									
									
									
								
							@ -143,9 +143,9 @@ void Set_Config_Directory(const char * Program_Dir, char * Config_Dir)
 | 
			
		||||
      #endif
 | 
			
		||||
      if (Config_ParentDir && Config_ParentDir[0]!='\0')
 | 
			
		||||
      {
 | 
			
		||||
        int Taille = strlen(Config_ParentDir);
 | 
			
		||||
        int size = strlen(Config_ParentDir);
 | 
			
		||||
        strcpy(Config_Dir, Config_ParentDir);
 | 
			
		||||
        if (Config_ParentDir[Taille-1] != '\\' && Config_ParentDir[Taille-1] != '/')
 | 
			
		||||
        if (Config_ParentDir[size-1] != '\\' && Config_ParentDir[size-1] != '/')
 | 
			
		||||
        {
 | 
			
		||||
          strcat(Config_Dir,SEPARATEUR_CHEMIN);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								shade.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								shade.c
									
									
									
									
									
								
							@ -210,7 +210,7 @@ void Afficher_couleur_selectionnee(word Select_Debut,word Select_Fin)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Afficher_mode_du_shade(short X,short Y,byte mode)
 | 
			
		||||
void Afficher_mode_du_shade(short x,short y,byte mode)
 | 
			
		||||
{
 | 
			
		||||
  char Chaine[7];
 | 
			
		||||
 | 
			
		||||
@ -225,7 +225,7 @@ void Afficher_mode_du_shade(short X,short Y,byte mode)
 | 
			
		||||
    default : // MODE_SHADE_NOSAT
 | 
			
		||||
      strcpy(Chaine,"No sat");
 | 
			
		||||
  }
 | 
			
		||||
  Print_dans_fenetre(X,Y,Chaine,CM_Noir,CM_Clair);
 | 
			
		||||
  Print_dans_fenetre(x,y,Chaine,CM_Noir,CM_Clair);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										50
									
								
								special.c
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								special.c
									
									
									
									
									
								
							@ -34,7 +34,7 @@
 | 
			
		||||
void Modifier_pinceau(int width, int height)
 | 
			
		||||
{
 | 
			
		||||
  int x_pos,y_pos;
 | 
			
		||||
  int X,Y;
 | 
			
		||||
  int x,y;
 | 
			
		||||
  float Rayon2;
 | 
			
		||||
 | 
			
		||||
  if (width<1) width=1;
 | 
			
		||||
@ -53,9 +53,9 @@ void Modifier_pinceau(int width, int height)
 | 
			
		||||
      for (y_pos=0; y_pos<Pinceau_Hauteur; y_pos++)
 | 
			
		||||
        for (x_pos=0; x_pos<Pinceau_Largeur; x_pos++)
 | 
			
		||||
        {
 | 
			
		||||
          X=x_pos-Pinceau_Decalage_X;
 | 
			
		||||
          Y=y_pos-Pinceau_Decalage_Y;
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=( ((X*X)+(Y*Y)) < Rayon2 );
 | 
			
		||||
          x=x_pos-Pinceau_Decalage_X;
 | 
			
		||||
          y=y_pos-Pinceau_Decalage_Y;
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=( ((x*x)+(y*y)) < Rayon2 );
 | 
			
		||||
        }
 | 
			
		||||
      break;
 | 
			
		||||
    case FORME_PINCEAU_CARRE :
 | 
			
		||||
@ -68,9 +68,9 @@ void Modifier_pinceau(int width, int height)
 | 
			
		||||
      for (y_pos=0; y_pos<Pinceau_Hauteur; y_pos++)
 | 
			
		||||
        for (x_pos=0; x_pos<Pinceau_Largeur; x_pos++)
 | 
			
		||||
        {
 | 
			
		||||
          X=x_pos-Pinceau_Decalage_X;
 | 
			
		||||
          Y=y_pos-Pinceau_Decalage_Y;
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=( (!((x_pos+y_pos)&1)) && (((X*X)+(Y*Y)) < Rayon2));
 | 
			
		||||
          x=x_pos-Pinceau_Decalage_X;
 | 
			
		||||
          y=y_pos-Pinceau_Decalage_Y;
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=( (!((x_pos+y_pos)&1)) && (((x*x)+(y*y)) < Rayon2));
 | 
			
		||||
        }
 | 
			
		||||
      break;
 | 
			
		||||
    case FORME_PINCEAU_CARRE_TRAME:
 | 
			
		||||
@ -79,19 +79,19 @@ void Modifier_pinceau(int width, int height)
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=!((x_pos+y_pos)&1);
 | 
			
		||||
      break;
 | 
			
		||||
    case FORME_PINCEAU_PLUS:
 | 
			
		||||
      X=Pinceau_Largeur>>1;
 | 
			
		||||
      x=Pinceau_Largeur>>1;
 | 
			
		||||
      for (y_pos=0; y_pos<Pinceau_Hauteur; y_pos++)
 | 
			
		||||
        for (x_pos=0; x_pos<Pinceau_Largeur; x_pos++)
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=((x_pos==X) || (y_pos==X));
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=((x_pos==x) || (y_pos==x));
 | 
			
		||||
      break;
 | 
			
		||||
    case FORME_PINCEAU_SLASH:
 | 
			
		||||
      X=Pinceau_Largeur>>1;
 | 
			
		||||
      x=Pinceau_Largeur>>1;
 | 
			
		||||
      for (y_pos=0; y_pos<Pinceau_Hauteur; y_pos++)
 | 
			
		||||
        for (x_pos=0; x_pos<Pinceau_Largeur; x_pos++)
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=(x_pos==(Pinceau_Largeur-(y_pos+1)));
 | 
			
		||||
      break;
 | 
			
		||||
    case FORME_PINCEAU_ANTISLASH:
 | 
			
		||||
      X=Pinceau_Largeur>>1;
 | 
			
		||||
      x=Pinceau_Largeur>>1;
 | 
			
		||||
      for (y_pos=0; y_pos<Pinceau_Hauteur; y_pos++)
 | 
			
		||||
        for (x_pos=0; x_pos<Pinceau_Largeur; x_pos++)
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=(x_pos==y_pos);
 | 
			
		||||
@ -104,25 +104,25 @@ void Modifier_pinceau(int width, int height)
 | 
			
		||||
        Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)]=1;
 | 
			
		||||
      break;
 | 
			
		||||
    case FORME_PINCEAU_X:
 | 
			
		||||
      X=Pinceau_Largeur>>1;
 | 
			
		||||
      x=Pinceau_Largeur>>1;
 | 
			
		||||
      for (y_pos=0; y_pos<Pinceau_Hauteur; y_pos++)
 | 
			
		||||
        for (x_pos=0; x_pos<Pinceau_Largeur; x_pos++)
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=( (x_pos==y_pos) || (x_pos==(Pinceau_Hauteur-(y_pos+1))) );
 | 
			
		||||
      break;
 | 
			
		||||
    case FORME_PINCEAU_LOSANGE:
 | 
			
		||||
      X=Pinceau_Largeur>>1;
 | 
			
		||||
      x=Pinceau_Largeur>>1;
 | 
			
		||||
      for (y_pos=0; y_pos<Pinceau_Hauteur; y_pos++)
 | 
			
		||||
        for (x_pos=0; x_pos<Pinceau_Largeur; x_pos++)
 | 
			
		||||
        {
 | 
			
		||||
          if (x_pos<=X)
 | 
			
		||||
            Y=X-x_pos;
 | 
			
		||||
          if (x_pos<=x)
 | 
			
		||||
            y=x-x_pos;
 | 
			
		||||
          else
 | 
			
		||||
            Y=x_pos-X;
 | 
			
		||||
          if (y_pos<=X)
 | 
			
		||||
            Y+=X-y_pos;
 | 
			
		||||
            y=x_pos-x;
 | 
			
		||||
          if (y_pos<=x)
 | 
			
		||||
            y+=x-y_pos;
 | 
			
		||||
          else
 | 
			
		||||
            Y+=y_pos-X;
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=(Y<=X);
 | 
			
		||||
            y+=y_pos-x;
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=(y<=x);
 | 
			
		||||
        }
 | 
			
		||||
      break;
 | 
			
		||||
    case FORME_PINCEAU_ALEATOIRE:
 | 
			
		||||
@ -131,9 +131,9 @@ void Modifier_pinceau(int width, int height)
 | 
			
		||||
      for (y_pos=0; y_pos<Pinceau_Hauteur; y_pos++)
 | 
			
		||||
        for (x_pos=0; x_pos<Pinceau_Largeur; x_pos++)
 | 
			
		||||
        {
 | 
			
		||||
          X=x_pos-Pinceau_Decalage_X;
 | 
			
		||||
          Y=y_pos-Pinceau_Decalage_Y;
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=( (((X*X)+(Y*Y)) < Rayon2) && (!(rand()&7)) );
 | 
			
		||||
          x=x_pos-Pinceau_Decalage_X;
 | 
			
		||||
          y=y_pos-Pinceau_Decalage_Y;
 | 
			
		||||
          Pinceau_Sprite[(y_pos*TAILLE_MAXI_PINCEAU)+x_pos]=( (((x*x)+(y*y)) < Rayon2) && (!(rand()&7)) );
 | 
			
		||||
        }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -333,11 +333,11 @@ void Scroller_loupe(short Decalage_en_X,short Decalage_en_Y)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// -------------- Changer le Zoom (grâce aux touches [+] et [-]) -------------
 | 
			
		||||
void Zoom(short Sens)
 | 
			
		||||
void Zoom(short delta)
 | 
			
		||||
{
 | 
			
		||||
  short Indice;
 | 
			
		||||
  for (Indice=0; FACTEUR_ZOOM[Indice]!=Loupe_Facteur; Indice++);
 | 
			
		||||
  Indice+=Sens;
 | 
			
		||||
  Indice+=delta;
 | 
			
		||||
 | 
			
		||||
  if ( (Indice>=0) && (Indice<NB_FACTEURS_DE_ZOOM) )
 | 
			
		||||
  {
 | 
			
		||||
 | 
			
		||||
@ -30,4 +30,4 @@ void Special_Previous_backcolor(void);
 | 
			
		||||
void Scroller_ecran(short Decalage_en_X,short Decalage_en_Y);
 | 
			
		||||
void Scroller_loupe(short Decalage_en_X,short Decalage_en_Y);
 | 
			
		||||
 | 
			
		||||
void Zoom(short Sens);
 | 
			
		||||
void Zoom(short delta);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								struct.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								struct.h
									
									
									
									
									
								
							@ -195,7 +195,7 @@ typedef struct
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
  byte Number;
 | 
			
		||||
  word Taille;
 | 
			
		||||
  word Size;
 | 
			
		||||
} __attribute__((__packed__)) Config_Chunk;
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										34
									
								
								texte.c
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								texte.c
									
									
									
									
									
								
							@ -90,19 +90,19 @@ void Ajout_fonte(const char *name)
 | 
			
		||||
{
 | 
			
		||||
  char * Nom_fonte;
 | 
			
		||||
  T_FONTE * Fonte;
 | 
			
		||||
  int Taille=strlen(name)+1;
 | 
			
		||||
  int size=strlen(name)+1;
 | 
			
		||||
  int Indice;
 | 
			
		||||
  
 | 
			
		||||
  // Détermination du type:
 | 
			
		||||
 | 
			
		||||
#ifdef __macosx__
 | 
			
		||||
 | 
			
		||||
  if (Taille < 6) return;
 | 
			
		||||
  if (size < 6) return;
 | 
			
		||||
  
 | 
			
		||||
  char strFontName[512];
 | 
			
		||||
  CFStringRef CFSFontName;// = CFSTR(name);
 | 
			
		||||
 | 
			
		||||
  CFSFontName = CFStringCreateWithBytes(NULL, (UInt8 *) name, Taille - 1, kCFStringEncodingASCII, false);
 | 
			
		||||
  CFSFontName = CFStringCreateWithBytes(NULL, (UInt8 *) name, size - 1, kCFStringEncodingASCII, false);
 | 
			
		||||
  // Fix some funny names
 | 
			
		||||
  CFStringGetCString(CFSFontName, strFontName, 512, kCFStringEncodingASCII);
 | 
			
		||||
 | 
			
		||||
@ -110,14 +110,14 @@ void Ajout_fonte(const char *name)
 | 
			
		||||
  name = strFontName;
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
  if (Taille<5 ||
 | 
			
		||||
      name[Taille-5]!='.')
 | 
			
		||||
  if (size<5 ||
 | 
			
		||||
      name[size-5]!='.')
 | 
			
		||||
    return;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  Fonte = (T_FONTE *)malloc(sizeof(T_FONTE));
 | 
			
		||||
 | 
			
		||||
  switch (EXTID(tolower(name[Taille-4]), tolower(name[Taille-3]), tolower(name[Taille-2])))
 | 
			
		||||
  switch (EXTID(tolower(name[size-4]), tolower(name[size-3]), tolower(name[size-2])))
 | 
			
		||||
  {
 | 
			
		||||
    case EXTID('t','t','f'):
 | 
			
		||||
    case EXTID('f','o','n'):
 | 
			
		||||
@ -142,7 +142,7 @@ void Ajout_fonte(const char *name)
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      #ifdef __macosx__
 | 
			
		||||
         if(strcasecmp(&name[Taille-6], "dfont") == 0)
 | 
			
		||||
         if(strcasecmp(&name[size-6], "dfont") == 0)
 | 
			
		||||
         {
 | 
			
		||||
           Fonte->EstTrueType = 1;
 | 
			
		||||
           Fonte->EstImage = 0;
 | 
			
		||||
@ -158,7 +158,7 @@ void Ajout_fonte(const char *name)
 | 
			
		||||
      #endif
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Fonte->Name = (char *)malloc(Taille);
 | 
			
		||||
  Fonte->Name = (char *)malloc(size);
 | 
			
		||||
  strcpy(Fonte->Name, name);
 | 
			
		||||
  // Label
 | 
			
		||||
  strcpy(Fonte->Label, "                   ");
 | 
			
		||||
@ -368,31 +368,31 @@ int Support_TrueType()
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
#ifndef NOTTF
 | 
			
		||||
byte *Rendu_Texte_TTF(const char *Chaine, int Numero_fonte, int Taille, int antialias, int bold, int italic, int *width, int *height)
 | 
			
		||||
byte *Rendu_Texte_TTF(const char *Chaine, int Numero_fonte, int size, int antialias, int bold, int italic, int *width, int *height)
 | 
			
		||||
{
 | 
			
		||||
 TTF_Font *Fonte;
 | 
			
		||||
  SDL_Surface * TexteColore;
 | 
			
		||||
  SDL_Surface * Texte8Bit;
 | 
			
		||||
  byte * BrosseRetour;
 | 
			
		||||
  int Indice;
 | 
			
		||||
  int Style;
 | 
			
		||||
  int style;
 | 
			
		||||
  
 | 
			
		||||
  SDL_Color Couleur_Avant;
 | 
			
		||||
  SDL_Color Couleur_Arriere;
 | 
			
		||||
 | 
			
		||||
  // Chargement de la fonte
 | 
			
		||||
  Fonte=TTF_OpenFont(Nom_fonte(Numero_fonte), Taille);
 | 
			
		||||
  Fonte=TTF_OpenFont(Nom_fonte(Numero_fonte), size);
 | 
			
		||||
  if (!Fonte)
 | 
			
		||||
  {
 | 
			
		||||
    return NULL;
 | 
			
		||||
  }
 | 
			
		||||
  // Style
 | 
			
		||||
  Style=0;
 | 
			
		||||
  style=0;
 | 
			
		||||
  if (italic)
 | 
			
		||||
    Style|=TTF_STYLE_ITALIC;
 | 
			
		||||
    style|=TTF_STYLE_ITALIC;
 | 
			
		||||
  if (bold)
 | 
			
		||||
    Style|=TTF_STYLE_BOLD;
 | 
			
		||||
  TTF_SetFontStyle(Fonte, Style);
 | 
			
		||||
    style|=TTF_STYLE_BOLD;
 | 
			
		||||
  TTF_SetFontStyle(Fonte, style);
 | 
			
		||||
  // Couleurs
 | 
			
		||||
  if (antialias)
 | 
			
		||||
  {
 | 
			
		||||
@ -501,7 +501,7 @@ byte *Rendu_Texte_SFont(const char *Chaine, int Numero_fonte, int *width, int *h
 | 
			
		||||
// Crée une brosse à partir des paramètres de texte demandés.
 | 
			
		||||
// Si cela réussit, la fonction place les dimensions dans width et height, 
 | 
			
		||||
// et retourne l'adresse du bloc d'octets.
 | 
			
		||||
byte *Rendu_Texte(const char *Chaine, int Numero_fonte, int Taille, int antialias, int bold, int italic, int *width, int *height)
 | 
			
		||||
byte *Rendu_Texte(const char *Chaine, int Numero_fonte, int size, int antialias, int bold, int italic, int *width, int *height)
 | 
			
		||||
{
 | 
			
		||||
  T_FONTE *Fonte = Liste_fontes_debut;
 | 
			
		||||
  int Indice=Numero_fonte;
 | 
			
		||||
@ -515,7 +515,7 @@ byte *Rendu_Texte(const char *Chaine, int Numero_fonte, int Taille, int antialia
 | 
			
		||||
  if (Fonte->EstTrueType)
 | 
			
		||||
  {
 | 
			
		||||
  #ifndef NOTTF 
 | 
			
		||||
    return Rendu_Texte_TTF(Chaine, Numero_fonte, Taille, antialias, bold, italic, width, height);
 | 
			
		||||
    return Rendu_Texte_TTF(Chaine, Numero_fonte, size, antialias, bold, italic, width, height);
 | 
			
		||||
  #else
 | 
			
		||||
    return NULL;
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								texte.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								texte.h
									
									
									
									
									
								
							@ -27,7 +27,7 @@ int Support_TrueType(void);
 | 
			
		||||
// Ajout d'une fonte à la liste.
 | 
			
		||||
void Ajout_fonte(char *name);
 | 
			
		||||
// Crée une brosse à partir des paramètres de texte demandés.
 | 
			
		||||
byte *Rendu_Texte(const char *Chaine, int Numero_fonte, int Taille, int antialias, int bold, int italic, int *width, int *height);
 | 
			
		||||
byte *Rendu_Texte(const char *Chaine, int Numero_fonte, int size, int antialias, int bold, int italic, int *width, int *height);
 | 
			
		||||
// Trouve le libellé d'affichage d'une fonte par son numéro
 | 
			
		||||
char * Libelle_fonte(int Indice);
 | 
			
		||||
// Trouve le nom d'une fonte par son numéro
 | 
			
		||||
 | 
			
		||||
@ -193,7 +193,7 @@ Brush_height
 | 
			
		||||
Brush_width
 | 
			
		||||
Brush_filename
 | 
			
		||||
Brush_current_directory
 | 
			
		||||
Brush_filedirectory
 | 
			
		||||
Brush_file_directory
 | 
			
		||||
Spare_backups
 | 
			
		||||
Spare_comment
 | 
			
		||||
Spare_offset_X
 | 
			
		||||
@ -216,7 +216,7 @@ Spare_filename
 | 
			
		||||
Spare_palette
 | 
			
		||||
Spare_separator_proportion
 | 
			
		||||
Spare_current_directory
 | 
			
		||||
Spare_filedirectory
 | 
			
		||||
Spare_file_directory
 | 
			
		||||
Spare_separator_position
 | 
			
		||||
Spare_X_zoom
 | 
			
		||||
Horizontal_line_buffer
 | 
			
		||||
@ -988,7 +988,7 @@ Main_filename
 | 
			
		||||
Main_palette
 | 
			
		||||
Main_separator_proportion
 | 
			
		||||
Main_current_directory
 | 
			
		||||
Main_filedirectory
 | 
			
		||||
Main_file_directory
 | 
			
		||||
Main_separator_position
 | 
			
		||||
Main_X_zoom
 | 
			
		||||
Print_filename_in_fileselector
 | 
			
		||||
@ -1887,230 +1887,230 @@ new_brush_width
 | 
			
		||||
Next
 | 
			
		||||
Noir
 | 
			
		||||
Nom
 | 
			
		||||
NomAbrege
 | 
			
		||||
NomBouton
 | 
			
		||||
NomComplet
 | 
			
		||||
NomFichier
 | 
			
		||||
NomLecteur
 | 
			
		||||
Short_name
 | 
			
		||||
button_name
 | 
			
		||||
Full_name
 | 
			
		||||
filename
 | 
			
		||||
drive_name
 | 
			
		||||
Nom_Fichier
 | 
			
		||||
Nom_affiche
 | 
			
		||||
Nom_backup
 | 
			
		||||
Nom_du_fichier
 | 
			
		||||
Nom_du_fichier_DAT
 | 
			
		||||
Nom_du_fichier_Phoenix
 | 
			
		||||
Nom_du_fichier_Phoenix2
 | 
			
		||||
Nom_du_fichier_temporaire
 | 
			
		||||
display_name
 | 
			
		||||
backup_name
 | 
			
		||||
filename
 | 
			
		||||
ref_ini_file
 | 
			
		||||
phoenix_filename1
 | 
			
		||||
phoenix_filename2
 | 
			
		||||
temp_filename
 | 
			
		||||
Nom_fichier
 | 
			
		||||
Nom_fichier_Save
 | 
			
		||||
Nom_fichier_initial
 | 
			
		||||
Nom_fonction
 | 
			
		||||
Nom_repertoire
 | 
			
		||||
Nom_temporaire
 | 
			
		||||
Nombre_Couleurs
 | 
			
		||||
Nombre_De_Pixels
 | 
			
		||||
Nombre_LID
 | 
			
		||||
Nombre_de_lignes
 | 
			
		||||
Nombre_visibles
 | 
			
		||||
Noms_raccourcis
 | 
			
		||||
save_filename
 | 
			
		||||
initial_filename
 | 
			
		||||
function_name
 | 
			
		||||
directory_name
 | 
			
		||||
temp_name
 | 
			
		||||
nb_colors
 | 
			
		||||
nb_pixels
 | 
			
		||||
number_LID
 | 
			
		||||
Length
 | 
			
		||||
nb_visibles
 | 
			
		||||
shortcuts_name
 | 
			
		||||
Nouveau
 | 
			
		||||
Nouveau_X
 | 
			
		||||
Nouveau_Y
 | 
			
		||||
Nouveau_mode
 | 
			
		||||
Nouveau_nom_du_fichier
 | 
			
		||||
Nouvelle_Brosse
 | 
			
		||||
Nouvelle_Brosse_Hauteur
 | 
			
		||||
Nouvelle_Brosse_Largeur
 | 
			
		||||
Nouvelle_Hauteur
 | 
			
		||||
Nouvelle_Largeur
 | 
			
		||||
Nouvelle_brosse
 | 
			
		||||
Nouvelle_page
 | 
			
		||||
Nouvelle_teinte
 | 
			
		||||
Nouvelle_valeur
 | 
			
		||||
Nouvelles
 | 
			
		||||
Nouvelles_pages
 | 
			
		||||
new_x
 | 
			
		||||
new_y
 | 
			
		||||
new_mode
 | 
			
		||||
new_filename
 | 
			
		||||
new_brush
 | 
			
		||||
new_brush_height
 | 
			
		||||
new_brush_width
 | 
			
		||||
new_height
 | 
			
		||||
new_width
 | 
			
		||||
new_brush
 | 
			
		||||
new_page
 | 
			
		||||
new_color
 | 
			
		||||
value
 | 
			
		||||
new_colors
 | 
			
		||||
new_pages
 | 
			
		||||
Now
 | 
			
		||||
Numerateur
 | 
			
		||||
numerator
 | 
			
		||||
Numero
 | 
			
		||||
NumeroControle
 | 
			
		||||
NumeroRaccourci
 | 
			
		||||
Numero_bookmark
 | 
			
		||||
Numero_bouton
 | 
			
		||||
Numero_bouton_souris
 | 
			
		||||
Numero_car
 | 
			
		||||
action_id
 | 
			
		||||
shortcut_number
 | 
			
		||||
bookmark_number
 | 
			
		||||
btn_number
 | 
			
		||||
mouse_button
 | 
			
		||||
char_number
 | 
			
		||||
Numero_chunk
 | 
			
		||||
Numero_fonte
 | 
			
		||||
Numero_ligne
 | 
			
		||||
Numero_operation
 | 
			
		||||
Numero_sprite
 | 
			
		||||
font_number
 | 
			
		||||
line_number
 | 
			
		||||
operation_number
 | 
			
		||||
sprite_number
 | 
			
		||||
Octet
 | 
			
		||||
Octet1
 | 
			
		||||
Octet2
 | 
			
		||||
Octet_insere
 | 
			
		||||
Octet_lu
 | 
			
		||||
Octet_temporaire
 | 
			
		||||
default_bg_color
 | 
			
		||||
byte_read
 | 
			
		||||
temp_byte
 | 
			
		||||
Offset
 | 
			
		||||
Offset_X_choisi
 | 
			
		||||
Offset_Y_choisi
 | 
			
		||||
Old_Pos_X
 | 
			
		||||
Old_Pos_Y
 | 
			
		||||
Old_Spray_Delay
 | 
			
		||||
Old_Spray_Mode
 | 
			
		||||
Old_Spray_Mono_flow
 | 
			
		||||
Old_Spray_Multi_flow
 | 
			
		||||
Old_Spray_Size
 | 
			
		||||
Old_Trame
 | 
			
		||||
Old_Trame_Hauteur
 | 
			
		||||
Old_Trame_Largeur
 | 
			
		||||
Old_X
 | 
			
		||||
On_a_clicke_sur_OK
 | 
			
		||||
On_a_recharge_la_config
 | 
			
		||||
Opacite_choisie
 | 
			
		||||
chosen_offset_x
 | 
			
		||||
chosen_offset_y
 | 
			
		||||
old_x_pos
 | 
			
		||||
old_y_pos
 | 
			
		||||
old_airbrush_delay
 | 
			
		||||
old_airbrush_mode
 | 
			
		||||
old_airbrush_mono_flow
 | 
			
		||||
old_airbrush_multi_flow
 | 
			
		||||
old_airbrush_size
 | 
			
		||||
old_sieve
 | 
			
		||||
old_sieve_height
 | 
			
		||||
old_sieve_width
 | 
			
		||||
old_x
 | 
			
		||||
has_clicked_ok
 | 
			
		||||
config_is_reloaded
 | 
			
		||||
chosen_opacity
 | 
			
		||||
Opening_message
 | 
			
		||||
Operation_demandee
 | 
			
		||||
Option
 | 
			
		||||
Option_upper
 | 
			
		||||
Orig_X
 | 
			
		||||
Orig_Y
 | 
			
		||||
Origine_X
 | 
			
		||||
Origine_Y
 | 
			
		||||
PNG_header
 | 
			
		||||
new_operation
 | 
			
		||||
option_name
 | 
			
		||||
option_upper
 | 
			
		||||
origin_x
 | 
			
		||||
origin_y
 | 
			
		||||
origin_x
 | 
			
		||||
origin_y
 | 
			
		||||
png_header
 | 
			
		||||
Pad1
 | 
			
		||||
Page
 | 
			
		||||
Page_a_supprimer
 | 
			
		||||
Page_tempo
 | 
			
		||||
page
 | 
			
		||||
page_to_delete
 | 
			
		||||
temp_page
 | 
			
		||||
Pages
 | 
			
		||||
Pal
 | 
			
		||||
Palette
 | 
			
		||||
Palette_16c
 | 
			
		||||
Palette_64
 | 
			
		||||
Palette_CGA
 | 
			
		||||
Palette_a_redessiner
 | 
			
		||||
Palette_arrivee
 | 
			
		||||
Palette_backup
 | 
			
		||||
Palette_de_travail
 | 
			
		||||
Palette_depart
 | 
			
		||||
palette_64
 | 
			
		||||
palette_CGA
 | 
			
		||||
palette_needs_redraw
 | 
			
		||||
end_palette
 | 
			
		||||
backup_palette
 | 
			
		||||
working_palette
 | 
			
		||||
start_palette
 | 
			
		||||
Palette_info
 | 
			
		||||
Palette_initiale
 | 
			
		||||
Palette_locale
 | 
			
		||||
Palette_temporaire
 | 
			
		||||
initial_palette
 | 
			
		||||
local_palette
 | 
			
		||||
temp_palette
 | 
			
		||||
Pas
 | 
			
		||||
Pattern
 | 
			
		||||
Phoenix2Trouve
 | 
			
		||||
PhoenixTrouve
 | 
			
		||||
Pix
 | 
			
		||||
PixelPtr
 | 
			
		||||
Pixel_lu
 | 
			
		||||
pattern
 | 
			
		||||
phoenix2_found
 | 
			
		||||
phoenix_found
 | 
			
		||||
pixel
 | 
			
		||||
pixel_ptr
 | 
			
		||||
pixel_read
 | 
			
		||||
Pixel_size
 | 
			
		||||
Plane
 | 
			
		||||
Plans
 | 
			
		||||
Pochoir
 | 
			
		||||
Poids
 | 
			
		||||
Planes
 | 
			
		||||
stencil
 | 
			
		||||
weight
 | 
			
		||||
Pointeur
 | 
			
		||||
Pointeur_Meilleur_nom
 | 
			
		||||
Pointeur_temp
 | 
			
		||||
Points
 | 
			
		||||
best_name_ptr
 | 
			
		||||
temp_ptr
 | 
			
		||||
points
 | 
			
		||||
Pos
 | 
			
		||||
Pos_1
 | 
			
		||||
Pos_2
 | 
			
		||||
Pos_DernierPoint
 | 
			
		||||
Pos_Reel_X
 | 
			
		||||
Pos_Reel_Y
 | 
			
		||||
pos_1
 | 
			
		||||
pos_2
 | 
			
		||||
pos_last_dot
 | 
			
		||||
real_x_pos
 | 
			
		||||
real_y_pos
 | 
			
		||||
Pos_X
 | 
			
		||||
Pos_X_dans_brosse
 | 
			
		||||
pos_X_dest
 | 
			
		||||
pos_X_dest_final
 | 
			
		||||
pos_X_dest_initial
 | 
			
		||||
Pos_X_initial
 | 
			
		||||
Pos_X_reelle
 | 
			
		||||
pos_X_src
 | 
			
		||||
pos_X_src_initial
 | 
			
		||||
x_pos_in_brush
 | 
			
		||||
dest_x_pos
 | 
			
		||||
final_dest_x_pos
 | 
			
		||||
initial_dest_x_pos
 | 
			
		||||
initial_x_pos
 | 
			
		||||
real_x_pos
 | 
			
		||||
src_x_pos
 | 
			
		||||
initial_src_x_pos
 | 
			
		||||
Pos_Y
 | 
			
		||||
Pos_Y_Fin
 | 
			
		||||
Pos_Y_dans_brosse
 | 
			
		||||
Pos_Y_reelle
 | 
			
		||||
Pos_fenetre_X
 | 
			
		||||
Pos_fenetre_Y
 | 
			
		||||
Pos_menu_X
 | 
			
		||||
Pos_menu_Y
 | 
			
		||||
text_X_pos
 | 
			
		||||
end_y_pos
 | 
			
		||||
y_pos_in_brush
 | 
			
		||||
real_y_pos
 | 
			
		||||
window_x_pos
 | 
			
		||||
window_y_pos
 | 
			
		||||
menu_x_pos
 | 
			
		||||
menu_y_pos
 | 
			
		||||
text_x_pos
 | 
			
		||||
Position
 | 
			
		||||
Position_X
 | 
			
		||||
Position_curseur_jauge
 | 
			
		||||
Position_dans_degrade
 | 
			
		||||
Position_dans_segment
 | 
			
		||||
Position_initiale
 | 
			
		||||
Position_lien
 | 
			
		||||
Position_nom_fichier
 | 
			
		||||
Precedent
 | 
			
		||||
Precedente
 | 
			
		||||
x_position
 | 
			
		||||
slider_position
 | 
			
		||||
position_in_gradient
 | 
			
		||||
position_in_segment
 | 
			
		||||
initial_position
 | 
			
		||||
link_position
 | 
			
		||||
filename_position
 | 
			
		||||
Previous
 | 
			
		||||
Previous
 | 
			
		||||
Premier
 | 
			
		||||
Premier_choix
 | 
			
		||||
Premiere_couleur
 | 
			
		||||
First_item
 | 
			
		||||
first_color
 | 
			
		||||
Preview
 | 
			
		||||
Preview_Debut_X
 | 
			
		||||
Preview_Debut_Y
 | 
			
		||||
Preview_Fin_X
 | 
			
		||||
Preview_Fin_Y
 | 
			
		||||
Principal_Hauteur_image_Backup
 | 
			
		||||
Principal_Hauteur_image_initiale
 | 
			
		||||
Principal_Largeur_image_Backup
 | 
			
		||||
Principal_Largeur_image_initiale
 | 
			
		||||
Program_Dir
 | 
			
		||||
Propagation_possible
 | 
			
		||||
Proportion_split
 | 
			
		||||
Ptr
 | 
			
		||||
PtrRaccourci
 | 
			
		||||
preview_x_start
 | 
			
		||||
preview_y_start
 | 
			
		||||
preview_x_end
 | 
			
		||||
preview_y_end
 | 
			
		||||
initial_main_image_height
 | 
			
		||||
initial_main_image_height
 | 
			
		||||
initial_main_image_width
 | 
			
		||||
initial_main_image_width
 | 
			
		||||
program_dir
 | 
			
		||||
can_propagate
 | 
			
		||||
Separator_proportion
 | 
			
		||||
dest_ptr
 | 
			
		||||
shortcut_ptr
 | 
			
		||||
R
 | 
			
		||||
RAX
 | 
			
		||||
RAY
 | 
			
		||||
RBX
 | 
			
		||||
RBY
 | 
			
		||||
rax
 | 
			
		||||
ray
 | 
			
		||||
rbx
 | 
			
		||||
rby
 | 
			
		||||
RVB
 | 
			
		||||
Raccourci_droite
 | 
			
		||||
Raccourci_gauche
 | 
			
		||||
Rafficher_jauge
 | 
			
		||||
Right_shortcut
 | 
			
		||||
Left_shortcut
 | 
			
		||||
update_slider
 | 
			
		||||
Rang
 | 
			
		||||
Ratio
 | 
			
		||||
Rayon
 | 
			
		||||
Rayon2
 | 
			
		||||
Rayon_au_carre
 | 
			
		||||
Rayon_horizontal
 | 
			
		||||
Rayon_vertical
 | 
			
		||||
Recon1
 | 
			
		||||
Recon2
 | 
			
		||||
Rect_Debut_X
 | 
			
		||||
Rect_Debut_Y
 | 
			
		||||
Rect_Fin_X
 | 
			
		||||
Rect_Fin_Y
 | 
			
		||||
Redessiner_controles
 | 
			
		||||
Reduce_Nb_couleurs
 | 
			
		||||
Reduction
 | 
			
		||||
Reduction_moins_1
 | 
			
		||||
Reel_X
 | 
			
		||||
Reel_Y
 | 
			
		||||
Repeat_Menu_Facteur_X
 | 
			
		||||
Repeat_Menu_Facteur_Y
 | 
			
		||||
Repertoire
 | 
			
		||||
Repertoire_du_programme
 | 
			
		||||
Repertoire_fichier
 | 
			
		||||
Repertoire_fichier_initial
 | 
			
		||||
Repertoire_precedent
 | 
			
		||||
radius
 | 
			
		||||
radius2
 | 
			
		||||
radius_squared
 | 
			
		||||
horizontal_radius
 | 
			
		||||
vertical_radius
 | 
			
		||||
recog1
 | 
			
		||||
recog2
 | 
			
		||||
rect_start_x
 | 
			
		||||
rect_start_y
 | 
			
		||||
rect_end_x
 | 
			
		||||
rect_end_y
 | 
			
		||||
redraw_controls
 | 
			
		||||
reduce_colors_number
 | 
			
		||||
reduction
 | 
			
		||||
reduction_minus_one
 | 
			
		||||
real_x
 | 
			
		||||
real_y
 | 
			
		||||
repeat_menu_x_factor
 | 
			
		||||
repeat_menu_y_factor
 | 
			
		||||
directory
 | 
			
		||||
program_directory
 | 
			
		||||
File_directory
 | 
			
		||||
initial_file_directory
 | 
			
		||||
previous_directory
 | 
			
		||||
Repertoire_programme
 | 
			
		||||
Repetable
 | 
			
		||||
Repetition
 | 
			
		||||
Repetitions_X
 | 
			
		||||
Res
 | 
			
		||||
Reserv_1
 | 
			
		||||
Reserv_2
 | 
			
		||||
Repeatable
 | 
			
		||||
repetition
 | 
			
		||||
x_repetition
 | 
			
		||||
resolution
 | 
			
		||||
Reserved_1
 | 
			
		||||
Reserved_2
 | 
			
		||||
Reserved
 | 
			
		||||
Resol
 | 
			
		||||
Resolution_par_defaut
 | 
			
		||||
Default_resolution
 | 
			
		||||
Reste
 | 
			
		||||
Resultat
 | 
			
		||||
result
 | 
			
		||||
Retour
 | 
			
		||||
Rmin
 | 
			
		||||
Rouge
 | 
			
		||||
Rouge_dessous
 | 
			
		||||
red
 | 
			
		||||
red_under
 | 
			
		||||
Round_max
 | 
			
		||||
S
 | 
			
		||||
SCx_Palette
 | 
			
		||||
@ -2118,242 +2118,242 @@ SVN_revision
 | 
			
		||||
source_x
 | 
			
		||||
source_y
 | 
			
		||||
Safety_colors
 | 
			
		||||
Saisie_Delay
 | 
			
		||||
Saisie_Init
 | 
			
		||||
Saisie_Mono_flow
 | 
			
		||||
Saisie_Size
 | 
			
		||||
Sauve_Colorix
 | 
			
		||||
Sauve_raccourci
 | 
			
		||||
input_delay_button
 | 
			
		||||
input_init_button
 | 
			
		||||
input_flow_button
 | 
			
		||||
input_size_button
 | 
			
		||||
is_colorix_format
 | 
			
		||||
backup_shortcut
 | 
			
		||||
Screen_X
 | 
			
		||||
Screen_Y
 | 
			
		||||
Scroller
 | 
			
		||||
Scroller_de_fichiers
 | 
			
		||||
Scroller_de_fontes
 | 
			
		||||
Scroller_de_melange
 | 
			
		||||
file_scroller
 | 
			
		||||
font_scroller
 | 
			
		||||
mix_scroller
 | 
			
		||||
Section
 | 
			
		||||
Section_aide
 | 
			
		||||
Section_attendue
 | 
			
		||||
Section_lue
 | 
			
		||||
Select_Debut
 | 
			
		||||
Select_Debut1
 | 
			
		||||
Select_Debut2
 | 
			
		||||
Select_Fin
 | 
			
		||||
Select_Fin1
 | 
			
		||||
Select_Fin2
 | 
			
		||||
help_section
 | 
			
		||||
expected_section
 | 
			
		||||
section_read
 | 
			
		||||
seclection_start
 | 
			
		||||
seclection_start1
 | 
			
		||||
seclection_start2
 | 
			
		||||
selection_end
 | 
			
		||||
selection_end1
 | 
			
		||||
selection_end2
 | 
			
		||||
Sens
 | 
			
		||||
Sensibilite_X
 | 
			
		||||
Sensibilite_Y
 | 
			
		||||
x_sensitivity
 | 
			
		||||
y_sensitivity
 | 
			
		||||
Set_resolution_according_to
 | 
			
		||||
Shade_Liste_Backup
 | 
			
		||||
Shade_temporaire
 | 
			
		||||
Shade_processed
 | 
			
		||||
Short_temporaire
 | 
			
		||||
Signa
 | 
			
		||||
initial_shade_list
 | 
			
		||||
temp_shade
 | 
			
		||||
shade_processed
 | 
			
		||||
temp_short
 | 
			
		||||
Signature
 | 
			
		||||
Sortie_par_close
 | 
			
		||||
Source
 | 
			
		||||
Sous_section
 | 
			
		||||
Signature
 | 
			
		||||
exit_by_close_button
 | 
			
		||||
source
 | 
			
		||||
sub_section
 | 
			
		||||
Split
 | 
			
		||||
Spray_Init
 | 
			
		||||
Src
 | 
			
		||||
Src0
 | 
			
		||||
Src1
 | 
			
		||||
Src2
 | 
			
		||||
Src3
 | 
			
		||||
Step_Backup
 | 
			
		||||
String
 | 
			
		||||
spray_init
 | 
			
		||||
src
 | 
			
		||||
src0
 | 
			
		||||
src1
 | 
			
		||||
src2
 | 
			
		||||
src3
 | 
			
		||||
step_backup
 | 
			
		||||
str
 | 
			
		||||
Style
 | 
			
		||||
Style_Bold
 | 
			
		||||
Style_Italic
 | 
			
		||||
Suivant
 | 
			
		||||
Suivante
 | 
			
		||||
Supporte
 | 
			
		||||
Sym
 | 
			
		||||
is_bold
 | 
			
		||||
is_italic
 | 
			
		||||
Next
 | 
			
		||||
Next
 | 
			
		||||
supported
 | 
			
		||||
keysym
 | 
			
		||||
T_Palette
 | 
			
		||||
Table
 | 
			
		||||
TableAideAbout
 | 
			
		||||
TableAideAide
 | 
			
		||||
TableAideAjuster
 | 
			
		||||
TableAideBrosse
 | 
			
		||||
TableAideCacher
 | 
			
		||||
TableAideCercles
 | 
			
		||||
TableAideCharger
 | 
			
		||||
TableAideChoixCol
 | 
			
		||||
TableAideClear
 | 
			
		||||
TableAideCourbes
 | 
			
		||||
TableAideCredits
 | 
			
		||||
TableAideDessin
 | 
			
		||||
TableAideEffets
 | 
			
		||||
TableAideEffetsBrosse
 | 
			
		||||
TableAideFillCerc
 | 
			
		||||
TableAideFillRect
 | 
			
		||||
TableAideFloodfill
 | 
			
		||||
TableAideGradMenu
 | 
			
		||||
TableAideGradRect
 | 
			
		||||
TableAideHelp
 | 
			
		||||
TableAideKill
 | 
			
		||||
TableAideLicense
 | 
			
		||||
TableAideLignes
 | 
			
		||||
TableAideLoupe
 | 
			
		||||
TableAidePage
 | 
			
		||||
TableAidePalScroll
 | 
			
		||||
TableAidePalette
 | 
			
		||||
TableAideParametres
 | 
			
		||||
TableAidePinceaux
 | 
			
		||||
TableAidePipette
 | 
			
		||||
TableAidePolybrosse
 | 
			
		||||
TableAidePolyfill
 | 
			
		||||
TableAidePolygones
 | 
			
		||||
TableAideQuit
 | 
			
		||||
TableAideRectangles
 | 
			
		||||
TableAideResol
 | 
			
		||||
TableAideSauver
 | 
			
		||||
TableAideSpheres
 | 
			
		||||
TableAideSpray
 | 
			
		||||
TableAideTexte
 | 
			
		||||
TableAideUndo
 | 
			
		||||
Table_conv
 | 
			
		||||
Table_de_conversion
 | 
			
		||||
Table_de_remplacement
 | 
			
		||||
Table_dec
 | 
			
		||||
Table_inc
 | 
			
		||||
Table_touches
 | 
			
		||||
helptable_about
 | 
			
		||||
helptable_general
 | 
			
		||||
helptable_adjust
 | 
			
		||||
helptable_brush
 | 
			
		||||
helptable_hide
 | 
			
		||||
helptable_circles
 | 
			
		||||
helptable_load
 | 
			
		||||
helptable_color_select
 | 
			
		||||
helptable_clear
 | 
			
		||||
helptable_curves
 | 
			
		||||
helptable_credits
 | 
			
		||||
helptable_draw
 | 
			
		||||
helptable_effects
 | 
			
		||||
helptable_brush_fx
 | 
			
		||||
helptable_filled_circles
 | 
			
		||||
helptable_filled_rectangles
 | 
			
		||||
helptable_floodfill
 | 
			
		||||
helptable_grad_menu
 | 
			
		||||
helptable_grad_rect
 | 
			
		||||
helptable_help
 | 
			
		||||
helptable_kill
 | 
			
		||||
helptable_licence
 | 
			
		||||
helptable_lines
 | 
			
		||||
helptable_magnifier
 | 
			
		||||
helptable_page
 | 
			
		||||
helptable_pal_scroll
 | 
			
		||||
helptable_palette
 | 
			
		||||
helptable_settings
 | 
			
		||||
helptable_paintbrush
 | 
			
		||||
helptable_colorpicker
 | 
			
		||||
helptable_polybrush
 | 
			
		||||
helptable_polyfill
 | 
			
		||||
helptable_polygons
 | 
			
		||||
helptable_quit
 | 
			
		||||
helptable_rectangles
 | 
			
		||||
helptable_resolution
 | 
			
		||||
helptable_save
 | 
			
		||||
helptable_spheres
 | 
			
		||||
helptable_airbrush
 | 
			
		||||
helptable_text
 | 
			
		||||
helptable_undo
 | 
			
		||||
conversion_table
 | 
			
		||||
conversion_table
 | 
			
		||||
replace_table
 | 
			
		||||
table_dec
 | 
			
		||||
table_inc
 | 
			
		||||
key_labels
 | 
			
		||||
Taille
 | 
			
		||||
TailleD
 | 
			
		||||
TailleS
 | 
			
		||||
Taille_X
 | 
			
		||||
Taille_Y
 | 
			
		||||
Taille_affichee
 | 
			
		||||
dest_size
 | 
			
		||||
source_size
 | 
			
		||||
x_size
 | 
			
		||||
y_size
 | 
			
		||||
visible_size
 | 
			
		||||
Taille_chunk
 | 
			
		||||
Taille_commentaire
 | 
			
		||||
Taille_de_lecture
 | 
			
		||||
Taille_de_pile
 | 
			
		||||
Taille_du_bloc
 | 
			
		||||
Taille_du_fichier
 | 
			
		||||
Taille_ecran_dans_GIF
 | 
			
		||||
Taille_fichier
 | 
			
		||||
Taille_image
 | 
			
		||||
Taille_immediatement_disponible
 | 
			
		||||
Taille_lien
 | 
			
		||||
Taille_ligne
 | 
			
		||||
Taille_liste
 | 
			
		||||
Taille_liste_brouillon
 | 
			
		||||
Taille_liste_courante
 | 
			
		||||
Taille_maxi
 | 
			
		||||
Taille_nom
 | 
			
		||||
Taille_nouvelle_page
 | 
			
		||||
Taille_page_brouillon
 | 
			
		||||
Taille_page_courante
 | 
			
		||||
Taille_police
 | 
			
		||||
Taille_shade
 | 
			
		||||
Tangente_X
 | 
			
		||||
Tangente_Y
 | 
			
		||||
comment_size
 | 
			
		||||
size_to_read
 | 
			
		||||
stack_index
 | 
			
		||||
block_size
 | 
			
		||||
file_size
 | 
			
		||||
Screen_size_in_GIF
 | 
			
		||||
file_size
 | 
			
		||||
image_size
 | 
			
		||||
mem_available_now
 | 
			
		||||
link_size
 | 
			
		||||
line_size
 | 
			
		||||
List_size
 | 
			
		||||
spare_list_size
 | 
			
		||||
current_list_size
 | 
			
		||||
max_size
 | 
			
		||||
name_size
 | 
			
		||||
new_page_size
 | 
			
		||||
spare_page_size
 | 
			
		||||
current_page_size
 | 
			
		||||
font_size
 | 
			
		||||
shade_size
 | 
			
		||||
tangent_x
 | 
			
		||||
tangent_y
 | 
			
		||||
Technique
 | 
			
		||||
Temp
 | 
			
		||||
Temp1
 | 
			
		||||
Temp2
 | 
			
		||||
Temp3
 | 
			
		||||
Temp4
 | 
			
		||||
Temp5
 | 
			
		||||
Temp_X
 | 
			
		||||
Temp_color
 | 
			
		||||
Tempo
 | 
			
		||||
Temporaire
 | 
			
		||||
Third_X
 | 
			
		||||
temp
 | 
			
		||||
temp1
 | 
			
		||||
temp2
 | 
			
		||||
temp3
 | 
			
		||||
temp4
 | 
			
		||||
temp5
 | 
			
		||||
temp_x
 | 
			
		||||
temp_color
 | 
			
		||||
temp
 | 
			
		||||
temp
 | 
			
		||||
third_x
 | 
			
		||||
Titre
 | 
			
		||||
Total_lignes
 | 
			
		||||
Touche2
 | 
			
		||||
ToucheR
 | 
			
		||||
Touche_autorisee
 | 
			
		||||
Touche_lue
 | 
			
		||||
Tout_charger
 | 
			
		||||
total_lines
 | 
			
		||||
Key2
 | 
			
		||||
released_key
 | 
			
		||||
is_authorized
 | 
			
		||||
input_key
 | 
			
		||||
reload_all
 | 
			
		||||
Transp_col
 | 
			
		||||
Type
 | 
			
		||||
TypeLecteur
 | 
			
		||||
TypeLigne
 | 
			
		||||
Type_saisie
 | 
			
		||||
Update_necessaire
 | 
			
		||||
Upload
 | 
			
		||||
User_Feedback_Required
 | 
			
		||||
Utilisee
 | 
			
		||||
Utiliser_palette_brosse
 | 
			
		||||
drive_type
 | 
			
		||||
line_type
 | 
			
		||||
input_type
 | 
			
		||||
update_is_required
 | 
			
		||||
upload
 | 
			
		||||
user_feedback_required
 | 
			
		||||
used
 | 
			
		||||
use_brush_palette
 | 
			
		||||
V
 | 
			
		||||
VAX
 | 
			
		||||
VAY
 | 
			
		||||
VBX
 | 
			
		||||
VBY
 | 
			
		||||
vax
 | 
			
		||||
vay
 | 
			
		||||
vbx
 | 
			
		||||
vby
 | 
			
		||||
Valeur
 | 
			
		||||
Valeur_Clr
 | 
			
		||||
Valeur_Eof
 | 
			
		||||
Valeur_pixel
 | 
			
		||||
Valeur_tempo_jauge_droite
 | 
			
		||||
Valeur_tempo_jauge_gauche
 | 
			
		||||
value_clr
 | 
			
		||||
value_eof
 | 
			
		||||
pixel_value
 | 
			
		||||
Delay_right_click_on_slider
 | 
			
		||||
Delay_left_click_on_slider
 | 
			
		||||
Valeurs
 | 
			
		||||
Value
 | 
			
		||||
Values
 | 
			
		||||
Vecteur_Debut_X
 | 
			
		||||
Vecteur_Debut_Y
 | 
			
		||||
Vecteur_Fin_X
 | 
			
		||||
Vecteur_Fin_Y
 | 
			
		||||
value
 | 
			
		||||
values
 | 
			
		||||
vector_start_x
 | 
			
		||||
vector_start_y
 | 
			
		||||
vector_end_x
 | 
			
		||||
vector_end_y
 | 
			
		||||
Version
 | 
			
		||||
Version1
 | 
			
		||||
Version2
 | 
			
		||||
Vert
 | 
			
		||||
Vert_dessous
 | 
			
		||||
Vertices
 | 
			
		||||
Vitesse
 | 
			
		||||
green
 | 
			
		||||
green_under
 | 
			
		||||
vertices
 | 
			
		||||
speed
 | 
			
		||||
Gmin
 | 
			
		||||
Vraie_largeur
 | 
			
		||||
Vraie_taille_ligne
 | 
			
		||||
real_width
 | 
			
		||||
real_line_size
 | 
			
		||||
Width
 | 
			
		||||
WindowsPath
 | 
			
		||||
X
 | 
			
		||||
X1
 | 
			
		||||
X2
 | 
			
		||||
X2_minus_X1
 | 
			
		||||
X3
 | 
			
		||||
X4
 | 
			
		||||
X_swap
 | 
			
		||||
x1
 | 
			
		||||
x2
 | 
			
		||||
x2_moins_x1
 | 
			
		||||
x3
 | 
			
		||||
x4
 | 
			
		||||
with_remap
 | 
			
		||||
X_zoom
 | 
			
		||||
Chosen_X
 | 
			
		||||
chosen_X
 | 
			
		||||
X_dpi
 | 
			
		||||
Effective_X
 | 
			
		||||
effective_X
 | 
			
		||||
X_max
 | 
			
		||||
X_min
 | 
			
		||||
X_origin
 | 
			
		||||
Theoric_X
 | 
			
		||||
theoric_X
 | 
			
		||||
X_aspect
 | 
			
		||||
Xmin
 | 
			
		||||
x_min
 | 
			
		||||
X_org
 | 
			
		||||
Xr
 | 
			
		||||
rx
 | 
			
		||||
X_screen
 | 
			
		||||
Xt
 | 
			
		||||
Xt1
 | 
			
		||||
Xt2
 | 
			
		||||
Xt3
 | 
			
		||||
Xt4
 | 
			
		||||
xt
 | 
			
		||||
xt1
 | 
			
		||||
xt2
 | 
			
		||||
xt3
 | 
			
		||||
xt4
 | 
			
		||||
Y
 | 
			
		||||
Y1
 | 
			
		||||
Y2
 | 
			
		||||
Y2_minus_Y1
 | 
			
		||||
Y3
 | 
			
		||||
Y4
 | 
			
		||||
Y_
 | 
			
		||||
Y_zoom
 | 
			
		||||
Chosen_Y
 | 
			
		||||
y1
 | 
			
		||||
y2
 | 
			
		||||
y2_minus_y1
 | 
			
		||||
y3
 | 
			
		||||
y4
 | 
			
		||||
y_
 | 
			
		||||
y_zoom
 | 
			
		||||
chosen_Y
 | 
			
		||||
Y_dpi
 | 
			
		||||
Effective_Y
 | 
			
		||||
effective_Y
 | 
			
		||||
Y_max
 | 
			
		||||
Y_min
 | 
			
		||||
Y_origin
 | 
			
		||||
Y_aspect
 | 
			
		||||
Y_org
 | 
			
		||||
Yr
 | 
			
		||||
ry
 | 
			
		||||
Y_screen
 | 
			
		||||
Yt1
 | 
			
		||||
Yt2
 | 
			
		||||
Yt3
 | 
			
		||||
Yt4
 | 
			
		||||
yt1
 | 
			
		||||
yt2
 | 
			
		||||
yt3
 | 
			
		||||
yt4
 | 
			
		||||
Temp_buffer
 | 
			
		||||
_path
 | 
			
		||||
a
 | 
			
		||||
@ -2970,11 +2970,11 @@ offs_y
 | 
			
		||||
old_y
 | 
			
		||||
old_file
 | 
			
		||||
total_weight
 | 
			
		||||
pos_y_dest
 | 
			
		||||
pos_y_dest_final
 | 
			
		||||
pos_y_dest_initial
 | 
			
		||||
pos_y_src
 | 
			
		||||
pos_y_src_initial
 | 
			
		||||
dest_y_pos
 | 
			
		||||
final_dest_y_pos
 | 
			
		||||
initial_dest_y_pos
 | 
			
		||||
src_y_pos
 | 
			
		||||
initial_src_y_pos
 | 
			
		||||
text_y_pos
 | 
			
		||||
T
 | 
			
		||||
T2
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										150
									
								
								windows.c
									
									
									
									
									
								
							
							
						
						
									
										150
									
								
								windows.c
									
									
									
									
									
								
							@ -50,16 +50,16 @@ word Palette_Cells_Y()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Affichage d'un pixel dans le menu (le menu doit être visible)
 | 
			
		||||
void Pixel_dans_barre_d_outil(word X,word Y,byte Couleur)
 | 
			
		||||
void Pixel_dans_barre_d_outil(word x,word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  Block(X*Menu_Facteur_X,(Y*Menu_Facteur_Y)+Menu_Ordonnee,Menu_Facteur_X,Menu_Facteur_Y,Couleur);
 | 
			
		||||
  Block(x*Menu_Facteur_X,(y*Menu_Facteur_Y)+Menu_Ordonnee,Menu_Facteur_X,Menu_Facteur_Y,Couleur);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // Affichage d'un pixel dans la fenêtre (la fenêtre doit être visible)
 | 
			
		||||
 | 
			
		||||
void Pixel_dans_fenetre(word X,word Y,byte Couleur)
 | 
			
		||||
void Pixel_dans_fenetre(word x,word y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
    Block((X*Menu_Facteur_X)+Fenetre_Pos_X,(Y*Menu_Facteur_Y)+Fenetre_Pos_Y,Menu_Facteur_X,Menu_Facteur_Y,Couleur);
 | 
			
		||||
    Block((x*Menu_Facteur_X)+Fenetre_Pos_X,(y*Menu_Facteur_Y)+Fenetre_Pos_Y,Menu_Facteur_X,Menu_Facteur_Y,Couleur);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -381,7 +381,7 @@ void Afficher_menu(void)
 | 
			
		||||
 | 
			
		||||
  // -- Afficher une chaîne n'importe où à l'écran --
 | 
			
		||||
 | 
			
		||||
void Print_general(short X,short Y,const char * Chaine,byte Couleur_texte,byte Couleur_fond)
 | 
			
		||||
void Print_general(short x,short y,const char * Chaine,byte Couleur_texte,byte Couleur_fond)
 | 
			
		||||
{
 | 
			
		||||
  word  Indice;
 | 
			
		||||
  int x_pos;
 | 
			
		||||
@ -392,7 +392,7 @@ void Print_general(short X,short Y,const char * Chaine,byte Couleur_texte,byte C
 | 
			
		||||
  byte Repeat_Menu_Facteur_X;
 | 
			
		||||
  byte Repeat_Menu_Facteur_Y;
 | 
			
		||||
 | 
			
		||||
  Reel_Y=Y;
 | 
			
		||||
  Reel_Y=y;
 | 
			
		||||
  for (y_pos=0;y_pos<8<<3;y_pos+=1<<3)
 | 
			
		||||
  {
 | 
			
		||||
    Reel_X=0; // Position dans le buffer
 | 
			
		||||
@ -405,7 +405,7 @@ void Print_general(short X,short Y,const char * Chaine,byte Couleur_texte,byte C
 | 
			
		||||
          Buffer_de_ligne_horizontale[Reel_X++]=*(font_pixel+x_pos+y_pos)?Couleur_texte:Couleur_fond;
 | 
			
		||||
    }
 | 
			
		||||
    for (Repeat_Menu_Facteur_Y=0;Repeat_Menu_Facteur_Y<Menu_Facteur_Y;Repeat_Menu_Facteur_Y++)
 | 
			
		||||
      Afficher_ligne_fast(X,Reel_Y++,Indice*Menu_Facteur_X*8,Buffer_de_ligne_horizontale);
 | 
			
		||||
      Afficher_ligne_fast(x,Reel_Y++,Indice*Menu_Facteur_X*8,Buffer_de_ligne_horizontale);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -413,16 +413,16 @@ void Print_general(short X,short Y,const char * Chaine,byte Couleur_texte,byte C
 | 
			
		||||
 | 
			
		||||
void Print_char_dans_fenetre(short x_pos,short y_pos,const unsigned char c,byte Couleur_texte,byte Couleur_fond)
 | 
			
		||||
{
 | 
			
		||||
  short X,Y;
 | 
			
		||||
  short x,y;
 | 
			
		||||
  byte *pixel;
 | 
			
		||||
  x_pos=(x_pos*Menu_Facteur_X)+Fenetre_Pos_X;
 | 
			
		||||
  y_pos=(y_pos*Menu_Facteur_Y)+Fenetre_Pos_Y;
 | 
			
		||||
  // Premier pixel du caractère
 | 
			
		||||
  pixel=Fonte + (c<<6);
 | 
			
		||||
  
 | 
			
		||||
  for (Y=0;Y<8;Y++)
 | 
			
		||||
    for (X=0;X<8;X++)
 | 
			
		||||
      Block(x_pos+(X*Menu_Facteur_X), y_pos+(Y*Menu_Facteur_Y),
 | 
			
		||||
  for (y=0;y<8;y++)
 | 
			
		||||
    for (x=0;x<8;x++)
 | 
			
		||||
      Block(x_pos+(x*Menu_Facteur_X), y_pos+(y*Menu_Facteur_Y),
 | 
			
		||||
            Menu_Facteur_X, Menu_Facteur_Y,
 | 
			
		||||
            (*(pixel++)?Couleur_texte:Couleur_fond));
 | 
			
		||||
}
 | 
			
		||||
@ -431,45 +431,45 @@ void Print_char_dans_fenetre(short x_pos,short y_pos,const unsigned char c,byte
 | 
			
		||||
 | 
			
		||||
void Print_char_transparent_dans_fenetre(short x_pos,short y_pos,const unsigned char c,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
  short X,Y;
 | 
			
		||||
  short x,y;
 | 
			
		||||
  byte *pixel;
 | 
			
		||||
  x_pos=(x_pos*Menu_Facteur_X)+Fenetre_Pos_X;
 | 
			
		||||
  y_pos=(y_pos*Menu_Facteur_Y)+Fenetre_Pos_Y;
 | 
			
		||||
  // Premier pixel du caractère
 | 
			
		||||
  pixel=Fonte + (c<<6);
 | 
			
		||||
  
 | 
			
		||||
  for (Y=0;Y<8;Y++)
 | 
			
		||||
    for (X=0;X<8;X++)
 | 
			
		||||
  for (y=0;y<8;y++)
 | 
			
		||||
    for (x=0;x<8;x++)
 | 
			
		||||
    {
 | 
			
		||||
      if (*(pixel++))
 | 
			
		||||
        Block(x_pos+(X*Menu_Facteur_X), y_pos+(Y*Menu_Facteur_Y),
 | 
			
		||||
        Block(x_pos+(x*Menu_Facteur_X), y_pos+(y*Menu_Facteur_Y),
 | 
			
		||||
              Menu_Facteur_X, Menu_Facteur_Y, Couleur);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // -- Afficher une chaîne dans une fenêtre, avec taille maxi --
 | 
			
		||||
 | 
			
		||||
void Print_dans_fenetre_limite(short X,short Y,const char * Chaine,byte Taille,byte Couleur_texte,byte Couleur_fond)
 | 
			
		||||
void Print_dans_fenetre_limite(short x,short y,const char * Chaine,byte size,byte Couleur_texte,byte Couleur_fond)
 | 
			
		||||
{
 | 
			
		||||
  char Chaine_affichee[256];
 | 
			
		||||
  strncpy(Chaine_affichee, Chaine, Taille);
 | 
			
		||||
  Chaine_affichee[Taille]='\0';
 | 
			
		||||
  strncpy(Chaine_affichee, Chaine, size);
 | 
			
		||||
  Chaine_affichee[size]='\0';
 | 
			
		||||
 | 
			
		||||
  if (strlen(Chaine) > Taille)
 | 
			
		||||
  if (strlen(Chaine) > size)
 | 
			
		||||
  {
 | 
			
		||||
    Chaine_affichee[Taille-1]=CARACTERE_SUSPENSION;
 | 
			
		||||
    Chaine_affichee[size-1]=CARACTERE_SUSPENSION;
 | 
			
		||||
  }
 | 
			
		||||
  Print_dans_fenetre(X, Y, Chaine_affichee, Couleur_texte, Couleur_fond);
 | 
			
		||||
  Print_dans_fenetre(x, y, Chaine_affichee, Couleur_texte, Couleur_fond);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // -- Afficher une chaîne dans une fenêtre --
 | 
			
		||||
 | 
			
		||||
void Print_dans_fenetre(short X,short Y,const char * Chaine,byte Couleur_texte,byte Couleur_fond)
 | 
			
		||||
void Print_dans_fenetre(short x,short y,const char * Chaine,byte Couleur_texte,byte Couleur_fond)
 | 
			
		||||
{
 | 
			
		||||
  Print_general((X*Menu_Facteur_X)+Fenetre_Pos_X,
 | 
			
		||||
                (Y*Menu_Facteur_Y)+Fenetre_Pos_Y,
 | 
			
		||||
  Print_general((x*Menu_Facteur_X)+Fenetre_Pos_X,
 | 
			
		||||
                (y*Menu_Facteur_Y)+Fenetre_Pos_Y,
 | 
			
		||||
                Chaine,Couleur_texte,Couleur_fond);
 | 
			
		||||
  UpdateRect(X*Menu_Facteur_X+Fenetre_Pos_X,Y*Menu_Facteur_Y+Fenetre_Pos_Y,8*Menu_Facteur_X*strlen(Chaine),8*Menu_Facteur_Y);
 | 
			
		||||
  UpdateRect(x*Menu_Facteur_X+Fenetre_Pos_X,y*Menu_Facteur_Y+Fenetre_Pos_Y,8*Menu_Facteur_X*strlen(Chaine),8*Menu_Facteur_Y);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // -- Afficher une chaîne dans le menu --
 | 
			
		||||
@ -541,7 +541,7 @@ void Print_nom_fichier(void)
 | 
			
		||||
 | 
			
		||||
// Fonction d'affichage d'une chaine numérique avec une fonte très fine
 | 
			
		||||
// Spécialisée pour les compteurs RGB
 | 
			
		||||
void Print_compteur(short X,short Y,const char * Chaine,byte Couleur_texte,byte Couleur_fond)
 | 
			
		||||
void Print_compteur(short x,short y,const char * Chaine,byte Couleur_texte,byte Couleur_fond)
 | 
			
		||||
{
 | 
			
		||||
  // Macros pour écrire des litteraux binaires.
 | 
			
		||||
  // Ex: Ob(11110000) == 0xF0
 | 
			
		||||
@ -730,11 +730,11 @@ void Print_compteur(short X,short Y,const char * Chaine,byte Couleur_texte,byte
 | 
			
		||||
      for (x_pos=0;x_pos<6;x_pos++)
 | 
			
		||||
      {
 | 
			
		||||
        byte Couleur = (thin_font[Numero_car][y_pos] & (1 << (6-x_pos))) ? Couleur_texte:Couleur_fond;
 | 
			
		||||
        Pixel_dans_fenetre(X+(Indice*6+x_pos),Y+y_pos,Couleur);
 | 
			
		||||
        Pixel_dans_fenetre(x+(Indice*6+x_pos),y+y_pos,Couleur);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  UpdateRect(Fenetre_Pos_X+X*Menu_Facteur_X,Fenetre_Pos_Y+Y*Menu_Facteur_Y,strlen(Chaine)*Menu_Facteur_X*6,8*Menu_Facteur_Y);
 | 
			
		||||
  UpdateRect(Fenetre_Pos_X+x*Menu_Facteur_X,Fenetre_Pos_Y+y*Menu_Facteur_Y,strlen(Chaine)*Menu_Facteur_X*6,8*Menu_Facteur_Y);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -898,7 +898,7 @@ void Afficher_pinceau_dans_menu(void)
 | 
			
		||||
 | 
			
		||||
  // -- Dessiner un pinceau prédéfini dans la fenêtre --
 | 
			
		||||
 | 
			
		||||
void Afficher_pinceau_dans_fenetre(word X,word Y,int number)
 | 
			
		||||
void Afficher_pinceau_dans_fenetre(word x,word y,int number)
 | 
			
		||||
  // Pinceau = 0..NB_SPRITES_PINCEAU-1 : Pinceau prédéfini
 | 
			
		||||
{
 | 
			
		||||
  word x_pos;
 | 
			
		||||
@ -917,8 +917,8 @@ void Afficher_pinceau_dans_fenetre(word X,word Y,int number)
 | 
			
		||||
  if (Taille_Y<1)
 | 
			
		||||
    Taille_Y=1;
 | 
			
		||||
 | 
			
		||||
  Orig_X = (X + 8)*Menu_Facteur_X - (Pinceau_predefini_Decalage_X[number])*Taille_X+Fenetre_Pos_X;
 | 
			
		||||
  Orig_Y = (Y + 8)*Menu_Facteur_Y - (Pinceau_predefini_Decalage_Y[number])*Taille_Y+Fenetre_Pos_Y;
 | 
			
		||||
  Orig_X = (x + 8)*Menu_Facteur_X - (Pinceau_predefini_Decalage_X[number])*Taille_X+Fenetre_Pos_X;
 | 
			
		||||
  Orig_Y = (y + 8)*Menu_Facteur_Y - (Pinceau_predefini_Decalage_Y[number])*Taille_Y+Fenetre_Pos_Y;
 | 
			
		||||
 | 
			
		||||
  for (Pos_fenetre_Y=0,y_pos=0; y_pos<Pinceau_predefini_Hauteur[number]; Pos_fenetre_Y++,y_pos++)
 | 
			
		||||
    for (Pos_fenetre_X=0,x_pos=0; x_pos<Pinceau_predefini_Largeur[number]; Pos_fenetre_X++,x_pos++)
 | 
			
		||||
@ -934,17 +934,17 @@ void Afficher_pinceau_dans_fenetre(word X,word Y,int number)
 | 
			
		||||
 | 
			
		||||
  // -- Dessiner des zigouigouis --
 | 
			
		||||
 | 
			
		||||
void Dessiner_zigouigoui(word X,word Y, byte Couleur, short Sens)
 | 
			
		||||
void Dessiner_zigouigoui(word x,word y, byte Couleur, short direction)
 | 
			
		||||
{
 | 
			
		||||
  word i;
 | 
			
		||||
 | 
			
		||||
  for (i=0; i<11; i++) Pixel_dans_fenetre(X,Y+i,Couleur);
 | 
			
		||||
  X+=Sens;
 | 
			
		||||
  for (i=1; i<10; i++) Pixel_dans_fenetre(X,Y+i,Couleur);
 | 
			
		||||
  X+=Sens+Sens;
 | 
			
		||||
  for (i=3; i<8; i++) Pixel_dans_fenetre(X,Y+i,Couleur);
 | 
			
		||||
  X+=Sens+Sens;
 | 
			
		||||
  Pixel_dans_fenetre(X,Y+5,Couleur);
 | 
			
		||||
  for (i=0; i<11; i++) Pixel_dans_fenetre(x,y+i,Couleur);
 | 
			
		||||
  x+=direction;
 | 
			
		||||
  for (i=1; i<10; i++) Pixel_dans_fenetre(x,y+i,Couleur);
 | 
			
		||||
  x+=direction+direction;
 | 
			
		||||
  for (i=3; i<8; i++) Pixel_dans_fenetre(x,y+i,Couleur);
 | 
			
		||||
  x+=direction+direction;
 | 
			
		||||
  Pixel_dans_fenetre(x,y+5,Couleur);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // -- Dessiner un bloc de couleurs dégradé verticalement
 | 
			
		||||
@ -979,19 +979,19 @@ void Bloc_degrade_dans_fenetre(word x_pos,word y_pos,word Debut_block,word Fin_b
 | 
			
		||||
 | 
			
		||||
  // -- Dessiner un petit sprite représentant le type d'un drive --
 | 
			
		||||
 | 
			
		||||
void Fenetre_Afficher_sprite_drive(word x_pos,word y_pos,byte Type)
 | 
			
		||||
void Fenetre_Afficher_sprite_drive(word x_pos,word y_pos,byte type)
 | 
			
		||||
{
 | 
			
		||||
  word i,j;
 | 
			
		||||
 | 
			
		||||
  for (j=0; j<HAUTEUR_SPRITE_DRIVE; j++)
 | 
			
		||||
    for (i=0; i<LARGEUR_SPRITE_DRIVE; i++)
 | 
			
		||||
      Pixel_dans_fenetre(x_pos+i,y_pos+j,SPRITE_DRIVE[Type][j][i]);
 | 
			
		||||
      Pixel_dans_fenetre(x_pos+i,y_pos+j,SPRITE_DRIVE[type][j][i]);
 | 
			
		||||
  UpdateRect(ToWinX(x_pos),ToWinY(y_pos),ToWinL(LARGEUR_SPRITE_DRIVE),ToWinH(HAUTEUR_SPRITE_DRIVE));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Afficher_palette_du_menu_en_evitant_la_fenetre(byte * Table)
 | 
			
		||||
void Afficher_palette_du_menu_en_evitant_la_fenetre(byte * table)
 | 
			
		||||
{
 | 
			
		||||
  // On part du principe qu'il n'y a que le bas d'une fenêtre qui puisse
 | 
			
		||||
  // empiéter sur la palette... Et c'est déjà pas mal!
 | 
			
		||||
@ -1017,7 +1017,7 @@ void Afficher_palette_du_menu_en_evitant_la_fenetre(byte * Table)
 | 
			
		||||
 | 
			
		||||
  for (Couleur=0,Vraie_couleur=Couleur_debut_palette;Couleur<Menu_Cellules_X*Menu_Cellules_Y;Couleur++,Vraie_couleur++)
 | 
			
		||||
  {
 | 
			
		||||
    if (Table[Vraie_couleur]!=Vraie_couleur)
 | 
			
		||||
    if (table[Vraie_couleur]!=Vraie_couleur)
 | 
			
		||||
    {
 | 
			
		||||
      Debut_X=(LARGEUR_MENU+1+(Couleur/Menu_Cellules_Y)*Menu_Taille_couleur)*Menu_Facteur_X;
 | 
			
		||||
      Debut_Y=Menu_Ordonnee_avant_fenetre+((2+((Couleur%Menu_Cellules_Y)*(32/Menu_Cellules_Y)))*Menu_Facteur_Y);
 | 
			
		||||
@ -2195,7 +2195,7 @@ byte Meilleure_couleur_sans_exclusion(byte Rouge,byte Vert,byte Bleu)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Calculer_les_4_meilleures_couleurs_pour_1_couleur_du_menu
 | 
			
		||||
     (byte Rouge, byte Vert, byte Bleu, Composantes * palette, byte * Table)
 | 
			
		||||
     (byte Rouge, byte Vert, byte Bleu, Composantes * palette, byte * table)
 | 
			
		||||
{
 | 
			
		||||
  short Coul;
 | 
			
		||||
  int   Delta_R,Delta_V,Delta_B;
 | 
			
		||||
@ -2217,10 +2217,10 @@ void Calculer_les_4_meilleures_couleurs_pour_1_couleur_du_menu
 | 
			
		||||
      Best_dist[2]=Best_dist[1];
 | 
			
		||||
      Best_dist[1]=Best_dist[0];
 | 
			
		||||
      Best_dist[0]=Dist;
 | 
			
		||||
      Table[3]=Table[2];
 | 
			
		||||
      Table[2]=Table[1];
 | 
			
		||||
      Table[1]=Table[0];
 | 
			
		||||
      Table[0]=Coul;
 | 
			
		||||
      table[3]=table[2];
 | 
			
		||||
      table[2]=table[1];
 | 
			
		||||
      table[1]=table[0];
 | 
			
		||||
      table[0]=Coul;
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
@ -2229,9 +2229,9 @@ void Calculer_les_4_meilleures_couleurs_pour_1_couleur_du_menu
 | 
			
		||||
        Best_dist[3]=Best_dist[2];
 | 
			
		||||
        Best_dist[2]=Best_dist[1];
 | 
			
		||||
        Best_dist[1]=Dist;
 | 
			
		||||
        Table[3]=Table[2];
 | 
			
		||||
        Table[2]=Table[1];
 | 
			
		||||
        Table[1]=Coul;
 | 
			
		||||
        table[3]=table[2];
 | 
			
		||||
        table[2]=table[1];
 | 
			
		||||
        table[1]=Coul;
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
      {
 | 
			
		||||
@ -2239,14 +2239,14 @@ void Calculer_les_4_meilleures_couleurs_pour_1_couleur_du_menu
 | 
			
		||||
        {
 | 
			
		||||
          Best_dist[3]=Best_dist[2];
 | 
			
		||||
          Best_dist[2]=Dist;
 | 
			
		||||
          Table[3]=Table[2];
 | 
			
		||||
          Table[2]=Coul;
 | 
			
		||||
          table[3]=table[2];
 | 
			
		||||
          table[2]=Coul;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        if (Dist<Best_dist[3])
 | 
			
		||||
        {
 | 
			
		||||
          Best_dist[3]=Dist;
 | 
			
		||||
          Table[3]=Coul;
 | 
			
		||||
          table[3]=Coul;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
@ -2340,7 +2340,7 @@ void Remapper_ecran_apres_changement_couleurs_menu(void)
 | 
			
		||||
 | 
			
		||||
void Calculer_couleurs_menu_optimales(Composantes * palette)
 | 
			
		||||
{
 | 
			
		||||
  byte Table[4];
 | 
			
		||||
  byte table[4];
 | 
			
		||||
  short i,j,k;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -2352,45 +2352,45 @@ void Calculer_couleurs_menu_optimales(Composantes * palette)
 | 
			
		||||
 | 
			
		||||
  // Recherche du noir
 | 
			
		||||
  Calculer_les_4_meilleures_couleurs_pour_1_couleur_du_menu
 | 
			
		||||
    (Coul_menu_pref[0].R, Coul_menu_pref[0].G, Coul_menu_pref[0].B,palette,Table);
 | 
			
		||||
  CM_Noir=Table[0];
 | 
			
		||||
    (Coul_menu_pref[0].R, Coul_menu_pref[0].G, Coul_menu_pref[0].B,palette,table);
 | 
			
		||||
  CM_Noir=table[0];
 | 
			
		||||
 | 
			
		||||
  // Recherche du blanc
 | 
			
		||||
  Calculer_les_4_meilleures_couleurs_pour_1_couleur_du_menu
 | 
			
		||||
    (Coul_menu_pref[3].R, Coul_menu_pref[3].G, Coul_menu_pref[3].B,palette,Table);
 | 
			
		||||
  if (CM_Noir!=Table[0])
 | 
			
		||||
    CM_Blanc=Table[0];
 | 
			
		||||
    (Coul_menu_pref[3].R, Coul_menu_pref[3].G, Coul_menu_pref[3].B,palette,table);
 | 
			
		||||
  if (CM_Noir!=table[0])
 | 
			
		||||
    CM_Blanc=table[0];
 | 
			
		||||
  else
 | 
			
		||||
    CM_Blanc=Table[1];
 | 
			
		||||
    CM_Blanc=table[1];
 | 
			
		||||
 | 
			
		||||
  // Recherche du gris clair
 | 
			
		||||
  Calculer_les_4_meilleures_couleurs_pour_1_couleur_du_menu
 | 
			
		||||
    (Coul_menu_pref[2].R, Coul_menu_pref[2].G, Coul_menu_pref[2].B,palette,Table);
 | 
			
		||||
  if ( (CM_Noir!=Table[0]) && (CM_Blanc!=Table[0]) )
 | 
			
		||||
    CM_Clair=Table[0];
 | 
			
		||||
    (Coul_menu_pref[2].R, Coul_menu_pref[2].G, Coul_menu_pref[2].B,palette,table);
 | 
			
		||||
  if ( (CM_Noir!=table[0]) && (CM_Blanc!=table[0]) )
 | 
			
		||||
    CM_Clair=table[0];
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    if ( (CM_Noir!=Table[1]) && (CM_Blanc!=Table[1]) )
 | 
			
		||||
      CM_Clair=Table[1];
 | 
			
		||||
    if ( (CM_Noir!=table[1]) && (CM_Blanc!=table[1]) )
 | 
			
		||||
      CM_Clair=table[1];
 | 
			
		||||
    else
 | 
			
		||||
      CM_Clair=Table[2];
 | 
			
		||||
      CM_Clair=table[2];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Recherche du gris foncé
 | 
			
		||||
  Calculer_les_4_meilleures_couleurs_pour_1_couleur_du_menu
 | 
			
		||||
    (Coul_menu_pref[1].R, Coul_menu_pref[1].G, Coul_menu_pref[1].B,palette,Table);
 | 
			
		||||
  if ( (CM_Noir!=Table[0]) && (CM_Blanc!=Table[0]) && (CM_Clair!=Table[0]) )
 | 
			
		||||
    CM_Fonce=Table[0];
 | 
			
		||||
    (Coul_menu_pref[1].R, Coul_menu_pref[1].G, Coul_menu_pref[1].B,palette,table);
 | 
			
		||||
  if ( (CM_Noir!=table[0]) && (CM_Blanc!=table[0]) && (CM_Clair!=table[0]) )
 | 
			
		||||
    CM_Fonce=table[0];
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    if ( (CM_Noir!=Table[1]) && (CM_Blanc!=Table[1]) && (CM_Clair!=Table[1]) )
 | 
			
		||||
      CM_Fonce=Table[1];
 | 
			
		||||
    if ( (CM_Noir!=table[1]) && (CM_Blanc!=table[1]) && (CM_Clair!=table[1]) )
 | 
			
		||||
      CM_Fonce=table[1];
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
      if ( (CM_Noir!=Table[2]) && (CM_Blanc!=Table[2]) && (CM_Clair!=Table[2]) )
 | 
			
		||||
        CM_Fonce=Table[2];
 | 
			
		||||
      if ( (CM_Noir!=table[2]) && (CM_Blanc!=table[2]) && (CM_Clair!=table[2]) )
 | 
			
		||||
        CM_Fonce=table[2];
 | 
			
		||||
      else
 | 
			
		||||
        CM_Fonce=Table[3];
 | 
			
		||||
        CM_Fonce=table[3];
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								windows.h
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								windows.h
									
									
									
									
									
								
							@ -36,8 +36,8 @@ void Calculer_donnees_loupe(void);
 | 
			
		||||
void Calculer_limites(void);
 | 
			
		||||
void Calculer_coordonnees_pinceau(void);
 | 
			
		||||
 | 
			
		||||
void Pixel_dans_barre_d_outil(word X,word Y,byte Couleur);
 | 
			
		||||
void Pixel_dans_fenetre(word X,word Y,byte Couleur);
 | 
			
		||||
void Pixel_dans_barre_d_outil(word x,word y,byte Couleur);
 | 
			
		||||
void Pixel_dans_fenetre(word x,word y,byte Couleur);
 | 
			
		||||
void Encadrer_couleur_menu(byte Couleur);
 | 
			
		||||
void Afficher_palette_du_menu(void);
 | 
			
		||||
void Afficher_menu(void);
 | 
			
		||||
@ -47,15 +47,15 @@ int Couleur_palette(void);
 | 
			
		||||
word Palette_Cells_X(void);
 | 
			
		||||
word Palette_Cells_Y(void);
 | 
			
		||||
 | 
			
		||||
void Print_general(short X,short Y,const char * Chaine,byte Couleur_texte,byte Couleur_fond);
 | 
			
		||||
void Print_dans_fenetre(short X,short Y,const char * Chaine,byte Couleur_texte,byte Couleur_fond);
 | 
			
		||||
void Print_dans_fenetre_limite(short X,short Y,const char * Chaine,byte Taille,byte Couleur_texte,byte Couleur_fond);
 | 
			
		||||
void Print_general(short x,short y,const char * Chaine,byte Couleur_texte,byte Couleur_fond);
 | 
			
		||||
void Print_dans_fenetre(short x,short y,const char * Chaine,byte Couleur_texte,byte Couleur_fond);
 | 
			
		||||
void Print_dans_fenetre_limite(short x,short y,const char * Chaine,byte size,byte Couleur_texte,byte Couleur_fond);
 | 
			
		||||
void Print_char_dans_fenetre(short x_pos,short y_pos,const unsigned char c,byte Couleur_texte,byte Couleur_fond);
 | 
			
		||||
void Print_char_transparent_dans_fenetre(short x_pos,short y_pos,const unsigned char c,byte Couleur);
 | 
			
		||||
void Print_dans_menu(const char * Chaine, short position);
 | 
			
		||||
void Print_coordonnees(void);
 | 
			
		||||
void Print_nom_fichier(void);
 | 
			
		||||
void Print_compteur(short X,short Y,const char * Chaine,byte Couleur_texte,byte Couleur_fond);
 | 
			
		||||
void Print_compteur(short x,short y,const char * Chaine,byte Couleur_texte,byte Couleur_fond);
 | 
			
		||||
 | 
			
		||||
byte Demande_de_confirmation(char * Message);
 | 
			
		||||
void Warning_message(char * Message);
 | 
			
		||||
@ -71,11 +71,11 @@ void Fenetre_Afficher_cadre(word x_pos,word y_pos,word width,word height);
 | 
			
		||||
 | 
			
		||||
void Afficher_sprite_dans_menu(int Numero_bouton,int Numero_sprite);
 | 
			
		||||
void Afficher_pinceau_dans_menu(void);
 | 
			
		||||
void Afficher_pinceau_dans_fenetre(word X,word Y,int number);
 | 
			
		||||
void Afficher_pinceau_dans_fenetre(word x,word y,int number);
 | 
			
		||||
 | 
			
		||||
void Dessiner_zigouigoui(word X,word Y, byte Couleur, short Sens);
 | 
			
		||||
void Dessiner_zigouigoui(word x,word y, byte Couleur, short direction);
 | 
			
		||||
void Bloc_degrade_dans_fenetre(word x_pos,word y_pos,word Debut_block,word Fin_block);
 | 
			
		||||
void Fenetre_Afficher_sprite_drive(word x_pos,word y_pos,byte Type);
 | 
			
		||||
void Fenetre_Afficher_sprite_drive(word x_pos,word y_pos,byte type);
 | 
			
		||||
 | 
			
		||||
byte Meilleure_couleur(byte Rouge,byte Vert,byte Bleu);
 | 
			
		||||
byte Meilleure_couleur_sans_exclusion(byte Rouge,byte Vert,byte Bleu);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user