From 346d9408897fd7a5b2365475ec0b0f4a369e1123 Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Mon, 23 Mar 2009 18:08:42 +0000 Subject: [PATCH] All code ready for mass translation git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@691 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- aide.c | 78 ++-- aide.h | 4 +- boutons.c | 100 ++--- boutons.h | 2 +- brush.c | 166 ++++---- clavier.c | 10 +- divers.c | 84 ++--- divers.h | 29 +- files.c | 26 +- files.h | 4 +- graph.c | 120 +++--- graph.h | 20 +- init.c | 204 +++++----- input.c | 28 +- io.c | 8 +- io.h | 4 +- loadsave.c | 606 ++++++++++++++--------------- main.c | 14 +- moteur.c | 18 +- moteur.h | 8 +- op_c.c | 108 +++--- op_c.h | 2 +- operatio.c | 24 +- operatio.h | 4 +- pages.c | 56 +-- pages.h | 8 +- palette.c | 18 +- pxdouble.c | 40 +- pxdouble.h | 8 +- pxsimple.c | 34 +- pxsimple.h | 8 +- pxtall.c | 40 +- pxtall.h | 8 +- pxwide.c | 36 +- pxwide.h | 8 +- readini.c | 292 +++++++------- readline.c | 44 +-- saveini.c | 192 +++++----- sdlscreen.c | 36 +- sdlscreen.h | 4 +- setup.c | 4 +- shade.c | 4 +- special.c | 50 +-- special.h | 2 +- struct.h | 2 +- texte.c | 34 +- texte.h | 2 +- translat/english.txt | 776 +++++++++++++++++++------------------- translat/translations.xls | Bin 274944 -> 279040 bytes windows.c | 150 ++++---- windows.h | 18 +- 51 files changed, 1772 insertions(+), 1773 deletions(-) diff --git a/aide.c b/aide.c index 220049ed..eeba7d77 100644 --- a/aide.c +++ b/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=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; IndicePosition=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_cours16) { 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 diff --git a/aide.h b/aide.h index c97bc278..675b4179 100644 --- a/aide.h +++ b/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 diff --git a/boutons.c b/boutons.c index c0253108..4d8f9166 100644 --- a/boutons.c +++ b/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(Limite_Droite+1)) + if (((*x)+(*width))>(Limite_Droite+1)) { - (*width)=(Limite_Droite-(*X))+1; + (*width)=(Limite_Droite-(*x))+1; } - if ((*Y)(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_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_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; YLimite_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); } } diff --git a/clavier.c b/clavier.c index e542a258..ae366fe0 100644 --- a/clavier.c +++ b/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) diff --git a/divers.c b/divers.c index dccc8f74..3c3be321 100644 --- a/divers.c +++ b/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=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; } diff --git a/divers.h b/divers.h index 85f22697..d917f3c8 100644 --- a/divers.h +++ b/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); diff --git a/files.c b/files.c index 41a7e20c..ecf5bb9a 100644 --- a/files.c +++ b/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 diff --git a/files.h b/files.h index d716adf3..9334e054 100644 --- a/files.h +++ b/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 *)); diff --git a/graph.c b/graph.c index 224acd48..83fc0436 100644 --- a/graph.c +++ b/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)h); + y++; + } while (yh); 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 (Xw); + x++; + } while (xw); 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; YConfig.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(); } diff --git a/io.c b/io.c index 2a4a72fd..42d918a6 100644 --- a/io.c +++ b/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) diff --git a/io.h b/io.h index f4f7f3cf..0707d6da 100644 --- a/io.h +++ b/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); diff --git a/loadsave.c b/loadsave.c index c7eed706..b5491d59 100644 --- a/loadsave.c +++ b/loadsave.c @@ -330,7 +330,7 @@ void Initialiser_preview_24b(int width,int height) -void Initialiser_preview(short width,short height,long Taille,int format) +void Initialiser_preview(short width,short height,long size,int format) // // Cette procédure doit être appelée par les routines de chargement // d'images. @@ -363,16 +363,16 @@ void Initialiser_preview(short width,short height,long Taille,int format) } // Affichage de la taille du fichier - if (Taille<1048576) + if (size<1048576) { // Le fichier fait moins d'un Mega, on affiche sa taille direct - Num2str(Taille,Chaine,9); + Num2str(size,Chaine,9); Print_dans_fenetre(226,63,Chaine,CM_Noir,CM_Clair); } - else if ((Taille/1024)<10000000) + else if ((size/1024)<10000000) { // Le fichier fait plus d'un Mega, on peut afficher sa taille en Ko - Num2str(Taille/1024,Chaine,7); + Num2str(size/1024,Chaine,7); Chaine[7]='K'; Chaine[8]='b'; Print_dans_fenetre(226,63,Chaine,CM_Noir,CM_Clair); @@ -850,8 +850,8 @@ void Test_IMG(void) { FILE *file; // Fichier du fichier char Nom_du_fichier[TAILLE_CHEMIN_FICHIER]; // Nom complet du fichier - T_Header_IMG IMG_Header; - byte Signature[6]={0x01,0x00,0x47,0x12,0x6D,0xB0}; + T_Header_IMG IMG_header; + byte signature[6]={0x01,0x00,0x47,0x12,0x6D,0xB0}; Nom_fichier_complet(Nom_du_fichier,0); @@ -862,10 +862,10 @@ void Test_IMG(void) if ((file=fopen(Nom_du_fichier, "rb"))) { // Lecture et vérification de la signature - if (read_bytes(file,&IMG_Header,sizeof(T_Header_IMG))) + if (read_bytes(file,&IMG_header,sizeof(T_Header_IMG))) { - if ( (!memcmp(IMG_Header.Filler1,Signature,6)) - && IMG_Header.Width && IMG_Header.Height) + if ( (!memcmp(IMG_header.Filler1,signature,6)) + && IMG_header.Width && IMG_header.Height) Erreur_fichier=0; } // Fermeture du fichier @@ -883,7 +883,7 @@ void Load_IMG(void) word x_pos,y_pos; long Largeur_lue; long Taille_du_fichier; - T_Header_IMG IMG_Header; + T_Header_IMG IMG_header; struct stat Informations_Fichier; @@ -896,26 +896,26 @@ void Load_IMG(void) { Taille_du_fichier=Informations_Fichier.st_size; - if (read_bytes(file,&IMG_Header,sizeof(T_Header_IMG))) + if (read_bytes(file,&IMG_header,sizeof(T_Header_IMG))) { #if SDL_BYTEORDER == SDL_BIG_ENDIAN - IMG_Header.Width = SDL_Swap16(IMG_Header.Width); - IMG_Header.Height = SDL_Swap16(IMG_Header.Height); + IMG_header.Width = SDL_Swap16(IMG_header.Width); + IMG_header.Height = SDL_Swap16(IMG_header.Height); #endif - Buffer=(byte *)malloc(IMG_Header.Width); + Buffer=(byte *)malloc(IMG_header.Width); - Initialiser_preview(IMG_Header.Width,IMG_Header.Height,Taille_du_fichier,FORMAT_IMG); + Initialiser_preview(IMG_header.Width,IMG_header.Height,Taille_du_fichier,FORMAT_IMG); if (Erreur_fichier==0) { - memcpy(Principal_Palette,IMG_Header.Palette,sizeof(T_Palette)); + memcpy(Principal_Palette,IMG_header.Palette,sizeof(T_Palette)); Set_palette(Principal_Palette); Remapper_fileselect(); - Principal_Largeur_image=IMG_Header.Width; - Principal_Hauteur_image=IMG_Header.Height; - Largeur_lue=IMG_Header.Width; + Principal_Largeur_image=IMG_header.Width; + Principal_Hauteur_image=IMG_header.Height; + Largeur_lue=IMG_header.Width; for (y_pos=0;(y_pos1) - || ( (PCX_Header.Depth!=1) && (PCX_Header.Depth!=2) && (PCX_Header.Depth!=4) && (PCX_Header.Depth!=8) ) - || ( (PCX_Header.Plane!=1) && (PCX_Header.Plane!=2) && (PCX_Header.Plane!=4) && (PCX_Header.Plane!=8) && (PCX_Header.Plane!=3) ) - || (PCX_Header.X_max1) + || ( (PCX_header.Depth!=1) && (PCX_header.Depth!=2) && (PCX_header.Depth!=4) && (PCX_header.Depth!=8) ) + || ( (PCX_header.Plane!=1) && (PCX_header.Plane!=2) && (PCX_header.Plane!=4) && (PCX_header.Plane!=8) && (PCX_header.Plane!=3) ) + || (PCX_header.X_max4) - memcpy(Principal_Palette,PCX_Header.Palette_16c,48); + memcpy(Principal_Palette,PCX_header.Palette_16c,48); else { Principal_Palette[1].R=0; Principal_Palette[1].G=0; Principal_Palette[1].B=0; - byte1=PCX_Header.Palette_16c[3]>>5; + byte1=PCX_header.Palette_16c[3]>>5; if (Nb_couleurs==4) { // Pal. CGA "alakon" (du Turc Allahkoum qui signifie "à la con" :)) memcpy(Principal_Palette+1,Palette_CGA,9); @@ -3709,7 +3709,7 @@ void Load_PCX(void) // On se positionne à la fin du fichier - 769 octets pour voir s'il y // a une palette. - if ( (PCX_Header.Depth==8) && (PCX_Header.Version>=5) && (Taille_du_fichier>(256*3)) ) + if ( (PCX_header.Depth==8) && (PCX_header.Version>=5) && (Taille_du_fichier>(256*3)) ) { fseek(file,Taille_du_fichier-((256*3)+1),SEEK_SET); // On regarde s'il y a une palette après les données de l'image @@ -3737,22 +3737,22 @@ void Load_PCX(void) fseek(file,128,SEEK_SET); if (!Erreur_fichier) { - Taille_ligne=PCX_Header.Bytes_per_plane_line*PCX_Header.Plane; - Vraie_taille_ligne=(short)PCX_Header.Bytes_per_plane_line<<3; + Taille_ligne=PCX_header.Bytes_per_plane_line*PCX_header.Plane; + Vraie_taille_ligne=(short)PCX_header.Bytes_per_plane_line<<3; // On se sert de données LBM car le dessin de ligne en moins de 256 // couleurs se fait comme avec la structure ILBM. Image_HAM=0; - HBPm1=PCX_Header.Plane-1; + HBPm1=PCX_header.Plane-1; LBM_Buffer=(byte *)malloc(Taille_ligne); // Chargement de l'image - if (PCX_Header.Compression) // Image compressée + if (PCX_header.Compression) // Image compressée { /*Init_lecture();*/ - Taille_image=(long)PCX_Header.Bytes_per_plane_line*Principal_Hauteur_image; + Taille_image=(long)PCX_header.Bytes_per_plane_line*Principal_Hauteur_image; - if (PCX_Header.Depth==8) // 256 couleurs (1 plan) + if (PCX_header.Depth==8) // 256 couleurs (1 plan) { for (position=0; ((position=Taille_ligne) { for (x_pos=0; x_pos=Taille_ligne) { for (x_pos=0; x_pos>1)*Header1.Height)!=Taille ) ) + size=(Informations_Fichier.st_size)-sizeof(T_CEL_Header1); + if ( (!size) || ( (((header1.Width+1)>>1)*header1.Height)!=size ) ) { // Tentative de reconnaissance de la signature des nouveaux fichiers fseek(file,0,SEEK_SET); - if (read_bytes(file,&Header2.Signa,4) && - !memcmp(Header2.Signa,"KiSS",4) && - read_byte(file,&Header2.Kind) && - (Header2.Kind==0x20) && - read_byte(file,&Header2.Nbbits) && - read_word_le(file,&Header2.Filler1) && - read_word_le(file,&Header2.Width) && - read_word_le(file,&Header2.Height) && - read_word_le(file,&Header2.Decalage_X) && - read_word_le(file,&Header2.Decalage_Y) && - read_bytes(file,&Header2.Filler2,16)) + if (read_bytes(file,&header2.Signa,4) && + !memcmp(header2.Signa,"KiSS",4) && + read_byte(file,&header2.Kind) && + (header2.Kind==0x20) && + read_byte(file,&header2.Nbbits) && + read_word_le(file,&header2.Filler1) && + read_word_le(file,&header2.Width) && + read_word_le(file,&header2.Height) && + read_word_le(file,&header2.Decalage_X) && + read_word_le(file,&header2.Decalage_Y) && + read_bytes(file,&header2.Filler2,16)) { // ok } @@ -4146,8 +4146,8 @@ void Load_CEL(void) { char Nom_du_fichier[TAILLE_CHEMIN_FICHIER]; FILE *file; - T_CEL_Header1 Header1; - T_CEL_Header2 Header2; + T_CEL_Header1 header1; + T_CEL_Header2 header2; short x_pos; short y_pos; byte Dernier_octet=0; @@ -4160,15 +4160,15 @@ void Load_CEL(void) Nom_fichier_complet(Nom_du_fichier,0); if ((file=fopen(Nom_du_fichier, "rb"))) { - if (read_bytes(file,&Header1,sizeof(T_CEL_Header1))) + if (read_bytes(file,&header1,sizeof(T_CEL_Header1))) { Taille_du_fichier=Informations_Fichier.st_size; if ( (Taille_du_fichier>(long int)sizeof(T_CEL_Header1)) - && ( (((Header1.Width+1)>>1)*Header1.Height)==(Taille_du_fichier-(long int)sizeof(T_CEL_Header1)) ) ) + && ( (((header1.Width+1)>>1)*header1.Height)==(Taille_du_fichier-(long int)sizeof(T_CEL_Header1)) ) ) { // Chargement d'un fichier CEL sans signature (vieux fichiers) - Principal_Largeur_image=Header1.Width; - Principal_Hauteur_image=Header1.Height; + Principal_Largeur_image=header1.Width; + Principal_Hauteur_image=header1.Height; Ecran_original_X=Principal_Largeur_image; Ecran_original_Y=Principal_Hauteur_image; Initialiser_preview(Principal_Largeur_image,Principal_Hauteur_image,Taille_du_fichier,FORMAT_CEL); @@ -4193,12 +4193,12 @@ void Load_CEL(void) // On réessaye avec le nouveau format fseek(file,0,SEEK_SET); - if (read_bytes(file,&Header2,sizeof(T_CEL_Header2))) + if (read_bytes(file,&header2,sizeof(T_CEL_Header2))) { // Chargement d'un fichier CEL avec signature (nouveaux fichiers) - Principal_Largeur_image=Header2.Width+Header2.Decalage_X; - Principal_Hauteur_image=Header2.Height+Header2.Decalage_Y; + Principal_Largeur_image=header2.Width+header2.Decalage_X; + Principal_Hauteur_image=header2.Height+header2.Decalage_Y; Ecran_original_X=Principal_Largeur_image; Ecran_original_Y=Principal_Hauteur_image; Initialiser_preview(Principal_Largeur_image,Principal_Hauteur_image,Taille_du_fichier,FORMAT_CEL); @@ -4210,34 +4210,34 @@ void Load_CEL(void) if (!Erreur_fichier) { // Effacement du décalage - for (y_pos=0;y_pos> 4)); + Pixel_de_chargement(x_pos+header2.Decalage_X,y_pos+header2.Decalage_Y,(Dernier_octet >> 4)); } else - Pixel_de_chargement(x_pos+Header2.Decalage_X,y_pos+Header2.Decalage_Y,(Dernier_octet & 15)); + Pixel_de_chargement(x_pos+header2.Decalage_X,y_pos+header2.Decalage_Y,(Dernier_octet & 15)); break; case 8: - for (y_pos=0;((y_pos>3)*SCx_Header.Plans; - Vraie_taille=(Taille/SCx_Header.Plans)<<3; - LBM_Buffer=(byte *)malloc(Taille); - HBPm1=SCx_Header.Plans-1; + size=((Principal_Largeur_image+7)>>3)*SCx_header.Plans; + Vraie_taille=(size/SCx_header.Plans)<<3; + LBM_Buffer=(byte *)malloc(size); + HBPm1=SCx_header.Plans-1; Image_HAM=0; for (y_pos=0;(y_pos>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; } diff --git a/moteur.h b/moteur.h index a1768c15..d3dee6ed 100644 --- a/moteur.h +++ b/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); diff --git a/op_c.c b/op_c.c index 376787d3..41fffb43 100644 --- a/op_c.c +++ b/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->nbnb_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+1R=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+10) { - 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+1R=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++; } } diff --git a/op_c.h b/op_c.h index 46ac2b98..639deb0b 100644 --- a/op_c.h +++ b/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); diff --git a/operatio.c b/operatio.c index 3e21e855..fe5548dd 100644 --- a/operatio.c +++ b/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); diff --git a/operatio.h b/operatio.h index b94efc8a..c7d08331 100644 --- a/operatio.h +++ b/operatio.h @@ -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); diff --git a/pages.c b/pages.c index d8db9802..29a2192a 100644 --- a/pages.c +++ b/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;IndicePages+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)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); } diff --git a/pxdouble.c b/pxdouble.c index d7adf88f..afc25ba2 100644 --- a/pxdouble.c +++ b/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= 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= 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= 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;X255)) + 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;Indice8) + 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: diff --git a/readline.c b/readline.c index 63e1e1de..1786332e 100644 --- a/readline.c +++ b/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=(TailleTaille_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 (position0) { // 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_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 ((positionTaille_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_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 { diff --git a/saveini.c b/saveini.c index 3d9096dd..159ac31d 100644 --- a/saveini.c +++ b/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;IndiceBookmark_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: diff --git a/sdlscreen.c b/sdlscreen.c index 7611633a..6d1cc2d3 100644 --- a/sdlscreen.c +++ b/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)]; } diff --git a/sdlscreen.h b/sdlscreen.h index 37386a92..c19313f7 100644 --- a/sdlscreen.h +++ b/sdlscreen.h @@ -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 diff --git a/setup.c b/setup.c index 33254c9f..cb036b9e 100644 --- a/setup.c +++ b/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); } diff --git a/shade.c b/shade.c index dd7b1e52..9ae3f280 100644 --- a/shade.c +++ b/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); } diff --git a/special.c b/special.c index a69ef4b3..1ff71209 100644 --- a/special.c +++ b/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>1; + x=Pinceau_Largeur>>1; for (y_pos=0; y_pos>1; + x=Pinceau_Largeur>>1; for (y_pos=0; y_pos>1; + x=Pinceau_Largeur>>1; for (y_pos=0; y_pos>1; + x=Pinceau_Largeur>>1; for (y_pos=0; y_pos>1; + x=Pinceau_Largeur>>1; for (y_pos=0; y_pos=0) && (IndiceEstTrueType = 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 diff --git a/texte.h b/texte.h index 10116dbc..2ea0f357 100644 --- a/texte.h +++ b/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 diff --git a/translat/english.txt b/translat/english.txt index 9fccd827..4666f818 100644 --- a/translat/english.txt +++ b/translat/english.txt @@ -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 diff --git a/translat/translations.xls b/translat/translations.xls index 8da9d0601abad6b4e24c0f15d66aaa5d39f8cf9c..8a172e6e3dbf3eb69a137c0ef8711a8ca57cc0dd 100644 GIT binary patch literal 279040 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 literal 274944 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

