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
|
// Affichage de la m‚moire restante
|
||||||
Print_dans_fenetre(10,35,"Free memory:",STATS_COULEUR_TITRES,CM_Noir);
|
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);
|
Print_dans_fenetre(114,35,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
|
||||||
|
|
||||||
// Affichage de l'espace disque libre
|
// Affichage de l'espace disque libre
|
||||||
@ -230,7 +230,7 @@ void Bouton_Stats(void)
|
|||||||
Taille=Informations_Disque->f_bfree;
|
Taille=Informations_Disque->f_bfree;
|
||||||
if (Taille>=0)
|
if (Taille>=0)
|
||||||
{
|
{
|
||||||
sprintf(Buffer,"%d bytes",Taille);
|
sprintf(Buffer,"%ld bytes",Taille);
|
||||||
Print_dans_fenetre(146,51,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
|
Print_dans_fenetre(146,51,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
|
||||||
}
|
}
|
||||||
else
|
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
|
#define M_2PI 6.28318530717958647692528676656
|
||||||
|
|
||||||
// Note: La taille du fichier GFX2.DAT est d‚finie au d‚but de INIT.C !
|
// 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 POURCENTAGE_VERSION "96.5%" // Libellé du pourcentage de la version á
|
||||||
#define VERSION1 2 // |
|
#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 BETA1 96 // | plusieurs parties => 2.0 á95.5%
|
||||||
#define BETA2 5 // |
|
#define BETA2 5 // |
|
||||||
#define ALPHA_BETA "á" // Type de la version "à" ou "á"
|
#define ALPHA_BETA "á" // Type de la version "à" ou "á"
|
||||||
#define TAILLE_FICHIER_CONFIG 10351 // Taille du fichier GFX2.CFG
|
#define TAILLE_FICHIER_CONFIG 10351 // Taille du fichier GFX2.CFG
|
||||||
#define NB_MODES_VIDEO 60 // Nombre de modes vid‚o
|
#define NB_MODES_VIDEO 60 // Nombre de modes vidéo
|
||||||
#define NB_BOUTONS 38 // Nombre de boutons … g‚rer
|
#define NB_BOUTONS 38 // Nombre de boutons à gérer
|
||||||
#define NB_TOUCHES 134 // Nombre de combinaisons de touches
|
#define NB_TOUCHES 134 // Nombre de combinaisons de touches
|
||||||
#define NB_TOUCHES_SPECIALES 72 // Nombre de touches sp‚ciales
|
#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_OPERATIONS 32 // Nombre d'opérations gérées par le moteur
|
||||||
#define NB_FACTEURS_DE_ZOOM 12 // Nombre de facteurs de zoom
|
#define NB_FACTEURS_DE_ZOOM 12 // Nombre de facteurs de zoom
|
||||||
#define LARGEUR_MENU 254 // Largeur 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 HAUTEUR_MENU 44 // Hauteur du menu en taille réelle
|
||||||
#define NB_SPRITES_CURSEUR 8 // Nombre de sprites de curseur
|
#define NB_SPRITES_CURSEUR 8 // Nombre de sprites de curseur
|
||||||
#define LARGEUR_SPRITE_CURSEUR 15 // Largeur d'un sprite de curseur en pixels
|
#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
|
#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 NB_SPRITES_MENU 9 // Nombre de sprites de menu
|
||||||
#define LARGEUR_SPRITE_MENU 14 // Largeur d'un sprite de menu en pixels
|
#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 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 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 HAUTEUR_PINCEAU 16 // Hauteur d'un sprite de pinceau prédéfini
|
||||||
#define TAILLE_MAXI_PINCEAU 127 // Taille maxi des pinceaux
|
#define TAILLE_MAXI_PINCEAU 127 // Taille maxi des pinceaux
|
||||||
#define NB_SPRITES_DRIVES 5 // Nombre de sprites de drives
|
#define NB_SPRITES_DRIVES 5 // Nombre de sprites de drives
|
||||||
#define LARGEUR_SPRITE_DRIVE 7 // Largeur d'un sprite de drive en pixels
|
#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 HAUTEUR_SPRITE_DRIVE 7 // Hauteur d'un sprite de drive en pixels
|
||||||
#define NB_SPRITES_PINCEAU 48 // Nombre de sprites de pinceau
|
#define NB_SPRITES_PINCEAU 48 // Nombre de sprites de pinceau
|
||||||
#define NB_TRAMES_PREDEFINIES 12 // Nombre de trames pr‚d‚finies
|
#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_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_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_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 NB_PAGES_UNDO_MAX 99 // Nombre maximal de pages d'undo
|
||||||
#define FACTEUR_DE_ZOOM_PAR_DEFAUT 4 // Facteur de zoom initial
|
#define FACTEUR_DE_ZOOM_PAR_DEFAUT 4 // Facteur de zoom initial
|
||||||
#define NB_SECTIONS_AIDE 3 // Nombre de sections dans l'aide
|
#define NB_SECTIONS_AIDE 3 // Nombre de sections dans l'aide
|
||||||
|
|
||||||
// On impose … l'allocation dynamique des pages de backups de conserver un
|
// On impose à l'allocation dynamique des pages de backups de conserver un
|
||||||
// minimum de 256 Ko pour que le reste du programme puisse continuer …
|
// minimum de 256 Ko pour que le reste du programme puisse continuer à
|
||||||
// fonctionner.
|
// fonctionner.
|
||||||
#define QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER (256*1024)
|
#define QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER (256*1024)
|
||||||
|
|
||||||
#define A_GAUCHE 1 // Indique une direction (ou click) … gauche
|
#define A_GAUCHE 1 // Indique une direction (ou click) à gauche
|
||||||
#define A_DROITE 2 // Indique une direction (ou click) … droite
|
#define A_DROITE 2 // Indique une direction (ou click) à droite
|
||||||
|
|
||||||
#define LARGEUR_BARRE_SPLIT 6 // [ Û±±° ]
|
#define LARGEUR_BARRE_SPLIT 6 // [ Û±±° ]
|
||||||
#define PROPORTION_SPLIT 0.3 // proportion de la zone non-zoom‚e en largeur par rapport … l'‚cran
|
#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 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_LOAD 12 // Nombre de formats que l'on sait charger
|
||||||
#define NB_FORMATS_SAVE 12 // Nombre de formats que l'on sait sauver
|
#define NB_FORMATS_SAVE 12 // Nombre de formats que l'on sait sauver
|
||||||
|
|
||||||
@ -69,21 +68,21 @@ enum FORMATS_RECONNUS
|
|||||||
{
|
{
|
||||||
FORMAT_PKM=1, // |
|
FORMAT_PKM=1, // |
|
||||||
FORMAT_LBM, // |
|
FORMAT_LBM, // |
|
||||||
FORMAT_GIF, // | Il faudra penser … r‚ordonner
|
FORMAT_GIF, // | Il faudra penser à réordonner
|
||||||
FORMAT_BMP, // | les donn‚es sur les formats dans
|
FORMAT_BMP, // | les données sur les formats dans
|
||||||
FORMAT_PCX, // | GLOBAL.H si on modifie ces cons-
|
FORMAT_PCX, // | GLOBAL.H si on modifie ces cons-
|
||||||
FORMAT_IMG, // |_ tantes.
|
FORMAT_IMG, // |_ tantes.
|
||||||
FORMAT_SCx, // |
|
FORMAT_SCx, // |
|
||||||
FORMAT_PI1, // | Elles repr‚sentent l'indice o—
|
FORMAT_PI1, // | Elles représentent l'indice o—
|
||||||
FORMAT_PC1, // | l'on doit aller piocher ces
|
FORMAT_PC1, // | l'on doit aller piocher ces
|
||||||
FORMAT_CEL, // | donn‚es.
|
FORMAT_CEL, // | données.
|
||||||
FORMAT_KCF, // |
|
FORMAT_KCF, // |
|
||||||
FORMAT_PAL // |
|
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
|
enum CODES_D_ERREURS
|
||||||
{
|
{
|
||||||
@ -92,32 +91,32 @@ enum CODES_D_ERREURS
|
|||||||
ERREUR_CFG_ABSENT, // Le fichier GFX2.CFG est absent
|
ERREUR_CFG_ABSENT, // Le fichier GFX2.CFG est absent
|
||||||
ERREUR_CFG_CORROMPU, // Mauvais fichier GFX2.CFG
|
ERREUR_CFG_CORROMPU, // Mauvais fichier GFX2.CFG
|
||||||
ERREUR_CFG_ANCIEN, // Ancienne version du 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_LIGNE_COMMANDE, // Erreur sur la ligne de commande
|
||||||
ERREUR_DRIVER_SOURIS, // Pas de driver souris install‚
|
ERREUR_DRIVER_SOURIS, // Pas de driver souris installé
|
||||||
ERREUR_MODE_VESA_INVALIDE, // Mode VESA demand‚ sur la ligne de commande invalide
|
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_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_NUMERO_MODE, // Erreur de choix de mode sur la ligne de commande
|
||||||
ERREUR_SAUVEGARDE_CFG, // Erreur en ‚criture pour GFX2.CFG
|
ERREUR_SAUVEGARDE_CFG, // Erreur en écriture pour GFX2.CFG
|
||||||
ERREUR_REPERTOIRE_DISPARU, // Le r‚pertoire de lancement n'existe plus
|
ERREUR_REPERTOIRE_DISPARU, // Le répertoire de lancement n'existe plus
|
||||||
ERREUR_INI_ABSENT, // Le fichier GFX2.INI est absent
|
ERREUR_INI_ABSENT, // Le fichier GFX2.INI est absent
|
||||||
ERREUR_INI_CORROMPU, // Le fichier GFX2.INI est corrompu
|
ERREUR_INI_CORROMPU, // Le fichier GFX2.INI est corrompu
|
||||||
ERREUR_SAUVEGARDE_INI, // Le fichier GFX2.INI n'est pas inscriptible
|
ERREUR_SAUVEGARDE_INI, // Le fichier GFX2.INI n'est pas inscriptible
|
||||||
ERREUR_SORRY_SORRY_SORRY // On le refera plus, promis
|
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
|
enum TYPES_DE_MODES_VIDEO
|
||||||
{
|
{
|
||||||
MODE_SDL
|
MODE_SDL
|
||||||
/*MODE_MCGA,
|
/*MODE_MCGA,
|
||||||
MODE_X,
|
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!*/
|
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
|
enum MODES_VIDEO
|
||||||
{
|
{
|
||||||
@ -183,18 +182,18 @@ enum MODES_VIDEO
|
|||||||
MODE_1024_768 // 59
|
MODE_1024_768 // 59
|
||||||
};
|
};
|
||||||
|
|
||||||
// Les diff‚rentes cat‚gories de bouton:
|
// Les différentes catégories de bouton:
|
||||||
|
|
||||||
enum FAMILLES_DE_BOUTONS
|
enum FAMILLES_DE_BOUTONS
|
||||||
{
|
{
|
||||||
FAMILLE_OUTIL=1, // Outils de dessin
|
FAMILLE_OUTIL=1, // Outils de dessin
|
||||||
FAMILLE_INTERRUPTION, // Op‚ration ‚ph‚mŠre
|
FAMILLE_INTERRUPTION, // Opération éphémŠre
|
||||||
FAMILLE_INSTANTANE, // Pif paf
|
FAMILLE_INSTANTANE, // Pif paf
|
||||||
FAMILLE_TOOLBAR, // Cache/Montre la barre d'outils
|
FAMILLE_TOOLBAR, // Cache/Montre la barre d'outils
|
||||||
FAMILLE_EFFETS // Effets
|
FAMILLE_EFFETS // Effets
|
||||||
};
|
};
|
||||||
|
|
||||||
// Les diff‚rentes formes de bouton:
|
// Les différentes formes de bouton:
|
||||||
|
|
||||||
enum FORMES_DE_BOUTONS
|
enum FORMES_DE_BOUTONS
|
||||||
{
|
{
|
||||||
@ -204,7 +203,7 @@ enum FORMES_DE_BOUTONS
|
|||||||
FORME_BOUTON_TRIANGLE_BAS_DROITE // Ex: Rectangles pleins
|
FORME_BOUTON_TRIANGLE_BAS_DROITE // Ex: Rectangles pleins
|
||||||
};
|
};
|
||||||
|
|
||||||
// Les diff‚rentes formes de curseur:
|
// Les différentes formes de curseur:
|
||||||
|
|
||||||
enum FORMES_DE_CURSEUR
|
enum FORMES_DE_CURSEUR
|
||||||
{
|
{
|
||||||
@ -221,7 +220,7 @@ enum FORMES_DE_CURSEUR
|
|||||||
FORME_CURSEUR_ROTATE_XOR
|
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
|
enum FORMES_DE_PINCEAUX
|
||||||
{
|
{
|
||||||
@ -237,18 +236,18 @@ enum FORMES_DE_PINCEAUX
|
|||||||
FORME_PINCEAU_LOSANGE,
|
FORME_PINCEAU_LOSANGE,
|
||||||
FORME_PINCEAU_ROND_TRAME,
|
FORME_PINCEAU_ROND_TRAME,
|
||||||
FORME_PINCEAU_CARRE_TRAME,
|
FORME_PINCEAU_CARRE_TRAME,
|
||||||
FORME_PINCEAU_DIVERS,// Ce doit ˆtre le dernier des types de pinceaux, comme ‡a il indique le nombre de types de pinceaux (-1)
|
FORME_PINCEAU_DIVERS,// Ce doit être le dernier des types de pinceaux, comme ‡a il indique le nombre de types de pinceaux (-1)
|
||||||
FORME_PINCEAU_POINT, // Utilis‚ pour r‚duire de pinceau … 1 point dans certaines op‚rations
|
FORME_PINCEAU_POINT, // Utilisé pour réduire de pinceau à 1 point dans certaines opérations
|
||||||
FORME_PINCEAU_BROSSE_COULEUR,
|
FORME_PINCEAU_BROSSE_COULEUR,
|
||||||
FORME_PINCEAU_BROSSE_MONOCHROME
|
FORME_PINCEAU_BROSSE_MONOCHROME
|
||||||
};
|
};
|
||||||
|
|
||||||
// Les diff‚rents ‚tats de bouton:
|
// Les différents états de bouton:
|
||||||
|
|
||||||
#define BOUTON_RELACHE 0
|
#define BOUTON_RELACHE 0
|
||||||
#define BOUTON_ENFONCE 1
|
#define BOUTON_ENFONCE 1
|
||||||
|
|
||||||
// Les diff‚rents modes de Shade
|
// Les différents modes de Shade
|
||||||
|
|
||||||
enum MODES_DE_SHADE
|
enum MODES_DE_SHADE
|
||||||
{
|
{
|
||||||
@ -257,7 +256,7 @@ enum MODES_DE_SHADE
|
|||||||
MODE_SHADE_NOSAT
|
MODE_SHADE_NOSAT
|
||||||
};
|
};
|
||||||
|
|
||||||
// Les diff‚rents chunks du fichier .CFG
|
// Les différents chunks du fichier .CFG
|
||||||
|
|
||||||
enum CHUNKS_CFG
|
enum CHUNKS_CFG
|
||||||
{
|
{
|
||||||
@ -272,7 +271,7 @@ enum CHUNKS_CFG
|
|||||||
CHUNK_QUICK_SHADE
|
CHUNK_QUICK_SHADE
|
||||||
};
|
};
|
||||||
|
|
||||||
// Les diff‚rents types de lecteurs:
|
// Les différents types de lecteurs:
|
||||||
|
|
||||||
enum TYPES_DE_LECTEURS
|
enum TYPES_DE_LECTEURS
|
||||||
{
|
{
|
||||||
@ -280,10 +279,10 @@ enum TYPES_DE_LECTEURS
|
|||||||
DRIVE_FLOPPY_5_25, // 1: Diskette 5"¬
|
DRIVE_FLOPPY_5_25, // 1: Diskette 5"¬
|
||||||
DRIVE_HDD, // 2: HDD
|
DRIVE_HDD, // 2: HDD
|
||||||
DRIVE_CDROM, // 3: CD-ROM
|
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
|
enum NUMEROS_DE_BOUTONS
|
||||||
{
|
{
|
||||||
@ -327,7 +326,7 @@ enum NUMEROS_DE_BOUTONS
|
|||||||
BOUTON_CACHER
|
BOUTON_CACHER
|
||||||
};
|
};
|
||||||
|
|
||||||
// Les actions des touches sp‚ciales
|
// Les actions des touches spéciales
|
||||||
|
|
||||||
enum ACTIONS_SPECIALES
|
enum ACTIONS_SPECIALES
|
||||||
{
|
{
|
||||||
@ -337,9 +336,9 @@ enum ACTIONS_SPECIALES
|
|||||||
SPECIAL_MOUSE_RIGHT, // |
|
SPECIAL_MOUSE_RIGHT, // |
|
||||||
SPECIAL_CLICK_LEFT, // | Il faut garder
|
SPECIAL_CLICK_LEFT, // | Il faut garder
|
||||||
SPECIAL_CLICK_RIGHT, // | ces constantes
|
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_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_PREVIOUS_BACKCOLOR, // | avec leurs valeurs
|
||||||
SPECIAL_RETRECIR_PINCEAU, // | brutes en ASM dans
|
SPECIAL_RETRECIR_PINCEAU, // | brutes en ASM dans
|
||||||
SPECIAL_GROSSIR_PINCEAU, // | Get_input !!!
|
SPECIAL_GROSSIR_PINCEAU, // | Get_input !!!
|
||||||
@ -394,7 +393,7 @@ enum ACTIONS_SPECIALES
|
|||||||
SPECIAL_MASK_MENU, // | SPECIAL_SHADE_MODE, et que le
|
SPECIAL_MASK_MENU, // | SPECIAL_SHADE_MODE, et que le
|
||||||
SPECIAL_GRID_MODE, // | dernier soit SPECIAL_TILING_MENU,
|
SPECIAL_GRID_MODE, // | dernier soit SPECIAL_TILING_MENU,
|
||||||
SPECIAL_GRID_MENU, // |_ et que seuls des effets soient
|
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_SIEVE_MENU, // | des tests sur cet intervalle sont
|
||||||
SPECIAL_COLORIZE_MODE, // | faits dans le moteur.
|
SPECIAL_COLORIZE_MODE, // | faits dans le moteur.
|
||||||
SPECIAL_COLORIZE_MENU, // |
|
SPECIAL_COLORIZE_MENU, // |
|
||||||
@ -405,15 +404,15 @@ enum ACTIONS_SPECIALES
|
|||||||
SPECIAL_TILING_MENU // |
|
SPECIAL_TILING_MENU // |
|
||||||
};
|
};
|
||||||
|
|
||||||
// D‚finition des op‚rations:
|
// Définition des opérations:
|
||||||
|
|
||||||
enum OPERATIONS
|
enum OPERATIONS
|
||||||
{
|
{
|
||||||
OPERATION_DESSIN_CONTINU, // Dessin … la main continu
|
OPERATION_DESSIN_CONTINU, // Dessin à la main continu
|
||||||
OPERATION_DESSIN_DISCONTINU, // Dessin … la main discontinu
|
OPERATION_DESSIN_DISCONTINU, // Dessin à la main discontinu
|
||||||
OPERATION_DESSIN_POINT, // Dessin … la main point par point
|
OPERATION_DESSIN_POINT, // Dessin à la main point par point
|
||||||
OPERATION_LIGNE, // Lignes
|
OPERATION_LIGNE, // Lignes
|
||||||
OPERATION_K_LIGNE, // Lignes reli‚es
|
OPERATION_K_LIGNE, // Lignes reliées
|
||||||
OPERATION_LIGNES_CENTREES, // Lignes concentriques
|
OPERATION_LIGNES_CENTREES, // Lignes concentriques
|
||||||
OPERATION_RECTANGLE_VIDE, // Rectangle vide
|
OPERATION_RECTANGLE_VIDE, // Rectangle vide
|
||||||
OPERATION_RECTANGLE_PLEIN, // Rectangle plein
|
OPERATION_RECTANGLE_PLEIN, // Rectangle plein
|
||||||
@ -425,18 +424,18 @@ enum OPERATIONS
|
|||||||
OPERATION_REMPLACER, // Remplacer couleur
|
OPERATION_REMPLACER, // Remplacer couleur
|
||||||
OPERATION_PRISE_BROSSE, // Prise de brosse rectangulaire
|
OPERATION_PRISE_BROSSE, // Prise de brosse rectangulaire
|
||||||
OPERATION_POLYBROSSE, // Prise d'une brosse multiforme
|
OPERATION_POLYBROSSE, // Prise d'une brosse multiforme
|
||||||
OPERATION_PIPETTE, // R‚cup‚ration d'une couleur
|
OPERATION_PIPETTE, // Récupération d'une couleur
|
||||||
OPERATION_LOUPE, // Positionnement de la fenˆtre de loupe
|
OPERATION_LOUPE, // Positionnement de la fenêtre de loupe
|
||||||
OPERATION_COURBE_3_POINTS, // Courbe … 3 points
|
OPERATION_COURBE_3_POINTS, // Courbe à 3 points
|
||||||
OPERATION_COURBE_4_POINTS, // Courbe … 4 points
|
OPERATION_COURBE_4_POINTS, // Courbe à 4 points
|
||||||
OPERATION_SPRAY, // Spray
|
OPERATION_SPRAY, // Spray
|
||||||
OPERATION_POLYGONE, // Polygone
|
OPERATION_POLYGONE, // Polygone
|
||||||
OPERATION_POLYFORM, // Polyforme
|
OPERATION_POLYFORM, // Polyforme
|
||||||
OPERATION_POLYFILL, // Polyfill
|
OPERATION_POLYFILL, // Polyfill
|
||||||
OPERATION_FILLED_POLYFORM, // Polyforme rempli
|
OPERATION_FILLED_POLYFORM, // Polyforme rempli
|
||||||
OPERATION_SCROLL, // Scroll
|
OPERATION_SCROLL, // Scroll
|
||||||
OPERATION_CERCLE_DEGRADE, // Cercles d‚grad‚s
|
OPERATION_CERCLE_DEGRADE, // Cercles dégradés
|
||||||
OPERATION_ELLIPSE_DEGRADEE, // Ellipses d‚grad‚es
|
OPERATION_ELLIPSE_DEGRADEE, // Ellipses dégradées
|
||||||
OPERATION_TOURNER_BROSSE, // Faire tourner brosse
|
OPERATION_TOURNER_BROSSE, // Faire tourner brosse
|
||||||
OPERATION_ETIRER_BROSSE, // Etirer brosse
|
OPERATION_ETIRER_BROSSE, // Etirer brosse
|
||||||
OPERATION_DEFORMER_BROSSE, // Deformer 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");
|
puts("Freespace non implémenté!\n");
|
||||||
return 0;
|
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");
|
printf("filelenght non implémenté!\n");
|
||||||
return 0;
|
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);
|
int filelength(int);
|
||||||
|
|
||||||
|
void itoa(int source,char* dest, int longueur);
|
||||||
|
/* Integer TO Ascii */
|
||||||
|
|
||||||
#define _A_SUBDIR 1
|
#define _A_SUBDIR 1
|
||||||
|
|||||||
9
makefile
9
makefile
@ -1,9 +1,9 @@
|
|||||||
CC = gcc
|
CC = gcc
|
||||||
COPT = -Wall -Os -c
|
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
|
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 -o grafx2
|
$(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
|
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
|
$(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
|
op_c.o : struct.h op_c.c op_c.h op_asm.h
|
||||||
$(CC) $(COPT) op_c.c
|
$(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
|
sdlscreen.o : sdlscreen.c sdlscreen.h
|
||||||
$(CC) $(COPT) sdlscreen.c
|
$(CC) $(COPT) sdlscreen.c
|
||||||
|
|
||||||
|
|||||||
176
moteur.c
176
moteur.c
@ -17,13 +17,13 @@
|
|||||||
#include "operatio.h"
|
#include "operatio.h"
|
||||||
#include "shade.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":
|
// fichier "main.h":
|
||||||
void Erreur(int Code);
|
void Erreur(int Code);
|
||||||
|
|
||||||
//---------- Annuler les effets des modes de dessin (sauf la grille) ---------
|
//---------- 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 Shade_Mode_avant_annulation;
|
||||||
byte Quick_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)
|
void Desenclencher_bouton(int Numero)
|
||||||
{
|
{
|
||||||
if (Bouton[Numero].Enfonce)
|
if (Bouton[Numero].Enfonce)
|
||||||
{
|
{
|
||||||
// On affiche le cadre autour du bouton de fa‡on … ce qu'il paraisse relƒch‚
|
// On affiche le cadre autour du bouton de fa‡on à ce qu'il paraisse relƒché
|
||||||
Tracer_cadre_de_bouton_du_menu(Numero,BOUTON_RELACHE);
|
Tracer_cadre_de_bouton_du_menu(Numero,BOUTON_RELACHE);
|
||||||
// On considŠre que le bouton est relƒch‚
|
// On considère que le bouton est relƒché
|
||||||
Bouton[Numero].Enfonce=BOUTON_RELACHE;
|
Bouton[Numero].Enfonce=BOUTON_RELACHE;
|
||||||
// On appelle le d‚senclenchement particulier au bouton:
|
// On appelle le désenclenchement particulier au bouton:
|
||||||
Bouton[Numero].Desenclencher();
|
Bouton[Numero].Desenclencher();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-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)
|
void Enclencher_bouton(int Numero,byte Click)
|
||||||
{
|
{
|
||||||
int Famille;
|
int Famille;
|
||||||
@ -295,50 +295,50 @@ void Enclencher_bouton(int Numero,byte Click)
|
|||||||
|
|
||||||
Effacer_curseur();
|
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;
|
Famille=Bouton[Numero].Famille;
|
||||||
|
|
||||||
switch (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;
|
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))
|
if ((Numero!=BOUTON_LOUPE) || (!Loupe_Mode))
|
||||||
// Pour chaque bouton:
|
// Pour chaque bouton:
|
||||||
for (Curseur=0; Curseur<NB_BOUTONS; Curseur++)
|
for (Curseur=0; Curseur<NB_BOUTONS; Curseur++)
|
||||||
// S'il est de la mˆme famille
|
// S'il est de la même famille
|
||||||
if (
|
if (
|
||||||
(Curseur!=Numero) &&
|
(Curseur!=Numero) &&
|
||||||
(Bouton[Curseur].Famille==FAMILLE_INTERRUPTION) &&
|
(Bouton[Curseur].Famille==FAMILLE_INTERRUPTION) &&
|
||||||
( (Curseur!=BOUTON_LOUPE) ||
|
( (Curseur!=BOUTON_LOUPE) ||
|
||||||
((Curseur==BOUTON_LOUPE) && (!Loupe_Mode)) )
|
((Curseur==BOUTON_LOUPE) && (!Loupe_Mode)) )
|
||||||
)
|
)
|
||||||
// Alors on d‚senclenche le bouton
|
// Alors on désenclenche le bouton
|
||||||
Desenclencher_bouton(Curseur);
|
Desenclencher_bouton(Curseur);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// On d‚senclenche D'ABORD les interruptions
|
// On désenclenche D'ABORD les interruptions
|
||||||
// Pour chaque bouton:
|
// Pour chaque bouton:
|
||||||
for (Curseur=0; Curseur<NB_BOUTONS; Curseur++)
|
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)
|
if ( (Curseur!=Numero)
|
||||||
&& (Bouton[Curseur].Famille==FAMILLE_INTERRUPTION)
|
&& (Bouton[Curseur].Famille==FAMILLE_INTERRUPTION)
|
||||||
// Et que ce n'est pas la loupe, ou alors qu'on n'est pas en mode loupe
|
// Et que ce n'est pas la loupe, ou alors qu'on n'est pas en mode loupe
|
||||||
&& (!(Loupe_Mode && (Curseur==BOUTON_LOUPE))) )
|
&& (!(Loupe_Mode && (Curseur==BOUTON_LOUPE))) )
|
||||||
// Alors on d‚senclenche le bouton
|
// Alors on désenclenche le bouton
|
||||||
Desenclencher_bouton(Curseur);
|
Desenclencher_bouton(Curseur);
|
||||||
// Pour chaque bouton:
|
// Pour chaque bouton:
|
||||||
for (Curseur=0; Curseur<NB_BOUTONS; Curseur++)
|
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)
|
if ( (Curseur!=Numero)
|
||||||
&& (Bouton[Curseur].Famille==Famille) )
|
&& (Bouton[Curseur].Famille==Famille) )
|
||||||
// Alors on d‚senclenche le bouton
|
// Alors on désenclenche le bouton
|
||||||
Desenclencher_bouton(Curseur);
|
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);
|
Tracer_cadre_de_bouton_du_menu(Numero,BOUTON_ENFONCE);
|
||||||
|
|
||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
@ -346,7 +346,7 @@ void Enclencher_bouton(int Numero,byte Click)
|
|||||||
// On attend ensuite que l'utilisateur lƒche son bouton:
|
// On attend ensuite que l'utilisateur lƒche son bouton:
|
||||||
Attendre_fin_de_click();
|
Attendre_fin_de_click();
|
||||||
|
|
||||||
// On considŠre que le bouton est enfonc‚
|
// On considère que le bouton est enfoncé
|
||||||
Bouton[Numero].Enfonce=BOUTON_ENFONCE;
|
Bouton[Numero].Enfonce=BOUTON_ENFONCE;
|
||||||
|
|
||||||
// Puis on se contente d'appeler l'action correspondant au bouton:
|
// 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 ----
|
//--- Déplacer la barre de séparation entre la partie zoomée et la partie ----
|
||||||
//------------------ non-zoom‚e lorsqu'on est en mode loupe ------------------
|
//------------------ non-zoomée lorsqu'on est en mode loupe ------------------
|
||||||
void Deplacer_Split(void)
|
void Deplacer_Split(void)
|
||||||
{
|
{
|
||||||
short Ancien_Split=Principal_Split;
|
short Ancien_Split=Principal_Split;
|
||||||
@ -422,17 +422,17 @@ void Gestion_principale(void)
|
|||||||
static byte Temp_color;
|
static byte Temp_color;
|
||||||
static short Old_MX=0;
|
static short Old_MX=0;
|
||||||
static short Old_MY=0;
|
static short Old_MY=0;
|
||||||
int Indice_bouton; // Num‚ro de bouton de menu en cours
|
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
|
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
|
byte Blink; // L'opération demande un effacement du curseur
|
||||||
int Bouton_Touche; // Bouton … enclencher d'aprŠs la touche de raccourci enfonc‚e
|
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
|
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_Touche; // Indice du tableau de touches spéciales correspondant à la touche enfoncée
|
||||||
char Chaine[25];
|
char Chaine[25];
|
||||||
byte Temp;
|
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;
|
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++);
|
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)
|
if (Indice_Touche>SPECIAL_CLICK_RIGHT)
|
||||||
switch(Indice_Touche)
|
switch(Indice_Touche)
|
||||||
{
|
{
|
||||||
@ -534,7 +534,7 @@ void Gestion_principale(void)
|
|||||||
case SPECIAL_PREVIOUS_BACKCOLOR : // Previous background color
|
case SPECIAL_PREVIOUS_BACKCOLOR : // Previous background color
|
||||||
Special_Previous_backcolor();
|
Special_Previous_backcolor();
|
||||||
break;
|
break;
|
||||||
case SPECIAL_RETRECIR_PINCEAU: // R‚tr‚cir le pinceau
|
case SPECIAL_RETRECIR_PINCEAU: // Rétrécir le pinceau
|
||||||
Retrecir_pinceau();
|
Retrecir_pinceau();
|
||||||
break;
|
break;
|
||||||
case SPECIAL_GROSSIR_PINCEAU: // Grossir le pinceau
|
case SPECIAL_GROSSIR_PINCEAU: // Grossir le pinceau
|
||||||
@ -756,7 +756,7 @@ void Gestion_principale(void)
|
|||||||
Indice_bouton=NB_BOUTONS;
|
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.
|
// on lance le bouton.
|
||||||
if (Bouton_Touche!=-1)
|
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
|
// Si on a modifié un effet, il faut rafficher le bouton des effets en
|
||||||
// cons‚quence.
|
// conséquence.
|
||||||
if ((Indice_Touche>=SPECIAL_SHADE_MODE)
|
if ((Indice_Touche>=SPECIAL_SHADE_MODE)
|
||||||
&& (Indice_Touche<=SPECIAL_TILING_MENU))
|
&& (Indice_Touche<=SPECIAL_TILING_MENU))
|
||||||
{
|
{
|
||||||
@ -801,7 +801,7 @@ void Gestion_principale(void)
|
|||||||
{
|
{
|
||||||
if (Menu_visible)
|
if (Menu_visible)
|
||||||
{
|
{
|
||||||
// On nettoie les coordonn‚es
|
// On nettoie les coordonnées
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
Block(18*Menu_Facteur_X,Menu_Ordonnee_Texte,192*Menu_Facteur_X,Menu_Facteur_Y<<3,CM_Clair);
|
Block(18*Menu_Facteur_X,Menu_Ordonnee_Texte,192*Menu_Facteur_X,Menu_Facteur_Y<<3,CM_Clair);
|
||||||
Afficher_curseur();
|
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)
|
void Ouvrir_fenetre(word Largeur,word Hauteur, char * Titre)
|
||||||
// Lors de l'appel … cette proc‚dure, la souris doit ˆtre affich‚e.
|
// Lors de l'appel à cette procédure, la souris doit être affichée.
|
||||||
// En sortie de cette procedure, la souris est effac‚e.
|
// En sortie de cette procedure, la souris est effacée.
|
||||||
{
|
{
|
||||||
word i,j;
|
//word i,j;
|
||||||
|
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
|
|
||||||
@ -941,15 +941,15 @@ void Ouvrir_fenetre(word Largeur,word Hauteur, char * Titre)
|
|||||||
Fenetre_Largeur=Largeur;
|
Fenetre_Largeur=Largeur;
|
||||||
Fenetre_Hauteur=Hauteur;
|
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_X=(Largeur_ecran-(Largeur*Menu_Facteur_X))>>1;
|
||||||
|
|
||||||
Fenetre_Pos_Y=(Hauteur_ecran-(Hauteur*Menu_Facteur_Y))>>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);
|
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
|
// Cadre noir puis en relief
|
||||||
Fenetre_Afficher_cadre_mono(0,0,Largeur,Hauteur,CM_Noir);
|
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_avant_fenetre=Cacher_pinceau;
|
||||||
Cacher_pinceau=1;
|
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_normal =NULL;
|
||||||
Fenetre_Liste_boutons_palette =NULL;
|
Fenetre_Liste_boutons_palette =NULL;
|
||||||
Fenetre_Liste_boutons_scroller=NULL;
|
Fenetre_Liste_boutons_scroller=NULL;
|
||||||
Fenetre_Liste_boutons_special =NULL;
|
Fenetre_Liste_boutons_special =NULL;
|
||||||
Nb_boutons_fenetre =0;
|
Nb_boutons_fenetre =0;
|
||||||
|
|
||||||
// On (re)passe dans le clavier de d‚part (fran‡ais pour nous)
|
// On (re)passe dans le clavier de départ (fran‡ais pour nous)
|
||||||
Clavier_de_depart();
|
Clavier_de_depart();
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------- Fermer une fenˆtre d'options -----------------------
|
//----------------------- Fermer une fenêtre d'options -----------------------
|
||||||
|
|
||||||
void Fermer_fenetre(void)
|
void Fermer_fenetre(void)
|
||||||
// Lors de l'appel … cette procedure, la souris doit ˆtre affich‚e.
|
// Lors de l'appel à cette procedure, la souris doit être affichée.
|
||||||
// En sortie de cette procedure, la souris est effac‚e.
|
// En sortie de cette procedure, la souris est effacée.
|
||||||
{
|
{
|
||||||
struct Fenetre_Bouton_normal * Temp1;
|
struct Fenetre_Bouton_normal * Temp1;
|
||||||
struct Fenetre_Bouton_palette * Temp2;
|
struct Fenetre_Bouton_palette * Temp2;
|
||||||
@ -1022,7 +1022,7 @@ void Fermer_fenetre(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Une_fenetre_est_ouverte=0;
|
Une_fenetre_est_ouverte=0;
|
||||||
Curseur_dans_menu_precedent=0; // il faut rafficher le libell‚ dans la barre
|
Curseur_dans_menu_precedent=0; // il faut rafficher le libellé dans la barre
|
||||||
// d'outils si le curseur est sur une ic“ne.
|
// d'outils si le curseur est sur une ic“ne.
|
||||||
|
|
||||||
Calculer_coordonnees_pinceau();
|
Calculer_coordonnees_pinceau();
|
||||||
@ -1037,12 +1037,12 @@ void Fermer_fenetre(void)
|
|||||||
Touche=0;
|
Touche=0;
|
||||||
Mouse_K=0;
|
Mouse_K=0;
|
||||||
|
|
||||||
// On (re)passe dans le clavier am‚ricain
|
// On (re)passe dans le clavier américain
|
||||||
Clavier_americain();
|
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,
|
void Fenetre_Dessiner_bouton_normal(word Pos_X,word Pos_Y,word Largeur,word Hauteur,
|
||||||
char * Titre,byte Lettre_soulignee,byte Clickable)
|
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)
|
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);
|
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)
|
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);
|
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)
|
void Fenetre_Dessiner_bouton_palette(word Pos_X,word Pos_Y)
|
||||||
{
|
{
|
||||||
word Couleur;
|
word Couleur;
|
||||||
@ -1107,7 +1107,7 @@ void Fenetre_Effacer_tags(void)
|
|||||||
word Origine_Y;
|
word Origine_Y;
|
||||||
word Pos_X;
|
word Pos_X;
|
||||||
word Pos_fenetre_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_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;
|
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_X;
|
||||||
word Origine_Y;
|
word Origine_Y;
|
||||||
word Pos_X;
|
//word Pos_X;
|
||||||
word Pos_Y;
|
word Pos_Y;
|
||||||
word Pos_fenetre_X;
|
//word Pos_fenetre_X;
|
||||||
word Pos_fenetre_Y;
|
word Pos_fenetre_Y;
|
||||||
word Indice;
|
word Indice;
|
||||||
|
|
||||||
@ -1149,10 +1149,10 @@ void Tagger_intervalle_palette(byte Debut,byte Fin)
|
|||||||
|
|
||||||
if (Debut!=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);
|
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_X=(Fenetre_Liste_boutons_palette->Pos_X+3)+(Fin>>4)*10;
|
||||||
Origine_Y=(Fenetre_Liste_boutons_palette->Pos_Y+3)+(Fin&15)* 5;
|
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++)
|
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+1,Pos_fenetre_Y,CM_Noir);
|
||||||
Pixel_dans_fenetre(Origine_X+2,Origine_Y+2,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++)
|
for (Indice=Debut+1;Indice<Fin;Indice++)
|
||||||
{
|
{
|
||||||
Block(Fenetre_Pos_X+(Fenetre_Liste_boutons_palette->Pos_X+3+((Indice>>4)*10))*Menu_Facteur_X,
|
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,
|
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);
|
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),
|
Pixel_dans_fenetre(Fenetre_Liste_boutons_palette->Pos_X+5+((Indice>>4)*10),
|
||||||
Fenetre_Liste_boutons_palette->Pos_Y+5+((Indice&15)* 5),
|
Fenetre_Liste_boutons_palette->Pos_Y+5+((Indice&15)* 5),
|
||||||
CM_Clair);
|
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)
|
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)
|
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,
|
void Fenetre_Definir_bouton_normal(word Pos_X, word Pos_Y,
|
||||||
word Largeur, word Hauteur,
|
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)
|
byte Fenetre_click_dans_zone(short Debut_X,short Debut_Y,short Fin_X,short Fin_Y)
|
||||||
{
|
{
|
||||||
short Pos_X,Pos_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
|
// --- 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 Attendre_click_dans_palette(struct Fenetre_Bouton_palette * Enreg)
|
||||||
{
|
{
|
||||||
short Debut_X=Enreg->Pos_X+5;
|
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)
|
void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
|
||||||
{
|
{
|
||||||
short Largeur=Fenetre_Largeur*Menu_Facteur_X;
|
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;
|
byte Cacher_curseur_avant_recuperation;
|
||||||
|
|
||||||
|
|
||||||
if (Buffer=(byte *) malloc(Largeur*Hauteur))
|
if ((Buffer=(byte *) malloc(Largeur*Hauteur)))
|
||||||
{
|
{
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
|
|
||||||
@ -1455,7 +1455,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
|
|||||||
Forme_curseur=FORME_CURSEUR_CIBLE_PIPETTE;
|
Forme_curseur=FORME_CURSEUR_CIBLE_PIPETTE;
|
||||||
B=Cacher_pinceau;
|
B=Cacher_pinceau;
|
||||||
Cacher_pinceau=1;
|
Cacher_pinceau=1;
|
||||||
C=-1; // Couleur point‚e: au d‚but aucune, comme ‡a on initialise tout
|
C=-1; // Couleur pointée: au début aucune, comme ‡a on initialise tout
|
||||||
if (Menu_visible_avant_fenetre)
|
if (Menu_visible_avant_fenetre)
|
||||||
Print_dans_menu(TITRE_BOUTON[BOUTON_CHOIX_COL],0);
|
Print_dans_menu(TITRE_BOUTON[BOUTON_CHOIX_COL],0);
|
||||||
|
|
||||||
@ -1471,7 +1471,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
|
|||||||
A=Lit_pixel(Mouse_X,Mouse_Y);
|
A=Lit_pixel(Mouse_X,Mouse_Y);
|
||||||
if (A!=C)
|
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)
|
if (Menu_visible_avant_fenetre)
|
||||||
{
|
{
|
||||||
sprintf(Chaine,"%d",A);
|
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)
|
void Deplacer_fenetre(short Dx, short Dy)
|
||||||
{
|
{
|
||||||
short Nouveau_X=Mouse_X-Dx;
|
short Nouveau_X=Mouse_X-Dx;
|
||||||
@ -1546,7 +1546,7 @@ void Deplacer_fenetre(short Dx, short Dy)
|
|||||||
byte * Buffer;
|
byte * Buffer;
|
||||||
|
|
||||||
|
|
||||||
if (Buffer=(byte *) malloc(Largeur*Hauteur))
|
if ((Buffer=(byte *) malloc(Largeur*Hauteur)))
|
||||||
{
|
{
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
for (Indice=0; Indice<Hauteur; Indice++)
|
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)
|
short Fenetre_Numero_bouton_clicke(void)
|
||||||
{
|
{
|
||||||
struct Fenetre_Bouton_normal * Temp1;
|
struct Fenetre_Bouton_normal * Temp1;
|
||||||
@ -1639,7 +1639,7 @@ short Fenetre_Numero_bouton_clicke(void)
|
|||||||
struct Fenetre_Bouton_scroller * Temp3;
|
struct Fenetre_Bouton_scroller * Temp3;
|
||||||
struct Fenetre_Bouton_special * Temp4;
|
struct Fenetre_Bouton_special * Temp4;
|
||||||
|
|
||||||
long Hauteur_Curseur_jauge;
|
//long Hauteur_Curseur_jauge;
|
||||||
long Hauteur_maxi_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)
|
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))
|
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))
|
if (Fenetre_click_dans_zone(Temp3->Pos_X,Temp3->Pos_Y,Temp3->Pos_X+10,Temp3->Pos_Y+10))
|
||||||
{
|
{
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
@ -1700,10 +1700,10 @@ short Fenetre_Numero_bouton_clicke(void)
|
|||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
}
|
}
|
||||||
else
|
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))
|
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);
|
Fenetre_Enfoncer_bouton_normal(Temp3->Pos_X,Temp3->Pos_Y+Temp3->Hauteur-11,11,11);
|
||||||
|
|
||||||
if (Temp3->Position+Temp3->Nb_visibles<Temp3->Nb_elements)
|
if (Temp3->Position+Temp3->Nb_visibles<Temp3->Nb_elements)
|
||||||
@ -1716,13 +1716,13 @@ short Fenetre_Numero_bouton_clicke(void)
|
|||||||
else
|
else
|
||||||
Fenetre_Attribut1=0;
|
Fenetre_Attribut1=0;
|
||||||
|
|
||||||
Afficher_Curseur();
|
Afficher_curseur();
|
||||||
|
|
||||||
Tempo_jauge((Mouse_K==1)? Config.Valeur_tempo_jauge_gauche : Config.Valeur_tempo_jauge_droite);
|
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);
|
Fenetre_Desenfoncer_bouton_normal(Temp3->Pos_X,Temp3->Pos_Y+Temp3->Hauteur-11,11,11);
|
||||||
Afficher_Curseur();
|
Afficher_curseur();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
// Jauge
|
// Jauge
|
||||||
@ -1754,9 +1754,9 @@ short Fenetre_Numero_bouton_clicke(void)
|
|||||||
{
|
{
|
||||||
Temp3->Position=Fenetre_Attribut2;
|
Temp3->Position=Fenetre_Attribut2;
|
||||||
Fenetre_Attribut1=3;
|
Fenetre_Attribut1=3;
|
||||||
Effacer_Curseur();
|
Effacer_curseur();
|
||||||
Fenetre_Dessiner_jauge(Temp3);
|
Fenetre_Dessiner_jauge(Temp3);
|
||||||
Afficher_Curseur();
|
Afficher_curseur();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
// Si le curseur de la jauge ne bouge pas:
|
// 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)
|
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))
|
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
|
else
|
||||||
Fenetre_Attribut1=A_GAUCHE;
|
Fenetre_Attribut1=A_GAUCHE;
|
||||||
|
|
||||||
// On fait une premiŠre recherche
|
// On fait une première recherche
|
||||||
Temp=Fenetre_Liste_boutons_normal;
|
Temp=Fenetre_Liste_boutons_normal;
|
||||||
while (Temp!=NULL)
|
while (Temp!=NULL)
|
||||||
{
|
{
|
||||||
@ -1804,9 +1804,9 @@ short Fenetre_Numero_bouton_touche(void)
|
|||||||
Temp=Temp->Next;
|
Temp=Temp->Next;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Si la recherche n'a pas ‚t‚ fructueuse ET que l'utilisateur appuyait sur
|
// 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>
|
// <Shift>, on regarde si un bouton ne pourrait pas réagir comme si <Shift>
|
||||||
// n'‚tait pas appuy‚.
|
// n'était pas appuyé.
|
||||||
if (Fenetre_Attribut1==A_DROITE)
|
if (Fenetre_Attribut1==A_DROITE)
|
||||||
{
|
{
|
||||||
Temp=Fenetre_Liste_boutons_normal;
|
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 "graph.h"
|
||||||
#include "moteur.h"
|
#include "moteur.h"
|
||||||
#include "readline.h"
|
#include "readline.h"
|
||||||
|
#include "boutons.h"
|
||||||
|
|
||||||
// --------------------------- Menu des palettes -----------------------------
|
// --------------------------- Menu des palettes -----------------------------
|
||||||
char * Libelle_reduction_palette[7]=
|
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)
|
if (Nouvelle_teinte< 0)
|
||||||
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)
|
if (Nouvelle_teinte< 0)
|
||||||
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)
|
if (Nouvelle_teinte< 0)
|
||||||
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)
|
void Degrader_palette(short Debut,short Fin,T_Palette Palette)
|
||||||
// Modifie la palette pour obtenir un d‚grad‚ de couleur entre les deux bornes
|
// Modifie la palette pour obtenir un dégradé de couleur entre les deux bornes
|
||||||
// pass‚es en paramŠtre
|
// passées en paramŠtre
|
||||||
{
|
{
|
||||||
short Debut_Rouge;
|
short Debut_Rouge;
|
||||||
short Debut_Vert;
|
short Debut_Vert;
|
||||||
@ -63,8 +63,8 @@ void Degrader_palette(short Debut,short Fin,T_Palette Palette)
|
|||||||
short Fin_Bleu;
|
short Fin_Bleu;
|
||||||
short Indice;
|
short Indice;
|
||||||
|
|
||||||
// On v‚rifie qu'il y ait assez de couleurs entre le d‚but et la fin pour
|
// On vérifie qu'il y ait assez de couleurs entre le début et la fin pour
|
||||||
// pouvoir faire un d‚grad‚:
|
// pouvoir faire un dégradé:
|
||||||
if ( (Debut!=Fin) && (Debut+1!=Fin) )
|
if ( (Debut!=Fin) && (Debut+1!=Fin) )
|
||||||
{
|
{
|
||||||
Debut_Rouge=Palette[Debut].R;
|
Debut_Rouge=Palette[Debut].R;
|
||||||
@ -124,14 +124,14 @@ void Remap_image_HIGH(byte * Table_de_conversion)
|
|||||||
{
|
{
|
||||||
short Fin_X;
|
short Fin_X;
|
||||||
short Fin_Y;
|
short Fin_Y;
|
||||||
short Fin_X_Loupe;
|
short Fin_X_Loupe=0;
|
||||||
short Fin_Y_Loupe;
|
short Fin_Y_Loupe=0;
|
||||||
|
|
||||||
// On s'occupe de faire la traduction dans l'image
|
// On s'occupe de faire la traduction dans l'image
|
||||||
Remap_general_LOWLEVEL(Table_de_conversion,Principal_Ecran,
|
Remap_general_LOWLEVEL(Table_de_conversion,Principal_Ecran,
|
||||||
Principal_Largeur_image,Principal_Hauteur_image,Principal_Largeur_image);
|
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)
|
if (Principal_Hauteur_image>=Menu_Ordonnee_avant_fenetre)
|
||||||
Fin_Y=Menu_Ordonnee_avant_fenetre;
|
Fin_Y=Menu_Ordonnee_avant_fenetre;
|
||||||
else
|
else
|
||||||
@ -163,14 +163,14 @@ void Remap_image_HIGH(byte * Table_de_conversion)
|
|||||||
Fin_Y_Loupe=Principal_Hauteur_image*Loupe_Facteur;
|
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);
|
Remap_zone_HIGH(0,0,Fin_X,Fin_Y,Table_de_conversion);
|
||||||
|
|
||||||
if (Loupe_Mode)
|
if (Loupe_Mode)
|
||||||
{
|
{
|
||||||
Remap_zone_HIGH(Principal_Split,0,Fin_X_Loupe,Fin_Y_Loupe,Table_de_conversion);
|
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
|
// 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,
|
Remap_zone_HIGH(Principal_Split,Fin_Y_Loupe,
|
||||||
(Principal_Split+(LARGEUR_BARRE_SPLIT*Menu_Facteur_X)),
|
(Principal_Split+(LARGEUR_BARRE_SPLIT*Menu_Facteur_X)),
|
||||||
Menu_Ordonnee_avant_fenetre,Table_de_conversion);
|
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);
|
Utilisation_temporaire=(dword *)malloc(sizeof(dword)*256);
|
||||||
memcpy(Utilisation_temporaire,Utilisation_couleur,sizeof(dword)*256);
|
memcpy(Utilisation_temporaire,Utilisation_couleur,sizeof(dword)*256);
|
||||||
|
|
||||||
// On commence … initialiser la table de conversion … un ‚tat o— elle ne
|
// On commence … initialiser la table de conversion … un état o— elle ne
|
||||||
// fera aucune conversion.
|
// fera aucune conversion.
|
||||||
for (Pos_1=0;Pos_1<=255;Pos_1++)
|
for (Pos_1=0;Pos_1<=255;Pos_1++)
|
||||||
Table_de_conversion[Pos_1]=Pos_1;
|
Table_de_conversion[Pos_1]=Pos_1;
|
||||||
@ -232,7 +232,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
|
|||||||
else
|
else
|
||||||
if ((Debut_Bloc_2<Debut_Bloc_1) && (Fin_2>=Debut_Bloc_1))
|
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++)
|
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;
|
Table_de_conversion[Pos_2]=Pos_1;
|
||||||
|
|
||||||
// On intervertit le nombre d'utilisation des couleurs pour garder une
|
// 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];
|
Tempo =Utilisation_couleur[Pos_1];
|
||||||
Utilisation_couleur[Pos_1]=Utilisation_couleur[Pos_2];
|
Utilisation_couleur[Pos_1]=Utilisation_couleur[Pos_2];
|
||||||
Utilisation_couleur[Pos_2]=Tempo;
|
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(Utilisation_temporaire);
|
||||||
free(Palette_temporaire);
|
free(Palette_temporaire);
|
||||||
|
|
||||||
// Maintenant, tous ces calculs doivent ˆtres pris en compte dans la
|
// Maintenant, tous ces calculs doivent êtres pris en compte dans la
|
||||||
// palette, l'image et … l'‚cran.
|
// palette, l'image et … l'écran.
|
||||||
Set_palette(Palette);
|
Set_palette(Palette);
|
||||||
|
|
||||||
if (X_Swap)
|
if (X_Swap)
|
||||||
@ -307,7 +307,7 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
|
|||||||
for (Indice=0; Indice<256; Indice++)
|
for (Indice=0; Indice<256; Indice++)
|
||||||
Table_de_remplacement[Indice]=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.
|
// les remplacer par les nouvelles couleurs.
|
||||||
for (Indice2=0; Indice2<4; Indice2++)
|
for (Indice2=0; Indice2<4; Indice2++)
|
||||||
for (Indice=255; Indice>=0; Indice--)
|
for (Indice=255; Indice>=0; Indice--)
|
||||||
@ -318,11 +318,11 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
|
|||||||
Nouvelles[Indice2]=Indice;
|
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).
|
// (Ce n'est pas indispensable, mais ‡a fera plus joli dans la palette).
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
Couleur=0; // Bool‚en qui dit si le tri n'est pas termin‚.
|
Couleur=0; // Booléen qui dit si le tri n'est pas terminé.
|
||||||
for (Indice=0; Indice<3; Indice++)
|
for (Indice=0; Indice<3; Indice++)
|
||||||
{
|
{
|
||||||
if (Nouvelles[Indice]>Nouvelles[Indice+1])
|
if (Nouvelles[Indice]>Nouvelles[Indice+1])
|
||||||
@ -336,7 +336,7 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
|
|||||||
} while (Couleur);
|
} while (Couleur);
|
||||||
|
|
||||||
// On sauvegarde dans RVB les teintes qu'on va remplacer et on met les
|
// 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++)
|
for (Indice=0; Indice<4; Indice++)
|
||||||
{
|
{
|
||||||
Couleur=Nouvelles[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;
|
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
|
// sont les couleurs qui peuvent remplacer les anciennes
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
for (Indice=0; Indice<4; Indice++)
|
for (Indice=0; Indice<4; Indice++)
|
||||||
Table_de_remplacement[Nouvelles[Indice]]=Meilleure_couleur_sans_exclusion
|
Table_de_remplacement[Nouvelles[Indice]]=Meilleure_couleur_sans_exclusion
|
||||||
(RVB[Indice].R,RVB[Indice].V,RVB[Indice].B);
|
(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);
|
Remap_image_HIGH(Table_de_remplacement);
|
||||||
|
|
||||||
Afficher_curseur();
|
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
|
byte Table_de_conversion[256]; // Table de conversion
|
||||||
int Couleur_1; // |_ Variables de balayages
|
int Couleur_1; // |_ Variables de balayages
|
||||||
int Couleur_2; // | de la palette
|
int Couleur_2; // | de la palette
|
||||||
int Meilleure_couleur_1;
|
int Meilleure_couleur_1=0;
|
||||||
int Meilleure_couleur_2;
|
int Meilleure_couleur_2=0;
|
||||||
int Difference;
|
int Difference;
|
||||||
int Meilleure_difference;
|
int Meilleure_difference;
|
||||||
dword Utilisation;
|
dword Utilisation;
|
||||||
dword Meilleure_utilisation;
|
dword Meilleure_utilisation;
|
||||||
|
|
||||||
// On commence par initialiser la table de conversion dans un ‚tat o—
|
// On commence par initialiser la table de conversion dans un état o—
|
||||||
// aucune conversion ne sera effectu‚e.
|
// aucune conversion ne sera effectuée.
|
||||||
for (Couleur_1=0; Couleur_1<=255; Couleur_1++)
|
for (Couleur_1=0; Couleur_1<=255; Couleur_1++)
|
||||||
Table_de_conversion[Couleur_1]=Couleur_1;
|
Table_de_conversion[Couleur_1]=Couleur_1;
|
||||||
|
|
||||||
// Si on ne connait pas encore le nombre de couleurs utilis‚es, on le
|
// Si on ne connait pas encore le nombre de couleurs utilisées, on le
|
||||||
// calcule! (!!! La fonction appel‚e Efface puis Affiche le curseur !!!)
|
// calcule! (!!! La fonction appelée Efface puis Affiche le curseur !!!)
|
||||||
if ((*Nb_couleurs_utilisees)<0)
|
if ((*Nb_couleurs_utilisees)<0)
|
||||||
Compter_nb_couleurs_utilisees(Nb_couleurs_utilisees,Utilisation_couleur);
|
Compter_nb_couleurs_utilisees(Nb_couleurs_utilisees,Utilisation_couleur);
|
||||||
|
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
|
|
||||||
// On tasse la palette vers le d‚but parce qu'elle doit ressembler …
|
// On tasse la palette vers le début parce qu'elle doit ressembler …
|
||||||
// du GruyŠre (et comme Papouille il aime pas le fromage...)
|
// du GruyŠre (et comme Papouille il aime pas le fromage...)
|
||||||
|
|
||||||
// Pour cela, on va scruter la couleur Couleur_1 et se servir de l'indice
|
// Pour cela, on va scruter la couleur Couleur_1 et se servir de l'indice
|
||||||
@ -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:
|
// On va maintenant s'occuper de la table de conversion:
|
||||||
Table_de_conversion[Couleur_1]=Couleur_2;
|
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.
|
// doit passer … un indice de destination suivant.
|
||||||
Couleur_2++;
|
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++)
|
for (;Couleur_2<256;Couleur_2++)
|
||||||
{
|
{
|
||||||
Palette[Couleur_2].R=0;
|
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;
|
Utilisation_couleur[Couleur_2]=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Maintenant qu'on a une palette clean, on va boucler en r‚duisant
|
// 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‚.
|
// le nombre de couleurs jusqu'… ce qu'on atteigne le nombre désiré.
|
||||||
while ((*Nb_couleurs_utilisees)>Nb_couleurs_demandees)
|
while ((*Nb_couleurs_utilisees)>Nb_couleurs_demandees)
|
||||||
{
|
{
|
||||||
// Il s'agit de trouver les 2 couleurs qui se ressemblent le plus
|
// Il s'agit de trouver les 2 couleurs qui se ressemblent le plus
|
||||||
// parmis celles qui sont utilis‚es (bien s–r) et de les remplacer par
|
// parmis celles qui sont utilisées (bien s–r) et de les remplacer par
|
||||||
// une seule couleur qui est la moyenne pond‚r‚e de ces 2 couleurs
|
// une seule couleur qui est la moyenne pondérée de ces 2 couleurs
|
||||||
// en fonction de leur utilisation dans l'image.
|
// en fonction de leur utilisation dans l'image.
|
||||||
|
|
||||||
Meilleure_difference =0x7FFF;
|
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
|
// Maintenant qu'on les a trouvées, on va pouvoir mettre … jour nos
|
||||||
// donn‚es pour que le remplacement se fasse sans encombres.
|
// données pour que le remplacement se fasse sans encombres.
|
||||||
|
|
||||||
// En somme, on va remplacer Meilleure_couleur_2 par Meilleure_couleur_1,
|
// En somme, on va remplacer Meilleure_couleur_2 par Meilleure_couleur_1,
|
||||||
// mais attention, on ne remplace pas Meilleure_couleur_1 par
|
// 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)
|
if (Table_de_conversion[Couleur_1]==Meilleure_couleur_2)
|
||||||
{
|
{
|
||||||
// La Couleur_1 avait d‚j… pr‚vue de se faire remplacer par la
|
// La Couleur_1 avait déj… prévue de se faire remplacer par la
|
||||||
// couleur que l'on veut maintenant ‚liminer. On va maintenant
|
// couleur que l'on veut maintenant éliminer. On va maintenant
|
||||||
// demander … ce que la Couleur_1 se fasse remplacer par la
|
// demander … ce que la Couleur_1 se fasse remplacer par la
|
||||||
// Meilleure_couleur_1.
|
// Meilleure_couleur_1.
|
||||||
Table_de_conversion[Couleur_1]=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
|
// Bon, maintenant que l'on a fait bouger nos petites choses concernants
|
||||||
// la couleur … ‚liminer, on va s'occuper de faire bouger les couleurs
|
// la couleur … éliminer, on va s'occuper de faire bouger les couleurs
|
||||||
// situ‚es aprŠs la couleur … ‚liminer pour qu'elles se d‚pla‡ent d'une
|
// situées aprŠs la couleur … éliminer pour qu'elles se dépla‡ent d'une
|
||||||
// couleur en arriŠre.
|
// couleur en arriŠre.
|
||||||
for (Couleur_1=0;Couleur_1<=255;Couleur_1++)
|
for (Couleur_1=0;Couleur_1<=255;Couleur_1++)
|
||||||
{
|
{
|
||||||
@ -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.
|
// La Couleur_1 va scroller en arriŠre.
|
||||||
|
|
||||||
// Donc on transfŠre son utilisation dans l'utilisation de la
|
// Donc on transfŠre son utilisation dans l'utilisation de la
|
||||||
// couleur qui la pr‚cŠde.
|
// couleur qui la précŠde.
|
||||||
Utilisation_couleur[Couleur_1-1]=Utilisation_couleur[Couleur_1];
|
Utilisation_couleur[Couleur_1-1]=Utilisation_couleur[Couleur_1];
|
||||||
|
|
||||||
// Et on transfŠre ses teintes dans les teintes de la couleur qui
|
// Et on transfŠre ses teintes dans les teintes de la couleur qui
|
||||||
// la pr‚cŠde.
|
// la précŠde.
|
||||||
Palette[Couleur_1-1].R=Palette[Couleur_1].R;
|
Palette[Couleur_1-1].R=Palette[Couleur_1].R;
|
||||||
Palette[Couleur_1-1].V=Palette[Couleur_1].V;
|
Palette[Couleur_1-1].V=Palette[Couleur_1].V;
|
||||||
Palette[Couleur_1-1].B=Palette[Couleur_1].B;
|
Palette[Couleur_1-1].B=Palette[Couleur_1].B;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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.
|
// s'occuper de notre table de conversion.
|
||||||
if (Table_de_conversion[Couleur_1]>Meilleure_couleur_2)
|
if (Table_de_conversion[Couleur_1]>Meilleure_couleur_2)
|
||||||
// La Couleur_1 avait l'intention de se faire remplacer par une
|
// La Couleur_1 avait l'intention de se faire remplacer par une
|
||||||
// couleur que l'on va (ou que l'on a d‚j…) bouger en arriŠre.
|
// couleur que l'on va (ou que l'on a déj…) bouger en arriŠre.
|
||||||
Table_de_conversion[Couleur_1]--;
|
Table_de_conversion[Couleur_1]--;
|
||||||
}
|
}
|
||||||
|
|
||||||
// On vient d'‚jecter une couleur, donc on peut mettre … jour le nombre
|
// On vient d'éjecter une couleur, donc on peut mettre … jour le nombre
|
||||||
// de couleurs utilis‚es.
|
// de couleurs utilisées.
|
||||||
(*Nb_couleurs_utilisees)--;
|
(*Nb_couleurs_utilisees)--;
|
||||||
|
|
||||||
// A la fin, on doit passer (dans la palette) les teintes du dernier
|
// 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].R=0;
|
||||||
Palette[*Nb_couleurs_utilisees].V=0;
|
Palette[*Nb_couleurs_utilisees].V=0;
|
||||||
Palette[*Nb_couleurs_utilisees].B=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 nulle.
|
||||||
Utilisation_couleur[*Nb_couleurs_utilisees]=0;
|
Utilisation_couleur[*Nb_couleurs_utilisees]=0;
|
||||||
|
|
||||||
// AprŠs avoir ‚ject‚ une couleur, on le fait savoir … l'utilisateur par
|
// AprŠs avoir éjecté une couleur, on le fait savoir … l'utilisateur par
|
||||||
// l'interm‚diaire du compteur de nombre utilis‚es.
|
// l'intermédiaire du compteur de nombre utilisées.
|
||||||
Num2str(*Nb_couleurs_utilisees,Chaine,3);
|
Num2str(*Nb_couleurs_utilisees,Chaine,3);
|
||||||
Print_dans_fenetre(186,23,Chaine,CM_Noir,CM_Clair);
|
Print_dans_fenetre(186,23,Chaine,CM_Noir,CM_Clair);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Maintenant, tous ces calculs doivent ˆtres pris en compte dans la
|
// Maintenant, tous ces calculs doivent êtres pris en compte dans la
|
||||||
// palette, l'image et … l'‚cran.
|
// palette, l'image et … l'écran.
|
||||||
Remap_image_HIGH(Table_de_conversion); // Et voila pour l'image et l'‚cran
|
Remap_image_HIGH(Table_de_conversion); // Et voila pour l'image et l'écran
|
||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -599,7 +599,7 @@ void Palette_Reafficher_jauges(struct Fenetre_Bouton_scroller * Jauge_rouge,
|
|||||||
char Chaine[3];
|
char Chaine[3];
|
||||||
|
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
// R‚affichage des jauges:
|
// Réaffichage des jauges:
|
||||||
if (Debut!=Fin)
|
if (Debut!=Fin)
|
||||||
{
|
{
|
||||||
// Dans le cas d'un bloc, tout … 0.
|
// Dans le cas d'un bloc, tout … 0.
|
||||||
@ -644,9 +644,9 @@ void Bouton_Palette(void)
|
|||||||
{
|
{
|
||||||
static short Indice_Reduction_palette=0;
|
static short Indice_Reduction_palette=0;
|
||||||
static short Reduce_Nb_couleurs=256;
|
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;
|
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;
|
short Bouton_clicke;
|
||||||
word Ancien_Mouse_X;
|
word Ancien_Mouse_X;
|
||||||
word Ancien_Mouse_Y;
|
word Ancien_Mouse_Y;
|
||||||
@ -657,7 +657,7 @@ void Bouton_Palette(void)
|
|||||||
byte Derniere_couleur;
|
byte Derniere_couleur;
|
||||||
char Chaine[10];
|
char Chaine[10];
|
||||||
word i;
|
word i;
|
||||||
short Pos_X,Pos_Y;
|
//short Pos_X,Pos_Y;
|
||||||
struct Fenetre_Bouton_normal * Bouton_Used;
|
struct Fenetre_Bouton_normal * Bouton_Used;
|
||||||
struct Fenetre_Bouton_scroller * Jauge_rouge;
|
struct Fenetre_Bouton_scroller * Jauge_rouge;
|
||||||
struct Fenetre_Bouton_scroller * Jauge_verte;
|
struct Fenetre_Bouton_scroller * Jauge_verte;
|
||||||
@ -690,7 +690,7 @@ void Bouton_Palette(void)
|
|||||||
Fenetre_Afficher_cadre (173, 67,121,116);
|
Fenetre_Afficher_cadre (173, 67,121,116);
|
||||||
Fenetre_Afficher_cadre (128, 16, 91, 39);
|
Fenetre_Afficher_cadre (128, 16, 91, 39);
|
||||||
Fenetre_Afficher_cadre (221, 16, 73, 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);
|
Fenetre_Afficher_cadre_creux(259, 88, 26, 74);
|
||||||
|
|
||||||
// Graduation des jauges de couleur
|
// Graduation des jauges de couleur
|
||||||
@ -752,7 +752,7 @@ void Bouton_Palette(void)
|
|||||||
Bouton_Used=Fenetre_Liste_boutons_normal;
|
Bouton_Used=Fenetre_Liste_boutons_normal;
|
||||||
Fenetre_Definir_bouton_normal(132,37,83,14,"Zap unused",0,1,0x0053);//16
|
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
|
Fenetre_Definir_bouton_scroller(225,20,31,7,1,Indice_Reduction_palette);// 17
|
||||||
Jauge_Reduction=Fenetre_Liste_boutons_scroller;
|
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_normal(66,32,59,14,"X-Inv." ,5,1,0x002F); // 22
|
||||||
|
|
||||||
Fenetre_Definir_bouton_saisie(263,39,3); // 23
|
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);
|
Num2str(Reduce_Nb_couleurs,Chaine,3);
|
||||||
Print_dans_fenetre(265,41,Chaine,CM_Noir,CM_Clair);
|
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(263, 74,CM_Blanc,-1);
|
||||||
Dessiner_zigouigoui(280, 74,CM_Blanc,+1);
|
Dessiner_zigouigoui(280, 74,CM_Blanc,+1);
|
||||||
Dessiner_zigouigoui(263,165,CM_Fonce,-1);
|
Dessiner_zigouigoui(263,165,CM_Fonce,-1);
|
||||||
@ -776,8 +776,8 @@ void Bouton_Palette(void)
|
|||||||
|
|
||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
|
|
||||||
Clavier_americain(); // On est oblig‚ de rester en clavier am‚ricain pour
|
Clavier_americain(); // On est obligé de rester en clavier américain pour
|
||||||
// que l'on puisse d‚caler la couleur s‚lectionn‚e …
|
// que l'on puisse décaler la couleur sélectionnée …
|
||||||
// l'aide des touche "^" et "$" ("[" et "]").
|
// l'aide des touche "^" et "$" ("[" et "]").
|
||||||
|
|
||||||
if (Config.Auto_nb_used)
|
if (Config.Auto_nb_used)
|
||||||
@ -794,7 +794,7 @@ void Bouton_Palette(void)
|
|||||||
{
|
{
|
||||||
case 0 : // Nulle part
|
case 0 : // Nulle part
|
||||||
break;
|
break;
|
||||||
case -1 : // Hors de la fenˆtre
|
case -1 : // Hors de la fenêtre
|
||||||
case 1 : // Palette
|
case 1 : // Palette
|
||||||
if ( (Mouse_X!=Ancien_Mouse_X) || (Mouse_Y!=Ancien_Mouse_Y) || (Mouse_K!=Ancien_Mouse_K) )
|
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) )
|
if ( (Fore_color!=Couleur_temporaire) || (Debut_block!=Fin_block) )
|
||||||
{
|
{
|
||||||
// La couleur en question est nouvelle ou elle annule un
|
// 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.
|
// unique couleur choisie.
|
||||||
|
|
||||||
Fore_color=Premiere_couleur=Derniere_couleur=Debut_block=Fin_block=Couleur_temporaire;
|
Fore_color=Premiere_couleur=Derniere_couleur=Debut_block=Fin_block=Couleur_temporaire;
|
||||||
Tagger_intervalle_palette(Debut_block,Fin_block);
|
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);
|
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);
|
Num2str(Fore_color,Chaine,3);
|
||||||
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
||||||
@ -853,7 +853,7 @@ void Bouton_Palette(void)
|
|||||||
Debut_block=Premiere_couleur;
|
Debut_block=Premiere_couleur;
|
||||||
Fin_block=Couleur_temporaire;
|
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(Debut_block,Chaine ,3);
|
||||||
Num2str(Fin_block ,Chaine+4,3);
|
Num2str(Fin_block ,Chaine+4,3);
|
||||||
Chaine[3]=26; // FlŠche vers la droite
|
Chaine[3]=26; // FlŠche vers la droite
|
||||||
@ -862,7 +862,7 @@ void Bouton_Palette(void)
|
|||||||
// Affichage des jauges
|
// Affichage des jauges
|
||||||
Afficher_les_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,1,NULL);
|
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);
|
Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block);
|
||||||
}
|
}
|
||||||
else if (Premiere_couleur>Couleur_temporaire)
|
else if (Premiere_couleur>Couleur_temporaire)
|
||||||
@ -870,7 +870,7 @@ void Bouton_Palette(void)
|
|||||||
Debut_block=Couleur_temporaire;
|
Debut_block=Couleur_temporaire;
|
||||||
Fin_block=Premiere_couleur;
|
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(Debut_block,Chaine ,3);
|
||||||
Num2str(Fin_block ,Chaine+4,3);
|
Num2str(Fin_block ,Chaine+4,3);
|
||||||
Chaine[3]=26; // FlŠche vers la droite
|
Chaine[3]=26; // FlŠche vers la droite
|
||||||
@ -879,7 +879,7 @@ void Bouton_Palette(void)
|
|||||||
// Affichage des jauges
|
// Affichage des jauges
|
||||||
Afficher_les_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,1,NULL);
|
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);
|
Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -887,7 +887,7 @@ void Bouton_Palette(void)
|
|||||||
Debut_block=Fin_block=Premiere_couleur;
|
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);
|
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);
|
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);
|
Num2str(Fore_color,Chaine,3);
|
||||||
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
||||||
@ -924,7 +924,7 @@ void Bouton_Palette(void)
|
|||||||
|
|
||||||
if (Jauge_rouge->Position>63)
|
if (Jauge_rouge->Position>63)
|
||||||
{
|
{
|
||||||
// Jauge dans les n‚gatifs:
|
// Jauge dans les négatifs:
|
||||||
Num2str(-(63-Jauge_rouge->Position),Chaine,3);
|
Num2str(-(63-Jauge_rouge->Position),Chaine,3);
|
||||||
Chaine[0]='-';
|
Chaine[0]='-';
|
||||||
}
|
}
|
||||||
@ -961,7 +961,7 @@ void Bouton_Palette(void)
|
|||||||
|
|
||||||
if (Jauge_verte->Position>63)
|
if (Jauge_verte->Position>63)
|
||||||
{
|
{
|
||||||
// Jauge dans les n‚gatifs:
|
// Jauge dans les négatifs:
|
||||||
Num2str(-(63-Jauge_verte->Position),Chaine,3);
|
Num2str(-(63-Jauge_verte->Position),Chaine,3);
|
||||||
Chaine[0]='-';
|
Chaine[0]='-';
|
||||||
}
|
}
|
||||||
@ -998,7 +998,7 @@ void Bouton_Palette(void)
|
|||||||
|
|
||||||
if (Jauge_bleue->Position>63)
|
if (Jauge_bleue->Position>63)
|
||||||
{
|
{
|
||||||
// Jauge dans les n‚gatifs:
|
// Jauge dans les négatifs:
|
||||||
Num2str(-(63-Jauge_bleue->Position),Chaine,3);
|
Num2str(-(63-Jauge_bleue->Position),Chaine,3);
|
||||||
Chaine[0]='-';
|
Chaine[0]='-';
|
||||||
}
|
}
|
||||||
@ -1027,7 +1027,7 @@ void Bouton_Palette(void)
|
|||||||
memcpy(Palette_temporaire,Palette_defaut,sizeof(T_Palette));
|
memcpy(Palette_temporaire,Palette_defaut,sizeof(T_Palette));
|
||||||
Set_palette(Palette_defaut);
|
Set_palette(Palette_defaut);
|
||||||
Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
|
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));
|
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||||
|
|
||||||
Il_faut_remapper=1;
|
Il_faut_remapper=1;
|
||||||
@ -1045,7 +1045,7 @@ void Bouton_Palette(void)
|
|||||||
Modifier_Bleu (i,Couleur_temporaire,Palette_de_travail);
|
Modifier_Bleu (i,Couleur_temporaire,Palette_de_travail);
|
||||||
}
|
}
|
||||||
Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
|
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));
|
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||||
|
|
||||||
Il_faut_remapper=1;
|
Il_faut_remapper=1;
|
||||||
@ -1061,7 +1061,7 @@ void Bouton_Palette(void)
|
|||||||
memcpy(Palette_backup,Palette_de_travail,sizeof(T_Palette));
|
memcpy(Palette_backup,Palette_de_travail,sizeof(T_Palette));
|
||||||
|
|
||||||
// On calcule le nombre de couleurs a swapper sans risquer de sortir
|
// 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;
|
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
|
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));
|
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;
|
Derniere_couleur=Fin_block=Couleur_temporaire+Premiere_couleur-1;
|
||||||
Fore_color=Premiere_couleur=Debut_block=Couleur_temporaire;
|
Fore_color=Premiere_couleur=Debut_block=Couleur_temporaire;
|
||||||
// On raffiche le nø des bornes du bloc:
|
// On raffiche le nø des bornes du bloc:
|
||||||
@ -1086,7 +1086,7 @@ void Bouton_Palette(void)
|
|||||||
Num2str(Debut_block,Chaine ,3);
|
Num2str(Debut_block,Chaine ,3);
|
||||||
Num2str(Fin_block ,Chaine+4,3);
|
Num2str(Fin_block ,Chaine+4,3);
|
||||||
Chaine[3]=26; // FlŠche vers la droite
|
Chaine[3]=26; // FlŠche vers la droite
|
||||||
// Affichage dans le block de visu du bloc (d‚grad‚) en cours
|
// Affichage dans le block de visu du bloc (dégradé) en cours
|
||||||
Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block);
|
Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block);
|
||||||
}
|
}
|
||||||
else
|
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);
|
((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));
|
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||||
Set_palette(Palette_de_travail);
|
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);
|
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;
|
Fore_color=Premiere_couleur=Debut_block=Couleur_temporaire;
|
||||||
// On raffiche le nø des bornes du bloc:
|
// On raffiche le nø des bornes du bloc:
|
||||||
@ -1128,7 +1128,7 @@ void Bouton_Palette(void)
|
|||||||
Num2str(Debut_block,Chaine ,3);
|
Num2str(Debut_block,Chaine ,3);
|
||||||
Num2str(Fin_block ,Chaine+4,3);
|
Num2str(Fin_block ,Chaine+4,3);
|
||||||
Chaine[3]=26; // FlŠche vers la droite
|
Chaine[3]=26; // FlŠche vers la droite
|
||||||
// Affichage dans le block de visu du bloc (d‚grad‚) en cours
|
// Affichage dans le block de visu du bloc (dégradé) en cours
|
||||||
Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block);
|
Bloc_degrade_dans_fenetre(264,93,Debut_block,Fin_block);
|
||||||
}
|
}
|
||||||
else
|
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);
|
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));
|
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||||
|
|
||||||
Il_faut_remapper=1;
|
Il_faut_remapper=1;
|
||||||
@ -1194,7 +1194,7 @@ void Bouton_Palette(void)
|
|||||||
memcpy(Principal_Palette,Palette_temporaire,sizeof(T_Palette));
|
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);
|
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));
|
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||||
|
|
||||||
@ -1246,11 +1246,11 @@ void Bouton_Palette(void)
|
|||||||
Il_faut_remapper=1;
|
Il_faut_remapper=1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 17 : // Jauge de r‚duction de palette
|
case 17 : // Jauge de réduction de palette
|
||||||
if (Indice_Reduction_palette!=Jauge_Reduction->Position)
|
if (Indice_Reduction_palette!=Jauge_Reduction->Position)
|
||||||
{
|
{
|
||||||
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();
|
Effacer_curseur();
|
||||||
Print_dans_fenetre(265,41,Libelle_reduction_palette[Indice_Reduction_palette],CM_Noir,CM_Clair);
|
Print_dans_fenetre(265,41,Libelle_reduction_palette[Indice_Reduction_palette],CM_Noir,CM_Clair);
|
||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
@ -1315,7 +1315,7 @@ void Bouton_Palette(void)
|
|||||||
// -- Rouge --
|
// -- Rouge --
|
||||||
if (Jauge_rouge->Position>63)
|
if (Jauge_rouge->Position>63)
|
||||||
{
|
{
|
||||||
// Jauge dans les n‚gatifs:
|
// Jauge dans les négatifs:
|
||||||
Num2str(-(63-Jauge_rouge->Position),Chaine,3);
|
Num2str(-(63-Jauge_rouge->Position),Chaine,3);
|
||||||
Chaine[0]='-';
|
Chaine[0]='-';
|
||||||
}
|
}
|
||||||
@ -1336,7 +1336,7 @@ void Bouton_Palette(void)
|
|||||||
// -- Vert --
|
// -- Vert --
|
||||||
if (Jauge_verte->Position>63)
|
if (Jauge_verte->Position>63)
|
||||||
{
|
{
|
||||||
// Jauge dans les n‚gatifs:
|
// Jauge dans les négatifs:
|
||||||
Num2str(-(63-Jauge_verte->Position),Chaine,3);
|
Num2str(-(63-Jauge_verte->Position),Chaine,3);
|
||||||
Chaine[0]='-';
|
Chaine[0]='-';
|
||||||
}
|
}
|
||||||
@ -1357,7 +1357,7 @@ void Bouton_Palette(void)
|
|||||||
// -- Bleu --
|
// -- Bleu --
|
||||||
if (Jauge_bleue->Position>63)
|
if (Jauge_bleue->Position>63)
|
||||||
{
|
{
|
||||||
// Jauge dans les n‚gatifs:
|
// Jauge dans les négatifs:
|
||||||
Num2str(-(63-Jauge_bleue->Position),Chaine,3);
|
Num2str(-(63-Jauge_bleue->Position),Chaine,3);
|
||||||
Chaine[0]='-';
|
Chaine[0]='-';
|
||||||
}
|
}
|
||||||
@ -1437,7 +1437,7 @@ void Bouton_Palette(void)
|
|||||||
// -- Rouge --
|
// -- Rouge --
|
||||||
if (Jauge_rouge->Position>63)
|
if (Jauge_rouge->Position>63)
|
||||||
{
|
{
|
||||||
// Jauge dans les n‚gatifs:
|
// Jauge dans les négatifs:
|
||||||
Num2str(-(63-Jauge_rouge->Position),Chaine,3);
|
Num2str(-(63-Jauge_rouge->Position),Chaine,3);
|
||||||
Chaine[0]='-';
|
Chaine[0]='-';
|
||||||
}
|
}
|
||||||
@ -1458,7 +1458,7 @@ void Bouton_Palette(void)
|
|||||||
// -- Vert --
|
// -- Vert --
|
||||||
if (Jauge_verte->Position>63)
|
if (Jauge_verte->Position>63)
|
||||||
{
|
{
|
||||||
// Jauge dans les n‚gatifs:
|
// Jauge dans les négatifs:
|
||||||
Num2str(-(63-Jauge_verte->Position),Chaine,3);
|
Num2str(-(63-Jauge_verte->Position),Chaine,3);
|
||||||
Chaine[0]='-';
|
Chaine[0]='-';
|
||||||
}
|
}
|
||||||
@ -1479,7 +1479,7 @@ void Bouton_Palette(void)
|
|||||||
// -- Bleu --
|
// -- Bleu --
|
||||||
if (Jauge_bleue->Position>63)
|
if (Jauge_bleue->Position>63)
|
||||||
{
|
{
|
||||||
// Jauge dans les n‚gatifs:
|
// Jauge dans les négatifs:
|
||||||
Num2str(-(63-Jauge_bleue->Position),Chaine,3);
|
Num2str(-(63-Jauge_bleue->Position),Chaine,3);
|
||||||
Chaine[0]='-';
|
Chaine[0]='-';
|
||||||
}
|
}
|
||||||
@ -1513,7 +1513,7 @@ void Bouton_Palette(void)
|
|||||||
Modifier_Bleu (i,63-Palette_de_travail[i].B,Palette_de_travail);
|
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);
|
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));
|
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||||
|
|
||||||
Il_faut_remapper=1;
|
Il_faut_remapper=1;
|
||||||
@ -1556,13 +1556,13 @@ void Bouton_Palette(void)
|
|||||||
Remap_image_HIGH(Table_de_conversion);
|
Remap_image_HIGH(Table_de_conversion);
|
||||||
Afficher_curseur();
|
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));
|
memcpy(Palette_temporaire,Palette_de_travail,sizeof(T_Palette));
|
||||||
|
|
||||||
Il_faut_remapper=1;
|
Il_faut_remapper=1;
|
||||||
break;
|
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);
|
Num2str(Reduce_Nb_couleurs,Chaine,3);
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
|
|
||||||
@ -1592,7 +1592,7 @@ void Bouton_Palette(void)
|
|||||||
{
|
{
|
||||||
switch (Touche)
|
switch (Touche)
|
||||||
{
|
{
|
||||||
case 0x001A : // D‚caler Forecolor vers la gauche
|
case 0x001A : // Décaler Forecolor vers la gauche
|
||||||
if (Debut_block==Fin_block)
|
if (Debut_block==Fin_block)
|
||||||
{
|
{
|
||||||
Fore_color--;
|
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);
|
Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
Tagger_intervalle_palette(Debut_block,Fin_block);
|
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);
|
Num2str(Fore_color,Chaine,3);
|
||||||
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
||||||
// Affichage dans le block de visu de la couleur en cours
|
// Affichage dans le block de visu de la couleur en cours
|
||||||
@ -1612,7 +1612,7 @@ void Bouton_Palette(void)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x001B : // D‚caler Forecolor vers la droite
|
case 0x001B : // Décaler Forecolor vers la droite
|
||||||
if (Debut_block==Fin_block)
|
if (Debut_block==Fin_block)
|
||||||
{
|
{
|
||||||
Fore_color++;
|
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);
|
Palette_Reafficher_jauges(Jauge_rouge,Jauge_verte,Jauge_bleue,Palette_de_travail,Debut_block,Fin_block);
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
Tagger_intervalle_palette(Debut_block,Fin_block);
|
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);
|
Num2str(Fore_color,Chaine,3);
|
||||||
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
||||||
// Affichage dans le block de visu de la couleur en cours
|
// Affichage dans le block de visu de la couleur en cours
|
||||||
@ -1645,7 +1645,7 @@ void Bouton_Palette(void)
|
|||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
break;
|
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.
|
// de ne pas trop modifier l'image.
|
||||||
if (!Backup_de_l_image_effectue)
|
if (!Backup_de_l_image_effectue)
|
||||||
{
|
{
|
||||||
@ -1668,12 +1668,12 @@ void Bouton_Palette(void)
|
|||||||
Il_faut_remapper=1;
|
Il_faut_remapper=1;
|
||||||
break;
|
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 :
|
case 0x0033 :
|
||||||
Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
|
Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
|
||||||
if (Click)
|
if (Click)
|
||||||
{
|
{
|
||||||
Effacer_Curseur();
|
Effacer_curseur();
|
||||||
if (Click==A_DROITE)
|
if (Click==A_DROITE)
|
||||||
{
|
{
|
||||||
if (Back_color!=Couleur)
|
if (Back_color!=Couleur)
|
||||||
@ -1691,7 +1691,7 @@ void Bouton_Palette(void)
|
|||||||
Fore_color=Premiere_couleur=Derniere_couleur=Debut_block=Fin_block=Couleur;
|
Fore_color=Premiere_couleur=Derniere_couleur=Debut_block=Fin_block=Couleur;
|
||||||
Tagger_intervalle_palette(Debut_block,Fin_block);
|
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);
|
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);
|
Num2str(Fore_color,Chaine,3);
|
||||||
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
|
||||||
@ -1761,7 +1761,7 @@ void Bouton_Palette(void)
|
|||||||
|
|
||||||
Calculer_couleurs_menu_optimales(Principal_Palette);
|
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);
|
Il_faut_remapper=(Fenetre_Pos_Y+(Fenetre_Hauteur*Menu_Facteur_Y)<Menu_Ordonnee_avant_fenetre);
|
||||||
|
|
||||||
Fermer_fenetre();
|
Fermer_fenetre();
|
||||||
@ -1769,9 +1769,9 @@ void Bouton_Palette(void)
|
|||||||
|
|
||||||
Recadrer_palette();
|
Recadrer_palette();
|
||||||
|
|
||||||
// On affiche les "ForeBack" car le menu n'est raffich‚ que si la fenˆtre
|
// 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
|
// empiétait sur le menu. Mais si les couleurs on été modifiées, il faut
|
||||||
// rafficher tout le menu remapp‚.
|
// rafficher tout le menu remappé.
|
||||||
if (Il_faut_remapper)
|
if (Il_faut_remapper)
|
||||||
Afficher_menu();
|
Afficher_menu();
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user