Changed all the remaining OEM characters in the source code into Windows-1252.

Except in aide.c, because the strings are printed with an OEM font.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@175 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2008-09-27 22:11:17 +00:00
parent 48fca5ceb3
commit 11a4a488a6
19 changed files with 294 additions and 294 deletions

View File

@ -16,7 +16,7 @@ void Bouton_Choix_backcolor(void);
void Bouton_Brosse_monochrome(void); void Bouton_Brosse_monochrome(void);
void Bouton_Menu_pinceaux(void); void Bouton_Menu_pinceaux(void);
// Boutons relatifs au mode de dessin … main leve // Boutons relatifs au mode de dessin à main levée
void Bouton_Dessin(void); void Bouton_Dessin(void);
void Bouton_Dessin_Switch_mode(void); void Bouton_Dessin_Switch_mode(void);
@ -33,7 +33,7 @@ void Bouton_desenclencher_Fill(void);
void Bouton_Spray(void); void Bouton_Spray(void);
void Bouton_Spray_Menu(void); void Bouton_Spray_Menu(void);
// Courbes de Bzier // Courbes de Bézier
void Bouton_Courbes(void); void Bouton_Courbes(void);
void Bouton_Courbes_Switch_mode(void); void Bouton_Courbes_Switch_mode(void);
@ -41,10 +41,10 @@ void Bouton_Courbes_Switch_mode(void);
void Bouton_Rectangle_vide(void); void Bouton_Rectangle_vide(void);
void Bouton_Rectangle_plein(void); void Bouton_Rectangle_plein(void);
// Boutons relatifs aux dgrads // Boutons relatifs aux dégradés
void Bouton_Degrades(void); void Bouton_Degrades(void);
void Degrade_Charger_infos_du_tableau(int Indice); void Degrade_Charger_infos_du_tableau(int Indice);
// Boutons relatifs aux cercles (ellipses) dgrad(e)s // Boutons relatifs aux cercles (ellipses) dégradé(e)s
void Bouton_Cercle_degrade(void); void Bouton_Cercle_degrade(void);
void Bouton_Ellipse_degrade(void); void Bouton_Ellipse_degrade(void);
@ -102,7 +102,7 @@ void Bouton_desenclencher_Brosse(void);
void Bouton_Lasso(void); void Bouton_Lasso(void);
void Bouton_desenclencher_Lasso(void); void Bouton_desenclencher_Lasso(void);
// Bouton relatifs la pipette // Bouton relatifs à la pipette
void Bouton_Pipette(void); void Bouton_Pipette(void);
void Bouton_desenclencher_Pipette(void); void Bouton_desenclencher_Pipette(void);
void Bouton_Inverser_foreback(void); void Bouton_Inverser_foreback(void);
@ -112,16 +112,16 @@ void Bouton_Loupe(void);
void Bouton_Menu_Loupe(void); void Bouton_Menu_Loupe(void);
void Bouton_desenclencher_Loupe(void); void Bouton_desenclencher_Loupe(void);
// Les diffrents effets sur la brosse // Les différents effets sur la brosse
void Bouton_Brush_FX(void); void Bouton_Brush_FX(void);
// Boutons relatifs aux diffrentes pages // Boutons relatifs aux différentes pages
void Bouton_Page(void); void Bouton_Page(void);
void Bouton_Copy_page(void); void Bouton_Copy_page(void);
void Copier_image_seule(void); void Copier_image_seule(void);
void Bouton_Kill(void); void Bouton_Kill(void);
// Boutons relatifs aux changements de rsolution et de taille d'image // Boutons relatifs aux changements de résolution et de taille d'image
void Bouton_Resol(void); void Bouton_Resol(void);
void Bouton_Safety_resol(void); void Bouton_Safety_resol(void);
@ -131,10 +131,10 @@ void Bouton_Reload(void);
void Bouton_Save(void); void Bouton_Save(void);
void Bouton_Autosave(void); void Bouton_Autosave(void);
// Rglage des paramŠtres de l'utilisateur // Réglage des paramètres de l'utilisateur
void Bouton_Settings(void); void Bouton_Settings(void);
// Annulation de la derniŠre modification // Annulation de la dernière modification
void Bouton_Undo(void); void Bouton_Undo(void);
void Bouton_Redo(void); void Bouton_Redo(void);

View File

