First compile-able version!
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@16 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
		
							parent
							
								
									7c4b0858da
								
							
						
					
					
						commit
						635f8e5154
					
				
							
								
								
									
										4
									
								
								aide.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								aide.c
									
									
									
									
									
								
							@ -220,7 +220,7 @@ void Bouton_Stats(void)
 | 
			
		||||
 | 
			
		||||
  // Affichage de la m‚moire restante
 | 
			
		||||
  Print_dans_fenetre(10,35,"Free memory:",STATS_COULEUR_TITRES,CM_Noir);
 | 
			
		||||
  sprintf(Buffer,"%d bytes",Memoire_libre());
 | 
			
		||||
  sprintf(Buffer,"%ld bytes",Memoire_libre());
 | 
			
		||||
  Print_dans_fenetre(114,35,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
 | 
			
		||||
 | 
			
		||||
  // Affichage de l'espace disque libre
 | 
			
		||||
@ -230,7 +230,7 @@ void Bouton_Stats(void)
 | 
			
		||||
  Taille=Informations_Disque->f_bfree;
 | 
			
		||||
  if (Taille>=0)
 | 
			
		||||
  {
 | 
			
		||||
    sprintf(Buffer,"%d bytes",Taille);
 | 
			
		||||
    sprintf(Buffer,"%ld bytes",Taille);
 | 
			
		||||
    Print_dans_fenetre(146,51,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										135
									
								
								const.h
									
									
									
									
									
								
							
							
						
						
									
										135
									
								
								const.h
									
									
									
									
									
								
							@ -3,27 +3,26 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// D‚claration des constantes ////////////////////////////////////////////////
 | 
			
		||||
// Déclaration des constantes ////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
#define M_PI  3.14159265358979323846264338328
 | 
			
		||||
#define M_2PI 6.28318530717958647692528676656
 | 
			
		||||
 | 
			
		||||
// Note: La taille du fichier GFX2.DAT est d‚finie au d‚but de INIT.C !
 | 
			
		||||
#define POURCENTAGE_VERSION     "96.5%" // Libell‚ du pourcentage de la version á
 | 
			
		||||
// Note: La taille du fichier GFX2.DAT est définie au début de INIT.C !
 | 
			
		||||
#define POURCENTAGE_VERSION     "96.5%" // Libellé du pourcentage de la version á
 | 
			
		||||
#define VERSION1                  2     // |
 | 
			
		||||
#define VERSION2                  0     // |_ Num‚ro de version d‚coup‚ en
 | 
			
		||||
#define VERSION2                  0     // |_ Numéro de version découpé en
 | 
			
		||||
#define BETA1                     96    // |  plusieurs parties => 2.0 á95.5%
 | 
			
		||||
#define BETA2                     5     // |
 | 
			
		||||
#define ALPHA_BETA                "á"   // Type de la version "à" ou "á"
 | 
			
		||||
#define TAILLE_FICHIER_CONFIG     10351 // Taille du fichier GFX2.CFG
 | 
			
		||||
#define NB_MODES_VIDEO            60    // Nombre de modes vid‚o
 | 
			
		||||
#define NB_BOUTONS                38    // Nombre de boutons … g‚rer
 | 
			
		||||
#define NB_MODES_VIDEO            60    // Nombre de modes vidéo
 | 
			
		||||
#define NB_BOUTONS                38    // Nombre de boutons à gérer
 | 
			
		||||
#define NB_TOUCHES                134   // Nombre de combinaisons de touches
 | 
			
		||||
#define NB_TOUCHES_SPECIALES      72    // Nombre de touches sp‚ciales
 | 
			
		||||
#define NB_OPERATIONS             32    // Nombre d'op‚rations g‚r‚es par le moteur
 | 
			
		||||
#define NB_TOUCHES_SPECIALES      72    // Nombre de touches spéciales
 | 
			
		||||
#define NB_OPERATIONS             32    // Nombre d'opérations gérées par le moteur
 | 
			
		||||
#define NB_FACTEURS_DE_ZOOM       12    // Nombre de facteurs de zoom
 | 
			
		||||
#define LARGEUR_MENU              254   // Largeur du menu en taille r‚elle
 | 
			
		||||
#define HAUTEUR_MENU              44    // Hauteur du menu en taille r‚elle
 | 
			
		||||
#define LARGEUR_MENU              254   // Largeur du menu en taille réelle
 | 
			
		||||
#define HAUTEUR_MENU              44    // Hauteur du menu en taille réelle
 | 
			
		||||
#define NB_SPRITES_CURSEUR        8     // Nombre de sprites de curseur
 | 
			
		||||
#define LARGEUR_SPRITE_CURSEUR    15    // Largeur d'un sprite de curseur en pixels
 | 
			
		||||
#define HAUTEUR_SPRITE_CURSEUR    15    // Hauteur d'un sprite de curseur en pixels
 | 
			
		||||
@ -31,37 +30,37 @@
 | 
			
		||||
#define NB_SPRITES_MENU           9     // Nombre de sprites de menu
 | 
			
		||||
#define LARGEUR_SPRITE_MENU       14    // Largeur d'un sprite de menu en pixels
 | 
			
		||||
#define HAUTEUR_SPRITE_MENU       14    // Hauteur d'un sprite de menu en pixels
 | 
			
		||||
#define LARGEUR_PINCEAU           16    // Largeur d'un sprite de pinceau pr‚d‚fini
 | 
			
		||||
#define HAUTEUR_PINCEAU           16    // Hauteur d'un sprite de pinceau pr‚d‚fini
 | 
			
		||||
#define LARGEUR_PINCEAU           16    // Largeur d'un sprite de pinceau prédéfini
 | 
			
		||||
#define HAUTEUR_PINCEAU           16    // Hauteur d'un sprite de pinceau prédéfini
 | 
			
		||||
#define TAILLE_MAXI_PINCEAU       127   // Taille maxi des pinceaux
 | 
			
		||||
#define NB_SPRITES_DRIVES         5     // Nombre de sprites de drives
 | 
			
		||||
#define LARGEUR_SPRITE_DRIVE      7     // Largeur d'un sprite de drive en pixels
 | 
			
		||||
#define HAUTEUR_SPRITE_DRIVE      7     // Hauteur d'un sprite de drive en pixels
 | 
			
		||||
#define NB_SPRITES_PINCEAU        48    // Nombre de sprites de pinceau
 | 
			
		||||
#define NB_TRAMES_PREDEFINIES     12    // Nombre de trames pr‚d‚finies
 | 
			
		||||
#define TAILLE_PILE_OPERATIONS    16    // Nombre maximum d'‚l‚ments utilis‚s par les op‚rations
 | 
			
		||||
#define TAILLE_MAXI_PATH          37    // Taille maximum affichable du r‚pertoire courant dans les fenˆtres du fileselect
 | 
			
		||||
#define NB_TRAMES_PREDEFINIES     12    // Nombre de trames prédéfinies
 | 
			
		||||
#define TAILLE_PILE_OPERATIONS    16    // Nombre maximum d'éléments utilisés par les opérations
 | 
			
		||||
#define TAILLE_MAXI_PATH          37    // Taille maximum affichable du répertoire courant dans les fenêtres du fileselect
 | 
			
		||||
#define TAILLE_COMMENTAIRE        32    // Taille maxi des commentaires pour le PKM
 | 
			
		||||
#define TAILLE_NOM_CONSTRUCTEUR   24    // Taille maxi du nom de constructeur VESA dans la fenˆtre de stats.
 | 
			
		||||
#define TAILLE_NOM_CONSTRUCTEUR   24    // Taille maxi du nom de constructeur VESA dans la fenêtre de stats.
 | 
			
		||||
#define NB_PAGES_UNDO_MAX         99    // Nombre maximal de pages d'undo
 | 
			
		||||
#define FACTEUR_DE_ZOOM_PAR_DEFAUT 4    // Facteur de zoom initial
 | 
			
		||||
#define NB_SECTIONS_AIDE          3     // Nombre de sections dans l'aide
 | 
			
		||||
 | 
			
		||||
// On impose … l'allocation dynamique des pages de backups de conserver un
 | 
			
		||||
// minimum de 256 Ko pour que le reste du programme puisse continuer …
 | 
			
		||||
// On impose à l'allocation dynamique des pages de backups de conserver un
 | 
			
		||||
// minimum de 256 Ko pour que le reste du programme puisse continuer à
 | 
			
		||||
// fonctionner.
 | 
			
		||||
#define QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER (256*1024)
 | 
			
		||||
 | 
			
		||||
#define A_GAUCHE                  1     // Indique une direction (ou click) … gauche
 | 
			
		||||
#define A_DROITE                  2     // Indique une direction (ou click) … droite
 | 
			
		||||
#define A_GAUCHE                  1     // Indique une direction (ou click) à gauche
 | 
			
		||||
#define A_DROITE                  2     // Indique une direction (ou click) à droite
 | 
			
		||||
 | 
			
		||||
#define LARGEUR_BARRE_SPLIT       6     // [ Û±±° ]
 | 
			
		||||
#define PROPORTION_SPLIT          0.3   // proportion de la zone non-zoom‚e en largeur par rapport … l'‚cran
 | 
			
		||||
#define NB_PIXELS_ZOOMES_MIN      4     // Nombre minimal de pixels zoom‚s en largeur (Note: En dessous de 4, on ne peut plus scroller!)
 | 
			
		||||
#define PROPORTION_SPLIT          0.3   // proportion de la zone non-zoomée en largeur par rapport à l'écran
 | 
			
		||||
#define NB_PIXELS_ZOOMES_MIN      4     // Nombre minimal de pixels zoomés en largeur (Note: En dessous de 4, on ne peut plus scroller!)
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rents formats de fichiers:
 | 
			
		||||
  // Les différents formats de fichiers:
 | 
			
		||||
 | 
			
		||||
#define NB_FORMATS_CONNUS         12    // Nombre de formats connus (devrait ˆtre la valeur maximale de NB_FORMATS_LOAD et NB_FORMATS_SAVE, mais plus g‚n‚ralement: Card({NB_FORMATS_LOAD} UNION {NB_FORMATS_SAVE}))
 | 
			
		||||
#define NB_FORMATS_CONNUS         12    // Nombre de formats connus (devrait être la valeur maximale de NB_FORMATS_LOAD et NB_FORMATS_SAVE, mais plus généralement: Card({NB_FORMATS_LOAD} UNION {NB_FORMATS_SAVE}))
 | 
			
		||||
#define NB_FORMATS_LOAD           12    // Nombre de formats que l'on sait charger
 | 
			
		||||
#define NB_FORMATS_SAVE           12    // Nombre de formats que l'on sait sauver
 | 
			
		||||
 | 
			
		||||
@ -69,21 +68,21 @@ enum FORMATS_RECONNUS
 | 
			
		||||
{
 | 
			
		||||
  FORMAT_PKM=1,      // |
 | 
			
		||||
  FORMAT_LBM,        // |
 | 
			
		||||
  FORMAT_GIF,        // |    Il faudra penser … r‚ordonner
 | 
			
		||||
  FORMAT_BMP,        // |  les donn‚es sur les formats dans
 | 
			
		||||
  FORMAT_GIF,        // |    Il faudra penser à réordonner
 | 
			
		||||
  FORMAT_BMP,        // |  les données sur les formats dans
 | 
			
		||||
  FORMAT_PCX,        // |  GLOBAL.H si on modifie ces cons-
 | 
			
		||||
  FORMAT_IMG,        // |_ tantes.
 | 
			
		||||
  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_CEL,        // |  donn‚es.
 | 
			
		||||
  FORMAT_CEL,        // |  données.
 | 
			
		||||
  FORMAT_KCF,        // |
 | 
			
		||||
  FORMAT_PAL         // |
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define FORMAT_PAR_DEFAUT    FORMAT_PKM // Format par d‚faut (ah bon? oh!)
 | 
			
		||||
#define FORMAT_PAR_DEFAUT    FORMAT_PKM // Format par défaut (ah bon? oh!)
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rentes erreurs:
 | 
			
		||||
  // Les différentes erreurs:
 | 
			
		||||
 | 
			
		||||
enum CODES_D_ERREURS
 | 
			
		||||
{
 | 
			
		||||
@ -92,32 +91,32 @@ enum CODES_D_ERREURS
 | 
			
		||||
  ERREUR_CFG_ABSENT,            // Le fichier GFX2.CFG est absent
 | 
			
		||||
  ERREUR_CFG_CORROMPU,          // Mauvais fichier GFX2.CFG
 | 
			
		||||
  ERREUR_CFG_ANCIEN,            // Ancienne version du fichier GFX2.CFG
 | 
			
		||||
  ERREUR_MEMOIRE,               // Plus de m‚moire
 | 
			
		||||
  ERREUR_MEMOIRE,               // Plus de mémoire
 | 
			
		||||
  ERREUR_LIGNE_COMMANDE,        // Erreur sur la ligne de commande
 | 
			
		||||
  ERREUR_DRIVER_SOURIS,         // Pas de driver souris install‚
 | 
			
		||||
  ERREUR_MODE_VESA_INVALIDE,    // Mode VESA demand‚ sur la ligne de commande invalide
 | 
			
		||||
  ERREUR_MODE_INTERDIT,         // Mode demand‚ sur la ligne de commande interdit (coch‚ en noir)
 | 
			
		||||
  ERREUR_DRIVER_SOURIS,         // Pas de driver souris installé
 | 
			
		||||
  ERREUR_MODE_VESA_INVALIDE,    // Mode VESA demandé sur la ligne de commande invalide
 | 
			
		||||
  ERREUR_MODE_INTERDIT,         // Mode demandé sur la ligne de commande interdit (coché en noir)
 | 
			
		||||
  ERREUR_NUMERO_MODE,           // Erreur de choix de mode sur la ligne de commande
 | 
			
		||||
  ERREUR_SAUVEGARDE_CFG,        // Erreur en ‚criture pour GFX2.CFG
 | 
			
		||||
  ERREUR_REPERTOIRE_DISPARU,    // Le r‚pertoire de lancement n'existe plus
 | 
			
		||||
  ERREUR_SAUVEGARDE_CFG,        // Erreur en écriture pour GFX2.CFG
 | 
			
		||||
  ERREUR_REPERTOIRE_DISPARU,    // Le répertoire de lancement n'existe plus
 | 
			
		||||
  ERREUR_INI_ABSENT,            // Le fichier GFX2.INI est absent
 | 
			
		||||
  ERREUR_INI_CORROMPU,          // Le fichier GFX2.INI est corrompu
 | 
			
		||||
  ERREUR_SAUVEGARDE_INI,        // Le fichier GFX2.INI n'est pas inscriptible
 | 
			
		||||
  ERREUR_SORRY_SORRY_SORRY      // On le refera plus, promis
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rents types de modes vid‚os
 | 
			
		||||
  // Les différents types de modes vidéos
 | 
			
		||||
 | 
			
		||||
enum TYPES_DE_MODES_VIDEO
 | 
			
		||||
{
 | 
			
		||||
    MODE_SDL
 | 
			
		||||
  /*MODE_MCGA,
 | 
			
		||||
  MODE_X,
 | 
			
		||||
  MODE_VESA,       // Attention! Si on change la num‚rotation, il faut
 | 
			
		||||
  MODE_VESA,       // Attention! Si on change la numérotation, il faut
 | 
			
		||||
  MODE_XVESA       // que les 2 plus grandes valeurs soient ces 2 modes!*/
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rents modes vid‚os (avec leur nø d'ordre)
 | 
			
		||||
  // Les différents modes vidéos (avec leur nø d'ordre)
 | 
			
		||||
 | 
			
		||||
enum MODES_VIDEO
 | 
			
		||||
{
 | 
			
		||||
@ -183,18 +182,18 @@ enum MODES_VIDEO
 | 
			
		||||
  MODE_1024_768 // 59
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rentes cat‚gories de bouton:
 | 
			
		||||
  // Les différentes catégories de bouton:
 | 
			
		||||
 | 
			
		||||
enum FAMILLES_DE_BOUTONS
 | 
			
		||||
{
 | 
			
		||||
  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_TOOLBAR,          // Cache/Montre la barre d'outils
 | 
			
		||||
  FAMILLE_EFFETS            // Effets
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rentes formes de bouton:
 | 
			
		||||
  // Les différentes formes de bouton:
 | 
			
		||||
 | 
			
		||||
enum FORMES_DE_BOUTONS
 | 
			
		||||
{
 | 
			
		||||
@ -204,7 +203,7 @@ enum FORMES_DE_BOUTONS
 | 
			
		||||
  FORME_BOUTON_TRIANGLE_BAS_DROITE    // Ex: Rectangles pleins
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rentes formes de curseur:
 | 
			
		||||
  // Les différentes formes de curseur:
 | 
			
		||||
 | 
			
		||||
enum FORMES_DE_CURSEUR
 | 
			
		||||
{
 | 
			
		||||
@ -221,7 +220,7 @@ enum FORMES_DE_CURSEUR
 | 
			
		||||
  FORME_CURSEUR_ROTATE_XOR
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rentes formes de pinceaux (les types de pinceaux doivent ˆtre au d‚but)
 | 
			
		||||
  // Les différentes formes de pinceaux (les types de pinceaux doivent être au début)
 | 
			
		||||
 | 
			
		||||
enum FORMES_DE_PINCEAUX
 | 
			
		||||
{
 | 
			
		||||
@ -237,18 +236,18 @@ enum FORMES_DE_PINCEAUX
 | 
			
		||||
  FORME_PINCEAU_LOSANGE,
 | 
			
		||||
  FORME_PINCEAU_ROND_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_POINT, // Utilis‚ pour r‚duire de pinceau … 1 point dans certaines op‚rations
 | 
			
		||||
  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_BROSSE_COULEUR,
 | 
			
		||||
  FORME_PINCEAU_BROSSE_MONOCHROME
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rents ‚tats de bouton:
 | 
			
		||||
  // Les différents états de bouton:
 | 
			
		||||
 | 
			
		||||
#define BOUTON_RELACHE 0
 | 
			
		||||
#define BOUTON_ENFONCE 1
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rents modes de Shade
 | 
			
		||||
  // Les différents modes de Shade
 | 
			
		||||
 | 
			
		||||
enum MODES_DE_SHADE
 | 
			
		||||
{
 | 
			
		||||
@ -257,7 +256,7 @@ enum MODES_DE_SHADE
 | 
			
		||||
  MODE_SHADE_NOSAT
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rents chunks du fichier .CFG
 | 
			
		||||
  // Les différents chunks du fichier .CFG
 | 
			
		||||
 | 
			
		||||
enum CHUNKS_CFG
 | 
			
		||||
{
 | 
			
		||||
@ -272,7 +271,7 @@ enum CHUNKS_CFG
 | 
			
		||||
  CHUNK_QUICK_SHADE
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rents types de lecteurs:
 | 
			
		||||
  // Les différents types de lecteurs:
 | 
			
		||||
 | 
			
		||||
enum TYPES_DE_LECTEURS
 | 
			
		||||
{
 | 
			
		||||
@ -280,10 +279,10 @@ enum TYPES_DE_LECTEURS
 | 
			
		||||
  DRIVE_FLOPPY_5_25,  // 1: Diskette 5"¬
 | 
			
		||||
  DRIVE_HDD,          // 2: HDD
 | 
			
		||||
  DRIVE_CDROM,        // 3: CD-ROM
 | 
			
		||||
  DRIVE_NETWORK       // 4: Logique (r‚seau?)
 | 
			
		||||
  DRIVE_NETWORK       // 4: Logique (réseau?)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  // Les diff‚rents boutons:
 | 
			
		||||
  // Les différents boutons:
 | 
			
		||||
 | 
			
		||||
enum NUMEROS_DE_BOUTONS
 | 
			
		||||
{
 | 
			
		||||
@ -327,7 +326,7 @@ enum NUMEROS_DE_BOUTONS
 | 
			
		||||
  BOUTON_CACHER
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  // Les actions des touches sp‚ciales
 | 
			
		||||
  // Les actions des touches spéciales
 | 
			
		||||
 | 
			
		||||
enum ACTIONS_SPECIALES
 | 
			
		||||
{
 | 
			
		||||
@ -337,9 +336,9 @@ enum ACTIONS_SPECIALES
 | 
			
		||||
  SPECIAL_MOUSE_RIGHT,             // |
 | 
			
		||||
  SPECIAL_CLICK_LEFT,              // |  Il faut garder
 | 
			
		||||
  SPECIAL_CLICK_RIGHT,             // |  ces constantes
 | 
			
		||||
  SPECIAL_NEXT_FORECOLOR,          // |  au d‚but de la
 | 
			
		||||
  SPECIAL_NEXT_FORECOLOR,          // |  au début de la
 | 
			
		||||
  SPECIAL_PREVIOUS_FORECOLOR,      // |_ liste car elles
 | 
			
		||||
  SPECIAL_NEXT_BACKCOLOR,          // |  sont r‚utilis‚es
 | 
			
		||||
  SPECIAL_NEXT_BACKCOLOR,          // |  sont réutilisées
 | 
			
		||||
  SPECIAL_PREVIOUS_BACKCOLOR,      // |  avec leurs valeurs
 | 
			
		||||
  SPECIAL_RETRECIR_PINCEAU,        // |  brutes en ASM dans
 | 
			
		||||
  SPECIAL_GROSSIR_PINCEAU,         // |  Get_input !!!
 | 
			
		||||
@ -394,7 +393,7 @@ enum ACTIONS_SPECIALES
 | 
			
		||||
  SPECIAL_MASK_MENU,        // |  SPECIAL_SHADE_MODE, et que le
 | 
			
		||||
  SPECIAL_GRID_MODE,        // |  dernier soit SPECIAL_TILING_MENU,
 | 
			
		||||
  SPECIAL_GRID_MENU,        // |_ et que seuls des effets soient
 | 
			
		||||
  SPECIAL_SIEVE_MODE,       // |  d‚finis entre ces deux l… car
 | 
			
		||||
  SPECIAL_SIEVE_MODE,       // |  définis entre ces deux là car
 | 
			
		||||
  SPECIAL_SIEVE_MENU,       // |  des tests sur cet intervalle sont
 | 
			
		||||
  SPECIAL_COLORIZE_MODE,    // |  faits dans le moteur.
 | 
			
		||||
  SPECIAL_COLORIZE_MENU,    // |
 | 
			
		||||
@ -405,15 +404,15 @@ enum ACTIONS_SPECIALES
 | 
			
		||||
  SPECIAL_TILING_MENU       // |
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  // D‚finition des op‚rations:
 | 
			
		||||
  // Définition des opérations:
 | 
			
		||||
 | 
			
		||||
enum OPERATIONS
 | 
			
		||||
{
 | 
			
		||||
  OPERATION_DESSIN_CONTINU,     // Dessin … la main continu
 | 
			
		||||
  OPERATION_DESSIN_DISCONTINU,  // Dessin … la main discontinu
 | 
			
		||||
  OPERATION_DESSIN_POINT,       // Dessin … la main point par point
 | 
			
		||||
  OPERATION_DESSIN_CONTINU,     // Dessin à la main continu
 | 
			
		||||
  OPERATION_DESSIN_DISCONTINU,  // Dessin à la main discontinu
 | 
			
		||||
  OPERATION_DESSIN_POINT,       // Dessin à la main point par point
 | 
			
		||||
  OPERATION_LIGNE,              // Lignes
 | 
			
		||||
  OPERATION_K_LIGNE,            // Lignes reli‚es
 | 
			
		||||
  OPERATION_K_LIGNE,            // Lignes reliées
 | 
			
		||||
  OPERATION_LIGNES_CENTREES,    // Lignes concentriques
 | 
			
		||||
  OPERATION_RECTANGLE_VIDE,     // Rectangle vide
 | 
			
		||||
  OPERATION_RECTANGLE_PLEIN,    // Rectangle plein
 | 
			
		||||
@ -425,18 +424,18 @@ enum OPERATIONS
 | 
			
		||||
  OPERATION_REMPLACER,          // Remplacer couleur
 | 
			
		||||
  OPERATION_PRISE_BROSSE,       // Prise de brosse rectangulaire
 | 
			
		||||
  OPERATION_POLYBROSSE,         // Prise d'une brosse multiforme
 | 
			
		||||
  OPERATION_PIPETTE,            // R‚cup‚ration d'une couleur
 | 
			
		||||
  OPERATION_LOUPE,              // Positionnement de la fenˆtre de loupe
 | 
			
		||||
  OPERATION_COURBE_3_POINTS,    // Courbe … 3 points
 | 
			
		||||
  OPERATION_COURBE_4_POINTS,    // Courbe … 4 points
 | 
			
		||||
  OPERATION_PIPETTE,            // Récupération d'une couleur
 | 
			
		||||
  OPERATION_LOUPE,              // Positionnement de la fenêtre de loupe
 | 
			
		||||
  OPERATION_COURBE_3_POINTS,    // Courbe à 3 points
 | 
			
		||||
  OPERATION_COURBE_4_POINTS,    // Courbe à 4 points
 | 
			
		||||
  OPERATION_SPRAY,              // Spray
 | 
			
		||||
  OPERATION_POLYGONE,           // Polygone
 | 
			
		||||
  OPERATION_POLYFORM,           // Polyforme
 | 
			
		||||
  OPERATION_POLYFILL,           // Polyfill
 | 
			
		||||
  OPERATION_FILLED_POLYFORM,    // Polyforme rempli
 | 
			
		||||
  OPERATION_SCROLL,             // Scroll
 | 
			
		||||
  OPERATION_CERCLE_DEGRADE,     // Cercles d‚grad‚s
 | 
			
		||||
  OPERATION_ELLIPSE_DEGRADEE,   // Ellipses d‚grad‚es
 | 
			
		||||
  OPERATION_CERCLE_DEGRADE,     // Cercles dégradés
 | 
			
		||||
  OPERATION_ELLIPSE_DEGRADEE,   // Ellipses dégradées
 | 
			
		||||
  OPERATION_TOURNER_BROSSE,     // Faire tourner brosse
 | 
			
		||||
  OPERATION_ETIRER_BROSSE,      // Etirer brosse
 | 
			
		||||
  OPERATION_DEFORMER_BROSSE,    // Deformer brosse
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										81
									
								
								divers.c
									
									
									
									
									
								
							
							
						
						
									
										81
									
								
								divers.c
									
									
									
									
									
								
							@ -277,3 +277,84 @@ long Freespace(byte Numero_de_lecteur)
 | 
			
		||||
	puts("Freespace non implémenté!\n");
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Couleur_ILBM_line(word Pos_X, word Vraie_taille_ligne)
 | 
			
		||||
{
 | 
			
		||||
	puts("Couleur_ILBM_line non implémenté!\n");
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Palette_256_to_64(T_Palette Palette)
 | 
			
		||||
{
 | 
			
		||||
	puts("Palette_256_to_64 non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Palette_64_to_256(T_Palette Palette)
 | 
			
		||||
{
 | 
			
		||||
	puts("Palette_64_to_256 non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Effet_Colorize_interpole  (word X,word Y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
	puts("Effet_Colorize_interpole non implémenté!\n");
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Effet_Colorize_additif    (word X,word Y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
	puts("Effet_Colorize_additif non implémenté!\n");
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Effet_Colorize_soustractif(word X,word Y,byte Couleur)
 | 
			
		||||
{
 | 
			
		||||
	puts("Effet_Colorize_soustractif non implémenté!\n");
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Tester_chrono(void)
 | 
			
		||||
{
 | 
			
		||||
	puts("Tester_chrono non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Flip_Y_LOWLEVEL(void)
 | 
			
		||||
{
 | 
			
		||||
	puts("Flip_Y_LOWLEVEL non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Flip_X_LOWLEVEL(void)
 | 
			
		||||
{
 | 
			
		||||
	puts("Flip_X_LOWLEVEL non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Rotate_180_deg_LOWLEVEL(void)
 | 
			
		||||
{
 | 
			
		||||
	puts("Rotate_180_deg_LOWLEVEL non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Tempo_jauge(byte Vitesse)
 | 
			
		||||
{
 | 
			
		||||
	puts("Tempo_jauge non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Meilleure_couleur_sans_exclusion(byte Rouge,byte Vert,byte Bleu)
 | 
			
		||||
{
 | 
			
		||||
	puts("Meilleure_couleur_sans_exclusion non implémenté!\n");
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Set_color(byte Couleur, byte Rouge, byte Vert, byte Bleu)
 | 
			
		||||
{
 | 
			
		||||
	puts("Set_color non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Scroll_picture(short Decalage_X,short Decalage_Y)
 | 
			
		||||
{
 | 
			
		||||
	puts("Scroll_picture non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
byte Get_key(void)
 | 
			
		||||
{
 | 
			
		||||
	puts("Get_key non implémenté!\n");
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								linux.c
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								linux.c
									
									
									
									
									
								
							@ -22,3 +22,8 @@ int filelength(int fichier)
 | 
			
		||||
	printf("filelenght non implémenté!\n");
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void itoa(int source,char* dest, int longueur)
 | 
			
		||||
{
 | 
			
		||||
	printf("itoa non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								linux.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								linux.h
									
									
									
									
									
								
							@ -8,4 +8,7 @@ struct find_t {
 | 
			
		||||
 | 
			
		||||
int filelength(int);
 | 
			
		||||
 | 
			
		||||
void itoa(int source,char* dest, int longueur);
 | 
			
		||||
/* Integer TO Ascii */
 | 
			
		||||
 | 
			
		||||
#define _A_SUBDIR 1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										9
									
								
								makefile
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								makefile
									
									
									
									
									
								
							@ -1,9 +1,9 @@
 | 
			
		||||
CC = gcc
 | 
			
		||||
COPT = -Wall -Os -c
 | 
			
		||||
LOPT = -lSDL
 | 
			
		||||
LOPT = -lSDL -o grafx2
 | 
			
		||||
 | 
			
		||||
gfx2 : main.o init.o graph.o sdlscreen.o divers.o special.o boutons.o palette.o aide.o operatio.o loadsave.o readline.o moteur.o files.o op_c.o linux.o
 | 
			
		||||
	$(CC) $(LOPT) main.o graph.o divers.o init.o files.o linux.o loadsave.o boutons.o moteur.o sdlscreen.o aide.o palette.o -o grafx2
 | 
			
		||||
gfx2 : main.o init.o graph.o sdlscreen.o divers.o special.o boutons.o palette.o aide.o operatio.o loadsave.o readline.o moteur.o files.o op_c.o linux.o op_asm.o
 | 
			
		||||
	$(CC) $(LOPT) main.o graph.o divers.o init.o files.o linux.o loadsave.o boutons.o moteur.o sdlscreen.o aide.o palette.o operatio.o op_c.o readline.o special.o op_asm.o
 | 
			
		||||
 | 
			
		||||
main.o : graph.o const.h struct.h global.h graph.h divers.h init.h boutons.h moteur.h files.h loadsave.h main.c readini.h saveini.h
 | 
			
		||||
	$(CC) $(COPT) main.c
 | 
			
		||||
@ -47,6 +47,9 @@ loadsave.o : const.h struct.h global.h divers.h graph.h loadsave.c pages.h op_c.
 | 
			
		||||
op_c.o : struct.h op_c.c op_c.h op_asm.h
 | 
			
		||||
	$(CC) $(COPT) op_c.c
 | 
			
		||||
 | 
			
		||||
op_asm.o : op_asm.h op_asm.c
 | 
			
		||||
	$(CC) $(COPT) op_asm.c
 | 
			
		||||
 | 
			
		||||
sdlscreen.o : sdlscreen.c sdlscreen.h
 | 
			
		||||
	$(CC) $(COPT) sdlscreen.c
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										176
									
								
								moteur.c
									
									
									
									
									
								
							
							
						
						
									
										176
									
								
								moteur.c
									
									
									
									
									
								
							@ -17,13 +17,13 @@
 | 
			
		||||
#include "operatio.h"
 | 
			
		||||
#include "shade.h"
 | 
			
		||||
 | 
			
		||||
//  On d‚clare m‚chamment le prototype de Erreur pour ‚viter de faire un
 | 
			
		||||
//  On déclare méchamment le prototype de Erreur pour éviter de faire un
 | 
			
		||||
// fichier "main.h":
 | 
			
		||||
void Erreur(int Code);
 | 
			
		||||
 | 
			
		||||
//---------- Annuler les effets des modes de dessin (sauf la grille) ---------
 | 
			
		||||
 | 
			
		||||
  // Variables m‚morisants les anciens effets
 | 
			
		||||
  // Variables mémorisants les anciens effets
 | 
			
		||||
 | 
			
		||||
byte Shade_Mode_avant_annulation;
 | 
			
		||||
byte Quick_shade_Mode_avant_annulation;
 | 
			
		||||
@ -272,22 +272,22 @@ void Tracer_cadre_de_bouton_du_menu(byte Numero,byte Enfonce)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//---------------------- D‚senclenchement d'un bouton ------------------------
 | 
			
		||||
//---------------------- Désenclenchement d'un bouton ------------------------
 | 
			
		||||
void Desenclencher_bouton(int Numero)
 | 
			
		||||
{
 | 
			
		||||
  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);
 | 
			
		||||
    // On considŠre que le bouton est relƒch‚
 | 
			
		||||
    // On considère que le bouton est relƒché
 | 
			
		||||
    Bouton[Numero].Enfonce=BOUTON_RELACHE;
 | 
			
		||||
    // On appelle le d‚senclenchement particulier au bouton:
 | 
			
		||||
    // On appelle le désenclenchement particulier au bouton:
 | 
			
		||||
    Bouton[Numero].Desenclencher();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//-Enclenchement d'un bouton (et d‚senclenchement de ceux de la mˆme famille)-
 | 
			
		||||
//-Enclenchement d'un bouton (et désenclenchement de ceux de la même famille)-
 | 
			
		||||
void Enclencher_bouton(int Numero,byte Click)
 | 
			
		||||
{
 | 
			
		||||
  int Famille;
 | 
			
		||||
@ -295,50 +295,50 @@ void Enclencher_bouton(int Numero,byte Click)
 | 
			
		||||
 | 
			
		||||
  Effacer_curseur();
 | 
			
		||||
 | 
			
		||||
  // On note d‚j… la famille du bouton (La "Famiglia" c'est sacr‚)
 | 
			
		||||
  // On note déjà la famille du bouton (La "Famiglia" c'est sacré)
 | 
			
		||||
  Famille=Bouton[Numero].Famille;
 | 
			
		||||
 | 
			
		||||
  switch (Famille)
 | 
			
		||||
  {
 | 
			
		||||
    case FAMILLE_TOOLBAR: // On ne fait rien (on pr‚serve les interruptions)
 | 
			
		||||
    case FAMILLE_TOOLBAR: // On ne fait rien (on préserve les interruptions)
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case FAMILLE_INTERRUPTION: // Petit cas sp‚cial dans la famille "Interruption":
 | 
			
		||||
    case FAMILLE_INTERRUPTION: // Petit cas spécial dans la famille "Interruption":
 | 
			
		||||
      if ((Numero!=BOUTON_LOUPE) || (!Loupe_Mode))
 | 
			
		||||
      // Pour chaque bouton:
 | 
			
		||||
      for (Curseur=0; Curseur<NB_BOUTONS; Curseur++)
 | 
			
		||||
        // S'il est de la mˆme famille
 | 
			
		||||
        // S'il est de la même famille
 | 
			
		||||
        if (
 | 
			
		||||
             (Curseur!=Numero) &&
 | 
			
		||||
             (Bouton[Curseur].Famille==FAMILLE_INTERRUPTION) &&
 | 
			
		||||
             (  (Curseur!=BOUTON_LOUPE) ||
 | 
			
		||||
               ((Curseur==BOUTON_LOUPE) && (!Loupe_Mode)) )
 | 
			
		||||
           )
 | 
			
		||||
          // Alors on d‚senclenche le bouton
 | 
			
		||||
          // Alors on désenclenche le bouton
 | 
			
		||||
          Desenclencher_bouton(Curseur);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    default:
 | 
			
		||||
      // On d‚senclenche D'ABORD les interruptions
 | 
			
		||||
      // On désenclenche D'ABORD les interruptions
 | 
			
		||||
      // Pour chaque bouton:
 | 
			
		||||
      for (Curseur=0; Curseur<NB_BOUTONS; Curseur++)
 | 
			
		||||
        // S'il est de la mˆme famille
 | 
			
		||||
        // S'il est de la même famille
 | 
			
		||||
        if ( (Curseur!=Numero)
 | 
			
		||||
          && (Bouton[Curseur].Famille==FAMILLE_INTERRUPTION)
 | 
			
		||||
          // Et que ce n'est pas la loupe, ou alors qu'on n'est pas en mode loupe
 | 
			
		||||
          && (!(Loupe_Mode && (Curseur==BOUTON_LOUPE))) )
 | 
			
		||||
          // Alors on d‚senclenche le bouton
 | 
			
		||||
          // Alors on désenclenche le bouton
 | 
			
		||||
          Desenclencher_bouton(Curseur);
 | 
			
		||||
      // Pour chaque bouton:
 | 
			
		||||
      for (Curseur=0; Curseur<NB_BOUTONS; Curseur++)
 | 
			
		||||
        // S'il est de la mˆme famille
 | 
			
		||||
        // S'il est de la même famille
 | 
			
		||||
        if ( (Curseur!=Numero)
 | 
			
		||||
          && (Bouton[Curseur].Famille==Famille) )
 | 
			
		||||
          // Alors on d‚senclenche le bouton
 | 
			
		||||
          // Alors on désenclenche le bouton
 | 
			
		||||
          Desenclencher_bouton(Curseur);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // On affiche le cadre autour du bouton de fa‡on … 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);
 | 
			
		||||
 | 
			
		||||
  Afficher_curseur();
 | 
			
		||||
@ -346,7 +346,7 @@ void Enclencher_bouton(int Numero,byte Click)
 | 
			
		||||
  // On attend ensuite que l'utilisateur lƒche son bouton:
 | 
			
		||||
  Attendre_fin_de_click();
 | 
			
		||||
 | 
			
		||||
  // On considŠre que le bouton est enfonc‚
 | 
			
		||||
  // On considère que le bouton est enfoncé
 | 
			
		||||
  Bouton[Numero].Enfonce=BOUTON_ENFONCE;
 | 
			
		||||
 | 
			
		||||
  // Puis on se contente d'appeler l'action correspondant au bouton:
 | 
			
		||||
@ -358,8 +358,8 @@ void Enclencher_bouton(int Numero,byte Click)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//--- D‚placer la barre de s‚paration entre la partie zoom‚e et la partie ----
 | 
			
		||||
//------------------ non-zoom‚e lorsqu'on est en mode loupe ------------------
 | 
			
		||||
//--- Déplacer la barre de séparation entre la partie zoomée et la partie ----
 | 
			
		||||
//------------------ non-zoomée lorsqu'on est en mode loupe ------------------
 | 
			
		||||
void Deplacer_Split(void)
 | 
			
		||||
{
 | 
			
		||||
  short Ancien_Split=Principal_Split;
 | 
			
		||||
@ -422,17 +422,17 @@ void Gestion_principale(void)
 | 
			
		||||
  static byte Temp_color;
 | 
			
		||||
  static short Old_MX=0;
 | 
			
		||||
  static short Old_MY=0;
 | 
			
		||||
  int  Indice_bouton;           // Num‚ro de bouton de menu en cours
 | 
			
		||||
  int  Indice_bouton_precedent=0; // Num‚ro de bouton de menu sur lequel on ‚tait pr‚c‚demment
 | 
			
		||||
  byte Blink;                   // L'op‚ration demande un effacement du curseur
 | 
			
		||||
  int  Bouton_Touche;           // Bouton … enclencher d'aprŠs la touche de raccourci enfonc‚e
 | 
			
		||||
  byte Bouton_Cote;             // C“t‚ du bouton … enclencher d'aprŠs la touche de raccourci enfonc‚e
 | 
			
		||||
  int  Indice_Touche;           // Indice du tableau de touches sp‚ciales correspondant … la touche enfonc‚e
 | 
			
		||||
  int  Indice_bouton;           // Numéro de bouton de menu en cours
 | 
			
		||||
  int  Indice_bouton_precedent=0; // Numéro de bouton de menu sur lequel on était précédemment
 | 
			
		||||
  byte Blink;                   // L'opération demande un effacement du curseur
 | 
			
		||||
  int  Bouton_Touche;           // Bouton à enclencher d'après la touche de raccourci enfoncée
 | 
			
		||||
  byte Bouton_Cote;             // C“té du bouton à enclencher d'après la touche de raccourci enfoncée
 | 
			
		||||
  int  Indice_Touche;           // Indice du tableau de touches spéciales correspondant à la touche enfoncée
 | 
			
		||||
  char Chaine[25];
 | 
			
		||||
  byte Temp;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  // Au d‚marrage, on sait que le curseur n'est pas dans le menu
 | 
			
		||||
  // Au démarrage, on sait que le curseur n'est pas dans le menu
 | 
			
		||||
 | 
			
		||||
  Curseur_dans_menu_precedent=0;
 | 
			
		||||
 | 
			
		||||
@ -446,7 +446,7 @@ void Gestion_principale(void)
 | 
			
		||||
    {
 | 
			
		||||
      for (Indice_Touche=0;(Indice_Touche<NB_TOUCHES_SPECIALES) && (Touche!=Config_Touche[Indice_Touche]);Indice_Touche++);
 | 
			
		||||
 | 
			
		||||
      // Gestion des touches sp‚ciales:
 | 
			
		||||
      // Gestion des touches spéciales:
 | 
			
		||||
      if (Indice_Touche>SPECIAL_CLICK_RIGHT)
 | 
			
		||||
      switch(Indice_Touche)
 | 
			
		||||
      {
 | 
			
		||||
@ -534,7 +534,7 @@ void Gestion_principale(void)
 | 
			
		||||
        case SPECIAL_PREVIOUS_BACKCOLOR : // Previous background color
 | 
			
		||||
          Special_Previous_backcolor();
 | 
			
		||||
          break;
 | 
			
		||||
        case SPECIAL_RETRECIR_PINCEAU: // R‚tr‚cir le pinceau
 | 
			
		||||
        case SPECIAL_RETRECIR_PINCEAU: // Rétrécir le pinceau
 | 
			
		||||
          Retrecir_pinceau();
 | 
			
		||||
          break;
 | 
			
		||||
        case SPECIAL_GROSSIR_PINCEAU: // Grossir le pinceau
 | 
			
		||||
@ -756,7 +756,7 @@ void Gestion_principale(void)
 | 
			
		||||
              Indice_bouton=NB_BOUTONS;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
          // AprŠs avoir scrut‚ les boutons, si la recherche a ‚t‚ fructueuse,
 | 
			
		||||
          // Après avoir scruté les boutons, si la recherche a été fructueuse,
 | 
			
		||||
          // on lance le bouton.
 | 
			
		||||
          if (Bouton_Touche!=-1)
 | 
			
		||||
          {
 | 
			
		||||
@ -765,8 +765,8 @@ void Gestion_principale(void)
 | 
			
		||||
          }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      // Si on a modifi‚ un effet, il faut rafficher le bouton des effets en
 | 
			
		||||
      // cons‚quence.
 | 
			
		||||
      // Si on a modifié un effet, il faut rafficher le bouton des effets en
 | 
			
		||||
      // conséquence.
 | 
			
		||||
      if ((Indice_Touche>=SPECIAL_SHADE_MODE)
 | 
			
		||||
       && (Indice_Touche<=SPECIAL_TILING_MENU))
 | 
			
		||||
      {
 | 
			
		||||
@ -801,7 +801,7 @@ void Gestion_principale(void)
 | 
			
		||||
        {
 | 
			
		||||
          if (Menu_visible)
 | 
			
		||||
          {
 | 
			
		||||
            // On nettoie les coordonn‚es
 | 
			
		||||
            // On nettoie les coordonnées
 | 
			
		||||
            Effacer_curseur();
 | 
			
		||||
            Block(18*Menu_Facteur_X,Menu_Ordonnee_Texte,192*Menu_Facteur_X,Menu_Facteur_Y<<3,CM_Clair);
 | 
			
		||||
            Afficher_curseur();
 | 
			
		||||
@ -923,16 +923,16 @@ void Gestion_principale(void)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
//      Diff‚rentes fonctions d'affichage utilis‚es dans les fenˆtres       //
 | 
			
		||||
//      Différentes fonctions d'affichage utilisées dans les fenêtres       //
 | 
			
		||||
//////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
//----------------------- Tracer une fenˆtre d'options -----------------------
 | 
			
		||||
//----------------------- Tracer une fenêtre d'options -----------------------
 | 
			
		||||
 | 
			
		||||
void Ouvrir_fenetre(word Largeur,word Hauteur, char * Titre)
 | 
			
		||||
// Lors de l'appel … cette proc‚dure, la souris doit ˆtre affich‚e.
 | 
			
		||||
// En sortie de cette procedure, la souris est effac‚e.
 | 
			
		||||
// Lors de l'appel à cette procédure, la souris doit être affichée.
 | 
			
		||||
// En sortie de cette procedure, la souris est effacée.
 | 
			
		||||
{
 | 
			
		||||
  word i,j;
 | 
			
		||||
  //word i,j;
 | 
			
		||||
 | 
			
		||||
  Effacer_curseur();
 | 
			
		||||
 | 
			
		||||
@ -941,15 +941,15 @@ void Ouvrir_fenetre(word Largeur,word Hauteur, char * Titre)
 | 
			
		||||
  Fenetre_Largeur=Largeur;
 | 
			
		||||
  Fenetre_Hauteur=Hauteur;
 | 
			
		||||
 | 
			
		||||
  // Positionnement de la fenˆtre
 | 
			
		||||
  // Positionnement de la fenêtre
 | 
			
		||||
  Fenetre_Pos_X=(Largeur_ecran-(Largeur*Menu_Facteur_X))>>1;
 | 
			
		||||
 | 
			
		||||
  Fenetre_Pos_Y=(Hauteur_ecran-(Hauteur*Menu_Facteur_Y))>>1;
 | 
			
		||||
 | 
			
		||||
  // Fenˆtre grise
 | 
			
		||||
  // Fenêtre grise
 | 
			
		||||
  Block(Fenetre_Pos_X+(Menu_Facteur_X<<1),Fenetre_Pos_Y+(Menu_Facteur_Y<<1),(Largeur-4)*Menu_Facteur_X,(Hauteur-4)*Menu_Facteur_Y,CM_Clair);
 | 
			
		||||
 | 
			
		||||
  // -- Cadre de la fenˆtre ----- --- -- -  -
 | 
			
		||||
  // -- Cadre de la fenêtre ----- --- -- -  -
 | 
			
		||||
 | 
			
		||||
  // Cadre noir puis en relief
 | 
			
		||||
  Fenetre_Afficher_cadre_mono(0,0,Largeur,Hauteur,CM_Noir);
 | 
			
		||||
@ -970,22 +970,22 @@ void Ouvrir_fenetre(word Largeur,word Hauteur, char * Titre)
 | 
			
		||||
  Cacher_pinceau_avant_fenetre=Cacher_pinceau;
 | 
			
		||||
  Cacher_pinceau=1;
 | 
			
		||||
 | 
			
		||||
  // Initialisation des listes de boutons de la fenˆtre
 | 
			
		||||
  // Initialisation des listes de boutons de la fenêtre
 | 
			
		||||
  Fenetre_Liste_boutons_normal  =NULL;
 | 
			
		||||
  Fenetre_Liste_boutons_palette =NULL;
 | 
			
		||||
  Fenetre_Liste_boutons_scroller=NULL;
 | 
			
		||||
  Fenetre_Liste_boutons_special =NULL;
 | 
			
		||||
  Nb_boutons_fenetre            =0;
 | 
			
		||||
 | 
			
		||||
  // On (re)passe dans le clavier de d‚part (fran‡ais pour nous)
 | 
			
		||||
  // On (re)passe dans le clavier de départ (fran‡ais pour nous)
 | 
			
		||||
  Clavier_de_depart();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//----------------------- Fermer une fenˆtre d'options -----------------------
 | 
			
		||||
//----------------------- Fermer une fenêtre d'options -----------------------
 | 
			
		||||
 | 
			
		||||
void Fermer_fenetre(void)
 | 
			
		||||
// Lors de l'appel … cette procedure, la souris doit ˆtre affich‚e.
 | 
			
		||||
// En sortie de cette procedure, la souris est effac‚e.
 | 
			
		||||
// Lors de l'appel à cette procedure, la souris doit être affichée.
 | 
			
		||||
// En sortie de cette procedure, la souris est effacée.
 | 
			
		||||
{
 | 
			
		||||
  struct Fenetre_Bouton_normal   * Temp1;
 | 
			
		||||
  struct Fenetre_Bouton_palette  * Temp2;
 | 
			
		||||
@ -1022,7 +1022,7 @@ void Fermer_fenetre(void)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  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 ic“ne.
 | 
			
		||||
 | 
			
		||||
  Calculer_coordonnees_pinceau();
 | 
			
		||||
@ -1037,12 +1037,12 @@ void Fermer_fenetre(void)
 | 
			
		||||
  Touche=0;
 | 
			
		||||
  Mouse_K=0;
 | 
			
		||||
 | 
			
		||||
  // On (re)passe dans le clavier am‚ricain
 | 
			
		||||
  // On (re)passe dans le clavier américain
 | 
			
		||||
  Clavier_americain();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//---------------- Dessiner un bouton normal dans une fenˆtre ----------------
 | 
			
		||||
//---------------- Dessiner un bouton normal dans une fenêtre ----------------
 | 
			
		||||
 | 
			
		||||
void Fenetre_Dessiner_bouton_normal(word Pos_X,word Pos_Y,word Largeur,word Hauteur,
 | 
			
		||||
                                    char * Titre,byte Lettre_soulignee,byte Clickable)
 | 
			
		||||
@ -1074,20 +1074,20 @@ void Fenetre_Dessiner_bouton_normal(word Pos_X,word Pos_Y,word Largeur,word Haut
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// -- Bouton normal enfonc‚ dans la fenˆtre --
 | 
			
		||||
// -- Bouton normal enfoncé dans la fenêtre --
 | 
			
		||||
void Fenetre_Enfoncer_bouton_normal(word Pos_X,word Pos_Y,word Largeur,word Hauteur)
 | 
			
		||||
{
 | 
			
		||||
  Fenetre_Afficher_cadre_general(Pos_X,Pos_Y,Largeur,Hauteur,CM_Fonce,CM_Noir,CM_Fonce,CM_Fonce,CM_Noir);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// -- Bouton normal d‚senfonc‚ dans la fenˆtre --
 | 
			
		||||
// -- Bouton normal désenfoncé dans la fenêtre --
 | 
			
		||||
void Fenetre_Desenfoncer_bouton_normal(word Pos_X,word Pos_Y,word Largeur,word Hauteur)
 | 
			
		||||
{
 | 
			
		||||
  Fenetre_Afficher_cadre_bombe(Pos_X,Pos_Y,Largeur,Hauteur);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//--------------- Dessiner un bouton palette dans une fenˆtre ----------------
 | 
			
		||||
//--------------- Dessiner un bouton palette dans une fenêtre ----------------
 | 
			
		||||
void Fenetre_Dessiner_bouton_palette(word Pos_X,word Pos_Y)
 | 
			
		||||
{
 | 
			
		||||
  word Couleur;
 | 
			
		||||
@ -1107,7 +1107,7 @@ void Fenetre_Effacer_tags(void)
 | 
			
		||||
  word Origine_Y;
 | 
			
		||||
  word Pos_X;
 | 
			
		||||
  word Pos_fenetre_X;
 | 
			
		||||
  word Pos_fenetre_Y;
 | 
			
		||||
  //word Pos_fenetre_Y;
 | 
			
		||||
 | 
			
		||||
  Origine_X=Fenetre_Pos_X+(Fenetre_Liste_boutons_palette->Pos_X+3)*Menu_Facteur_X;
 | 
			
		||||
  Origine_Y=Fenetre_Pos_Y+(Fenetre_Liste_boutons_palette->Pos_Y+3)*Menu_Facteur_Y;
 | 
			
		||||
@ -1121,9 +1121,9 @@ void Tagger_intervalle_palette(byte Debut,byte Fin)
 | 
			
		||||
{
 | 
			
		||||
  word Origine_X;
 | 
			
		||||
  word Origine_Y;
 | 
			
		||||
  word Pos_X;
 | 
			
		||||
  //word Pos_X;
 | 
			
		||||
  word Pos_Y;
 | 
			
		||||
  word Pos_fenetre_X;
 | 
			
		||||
  //word Pos_fenetre_X;
 | 
			
		||||
  word Pos_fenetre_Y;
 | 
			
		||||
  word Indice;
 | 
			
		||||
 | 
			
		||||
@ -1149,10 +1149,10 @@ void Tagger_intervalle_palette(byte Debut,byte Fin)
 | 
			
		||||
 | 
			
		||||
  if (Debut!=Fin)
 | 
			
		||||
  {
 | 
			
		||||
    // On complŠte le 1er TAG
 | 
			
		||||
    // On complète le 1er TAG
 | 
			
		||||
    Pixel_dans_fenetre(Origine_X+1,Origine_Y+4,CM_Noir);
 | 
			
		||||
 | 
			
		||||
    // On affiche le 2Šme TAG
 | 
			
		||||
    // On affiche le 2ème TAG
 | 
			
		||||
    Origine_X=(Fenetre_Liste_boutons_palette->Pos_X+3)+(Fin>>4)*10;
 | 
			
		||||
    Origine_Y=(Fenetre_Liste_boutons_palette->Pos_Y+3)+(Fin&15)* 5;
 | 
			
		||||
    for (Pos_Y=0,Pos_fenetre_Y=Origine_Y; Pos_Y<5; Pos_Y++,Pos_fenetre_Y++)
 | 
			
		||||
@ -1161,13 +1161,13 @@ void Tagger_intervalle_palette(byte Debut,byte Fin)
 | 
			
		||||
      Pixel_dans_fenetre(Origine_X+1,Pos_fenetre_Y,CM_Noir);
 | 
			
		||||
    Pixel_dans_fenetre(Origine_X+2,Origine_Y+2,CM_Noir);
 | 
			
		||||
 | 
			
		||||
    // On TAG toutes les couleurs interm‚diaires
 | 
			
		||||
    // On TAG toutes les couleurs intermédiaires
 | 
			
		||||
    for (Indice=Debut+1;Indice<Fin;Indice++)
 | 
			
		||||
    {
 | 
			
		||||
      Block(Fenetre_Pos_X+(Fenetre_Liste_boutons_palette->Pos_X+3+((Indice>>4)*10))*Menu_Facteur_X,
 | 
			
		||||
            Fenetre_Pos_Y+(Fenetre_Liste_boutons_palette->Pos_Y+3+((Indice&15)* 5))*Menu_Facteur_Y,
 | 
			
		||||
            Menu_Facteur_X*2,Menu_Facteur_Y*5,CM_Noir);
 | 
			
		||||
      // On efface l'‚ventuelle pointe d'une ancienne extr‚mit‚ de l'intervalle
 | 
			
		||||
      // On efface l'éventuelle pointe d'une ancienne extrémité de l'intervalle
 | 
			
		||||
      Pixel_dans_fenetre(Fenetre_Liste_boutons_palette->Pos_X+5+((Indice>>4)*10),
 | 
			
		||||
                         Fenetre_Liste_boutons_palette->Pos_Y+5+((Indice&15)* 5),
 | 
			
		||||
                         CM_Clair);
 | 
			
		||||
@ -1176,7 +1176,7 @@ void Tagger_intervalle_palette(byte Debut,byte Fin)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//------------------ Dessiner un scroller dans une fenˆtre -------------------
 | 
			
		||||
//------------------ Dessiner un scroller dans une fenêtre -------------------
 | 
			
		||||
 | 
			
		||||
void Calculer_hauteur_curseur_jauge(struct Fenetre_Bouton_scroller * Enreg)
 | 
			
		||||
{
 | 
			
		||||
@ -1222,7 +1222,7 @@ void Fenetre_Dessiner_bouton_scroller(struct Fenetre_Bouton_scroller * Enreg)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//--------------- Dessiner une zone de saisie dans une fenˆtre ---------------
 | 
			
		||||
//--------------- Dessiner une zone de saisie dans une fenêtre ---------------
 | 
			
		||||
 | 
			
		||||
void Fenetre_Dessiner_bouton_saisie(word Pos_X,word Pos_Y,word Largeur_en_caracteres)
 | 
			
		||||
{
 | 
			
		||||
@ -1239,7 +1239,7 @@ void Fenetre_Contenu_bouton_saisie(struct Fenetre_Bouton_special * Enreg, char *
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//------ Rajout d'un bouton … la liste de ceux pr‚sents dans la fenˆtre ------
 | 
			
		||||
//------ Rajout d'un bouton à la liste de ceux présents dans la fenêtre ------
 | 
			
		||||
 | 
			
		||||
void Fenetre_Definir_bouton_normal(word Pos_X, word Pos_Y,
 | 
			
		||||
                                   word Largeur, word Hauteur,
 | 
			
		||||
@ -1336,12 +1336,12 @@ void Fenetre_Definir_bouton_saisie(word Pos_X,word Pos_Y,word Largeur_en_caracte
 | 
			
		||||
 | 
			
		||||
//////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
//                                                                          //
 | 
			
		||||
//       Mini-MOTEUR utilis‚ dans les fenˆtres (menus des boutons...)       //
 | 
			
		||||
//       Mini-MOTEUR utilisé dans les fenêtres (menus des boutons...)       //
 | 
			
		||||
//                                                                          //
 | 
			
		||||
//////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// -- Indique si on a cliqu‚ dans une zone d‚finie par deux points extremes --
 | 
			
		||||
// -- Indique si on a cliqué dans une zone définie par deux points extremes --
 | 
			
		||||
byte Fenetre_click_dans_zone(short Debut_X,short Debut_Y,short Fin_X,short Fin_Y)
 | 
			
		||||
{
 | 
			
		||||
  short Pos_X,Pos_Y;
 | 
			
		||||
@ -1357,7 +1357,7 @@ byte Fenetre_click_dans_zone(short Debut_X,short Debut_Y,short Fin_X,short Fin_Y
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// --- Attend que l'on clique dans la palette pour renvoyer la couleur choisie
 | 
			
		||||
// ou bien renvoie -1 si on a annul‚ l'action pas click-droit ou Escape ------
 | 
			
		||||
// ou bien renvoie -1 si on a annulé l'action pas click-droit ou Escape ------
 | 
			
		||||
short Attendre_click_dans_palette(struct Fenetre_Bouton_palette * Enreg)
 | 
			
		||||
{
 | 
			
		||||
  short Debut_X=Enreg->Pos_X+5;
 | 
			
		||||
@ -1420,7 +1420,7 @@ short Attendre_click_dans_palette(struct Fenetre_Bouton_palette * Enreg)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// -------------- R‚cup‚ration d'une couleur derriŠre un menu ----------------
 | 
			
		||||
// -------------- Récupération d'une couleur derrière un menu ----------------
 | 
			
		||||
void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
 | 
			
		||||
{
 | 
			
		||||
  short Largeur=Fenetre_Largeur*Menu_Facteur_X;
 | 
			
		||||
@ -1434,7 +1434,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
 | 
			
		||||
  byte Cacher_curseur_avant_recuperation;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if (Buffer=(byte *) malloc(Largeur*Hauteur))
 | 
			
		||||
  if ((Buffer=(byte *) malloc(Largeur*Hauteur)))
 | 
			
		||||
  {
 | 
			
		||||
    Effacer_curseur();
 | 
			
		||||
 | 
			
		||||
@ -1455,7 +1455,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
 | 
			
		||||
    Forme_curseur=FORME_CURSEUR_CIBLE_PIPETTE;
 | 
			
		||||
    B=Cacher_pinceau;
 | 
			
		||||
    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)
 | 
			
		||||
      Print_dans_menu(TITRE_BOUTON[BOUTON_CHOIX_COL],0);
 | 
			
		||||
 | 
			
		||||
@ -1471,7 +1471,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
 | 
			
		||||
        A=Lit_pixel(Mouse_X,Mouse_Y);
 | 
			
		||||
        if (A!=C)
 | 
			
		||||
        {
 | 
			
		||||
          C=A; // Mise … jour de la couleur point‚e
 | 
			
		||||
          C=A; // Mise à jour de la couleur pointée
 | 
			
		||||
          if (Menu_visible_avant_fenetre)
 | 
			
		||||
          {
 | 
			
		||||
            sprintf(Chaine,"%d",A);
 | 
			
		||||
@ -1531,7 +1531,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// ------------ Op‚ration de d‚placement de la fenˆtre … l'‚cran -------------
 | 
			
		||||
// ------------ Opération de déplacement de la fenêtre à l'écran -------------
 | 
			
		||||
void Deplacer_fenetre(short Dx, short Dy)
 | 
			
		||||
{
 | 
			
		||||
  short Nouveau_X=Mouse_X-Dx;
 | 
			
		||||
@ -1546,7 +1546,7 @@ void Deplacer_fenetre(short Dx, short Dy)
 | 
			
		||||
  byte * Buffer;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if (Buffer=(byte *) malloc(Largeur*Hauteur))
 | 
			
		||||
  if ((Buffer=(byte *) malloc(Largeur*Hauteur)))
 | 
			
		||||
  {
 | 
			
		||||
    Effacer_curseur();
 | 
			
		||||
    for (Indice=0; Indice<Hauteur; Indice++)
 | 
			
		||||
@ -1631,7 +1631,7 @@ void Deplacer_fenetre(short Dx, short Dy)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// --- Renvoie le num‚ro du bouton clicke (-1:hors de la fenˆtre, 0:aucun) ---
 | 
			
		||||
// --- Renvoie le numéro du bouton clicke (-1:hors de la fenêtre, 0:aucun) ---
 | 
			
		||||
short Fenetre_Numero_bouton_clicke(void)
 | 
			
		||||
{
 | 
			
		||||
  struct Fenetre_Bouton_normal   * Temp1;
 | 
			
		||||
@ -1639,7 +1639,7 @@ short Fenetre_Numero_bouton_clicke(void)
 | 
			
		||||
  struct Fenetre_Bouton_scroller * Temp3;
 | 
			
		||||
  struct Fenetre_Bouton_special  * Temp4;
 | 
			
		||||
 | 
			
		||||
  long Hauteur_Curseur_jauge;
 | 
			
		||||
  //long Hauteur_Curseur_jauge;
 | 
			
		||||
  long Hauteur_maxi_jauge;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1670,12 +1670,12 @@ short Fenetre_Numero_bouton_clicke(void)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Test du click sur les barres de d‚filement
 | 
			
		||||
  // Test du click sur les barres de défilement
 | 
			
		||||
  for (Temp3=Fenetre_Liste_boutons_scroller; Temp3; Temp3=Temp3->Next)
 | 
			
		||||
  {
 | 
			
		||||
    if (Fenetre_click_dans_zone(Temp3->Pos_X,Temp3->Pos_Y,Temp3->Pos_X+10,Temp3->Pos_Y+Temp3->Hauteur-1))
 | 
			
		||||
    {
 | 
			
		||||
      // Bouton flŠche Haut
 | 
			
		||||
      // Bouton flèche Haut
 | 
			
		||||
      if (Fenetre_click_dans_zone(Temp3->Pos_X,Temp3->Pos_Y,Temp3->Pos_X+10,Temp3->Pos_Y+10))
 | 
			
		||||
      {
 | 
			
		||||
        Effacer_curseur();
 | 
			
		||||
@ -1700,10 +1700,10 @@ short Fenetre_Numero_bouton_clicke(void)
 | 
			
		||||
        Afficher_curseur();
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
      // Bouton flŠche Bas
 | 
			
		||||
      // Bouton flèche Bas
 | 
			
		||||
      if (Fenetre_click_dans_zone(Temp3->Pos_X,Temp3->Pos_Y+Temp3->Hauteur-11,Temp3->Pos_X+10,Temp3->Pos_Y+Temp3->Hauteur-1))
 | 
			
		||||
      {
 | 
			
		||||
        Effacer_Curseur();
 | 
			
		||||
        Effacer_curseur();
 | 
			
		||||
        Fenetre_Enfoncer_bouton_normal(Temp3->Pos_X,Temp3->Pos_Y+Temp3->Hauteur-11,11,11);
 | 
			
		||||
 | 
			
		||||
        if (Temp3->Position+Temp3->Nb_visibles<Temp3->Nb_elements)
 | 
			
		||||
@ -1716,13 +1716,13 @@ short Fenetre_Numero_bouton_clicke(void)
 | 
			
		||||
        else
 | 
			
		||||
          Fenetre_Attribut1=0;
 | 
			
		||||
 | 
			
		||||
        Afficher_Curseur();
 | 
			
		||||
        Afficher_curseur();
 | 
			
		||||
 | 
			
		||||
        Tempo_jauge((Mouse_K==1)? Config.Valeur_tempo_jauge_gauche : Config.Valeur_tempo_jauge_droite);
 | 
			
		||||
 | 
			
		||||
        Effacer_Curseur();
 | 
			
		||||
        Effacer_curseur();
 | 
			
		||||
        Fenetre_Desenfoncer_bouton_normal(Temp3->Pos_X,Temp3->Pos_Y+Temp3->Hauteur-11,11,11);
 | 
			
		||||
        Afficher_Curseur();
 | 
			
		||||
        Afficher_curseur();
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
      // Jauge
 | 
			
		||||
@ -1754,9 +1754,9 @@ short Fenetre_Numero_bouton_clicke(void)
 | 
			
		||||
          {
 | 
			
		||||
            Temp3->Position=Fenetre_Attribut2;
 | 
			
		||||
            Fenetre_Attribut1=3;
 | 
			
		||||
            Effacer_Curseur();
 | 
			
		||||
            Effacer_curseur();
 | 
			
		||||
            Fenetre_Dessiner_jauge(Temp3);
 | 
			
		||||
            Afficher_Curseur();
 | 
			
		||||
            Afficher_curseur();
 | 
			
		||||
          }
 | 
			
		||||
          else
 | 
			
		||||
            // Si le curseur de la jauge ne bouge pas:
 | 
			
		||||
@ -1775,7 +1775,7 @@ short Fenetre_Numero_bouton_clicke(void)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Test du click sur une zone sp‚ciale
 | 
			
		||||
  // Test du click sur une zone spéciale
 | 
			
		||||
  for (Temp4=Fenetre_Liste_boutons_special; Temp4; Temp4=Temp4->Next)
 | 
			
		||||
  {
 | 
			
		||||
    if (Fenetre_click_dans_zone(Temp4->Pos_X,Temp4->Pos_Y,Temp4->Pos_X+Temp4->Largeur-1,Temp4->Pos_Y+Temp4->Hauteur-1))
 | 
			
		||||
@ -1795,7 +1795,7 @@ short Fenetre_Numero_bouton_touche(void)
 | 
			
		||||
  else
 | 
			
		||||
    Fenetre_Attribut1=A_GAUCHE;
 | 
			
		||||
 | 
			
		||||
  // On fait une premiŠre recherche
 | 
			
		||||
  // On fait une première recherche
 | 
			
		||||
  Temp=Fenetre_Liste_boutons_normal;
 | 
			
		||||
  while (Temp!=NULL)
 | 
			
		||||
  {
 | 
			
		||||
@ -1804,9 +1804,9 @@ short Fenetre_Numero_bouton_touche(void)
 | 
			
		||||
    Temp=Temp->Next;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Si la recherche n'a pas ‚t‚ fructueuse ET que l'utilisateur appuyait sur
 | 
			
		||||
  // <Shift>, on regarde si un bouton ne pourrait pas r‚agir comme si <Shift>
 | 
			
		||||
  // n'‚tait pas appuy‚.
 | 
			
		||||
  // Si la recherche n'a pas été fructueuse ET que l'utilisateur appuyait sur
 | 
			
		||||
  // <Shift>, on regarde si un bouton ne pourrait pas réagir comme si <Shift>
 | 
			
		||||
  // n'était pas appuyé.
 | 
			
		||||
  if (Fenetre_Attribut1==A_DROITE)
 | 
			
		||||
  {
 | 
			
		||||
    Temp=Fenetre_Liste_boutons_normal;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										176
									
								
								op_asm.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										176
									
								
								op_asm.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,176 @@
 | 
			
		||||
#include "op_c.h"
 | 
			
		||||
#include "stdio.h"
 | 
			
		||||
 | 
			
		||||
void OPASM_DitherFS_6123(
 | 
			
		||||
  Bitmap256            Destination,  // Pointeur sur le 1er pixel de la ligne
 | 
			
		||||
  Bitmap24B            Source,       // Idem mais sur la source
 | 
			
		||||
  int                  Largeur,      // Largeur à traiter, =(largeur_image-2), (>0)
 | 
			
		||||
  struct Composantes * Palette,      // Palette de l'image destination
 | 
			
		||||
  byte *               TableC,       // Table de conversion 24b->8b
 | 
			
		||||
  byte                 ReducR,       // 8-Nb_bits_rouges
 | 
			
		||||
  byte                 ReducV,       // 8-Nb_bits_verts
 | 
			
		||||
  byte                 ReducB,       // 8-Nb_bits_bleus
 | 
			
		||||
  byte                 NbbV,         // Nb_bits_verts
 | 
			
		||||
  byte                 NbbB)         // Nb_bits_bleus
 | 
			
		||||
{
 | 
			
		||||
	puts("OPASM_DitherFS_6123 non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
void OPASM_DitherFS_623(
 | 
			
		||||
  Bitmap256            Destination,  // Pointeur sur le 1er pixel de la ligne
 | 
			
		||||
  Bitmap24B            Source,       // Idem mais sur la source
 | 
			
		||||
  int                  Largeur,      // Largeur à traiter, =(largeur_image-2), (>0)
 | 
			
		||||
  struct Composantes * Palette,      // Palette de l'image destination
 | 
			
		||||
  byte *               TableC,       // Table de conversion 24b->8b
 | 
			
		||||
  byte                 ReducR,       // 8-Nb_bits_rouges
 | 
			
		||||
  byte                 ReducV,       // 8-Nb_bits_verts
 | 
			
		||||
  byte                 ReducB,       // 8-Nb_bits_bleus
 | 
			
		||||
  byte                 NbbV,         // Nb_bits_verts
 | 
			
		||||
  byte                 NbbB)         // Nb_bits_bleus
 | 
			
		||||
{
 | 
			
		||||
	puts("OPASM_DitherFS_623 non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void OPASM_DitherFS_12(
 | 
			
		||||
  Bitmap256            Destination,  // Pointeur sur le 1er pixel de la ligne
 | 
			
		||||
  Bitmap24B            Source,       // Idem mais sur la source
 | 
			
		||||
  int                  Largeur,      // Largeur à traiter, =(largeur_image-2), (>0)
 | 
			
		||||
  struct Composantes * Palette,      // Palette de l'image destination
 | 
			
		||||
  byte *               TableC,       // Table de conversion 24b->8b
 | 
			
		||||
  byte                 ReducR,       // 8-Nb_bits_rouges
 | 
			
		||||
  byte                 ReducV,       // 8-Nb_bits_verts
 | 
			
		||||
  byte                 ReducB,       // 8-Nb_bits_bleus
 | 
			
		||||
  byte                 NbbV,         // Nb_bits_verts
 | 
			
		||||
  byte                 NbbB)         // Nb_bits_bleus
 | 
			
		||||
{
 | 
			
		||||
	puts("OPASM_DitherFS_12 non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void OPASM_DitherFS_6(
 | 
			
		||||
  Bitmap256            Destination,  // Pointeur sur le 1er pixel de la ligne
 | 
			
		||||
  Bitmap24B            Source,       // Idem mais sur la source
 | 
			
		||||
  int                  Largeur,      // Largeur à traiter, =(largeur_image-1), (>0)
 | 
			
		||||
  struct Composantes * Palette,      // Palette de l'image destination
 | 
			
		||||
  byte *               TableC,       // Table de conversion 24b->8b
 | 
			
		||||
  byte                 ReducR,       // 8-Nb_bits_rouges
 | 
			
		||||
  byte                 ReducV,       // 8-Nb_bits_verts
 | 
			
		||||
  byte                 ReducB,       // 8-Nb_bits_bleus
 | 
			
		||||
  byte                 NbbV,         // Nb_bits_verts
 | 
			
		||||
  byte                 NbbB)         // Nb_bits_bleus
 | 
			
		||||
{
 | 
			
		||||
	puts("OPASM_DitherFS_6 non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  void OPASM_DitherFS(
 | 
			
		||||
  Bitmap256 Destination,  // Pointeur sur le pixel
 | 
			
		||||
  Bitmap24B Source,       // Idem mais sur la source
 | 
			
		||||
  byte *    TableC,       // Table de conversion 24b->8b
 | 
			
		||||
  byte      ReducR,       // 8-Nb_bits_rouges
 | 
			
		||||
  byte      ReducV,       // 8-Nb_bits_verts
 | 
			
		||||
  byte      ReducB,       // 8-Nb_bits_bleus
 | 
			
		||||
  byte      NbbV,         // Nb_bits_verts
 | 
			
		||||
  byte      NbbB)         // Nb_bits_bleus
 | 
			
		||||
{
 | 
			
		||||
	puts("OPASM_DitherFS non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void OPASM_DitherFS_2(
 | 
			
		||||
  Bitmap256            Destination,  // Pointeur sur le 1er pixel de la colonne
 | 
			
		||||
  Bitmap24B            Source,       // Idem mais sur la source
 | 
			
		||||
  int                  Hauteur,      // Hauteur à traiter, =(hauteur_image-1), (>0)
 | 
			
		||||
  struct Composantes * Palette,      // Palette de l'image destination
 | 
			
		||||
  byte *               TableC,       // Table de conversion 24b->8b
 | 
			
		||||
  byte                 ReducR,       // 8-Nb_bits_rouges
 | 
			
		||||
  byte                 ReducV,       // 8-Nb_bits_verts
 | 
			
		||||
  byte                 ReducB,       // 8-Nb_bits_bleus
 | 
			
		||||
  byte                 NbbV,         // Nb_bits_verts
 | 
			
		||||
  byte                 NbbB)         // Nb_bits_bleus
 | 
			
		||||
{
 | 
			
		||||
	puts("OPASM_DitherFS_2 non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  void OPASM_Split_cluster_Rouge(
 | 
			
		||||
  int * tableO, // Table d'occurences
 | 
			
		||||
  int   rmin,   // rmin << rdec
 | 
			
		||||
  int   vmin,   // vmin << vdec
 | 
			
		||||
  int   bmin,   // bmin << bdec
 | 
			
		||||
  int   rmax,   // rmax << rdec
 | 
			
		||||
  int   vmax,   // vmin << vdec
 | 
			
		||||
  int   bmax,   // bmin << bdec
 | 
			
		||||
  int   rinc,   // Incrémentation sur les rouges 1 << rdec
 | 
			
		||||
  int   vinc,   // Incrémentation sur les verts  1 << vdec
 | 
			
		||||
  int   binc,   // Incrémentation sur les bleus  1 << bdec
 | 
			
		||||
  int   limite, // Nombre d'occurences minimales
 | 
			
		||||
  int   rdec,   // rdec
 | 
			
		||||
  int * rouge)  // Valeur du rouge atteignant la limite
 | 
			
		||||
{
 | 
			
		||||
	puts("OPASM_Split_cluster_Rouge non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void OPASM_Split_cluster_Vert(
 | 
			
		||||
  int * tableO, // Table d'occurences
 | 
			
		||||
  int   rmin,   // rmin << rdec
 | 
			
		||||
  int   vmin,   // vmin << vdec
 | 
			
		||||
  int   bmin,   // bmin << bdec
 | 
			
		||||
  int   rmax,   // rmax << rdec
 | 
			
		||||
  int   vmax,   // vmin << vdec
 | 
			
		||||
  int   bmax,   // bmin << bdec
 | 
			
		||||
  int   rinc,   // Incrémentation sur les rouges 1 << rdec
 | 
			
		||||
  int   vinc,   // Incrémentation sur les verts  1 << vdec
 | 
			
		||||
  int   binc,   // Incrémentation sur les bleus  1 << bdec
 | 
			
		||||
  int   limite, // Nombre d'occurences minimales
 | 
			
		||||
  int   vdec,   // vdec
 | 
			
		||||
  int * vert)   // Valeur du vert atteignant la limite
 | 
			
		||||
{
 | 
			
		||||
	puts("OPASM_Split_cluster_Vert non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void OPASM_Split_cluster_Bleu(
 | 
			
		||||
  int * tableO, // Table d'occurences
 | 
			
		||||
  int   rmin,   // rmin << rdec
 | 
			
		||||
  int   vmin,   // vmin << vdec
 | 
			
		||||
  int   bmin,   // bmin << bdec
 | 
			
		||||
  int   rmax,   // rmax << rdec
 | 
			
		||||
  int   vmax,   // vmin << vdec
 | 
			
		||||
  int   bmax,   // bmin << bdec
 | 
			
		||||
  int   rinc,   // Incrémentation sur les rouges 1 << rdec
 | 
			
		||||
  int   vinc,   // Incrémentation sur les verts  1 << vdec
 | 
			
		||||
  int   binc,   // Incrémentation sur les bleus  1 << bdec
 | 
			
		||||
  int   limite, // Nombre d'occurences minimales
 | 
			
		||||
  int   bdec,   // bdec
 | 
			
		||||
  int * bleu)   // Valeur du bleu atteignant la limite
 | 
			
		||||
{
 | 
			
		||||
	puts("OPASM_Split_cluster_Bleu non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  void OPASM_Compter_occurences(
 | 
			
		||||
  int *     Destination,  // Pointeur sur la table d'occurences
 | 
			
		||||
  Bitmap24B Source,       // Pointeur sur l'image
 | 
			
		||||
  int       Taille,       // Nombre de pixels dans l'image
 | 
			
		||||
  byte      ReducR,       // 8-Nb_bits_rouges
 | 
			
		||||
  byte      ReducV,       // 8-Nb_bits_verts
 | 
			
		||||
  byte      ReducB,       // 8-Nb_bits_bleus
 | 
			
		||||
  byte      NbbV,         // Nb_bits_verts
 | 
			
		||||
  byte      NbbB)         // Nb_bits_bleus
 | 
			
		||||
{
 | 
			
		||||
	puts("OPASM_Compter_occurences non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void OPASM_Analyser_cluster(
 | 
			
		||||
  int * TableO, // Table d'occurences
 | 
			
		||||
  int * rmin,   // rmin << rdec
 | 
			
		||||
  int * vmin,   // vmin << vdec
 | 
			
		||||
  int * bmin,   // bmin << bdec
 | 
			
		||||
  int * rmax,   // rmax << rdec
 | 
			
		||||
  int * vmax,   // vmax << vdec
 | 
			
		||||
  int * bmax,   // bmax << bdec
 | 
			
		||||
  int   rdec,   // rdec
 | 
			
		||||
  int   vdec,   // vdec
 | 
			
		||||
  int   bdec,   // bdec
 | 
			
		||||
  int   rinc,   // Incrémentation sur les rouges 1 << rdec
 | 
			
		||||
  int   vinc,   // Incrémentation sur les verts  1 << vdec
 | 
			
		||||
  int   binc,   // Incrémentation sur les bleus  1 << bdec
 | 
			
		||||
  int * Nbocc)  // Nombre d'occurences
 | 
			
		||||
{
 | 
			
		||||
	puts("OPASM_Analyser_cluster non implémenté!\n");
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										652
									
								
								operatio.c
									
									
									
									
									
								
							
							
						
						
									
										652
									
								
								operatio.c
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										218
									
								
								palette.c
									
									
									
									
									
								
							
							
						
						
									
										218
									
								
								palette.c
									
									
									
									
									
								
							@ -6,7 +6,7 @@
 | 
			
		||||
#include "graph.h"
 | 
			
		||||
#include "moteur.h"
 | 
			
		||||
#include "readline.h"
 | 
			
		||||
 | 
			
		||||
#include "boutons.h"
 | 
			
		||||
 | 
			
		||||
// --------------------------- Menu des palettes -----------------------------
 | 
			
		||||
char * Libelle_reduction_palette[7]=
 | 
			
		||||
@ -15,7 +15,7 @@ char * Libelle_reduction_palette[7]=
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Modifier_rouge(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
 | 
			
		||||
void Modifier_Rouge(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
 | 
			
		||||
{
 | 
			
		||||
  if (Nouvelle_teinte< 0)
 | 
			
		||||
    Nouvelle_teinte= 0;
 | 
			
		||||
@ -27,7 +27,7 @@ void Modifier_rouge(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Modifier_vert(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
 | 
			
		||||
void Modifier_Vert(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
 | 
			
		||||
{
 | 
			
		||||
  if (Nouvelle_teinte< 0)
 | 
			
		||||
    Nouvelle_teinte= 0;
 | 
			
		||||
@ -39,7 +39,7 @@ void Modifier_vert(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Modifier_bleu(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
 | 
			
		||||
void Modifier_Bleu(byte Couleur, short Nouvelle_teinte, T_Palette Palette)
 | 
			
		||||
{
 | 
			
		||||
  if (Nouvelle_teinte< 0)
 | 
			
		||||
    Nouvelle_teinte= 0;
 | 
			
		||||
@ -52,8 +52,8 @@ void Modifier_bleu(byte Couleur, short Nouvelle_teinte, 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
 | 
			
		||||
// pass‚es en paramŠtre
 | 
			
		||||
// Modifie la palette pour obtenir un dégradé de couleur entre les deux bornes
 | 
			
		||||
// passées en paramŠtre
 | 
			
		||||
{
 | 
			
		||||
  short Debut_Rouge;
 | 
			
		||||
  short Debut_Vert;
 | 
			
		||||
@ -63,8 +63,8 @@ void Degrader_palette(short Debut,short Fin,T_Palette Palette)
 | 
			
		||||
  short Fin_Bleu;
 | 
			
		||||
  short Indice;
 | 
			
		||||
 | 
			
		||||
  // On v‚rifie qu'il y ait assez de couleurs entre le d‚but et la fin pour
 | 
			
		||||
  // pouvoir faire un d‚grad‚:
 | 
			
		||||
  // On vérifie qu'il y ait assez de couleurs entre le début et la fin pour
 | 
			
		||||
  // pouvoir faire un dégradé:
 | 
			
		||||
  if ( (Debut!=Fin) && (Debut+1!=Fin) )
 | 
			
		||||
  {
 | 
			
		||||
    Debut_Rouge=Palette[Debut].R;
 | 
			
		||||
@ -124,14 +124,14 @@ void Remap_image_HIGH(byte * Table_de_conversion)
 | 
			
		||||
{
 | 
			
		||||
  short Fin_X;
 | 
			
		||||
  short Fin_Y;
 | 
			
		||||
  short Fin_X_Loupe;
 | 
			
		||||
  short Fin_Y_Loupe;
 | 
			
		||||
  short Fin_X_Loupe=0;
 | 
			
		||||
  short Fin_Y_Loupe=0;
 | 
			
		||||
 | 
			
		||||
  // On s'occupe de faire la traduction dans l'image
 | 
			
		||||
  Remap_general_LOWLEVEL(Table_de_conversion,Principal_Ecran,
 | 
			
		||||
                         Principal_Largeur_image,Principal_Hauteur_image,Principal_Largeur_image);
 | 
			
		||||
 | 
			
		||||
  // On calcule les limites … l'‚cran de l'image
 | 
			
		||||
  // On calcule les limites … l'écran de l'image
 | 
			
		||||
  if (Principal_Hauteur_image>=Menu_Ordonnee_avant_fenetre)
 | 
			
		||||
    Fin_Y=Menu_Ordonnee_avant_fenetre;
 | 
			
		||||
  else
 | 
			
		||||
@ -163,14 +163,14 @@ void Remap_image_HIGH(byte * Table_de_conversion)
 | 
			
		||||
      Fin_Y_Loupe=Principal_Hauteur_image*Loupe_Facteur;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // On doit maintenant faire la traduction … l'‚cran
 | 
			
		||||
  // On doit maintenant faire la traduction … l'écran
 | 
			
		||||
  Remap_zone_HIGH(0,0,Fin_X,Fin_Y,Table_de_conversion);
 | 
			
		||||
 | 
			
		||||
  if (Loupe_Mode)
 | 
			
		||||
  {
 | 
			
		||||
    Remap_zone_HIGH(Principal_Split,0,Fin_X_Loupe,Fin_Y_Loupe,Table_de_conversion);
 | 
			
		||||
    // Il peut encore rester le bas de la barre de split … remapper si la
 | 
			
		||||
    // partie zoom‚e ne descend pas jusqu'en bas...
 | 
			
		||||
    // partie zoomée ne descend pas jusqu'en bas...
 | 
			
		||||
    Remap_zone_HIGH(Principal_Split,Fin_Y_Loupe,
 | 
			
		||||
                    (Principal_Split+(LARGEUR_BARRE_SPLIT*Menu_Facteur_X)),
 | 
			
		||||
                    Menu_Ordonnee_avant_fenetre,Table_de_conversion);
 | 
			
		||||
@ -199,7 +199,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
 | 
			
		||||
  Utilisation_temporaire=(dword *)malloc(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.
 | 
			
		||||
  for (Pos_1=0;Pos_1<=255;Pos_1++)
 | 
			
		||||
    Table_de_conversion[Pos_1]=Pos_1;
 | 
			
		||||
@ -232,7 +232,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
 | 
			
		||||
  else
 | 
			
		||||
  if ((Debut_Bloc_2<Debut_Bloc_1) && (Fin_2>=Debut_Bloc_1))
 | 
			
		||||
  {
 | 
			
		||||
    // Le bloc destination d‚borde dans le bloc source.
 | 
			
		||||
    // Le bloc destination déborde dans le bloc source.
 | 
			
		||||
 | 
			
		||||
    for (Pos_1=Debut_Bloc_2,Pos_2=Debut_Bloc_1;Pos_1<=Fin_1;Pos_1++)
 | 
			
		||||
    {
 | 
			
		||||
@ -262,7 +262,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
 | 
			
		||||
      Table_de_conversion[Pos_2]=Pos_1;
 | 
			
		||||
 | 
			
		||||
      //   On intervertit le nombre d'utilisation des couleurs pour garder une
 | 
			
		||||
      // coh‚rence lors d'un ‚ventuel "Zap unused".
 | 
			
		||||
      // cohérence lors d'un éventuel "Zap unused".
 | 
			
		||||
      Tempo                     =Utilisation_couleur[Pos_1];
 | 
			
		||||
      Utilisation_couleur[Pos_1]=Utilisation_couleur[Pos_2];
 | 
			
		||||
      Utilisation_couleur[Pos_2]=Tempo;
 | 
			
		||||
@ -285,8 +285,8 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
 | 
			
		||||
  free(Utilisation_temporaire);
 | 
			
		||||
  free(Palette_temporaire);
 | 
			
		||||
 | 
			
		||||
  // Maintenant, tous ces calculs doivent ˆtres pris en compte dans la
 | 
			
		||||
  // palette, l'image et … l'‚cran.
 | 
			
		||||
  // Maintenant, tous ces calculs doivent êtres pris en compte dans la
 | 
			
		||||
  // palette, l'image et … l'écran.
 | 
			
		||||
  Set_palette(Palette);
 | 
			
		||||
 | 
			
		||||
  if (X_Swap)
 | 
			
		||||
@ -307,7 +307,7 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
 | 
			
		||||
  for (Indice=0; Indice<256; Indice++)
 | 
			
		||||
    Table_de_remplacement[Indice]=Indice;
 | 
			
		||||
 | 
			
		||||
  // On recherche les 4 couleurs les moins utilis‚es dans l'image pour pouvoir
 | 
			
		||||
  // On recherche les 4 couleurs les moins utilisées dans l'image pour pouvoir
 | 
			
		||||
  // les remplacer par les nouvelles couleurs.
 | 
			
		||||
  for (Indice2=0; Indice2<4; Indice2++)
 | 
			
		||||
    for (Indice=255; Indice>=0; Indice--)
 | 
			
		||||
@ -318,11 +318,11 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
 | 
			
		||||
        Nouvelles[Indice2]=Indice;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  // 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).
 | 
			
		||||
  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é.
 | 
			
		||||
    for (Indice=0; Indice<3; Indice++)
 | 
			
		||||
    {
 | 
			
		||||
      if (Nouvelles[Indice]>Nouvelles[Indice+1])
 | 
			
		||||
@ -336,7 +336,7 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
 | 
			
		||||
  } while (Couleur);
 | 
			
		||||
 | 
			
		||||
  //   On sauvegarde dans RVB les teintes qu'on va remplacer et on met les
 | 
			
		||||
  // couleurs du menu par d‚faut
 | 
			
		||||
  // couleurs du menu par défaut
 | 
			
		||||
  for (Indice=0; Indice<4; Indice++)
 | 
			
		||||
  {
 | 
			
		||||
    Couleur=Nouvelles[Indice];
 | 
			
		||||
@ -348,14 +348,14 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
 | 
			
		||||
    Principal_Palette[Couleur].B=Coul_menu_pref[Indice].B;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  //   Maintenant qu'on a plac‚ notre nouvelle palette, on va chercher quelles
 | 
			
		||||
  //   Maintenant qu'on a placé notre nouvelle palette, on va chercher quelles
 | 
			
		||||
  // sont les couleurs qui peuvent remplacer les anciennes
 | 
			
		||||
  Effacer_curseur();
 | 
			
		||||
  for (Indice=0; Indice<4; Indice++)
 | 
			
		||||
    Table_de_remplacement[Nouvelles[Indice]]=Meilleure_couleur_sans_exclusion
 | 
			
		||||
                                  (RVB[Indice].R,RVB[Indice].V,RVB[Indice].B);
 | 
			
		||||
 | 
			
		||||
  // On fait un changement des couleurs visibles … l'‚cran et dans l'image
 | 
			
		||||
  // On fait un changement des couleurs visibles … l'écran et dans l'image
 | 
			
		||||
  Remap_image_HIGH(Table_de_remplacement);
 | 
			
		||||
 | 
			
		||||
  Afficher_curseur();
 | 
			
		||||
@ -369,26 +369,26 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
			
		||||
  byte  Table_de_conversion[256]; // Table de conversion
 | 
			
		||||
  int   Couleur_1;                // |_ Variables de balayages
 | 
			
		||||
  int   Couleur_2;                // |  de la palette
 | 
			
		||||
  int   Meilleure_couleur_1;
 | 
			
		||||
  int   Meilleure_couleur_2;
 | 
			
		||||
  int   Meilleure_couleur_1=0;
 | 
			
		||||
  int   Meilleure_couleur_2=0;
 | 
			
		||||
  int   Difference;
 | 
			
		||||
  int   Meilleure_difference;
 | 
			
		||||
  dword Utilisation;
 | 
			
		||||
  dword Meilleure_utilisation;
 | 
			
		||||
 | 
			
		||||
  //   On commence par initialiser la table de conversion dans un ‚tat o—
 | 
			
		||||
  // aucune conversion ne sera effectu‚e.
 | 
			
		||||
  //   On commence par initialiser la table de conversion dans un état o—
 | 
			
		||||
  // aucune conversion ne sera effectuée.
 | 
			
		||||
  for (Couleur_1=0; Couleur_1<=255; Couleur_1++)
 | 
			
		||||
    Table_de_conversion[Couleur_1]=Couleur_1;
 | 
			
		||||
 | 
			
		||||
  //   Si on ne connait pas encore le nombre de couleurs utilis‚es, on le
 | 
			
		||||
  // calcule! (!!! La fonction appel‚e Efface puis Affiche le curseur !!!)
 | 
			
		||||
  //   Si on ne connait pas encore le nombre de couleurs utilisées, on le
 | 
			
		||||
  // calcule! (!!! La fonction appelée Efface puis Affiche le curseur !!!)
 | 
			
		||||
  if ((*Nb_couleurs_utilisees)<0)
 | 
			
		||||
    Compter_nb_couleurs_utilisees(Nb_couleurs_utilisees,Utilisation_couleur);
 | 
			
		||||
 | 
			
		||||
  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...)
 | 
			
		||||
 | 
			
		||||
  // Pour cela, on va scruter la couleur Couleur_1 et se servir de l'indice
 | 
			
		||||
@ -408,13 +408,13 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
			
		||||
      // On va maintenant s'occuper de la table de conversion:
 | 
			
		||||
      Table_de_conversion[Couleur_1]=Couleur_2;
 | 
			
		||||
 | 
			
		||||
      // Maintenant, la place d‚sign‚e par Couleur_2 est occup‚e, alors on
 | 
			
		||||
      // Maintenant, la place désignée par Couleur_2 est occupée, alors on
 | 
			
		||||
      // doit passer … un indice de destination suivant.
 | 
			
		||||
      Couleur_2++;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // On met toutes les couleurs inutilis‚es en noir
 | 
			
		||||
  // On met toutes les couleurs inutilisées en noir
 | 
			
		||||
  for (;Couleur_2<256;Couleur_2++)
 | 
			
		||||
  {
 | 
			
		||||
    Palette[Couleur_2].R=0;
 | 
			
		||||
@ -423,13 +423,13 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
			
		||||
    Utilisation_couleur[Couleur_2]=0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  //   Maintenant qu'on a une palette clean, on va boucler en r‚duisant
 | 
			
		||||
  // le nombre de couleurs jusqu'… ce qu'on atteigne le nombre d‚sir‚.
 | 
			
		||||
  //   Maintenant qu'on a une palette clean, on va boucler en réduisant
 | 
			
		||||
  // le nombre de couleurs jusqu'… ce qu'on atteigne le nombre désiré.
 | 
			
		||||
  while ((*Nb_couleurs_utilisees)>Nb_couleurs_demandees)
 | 
			
		||||
  {
 | 
			
		||||
    //   Il s'agit de trouver les 2 couleurs qui se ressemblent le plus
 | 
			
		||||
    // 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
 | 
			
		||||
    // 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
 | 
			
		||||
    // en fonction de leur utilisation dans l'image.
 | 
			
		||||
 | 
			
		||||
    Meilleure_difference =0x7FFF;
 | 
			
		||||
@ -456,8 +456,8 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    //   Maintenant qu'on les a trouv‚es, on va pouvoir mettre … jour nos
 | 
			
		||||
    // donn‚es pour que le remplacement se fasse sans encombres.
 | 
			
		||||
    //   Maintenant qu'on les a trouvées, on va pouvoir mettre … jour nos
 | 
			
		||||
    // données pour que le remplacement se fasse sans encombres.
 | 
			
		||||
 | 
			
		||||
    // En somme, on va remplacer Meilleure_couleur_2 par Meilleure_couleur_1,
 | 
			
		||||
    // mais attention, on ne remplace pas Meilleure_couleur_1 par
 | 
			
		||||
@ -483,8 +483,8 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
			
		||||
    {
 | 
			
		||||
      if (Table_de_conversion[Couleur_1]==Meilleure_couleur_2)
 | 
			
		||||
      {
 | 
			
		||||
        //   La Couleur_1 avait d‚j… pr‚vue de se faire remplacer par la
 | 
			
		||||
        // couleur que l'on veut maintenant ‚liminer. On va maintenant
 | 
			
		||||
        //   La Couleur_1 avait déj… prévue de se faire remplacer par la
 | 
			
		||||
        // couleur que l'on veut maintenant éliminer. On va maintenant
 | 
			
		||||
        // demander … ce que la Couleur_1 se fasse remplacer par la
 | 
			
		||||
        // Meilleure_couleur_1.
 | 
			
		||||
        Table_de_conversion[Couleur_1]=Meilleure_couleur_1;
 | 
			
		||||
@ -492,8 +492,8 @@ 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
 | 
			
		||||
    // 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
 | 
			
		||||
    // 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
 | 
			
		||||
    // couleur en arriŠre.
 | 
			
		||||
    for (Couleur_1=0;Couleur_1<=255;Couleur_1++)
 | 
			
		||||
    {
 | 
			
		||||
@ -505,47 +505,47 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
			
		||||
        // La Couleur_1 va scroller en arriŠre.
 | 
			
		||||
 | 
			
		||||
        //   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];
 | 
			
		||||
 | 
			
		||||
        //   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].V=Palette[Couleur_1].V;
 | 
			
		||||
        Palette[Couleur_1-1].B=Palette[Couleur_1].B;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      //   Une fois la palette et la table d'utilisation g‚r‚es, on peut
 | 
			
		||||
      //   Une fois la palette et la table d'utilisation gérées, on peut
 | 
			
		||||
      // s'occuper de notre table de conversion.
 | 
			
		||||
      if (Table_de_conversion[Couleur_1]>Meilleure_couleur_2)
 | 
			
		||||
        //   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]--;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //   On vient d'‚jecter une couleur, donc on peut mettre … jour le nombre
 | 
			
		||||
    // de couleurs utilis‚es.
 | 
			
		||||
    //   On vient d'éjecter une couleur, donc on peut mettre … jour le nombre
 | 
			
		||||
    // de couleurs utilisées.
 | 
			
		||||
    (*Nb_couleurs_utilisees)--;
 | 
			
		||||
 | 
			
		||||
    // A la fin, on doit passer (dans la palette) les teintes du dernier
 | 
			
		||||
    // ‚l‚ment de notre ensemble en noir.
 | 
			
		||||
    // élément de notre ensemble en noir.
 | 
			
		||||
    Palette[*Nb_couleurs_utilisees].R=0;
 | 
			
		||||
    Palette[*Nb_couleurs_utilisees].V=0;
 | 
			
		||||
    Palette[*Nb_couleurs_utilisees].B=0;
 | 
			
		||||
 | 
			
		||||
    // Au passage, on va s'assurer que l'on a pas oubli‚ de la mettre … une
 | 
			
		||||
    // Au passage, on va s'assurer que l'on a pas oublié de la mettre … une
 | 
			
		||||
    // utilisation nulle.
 | 
			
		||||
    Utilisation_couleur[*Nb_couleurs_utilisees]=0;
 | 
			
		||||
 | 
			
		||||
    // AprŠs avoir ‚ject‚ une couleur, on le fait savoir … l'utilisateur par
 | 
			
		||||
    // l'interm‚diaire du compteur de nombre utilis‚es.
 | 
			
		||||
    // AprŠs avoir éjecté une couleur, on le fait savoir … l'utilisateur par
 | 
			
		||||
    // l'intermédiaire du compteur de nombre utilisées.
 | 
			
		||||
    Num2str(*Nb_couleurs_utilisees,Chaine,3);
 | 
			
		||||
    Print_dans_fenetre(186,23,Chaine,CM_Noir,CM_Clair);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  //   Maintenant, tous ces calculs doivent ˆtres pris en compte dans la
 | 
			
		||||
  // palette, l'image et … l'‚cran.
 | 
			
		||||
  Remap_image_HIGH(Table_de_conversion); // Et voila pour l'image et l'‚cran
 | 
			
		||||
  //   Maintenant, tous ces calculs doivent êtres pris en compte dans la
 | 
			
		||||
  // palette, l'image et … l'écran.
 | 
			
		||||
  Remap_image_HIGH(Table_de_conversion); // Et voila pour l'image et l'écran
 | 
			
		||||
  Afficher_curseur();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -599,7 +599,7 @@ void Palette_Reafficher_jauges(struct Fenetre_Bouton_scroller * Jauge_rouge,
 | 
			
		||||
  char Chaine[3];
 | 
			
		||||
 | 
			
		||||
  Effacer_curseur();
 | 
			
		||||
  // R‚affichage des jauges:
 | 
			
		||||
  // Réaffichage des jauges:
 | 
			
		||||
  if (Debut!=Fin)
 | 
			
		||||
  {
 | 
			
		||||
    // Dans le cas d'un bloc, tout … 0.
 | 
			
		||||
@ -644,9 +644,9 @@ void Bouton_Palette(void)
 | 
			
		||||
{
 | 
			
		||||
  static short Indice_Reduction_palette=0;
 | 
			
		||||
  static short Reduce_Nb_couleurs=256;
 | 
			
		||||
  short  Couleur_temporaire; // Variable pouvant reservir pour diff‚rents calculs interm‚diaires
 | 
			
		||||
  short  Couleur_temporaire; // Variable pouvant reservir pour différents calculs intermédiaires
 | 
			
		||||
  dword  Temp;
 | 
			
		||||
  byte   Couleur,Click; // Variables pouvant reservir pour diff‚rents calculs interm‚diaires
 | 
			
		||||
  byte   Couleur,Click; // Variables pouvant reservir pour différents calculs intermédiaires
 | 
			
		||||
  short  Bouton_clicke;
 | 
			
		||||
  word   Ancien_Mouse_X;
 | 
			
		||||
  word   Ancien_Mouse_Y;
 | 
			
		||||
@ -657,7 +657,7 @@ void Bouton_Palette(void)
 | 
			
		||||
  byte   Derniere_couleur;
 | 
			
		||||
  char   Chaine[10];
 | 
			
		||||
  word   i;
 | 
			
		||||
  short  Pos_X,Pos_Y;
 | 
			
		||||
  //short  Pos_X,Pos_Y;
 | 
			
		||||
  struct Fenetre_Bouton_normal   * Bouton_Used;
 | 
			
		||||
  struct Fenetre_Bouton_scroller * Jauge_rouge;
 | 
			
		||||
  struct Fenetre_Bouton_scroller * Jauge_verte;
 | 
			
		||||
@ -690,7 +690,7 @@ void Bouton_Palette(void)
 | 
			
		||||
  Fenetre_Afficher_cadre      (173, 67,121,116);
 | 
			
		||||
  Fenetre_Afficher_cadre      (128, 16, 91, 39);
 | 
			
		||||
  Fenetre_Afficher_cadre      (221, 16, 73, 39);
 | 
			
		||||
  // Cadre creux destin‚ … l'affichage de la(les) couleur(s) s‚lectionn‚e(s)
 | 
			
		||||
  // Cadre creux destiné … l'affichage de la(les) couleur(s) sélectionnée(s)
 | 
			
		||||
  Fenetre_Afficher_cadre_creux(259, 88, 26, 74);
 | 
			
		||||
 | 
			
		||||
  // Graduation des jauges de couleur
 | 
			
		||||
@ -752,7 +752,7 @@ void Bouton_Palette(void)
 | 
			
		||||
  Bouton_Used=Fenetre_Liste_boutons_normal;
 | 
			
		||||
  Fenetre_Definir_bouton_normal(132,37,83,14,"Zap unused",0,1,0x0053);//16
 | 
			
		||||
 | 
			
		||||
  // Jauge de r‚duction de palette
 | 
			
		||||
  // Jauge de réduction de palette
 | 
			
		||||
  Fenetre_Definir_bouton_scroller(225,20,31,7,1,Indice_Reduction_palette);// 17
 | 
			
		||||
  Jauge_Reduction=Fenetre_Liste_boutons_scroller;
 | 
			
		||||
 | 
			
		||||
@ -764,11 +764,11 @@ void Bouton_Palette(void)
 | 
			
		||||
  Fenetre_Definir_bouton_normal(66,32,59,14,"X-Inv." ,5,1,0x002F);   // 22
 | 
			
		||||
 | 
			
		||||
  Fenetre_Definir_bouton_saisie(263,39,3);                           // 23
 | 
			
		||||
  // Affichage du facteur de r‚duction de la palette
 | 
			
		||||
  // Affichage du facteur de réduction de la palette
 | 
			
		||||
  Num2str(Reduce_Nb_couleurs,Chaine,3);
 | 
			
		||||
  Print_dans_fenetre(265,41,Chaine,CM_Noir,CM_Clair);
 | 
			
		||||
 | 
			
		||||
  // Dessin des petits effets sp‚ciaux pour les boutons [+] et [-]
 | 
			
		||||
  // Dessin des petits effets spéciaux pour les boutons [+] et [-]
 | 
			
		||||
  Dessiner_zigouigoui(263, 74,CM_Blanc,-1);
 | 
			
		||||
  Dessiner_zigouigoui(280, 74,CM_Blanc,+1);
 | 
			
		||||
  Dessiner_zigouigoui(263,165,CM_Fonce,-1);
 | 
			
		||||
@ -776,8 +776,8 @@ void Bouton_Palette(void)
 | 
			
		||||
 | 
			
		||||
  Afficher_curseur();
 | 
			
		||||
 | 
			
		||||
  Clavier_americain(); // On est oblig‚ de rester en clavier am‚ricain pour
 | 
			
		||||
                       // que l'on puisse d‚caler la couleur s‚lectionn‚e …
 | 
			
		||||
  Clavier_americain(); // On est obligé de rester en clavier américain pour
 | 
			
		||||
                       // que l'on puisse décaler la couleur sélectionnée …
 | 
			
		||||
                       // l'aide des touche "^" et "$" ("[" et "]").
 | 
			
		||||
 | 
			
		||||
  if (Config.Auto_nb_used)
 | 
			
		||||
@ -794,7 +794,7 @@ void Bouton_Palette(void)
 | 
			
		||||
    {
 | 
			
		||||
      case  0 : // Nulle part
 | 
			
		||||
        break;
 | 
			
		||||
      case -1 : // Hors de la fenˆtre
 | 
			
		||||
      case -1 : // Hors de la fenêtre
 | 
			
		||||
      case  1 : // Palette
 | 
			
		||||
        if ( (Mouse_X!=Ancien_Mouse_X) || (Mouse_Y!=Ancien_Mouse_Y) || (Mouse_K!=Ancien_Mouse_K) )
 | 
			
		||||
        {
 | 
			
		||||
@ -820,13 +820,13 @@ void Bouton_Palette(void)
 | 
			
		||||
              if ( (Fore_color!=Couleur_temporaire) || (Debut_block!=Fin_block) )
 | 
			
		||||
              {
 | 
			
		||||
                // La couleur en question est nouvelle ou elle annule un
 | 
			
		||||
                // ancien bloc. Il faut donc s‚lectionner cette couleur comme
 | 
			
		||||
                // ancien bloc. Il faut donc sélectionner cette couleur comme
 | 
			
		||||
                // unique couleur choisie.
 | 
			
		||||
 | 
			
		||||
                Fore_color=Premiere_couleur=Derniere_couleur=Debut_block=Fin_block=Couleur_temporaire;
 | 
			
		||||
                Tagger_intervalle_palette(Debut_block,Fin_block);
 | 
			
		||||
 | 
			
		||||
                // Affichage du nø de la couleur s‚lectionn‚e
 | 
			
		||||
                // Affichage du nø de la couleur sélectionnée
 | 
			
		||||
                Block(Fenetre_Pos_X+(Menu_Facteur_X*261),Fenetre_Pos_Y+(Menu_Facteur_Y*58),Menu_Facteur_X*32,Menu_Facteur_Y*7,CM_Clair);
 | 
			
		||||
                Num2str(Fore_color,Chaine,3);
 | 
			
		||||
                Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
 | 
			
		||||
@ -853,7 +853,7 @@ void Bouton_Palette(void)
 | 
			
		||||
                  Debut_block=Premiere_couleur;
 | 
			
		||||
                  Fin_block=Couleur_temporaire;
 | 
			
		||||
 | 
			
		||||
                  // Affichage du nø de la couleur s‚lectionn‚e
 | 
			
		||||
                  // Affichage du nø de la couleur sélectionnée
 | 
			
		||||
                  Num2str(Debut_block,Chaine  ,3);
 | 
			
		||||
                  Num2str(Fin_block  ,Chaine+4,3);
 | 
			
		||||
                  Chaine[3]=26; // FlŠche vers la droite
 | 
			
		||||
@ -862,7 +862,7 @@ void Bouton_Palette(void)
 | 
			
		||||
                  // Affichage des jauges
 | 
			
		||||
                  Afficher_les_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,1,NULL);
 | 
			
		||||
 | 
			
		||||
                  // 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);
 | 
			
		||||
                }
 | 
			
		||||
                else if (Premiere_couleur>Couleur_temporaire)
 | 
			
		||||
@ -870,7 +870,7 @@ void Bouton_Palette(void)
 | 
			
		||||
                  Debut_block=Couleur_temporaire;
 | 
			
		||||
                  Fin_block=Premiere_couleur;
 | 
			
		||||
 | 
			
		||||
                  // Affichage du nø de la couleur s‚lectionn‚e
 | 
			
		||||
                  // Affichage du nø de la couleur sélectionnée
 | 
			
		||||
                  Num2str(Debut_block,Chaine  ,3);
 | 
			
		||||
                  Num2str(Fin_block  ,Chaine+4,3);
 | 
			
		||||
                  Chaine[3]=26; // FlŠche vers la droite
 | 
			
		||||
@ -879,7 +879,7 @@ void Bouton_Palette(void)
 | 
			
		||||
                  // Affichage des jauges
 | 
			
		||||
                  Afficher_les_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,1,NULL);
 | 
			
		||||
 | 
			
		||||
                  // 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);
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
@ -887,7 +887,7 @@ void Bouton_Palette(void)
 | 
			
		||||
                  Debut_block=Fin_block=Premiere_couleur;
 | 
			
		||||
                  Block(Fenetre_Pos_X+(Menu_Facteur_X*176),Fenetre_Pos_Y+(Menu_Facteur_Y*172),Menu_Facteur_X*84,Menu_Facteur_Y*7,CM_Clair);
 | 
			
		||||
 | 
			
		||||
                  // Affichage du nø de la couleur s‚lectionn‚e
 | 
			
		||||
                  // Affichage du nø de la couleur sélectionnée
 | 
			
		||||
                  Block(Fenetre_Pos_X+(Menu_Facteur_X*261),Fenetre_Pos_Y+(Menu_Facteur_Y*58),Menu_Facteur_X*32,Menu_Facteur_Y*7,CM_Clair);
 | 
			
		||||
                  Num2str(Fore_color,Chaine,3);
 | 
			
		||||
                  Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
 | 
			
		||||
@ -924,7 +924,7 @@ void Bouton_Palette(void)
 | 
			
		||||
 | 
			
		||||
          if (Jauge_rouge->Position>63)
 | 
			
		||||
          {
 | 
			
		||||
            // Jauge dans les n‚gatifs:
 | 
			
		||||
            // Jauge dans les négatifs:
 | 
			
		||||
            Num2str(-(63-Jauge_rouge->Position),Chaine,3);
 | 
			
		||||
            Chaine[0]='-';
 | 
			
		||||
          }
 | 
			
		||||
@ -961,7 +961,7 @@ void Bouton_Palette(void)
 | 
			
		||||
 | 
			
		||||
          if (Jauge_verte->Position>63)
 | 
			
		||||
          {
 | 
			
		||||
            // Jauge dans les n‚gatifs:
 | 
			
		||||
            // Jauge dans les négatifs:
 | 
			
		||||
            Num2str(-(63-Jauge_verte->Position),Chaine,3);
 | 
			
		||||
            Chaine[0]='-';
 | 
			
		||||
          }
 | 
			
		||||
@ -998,7 +998,7 @@ void Bouton_Palette(void)
 | 
			
		||||
 | 
			
		||||
          if (Jauge_bleue->Position>63)
 | 
			
		||||
          {
 | 
			
		||||
            // Jauge dans les n‚gatifs:
 | 
			
		||||
            // Jauge dans les négatifs:
 | 
			
		||||
            Num2str(-(63-Jauge_bleue->Position),Chaine,3);
 | 
			
		||||
            Chaine[0]='-';
 | 
			
		||||
          }
 | 
			
		||||
@ -1027,7 +1027,7 @@ void Bouton_Palette(void)
 | 
			
		||||
        memcpy(Palette_temporaire,Palette_defaut,sizeof(T_Palette));
 | 
			
		||||
        Set_palette(Palette_defaut);
 | 
			
		||||
        Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
 | 
			
		||||
        // On pr‚pare la "modifiabilit‚" des nouvelles couleurs
 | 
			
		||||
        // On prépare la "modifiabilité" des nouvelles couleurs
 | 
			
		||||
        memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
 | 
			
		||||
 | 
			
		||||
        Il_faut_remapper=1;
 | 
			
		||||
@ -1045,7 +1045,7 @@ void Bouton_Palette(void)
 | 
			
		||||
          Modifier_Bleu (i,Couleur_temporaire,Palette_de_travail);
 | 
			
		||||
        }
 | 
			
		||||
        Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
 | 
			
		||||
        // On pr‚pare la "modifiabilit‚" des nouvelles couleurs
 | 
			
		||||
        // On prépare la "modifiabilité" des nouvelles couleurs
 | 
			
		||||
        memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
 | 
			
		||||
 | 
			
		||||
        Il_faut_remapper=1;
 | 
			
		||||
@ -1061,7 +1061,7 @@ void Bouton_Palette(void)
 | 
			
		||||
          memcpy(Palette_backup,Palette_de_travail,sizeof(T_Palette));
 | 
			
		||||
 | 
			
		||||
          // On calcule le nombre de couleurs a swapper sans risquer de sortir
 | 
			
		||||
          // de la palette (La var. Premiere_couleur est utilis‚e pour ‚conomiser 1 var; c'est tout)
 | 
			
		||||
          // de la palette (La var. Premiere_couleur est utilisée pour économiser 1 var; c'est tout)
 | 
			
		||||
          Premiere_couleur=(Couleur_temporaire+Fin_block-Debut_block<=255)?Fin_block+1-Debut_block:256-Couleur_temporaire;
 | 
			
		||||
 | 
			
		||||
          if (Bouton_clicke==8) // On ne fait de backup de l'image que si on
 | 
			
		||||
@ -1076,7 +1076,7 @@ void Bouton_Palette(void)
 | 
			
		||||
 | 
			
		||||
          memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
 | 
			
		||||
 | 
			
		||||
          // On d‚place le bloc vers les modifs:
 | 
			
		||||
          // On déplace le bloc vers les modifs:
 | 
			
		||||
          Derniere_couleur=Fin_block=Couleur_temporaire+Premiere_couleur-1;
 | 
			
		||||
          Fore_color=Premiere_couleur=Debut_block=Couleur_temporaire;
 | 
			
		||||
          // On raffiche le nø des bornes du bloc:
 | 
			
		||||
@ -1086,7 +1086,7 @@ void Bouton_Palette(void)
 | 
			
		||||
            Num2str(Debut_block,Chaine  ,3);
 | 
			
		||||
            Num2str(Fin_block  ,Chaine+4,3);
 | 
			
		||||
            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);
 | 
			
		||||
          }
 | 
			
		||||
          else
 | 
			
		||||
@ -1118,7 +1118,7 @@ void Bouton_Palette(void)
 | 
			
		||||
                 ((Couleur_temporaire+Fin_block-Debut_block<=255)?Fin_block+1-Debut_block:256-Couleur_temporaire)*3);
 | 
			
		||||
          memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
 | 
			
		||||
          Set_palette(Palette_de_travail);
 | 
			
		||||
          // On d‚place le bloc vers les modifs:
 | 
			
		||||
          // On déplace le bloc vers les modifs:
 | 
			
		||||
          Derniere_couleur=Fin_block=((Couleur_temporaire+Fin_block-Debut_block<=255)?(Couleur_temporaire+Fin_block-Debut_block):255);
 | 
			
		||||
          Fore_color=Premiere_couleur=Debut_block=Couleur_temporaire;
 | 
			
		||||
          // On raffiche le nø des bornes du bloc:
 | 
			
		||||
@ -1128,7 +1128,7 @@ void Bouton_Palette(void)
 | 
			
		||||
            Num2str(Debut_block,Chaine  ,3);
 | 
			
		||||
            Num2str(Fin_block  ,Chaine+4,3);
 | 
			
		||||
            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);
 | 
			
		||||
          }
 | 
			
		||||
          else
 | 
			
		||||
@ -1170,7 +1170,7 @@ void Bouton_Palette(void)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
 | 
			
		||||
        // On pr‚pare la "modifiabilit‚" des nouvelles couleurs
 | 
			
		||||
        // On prépare la "modifiabilité" des nouvelles couleurs
 | 
			
		||||
        memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
 | 
			
		||||
 | 
			
		||||
        Il_faut_remapper=1;
 | 
			
		||||
@ -1194,7 +1194,7 @@ void Bouton_Palette(void)
 | 
			
		||||
          memcpy(Principal_Palette,Palette_temporaire,sizeof(T_Palette));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Set_palette(Palette_de_travail);     // On d‚finit la nouvelle palette
 | 
			
		||||
        Set_palette(Palette_de_travail);     // On définit la nouvelle palette
 | 
			
		||||
        Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
 | 
			
		||||
        memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
 | 
			
		||||
 | 
			
		||||
@ -1246,11 +1246,11 @@ void Bouton_Palette(void)
 | 
			
		||||
        Il_faut_remapper=1;
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case 17 : // Jauge de r‚duction de palette
 | 
			
		||||
      case 17 : // Jauge de réduction de palette
 | 
			
		||||
        if (Indice_Reduction_palette!=Jauge_Reduction->Position)
 | 
			
		||||
        {
 | 
			
		||||
          Indice_Reduction_palette=Jauge_Reduction->Position;
 | 
			
		||||
          // Affichage du facteur de r‚duction de la palette
 | 
			
		||||
          // Affichage du facteur de réduction de la palette
 | 
			
		||||
          Effacer_curseur();
 | 
			
		||||
          Print_dans_fenetre(265,41,Libelle_reduction_palette[Indice_Reduction_palette],CM_Noir,CM_Clair);
 | 
			
		||||
          Afficher_curseur();
 | 
			
		||||
@ -1315,7 +1315,7 @@ void Bouton_Palette(void)
 | 
			
		||||
          // -- Rouge --
 | 
			
		||||
          if (Jauge_rouge->Position>63)
 | 
			
		||||
          {
 | 
			
		||||
            // Jauge dans les n‚gatifs:
 | 
			
		||||
            // Jauge dans les négatifs:
 | 
			
		||||
            Num2str(-(63-Jauge_rouge->Position),Chaine,3);
 | 
			
		||||
            Chaine[0]='-';
 | 
			
		||||
          }
 | 
			
		||||
@ -1336,7 +1336,7 @@ void Bouton_Palette(void)
 | 
			
		||||
          // -- Vert --
 | 
			
		||||
          if (Jauge_verte->Position>63)
 | 
			
		||||
          {
 | 
			
		||||
            // Jauge dans les n‚gatifs:
 | 
			
		||||
            // Jauge dans les négatifs:
 | 
			
		||||
            Num2str(-(63-Jauge_verte->Position),Chaine,3);
 | 
			
		||||
            Chaine[0]='-';
 | 
			
		||||
          }
 | 
			
		||||
@ -1357,7 +1357,7 @@ void Bouton_Palette(void)
 | 
			
		||||
          // -- Bleu --
 | 
			
		||||
          if (Jauge_bleue->Position>63)
 | 
			
		||||
          {
 | 
			
		||||
            // Jauge dans les n‚gatifs:
 | 
			
		||||
            // Jauge dans les négatifs:
 | 
			
		||||
            Num2str(-(63-Jauge_bleue->Position),Chaine,3);
 | 
			
		||||
            Chaine[0]='-';
 | 
			
		||||
          }
 | 
			
		||||
@ -1437,7 +1437,7 @@ void Bouton_Palette(void)
 | 
			
		||||
          // -- Rouge --
 | 
			
		||||
          if (Jauge_rouge->Position>63)
 | 
			
		||||
          {
 | 
			
		||||
            // Jauge dans les n‚gatifs:
 | 
			
		||||
            // Jauge dans les négatifs:
 | 
			
		||||
            Num2str(-(63-Jauge_rouge->Position),Chaine,3);
 | 
			
		||||
            Chaine[0]='-';
 | 
			
		||||
          }
 | 
			
		||||
@ -1458,7 +1458,7 @@ void Bouton_Palette(void)
 | 
			
		||||
          // -- Vert --
 | 
			
		||||
          if (Jauge_verte->Position>63)
 | 
			
		||||
          {
 | 
			
		||||
            // Jauge dans les n‚gatifs:
 | 
			
		||||
            // Jauge dans les négatifs:
 | 
			
		||||
            Num2str(-(63-Jauge_verte->Position),Chaine,3);
 | 
			
		||||
            Chaine[0]='-';
 | 
			
		||||
          }
 | 
			
		||||
@ -1479,7 +1479,7 @@ void Bouton_Palette(void)
 | 
			
		||||
          // -- Bleu --
 | 
			
		||||
          if (Jauge_bleue->Position>63)
 | 
			
		||||
          {
 | 
			
		||||
            // Jauge dans les n‚gatifs:
 | 
			
		||||
            // Jauge dans les négatifs:
 | 
			
		||||
            Num2str(-(63-Jauge_bleue->Position),Chaine,3);
 | 
			
		||||
            Chaine[0]='-';
 | 
			
		||||
          }
 | 
			
		||||
@ -1513,7 +1513,7 @@ void Bouton_Palette(void)
 | 
			
		||||
          Modifier_Bleu (i,63-Palette_de_travail[i].B,Palette_de_travail);
 | 
			
		||||
        }
 | 
			
		||||
        Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
 | 
			
		||||
        // On pr‚pare la "modifiabilit‚" des nouvelles couleurs
 | 
			
		||||
        // On prépare la "modifiabilité" des nouvelles couleurs
 | 
			
		||||
        memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
 | 
			
		||||
 | 
			
		||||
        Il_faut_remapper=1;
 | 
			
		||||
@ -1556,13 +1556,13 @@ void Bouton_Palette(void)
 | 
			
		||||
          Remap_image_HIGH(Table_de_conversion);
 | 
			
		||||
          Afficher_curseur();
 | 
			
		||||
        }
 | 
			
		||||
        // On pr‚pare la "modifiabilit‚" des nouvelles couleurs
 | 
			
		||||
        // On prépare la "modifiabilité" des nouvelles couleurs
 | 
			
		||||
        memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
 | 
			
		||||
 | 
			
		||||
        Il_faut_remapper=1;
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
      case 23 : // Saisie du nombre de couleurs pour la r‚duction de palette
 | 
			
		||||
      case 23 : // Saisie du nombre de couleurs pour la réduction de palette
 | 
			
		||||
        Num2str(Reduce_Nb_couleurs,Chaine,3);
 | 
			
		||||
        Effacer_curseur();
 | 
			
		||||
 | 
			
		||||
@ -1592,7 +1592,7 @@ void Bouton_Palette(void)
 | 
			
		||||
    {
 | 
			
		||||
      switch (Touche)
 | 
			
		||||
      {
 | 
			
		||||
        case 0x001A : // D‚caler Forecolor vers la gauche
 | 
			
		||||
        case 0x001A : // Décaler Forecolor vers la gauche
 | 
			
		||||
          if (Debut_block==Fin_block)
 | 
			
		||||
          {
 | 
			
		||||
            Fore_color--;
 | 
			
		||||
@ -1603,7 +1603,7 @@ void Bouton_Palette(void)
 | 
			
		||||
            Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
 | 
			
		||||
            Effacer_curseur();
 | 
			
		||||
            Tagger_intervalle_palette(Debut_block,Fin_block);
 | 
			
		||||
            // Affichage du nø de la couleur s‚lectionn‚e
 | 
			
		||||
            // Affichage du nø de la couleur sélectionnée
 | 
			
		||||
            Num2str(Fore_color,Chaine,3);
 | 
			
		||||
            Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
 | 
			
		||||
            // Affichage dans le block de visu de la couleur en cours
 | 
			
		||||
@ -1612,7 +1612,7 @@ void Bouton_Palette(void)
 | 
			
		||||
          }
 | 
			
		||||
          break;
 | 
			
		||||
 | 
			
		||||
        case 0x001B : // D‚caler Forecolor vers la droite
 | 
			
		||||
        case 0x001B : // Décaler Forecolor vers la droite
 | 
			
		||||
          if (Debut_block==Fin_block)
 | 
			
		||||
          {
 | 
			
		||||
            Fore_color++;
 | 
			
		||||
@ -1623,7 +1623,7 @@ void Bouton_Palette(void)
 | 
			
		||||
            Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
 | 
			
		||||
            Effacer_curseur();
 | 
			
		||||
            Tagger_intervalle_palette(Debut_block,Fin_block);
 | 
			
		||||
            // Affichage du nø de la couleur s‚lectionn‚e
 | 
			
		||||
            // Affichage du nø de la couleur sélectionnée
 | 
			
		||||
            Num2str(Fore_color,Chaine,3);
 | 
			
		||||
            Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
 | 
			
		||||
            // Affichage dans le block de visu de la couleur en cours
 | 
			
		||||
@ -1645,7 +1645,7 @@ void Bouton_Palette(void)
 | 
			
		||||
          Afficher_curseur();
 | 
			
		||||
          break;
 | 
			
		||||
 | 
			
		||||
        case 0x000E : // Remise des couleurs du menu … l'‚tat normal en essayant
 | 
			
		||||
        case 0x000E : // Remise des couleurs du menu … l'état normal en essayant
 | 
			
		||||
                      // de ne pas trop modifier l'image.
 | 
			
		||||
          if (!Backup_de_l_image_effectue)
 | 
			
		||||
          {
 | 
			
		||||
@ -1668,12 +1668,12 @@ void Bouton_Palette(void)
 | 
			
		||||
          Il_faut_remapper=1;
 | 
			
		||||
          break;
 | 
			
		||||
 | 
			
		||||
        case 0x0029 : // R‚cup‚ration d'une couleur derriŠre le menu
 | 
			
		||||
        case 0x0029 : // Récupération d'une couleur derriŠre le menu
 | 
			
		||||
        case 0x0033 :
 | 
			
		||||
          Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
 | 
			
		||||
          if (Click)
 | 
			
		||||
          {
 | 
			
		||||
            Effacer_Curseur();
 | 
			
		||||
            Effacer_curseur();
 | 
			
		||||
            if (Click==A_DROITE)
 | 
			
		||||
            {
 | 
			
		||||
              if (Back_color!=Couleur)
 | 
			
		||||
@ -1691,7 +1691,7 @@ void Bouton_Palette(void)
 | 
			
		||||
              Fore_color=Premiere_couleur=Derniere_couleur=Debut_block=Fin_block=Couleur;
 | 
			
		||||
              Tagger_intervalle_palette(Debut_block,Fin_block);
 | 
			
		||||
 | 
			
		||||
              // Affichage du nø de la couleur s‚lectionn‚e
 | 
			
		||||
              // Affichage du nø de la couleur sélectionnée
 | 
			
		||||
              Block(Fenetre_Pos_X+(Menu_Facteur_X*261),Fenetre_Pos_Y+(Menu_Facteur_Y*58),Menu_Facteur_X*32,Menu_Facteur_Y*7,CM_Clair);
 | 
			
		||||
              Num2str(Fore_color,Chaine,3);
 | 
			
		||||
              Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
 | 
			
		||||
@ -1761,7 +1761,7 @@ void Bouton_Palette(void)
 | 
			
		||||
 | 
			
		||||
  Calculer_couleurs_menu_optimales(Principal_Palette);
 | 
			
		||||
 | 
			
		||||
  // La variable employ‚e ici n'a pas vraiment de rapport avec son nom...
 | 
			
		||||
  // La variable employée ici n'a pas vraiment de rapport avec son nom...
 | 
			
		||||
  Il_faut_remapper=(Fenetre_Pos_Y+(Fenetre_Hauteur*Menu_Facteur_Y)<Menu_Ordonnee_avant_fenetre);
 | 
			
		||||
 | 
			
		||||
  Fermer_fenetre();
 | 
			
		||||
@ -1769,9 +1769,9 @@ void Bouton_Palette(void)
 | 
			
		||||
 | 
			
		||||
  Recadrer_palette();
 | 
			
		||||
 | 
			
		||||
  //   On affiche les "ForeBack" car le menu n'est raffich‚ que si la fenˆtre
 | 
			
		||||
  // empi‚tait sur le menu. Mais si les couleurs on ‚t‚ modifi‚es, il faut
 | 
			
		||||
  // rafficher tout le menu remapp‚.
 | 
			
		||||
  //   On affiche les "ForeBack" car le menu n'est raffiché que si la fenêtre
 | 
			
		||||
  // empiétait sur le menu. Mais si les couleurs on été modifiées, il faut
 | 
			
		||||
  // rafficher tout le menu remappé.
 | 
			
		||||
  if (Il_faut_remapper)
 | 
			
		||||
    Afficher_menu();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user