^Km=q 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 z z+2b+BAPTW%#_dJIE zc(%Og_dPivf85)$H6Qmjw8y^<@cvu2E}5Sn_wrrxRFqB+ zX?YcX#cg^Xw{)uF=^>q#*gk1k(CGn3Mp~Sfu#eK>wA9EouA8>IS{+(r*SOtuT594N z*G;D-WPr92r=`_hW4m-(TEn$CEv@NVoR-#dElx{oyB4RV3fJPa)XcTGyj{n&xV%MF zYoGbv(lJ=iwYa=p-!&}gQg#E^xbFYP$GtD(Q1FD#LsKg5)G3Z}i1AQjjO9|%A3?{K zj7N-z5-T&drx@cBBcQ~}jSUcEd}0KYSVLn2#Tcg;0VUSR*dQ^+D@Klpt!8Yn7~>Wr zN5mQ%8zRQ|#mEt{CdTg4`(qqqQv9*oet^H)&W8{cfg|U0Y82=bKBG$~UMa1~Hw^Tf! z*WA$9M`C>3TPl7cwvn-q#rU|lR6HoQv9V9Y__()J{8X%D>{Bs5?kyGjXkRul_L&$T z_m+xLVw)QKT#S!}xST?kyD$W4#~q^0pG&sC{|6rE5HIr8?5WH7w|SzLjfHM_RfTb!2PTxNbU!wyHzh z#x-s?)sbyoG(w* z!O@Twb)=(fd~fL(baE}~NN3lupqjCxYg{)T_onT}t%)w)E^d?H2x(vVdg=J>;#%A$ z+10hUO|qM7vCmyy!-C$&?ykkYbaO5Cxw~s=UDkt2EMm-)V!YB~{1N5Gmd5@hwxzL0 z#abBqvsepb2PkhCml*RTww1BRv>xLVW1hrX8aq(yF-|e&No;FlW5gJ*7#$+k%Gl$2 zO~x(8iimAvEPIS!j1>{v*4S9RW@}^LinTVDJ;pP}iiou_Hcsm?u5oV1DV0aCt+DZ9 zjBlLj#o8Im9^)Kc2*uhPo1pa=@91ACww6=VKjtcVyN>6VIVV$36q6%pej-BK}KjQNDIB4T`` zTPkLVF|ROIM2wGgOT|nv<`>3_i18tAshB0kJi}NKF+RjC6|=>dZx|gS#)r72VvZQ| z4r4{c_z<^L90c}b){!b~qjnwX;Tq2YsgCq?4GTIS^>QuhNN?Aoj`VSj>!x#P-#WBC zT;q0A9qH#9*G=ca{;owG+0!+)OLb&`Yf(oAx)yb0kZVy#2D=t@WQc1~M~1ob!4<_QAhT3 zE%teT*RY`Xae!-4M-Fr?_IZqJXtel(&DVO2Pt3M1*4x+uF~%uISBv#AcCZ-Z6|=32^)+^g7~>YRt&8np zY@rzA7qjw;^)t3ejB$)vdByr0J5-GEj9Gcb_B56~#x-W;6&qkIdyH?)wk|f%SoRp_ zm~CBbkg@DB-Z9&{*kEJXW87o5b+IAFvd8$xZ0lk}jb)E{fZ5i?_z<_`9`gaSt&8y? zZpl671!h|p<3rq%dn1gs7UM(QQjtC831(Xt<3rq%dwUyeE5?Vor6POG8_ZHI#)r72 z;xK&<%pc5BEyl;TrQ&cg<`HJ87UN^vQgMVB^9i$5i}A5-saPz=yuvKiVti~{DvlIm zeqoksF+R2}6-&gJXPBj0jE`+g#Zocm8)m5%<73-Wv0RLKhgqt{_}I2otN{Bl>&RGa zqjnt`=Niuesg7Xjd)KuST#Gs~(Y2@})vjSd=blM*Xp>#zc2gah;u_aY=fSD2MID*u z8r!8hGTpVPBQso!Ix^F>s3Wsni#jsfwWuR=T#Gt#kZVy#=DNoBmg>kn*P@QhcMS`w z84FzFy8jy=+wQ0sA8Rpwl;WRph}qV~#u+>@VN*fKH3DX!(4r0e`@W5|`;xuEPZK*h4Y@xCB#rW8^R9qmo$k+yAd~91Pe%~;?ze9~}D8|ROrQ$uY!;Ebt#>cj$ z;(f8hjcqK($F`;71F<8FmBjeiwp4s5w%FJvVti~{DlXK19%*b-F+R2}6&Hd1m~~_c zwo$u|EOm|NtyD*rxrPOu&zHLvb!3HWQAdt)jq9d!=+Sj($GFDrraE%0Yg{+gk>gy8 zI&!>gY?tcD39dyQInlMKBPY2Qb>w8%qK=&6TGWx1u0Yz}c?F_mOj4!-9_Axvs_ck@H-O?<42C7W;gGYgo|xxX`uO zmy2ABeZJVWv@XAoEWskKn zJ;o=l<;7MQyG-jbPH`q9)6k|UVWBlV@hEJ zEiZPuvFtHFa4j!(hOz81PjD?ScBZlHF<)>kFLsu(7qu_U8(hnaoo(y|G3F1h<;Bi1 z_DeD55&q(g*ty1D5@SB$8c6IsV=s#_uW$_{cD}LfF~4vPBzA$Z>@m-94J3A!vz#t!q(7u5*p;QXRS8wWuRExE6KfM%SW_+~iu+ zk(*tMI&zC^QAcidE$YZ^uJOI4V{p4`QAh4@4GXFnce=)PQysa>wK#X*?ON24dtAeU zj^DkmMIE`%wWuTayB7QWfNNOL`}m1#u`dt07W@2D*V4MIBbQ*YqUfp^zr{4UD5xdM-H?hl%y(Y%EtSGvRU2ZIUjL(XqO6&?_uWLQVX+_aP>`G&Ah%sI( zik@Ou8Ot8ywxZ}IcD1qWU1O}b*fqwo$2hJi`iNa?EPIS+3^y0M&RF&s*BEXtcD=Fe zF}^E`equKm%O2w#!_CERG?qQaJBFK!-DE6#jC%|>7rWV5_89*dZZ39V7R&1?Z&dl{J?N?u{(@qk9mUO=3;jm%O3Lu!_CF+GL}8& z4ThVG-EAy;%pVLl7rVz;_LxT)ZZ3AOvFtIQFx*`1K4b6b{V}gF++6H_W7%VVVYs>2 z1IDt)Ji~Bvv7Z>r9`g;u&BY!xmObVjhMSB1)EK=VvyME3ZPczK54*;5K&m5;xP}Ft zj~;a`>d0fRMICwEHLjb^p-^o9f6@u5sN|N1k>q>c}&$v0bVo&$#~kKghfo7 zpcsG1Vmy0{Lrj|>_OP++J!0%Yu}6$$k8z1<6T}`hmOaKNrcDrg%vkmqr~Uk+ zW4vP81hFTKWsh--X%obrG?u-mj7=1K%2@Uo$Cx%j>}g}a)wzc8jN#^D<-d@mJEq+IMdW7%VzV@SE!^Tx8rc*l@(v7Z^s9^)QE%Ef+eEPIT93@I1;g|X~0 z4=|)$>;+@*>isbv@K+MWUNn|H<^_h7i~Z7A_Lv_SQZDwAvFtHVFr-}UWnm`@l|F7_K^*<)VeuOy1SW-NQm zFAOOcd)-*}m}eMLF7}48>@nXkh+OPVW7%WgVc59XTgK@9n04fBY@>D^dB-)L15zFN zt!r4&`RHBOqK^E|wWuS%ca7_&bLe|@Xz#nm?WQ{Nfoohh)sYWfi#qZL*Vr!Ak&j%9 zI`Xk=QAa*;E$Yapu0^)=I@hAd za9ZpOW7%VT;O_*AeQ7Lvj1vr;7W>NB?{GeTrD#_?R9+N^|J&gaY1l*>BvHbvRl)L) z4U#C~MJ+CiRo(y9Ac@MnRxu7so4!+CyzqW`(d*Ol;@q#xi*^3^|8h{opkg!*!f@=# z%wk@#pqN!mE-H&b#lWI{u>(49?ND?m#uQ!fe+THpi|S%-F%|#M^Y>s24Tlyl;jwf1 zY`*`d#d&LVZZZ)|jf+ubW%xacvmgH_{gmN#dEEKK<^OI!9gB|N-=${U=PuCGo~QqL zq>7@^_gh1$fHj46ZgSolTxzUV4g9^Q*I>JeV&DBW9QEaY!cRZ#WO_gU6ZZK3-+dfD zZsxoNvnE##8rXh^9e3z3rb~womBXv&POaAIfirA2MLaS}F-0cM1Eb3F%$oUk?HM+U zjX310%!gdjFJoqFhRtzyxOqO|i~{_rJheNZXA|FCM|9#iiFeuEnL-x~}nEn|f<8AE-?Y#16@C-f;w${7uEjn#cMS{ra|N4yM@yg4=B~w`E7-y{uA3gK zVF~BvX*d+T@T823M0{}c7>D@kD8>xH#ibbI5nmm}c;?4NsTkuDUmeBDjcq8#_{3L7 zv4+Mr5@Vd=tD{&WV;hSxUh&mYY&Bz(#Td8v>L}LOSa>z(Ibk&83!z#zv6dyh3Zoid z`ox+VI~{M6M}kKNU;4y&WN>+|_3#VcLa{ZBg~zSuKZ(QG$JacyT+><}rdMGO;A@`P zTE-3)V=iEOVrv`QRE#-+BQI8AthpF-1D}{!Gh^Y^+%skjK6kZT$6AKRmR0yrc_f%e z_^P0m>srh3YQ83#pyg7vT+dpDSFwa)OyTCe2oy>$XIwax6Ta3mkPDq*jk2HvnBHuUoq5@SIf8=rR_0)@fAaC6Jz7V zn8)~vA-1Wp@nXzpe8muJZft@W^BP|<#5OY)9`|gbS~A=5g+nbjx0a*vq4Fp(>+yv{ zYzt$#dx)HgK>yi#l*HWHc707u~Wrb7&}O>$+*Ol^HF>W!dnAkSP4$*!xela_k*tW*Pt9g!MRAa6% zwQOxI!>ienv5uL;)Uu7W46kNOW&mdSQp>j1a)I`YnSfco#M&7V8=EG^Ou;N)VjYZ47h}d?b|kSKjLi^Z=3sUtv5v-Oighw} zwOA)(v&5K5m>o&1v$5G?%qYx`B(|fm>@l-2JCfK=#QiS1@Ad(1@4jwIIASoWBam>o%McVpROW@2_E zv2Mn)#|*{nNMhZM&A~Ba#i@IK&zkk+pUv(OdY<32cE#y|?Iw+9npAOmx`qXvxq7)4 z6{ojrQE~dX#&y%#wr?HU9uxfT^?m}`7*=@<-mEh^3k*P@b)bdBq#inF(C(QY5tqT-Bl z4GTJc`??ktXS8ckarSd9_IZETu%L=_z<0Ft86D_aRGcxcaotpLs<4Pzz7*qC7UKu$ zyudibEMHpZpWX)W(k%bwOUdyG>2(HXH`#=KK=d!&vqh&6x8`te>&$F{&}=mso#e*<*BL&M&b&jb)Efjyb=? z1{lj8qaAa8i48QCJw`p|{1O{vEPIT8%=slY*jV2V!F&i-Fm)KBa*<)5< zUMaD?jAf76fqA9Gh8fG=aAQx34L6oOW(($(5*uMGd(0ZlDBYb<-rF3c+>HriPBm}Qt(N^C!4*<-e0UMaEt zjb)Enhk2#M4ltHIW*_F25Gc zC2e=CZI|9FxXZ_@ks|$RA^T=rWq$h49;xs$j^~UP1(yEBpB8HFEAo`E=AX)oN#B$g z50o{;`1OYWb#qMNp3lFZW2)G~=9uz7DRdY7vZ7&wmH3lK>85|L*)wL(npIud!~e_> z-zAH6Dky1r6@JCnM;^D@#k|ZlET|~(HB!4M<_%qoV&2F#uA8>IS{+(r*T$n=D&|dG zkF!g$48NbYfaAIW3fVh$zu z$Uc?F_{BU)?vZ^W55M5O=N{R|@_1x0K037VAP8C zCEe(3A&=RC;-mG_t<6>P@W#Mic8{;gz~O5$TTtx8((TJ{{hTa@M69 zwGbG5atpn^?Lj*-(sGh}qo4(oM-mU^R>R_Y3zA zFYom?CD(4uW6&PQIaSA~D%-ghRb_kEqN?!Xrgl|9jg=NvrK4+chVJBARF%%IVL=sS zN7v#E&08n6t4bHwqNk7lYq8H=UBiN^%I>a3Rq5th>~nY5 z(z-k^RALc5c63gx#7km64dv;U#AC;Yh&-a$JhM3yjI5AY76P6WOzKwSBY(7Ejzi#SIOSC#@^OzrdyO>%WG}yb@#a5 zU*xqh_J(_8f0ozQ*qiQ={YhRsV{f@f_D6Y)dW;#Q; ztE3x`f0f5=O< z#^AZf^>&xXtijkl_sF`+WA@k}#c26wbc;)DcWK9<#@+!`zf&>Bi&Vf2u+(-FVy@tnRAv!>dWIMES;JIy=R8l^)n`(s)KFx1&^L`_f)}R%O|r zJ+{ZSAudLEJkt##dao2sim_nps&?4j00B zCAb2H53g7WZP@KLYhfp#BKdAA$NKP=5se z-4Xa_-~ahNz3k=ZU%p_wO`Dy5HopJ2`|C};p*5B zVVBcEh4?^@6E0I@;pQalE%+BigEGEtqNhTfK1p+;NrT=1!j1 z>fmv6?Iq?fno~WmSQ9VE9pViO?zp|qjOuxn6RRsHjGHlG!3^6sZj<*$^8JWPEOXz} zU2k+Ikk6OG1Ce6P(Eh#0>@l)`Z-2Kvpbmx|R&>Ta!!E_nShsW06T|e{qbtNN_}2wX zoiX^a6a4ldJ)!l$QXgo&ZBS%iti{2R{MQjfmFj=$k3jtqs6PVrN1*-))E|NRBT#W@JE5vV@`^+%xo2&5yx@2LDv%I~dw9?yQN{4UF9{CuX*@6r6e%J13ye$MaesRw8J zK9BAV_RODOjn{{W_oy|DeTmw_+QHZdh<$z7r>6sK2N?U}bb_&O4g1jWJ2(5p>0hRIcx>&DA>`k zV_?U^j)NT!I{|hg>?GL9uv1_wVW+}QgPjgL19m3tEZEtwb71Gf&V!u~y8w0}>>}93 zuuEW40{CjDC{xV#X_AKl<*z>TT!F~?= z1?&abi?Cn9UV^<0`xWdJ*so!)!hQpL4fZ-hurV_Acyqu;0VpgS`*? z0QMp553rA5AHzO@eG2;w_Bree*q5-cU|+-j2>TQ4&#=G1{tEjW?C-E|VE=%93tI)_ z4XOsPGFUmRA*>N>HCSVq-PgnK)nRME)`YDETN_pZYX(~fwk~Wv*!r*yU>m|Vf^7^d z!8UW@O@&Q^O^3~Z&4kT@&4$f^aacQtug`;VI68-&9}GJLwh*=mb|~yH*x|4v zV2fc#!j{06!j{37!&bnKf*lPz26im$IN0&96JRI8PJ*2bI|a59b}H;N*y*q{U}wV4 zf}IUJ2X-#(JlOfL3t$(*E`nVQy99PA>@wKpuq$9!!mff{4Z8+*E$lkj^{^XYH^Od$ z-3+@0b}Q^Q*zK@8V0Xgqg53?f2X-&)KG^-R2Vg&eJqY_L>>=30ut#8z!XAS?4toOj zBT`MCD_ZbU%_61{TlWv>^HF2V6Vg8fV~NO z3-&hb9oTPS@4|iu`#tPE*!!>#U?0N%0Q(5`G3*oAr?AgppToX@eF^&t_BHH}us^~6 z4Eqc0udu(t{to*F_7B*%uvIV?ehh^wzFoCyRXKh)gf)V#25Ss!0&5B*Ujx6_gslZz z8&&~p23rS4{*OA0di~FT?;|h_R}!;vI)S7rEr zs;&6d*PL4aF)p&S54JuRS2yErKc;8-2mf9d)hlnGzkle87h?P+e;VP+Z2_*TW)|b@ zz4ymam}L7zWj?OIX501FKYQJ6v3;geIqZjSzl?{dS$f4rxaypZt3U2TwS5BrXZy4B N|Hb>a?!Maoe*l-ufUp1n diff --git a/windows.c b/windows.c index 1c38c907..b61613ae 100644 --- a/windows.c +++ b/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 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