@ -79,7 +79,7 @@ enum FORMATS_RECONNUS
FORMAT_PCX, // | GLOBAL.H si on modifie ces cons- FORMAT_PCX, // | GLOBAL.H si on modifie ces cons-
FORMAT_IMG, // |_ tantes. FORMAT_IMG, // |_ tantes.
FORMAT_SCx, // | FORMAT_SCx, // |
FORMAT_PI1, // | Elles représentent l'indice o FORMAT_PI1, // | Elles représentent l'indice où
FORMAT_PC1, // | l'on doit aller piocher ces FORMAT_PC1, // | l'on doit aller piocher ces
FORMAT_CEL, // | données. FORMAT_CEL, // | données.
FORMAT_KCF, // | FORMAT_KCF, // |
@ -192,7 +192,7 @@ enum MODES_VIDEO
enum FAMILLES_DE_BOUTONS enum FAMILLES_DE_BOUTONS
{ {
FAMILLE_OUTIL=1, // Outils de dessin FAMILLE_OUTIL=1, // Outils de dessin
FAMILLE_INTERRUPTION, // Opération éphémŠre FAMILLE_INTERRUPTION, // Opération éphémère
FAMILLE_INSTANTANE, // Pif paf FAMILLE_INSTANTANE, // Pif paf
FAMILLE_TOOLBAR, // Cache/Montre la barre d'outils FAMILLE_TOOLBAR, // Cache/Montre la barre d'outils
FAMILLE_EFFETS // Effets FAMILLE_EFFETS // Effets
@ -241,7 +241,7 @@ enum FORMES_DE_PINCEAUX
FORME_PINCEAU_LOSANGE, FORME_PINCEAU_LOSANGE,
FORME_PINCEAU_ROND_TRAME, FORME_PINCEAU_ROND_TRAME,
FORME_PINCEAU_CARRE_TRAME, FORME_PINCEAU_CARRE_TRAME,
FORME_PINCEAU_DIVERS,// Ce doit être le dernier des types de pinceaux, comme a il indique le nombre de types de pinceaux (-1) FORME_PINCEAU_DIVERS,// Ce doit être le dernier des types de pinceaux, comme ça il indique le nombre de types de pinceaux (-1)
FORME_PINCEAU_POINT, // Utilisé pour réduire de pinceau à 1 point dans certaines opérations FORME_PINCEAU_POINT, // Utilisé pour réduire de pinceau à 1 point dans certaines opérations
FORME_PINCEAU_BROSSE_COULEUR, FORME_PINCEAU_BROSSE_COULEUR,
FORME_PINCEAU_BROSSE_MONOCHROME FORME_PINCEAU_BROSSE_MONOCHROME

View File

@ -349,7 +349,7 @@ byte Lit_pixel_dans_brosse (word X,word Y)
void Clavier_de_depart(void) void Clavier_de_depart(void)
{ {
//SDL_EnableUNICODE(SDL_ENABLE); //SDL_EnableUNICODE(SDL_ENABLE);
//SDL_EnableKeyRepeat(250, 32); // TODO … placer … un meilleur endroit //SDL_EnableKeyRepeat(250, 32); // TODO à placer à un meilleur endroit
} }
void Clavier_americain(void) void Clavier_americain(void)

10
files.c
View File

@ -73,7 +73,7 @@ int Repertoire_existe(char * Repertoire)
int Fichier_existe(char * Fichier) int Fichier_existe(char * Fichier)
// Détermine si un fichier passé en paramŠtre existe ou non dans le // Détermine si un fichier passé en paramètre existe ou non dans le
// répertoire courant. // répertoire courant.
{ {
struct stat buf; struct stat buf;
@ -95,7 +95,7 @@ int Fichier_existe(char * Fichier)
// qu'un findfirst dans le répertoire courant à faire: // qu'un findfirst dans le répertoire courant à faire:
// -- Déstruction de la liste chaŒnée --------------------------------------- // -- Déstruction de la liste chaînée ---------------------------------------
void Detruire_liste_du_fileselect(void) void Detruire_liste_du_fileselect(void)
// Cette procédure détruit la chaine des fichiers. Elle doit être appelée // Cette procédure détruit la chaine des fichiers. Elle doit être appelée
// avant de rappeler la fonction Lire_liste_des_fichiers, ainsi qu'en fin de // avant de rappeler la fonction Lire_liste_des_fichiers, ainsi qu'en fin de
@ -305,7 +305,7 @@ void Trier_la_liste_des_fichiers(void)
{ {
do do
{ {
// Par défaut, on considŠre que la liste est triée // Par défaut, on considère que la liste est triée
La_liste_est_triee=1; La_liste_est_triee=1;
Element_courant=Liste_du_fileselect; Element_courant=Liste_du_fileselect;
@ -340,13 +340,13 @@ void Trier_la_liste_des_fichiers(void)
Element_precedent =Element_courant->Precedent; Element_precedent =Element_courant->Precedent;
Element_suivant_le_suivant=Element_suivant->Suivant; Element_suivant_le_suivant=Element_suivant->Suivant;
// On permute le chaŒnage des deux éléments entree eux // On permute le chaînage des deux éléments entree eux
Element_courant->Suivant =Element_suivant_le_suivant; Element_courant->Suivant =Element_suivant_le_suivant;
Element_courant->Precedent=Element_suivant; Element_courant->Precedent=Element_suivant;
Element_suivant->Suivant =Element_courant; Element_suivant->Suivant =Element_courant;
Element_suivant->Precedent=Element_precedent; Element_suivant->Precedent=Element_precedent;
// On tente un chaŒnage des éléments encapsulant les compŠres: // On tente un chaînage des éléments encapsulant les compères:
if (Element_precedent!=NULL) if (Element_precedent!=NULL)
Element_precedent->Suivant=Element_suivant; Element_precedent->Suivant=Element_suivant;
if (Element_suivant_le_suivant!=NULL) if (Element_suivant_le_suivant!=NULL)

118
global.h
View File

@ -82,7 +82,7 @@ GLOBAL struct S_Mode_video Mode_video[NB_MODES_VIDEO];
GLOBAL struct GLOBAL struct
{ {
byte Granularite; // Facteur de gestion de la granularité byte Granularite; // Facteur de gestion de la granularité
byte Code_fenetres; // Utilisation des fenˆtres: 0=AA 1=BB 2=AB 3=BA byte Code_fenetres; // Utilisation des fenêtres: 0=AA 1=BB 2=AB 3=BA
byte * WinFuncPtr; byte * WinFuncPtr;
byte * Adresse_physique_LFB; // Si = 0 => Pas de LFB byte * Adresse_physique_LFB; // Si = 0 => Pas de LFB
dword Taille_LFB; // Taille de la mémoire LFB dword Taille_LFB; // Taille de la mémoire LFB
@ -124,7 +124,7 @@ GLOBAL byte Autoriser_changement_de_couleur_pendant_operation;
// Données sur le curseur // Données sur le curseur
GLOBAL byte Forme_curseur; GLOBAL byte Forme_curseur;
GLOBAL byte Forme_curseur_avant_fenetre; // Forme du curseur avant l'ouverture d'une fenˆtre GLOBAL byte Forme_curseur_avant_fenetre; // Forme du curseur avant l'ouverture d'une fenêtre
GLOBAL byte Forcer_affichage_curseur; // Forcer l'affichage du curseur au prochain Get_input(); GLOBAL byte Forcer_affichage_curseur; // Forcer l'affichage du curseur au prochain Get_input();
GLOBAL byte Cacher_curseur; GLOBAL byte Cacher_curseur;
GLOBAL byte Curseur_dans_menu; // Booléen "Le curseur se trouve dans le menu" GLOBAL byte Curseur_dans_menu; // Booléen "Le curseur se trouve dans le menu"
@ -157,25 +157,25 @@ GLOBAL short Pinceau_Decalage_Y;
// Commandes graphiques // Commandes graphiques
GLOBAL fonction_afficheur Pixel; // Affiche un point … l'cran GLOBAL fonction_afficheur Pixel; // Affiche un point à l'écran
GLOBAL fonction_afficheur Pixel_dans_menu;// Affiche un point dans le menu (ou pas si le menu est invisible) GLOBAL fonction_afficheur Pixel_dans_menu;// Affiche un point dans le menu (ou pas si le menu est invisible)
GLOBAL fonction_lecteur Lit_pixel; // Teste la couleur d'un pixel dans l'écran GLOBAL fonction_lecteur Lit_pixel; // Teste la couleur d'un pixel dans l'écran
GLOBAL fonction_effaceur Clear_screen; // Efface rapidement tout l'cran (en faisant attention de ne pas effacer le menu) GLOBAL fonction_effaceur Clear_screen; // Efface rapidement tout l'écran (en faisant attention de ne pas effacer le menu)
GLOBAL fonction_display Display_screen; // Affiche rapidement tout l'cran (en faisant attention de ne pas effacer le menu) GLOBAL fonction_display Display_screen; // Affiche rapidement tout l'écran (en faisant attention de ne pas effacer le menu)
GLOBAL fonction_block Block; // Affiche rapidement un bloc … l'cran GLOBAL fonction_block Block; // Affiche rapidement un bloc à l'écran
GLOBAL fonction_block Block_Fast; // Affiche rapidement un bloc … l'cran sans rafraichir GLOBAL fonction_block Block_Fast; // Affiche rapidement un bloc à l'écran sans rafraichir
GLOBAL fonction_afficheur Pixel_Preview_Normal; // Affiche un point de l'image l'écran en mode normal (pas en mode loupe) GLOBAL fonction_afficheur Pixel_Preview_Normal; // Affiche un point de l'image à l'écran en mode normal (pas en mode loupe)
GLOBAL fonction_afficheur Pixel_Preview_Loupe; // Affiche un point de l'image l'écran en mode loupe GLOBAL fonction_afficheur Pixel_Preview_Loupe; // Affiche un point de l'image à l'écran en mode loupe
GLOBAL fonction_afficheur Pixel_Preview; // Affiche un point de l'image l'écran en fonction de l'état du mode loupe GLOBAL fonction_afficheur Pixel_Preview; // Affiche un point de l'image à l'écran en fonction de l'état du mode loupe
GLOBAL fonction_Ligne_XOR Ligne_horizontale_XOR;// Affiche une ligne horizontale en XOR (pour placer la loupe) GLOBAL fonction_Ligne_XOR Ligne_horizontale_XOR;// Affiche une ligne horizontale en XOR (pour placer la loupe)
GLOBAL fonction_Ligne_XOR Ligne_verticale_XOR; // Affiche une ligne verticale en XOR (pour placer la loupe) GLOBAL fonction_Ligne_XOR Ligne_verticale_XOR; // Affiche une ligne verticale en XOR (pour placer la loupe)
GLOBAL fonction_display_brush_Color Display_brush_Color; // Affiche une partie de la brosse en couleur GLOBAL fonction_display_brush_Color Display_brush_Color; // Affiche une partie de la brosse en couleur
GLOBAL fonction_display_brush_Mono Display_brush_Mono; // Affiche une partie de la brosse en monochrome GLOBAL fonction_display_brush_Mono Display_brush_Mono; // Affiche une partie de la brosse en monochrome
GLOBAL fonction_display_brush_Color Clear_brush; // Efface la partie de la brosse affichée l'écran GLOBAL fonction_display_brush_Color Clear_brush; // Efface la partie de la brosse affichée à l'écran
GLOBAL fonction_remap Remap_screen; // Remappe une partie de l'écran avec les nouvelles couleurs du menu GLOBAL fonction_remap Remap_screen; // Remappe une partie de l'écran avec les nouvelles couleurs du menu
GLOBAL fonction_procsline Afficher_ligne; // Afficher une ligne GLOBAL fonction_procsline Afficher_ligne; // Afficher une ligne
GLOBAL fonction_procsline Lire_ligne; // Afficher ou lire une ligne GLOBAL fonction_procsline Lire_ligne; // Afficher ou lire une ligne
GLOBAL fonction_display_zoom Display_zoomed_screen; // Affiche rapidement toute la partie zoomée l'écran (en faisant attention de ne pas effacer le menu) GLOBAL fonction_display_zoom Display_zoomed_screen; // Affiche rapidement toute la partie zoomée à l'écran (en faisant attention de ne pas effacer le menu)
GLOBAL fonction_display_brush_Color_zoom Display_brush_Color_zoom; GLOBAL fonction_display_brush_Color_zoom Display_brush_Color_zoom;
GLOBAL fonction_display_brush_Mono_zoom Display_brush_Mono_zoom; GLOBAL fonction_display_brush_Mono_zoom Display_brush_Mono_zoom;
GLOBAL fonction_display_brush_Color_zoom Clear_brush_zoom; GLOBAL fonction_display_brush_Color_zoom Clear_brush_zoom;
@ -184,7 +184,7 @@ GLOBAL fonction_display_brush_Color_zoom Clear_brush_zoom;
GLOBAL int Resolution_actuelle; // Résolution graphique courante GLOBAL int Resolution_actuelle; // Résolution graphique courante
GLOBAL short Ecran_original_X; // |_ Dimensions de l'écran d'origine de GLOBAL short Ecran_original_X; // |_ Dimensions de l'écran d'origine de
GLOBAL short Ecran_original_Y; // | l'image qui vient d'ˆtre chargée. GLOBAL short Ecran_original_Y; // | l'image qui vient d'être chargée.
GLOBAL short Largeur_ecran; // Largeur de l'écran GLOBAL short Largeur_ecran; // Largeur de l'écran
GLOBAL short Hauteur_ecran; // Hauteur de l'écran GLOBAL short Hauteur_ecran; // Hauteur de l'écran
GLOBAL short Limite_Haut; // | GLOBAL short Limite_Haut; // |
@ -192,13 +192,13 @@ GLOBAL short Limite_Bas; // |_ Limites dans lesquelles
GLOBAL short Limite_Gauche; // | on peut écrire GLOBAL short Limite_Gauche; // | on peut écrire
GLOBAL short Limite_Droite; // | GLOBAL short Limite_Droite; // |
GLOBAL short Limite_visible_Bas; // |_ Derniers points visibles GLOBAL short Limite_visible_Bas; // |_ Derniers points visibles
GLOBAL short Limite_visible_Droite; // | " l'image" GLOBAL short Limite_visible_Droite; // | "à l'image"
GLOBAL short Limite_Haut_Zoom; // | GLOBAL short Limite_Haut_Zoom; // |
GLOBAL short Limite_Bas_Zoom; // |_ Limites dans lesquelles on peut GLOBAL short Limite_Bas_Zoom; // |_ Limites dans lesquelles on peut
GLOBAL short Limite_Gauche_Zoom; // | écrire dans la partie zoomée GLOBAL short Limite_Gauche_Zoom; // | écrire dans la partie zoomée
GLOBAL short Limite_Droite_Zoom; // | GLOBAL short Limite_Droite_Zoom; // |
GLOBAL short Limite_visible_Bas_Zoom; // |_ Derniers points visibles " GLOBAL short Limite_visible_Bas_Zoom; // |_ Derniers points visibles "à
GLOBAL short Limite_visible_Droite_Zoom; // | l'image" dans la partie zoomée GLOBAL short Limite_visible_Droite_Zoom; // | l'image" dans la partie zoomée
GLOBAL byte * Buffer_de_ligne_horizontale; // Buffer d'affichage de lignes GLOBAL byte * Buffer_de_ligne_horizontale; // Buffer d'affichage de lignes
@ -231,7 +231,7 @@ GLOBAL char Principal_Commentaire[TAILLE_COMMENTAIRE+1]; // Commentaire de l'im
GLOBAL short Principal_Split; // Position en X du bord gauche du split de la loupe GLOBAL short Principal_Split; // Position en X du bord gauche du split de la loupe
GLOBAL short Principal_X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe GLOBAL short Principal_X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe
GLOBAL float Principal_Proportion_split; // Proportion de la zone non-zoomée par rapport l'écran GLOBAL float Principal_Proportion_split; // Proportion de la zone non-zoomée par rapport à l'écran
// Données sur le brouillon: // Données sur le brouillon:
@ -257,16 +257,16 @@ GLOBAL char Brouillon_Commentaire[TAILLE_COMMENTAIRE+1]; // Commentaire de l'im
GLOBAL short Brouillon_Split; // Position en X du bord gauche du split de la loupe GLOBAL short Brouillon_Split; // Position en X du bord gauche du split de la loupe
GLOBAL short Brouillon_X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe GLOBAL short Brouillon_X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe
GLOBAL float Brouillon_Proportion_split; // Proportion de la zone non-zoomée par rapport l'écran GLOBAL float Brouillon_Proportion_split; // Proportion de la zone non-zoomée par rapport à l'écran
GLOBAL byte Brouillon_Loupe_Mode; // On est en mode loupe dans le brouillon GLOBAL byte Brouillon_Loupe_Mode; // On est en mode loupe dans le brouillon
GLOBAL word Brouillon_Loupe_Facteur; // Facteur de zoom dans le brouillon GLOBAL word Brouillon_Loupe_Facteur; // Facteur de zoom dans le brouillon
GLOBAL word Brouillon_Loupe_Hauteur; // Largeur de la fenˆtre de zoom dans le brouillon GLOBAL word Brouillon_Loupe_Hauteur; // Largeur de la fenêtre de zoom dans le brouillon
GLOBAL word Brouillon_Loupe_Largeur; // Hauteur de la fenˆtre de zoom dans le brouillon GLOBAL word Brouillon_Loupe_Largeur; // Hauteur de la fenêtre de zoom dans le brouillon
GLOBAL short Brouillon_Loupe_Decalage_X;// Decalage horizontal de la fenˆtre de zoom dans le brouillon GLOBAL short Brouillon_Loupe_Decalage_X;// Decalage horizontal de la fenêtre de zoom dans le brouillon
GLOBAL short Brouillon_Loupe_Decalage_Y;// Decalage vertical de la fenˆtre de zoom dans le brouillon GLOBAL short Brouillon_Loupe_Decalage_Y;// Decalage vertical de la fenêtre de zoom dans le brouillon
GLOBAL byte Masque_copie_couleurs[256]; // Tableau des couleurs copier vers le brouillon GLOBAL byte Masque_copie_couleurs[256]; // Tableau des couleurs à copier vers le brouillon
// Sauvegarde de l'image: // Sauvegarde de l'image:
@ -298,26 +298,26 @@ GLOBAL short Brosse_Centre_rotation_Y; // | de la brosse
// Données sur le menu // Données sur le menu
GLOBAL byte Menu_visible; // Le menu est actif l'écran GLOBAL byte Menu_visible; // Le menu est actif à l'écran
GLOBAL word Menu_Ordonnee; // Ordonnée o commence le menu GLOBAL word Menu_Ordonnee; // Ordonnée où commence le menu
GLOBAL word Menu_Ordonnee_Texte; // Ordonnée o commence le texte dans le menu GLOBAL word Menu_Ordonnee_Texte; // Ordonnée où commence le texte dans le menu
GLOBAL word Menu_Facteur_X; // Facteur de grossissement du menu en X GLOBAL word Menu_Facteur_X; // Facteur de grossissement du menu en X
GLOBAL word Menu_Facteur_Y; // Facteur de grossissement du menu en Y GLOBAL word Menu_Facteur_Y; // Facteur de grossissement du menu en Y
GLOBAL word Menu_Taille_couleur; // Taille d'une couleur de la palette du menu GLOBAL word Menu_Taille_couleur; // Taille d'une couleur de la palette du menu
// Données sur la fenˆtre de menu // Données sur la fenêtre de menu
GLOBAL byte Une_fenetre_est_ouverte; GLOBAL byte Une_fenetre_est_ouverte;
GLOBAL word Fenetre_Pos_X; // Position du bord gauche de la fenˆtre dans l'écran GLOBAL word Fenetre_Pos_X; // Position du bord gauche de la fenêtre dans l'écran
GLOBAL word Fenetre_Pos_Y; // Position du bord haut de la fenˆtre dans l'écran GLOBAL word Fenetre_Pos_Y; // Position du bord haut de la fenêtre dans l'écran
GLOBAL word Fenetre_Largeur; // Largeur de la fenˆtre GLOBAL word Fenetre_Largeur; // Largeur de la fenêtre
GLOBAL word Fenetre_Hauteur; // Hauteur de la fenˆtre GLOBAL word Fenetre_Hauteur; // Hauteur de la fenêtre
GLOBAL byte Menu_visible_avant_fenetre; // Le menu était visible avant d'ouvir une fenˆtre GLOBAL byte Menu_visible_avant_fenetre; // Le menu était visible avant d'ouvir une fenêtre
GLOBAL word Menu_Ordonnee_avant_fenetre; // Ordonnée du menu avant d'ouvrir une fenˆtre GLOBAL word Menu_Ordonnee_avant_fenetre; // Ordonnée du menu avant d'ouvrir une fenêtre
GLOBAL byte Cacher_pinceau_avant_fenetre;// Le pinceau étatit déj caché avant l'ouverture de la fenetre? GLOBAL byte Cacher_pinceau_avant_fenetre;// Le pinceau étatit déjà caché avant l'ouverture de la fenetre?
GLOBAL word Nb_boutons_fenetre; GLOBAL word Nb_boutons_fenetre;
GLOBAL struct Fenetre_Bouton_normal * Fenetre_Liste_boutons_normal; GLOBAL struct Fenetre_Bouton_normal * Fenetre_Liste_boutons_normal;
@ -335,7 +335,7 @@ GLOBAL int Fenetre_Attribut2;
GLOBAL struct GLOBAL struct
{ {
// Informations sur l'aspect du bouton (graphisme): // Informations sur l'aspect du bouton (graphisme):
word Decalage_X; // Décalage par rapport la gauche du menu word Decalage_X; // Décalage par rapport à la gauche du menu
word Decalage_Y; // Décalage par rapport au haut du menu word Decalage_Y; // Décalage par rapport au haut du menu
word Largeur; // Largeur du bouton word Largeur; // Largeur du bouton
word Hauteur; // Hauteur du bouton word Hauteur; // Hauteur du bouton
@ -345,8 +345,8 @@ GLOBAL struct
// Information sur les clicks de la souris: // Information sur les clicks de la souris:
fonction_action Gauche; // Action déclenchée par un click gauche sur le bouton fonction_action Gauche; // Action déclenchée par un click gauche sur le bouton
fonction_action Droite; // Action déclenchée par un click droit sur le bouton fonction_action Droite; // Action déclenchée par un click droit sur le bouton
word Raccourci_gauche; // Raccourci clavier équivalent un click gauche sur le bouton word Raccourci_gauche; // Raccourci clavier équivalent à un click gauche sur le bouton
word Raccourci_droite; // Raccourci clavier équivalent un click droit sur le bouton word Raccourci_droite; // Raccourci clavier équivalent à un click droit sur le bouton
// Informations sur le désenclenchement du bouton géré par le moteur: // Informations sur le désenclenchement du bouton géré par le moteur:
fonction_action Desenclencher; // Action appelée lors du désenclenchement du bouton fonction_action Desenclencher; // Action appelée lors du désenclenchement du bouton
@ -362,7 +362,7 @@ GLOBAL fonction_effet Fonction_effet;
GLOBAL byte * FX_Feedback_Ecran; GLOBAL byte * FX_Feedback_Ecran;
GLOBAL byte Exclude_color[256]; // Couleurs exclure pour Meilleure_couleur GLOBAL byte Exclude_color[256]; // Couleurs à exclure pour Meilleure_couleur
// Mode smear: // Mode smear:
@ -396,7 +396,7 @@ GLOBAL byte Stencil[256]; // Tableau des couleurs prot
GLOBAL byte Snap_Mode; // Le mode grille est enclenché GLOBAL byte Snap_Mode; // Le mode grille est enclenché
GLOBAL short Snap_Largeur; // Largeur entre 2 points de la grille GLOBAL short Snap_Largeur; // Largeur entre 2 points de la grille
GLOBAL short Snap_Hauteur; // Hauteur entre 2 points de la grille GLOBAL short Snap_Hauteur; // Hauteur entre 2 points de la grille
GLOBAL short Snap_Decalage_X; // Position en X du point le + gauche GLOBAL short Snap_Decalage_X; // Position en X du point le + à gauche
GLOBAL short Snap_Decalage_Y; // Position en Y du point le + en haut GLOBAL short Snap_Decalage_Y; // Position en Y du point le + en haut
// Mode trame: // Mode trame:
@ -467,7 +467,7 @@ GLOBAL short Degrade_Borne_Inferieure; // Plus petite couleur englob
GLOBAL short Degrade_Borne_Superieure; // Plus grande couleur englobée par le dégradé GLOBAL short Degrade_Borne_Superieure; // Plus grande couleur englobée par le dégradé
GLOBAL int Degrade_Inverse; // Booléen "Le dégradé est en réalité inversé" GLOBAL int Degrade_Inverse; // Booléen "Le dégradé est en réalité inversé"
GLOBAL long Degrade_Intervalle_bornes; // = Abs(Degrade_Borne_Inferieure-Degrade_Borne_Superieure)+1 GLOBAL long Degrade_Intervalle_bornes; // = Abs(Degrade_Borne_Inferieure-Degrade_Borne_Superieure)+1
GLOBAL long Degrade_Intervalle_total; // Valeur maximum des indices passés la fonction de dégradé (!!! >0 !!!) GLOBAL long Degrade_Intervalle_total; // Valeur maximum des indices passés à la fonction de dégradé (!!! >0 !!!)
GLOBAL long Degrade_Melange_aleatoire; // Facteur de mélange (1-256+) du dégradé GLOBAL long Degrade_Melange_aleatoire; // Facteur de mélange (1-256+) du dégradé
GLOBAL fonction_degrade Traiter_degrade; // Fonction de traitement du dégradé, varie selon la méthode choisie par l'utilisateur. GLOBAL fonction_degrade Traiter_degrade; // Fonction de traitement du dégradé, varie selon la méthode choisie par l'utilisateur.
GLOBAL fonction_afficheur Traiter_pixel_de_degrade; // Redirection de l'affichage GLOBAL fonction_afficheur Traiter_pixel_de_degrade; // Redirection de l'affichage
@ -480,9 +480,9 @@ GLOBAL int Degrade_Courant; // Indice du tableau correspondant au d
// Données sur le Spray: // Données sur le Spray:
GLOBAL byte Spray_Mode; // Mode Mono(1) ou Multicolore(0) GLOBAL byte Spray_Mode; // Mode Mono(1) ou Multicolore(0)
GLOBAL short Spray_Size; // DiamŠtre du spray en pixels GLOBAL short Spray_Size; // Diamètre du spray en pixels
GLOBAL byte Spray_Delay; // Délai en VBLs entre 2 "pschiitt" GLOBAL byte Spray_Delay; // Délai en VBLs entre 2 "pschiitt"
GLOBAL byte Spray_Mono_flow; // Nombre de pixels qui sortent en mˆme temps en mono GLOBAL byte Spray_Mono_flow; // Nombre de pixels qui sortent en même temps en mono
GLOBAL byte Spray_Multi_flow[256]; // Idem pour chaque couleur GLOBAL byte Spray_Multi_flow[256]; // Idem pour chaque couleur
@ -490,7 +490,7 @@ GLOBAL byte Spray_Multi_flow[256]; // Idem pour chaque couleur
GLOBAL byte Sortir_du_programme; GLOBAL byte Sortir_du_programme;
GLOBAL char Repertoire_du_programme[256]; // Répertoire dans lequel se trouve le programme GLOBAL char Repertoire_du_programme[256]; // Répertoire dans lequel se trouve le programme
GLOBAL char Repertoire_initial[256]; // Répertoire … partir duquel … été lancé le programme GLOBAL char Repertoire_initial[256]; // Répertoire à partir duquel à été lancé le programme
GLOBAL byte Fore_color; GLOBAL byte Fore_color;
GLOBAL byte Back_color; GLOBAL byte Back_color;
GLOBAL byte Mode_de_dessin_en_cours; GLOBAL byte Mode_de_dessin_en_cours;
@ -498,7 +498,7 @@ GLOBAL byte Courbe_en_cours;
GLOBAL byte Ligne_en_cours; GLOBAL byte Ligne_en_cours;
GLOBAL byte Couleur_debut_palette; GLOBAL byte Couleur_debut_palette;
GLOBAL byte Un_fichier_a_ete_passe_en_parametre; GLOBAL byte Un_fichier_a_ete_passe_en_parametre;
GLOBAL byte Une_resolution_a_ete_passee_en_parametre; // utilisée uniquement si la variable précédente est 1 GLOBAL byte Une_resolution_a_ete_passee_en_parametre; // utilisée uniquement si la variable précédente est à 1
// Variables concernant l'OBJ DIVERS // Variables concernant l'OBJ DIVERS
@ -527,7 +527,7 @@ GLOBAL byte * VESA_WinFuncPtr; // Handler software de changement de banque
GLOBAL word * VESA_Liste_des_modes; GLOBAL word * VESA_Liste_des_modes;
GLOBAL dword VESA_Decalage_synchro; GLOBAL dword VESA_Decalage_synchro;
GLOBAL word VESA_Largeur_ecran_en_dword; GLOBAL word VESA_Largeur_ecran_en_dword;
GLOBAL byte VESA_Banque_en_cours; // Variable normalement locale VIDEO.ASM GLOBAL byte VESA_Banque_en_cours; // Variable normalement locale à VIDEO.ASM
GLOBAL byte VESA_Derniere_banque_Fenetre_A_utilisee; GLOBAL byte VESA_Derniere_banque_Fenetre_A_utilisee;
GLOBAL byte VESA_Derniere_banque_Fenetre_B_utilisee; GLOBAL byte VESA_Derniere_banque_Fenetre_B_utilisee;
GLOBAL fonction_action VESA_Change_banque_lecture; GLOBAL fonction_action VESA_Change_banque_lecture;
@ -572,9 +572,9 @@ GLOBAL short Pipette_Y;
#ifdef VARIABLES_GLOBALES #ifdef VARIABLES_GLOBALES
byte CURSEUR_D_OPERATION[NB_OPERATIONS]= byte CURSEUR_D_OPERATION[NB_OPERATIONS]=
{ {
FORME_CURSEUR_CIBLE , // Dessin la main continu FORME_CURSEUR_CIBLE , // Dessin à la main continu
FORME_CURSEUR_CIBLE , // Dessin la main discontinu FORME_CURSEUR_CIBLE , // Dessin à la main discontinu
FORME_CURSEUR_CIBLE , // Dessin la main point par point FORME_CURSEUR_CIBLE , // Dessin à la main point par point
FORME_CURSEUR_CIBLE , // Lignes FORME_CURSEUR_CIBLE , // Lignes
FORME_CURSEUR_CIBLE , // Lignes reliées FORME_CURSEUR_CIBLE , // Lignes reliées
FORME_CURSEUR_CIBLE , // Lignes centrées FORME_CURSEUR_CIBLE , // Lignes centrées
@ -589,9 +589,9 @@ GLOBAL short Pipette_Y;
FORME_CURSEUR_CIBLE_XOR , // Prise de brosse rectangulaire FORME_CURSEUR_CIBLE_XOR , // Prise de brosse rectangulaire
FORME_CURSEUR_CIBLE , // Prise d'une brosse multiforme FORME_CURSEUR_CIBLE , // Prise d'une brosse multiforme
FORME_CURSEUR_CIBLE_PIPETTE , // Récupération d'une couleur FORME_CURSEUR_CIBLE_PIPETTE , // Récupération d'une couleur
FORME_CURSEUR_RECTANGLE_XOR , // Positionnement de la fenˆtre de loupe FORME_CURSEUR_RECTANGLE_XOR , // Positionnement de la fenêtre de loupe
FORME_CURSEUR_CIBLE , // Courbe 3 points FORME_CURSEUR_CIBLE , // Courbe à 3 points
FORME_CURSEUR_CIBLE , // Courbe 4 points FORME_CURSEUR_CIBLE , // Courbe à 4 points
FORME_CURSEUR_CIBLE , // Spray FORME_CURSEUR_CIBLE , // Spray
FORME_CURSEUR_CIBLE , // Polygone FORME_CURSEUR_CIBLE , // Polygone
FORME_CURSEUR_CIBLE , // Polyforme FORME_CURSEUR_CIBLE , // Polyforme
@ -609,7 +609,7 @@ GLOBAL short Pipette_Y;
#endif #endif
// Procédures appeler: Opération,Mouse_K,Etat de la pile // Procédures à appeler: Opération,Mouse_K,Etat de la pile
GLOBAL struct GLOBAL struct
{ {
@ -632,7 +632,7 @@ GLOBAL byte SPRITE_DRIVE[NB_SPRITES_DRIVES][HAUTEUR_SPRITE_DRIVE][LARGEUR_SPRITE
GLOBAL short Liste_Nb_elements; GLOBAL short Liste_Nb_elements;
GLOBAL short Liste_Nb_fichiers; GLOBAL short Liste_Nb_fichiers;
GLOBAL short Liste_Nb_repertoires; GLOBAL short Liste_Nb_repertoires;
// Tˆte de la liste chaŒnée: // Tête de la liste chaînée:
GLOBAL struct Element_de_liste_de_fileselect * Liste_du_fileselect; GLOBAL struct Element_de_liste_de_fileselect * Liste_du_fileselect;
// ------------------- Inititialisation des formats connus ------------------- // ------------------- Inititialisation des formats connus -------------------
@ -658,7 +658,7 @@ void Rien_du_tout(void);
"pal" // PAL "pal" // PAL
}; };
// Fonction appeler pour vérifier la signature du fichier // Fonction à appeler pour vérifier la signature du fichier
fonction_action Format_Test[NB_FORMATS_LOAD]= fonction_action Format_Test[NB_FORMATS_LOAD]=
{ {
Test_PKM, // PKM Test_PKM, // PKM
@ -675,7 +675,7 @@ void Rien_du_tout(void);
Test_PAL // PAL Test_PAL // PAL
}; };
// Fonction appeler pour charger l'image // Fonction à appeler pour charger l'image
fonction_action Format_Load[NB_FORMATS_LOAD]= fonction_action Format_Load[NB_FORMATS_LOAD]=
{ {
Load_PKM, // PKM Load_PKM, // PKM
@ -692,7 +692,7 @@ void Rien_du_tout(void);
Load_PAL // PAL Load_PAL // PAL
}; };
// Fonction appeler pour sauvegarder l'image // Fonction à appeler pour sauvegarder l'image
fonction_action Format_Save[NB_FORMATS_SAVE]= fonction_action Format_Save[NB_FORMATS_SAVE]=
{ {
Save_PKM, // PKM Save_PKM, // PKM
@ -751,9 +751,9 @@ void Rien_du_tout(void);
extern byte Format_Commentaire[NB_FORMATS_CONNUS]; extern byte Format_Commentaire[NB_FORMATS_CONNUS];
#endif #endif
GLOBAL signed char Erreur_fichier; // 0: opration I/O OK GLOBAL signed char Erreur_fichier; // 0: opération I/O OK
// 1: Erreur dŠs le dbut de l'opration // 1: Erreur dès le début de l'opération
// 2: Erreur durant l'opration => donnes modifies // 2: Erreur durant l'opération => données modifiées
//-1: Interruption du chargement d'une preview //-1: Interruption du chargement d'une preview
GLOBAL int Ligne_INI; GLOBAL int Ligne_INI;
@ -762,7 +762,7 @@ GLOBAL fonction_afficheur Pixel_de_chargement;
GLOBAL fonction_lecteur Lit_pixel_de_sauvegarde; GLOBAL fonction_lecteur Lit_pixel_de_sauvegarde;
/******************** /********************
* Spcifique SDL * * Spécifique à SDL *
********************/ ********************/
GLOBAL SDL_Surface * Ecran_SDL; GLOBAL SDL_Surface * Ecran_SDL;
#endif #endif

48
graph.c
View File

@ -331,7 +331,7 @@ void Remapper_ecran_apres_changement_couleurs_menu(void)
Afficher_palette_du_menu_en_evitant_la_fenetre(Table_de_conversion); Afficher_palette_du_menu_en_evitant_la_fenetre(Table_de_conversion);
} }
/* /*
Il faudrait peut-ˆtre remapper les pointillés délimitant l'image. Il faudrait peut-être remapper les pointillés délimitant l'image.
Mais ça va être chiant parce qu'ils peuvent être affichés en mode Loupe. Mais ça va être chiant parce qu'ils peuvent être affichés en mode Loupe.
Mais de toutes façons, c'est franchement facultatif... Mais de toutes façons, c'est franchement facultatif...
*/ */
@ -1047,7 +1047,7 @@ void Pixel_dans_fenetre(word X,word Y,byte Couleur)
} }
// -- Affichages de différents cƒdres dans une fenêtre ----------------------- // -- Affichages de différents cadres dans une fenêtre -----------------------
// -- Cadre général avec couleurs paramètrables -- // -- Cadre général avec couleurs paramètrables --
@ -3189,11 +3189,11 @@ void Redimentionner_image(word Largeur_choisie,word Hauteur_choisie)
word Ancienne_largeur=Principal_Largeur_image; word Ancienne_largeur=Principal_Largeur_image;
word Ancienne_hauteur=Principal_Hauteur_image; word Ancienne_hauteur=Principal_Hauteur_image;
// ÚÄÂÄ¿ // +-+-+
// ³C³ ³ A+B+C = Ancienne image // |C| | A+B+C = Ancienne image
// ÃÄ´ // +-+A|
// ³B³ ³ C = Nouvelle image // |B| | C = Nouvelle image
// ÀÄÁÄÙ // +-+-+
if (Backup_avec_nouvelles_dimensions(1,Largeur_choisie,Hauteur_choisie)) if (Backup_avec_nouvelles_dimensions(1,Largeur_choisie,Hauteur_choisie))
{ {
@ -3382,7 +3382,7 @@ void Remap_brosse(void)
// On va maintenant se servir de la table "Utilisee" comme table de // On va maintenant se servir de la table "Utilisee" comme table de
// conversion: pour chaque indice, la table donne une couleur de // conversion: pour chaque indice, la table donne une couleur de
// remplacement. // remplacement.
// Note : Seules les couleurs utilisées on besoin d'ˆtres recalculées: les // Note : Seules les couleurs utilisées on besoin d'êtres recalculées: les
// autres ne seront jamais consultées dans la nouvelle table de // autres ne seront jamais consultées dans la nouvelle table de
// conversion puisque elles n'existent pas dans la brosse, donc elles // conversion puisque elles n'existent pas dans la brosse, donc elles
// ne seront pas utilisées par Remap_brush_LOWLEVEL. // ne seront pas utilisées par Remap_brush_LOWLEVEL.
@ -3427,7 +3427,7 @@ void Remap_picture(void)
// On va maintenant se servir de la table "Utilisee" comme table de // On va maintenant se servir de la table "Utilisee" comme table de
// conversion: pour chaque indice, la table donne une couleur de // conversion: pour chaque indice, la table donne une couleur de
// remplacement. // remplacement.
// Note : Seules les couleurs utilisées on besoin d'ˆtres recalculées: les // Note : Seules les couleurs utilisées on besoin d'êtres recalculées: les
// autres ne seront jamais consultées dans la nouvelle table de // autres ne seront jamais consultées dans la nouvelle table de
// conversion puisque elles n'existent pas dans l'image, donc elles // conversion puisque elles n'existent pas dans l'image, donc elles
// ne seront pas utilisées par Remap_general_LOWLEVEL. // ne seront pas utilisées par Remap_general_LOWLEVEL.
@ -3726,7 +3726,7 @@ void Fill(short * Limite_atteinte_Haut , short * Limite_atteinte_Bas,
// l'image. Les limites employées sont Limite_Haut, Limite_Bas, Limite_Gauche // l'image. Les limites employées sont Limite_Haut, Limite_Bas, Limite_Gauche
// et Limite_Droite. Le point de départ du remplissage est Pinceau_X,Pinceau_Y // et Limite_Droite. Le point de départ du remplissage est Pinceau_X,Pinceau_Y
// et s'effectue en théorie sur la couleur 1 et emploie la couleur 2 pour le // et s'effectue en théorie sur la couleur 1 et emploie la couleur 2 pour le
// remplissage. Ces restrictions sont des à l'utilisation qu'on en fait dans // remplissage. Ces restrictions sont dûes à l'utilisation qu'on en fait dans
// la fonction principale "Remplir", qui se charge de faire une gestion de // la fonction principale "Remplir", qui se charge de faire une gestion de
// tous les effets. // tous les effets.
// Cette fonction ne doit pas être directement appelée. // Cette fonction ne doit pas être directement appelée.
@ -4751,12 +4751,12 @@ void Degrade_de_trames_simples(long Indice,short Pos_X,short Pos_Y)
// dans cette procédure par "Position_dans_degrade", on calcule la position // dans cette procédure par "Position_dans_degrade", on calcule la position
// de l'indice dans le schéma suivant: // de l'indice dans le schéma suivant:
// //
// Ú Les indices qui traînent de ce c“té du segment se voient subir // | Les indices qui traînent de ce côté du segment se voient subir
// ³ une incrémentation conditionnelle à leur position dans l'écran. // | une incrémentation conditionnelle à leur position dans l'écran.
// v // v
// ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄúúú ú ú // |---|---|---|---- - - -
// ^ // ^
// ÀÄ Les indices qui traînent de ce c“té du segment se voient subir une // |_ Les indices qui traînent de ce côté du segment se voient subir une
// décrémentation conditionnelle à leur position dans l'écran. // décrémentation conditionnelle à leur position dans l'écran.
// On fait d'abord un premier calcul partiel // On fait d'abord un premier calcul partiel
@ -4789,7 +4789,7 @@ void Degrade_de_trames_simples(long Indice,short Pos_X,short Pos_Y)
// suffisament au centre du segment pour ne pas avoir à subir la trame // suffisament au centre du segment pour ne pas avoir à subir la trame
case 3 : // On est sur la droite du segment case 3 : // On est sur la droite du segment
if (((Pos_X+Pos_Y)&1)!=0) // Note: on doit faire le test inverse au cas gauche pour synchroniser les 2 ctés de la trame. if (((Pos_X+Pos_Y)&1)!=0) // Note: on doit faire le test inverse au cas gauche pour synchroniser les 2 côtés de la trame.
Position_dans_degrade++; Position_dans_degrade++;
} }
@ -4818,17 +4818,17 @@ void Degrade_de_trames_etendues(long Indice,short Pos_X,short Pos_Y)
long Position_dans_degrade; long Position_dans_degrade;
long Position_dans_segment; long Position_dans_segment;
// //
// But de l'opération: en plus de calculer la position de base (désignée // But de l'opération: en plus de calculer la position de base (désignée
// dans cette procédure par "Position_dans_degrade", on calcule la position // dans cette procédure par "Position_dans_degrade", on calcule la position
// de l'indice dans le schéma suivant: // de l'indice dans le schéma suivant:
// //
// Ú Les indices qui traînent de ce c“té du segment se voient subir // | Les indices qui traînent de ce côté du segment se voient subir
// ³ une incrémentation conditionnelle à leur position dans l'écran. // | une incrémentation conditionnelle à leur position dans l'écran.
// v // v
// ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄúúú ú ú // |---|---|---|---- - - -
// ^ // ^
// ÀÄ Les indices qui traînent de ce c“té du segment se voient subir une // |_ Les indices qui traînent de ce côté du segment se voient subir une
// décrémentation conditionnelle à leur position dans l'écran. // décrémentation conditionnelle à leur position dans l'écran.
// On fait d'abord un premier calcul partiel // On fait d'abord un premier calcul partiel
@ -4873,7 +4873,7 @@ void Degrade_de_trames_etendues(long Indice,short Pos_X,short Pos_Y)
break; break;
case 7 : // On est sur l'extreme droite du segment case 7 : // On est sur l'extreme droite du segment
if (((Pos_X+Pos_Y)&1)!=0) // Note: on doit faire le test inverse au cas gauche pour synchroniser les 2 ctés de la trame. if (((Pos_X+Pos_Y)&1)!=0) // Note: on doit faire le test inverse au cas gauche pour synchroniser les 2 côtés de la trame.
Position_dans_degrade++; Position_dans_degrade++;
} }
@ -5029,7 +5029,7 @@ void Tracer_ellipse_degradee(short Centre_X,short Centre_Y,short Rayon_horizonta
// -- Tracer un polygne plein -- // -- Tracer un polygône plein --
typedef struct POLYGON_EDGE /* an active edge */ typedef struct POLYGON_EDGE /* an active edge */
{ {
@ -5512,7 +5512,7 @@ void Etirer_brosse(short X1, short Y1, short X2, short Y2)
else else
{ {
// Ici la libération de mémoire n'a pas suffit donc on remet dans l'état // Ici la libération de mémoire n'a pas suffit donc on remet dans l'état
// o c'etait avant. On a juste à réallouer la Smear_Brosse car il y a // où c'etait avant. On a juste à réallouer la Smear_Brosse car il y a
// normalement la place pour elle puisque rien d'autre n'a pu être alloué // normalement la place pour elle puisque rien d'autre n'a pu être alloué
// entre temps. // entre temps.
Smear_Brosse=(byte *)malloc(((long)Smear_Brosse_Hauteur)*Smear_Brosse_Largeur); Smear_Brosse=(byte *)malloc(((long)Smear_Brosse_Hauteur)*Smear_Brosse_Largeur);
@ -5907,7 +5907,7 @@ void Tourner_brosse(float Angle)
else else
{ {
// Ici la libération de mémoire n'a pas suffit donc on remet dans l'état // Ici la libération de mémoire n'a pas suffit donc on remet dans l'état
// o c'etait avant. On a juste à réallouer la Smear_Brosse car il y a // où c'etait avant. On a juste à réallouer la Smear_Brosse car il y a
// normalement la place pour elle puisque rien d'autre n'a pu être alloué // normalement la place pour elle puisque rien d'autre n'a pu être alloué
// entre temps. // entre temps.
Smear_Brosse=(byte *)malloc(((long)Smear_Brosse_Hauteur)*Smear_Brosse_Largeur); Smear_Brosse=(byte *)malloc(((long)Smear_Brosse_Hauteur)*Smear_Brosse_Largeur);

2
init.c
View File

@ -273,7 +273,7 @@ void Charger_DAT(void)
if (!(Fonte_temporaire=(byte *)malloc(2048))) if (!(Fonte_temporaire=(byte *)malloc(2048)))
Erreur(ERREUR_MEMOIRE); Erreur(ERREUR_MEMOIRE);
// Lecture de la fonte systŠme // Lecture de la fonte système
if (fread(Fonte_temporaire,1,2048,Handle)!=2048) if (fread(Fonte_temporaire,1,2048,Handle)!=2048)
Erreur(ERREUR_DAT_CORROMPU); Erreur(ERREUR_DAT_CORROMPU);
for (Indice=0;Indice<256;Indice++) for (Indice=0;Indice<256;Indice++)

View File

@ -192,7 +192,7 @@ void Initialiser_preview_24b(int Largeur,int Hauteur)
{ {
// Afficher un message d'erreur // Afficher un message d'erreur
// Pour être sr que ce soit lisible. // Pour être sûr que ce soit lisible.
Calculer_couleurs_menu_optimales(Principal_Palette); Calculer_couleurs_menu_optimales(Principal_Palette);
Message_Memoire_insuffisante(); Message_Memoire_insuffisante();
if (Pixel_de_chargement==Pixel_Chargement_dans_ecran_courant) if (Pixel_de_chargement==Pixel_Chargement_dans_ecran_courant)
@ -212,7 +212,7 @@ void Initialiser_preview(short Largeur,short Hauteur,long Taille,int Format)
// //
// Cette procédure doit être appelée par les routines de chargement // Cette procédure doit être appelée par les routines de chargement
// d'images. // d'images.
// Elle doit être appelée entre le moment o l'on connait la dimension de // Elle doit être appelée entre le moment où l'on connait la dimension de
// l'image (dimension réelle, pas dimension tronquée) et l'affichage du // l'image (dimension réelle, pas dimension tronquée) et l'affichage du
// premier point. // premier point.
// //
@ -257,7 +257,7 @@ void Initialiser_preview(short Largeur,short Hauteur,long Taille,int Format)
} }
else else
{ {
// Le fichier fait plus de 10 Giga octets (cas trŠs rare :)) // Le fichier fait plus de 10 Giga octets (cas très rare :))
Print_dans_fenetre(226,63,"TOO BIG!!",CM_Noir,CM_Clair); Print_dans_fenetre(226,63,"TOO BIG!!",CM_Noir,CM_Clair);
} }
@ -289,7 +289,7 @@ void Initialiser_preview(short Largeur,short Hauteur,long Taille,int Format)
Preview_Pos_X=Fenetre_Pos_X+180*Menu_Facteur_X; Preview_Pos_X=Fenetre_Pos_X+180*Menu_Facteur_X;
Preview_Pos_Y=Fenetre_Pos_Y+ (89+FILENAMESPACE)*Menu_Facteur_Y; Preview_Pos_Y=Fenetre_Pos_Y+ (89+FILENAMESPACE)*Menu_Facteur_Y;
// On nettoie la zone o va s'afficher la preview: // On nettoie la zone où va s'afficher la preview:
Block(Preview_Pos_X,Preview_Pos_Y, Block(Preview_Pos_X,Preview_Pos_Y,
Round_div_max(Largeur,Preview_Facteur_X), Round_div_max(Largeur,Preview_Facteur_X),
Round_div_max(Hauteur,Preview_Facteur_Y), Round_div_max(Hauteur,Preview_Facteur_Y),
@ -303,13 +303,13 @@ void Initialiser_preview(short Largeur,short Hauteur,long Taille,int Format)
{ {
// La nouvelle page a pu être allouée, elle est pour l'instant pleine // La nouvelle page a pu être allouée, elle est pour l'instant pleine
// de 0s. Elle fait Principal_Largeur_image de large. // de 0s. Elle fait Principal_Largeur_image de large.
// Normalement tout va bien, tout est sous contrle... // Normalement tout va bien, tout est sous contrôle...
} }
else else
{ {
// Afficher un message d'erreur // Afficher un message d'erreur
// Pour être sr que ce soit lisible. // Pour être sûr que ce soit lisible.
Calculer_couleurs_menu_optimales(Principal_Palette); Calculer_couleurs_menu_optimales(Principal_Palette);
Message_Memoire_insuffisante(); Message_Memoire_insuffisante();
Erreur_fichier=1; // 1 => On n'a pas perdu l'image courante Erreur_fichier=1; // 1 => On n'a pas perdu l'image courante
@ -481,12 +481,12 @@ void /*__interrupt __near*/ Nouveau_handler_clavier(void)
} }
// -------- Modifier la valeur du code d'erreur d'accŠs à un fichier -------- // -------- Modifier la valeur du code d'erreur d'accès à un fichier --------
// On n'est pas obligé d'utiliser cette fonction à chaque fois mais il est // On n'est pas obligé d'utiliser cette fonction à chaque fois mais il est
// important de l'utiliser dans les cas du type: // important de l'utiliser dans les cas du type:
// if (!Erreur_fichier) *** else Erreur_fichier=***; // if (!Erreur_fichier) *** else Erreur_fichier=***;
// En fait, dans le cas o l'on modifie Erreur_fichier alors qu'elle contient // En fait, dans le cas où l'on modifie Erreur_fichier alors qu'elle contient
// dŠjà un code d'erreur. // dèjà un code d'erreur.
void Modif_Erreur_fichier(int Nouvelle_valeur) void Modif_Erreur_fichier(int Nouvelle_valeur)
{ {
if (Erreur_fichier>=0) if (Erreur_fichier>=0)
@ -501,7 +501,7 @@ void Charger_image(byte Image)
int Format=0; // Format du fichier à charger int Format=0; // Format du fichier à charger
// On place par défaut Erreur_fichier à vrai au cas o on ne sache pas // On place par défaut Erreur_fichier à vrai au cas où on ne sache pas
// charger le format du fichier: // charger le format du fichier:
Erreur_fichier=1; Erreur_fichier=1;
@ -530,7 +530,7 @@ void Charger_image(byte Image)
} }
} }
// Si on a su déterminer avec succŠs le format du fichier: // Si on a su déterminer avec succès le format du fichier:
if (!Erreur_fichier) if (!Erreur_fichier)
{ {
// Installer le handler d'interruption du clavier pour stopper une preview // Installer le handler d'interruption du clavier pour stopper une preview
@ -584,7 +584,7 @@ void Charger_image(byte Image)
{ {
if ( (Erreur_fichier!=1) && (Format_Backup_done[Format]) ) if ( (Erreur_fichier!=1) && (Format_Backup_done[Format]) )
{ {
// On considŠre que l'image chargée n'est plus modifiée // On considère que l'image chargée n'est plus modifiée
Principal_Image_modifiee=0; Principal_Image_modifiee=0;
// Et on documente la variable Principal_Format_fichier avec la valeur: // Et on documente la variable Principal_Format_fichier avec la valeur:
Principal_Format_fichier=Format+1; Principal_Format_fichier=Format+1;
@ -597,7 +597,7 @@ void Charger_image(byte Image)
} }
else if (Erreur_fichier!=1) else if (Erreur_fichier!=1)
{ {
// On considŠre que l'image chargée est encore modifiée // On considère que l'image chargée est encore modifiée
Principal_Image_modifiee=1; Principal_Image_modifiee=1;
// Et on documente la variable Principal_Format_fichier avec la valeur: // Et on documente la variable Principal_Format_fichier avec la valeur:
Principal_Format_fichier=Format+1; Principal_Format_fichier=Format+1;
@ -605,13 +605,13 @@ void Charger_image(byte Image)
else else
{ {
// Dans ce cas, on sait que l'image n'a pas changé, mais ses // Dans ce cas, on sait que l'image n'a pas changé, mais ses
// paramŠtres (dimension, palette, ...) si. Donc on les restaures. // paramètres (dimension, palette, ...) si. Donc on les restaures.
Download_infos_page_principal(Principal_Backups->Pages); Download_infos_page_principal(Principal_Backups->Pages);
} }
} }
} }
else else
// Sinon, l'appelant sera au courant de l'échec grƒce à Erreur_fichier; // Sinon, l'appelant sera au courant de l'échec grace à Erreur_fichier;
// et si on s'apprêtait à faire un chargement définitif de l'image (pas // et si on s'apprêtait à faire un chargement définitif de l'image (pas
// une preview), alors on flash l'utilisateur. // une preview), alors on flash l'utilisateur.
if (Pixel_de_chargement!=Pixel_Chargement_dans_preview) if (Pixel_de_chargement!=Pixel_Chargement_dans_preview)
@ -622,7 +622,7 @@ void Charger_image(byte Image)
// -- Sauver n'importe quel type connu de fichier d'image (ou palette) ------ // -- Sauver n'importe quel type connu de fichier d'image (ou palette) ------
void Sauver_image(byte Image) void Sauver_image(byte Image)
{ {
// On place par défaut Erreur_fichier à vrai au cas o on ne sache pas // On place par défaut Erreur_fichier à vrai au cas où on ne sache pas
// sauver le format du fichier: (Est-ce vraiment utile??? Je ne crois pas!) // sauver le format du fichier: (Est-ce vraiment utile??? Je ne crois pas!)
Erreur_fichier=1; Erreur_fichier=1;
@ -738,10 +738,10 @@ void Save_PAL(void)
Erreur_fichier=1; Erreur_fichier=1;
fclose(Fichier); fclose(Fichier);
remove(Nom_du_fichier); remove(Nom_du_fichier);
// On se fout du résultat de l'opération car si a // On se fout du résultat de l'opération car si ça
// renvoie 0 c'est que le fichier avait été partiel- // renvoie 0 c'est que le fichier avait été partiel-
// -lement écrit, sinon pas du tout. Or dans tous les // -lement écrit, sinon pas du tout. Or dans tous les
// cas a revient au même pour nous: Sauvegarde ratée! // cas ça revient au même pour nous: Sauvegarde ratée!
} }
} }
@ -818,7 +818,7 @@ void Load_IMG(void)
Initialiser_preview(IMG_Header.Largeur,IMG_Header.Hauteur,Taille_du_fichier,FORMAT_IMG); Initialiser_preview(IMG_Header.Largeur,IMG_Header.Hauteur,Taille_du_fichier,FORMAT_IMG);
if (Erreur_fichier==0) if (Erreur_fichier==0)
{ {
// On commence par passer la palette en 256 comme a, si la nouvelle // On commence par passer la palette en 256 comme ça, si la nouvelle
// palette a moins de 256 coul, la précédente ne souffrira pas d'un // palette a moins de 256 coul, la précédente ne souffrira pas d'un
// assombrissement préjudiciable. // assombrissement préjudiciable.
Palette_64_to_256(Principal_Palette); Palette_64_to_256(Principal_Palette);
@ -952,7 +952,7 @@ void Test_PKM(void)
if (read_bytes(Fichier,&Head,sizeof(T_Header_PKM))) if (read_bytes(Fichier,&Head,sizeof(T_Header_PKM)))
{ {
// On regarde s'il y a la signature PKM suivie de la méthode 0. // On regarde s'il y a la signature PKM suivie de la méthode 0.
// La constante "PKM" étant un chaŒne, elle se termine toujours par 0. // La constante "PKM" étant un chaîne, elle se termine toujours par 0.
// Donc pas la peine de s'emm...er à regarder si la méthode est à 0. // Donc pas la peine de s'emm...er à regarder si la méthode est à 0.
if ( (!memcmp(&Head,"PKM",4)) && Head.Largeur && Head.Hauteur) if ( (!memcmp(&Head,"PKM",4)) && Head.Largeur && Head.Hauteur)
Erreur_fichier=0; Erreur_fichier=0;
@ -1179,7 +1179,7 @@ void Load_PKM(void)
} }
*Recon1=Best; *Recon1=Best;
// Enfin Recon2 devient la 2Šme moins utilisée // Enfin Recon2 devient la 2ème moins utilisée
*Recon2=0; *Recon2=0;
Best=0; Best=0;
NBest=INT_MAX; NBest=INT_MAX;
@ -1331,7 +1331,7 @@ void Save_PKM(void)
fclose(Fichier); fclose(Fichier);
} }
// S'il y a eu une erreur de sauvegarde, on ne va tout de même pas laisser // S'il y a eu une erreur de sauvegarde, on ne va tout de même pas laisser
// ce fichier pourri traŒner... Ca fait pas propre. // ce fichier pourri traîner... Ca fait pas propre.
if (Erreur_fichier) if (Erreur_fichier)
remove(Nom_du_fichier); remove(Nom_du_fichier);
} }
@ -1472,7 +1472,7 @@ void Test_LBM(void)
} }
} }
} }
// Ici, il reste les 16 derniŠres couleurs à modifier // Ici, il reste les 16 dernières couleurs à modifier
for (I=240,J=0; J<16; I++,J++) for (I=240,J=0; J<16; I++,J++)
{ {
Temp=Principal_Palette[J].R+8; Temp=Principal_Palette[J].R+8;
@ -1686,14 +1686,14 @@ void Load_LBM(void)
if ((Nb_couleurs==32) && (Header.BitPlanes==6)) if ((Nb_couleurs==32) && (Header.BitPlanes==6))
{ // Ce n'est pas une image HAM mais une image 64 coul. { // Ce n'est pas une image HAM mais une image 64 coul.
Image_HAM=1; // Sauvée en 32 coul. => il faut copier les 32 coul. Image_HAM=1; // Sauvée en 32 coul. => il faut copier les 32 coul.
} // sur les 32 suivantes et assombrir ces derniŠres. } // sur les 32 suivantes et assombrir ces dernières.
else else
{ {
if ((Header.BitPlanes==6) || (Header.BitPlanes==8)) if ((Header.BitPlanes==6) || (Header.BitPlanes==8))
Image_HAM=Header.BitPlanes; Image_HAM=Header.BitPlanes;
else else
// Erreur_fichier=1; /* C'est censé être incorrect mais j'ai */ // Erreur_fichier=1; /* C'est censé être incorrect mais j'ai */
Image_HAM=0; /* trouvé un fichier comme a, alors... */ Image_HAM=0; /* trouvé un fichier comme ça, alors... */
} }
} }
else else
@ -1925,11 +1925,11 @@ void Load_LBM(void)
switch (LBM_Taille_de_file) switch (LBM_Taille_de_file)
{ {
case 0 : // PremiŠre couleur case 0 : // Première couleur
LBM_File_de_couleurs[0]=Couleur; LBM_File_de_couleurs[0]=Couleur;
LBM_Taille_de_file=1; LBM_Taille_de_file=1;
break; break;
case 1 : // DeuxiŠme couleur case 1 : // Deuxième couleur
Derniere_couleur=LBM_File_de_couleurs[0]; Derniere_couleur=LBM_File_de_couleurs[0];
LBM_Mode_repetition=(Derniere_couleur==Couleur); LBM_Mode_repetition=(Derniere_couleur==Couleur);
LBM_File_de_couleurs[1]=Couleur; LBM_File_de_couleurs[1]=Couleur;
@ -2481,7 +2481,7 @@ void Save_BMP(void)
// 0 à 255 parce que le standard VGA c'est de 0 à 63 (logique!). Et // 0 à 255 parce que le standard VGA c'est de 0 à 63 (logique!). Et
// puis comme c'est pas assez débile, on va aussi y rajouter un octet // puis comme c'est pas assez débile, on va aussi y rajouter un octet
// toujours à 0 pour forcer les gens à s'acheter des gros disques // toujours à 0 pour forcer les gens à s'acheter des gros disques
// durs... Comme ‡a, ‡a fera passer la pillule lorsqu'on sortira // durs... Comme ça, ça fera passer la pillule lorsqu'on sortira
// Windows 95." ... // Windows 95." ...
Palette_64_to_256(Principal_Palette); Palette_64_to_256(Principal_Palette);
for (Indice=0; Indice<256; Indice++) for (Indice=0; Indice<256; Indice++)
@ -2854,7 +2854,7 @@ void Load_GIF(void)
Nb_couleurs=(1 << ((IDB.Indicateur & 0x07)+1)); Nb_couleurs=(1 << ((IDB.Indicateur & 0x07)+1));
Nb_bits_initial=(IDB.Indicateur & 0x07)+2; Nb_bits_initial=(IDB.Indicateur & 0x07)+2;
// On commence par passer la palette en 256 comme a, si la // On commence par passer la palette en 256 comme ça, si la
// nouvelle palette a moins de 256 coul, la précédente ne // nouvelle palette a moins de 256 coul, la précédente ne
// souffrira pas d'un assombrissement préjudiciable. // souffrira pas d'un assombrissement préjudiciable.
Palette_64_to_256(Principal_Palette); Palette_64_to_256(Principal_Palette);
@ -3066,11 +3066,11 @@ void Save_GIF(void)
word * Alphabet_Prefixe; // Table des préfixes des codes word * Alphabet_Prefixe; // Table des préfixes des codes
word * Alphabet_Suffixe; // Table des suffixes des codes word * Alphabet_Suffixe; // Table des suffixes des codes
word * Alphabet_Fille; // Table des chaŒnes filles (plus longues) word * Alphabet_Fille; // Table des chaînes filles (plus longues)
word * Alphabet_Soeur; // Table des chaŒnes soeurs (même longueur) word * Alphabet_Soeur; // Table des chaînes soeurs (même longueur)
word Alphabet_Free; // Position libre dans l'alphabet word Alphabet_Free; // Position libre dans l'alphabet
word Alphabet_Max; // Nombre d'entrées possibles dans l'alphabet word Alphabet_Max; // Nombre d'entrées possibles dans l'alphabet
word Depart; // Code précédent (sert au linkage des chaŒnes) word Depart; // Code précédent (sert au linkage des chaînes)
int Descente; // Booléen "On vient de descendre" int Descente; // Booléen "On vient de descendre"
T_LSDB LSDB; T_LSDB LSDB;
@ -3078,9 +3078,9 @@ void Save_GIF(void)
byte Block_indicateur; // Code indicateur du type de bloc en cours byte Block_indicateur; // Code indicateur du type de bloc en cours
word Chaine_en_cours; // Code de la chaŒne en cours de traitement word Chaine_en_cours; // Code de la chaîne en cours de traitement
byte Caractere; // CaractŠre à coder byte Caractere; // Caractère à coder
word Indice; // Indice de recherche de chaŒne word Indice; // Indice de recherche de chaîne
/////////////////////////////////////////////////// FIN DES DECLARATIONS // /////////////////////////////////////////////////// FIN DES DECLARATIONS //
@ -3135,7 +3135,7 @@ void Save_GIF(void)
{ {
// La palette a été correctement écrite. // La palette a été correctement écrite.
// Le jour o on se servira des blocks d'extensions pour placer // Le jour où on se servira des blocks d'extensions pour placer
// des commentaires, on le fera ici. // des commentaires, on le fera ici.
// On va écrire un block indicateur d'IDB et l'IDB du fichier // On va écrire un block indicateur d'IDB et l'IDB du fichier
@ -3180,7 +3180,7 @@ void Save_GIF(void)
{ {
Caractere=GIF_Pixel_suivant(); Caractere=GIF_Pixel_suivant();
// On regarde si dans la table on aurait pas une chaŒne // On regarde si dans la table on aurait pas une chaîne
// équivalente à Chaine_en_cours+Caractere // équivalente à Chaine_en_cours+Caractere
while ( (Indice<Alphabet_Free) && while ( (Indice<Alphabet_Free) &&
@ -3209,7 +3209,7 @@ void Save_GIF(void)
else else
Alphabet_Soeur[Depart]=Alphabet_Free; Alphabet_Soeur[Depart]=Alphabet_Free;
// On rajoute la chaŒne Chaine_en_cours+Caractere à la table // On rajoute la chaîne Chaine_en_cours+Caractere à la table
Alphabet_Prefixe[Alphabet_Free ]=Chaine_en_cours; Alphabet_Prefixe[Alphabet_Free ]=Chaine_en_cours;
Alphabet_Suffixe[Alphabet_Free++]=Caractere; Alphabet_Suffixe[Alphabet_Free++]=Caractere;
@ -3248,19 +3248,19 @@ void Save_GIF(void)
if (!Erreur_fichier) if (!Erreur_fichier)
{ {
// On écrit le code dans le fichier // On écrit le code dans le fichier
GIF_Set_code(Chaine_en_cours); // DerniŠre portion d'image GIF_Set_code(Chaine_en_cours); // Dernière portion d'image
// Cette derniŠre portion ne devrait pas poser de problŠmes // Cette dernière portion ne devrait pas poser de problèmes
// du cté GIF_Nb_bits puisque pour que GIF_Nb_bits change de // du côté GIF_Nb_bits puisque pour que GIF_Nb_bits change de
// valeur, il faudrait que la table de chaŒne soit remplie or // valeur, il faudrait que la table de chaîne soit remplie or
// c'est impossible puisqu'on traite une chaŒne qui se trouve // c'est impossible puisqu'on traite une chaîne qui se trouve
// déjà dans la table, et qu'elle n'a rien d'inédit. Donc on // déjà dans la table, et qu'elle n'a rien d'inédit. Donc on
// ne devrait pas avoir à changer de taille, mais je laisse // ne devrait pas avoir à changer de taille, mais je laisse
// quand même en remarque tout ‡a, au cas o— il subsisterait // quand même en remarque tout ça, au cas où il subsisterait
// des problŠmes dans certains cas exceptionnels. // des problèmes dans certains cas exceptionnels.
// //
// Note: de toutes faons, ces lignes en commentaires ont étés // Note: de toutes façons, ces lignes en commentaires ont étés
// écrites par copier/coller du temps o la sauvegarde du // écrites par copier/coller du temps où la sauvegarde du
// GIF déconnait. Il y a donc fort à parier qu'elles ne // GIF déconnait. Il y a donc fort à parier qu'elles ne
// sont pas correctes. // sont pas correctes.
@ -3288,8 +3288,8 @@ void Save_GIF(void)
GIF_Set_code(257); // Code de Fin d'image GIF_Set_code(257); // Code de Fin d'image
if (GIF_Rest_bits!=0) if (GIF_Rest_bits!=0)
GIF_Set_code(0); // Code bidon permettant de s'assurer que tous les bits du dernier code aient bien étés inscris dans le buffer GIF GIF_Set_code(0); // Code bidon permettant de s'assurer que tous les bits du dernier code aient bien étés inscris dans le buffer GIF
GIF_Vider_le_buffer(); // On envoie les derniŠres données du buffer GIF dans le buffer KM GIF_Vider_le_buffer(); // On envoie les dernières données du buffer GIF dans le buffer KM
Close_ecriture(GIF_Fichier); // On envoie les derniŠres données du buffer KM dans le fichier Close_ecriture(GIF_Fichier); // On envoie les dernières données du buffer KM dans le fichier
Chaine_en_cours=0x3B00; // On écrit un GIF TERMINATOR, exigé par SVGA et SEA. Chaine_en_cours=0x3B00; // On écrit un GIF TERMINATOR, exigé par SVGA et SEA.
if (! write_bytes(GIF_Fichier,&Chaine_en_cours,sizeof(Chaine_en_cours))) if (! write_bytes(GIF_Fichier,&Chaine_en_cours,sizeof(Chaine_en_cours)))
@ -3351,7 +3351,7 @@ typedef struct
word X_dpi; // |_ Densité de |_ (Presque inutile parce que word X_dpi; // |_ Densité de |_ (Presque inutile parce que
word Y_dpi; // | l'image | aucun moniteur n'est pareil!) word Y_dpi; // | l'image | aucun moniteur n'est pareil!)
byte Palette_16c[48]; // Palette 16 coul (inutile pour 256c) (débile!) byte Palette_16c[48]; // Palette 16 coul (inutile pour 256c) (débile!)
byte Reserved; // Ca me plait a aussi! byte Reserved; // Ca me plait ça aussi!
byte Plane; // 4 => 16c , 1 => 256c , ... byte Plane; // 4 => 16c , 1 => 256c , ...
word Bytes_per_plane_line;// Doit toujours être pair word Bytes_per_plane_line;// Doit toujours être pair
word Palette_info; // 1 => Couleur , 2 => Gris (ignoré à partir de la version 4) word Palette_info; // 1 => Couleur , 2 => Gris (ignoré à partir de la version 4)
@ -4884,7 +4884,7 @@ void Save_PI1(void)
void PC1_Decompresser_PackBits(byte * Src,byte * Dst) void PC1_Decompresser_PackBits(byte * Src,byte * Dst)
{ {
int is,id; // Les indices de parcour des buffers int is,id; // Les indices de parcour des buffers
int n; // Octet de contrle int n; // Octet de contrôle
for (is=id=0;id<32000;) for (is=id=0;id<32000;)
{ {
@ -4906,7 +4906,7 @@ void PC1_Decompresser_PackBits(byte * Src,byte * Dst)
Dst[id++]=Src[is++]; Dst[id++]=Src[is++];
} }
// Contrle des erreurs // Contrôle des erreurs
if (n>0) if (n>0)
Erreur_fichier=1; Erreur_fichier=1;
} }
@ -4924,7 +4924,7 @@ void PC1_Compresser_PackBits(byte * Src,byte * Dst,int TailleS,int * TailleD)
for (is=id=0;is<TailleS;) for (is=id=0;is<TailleS;)
{ {
// On recherche le 1er endroit o il y a répétition d'au moins 3 valeurs // On recherche le 1er endroit où il y a répétition d'au moins 3 valeurs
// identiques // identiques
repet=0; repet=0;
@ -5234,18 +5234,18 @@ void Load_TGA(char * nom,Bitmap24B * dest,int * larg,int * haut)
FILE* fichier; FILE* fichier;
struct struct
{ {
byte Id_field_size; // Taille des donnes spcifiques places aprŠs le header byte Id_field_size; // Taille des données spécifiques placées après le header
byte Color_map_type; // Prsence d'une palette byte Color_map_type; // Présence d'une palette
byte Image_type_code; // Type d'image byte Image_type_code; // Type d'image
word Color_map_origin; // Indice de dpart de la palette word Color_map_origin; // Indice de départ de la palette
word Color_map_length; // Taille de la palette word Color_map_length; // Taille de la palette
byte Color_map_entry_size; // Palette sur 16, 24 ou 32 bits byte Color_map_entry_size; // Palette sur 16, 24 ou 32 bits
word X_origin; // Coordonnes de dpart word X_origin; // Coordonnées de départ
word Y_origin; word Y_origin;
word Width; // Largeur de l'image word Width; // Largeur de l'image
word Height; // Hauteur de l'image word Height; // Hauteur de l'image
byte Pixel_size; // Pixels sur 16, 24 ou 32 bits byte Pixel_size; // Pixels sur 16, 24 ou 32 bits
byte Descriptor; // ParamŠtres divers byte Descriptor; // Paramètres divers
} TGA_Header; } TGA_Header;
int x,y,py,skip,t; int x,y,py,skip,t;
byte * buffer; byte * buffer;
@ -5302,7 +5302,7 @@ void Load_TGA(char * nom,Bitmap24B * dest,int * larg,int * haut)
buffer[(x*3)+2]=t; buffer[(x*3)+2]=t;
} }
// Prise en compte du sens d'criture verticale // Prise en compte du sens d'écriture verticale
if (TGA_Header.Descriptor & 0x20) if (TGA_Header.Descriptor & 0x20)
py=y; py=y;
else else

View File

@ -1,4 +1,4 @@
// Diffrentes tables utilises pour les changements de modes vidos X // Différentes tables utilisées pour les changements de modes vidéos X
/* /*
word X376Y564[] = word X376Y564[] =
@ -172,7 +172,7 @@ word X400Y600[] =
0x0008, 0x6009, 0x7C10, 0x8C11, 0x5712, 0x3213, 0x0014, 0x5815, 0x7016, 0x0008, 0x6009, 0x7C10, 0x8C11, 0x5712, 0x3213, 0x0014, 0x5815, 0x7016,
0xE317 }; 0xE317 };
// Diffrentes tables utilises pour les modifications de modes vidos VESA // Différentes tables utilisées pour les modifications de modes vidéos VESA
word Y224[] = word Y224[] =
{ 0x09A3, 0x6F06, 0xBA07, 0x0008, 0x4109, 0x0810, 0x8A11, 0xBF12, 0xC715, { 0x09A3, 0x6F06, 0xBA07, 0x0008, 0x4109, 0x0810, 0x8A11, 0xBF12, 0xC715,

View File

@ -278,9 +278,9 @@ void Desenclencher_bouton(int Numero)
{ {
if (Bouton[Numero].Enfonce) if (Bouton[Numero].Enfonce)
{ {
// On affiche le cadre autour du bouton de fa‡on à ce qu'il paraisse relƒché // On affiche le cadre autour du bouton de façon à ce qu'il paraisse relâché
Tracer_cadre_de_bouton_du_menu(Numero,BOUTON_RELACHE); Tracer_cadre_de_bouton_du_menu(Numero,BOUTON_RELACHE);
// On considère que le bouton est relƒché // On considère que le bouton est relâché
Bouton[Numero].Enfonce=BOUTON_RELACHE; Bouton[Numero].Enfonce=BOUTON_RELACHE;
// On appelle le désenclenchement particulier au bouton: // On appelle le désenclenchement particulier au bouton:
Bouton[Numero].Desenclencher(); Bouton[Numero].Desenclencher();
@ -339,12 +339,12 @@ void Enclencher_bouton(int Numero,byte Click)
Desenclencher_bouton(Curseur); Desenclencher_bouton(Curseur);
} }
// On affiche le cadre autour du bouton de faon à ce qu'il paraisse enfoncé // On affiche le cadre autour du bouton de façon à ce qu'il paraisse enfoncé
Tracer_cadre_de_bouton_du_menu(Numero,BOUTON_ENFONCE); Tracer_cadre_de_bouton_du_menu(Numero,BOUTON_ENFONCE);
Afficher_curseur(); Afficher_curseur();
// On attend ensuite que l'utilisateur lƒche son bouton: // On attend ensuite que l'utilisateur lâche son bouton:
Attendre_fin_de_click(); Attendre_fin_de_click();
// On considère que le bouton est enfoncé // On considère que le bouton est enfoncé
@ -978,7 +978,7 @@ void Ouvrir_fenetre(word Largeur,word Hauteur, char * Titre)
Fenetre_Liste_boutons_special =NULL; Fenetre_Liste_boutons_special =NULL;
Nb_boutons_fenetre =0; Nb_boutons_fenetre =0;
// On (re)passe dans le clavier de départ (franais pour nous) // On (re)passe dans le clavier de départ (français pour nous)
Clavier_de_depart(); Clavier_de_depart();
} }
@ -1024,7 +1024,7 @@ void Fermer_fenetre(void)
Une_fenetre_est_ouverte=0; Une_fenetre_est_ouverte=0;
Curseur_dans_menu_precedent=0; // il faut rafficher le libellé dans la barre Curseur_dans_menu_precedent=0; // il faut rafficher le libellé dans la barre
// d'outils si le curseur est sur une icne. // d'outils si le curseur est sur une icône.
Calculer_coordonnees_pinceau(); Calculer_coordonnees_pinceau();
@ -1433,7 +1433,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
short Ancien_X=-1; short Ancien_X=-1;
short Ancien_Y=-1; short Ancien_Y=-1;
short Indice; short Indice;
short A,B,C,D; // Variables temporaires et multitƒches... short A,B,C,D; // Variables temporaires et multitâches...
byte * Buffer; byte * Buffer;
char Chaine[25]; char Chaine[25];
byte Cacher_curseur_avant_recuperation; byte Cacher_curseur_avant_recuperation;
@ -1460,7 +1460,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
Forme_curseur=FORME_CURSEUR_CIBLE_PIPETTE; Forme_curseur=FORME_CURSEUR_CIBLE_PIPETTE;
B=Cacher_pinceau; B=Cacher_pinceau;
Cacher_pinceau=1; Cacher_pinceau=1;
C=-1; // Couleur pointée: au début aucune, comme a on initialise tout C=-1; // Couleur pointée: au début aucune, comme ça on initialise tout
if (Menu_visible_avant_fenetre) if (Menu_visible_avant_fenetre)
Print_dans_menu(TITRE_BOUTON[BOUTON_CHOIX_COL],0); Print_dans_menu(TITRE_BOUTON[BOUTON_CHOIX_COL],0);
@ -1740,7 +1740,7 @@ short Fenetre_Numero_bouton_clicke(void)
Hauteur_maxi_jauge=(Temp3->Hauteur-24); Hauteur_maxi_jauge=(Temp3->Hauteur-24);
// Fenetre_Attribut2 reoit la position dans la jauge correspondant au click // Fenetre_Attribut2 reçoit la position dans la jauge correspondant au click
Fenetre_Attribut2 =(Mouse_Y-Fenetre_Pos_Y) / Menu_Facteur_Y; Fenetre_Attribut2 =(Mouse_Y-Fenetre_Pos_Y) / Menu_Facteur_Y;
Fenetre_Attribut2-=(Temp3->Pos_Y+12+((Temp3->Hauteur_curseur-1)>>1)); Fenetre_Attribut2-=(Temp3->Pos_Y+12+((Temp3->Hauteur_curseur-1)>>1));
Fenetre_Attribut2*=(Temp3->Nb_elements-Temp3->Nb_visibles); Fenetre_Attribut2*=(Temp3->Nb_elements-Temp3->Nb_visibles);

View File

@ -4,7 +4,7 @@
void OPASM_DitherFS_6123( void OPASM_DitherFS_6123(
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
Bitmap24B Source, // Idem mais sur la source Bitmap24B Source, // Idem mais sur la source
int Largeur, // Largeur traiter, =(largeur_image-2), (>0) int Largeur, // Largeur à traiter, =(largeur_image-2), (>0)
struct Composantes * Palette, // Palette de l'image destination struct Composantes * Palette, // Palette de l'image destination
byte * TableC, // Table de conversion 24b->8b byte * TableC, // Table de conversion 24b->8b
byte ReducR, // 8-Nb_bits_rouges byte ReducR, // 8-Nb_bits_rouges
@ -16,7 +16,7 @@ void OPASM_DitherFS_6123(
void OPASM_DitherFS_623( void OPASM_DitherFS_623(
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
Bitmap24B Source, // Idem mais sur la source Bitmap24B Source, // Idem mais sur la source
int Largeur, // Largeur traiter, =(largeur_image-2), (>0) int Largeur, // Largeur à traiter, =(largeur_image-2), (>0)
struct Composantes * Palette, // Palette de l'image destination struct Composantes * Palette, // Palette de l'image destination
byte * TableC, // Table de conversion 24b->8b byte * TableC, // Table de conversion 24b->8b
byte ReducR, // 8-Nb_bits_rouges byte ReducR, // 8-Nb_bits_rouges
@ -28,7 +28,7 @@ void OPASM_DitherFS_623(
void OPASM_DitherFS_12( void OPASM_DitherFS_12(
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
Bitmap24B Source, // Idem mais sur la source Bitmap24B Source, // Idem mais sur la source
int Largeur, // Largeur traiter, =(largeur_image-2), (>0) int Largeur, // Largeur à traiter, =(largeur_image-2), (>0)
struct Composantes * Palette, // Palette de l'image destination struct Composantes * Palette, // Palette de l'image destination
byte * TableC, // Table de conversion 24b->8b byte * TableC, // Table de conversion 24b->8b
byte ReducR, // 8-Nb_bits_rouges byte ReducR, // 8-Nb_bits_rouges
@ -40,7 +40,7 @@ void OPASM_DitherFS_12(
void OPASM_DitherFS_6( void OPASM_DitherFS_6(
Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne Bitmap256 Destination, // Pointeur sur le 1er pixel de la ligne
Bitmap24B Source, // Idem mais sur la source Bitmap24B Source, // Idem mais sur la source
int Largeur, // Largeur traiter, =(largeur_image-1), (>0) int Largeur, // Largeur à traiter, =(largeur_image-1), (>0)
struct Composantes * Palette, // Palette de l'image destination struct Composantes * Palette, // Palette de l'image destination
byte * TableC, // Table de conversion 24b->8b byte * TableC, // Table de conversion 24b->8b
byte ReducR, // 8-Nb_bits_rouges byte ReducR, // 8-Nb_bits_rouges
@ -62,7 +62,7 @@ void OPASM_DitherFS(
void OPASM_DitherFS_2( void OPASM_DitherFS_2(
Bitmap256 Destination, // Pointeur sur le 1er pixel de la colonne Bitmap256 Destination, // Pointeur sur le 1er pixel de la colonne
Bitmap24B Source, // Idem mais sur la source Bitmap24B Source, // Idem mais sur la source
int Hauteur, // Hauteur traiter, =(hauteur_image-1), (>0) int Hauteur, // Hauteur à traiter, =(hauteur_image-1), (>0)
struct Composantes * Palette, // Palette de l'image destination struct Composantes * Palette, // Palette de l'image destination
byte * TableC, // Table de conversion 24b->8b byte * TableC, // Table de conversion 24b->8b
byte ReducR, // 8-Nb_bits_rouges byte ReducR, // 8-Nb_bits_rouges
@ -92,9 +92,9 @@ void OPASM_Analyser_cluster(
int rdec, // rdec int rdec, // rdec
int vdec, // vdec int vdec, // vdec
int bdec, // bdec int bdec, // bdec
int rinc, // Incrmentation sur les rouges 1 << rdec int rinc, // Incrémentation sur les rouges 1 << rdec
int vinc, // Incrmentation sur les verts 1 << vdec int vinc, // Incrémentation sur les verts 1 << vdec
int binc, // Incrmentation sur les bleus 1 << bdec int binc, // Incrémentation sur les bleus 1 << bdec
int * Nbocc); // Nombre d'occurences int * Nbocc); // Nombre d'occurences
void OPASM_Split_cluster_Rouge( void OPASM_Split_cluster_Rouge(
@ -105,9 +105,9 @@ void OPASM_Split_cluster_Rouge(
int rmax, // rmax << rdec int rmax, // rmax << rdec
int vmax, // vmin << vdec int vmax, // vmin << vdec
int bmax, // bmin << bdec int bmax, // bmin << bdec
int rinc, // Incrmentation sur les rouges 1 << rdec int rinc, // Incrémentation sur les rouges 1 << rdec
int vinc, // Incrmentation sur les verts 1 << vdec int vinc, // Incrémentation sur les verts 1 << vdec
int binc, // Incrmentation sur les bleus 1 << bdec int binc, // Incrémentation sur les bleus 1 << bdec
int limite, // Nombre d'occurences minimales int limite, // Nombre d'occurences minimales
int rdec, // rdec int rdec, // rdec
int * rouge); // Valeur du rouge atteignant la limite int * rouge); // Valeur du rouge atteignant la limite
@ -120,9 +120,9 @@ void OPASM_Split_cluster_Vert(
int rmax, // rmax << rdec int rmax, // rmax << rdec
int vmax, // vmin << vdec int vmax, // vmin << vdec
int bmax, // bmin << bdec int bmax, // bmin << bdec
int rinc, // Incrmentation sur les rouges 1 << rdec int rinc, // Incrémentation sur les rouges 1 << rdec
int vinc, // Incrmentation sur les verts 1 << vdec int vinc, // Incrémentation sur les verts 1 << vdec
int binc, // Incrmentation sur les bleus 1 << bdec int binc, // Incrémentation sur les bleus 1 << bdec
int limite, // Nombre d'occurences minimales int limite, // Nombre d'occurences minimales
int vdec, // vdec int vdec, // vdec
int * vert); // Valeur du vert atteignant la limite int * vert); // Valeur du vert atteignant la limite
@ -135,9 +135,9 @@ void OPASM_Split_cluster_Bleu(
int rmax, // rmax << rdec int rmax, // rmax << rdec
int vmax, // vmin << vdec int vmax, // vmin << vdec
int bmax, // bmin << bdec int bmax, // bmin << bdec
int rinc, // Incrmentation sur les rouges 1 << rdec int rinc, // Incrémentation sur les rouges 1 << rdec
int vinc, // Incrmentation sur les verts 1 << vdec int vinc, // Incrémentation sur les verts 1 << vdec
int binc, // Incrmentation sur les bleus 1 << bdec int binc, // Incrémentation sur les bleus 1 << bdec
int limite, // Nombre d'occurences minimales int limite, // Nombre d'occurences minimales
int bdec, // bdec int bdec, // bdec
int * bleu); // Valeur du bleu atteignant la limite int * bleu); // Valeur du bleu atteignant la limite

View File

@ -729,7 +729,7 @@ void Rectangle_12_0(void)
if ((Config.Coords_rel) && (Menu_visible)) if ((Config.Coords_rel) && (Menu_visible))
Print_dans_menu("\035: 1 \022: 1",0); Print_dans_menu("\035: 1 \022: 1",0);
// On laisse une trace du curseur l'écran // On laisse une trace du curseur à l'écran
Afficher_curseur(); Afficher_curseur();
if (Mouse_K==A_GAUCHE) if (Mouse_K==A_GAUCHE)
@ -2406,7 +2406,7 @@ void Polyform_12_8(void)
// On efface la preview du segment validé: // On efface la preview du segment validé:
Effacer_ligne_Preview(Debut_X,Debut_Y,Fin_X,Fin_Y); Effacer_ligne_Preview(Debut_X,Debut_Y,Fin_X,Fin_Y);
// On l'affiche de faon définitive: // On l'affiche de façon définitive:
Tracer_ligne_Definitif(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,Couleur); Tracer_ligne_Definitif(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,Couleur);
// Et on affiche un pixel de preview en (Pinceau_X,Pinceau_Y): // Et on affiche un pixel de preview en (Pinceau_X,Pinceau_Y):
@ -2438,7 +2438,7 @@ void Polyform_12_8(void)
// On efface la preview du segment annulé: // On efface la preview du segment annulé:
Effacer_ligne_Preview(Debut_X,Debut_Y,Fin_X,Fin_Y); Effacer_ligne_Preview(Debut_X,Debut_Y,Fin_X,Fin_Y);
// On affiche de faon définitive le bouclage du polygone: // On affiche de façon définitive le bouclage du polygone:
Tracer_ligne_Definitif(Debut_X,Debut_Y,Initial_X,Initial_Y,Couleur); Tracer_ligne_Definitif(Debut_X,Debut_Y,Initial_X,Initial_Y,Couleur);
Afficher_curseur(); Afficher_curseur();
@ -2473,7 +2473,7 @@ void Polyform_0_8(void)
Operation_POP(&Debut_X); Operation_POP(&Debut_X);
Operation_POP(&Couleur); Operation_POP(&Couleur);
// On met jour l'affichage de la preview du prochain segment: // On met à jour l'affichage de la preview du prochain segment:
Effacer_ligne_Preview(Debut_X,Debut_Y,Fin_X,Fin_Y); Effacer_ligne_Preview(Debut_X,Debut_Y,Fin_X,Fin_Y);
Tracer_ligne_Preview (Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,Couleur); Tracer_ligne_Preview (Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,Couleur);
@ -2568,7 +2568,7 @@ void Filled_polyform_12_8(void)
Effacer_curseur(); Effacer_curseur();
Print_coordonnees(); Print_coordonnees();
// On le place l'écran // On le place à l'écran
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0); Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0); Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
@ -2597,7 +2597,7 @@ void Filled_polyform_12_8(void)
Effacer_curseur(); Effacer_curseur();
Print_coordonnees(); Print_coordonnees();
// On le place l'écran // On le place à l'écran
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0); Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0); Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
Afficher_curseur(); Afficher_curseur();
@ -2671,7 +2671,7 @@ void Filled_polyform_0_8(void)
Operation_POP(&Debut_Y); Operation_POP(&Debut_Y);
Operation_POP(&Debut_X); Operation_POP(&Debut_X);
// On met jour l'affichage de la preview du prochain segment: // On met à jour l'affichage de la preview du prochain segment:
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0); Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0); Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
@ -2703,14 +2703,14 @@ void Brosse_12_0(void)
if (Mouse_K==A_DROITE) // Besoin d'effacer la brosse après ? if (Mouse_K==A_DROITE) // Besoin d'effacer la brosse après ?
{ {
Operation_PUSH(1); Operation_PUSH(1);
// Puisque la zone o on prend la brosse sera effacée, on fait un backup // Puisque la zone où on prend la brosse sera effacée, on fait un backup
Backup(); Backup();
} }
else else
Operation_PUSH(0); Operation_PUSH(0);
// On laisse une trace du curseur pour que l'utilisateur puisse visualiser // On laisse une trace du curseur pour que l'utilisateur puisse visualiser
// o demarre sa brosse: // où demarre sa brosse:
Afficher_curseur(); Afficher_curseur();
Operation_PUSH(Pinceau_X); // Début X Operation_PUSH(Pinceau_X); // Début X
@ -2797,7 +2797,7 @@ void Brosse_0_5(void)
Ancien_Pinceau_Y=Pinceau_Y; Ancien_Pinceau_Y=Pinceau_Y;
Pinceau_X=Debut_X; Pinceau_X=Debut_X;
Pinceau_Y=Debut_Y; Pinceau_Y=Debut_Y;
Effacer_curseur(); // Maintenant, il n'y a plus de croix l'écran. Effacer_curseur(); // Maintenant, il n'y a plus de croix à l'écran.
Pinceau_X=Ancien_Pinceau_X; Pinceau_X=Ancien_Pinceau_X;
Pinceau_Y=Ancien_Pinceau_Y; Pinceau_Y=Ancien_Pinceau_Y;
@ -2836,12 +2836,12 @@ void Brosse_0_5(void)
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse
if (Config.Auto_discontinuous) if (Config.Auto_discontinuous)
{ {
// On se place en mode Dessin discontinu la main // On se place en mode Dessin discontinu à la main
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU) while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
Enclencher_bouton(BOUTON_DESSIN,A_DROITE); Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
} }
// Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin // Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin
// d'appel cette action: // d'appel à cette action:
Effacer_curseur(); Effacer_curseur();
// On passe en brosse couleur: // On passe en brosse couleur:
@ -2891,7 +2891,7 @@ void Polybrosse_12_8(void)
Effacer_curseur(); Effacer_curseur();
Print_coordonnees(); Print_coordonnees();
// On le place l'écran // On le place à l'écran
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0); Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0); Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
@ -2920,7 +2920,7 @@ void Polybrosse_12_8(void)
Effacer_curseur(); Effacer_curseur();
Print_coordonnees(); Print_coordonnees();
// On le place l'écran // On le place à l'écran
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0); Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Fin_X,Fin_Y,0);
Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0); Tracer_ligne_Preview_xor(Debut_X,Debut_Y,Pinceau_X,Pinceau_Y,0);
Afficher_curseur(); Afficher_curseur();
@ -2982,12 +2982,12 @@ void Polybrosse_12_8(void)
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse
if (Config.Auto_discontinuous) if (Config.Auto_discontinuous)
{ {
// On se place en mode Dessin discontinu la main // On se place en mode Dessin discontinu à la main
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU) while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
Enclencher_bouton(BOUTON_DESSIN,A_DROITE); Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
} }
// Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin // Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin
// d'appel cette action: // d'appel à cette action:
Effacer_curseur(); Effacer_curseur();
// On passe en brosse couleur: // On passe en brosse couleur:
@ -3014,7 +3014,7 @@ void Etirer_brosse_12_0(void)
if (Mouse_K==A_GAUCHE) if (Mouse_K==A_GAUCHE)
{ {
// On laisse une trace du curseur pour que l'utilisateur puisse visualiser // On laisse une trace du curseur pour que l'utilisateur puisse visualiser
// o demarre sa brosse: // où demarre sa brosse:
Afficher_curseur(); Afficher_curseur();
Operation_PUSH(Pinceau_X); // Dernier calcul X Operation_PUSH(Pinceau_X); // Dernier calcul X
@ -3276,12 +3276,12 @@ void Etirer_brosse_2_7(void)
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse
if (Config.Auto_discontinuous) if (Config.Auto_discontinuous)
{ {
// On se place en mode Dessin discontinu la main // On se place en mode Dessin discontinu à la main
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU) while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
Enclencher_bouton(BOUTON_DESSIN,A_DROITE); Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
} }
// Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin // Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin
// d'appel cette action: // d'appel à cette action:
Effacer_curseur(); Effacer_curseur();
// On passe en brosse couleur: // On passe en brosse couleur:
@ -3501,7 +3501,7 @@ void Tourner_brosse_2_5(void)
Operation_POP(&Calcul_Y); Operation_POP(&Calcul_Y);
Operation_POP(&Calcul_X); Operation_POP(&Calcul_X);
// Calcul de l'angle par rapport la dernière position calculée // Calcul de l'angle par rapport à la dernière position calculée
if ( (Brosse_Centre_rotation_X==Calcul_X) if ( (Brosse_Centre_rotation_X==Calcul_X)
&& (Brosse_Centre_rotation_Y==Calcul_Y) ) && (Brosse_Centre_rotation_Y==Calcul_Y) )
Angle=0.0; Angle=0.0;
@ -3525,12 +3525,12 @@ void Tourner_brosse_2_5(void)
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE); // Désenclenche au passage le bouton brosse
if (Config.Auto_discontinuous) if (Config.Auto_discontinuous)
{ {
// On se place en mode Dessin discontinu la main // On se place en mode Dessin discontinu à la main
while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU) while (Operation_en_cours!=OPERATION_DESSIN_DISCONTINU)
Enclencher_bouton(BOUTON_DESSIN,A_DROITE); Enclencher_bouton(BOUTON_DESSIN,A_DROITE);
} }
// Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin // Maintenant, il faut réeffacer le curseur parce qu'il sera raffiché en fin
// d'appel cette action: // d'appel à cette action:
Effacer_curseur(); Effacer_curseur();
// On passe en brosse couleur: // On passe en brosse couleur:

52
pages.c
View File

@ -71,7 +71,7 @@ void Download_infos_page_principal(S_Page * Page)
Principal_Decalage_X=Page->Decalage_X; Principal_Decalage_X=Page->Decalage_X;
Principal_Decalage_Y=Page->Decalage_Y; Principal_Decalage_Y=Page->Decalage_Y;
// On corrige les décalages en fonction de la dimension de l'cran // On corrige les décalages en fonction de la dimension de l'écran
if ( (Principal_Decalage_X>0) && if ( (Principal_Decalage_X>0) &&
(Principal_Decalage_X+Largeur_ecran>Principal_Largeur_image) ) (Principal_Decalage_X+Largeur_ecran>Principal_Largeur_image) )
Principal_Decalage_X=Max(0,Principal_Largeur_image-Largeur_ecran); Principal_Decalage_X=Max(0,Principal_Largeur_image-Largeur_ecran);
@ -91,7 +91,7 @@ void Download_infos_page_principal(S_Page * Page)
Loupe_Decalage_X=Page->Loupe_Decalage_X; Loupe_Decalage_X=Page->Loupe_Decalage_X;
Loupe_Decalage_Y=Page->Loupe_Decalage_Y; Loupe_Decalage_Y=Page->Loupe_Decalage_Y;
// Comme le facteur de zoom a des chances d'avoir chang, on appelle // Comme le facteur de zoom a des chances d'avoir changé, on appelle
// "Changer_facteur_loupe". // "Changer_facteur_loupe".
for (Indice_facteur=0; FACTEUR_ZOOM[Indice_facteur]!=Loupe_Facteur; Indice_facteur++); for (Indice_facteur=0; FACTEUR_ZOOM[Indice_facteur]!=Loupe_Facteur; Indice_facteur++);
Changer_facteur_loupe(Indice_facteur); Changer_facteur_loupe(Indice_facteur);
@ -329,7 +329,7 @@ int Taille_d_une_liste_de_pages(S_Liste_de_pages * Liste)
void Reculer_dans_une_liste_de_pages(S_Liste_de_pages * Liste) void Reculer_dans_une_liste_de_pages(S_Liste_de_pages * Liste)
{ {
// Cette fonction fait l'quivalent d'un "Undo" dans la liste de pages. // Cette fonction fait l'équivalent d'un "Undo" dans la liste de pages.
// Elle effectue une sorte de ROL (Rotation Left) sur la liste: // Elle effectue une sorte de ROL (Rotation Left) sur la liste:
// ÉÍËÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍ» | // ÉÍËÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍ» |
// º0º1³2³3³4³5³6³7³8³9³Aº | // º0º1³2³3³4³5³6³7³8³9³Aº |
@ -372,7 +372,7 @@ void Reculer_dans_une_liste_de_pages(S_Liste_de_pages * Liste)
void Avancer_dans_une_liste_de_pages(S_Liste_de_pages * Liste) void Avancer_dans_une_liste_de_pages(S_Liste_de_pages * Liste)
{ {
// Cette fonction fait l'quivalent d'un "Redo" dans la liste de pages. // Cette fonction fait l'équivalent d'un "Redo" dans la liste de pages.
// Elle effectue une sorte de ROR (Rotation Right) sur la liste: // Elle effectue une sorte de ROR (Rotation Right) sur la liste:
// ÉÍËÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍ» | // ÉÍËÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍÑÍ» |
// º0º1³2³3³4³5³6³7³8³9³Aº | // º0º1³2³3³4³5³6³7³8³9³Aº |
@ -502,7 +502,7 @@ void Creer_nouvelle_page(S_Page * Nouvelle_page,S_Liste_de_pages * Liste_courant
else else
{ {
// On manque de mémoire ou la Liste_courante est pleine. Dans tous les // On manque de mémoire ou la Liste_courante est pleine. Dans tous les
// cas, il faut libérer une page... qui peut-ˆtre pourra re-servir. // cas, il faut libérer une page... qui peut-être pourra re-servir.
// Tant qu'il faut libérer // Tant qu'il faut libérer
while (Il_faut_liberer) while (Il_faut_liberer)
@ -531,13 +531,13 @@ void Creer_nouvelle_page(S_Page * Nouvelle_page,S_Liste_de_pages * Liste_courant
// la liste) // la liste)
Page_a_supprimer=Liste_a_raboter->Pages+(Liste_a_raboter->Nb_pages_allouees)-1; Page_a_supprimer=Liste_a_raboter->Pages+(Liste_a_raboter->Nb_pages_allouees)-1;
// On regarde si on peut recycler directement la page (cas o elle // On regarde si on peut recycler directement la page (cas où elle
// aurait la mˆme surface que la Nouvelle_page) // aurait la même surface que la Nouvelle_page)
if ((Page_a_supprimer->Hauteur*Page_a_supprimer->Largeur)== if ((Page_a_supprimer->Hauteur*Page_a_supprimer->Largeur)==
(Nouvelle_page->Hauteur*Nouvelle_page->Largeur)) (Nouvelle_page->Hauteur*Nouvelle_page->Largeur))
{ {
// Alors // Alors
// On récupère le bitmap de la page à supprimer (vite de faire des // On récupère le bitmap de la page à supprimer (évite de faire des
// allocations/désallocations fastidieuses et inutiles) // allocations/désallocations fastidieuses et inutiles)
Nouvelle_page->Image=Page_a_supprimer->Image; Nouvelle_page->Image=Page_a_supprimer->Image;
@ -567,11 +567,11 @@ void Creer_nouvelle_page(S_Page * Nouvelle_page,S_Liste_de_pages * Liste_courant
} }
} }
// D'après l'hypothèse de départ, la boucle ci-dessus doit s'arrˆter car // D'après l'hypothèse de départ, la boucle ci-dessus doit s'arrêter car
// on a assez de mémoire pour allouer la nouvelle page. // on a assez de mémoire pour allouer la nouvelle page.
// Désormais Nouvelle_page contient un pointeur sur une zone bitmap valide. // Désormais Nouvelle_page contient un pointeur sur une zone bitmap valide.
// Décaler la Liste_courante d'un cran vers le pass. // Décaler la Liste_courante d'un cran vers le passé.
for (Indice=Liste_courante->Taille_liste-1;Indice>0;Indice--) for (Indice=Liste_courante->Taille_liste-1;Indice>0;Indice--)
Copier_S_page(Liste_courante->Pages+Indice,Liste_courante->Pages+Indice-1); Copier_S_page(Liste_courante->Pages+Indice,Liste_courante->Pages+Indice-1);
@ -622,7 +622,7 @@ void Detruire_la_page_courante_d_une_liste(S_Liste_de_pages * Liste)
// destruction il ne reste pas encore au moins une page. // destruction il ne reste pas encore au moins une page.
if (Liste->Nb_pages_allouees>1) if (Liste->Nb_pages_allouees>1)
{ {
// On fait faire un undo à la liste, comme a, la nouvelle page courante // On fait faire un undo à la liste, comme ça, la nouvelle page courante
// est la page précédente // est la page précédente
Reculer_dans_une_liste_de_pages(Principal_Backups); Reculer_dans_une_liste_de_pages(Principal_Backups);
@ -667,7 +667,7 @@ int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int Large
Download_infos_page_principal(Page); Download_infos_page_principal(Page);
Download_infos_backup(Principal_Backups); Download_infos_backup(Principal_Backups);
// Maintenant, on regarde si on a le droit de créer la mˆme page dans // Maintenant, on regarde si on a le droit de créer la même page dans
// la page de brouillon. // la page de brouillon.
if (Nouvelle_page_possible(Page,Brouillon_Backups,Principal_Backups)) if (Nouvelle_page_possible(Page,Brouillon_Backups,Principal_Backups))
{ {
@ -718,7 +718,7 @@ void Detruire_les_listes_de_backups_en_fin_de_programme(void)
while (Brouillon_Backups->Nb_pages_allouees>0) while (Brouillon_Backups->Nb_pages_allouees>0)
Detruire_derniere_page_allouee_de_la_liste(Brouillon_Backups); Detruire_derniere_page_allouee_de_la_liste(Brouillon_Backups);
// Puis on peut détruire les structures de liste elles-mˆmes // Puis on peut détruire les structures de liste elles-mêmes
Liberer_une_liste_de_pages(Principal_Backups); Liberer_une_liste_de_pages(Principal_Backups);
Liberer_une_liste_de_pages(Brouillon_Backups); Liberer_une_liste_de_pages(Brouillon_Backups);
free(Principal_Backups); free(Principal_Backups);
@ -744,7 +744,7 @@ int Backup_avec_nouvelles_dimensions(int Upload,int Largeur,int Hauteur)
int Retour=0; int Retour=0;
if (Upload) if (Upload)
// On remet à jour l'tat des infos de la page courante (pour pouvoir les // On remet à jour l'état des infos de la page courante (pour pouvoir les
// retrouver plus tard) // retrouver plus tard)
Upload_infos_page_principal(Principal_Backups->Pages); Upload_infos_page_principal(Principal_Backups->Pages);
@ -779,7 +779,7 @@ int Backuper_et_redimensionner_brouillon(int Largeur,int Hauteur)
S_Page * Nouvelle_page; S_Page * Nouvelle_page;
int Retour=0; int Retour=0;
// On remet à jour l'tat des infos de la page de brouillon (pour pouvoir // On remet à jour l'état des infos de la page de brouillon (pour pouvoir
// les retrouver plus tard) // les retrouver plus tard)
Upload_infos_page_brouillon(Brouillon_Backups->Pages); Upload_infos_page_brouillon(Brouillon_Backups->Pages);
@ -835,7 +835,7 @@ void Backup(void)
void Undo(void) void Undo(void)
{ {
// On remet à jour l'tat des infos de la page courante (pour pouvoir les // On remet à jour l'état des infos de la page courante (pour pouvoir les
// retrouver plus tard) // retrouver plus tard)
Upload_infos_page_principal(Principal_Backups->Pages); Upload_infos_page_principal(Principal_Backups->Pages);
// On fait faire un undo à la liste des backups de la page principale // On fait faire un undo à la liste des backups de la page principale
@ -845,15 +845,15 @@ void Undo(void)
Download_infos_page_principal(Principal_Backups->Pages); Download_infos_page_principal(Principal_Backups->Pages);
// Et celles du backup // Et celles du backup
Download_infos_backup(Principal_Backups); Download_infos_backup(Principal_Backups);
// Note: le backup n'a pas obligatoirement les mˆmes dimensions ni la mˆme // Note: le backup n'a pas obligatoirement les mêmes dimensions ni la même
// palette que la page courante. Mais en temps normal, le backup // palette que la page courante. Mais en temps normal, le backup
// n'est pas utilisé à la suite d'un Undo. Donc a ne devrait pas // n'est pas utilisé à la suite d'un Undo. Donc ça ne devrait pas
// poser de problèmes. // poser de problèmes.
} }
void Redo(void) void Redo(void)
{ {
// On remet à jour l'tat des infos de la page courante (pour pouvoir les // On remet à jour l'état des infos de la page courante (pour pouvoir les
// retrouver plus tard) // retrouver plus tard)
Upload_infos_page_principal(Principal_Backups->Pages); Upload_infos_page_principal(Principal_Backups->Pages);
// On fait faire un redo à la liste des backups de la page principale // On fait faire un redo à la liste des backups de la page principale
@ -863,9 +863,9 @@ void Redo(void)
Download_infos_page_principal(Principal_Backups->Pages); Download_infos_page_principal(Principal_Backups->Pages);
// Et celles du backup // Et celles du backup
Download_infos_backup(Principal_Backups); Download_infos_backup(Principal_Backups);
// Note: le backup n'a pas obligatoirement les mˆmes dimensions ni la mˆme // Note: le backup n'a pas obligatoirement les mêmes dimensions ni la même
// palette que la page courante. Mais en temps normal, le backup // palette que la page courante. Mais en temps normal, le backup
// n'est pas utilisé à la suite d'un Redo. Donc a ne devrait pas // n'est pas utilisé à la suite d'un Redo. Donc ça ne devrait pas
// poser de problèmes. // poser de problèmes.
} }
@ -877,9 +877,9 @@ void Detruire_la_page_courante(void)
Download_infos_page_principal(Principal_Backups->Pages); Download_infos_page_principal(Principal_Backups->Pages);
// Et celles du backup // Et celles du backup
Download_infos_backup(Principal_Backups); Download_infos_backup(Principal_Backups);
// Note: le backup n'a pas obligatoirement les mˆmes dimensions ni la mˆme // Note: le backup n'a pas obligatoirement les mêmes dimensions ni la même
// palette que la page courante. Mais en temps normal, le backup // palette que la page courante. Mais en temps normal, le backup
// n'est pas utilisé à la suite d'une destruction de page. Donc a ne // n'est pas utilisé à la suite d'une destruction de page. Donc ça ne
// devrait pas poser de problèmes. // devrait pas poser de problèmes.
} }
@ -888,7 +888,7 @@ void Interchanger_image_principale_et_brouillon(void)
S_Liste_de_pages * Liste_tempo; S_Liste_de_pages * Liste_tempo;
// On commence par mettre à jour dans les descripteurs les infos sur les // On commence par mettre à jour dans les descripteurs les infos sur les
// pages qu'on s'apprˆte à échanger, pour qu'on se retrouve pas avec de // pages qu'on s'apprête à échanger, pour qu'on se retrouve pas avec de
// vieilles valeurs qui datent de mathuzalem. // vieilles valeurs qui datent de mathuzalem.
Upload_infos_page_principal(Principal_Backups->Pages); Upload_infos_page_principal(Principal_Backups->Pages);
Upload_infos_page_brouillon(Brouillon_Backups->Pages); Upload_infos_page_brouillon(Brouillon_Backups->Pages);
@ -904,8 +904,8 @@ void Interchanger_image_principale_et_brouillon(void)
/* SECTION GROS CACA PROUT PROUT */ /* SECTION GROS CACA PROUT PROUT */
// Auparavant on ruse en mettant déjà à jour les dimensions de la // Auparavant on ruse en mettant déjà à jour les dimensions de la
// nouvelle page courante. Si on ne le fait pas, le "Download" va détecter // nouvelle page courante. Si on ne le fait pas, le "Download" va détecter
// un changement de dimensions et va bˆtement sortir du mode loupe, alors // un changement de dimensions et va bêtement sortir du mode loupe, alors
// que lors d'un changement de page, on veut bien conserver l'tat du mode // que lors d'un changement de page, on veut bien conserver l'état du mode
// loupe du brouillon. // loupe du brouillon.
Principal_Largeur_image=Principal_Backups->Pages->Largeur; Principal_Largeur_image=Principal_Backups->Pages->Largeur;
Principal_Hauteur_image=Principal_Backups->Pages->Hauteur; Principal_Hauteur_image=Principal_Backups->Pages->Hauteur;

View File

@ -56,7 +56,7 @@ void Modifier_Bleu(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
void Degrader_palette(short Debut,short Fin,T_Palette Palette) void Degrader_palette(short Debut,short Fin,T_Palette Palette)
// Modifie la palette pour obtenir un dégradé de couleur entre les deux bornes // Modifie la palette pour obtenir un dégradé de couleur entre les deux bornes
// passées en paramŠtre // passées en paramètre
{ {
short Debut_Rouge; short Debut_Rouge;
short Debut_Vert; short Debut_Vert;
@ -202,12 +202,12 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
Utilisation_temporaire=(dword *)malloc(sizeof(dword)*256); Utilisation_temporaire=(dword *)malloc(sizeof(dword)*256);
memcpy(Utilisation_temporaire,Utilisation_couleur,sizeof(dword)*256); memcpy(Utilisation_temporaire,Utilisation_couleur,sizeof(dword)*256);
// On commence à initialiser la table de conversion à un état o elle ne // On commence à initialiser la table de conversion à un état où elle ne
// fera aucune conversion. // fera aucune conversion.
for (Pos_1=0;Pos_1<=255;Pos_1++) for (Pos_1=0;Pos_1<=255;Pos_1++)
Table_de_conversion[Pos_1]=Pos_1; Table_de_conversion[Pos_1]=Pos_1;
// On calcul les derniŠres couleurs de chaque bloc. // On calcul les dernières couleurs de chaque bloc.
Fin_1=Debut_Bloc_1+Taille_du_bloc-1; Fin_1=Debut_Bloc_1+Taille_du_bloc-1;
Fin_2=Debut_Bloc_2+Taille_du_bloc-1; Fin_2=Debut_Bloc_2+Taille_du_bloc-1;
@ -225,7 +225,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
Palette[Pos_1].V=Palette_temporaire[Pos_2].V; Palette[Pos_1].V=Palette_temporaire[Pos_2].V;
Palette[Pos_1].B=Palette_temporaire[Pos_2].B; Palette[Pos_1].B=Palette_temporaire[Pos_2].B;
// On gŠre la mise à jour de Pos_2 // On gère la mise à jour de Pos_2
if (Pos_2==Fin_2) if (Pos_2==Fin_2)
Pos_2=Debut_Bloc_1; Pos_2=Debut_Bloc_1;
else else
@ -247,7 +247,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
Palette[Pos_1].V=Palette_temporaire[Pos_2].V; Palette[Pos_1].V=Palette_temporaire[Pos_2].V;
Palette[Pos_1].B=Palette_temporaire[Pos_2].B; Palette[Pos_1].B=Palette_temporaire[Pos_2].B;
// On gŠre la mise à jour de Pos_2 // On gère la mise à jour de Pos_2
if (Pos_2==Fin_1) if (Pos_2==Fin_1)
Pos_2=Debut_Bloc_2; Pos_2=Debut_Bloc_2;
else else
@ -322,7 +322,7 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
} }
// On trie maintenant la table dans le sens décroissant. // On trie maintenant la table dans le sens décroissant.
// (Ce n'est pas indispensable, mais a fera plus joli dans la palette). // (Ce n'est pas indispensable, mais ça fera plus joli dans la palette).
do do
{ {
Couleur=0; // Booléen qui dit si le tri n'est pas terminé. Couleur=0; // Booléen qui dit si le tri n'est pas terminé.
@ -379,7 +379,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
dword Utilisation; dword Utilisation;
dword Meilleure_utilisation; dword Meilleure_utilisation;
// On commence par initialiser la table de conversion dans un état o // On commence par initialiser la table de conversion dans un état où
// aucune conversion ne sera effectuée. // aucune conversion ne sera effectuée.
for (Couleur_1=0; Couleur_1<=255; Couleur_1++) for (Couleur_1=0; Couleur_1<=255; Couleur_1++)
Table_de_conversion[Couleur_1]=Couleur_1; Table_de_conversion[Couleur_1]=Couleur_1;
@ -392,7 +392,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
Effacer_curseur(); Effacer_curseur();
// On tasse la palette vers le début parce qu'elle doit ressembler à // On tasse la palette vers le début parce qu'elle doit ressembler à
// du GruyŠre (et comme Papouille il aime pas le fromage...) // du Gruyère (et comme Papouille il aime pas le fromage...)
// Pour cela, on va scruter la couleur Couleur_1 et se servir de l'indice // Pour cela, on va scruter la couleur Couleur_1 et se servir de l'indice
// Couleur_2 comme position de destination. // Couleur_2 comme position de destination.
@ -431,7 +431,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
while ((*Nb_couleurs_utilisees)>Nb_couleurs_demandees) while ((*Nb_couleurs_utilisees)>Nb_couleurs_demandees)
{ {
// Il s'agit de trouver les 2 couleurs qui se ressemblent le plus // Il s'agit de trouver les 2 couleurs qui se ressemblent le plus
// parmis celles qui sont utilisées (bien sr) et de les remplacer par // parmis celles qui sont utilisées (bien sûr) et de les remplacer par
// une seule couleur qui est la moyenne pondérée de ces 2 couleurs // une seule couleur qui est la moyenne pondérée de ces 2 couleurs
// en fonction de leur utilisation dans l'image. // en fonction de leur utilisation dans l'image.
@ -496,23 +496,23 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
// Bon, maintenant que l'on a fait bouger nos petites choses concernants // Bon, maintenant que l'on a fait bouger nos petites choses concernants
// la couleur à éliminer, on va s'occuper de faire bouger les couleurs // la couleur à éliminer, on va s'occuper de faire bouger les couleurs
// situées aprŠs la couleur à éliminer pour qu'elles se dépla‡ent d'une // situées après la couleur à éliminer pour qu'elles se déplaçent d'une
// couleur en arriŠre. // couleur en arrière.
for (Couleur_1=0;Couleur_1<=255;Couleur_1++) for (Couleur_1=0;Couleur_1<=255;Couleur_1++)
{ {
// Commenons par nous occuper des tables d'utilisation et de la // Commençons par nous occuper des tables d'utilisation et de la
// palette. // palette.
if (Couleur_1>Meilleure_couleur_2) if (Couleur_1>Meilleure_couleur_2)
{ {
// La Couleur_1 va scroller en arriŠre. // La Couleur_1 va scroller en arrière.
// Donc on transfŠre son utilisation dans l'utilisation de la // Donc on transfère son utilisation dans l'utilisation de la
// couleur qui la précŠde. // couleur qui la précède.
Utilisation_couleur[Couleur_1-1]=Utilisation_couleur[Couleur_1]; Utilisation_couleur[Couleur_1-1]=Utilisation_couleur[Couleur_1];
// Et on transfŠre ses teintes dans les teintes de la couleur qui // Et on transfère ses teintes dans les teintes de la couleur qui
// la précŠde. // la précède.
Palette[Couleur_1-1].R=Palette[Couleur_1].R; Palette[Couleur_1-1].R=Palette[Couleur_1].R;
Palette[Couleur_1-1].V=Palette[Couleur_1].V; Palette[Couleur_1-1].V=Palette[Couleur_1].V;
Palette[Couleur_1-1].B=Palette[Couleur_1].B; Palette[Couleur_1-1].B=Palette[Couleur_1].B;
@ -522,7 +522,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
// s'occuper de notre table de conversion. // s'occuper de notre table de conversion.
if (Table_de_conversion[Couleur_1]>Meilleure_couleur_2) if (Table_de_conversion[Couleur_1]>Meilleure_couleur_2)
// La Couleur_1 avait l'intention de se faire remplacer par une // La Couleur_1 avait l'intention de se faire remplacer par une
// couleur que l'on va (ou que l'on a déjà) bouger en arriŠre. // couleur que l'on va (ou que l'on a déjà) bouger en arrière.
Table_de_conversion[Couleur_1]--; Table_de_conversion[Couleur_1]--;
} }
@ -540,7 +540,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
// utilisation nulle. // utilisation nulle.
Utilisation_couleur[*Nb_couleurs_utilisees]=0; Utilisation_couleur[*Nb_couleurs_utilisees]=0;
// AprŠs avoir éjecté une couleur, on le fait savoir à l'utilisateur par // Après avoir éjecté une couleur, on le fait savoir à l'utilisateur par
// l'intermédiaire du compteur de nombre utilisées. // l'intermédiaire du compteur de nombre utilisées.
Num2str(*Nb_couleurs_utilisees,Chaine,3); Num2str(*Nb_couleurs_utilisees,Chaine,3);
Print_dans_fenetre(186,23,Chaine,CM_Noir,CM_Clair); Print_dans_fenetre(186,23,Chaine,CM_Noir,CM_Clair);
@ -850,7 +850,7 @@ void Bouton_Palette(void)
// On maintient le click, on va donc tester si le curseur bouge // On maintient le click, on va donc tester si le curseur bouge
if (Couleur_temporaire!=Derniere_couleur) if (Couleur_temporaire!=Derniere_couleur)
{ {
// On commence par ordonner la 1Šre et derniŠre couleur du bloc // On commence par ordonner la 1ère et dernière couleur du bloc
if (Premiere_couleur<Couleur_temporaire) if (Premiere_couleur<Couleur_temporaire)
{ {
Debut_block=Premiere_couleur; Debut_block=Premiere_couleur;
@ -859,7 +859,7 @@ void Bouton_Palette(void)
// Affichage du nø de la couleur sélectionnée // Affichage du nø de la couleur sélectionnée
Num2str(Debut_block,Chaine ,3); Num2str(Debut_block,Chaine ,3);
Num2str(Fin_block ,Chaine+4,3); Num2str(Fin_block ,Chaine+4,3);
Chaine[3]=26; // FlŠche vers la droite Chaine[3]=26; // Flèche vers la droite
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair); Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
// Affichage des jauges // Affichage des jauges
@ -876,7 +876,7 @@ void Bouton_Palette(void)
// Affichage du nø de la couleur sélectionnée // Affichage du nø de la couleur sélectionnée
Num2str(Debut_block,Chaine ,3); Num2str(Debut_block,Chaine ,3);
Num2str(Fin_block ,Chaine+4,3); Num2str(Fin_block ,Chaine+4,3);
Chaine[3]=26; // FlŠche vers la droite Chaine[3]=26; // Flèche vers la droite
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair); Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
// Affichage des jauges // Affichage des jauges
@ -1088,7 +1088,7 @@ void Bouton_Palette(void)
// Cas d'un bloc multi-couleur // Cas d'un bloc multi-couleur
Num2str(Debut_block,Chaine ,3); Num2str(Debut_block,Chaine ,3);
Num2str(Fin_block ,Chaine+4,3); Num2str(Fin_block ,Chaine+4,3);
Chaine[3]=26; // FlŠche vers la droite Chaine[3]=26; // Flèche vers la droite
// Affichage dans le block de visu du bloc (dégradé) en cours // Affichage dans le block de visu du bloc (dégradé) en cours
Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block); Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block);
} }
@ -1130,7 +1130,7 @@ void Bouton_Palette(void)
// Cas d'un bloc multi-couleur // Cas d'un bloc multi-couleur
Num2str(Debut_block,Chaine ,3); Num2str(Debut_block,Chaine ,3);
Num2str(Fin_block ,Chaine+4,3); Num2str(Fin_block ,Chaine+4,3);
Chaine[3]=26; // FlŠche vers la droite Chaine[3]=26; // Flèche vers la droite
// Affichage dans le block de visu du bloc (dégradé) en cours // Affichage dans le block de visu du bloc (dégradé) en cours
Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block); Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block);
} }
@ -1672,7 +1672,7 @@ void Bouton_Palette(void)
Il_faut_remapper=1; Il_faut_remapper=1;
break; break;
case SDLK_BACKQUOTE : // Récupération d'une couleur derriŠre le menu case SDLK_BACKQUOTE : // Récupération d'une couleur derrière le menu
case SDLK_COMMA : case SDLK_COMMA :
Recuperer_couleur_derriere_fenetre(&Couleur,&Click); Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
if (Click) if (Click)

View File

@ -48,13 +48,13 @@ int Charger_INI_Seek_pattern(char * Buffer,char * Pattern)
// A partir de chaque lettre de la chaîne Buffer // A partir de chaque lettre de la chaîne Buffer
for (Indice_buffer=0;Buffer[Indice_buffer]!='\0';Indice_buffer++) for (Indice_buffer=0;Buffer[Indice_buffer]!='\0';Indice_buffer++)
{ {
// On regarde si la chaîne Pattern est équivalente la position courante // On regarde si la chaîne Pattern est équivalente à la position courante
// de la chaîne Buffer: // de la chaîne Buffer:
for (Indice_pattern=0;(Pattern[Indice_pattern]!='\0') && (Buffer[Indice_buffer+Indice_pattern]==Pattern[Indice_pattern]);Indice_pattern++); for (Indice_pattern=0;(Pattern[Indice_pattern]!='\0') && (Buffer[Indice_buffer+Indice_pattern]==Pattern[Indice_pattern]);Indice_pattern++);
// Si on a trouvé la chaîne Pattern dans la chaîne Buffer, on renvoie la // Si on a trouvé la chaîne Pattern dans la chaîne Buffer, on renvoie la
// position laquelle on l'a trouvée (+1 pour que si on la trouve au // position à laquelle on l'a trouvée (+1 pour que si on la trouve au
// début ‡a ne renvoie pas la mˆme chose que si on ne l'avait pas // début ça ne renvoie pas la même chose que si on ne l'avait pas
// trouvée): // trouvée):
if (Pattern[Indice_pattern]=='\0') if (Pattern[Indice_pattern]=='\0')
return (Indice_buffer+1); return (Indice_buffer+1);
@ -76,7 +76,7 @@ int Charger_INI_Reach_group(FILE * File,char * Buffer,char * Group)
Group_upper=(char *)malloc(1024); Group_upper=(char *)malloc(1024);
Buffer_upper=(char *)malloc(1024); Buffer_upper=(char *)malloc(1024);
// On commence par se faire une version majuscule du groupe rechercher: // On commence par se faire une version majuscule du groupe à rechercher:
strcpy(Group_upper,Group); strcpy(Group_upper,Group);
Charger_INI_Clear_string(Group_upper); Charger_INI_Clear_string(Group_upper);
@ -241,7 +241,7 @@ int Charger_INI_Get_values(FILE * File,char * Buffer,char * Option,int Nb_values
Option_upper=(char *)malloc(1024); Option_upper=(char *)malloc(1024);
Buffer_upper=(char *)malloc(1024); Buffer_upper=(char *)malloc(1024);
// On commence par se faire une version majuscule de l'option rechercher: // On commence par se faire une version majuscule de l'option à rechercher:
strcpy(Option_upper,Option); strcpy(Option_upper,Option);
Charger_INI_Clear_string(Option_upper); Charger_INI_Clear_string(Option_upper);

View File

@ -134,7 +134,7 @@ void Sauver_INI_Set_value(char * Destination,char * Source,int Nb_values_to_set,
// On commence par inscrire le symbole '$': // On commence par inscrire le symbole '$':
Destination[Indice_destination]='$'; Destination[Indice_destination]='$';
// Puis on y concatŠne la valeur: // Puis on y concatène la valeur:
sprintf(Destination+Indice_destination+1,"%x",Values[Indice_valeur]); sprintf(Destination+Indice_destination+1,"%x",Values[Indice_valeur]);
Indice_destination+=strlen(Destination+Indice_destination); Indice_destination+=strlen(Destination+Indice_destination);
} }
@ -154,14 +154,14 @@ void Sauver_INI_Set_value(char * Destination,char * Source,int Nb_values_to_set,
{ {
// Il reste d'autres valeurs à écrire // Il reste d'autres valeurs à écrire
// On recopie tous les caractŠres de la source jusqu'au suivant qui // On recopie tous les caractères de la source jusqu'au suivant qui
// désigne une valeur: // désigne une valeur:
for (;(!Sauver_INI_char_in_value_alphabet(Source[Indice_source])) && (Source[Indice_source]!='\0');Indice_source++,Indice_destination++) for (;(!Sauver_INI_char_in_value_alphabet(Source[Indice_source])) && (Source[Indice_source]!='\0');Indice_source++,Indice_destination++)
Destination[Indice_destination]=Source[Indice_source]; Destination[Indice_destination]=Source[Indice_source];
} }
else else
{ {
// C'est la derniŠre valeur à initialiser // C'est la dernière valeur à initialiser
// On recopie toute la fin de la ligne: // On recopie toute la fin de la ligne:
for (;Source[Indice_source]!='\0';Indice_source++,Indice_destination++) for (;Source[Indice_source]!='\0';Indice_source++,Indice_destination++)

View File

@ -430,7 +430,7 @@ int Menu_Shade(void)
Buffer_Undo =(word *)malloc(512*sizeof(word)); Buffer_Undo =(word *)malloc(512*sizeof(word));
Pointeur_temp=(word *)malloc(512*sizeof(word)); Pointeur_temp=(word *)malloc(512*sizeof(word));
// Ouverture de la fenˆtre du menu // Ouverture de la fenêtre du menu
Ouvrir_fenetre(310,190,"Shade"); Ouvrir_fenetre(310,190,"Shade");
// Déclaration & tracé du bouton de palette // Déclaration & tracé du bouton de palette

View File

@ -8,7 +8,7 @@
//---------------------- Modifier le pinceau spcial ------------------------- //---------------------- Modifier le pinceau spécial -------------------------
void Modifier_pinceau(int Largeur, int Hauteur) void Modifier_pinceau(int Largeur, int Hauteur)
{ {
@ -192,7 +192,7 @@ void Grossir_pinceau(void)
} }
//--------------------- Passer la ForeColor suivante ----------------------- //--------------------- Passer à la ForeColor suivante -----------------------
void Special_Next_forecolor(void) void Special_Next_forecolor(void)
{ {
Effacer_curseur(); Effacer_curseur();
@ -207,7 +207,7 @@ void Special_Next_forecolor(void)
Afficher_curseur(); Afficher_curseur();
} }
//-------------------- Passer … la ForeColor prcdente ---------------------- //-------------------- Passer à la ForeColor précédente ----------------------
void Special_Previous_forecolor(void) void Special_Previous_forecolor(void)
{ {
Effacer_curseur(); Effacer_curseur();
@ -222,7 +222,7 @@ void Special_Previous_forecolor(void)
Afficher_curseur(); Afficher_curseur();
} }
//--------------------- Passer la BackColor suivante ----------------------- //--------------------- Passer à la BackColor suivante -----------------------
void Special_Next_backcolor(void) void Special_Next_backcolor(void)
{ {
Effacer_curseur(); Effacer_curseur();
@ -231,7 +231,7 @@ void Special_Next_backcolor(void)
Afficher_curseur(); Afficher_curseur();
} }
//-------------------- Passer … la BackColor prcdente ---------------------- //-------------------- Passer à la BackColor précédente ----------------------
void Special_Previous_backcolor(void) void Special_Previous_backcolor(void)
{ {
Effacer_curseur(); Effacer_curseur();
@ -241,7 +241,7 @@ void Special_Previous_backcolor(void)
} }
// ------------------- Scroller l'cran (pas en mode loupe) ------------------ // ------------------- Scroller l'écran (pas en mode loupe) ------------------
void Scroller_ecran(short Decalage_en_X,short Decalage_en_Y) void Scroller_ecran(short Decalage_en_X,short Decalage_en_Y)
{ {
short Decalage_temporaire_X; short Decalage_temporaire_X;
@ -275,7 +275,7 @@ void Scroller_ecran(short Decalage_en_X,short Decalage_en_Y)
} }
// ---------------------- Scroller la fenˆtre de la loupe -------------------- // ---------------------- Scroller la fenêtre de la loupe --------------------
void Scroller_loupe(short Decalage_en_X,short Decalage_en_Y) void Scroller_loupe(short Decalage_en_X,short Decalage_en_Y)
{ {
short Decalage_temporaire_X; short Decalage_temporaire_X;
@ -311,7 +311,7 @@ void Scroller_loupe(short Decalage_en_X,short Decalage_en_Y)
} }
// -------------- Changer le Zoom (grƒce aux touches [+] et [-]) ------------- // -------------- Changer le Zoom (grâce aux touches [+] et [-]) -------------
void Zoom(short Sens) void Zoom(short Sens)
{ {
short Indice; short Indice;

View File

@ -98,7 +98,7 @@ struct Element_de_liste_de_fileselect
char NomComplet[256]; // Le nom du fichier ou du répertoire char NomComplet[256]; // Le nom du fichier ou du répertoire
byte Type; // Type d'élément : 0 = Fichier, 1 = Répertoire byte Type; // Type d'élément : 0 = Fichier, 1 = Répertoire
// données de chaŒnage de la liste // données de chaînage de la liste
struct Element_de_liste_de_fileselect * Suivant; struct Element_de_liste_de_fileselect * Suivant;
struct Element_de_liste_de_fileselect * Precedent; struct Element_de_liste_de_fileselect * Precedent;
}; };
@ -115,11 +115,11 @@ struct Section_d_aide
// Déclaration d'une info sur un dégradé // Déclaration d'une info sur un dégradé
struct T_Degrade_Tableau struct T_Degrade_Tableau
{ {
byte Debut; // PremiŠre couleur du dégradé byte Debut; // Première couleur du dégradé
byte Fin; // DerniŠre couleur du dégradé byte Fin; // Dernière couleur du dégradé
dword Inverse; // "Le dégradé va de Fin Debut" //INT dword Inverse; // "Le dégradé va de Fin à Debut" //INT
dword Melange; // Valeur de mélange du dégradé (0-255) //LONG dword Melange; // Valeur de mélange du dégradé (0-255) //LONG
dword Technique; // Technique utiliser (0-2) //INT dword Technique; // Technique à utiliser (0-2) //INT
}; };
// Déclaration d'une info de shade // Déclaration d'une info de shade
@ -166,10 +166,10 @@ struct Config_Infos_touche
// Structures utilisées pour les descriptions de pages et de liste de pages. // Structures utilisées pour les descriptions de pages et de liste de pages.
// Lorsqu'on gŠrera les animations, il faudra aussi des listes de listes de // Lorsqu'on gèrera les animations, il faudra aussi des listes de listes de
// pages. // pages.
// Ces structures sont manipulées travers des fonctions de gestion du // Ces structures sont manipulées à travers des fonctions de gestion du
// backup dans "graph.c". // backup dans "graph.c".
typedef struct typedef struct
@ -188,19 +188,19 @@ typedef struct
/* /*
short Decalage_X; // Décalage en X de l'écran par rapport au début de l'image short Decalage_X; // Décalage en X de l'écran par rapport au début de l'image
short Decalage_Y; // Décalage en Y de l'écran par rapport au début de l'image short Decalage_Y; // Décalage en Y de l'écran par rapport au début de l'image
short Ancien_Decalage_X; // Le mˆme avant le passage en mode loupe short Ancien_Decalage_X; // Le même avant le passage en mode loupe
short Ancien_Decalage_Y; // Le mˆme avant le passage en mode loupe short Ancien_Decalage_Y; // Le même avant le passage en mode loupe
short Split; // Position en X du bord gauche du split de la loupe short Split; // Position en X du bord gauche du split de la loupe
short X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe short X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe
float Proportion_split; // Proportion de la zone non-zoomée par rapport l'écran float Proportion_split; // Proportion de la zone non-zoomée par rapport à l'écran
byte Loupe_Mode; // On est en mode loupe byte Loupe_Mode; // On est en mode loupe
word Loupe_Facteur; // Facteur de zoom word Loupe_Facteur; // Facteur de zoom
word Loupe_Hauteur; // Largeur de la fenˆtre de zoom word Loupe_Hauteur; // Largeur de la fenêtre de zoom
word Loupe_Largeur; // Hauteur de la fenˆtre de zoom word Loupe_Largeur; // Hauteur de la fenêtre de zoom
short Loupe_Decalage_X; // Decalage horizontal de la fenˆtre de zoom short Loupe_Decalage_X; // Decalage horizontal de la fenêtre de zoom
short Loupe_Decalage_Y; // Decalage vertical de la fenˆtre de zoom short Loupe_Decalage_Y; // Decalage vertical de la fenêtre de zoom
*/ */
} S_Page; } S_Page;