Configurable palette size (issue 47)
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@618 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
dbdd73c0c3
commit
bba08c936f
52
boutons.c
52
boutons.c
@ -260,7 +260,10 @@ void Bouton_Pal_left(void)
|
|||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
if (Couleur_debut_palette)
|
if (Couleur_debut_palette)
|
||||||
{
|
{
|
||||||
Couleur_debut_palette-=8;
|
if (Couleur_debut_palette>=Config.Palette_Cells_Y)
|
||||||
|
Couleur_debut_palette-=Config.Palette_Cells_Y;
|
||||||
|
else
|
||||||
|
Couleur_debut_palette=0;
|
||||||
Afficher_palette_du_menu();
|
Afficher_palette_du_menu();
|
||||||
}
|
}
|
||||||
Desenclencher_bouton(BOUTON_PAL_LEFT);
|
Desenclencher_bouton(BOUTON_PAL_LEFT);
|
||||||
@ -272,7 +275,10 @@ void Bouton_Pal_left_fast(void)
|
|||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
if (Couleur_debut_palette)
|
if (Couleur_debut_palette)
|
||||||
{
|
{
|
||||||
Couleur_debut_palette=(Couleur_debut_palette>=64)? Couleur_debut_palette-64 : 0;
|
if (Couleur_debut_palette>=Config.Palette_Cells_Y*Config.Palette_Cells_X)
|
||||||
|
Couleur_debut_palette-=Config.Palette_Cells_Y*Config.Palette_Cells_X;
|
||||||
|
else
|
||||||
|
Couleur_debut_palette=0;
|
||||||
Afficher_palette_du_menu();
|
Afficher_palette_du_menu();
|
||||||
}
|
}
|
||||||
Desenclencher_bouton(BOUTON_PAL_LEFT);
|
Desenclencher_bouton(BOUTON_PAL_LEFT);
|
||||||
@ -284,9 +290,12 @@ void Bouton_Pal_left_fast(void)
|
|||||||
void Bouton_Pal_right(void)
|
void Bouton_Pal_right(void)
|
||||||
{
|
{
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
if (Couleur_debut_palette<=184)
|
if ((int)Couleur_debut_palette+Config.Palette_Cells_Y*Config.Palette_Cells_X<256)
|
||||||
{
|
{
|
||||||
Couleur_debut_palette+=8;
|
if ((int)Couleur_debut_palette+(Config.Palette_Cells_Y+1)*Config.Palette_Cells_X<256)
|
||||||
|
Couleur_debut_palette+=Config.Palette_Cells_Y;
|
||||||
|
else
|
||||||
|
Couleur_debut_palette=256-Config.Palette_Cells_Y*Config.Palette_Cells_X;
|
||||||
Afficher_palette_du_menu();
|
Afficher_palette_du_menu();
|
||||||
}
|
}
|
||||||
Desenclencher_bouton(BOUTON_PAL_RIGHT);
|
Desenclencher_bouton(BOUTON_PAL_RIGHT);
|
||||||
@ -296,9 +305,12 @@ void Bouton_Pal_right(void)
|
|||||||
void Bouton_Pal_right_fast(void)
|
void Bouton_Pal_right_fast(void)
|
||||||
{
|
{
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
if (Couleur_debut_palette<=184)
|
if ((int)Couleur_debut_palette+Config.Palette_Cells_Y*Config.Palette_Cells_X<256)
|
||||||
{
|
{
|
||||||
Couleur_debut_palette=(Couleur_debut_palette<=120)? Couleur_debut_palette+64 : 192;
|
if ((int)Couleur_debut_palette+(Config.Palette_Cells_Y)*Config.Palette_Cells_X*2<256)
|
||||||
|
Couleur_debut_palette+=Config.Palette_Cells_X*Config.Palette_Cells_Y;
|
||||||
|
else
|
||||||
|
Couleur_debut_palette=256-Config.Palette_Cells_Y*Config.Palette_Cells_X;
|
||||||
Afficher_palette_du_menu();
|
Afficher_palette_du_menu();
|
||||||
}
|
}
|
||||||
Desenclencher_bouton(BOUTON_PAL_RIGHT);
|
Desenclencher_bouton(BOUTON_PAL_RIGHT);
|
||||||
@ -313,16 +325,12 @@ void Bouton_Choix_forecolor(void)
|
|||||||
Pos_X=(Mouse_X/Menu_Facteur_X)-(LARGEUR_MENU+1);
|
Pos_X=(Mouse_X/Menu_Facteur_X)-(LARGEUR_MENU+1);
|
||||||
Pos_Y=((Mouse_Y-Menu_Ordonnee)/Menu_Facteur_Y)-2;
|
Pos_Y=((Mouse_Y-Menu_Ordonnee)/Menu_Facteur_Y)-2;
|
||||||
|
|
||||||
if ((!Config.Couleurs_separees)
|
Effacer_curseur();
|
||||||
|| ((Pos_X%Menu_Taille_couleur!=Menu_Taille_couleur-1) && ((Pos_Y&3)!=3)))
|
Encadrer_couleur_menu(CM_Noir);
|
||||||
{
|
Fore_color=Couleur_debut_palette+((Pos_X/Menu_Taille_couleur)*Config.Palette_Cells_Y)+(Pos_Y/(32/Config.Palette_Cells_Y));
|
||||||
Effacer_curseur();
|
Encadrer_couleur_menu(CM_Blanc);
|
||||||
Encadrer_couleur_menu(CM_Noir);
|
Afficher_foreback();
|
||||||
Fore_color=Couleur_debut_palette+((Pos_X/Menu_Taille_couleur)<<3)+(Pos_Y>>2);
|
Afficher_curseur();
|
||||||
Encadrer_couleur_menu(CM_Blanc);
|
|
||||||
Afficher_foreback();
|
|
||||||
Afficher_curseur();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------- Choix de la backcolor dans le menu --------------------
|
//-------------------- Choix de la backcolor dans le menu --------------------
|
||||||
@ -333,14 +341,10 @@ void Bouton_Choix_backcolor(void)
|
|||||||
Pos_X=(Mouse_X/Menu_Facteur_X)-(LARGEUR_MENU+1);
|
Pos_X=(Mouse_X/Menu_Facteur_X)-(LARGEUR_MENU+1);
|
||||||
Pos_Y=((Mouse_Y-Menu_Ordonnee)/Menu_Facteur_Y)-2;
|
Pos_Y=((Mouse_Y-Menu_Ordonnee)/Menu_Facteur_Y)-2;
|
||||||
|
|
||||||
if ((!Config.Couleurs_separees)
|
Effacer_curseur();
|
||||||
|| ((Pos_X%Menu_Taille_couleur!=Menu_Taille_couleur-1) && ((Pos_Y&3)!=3)))
|
Back_color=Couleur_debut_palette+((Pos_X/Menu_Taille_couleur)*Config.Palette_Cells_Y)+(Pos_Y/(32/Config.Palette_Cells_Y));
|
||||||
{
|
Afficher_foreback();
|
||||||
Effacer_curseur();
|
Afficher_curseur();
|
||||||
Back_color=Couleur_debut_palette+((Pos_X/Menu_Taille_couleur)<<3)+(Pos_Y>>2);
|
|
||||||
Afficher_foreback();
|
|
||||||
Afficher_curseur();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -296,3 +296,8 @@
|
|||||||
; steps. A very high value (100) guarantees that Grafx2 merges all the mouse
|
; steps. A very high value (100) guarantees that Grafx2 merges all the mouse
|
||||||
; steps into a single one.
|
; steps into a single one.
|
||||||
Merge_movement = 100 ; (default 100)
|
Merge_movement = 100 ; (default 100)
|
||||||
|
|
||||||
|
; Number of lines in the menu's palette. Can be 1,2,4,8 or 16
|
||||||
|
Palette_Cells_X = 8; (Default 8)
|
||||||
|
; Number of columns in the menu's palette. Can be 1 to 21
|
||||||
|
Palette_Cells_Y = 8; (Default 8)
|
||||||
|
|||||||
2
global.h
2
global.h
@ -73,6 +73,8 @@ GFX2_GLOBAL struct S_Config
|
|||||||
byte Fast_zoom;
|
byte Fast_zoom;
|
||||||
byte Find_file_fast;
|
byte Find_file_fast;
|
||||||
byte Couleurs_separees;
|
byte Couleurs_separees;
|
||||||
|
short Palette_Cells_X;
|
||||||
|
short Palette_Cells_Y;
|
||||||
byte FX_Feedback;
|
byte FX_Feedback;
|
||||||
byte Safety_colors;
|
byte Safety_colors;
|
||||||
byte Opening_message;
|
byte Opening_message;
|
||||||
|
|||||||
13
graph.c
13
graph.c
@ -337,12 +337,21 @@ void Initialiser_mode_video(int Largeur, int Hauteur, int Fullscreen)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu_Taille_couleur = ((Largeur_ecran/Menu_Facteur_X)-(LARGEUR_MENU+2)) >> 3;
|
while (1)
|
||||||
|
{
|
||||||
|
Changer_cellules_palette(Config.Palette_Cells_X, Config.Palette_Cells_Y);
|
||||||
|
if (Menu_Taille_couleur>2)
|
||||||
|
break;
|
||||||
|
Config.Palette_Cells_X--;
|
||||||
|
}
|
||||||
|
|
||||||
|
Menu_Taille_couleur = ((Largeur_ecran/Menu_Facteur_X)-(LARGEUR_MENU+2)) / Config.Palette_Cells_X;
|
||||||
|
Bouton[BOUTON_CHOIX_COL].Largeur=(Menu_Taille_couleur*Config.Palette_Cells_X)-1;
|
||||||
|
|
||||||
Menu_Ordonnee = Hauteur_ecran;
|
Menu_Ordonnee = Hauteur_ecran;
|
||||||
if (Menu_visible)
|
if (Menu_visible)
|
||||||
Menu_Ordonnee -= HAUTEUR_MENU * Menu_Facteur_Y;
|
Menu_Ordonnee -= HAUTEUR_MENU * Menu_Facteur_Y;
|
||||||
Menu_Ordonnee_Texte = Hauteur_ecran-(Menu_Facteur_Y<<3);
|
Menu_Ordonnee_Texte = Hauteur_ecran-(Menu_Facteur_Y<<3);
|
||||||
Bouton[BOUTON_CHOIX_COL].Largeur=(Menu_Taille_couleur<<3)-1;
|
|
||||||
|
|
||||||
Sensibilite_X = Config.Indice_Sensibilite_souris_X;
|
Sensibilite_X = Config.Indice_Sensibilite_souris_X;
|
||||||
Sensibilite_Y = Config.Indice_Sensibilite_souris_Y;
|
Sensibilite_Y = Config.Indice_Sensibilite_souris_Y;
|
||||||
|
|||||||
8
moteur.c
8
moteur.c
@ -984,15 +984,13 @@ void Gestion_principale(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // Le curseur est-il sur une couleur de la palette?
|
{ // Le curseur est-il sur une couleur de la palette?
|
||||||
if ( (!Config.Couleurs_separees)
|
if (1)
|
||||||
|| ( ( ((Mouse_X/Menu_Facteur_X)-(LARGEUR_MENU+1))%Menu_Taille_couleur != Menu_Taille_couleur-1 )
|
|
||||||
&& ( (( ((Mouse_Y-Menu_Ordonnee)/Menu_Facteur_Y) -2)&3)!=3 ) ) )
|
|
||||||
{
|
{
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
Temp_color=Couleur_debut_palette;
|
Temp_color=Couleur_debut_palette;
|
||||||
Temp=Temp_color+
|
Temp=Temp_color+
|
||||||
((((Mouse_X/Menu_Facteur_X)-(LARGEUR_MENU+1))/Menu_Taille_couleur)<<3)+
|
((((Mouse_X/Menu_Facteur_X)-(LARGEUR_MENU+1))/Menu_Taille_couleur)*Config.Palette_Cells_Y)+
|
||||||
((((Mouse_Y-Menu_Ordonnee)/Menu_Facteur_Y)-2)>>2);
|
((((Mouse_Y-Menu_Ordonnee)/Menu_Facteur_Y)-2)/(32/Config.Palette_Cells_Y));
|
||||||
|
|
||||||
strcpy(Chaine,TITRE_BOUTON[Indice_bouton]);
|
strcpy(Chaine,TITRE_BOUTON[Indice_bouton]);
|
||||||
sprintf(Chaine+strlen(Chaine),"%d (%d,%d,%d)",Temp,Principal_Palette[Temp].R,Principal_Palette[Temp].V,Principal_Palette[Temp].B);
|
sprintf(Chaine+strlen(Chaine),"%d (%d,%d,%d)",Temp,Principal_Palette[Temp].R,Principal_Palette[Temp].V,Principal_Palette[Temp].B);
|
||||||
|
|||||||
19
readini.c
19
readini.c
@ -704,6 +704,25 @@ int Charger_INI(struct S_Config * Conf)
|
|||||||
goto Erreur_ERREUR_INI_CORROMPU;
|
goto Erreur_ERREUR_INI_CORROMPU;
|
||||||
Conf->Mouse_Merge_movement=Valeurs[0];
|
Conf->Mouse_Merge_movement=Valeurs[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Conf->Palette_Cells_X=8;
|
||||||
|
// Optionnel, nombre de colonnes dans la palette (>98.0%)
|
||||||
|
if (!Charger_INI_Get_values (Fichier,Buffer,"Palette_Cells_X",1,Valeurs))
|
||||||
|
{
|
||||||
|
if ((Valeurs[0]<1) || (Valeurs[0]>32))
|
||||||
|
goto Erreur_ERREUR_INI_CORROMPU;
|
||||||
|
Conf->Palette_Cells_X=Valeurs[0];
|
||||||
|
}
|
||||||
|
Conf->Palette_Cells_Y=8;
|
||||||
|
// Optionnel, nombre de lignes dans la palette (>98.0%)
|
||||||
|
if (!Charger_INI_Get_values (Fichier,Buffer,"Palette_Cells_Y",1,Valeurs))
|
||||||
|
{
|
||||||
|
if (Valeurs[0]!=1 && Valeurs[0]!=2 && Valeurs[0]!=4 && Valeurs[0]!=8 && Valeurs[0]!=16)
|
||||||
|
goto Erreur_ERREUR_INI_CORROMPU;
|
||||||
|
Conf->Palette_Cells_Y=Valeurs[0];
|
||||||
|
}
|
||||||
|
if (Conf->Palette_Cells_X*Conf->Palette_Cells_Y>256)
|
||||||
|
Conf->Palette_Cells_X=256/Conf->Palette_Cells_Y;
|
||||||
|
|
||||||
fclose(Fichier);
|
fclose(Fichier);
|
||||||
|
|
||||||
|
|||||||
@ -608,6 +608,14 @@ int Sauver_INI(struct S_Config * Conf)
|
|||||||
if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Merge_movement",1,Valeurs,0)))
|
if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Merge_movement",1,Valeurs,0)))
|
||||||
goto Erreur_Retour;
|
goto Erreur_Retour;
|
||||||
|
|
||||||
|
Valeurs[0]=(Conf->Palette_Cells_X);
|
||||||
|
if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Palette_Cells_X",1,Valeurs,0)))
|
||||||
|
goto Erreur_Retour;
|
||||||
|
|
||||||
|
Valeurs[0]=(Conf->Palette_Cells_Y);
|
||||||
|
if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Palette_Cells_Y",1,Valeurs,0)))
|
||||||
|
goto Erreur_Retour;
|
||||||
|
|
||||||
Sauver_INI_Flush(Ancien_fichier,Nouveau_fichier,Buffer);
|
Sauver_INI_Flush(Ancien_fichier,Nouveau_fichier,Buffer);
|
||||||
|
|
||||||
fclose(Nouveau_fichier);
|
fclose(Nouveau_fichier);
|
||||||
|
|||||||
90
windows.c
90
windows.c
@ -143,41 +143,42 @@ void Encadrer_couleur_menu(byte Couleur)
|
|||||||
{
|
{
|
||||||
word Debut_X,Debut_Y,Fin_X,Fin_Y;
|
word Debut_X,Debut_Y,Fin_X,Fin_Y;
|
||||||
word Indice;
|
word Indice;
|
||||||
|
word Hauteur_cellule=32/Config.Palette_Cells_Y;
|
||||||
|
|
||||||
if ((Fore_color>=Couleur_debut_palette) && (Fore_color<Couleur_debut_palette+64) && (Menu_visible))
|
if ((Fore_color>=Couleur_debut_palette) && (Fore_color<Couleur_debut_palette+Config.Palette_Cells_X*Config.Palette_Cells_Y) && (Menu_visible))
|
||||||
{
|
{
|
||||||
if (Config.Couleurs_separees)
|
if (Config.Couleurs_separees)
|
||||||
{
|
{
|
||||||
Debut_X=(LARGEUR_MENU+((Fore_color-Couleur_debut_palette)>>3)*Menu_Taille_couleur)*Menu_Facteur_X;
|
Debut_X=(LARGEUR_MENU+((Fore_color-Couleur_debut_palette)/Config.Palette_Cells_Y)*Menu_Taille_couleur)*Menu_Facteur_X;
|
||||||
Debut_Y=Menu_Ordonnee+((1+(((Fore_color-Couleur_debut_palette)&7)<<2))*Menu_Facteur_Y);
|
Debut_Y=Menu_Ordonnee+((1+(((Fore_color-Couleur_debut_palette)%Config.Palette_Cells_Y)*Hauteur_cellule))*Menu_Facteur_Y);
|
||||||
|
|
||||||
Block(Debut_X,Debut_Y,(Menu_Taille_couleur+1)*Menu_Facteur_X,Menu_Facteur_Y,Couleur);
|
Block(Debut_X,Debut_Y,(Menu_Taille_couleur+1)*Menu_Facteur_X,Menu_Facteur_Y,Couleur);
|
||||||
Block(Debut_X,Debut_Y+(Menu_Facteur_Y<<2),(Menu_Taille_couleur+1)*Menu_Facteur_X,Menu_Facteur_Y,Couleur);
|
Block(Debut_X,Debut_Y+(Menu_Facteur_Y*Hauteur_cellule),(Menu_Taille_couleur+1)*Menu_Facteur_X,Menu_Facteur_Y,Couleur);
|
||||||
|
|
||||||
Block(Debut_X,Debut_Y+Menu_Facteur_Y,Menu_Facteur_X,Menu_Facteur_Y*3,Couleur);
|
Block(Debut_X,Debut_Y+Menu_Facteur_Y,Menu_Facteur_X,Menu_Facteur_Y*(Hauteur_cellule-1),Couleur);
|
||||||
Block(Debut_X+(Menu_Taille_couleur*Menu_Facteur_X),Debut_Y+Menu_Facteur_Y,Menu_Facteur_X,Menu_Facteur_Y*3,Couleur);
|
Block(Debut_X+(Menu_Taille_couleur*Menu_Facteur_X),Debut_Y+Menu_Facteur_Y,Menu_Facteur_X,Menu_Facteur_Y*(Hauteur_cellule-1),Couleur);
|
||||||
|
|
||||||
UpdateRect(Debut_X,Debut_Y,(Menu_Taille_couleur+1)*Menu_Facteur_X,Menu_Facteur_Y*4);
|
UpdateRect(Debut_X,Debut_Y,(Menu_Taille_couleur+1)*Menu_Facteur_X,Menu_Facteur_Y*(Hauteur_cellule+1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (Couleur==CM_Noir)
|
if (Couleur==CM_Noir)
|
||||||
{
|
{
|
||||||
Debut_X=(LARGEUR_MENU+1+((Fore_color-Couleur_debut_palette)>>3)*Menu_Taille_couleur)*Menu_Facteur_X;
|
Debut_X=(LARGEUR_MENU+1+((Fore_color-Couleur_debut_palette)/Config.Palette_Cells_Y)*Menu_Taille_couleur)*Menu_Facteur_X;
|
||||||
Debut_Y=Menu_Ordonnee+((2+(((Fore_color-Couleur_debut_palette)&7)<<2))*Menu_Facteur_Y);
|
Debut_Y=Menu_Ordonnee+((2+(((Fore_color-Couleur_debut_palette)%Config.Palette_Cells_Y)*Hauteur_cellule))*Menu_Facteur_Y);
|
||||||
|
|
||||||
Block(Debut_X,Debut_Y,Menu_Taille_couleur*Menu_Facteur_X,
|
Block(Debut_X,Debut_Y,Menu_Taille_couleur*Menu_Facteur_X,
|
||||||
Menu_Facteur_Y<<2,Fore_color);
|
Menu_Facteur_Y*Hauteur_cellule,Fore_color);
|
||||||
|
|
||||||
UpdateRect(Debut_X,Debut_Y,(Menu_Taille_couleur+1)*Menu_Facteur_X,Menu_Facteur_Y*4);
|
UpdateRect(Debut_X,Debut_Y,Menu_Taille_couleur*Menu_Facteur_X,Menu_Facteur_Y*Hauteur_cellule);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debut_X=LARGEUR_MENU+1+((Fore_color-Couleur_debut_palette)>>3)*Menu_Taille_couleur;
|
Debut_X=LARGEUR_MENU+1+((Fore_color-Couleur_debut_palette)/Config.Palette_Cells_Y)*Menu_Taille_couleur;
|
||||||
Debut_Y=2+(((Fore_color-Couleur_debut_palette)&7)<<2);
|
Debut_Y=2+(((Fore_color-Couleur_debut_palette)%Config.Palette_Cells_Y)*Hauteur_cellule);
|
||||||
|
|
||||||
Fin_X=Debut_X+Menu_Taille_couleur-1;
|
Fin_X=Debut_X+Menu_Taille_couleur-1;
|
||||||
Fin_Y=Debut_Y+3;
|
Fin_Y=Debut_Y+Hauteur_cellule-1;
|
||||||
|
|
||||||
for (Indice=Debut_X; Indice<=Fin_X; Indice++)
|
for (Indice=Debut_X; Indice<=Fin_X; Indice++)
|
||||||
Block(Indice*Menu_Facteur_X,Menu_Ordonnee+(Debut_Y*Menu_Facteur_Y),
|
Block(Indice*Menu_Facteur_X,Menu_Ordonnee+(Debut_Y*Menu_Facteur_Y),
|
||||||
@ -199,7 +200,7 @@ void Encadrer_couleur_menu(byte Couleur)
|
|||||||
Menu_Facteur_X,Menu_Facteur_Y,
|
Menu_Facteur_X,Menu_Facteur_Y,
|
||||||
((Indice+Fin_Y)&1)?CM_Blanc:CM_Noir);
|
((Indice+Fin_Y)&1)?CM_Blanc:CM_Noir);
|
||||||
|
|
||||||
UpdateRect(Debut_X*Menu_Facteur_X,Debut_Y*Menu_Facteur_Y,Menu_Taille_couleur*Menu_Facteur_X,Menu_Ordonnee+Menu_Facteur_Y*4);
|
UpdateRect(Debut_X*Menu_Facteur_X,Debut_Y*Menu_Facteur_Y,Menu_Taille_couleur*Menu_Facteur_X,Menu_Ordonnee+Menu_Facteur_Y*Hauteur_cellule);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -209,25 +210,27 @@ void Encadrer_couleur_menu(byte Couleur)
|
|||||||
|
|
||||||
void Afficher_palette_du_menu(void)
|
void Afficher_palette_du_menu(void)
|
||||||
{
|
{
|
||||||
byte Couleur;
|
int Couleur;
|
||||||
|
byte Hauteur_cellule=32/Config.Palette_Cells_Y;
|
||||||
|
// Largeur: Menu_Taille_couleur
|
||||||
|
|
||||||
if (Menu_visible)
|
if (Menu_visible)
|
||||||
{
|
{
|
||||||
Block(LARGEUR_MENU*Menu_Facteur_X,Menu_Ordonnee,Largeur_ecran-(LARGEUR_MENU*Menu_Facteur_X),(HAUTEUR_MENU-9)*Menu_Facteur_Y,CM_Noir);
|
Block(LARGEUR_MENU*Menu_Facteur_X,Menu_Ordonnee,Largeur_ecran-(LARGEUR_MENU*Menu_Facteur_X),(HAUTEUR_MENU-9)*Menu_Facteur_Y,CM_Noir);
|
||||||
|
|
||||||
if (Config.Couleurs_separees)
|
if (Config.Couleurs_separees)
|
||||||
for (Couleur=0;Couleur<64;Couleur++)
|
for (Couleur=0;Couleur<Config.Palette_Cells_X*Config.Palette_Cells_Y;Couleur++)
|
||||||
Block((LARGEUR_MENU+1+(Couleur>>3)*Menu_Taille_couleur)*Menu_Facteur_X,
|
Block((LARGEUR_MENU+1+(Couleur/Config.Palette_Cells_Y)*Menu_Taille_couleur)*Menu_Facteur_X,
|
||||||
Menu_Ordonnee+((2+((Couleur&7)<<2))*Menu_Facteur_Y),
|
Menu_Ordonnee+((2+((Couleur%Config.Palette_Cells_Y)*Hauteur_cellule))*Menu_Facteur_Y),
|
||||||
(Menu_Taille_couleur-1)*Menu_Facteur_X,
|
(Menu_Taille_couleur-1)*Menu_Facteur_X,
|
||||||
Menu_Facteur_Y*3,
|
Menu_Facteur_Y*(Hauteur_cellule-1),
|
||||||
Couleur_debut_palette+Couleur);
|
Couleur_debut_palette+Couleur);
|
||||||
else
|
else
|
||||||
for (Couleur=0;Couleur<64;Couleur++)
|
for (Couleur=0;Couleur<Config.Palette_Cells_X*Config.Palette_Cells_Y;Couleur++)
|
||||||
Block((LARGEUR_MENU+1+(Couleur>>3)*Menu_Taille_couleur)*Menu_Facteur_X,
|
Block((LARGEUR_MENU+1+(Couleur/Config.Palette_Cells_Y)*Menu_Taille_couleur)*Menu_Facteur_X,
|
||||||
Menu_Ordonnee+((2+((Couleur&7)<<2))*Menu_Facteur_Y),
|
Menu_Ordonnee+((2+((Couleur%Config.Palette_Cells_Y)*Hauteur_cellule))*Menu_Facteur_Y),
|
||||||
Menu_Taille_couleur*Menu_Facteur_X,
|
Menu_Taille_couleur*Menu_Facteur_X,
|
||||||
Menu_Facteur_Y<<2,
|
Menu_Facteur_Y*Hauteur_cellule,
|
||||||
Couleur_debut_palette+Couleur);
|
Couleur_debut_palette+Couleur);
|
||||||
|
|
||||||
Encadrer_couleur_menu(CM_Blanc);
|
Encadrer_couleur_menu(CM_Blanc);
|
||||||
@ -245,17 +248,29 @@ void Recadrer_palette(void)
|
|||||||
if (Fore_color<Couleur_debut_palette)
|
if (Fore_color<Couleur_debut_palette)
|
||||||
{
|
{
|
||||||
while (Fore_color<Couleur_debut_palette)
|
while (Fore_color<Couleur_debut_palette)
|
||||||
Couleur_debut_palette-=8;
|
Couleur_debut_palette-=Config.Palette_Cells_Y;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
while (Fore_color>=Couleur_debut_palette+64)
|
while (Fore_color>=Couleur_debut_palette+Config.Palette_Cells_X*Config.Palette_Cells_Y)
|
||||||
Couleur_debut_palette+=8;
|
Couleur_debut_palette+=Config.Palette_Cells_Y;
|
||||||
}
|
}
|
||||||
if (Ancienne_couleur!=Couleur_debut_palette)
|
if (Ancienne_couleur!=Couleur_debut_palette)
|
||||||
Afficher_palette_du_menu();
|
Afficher_palette_du_menu();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Changer_cellules_palette(byte Cells_X, byte Cells_Y)
|
||||||
|
{
|
||||||
|
Config.Palette_Cells_X=Cells_X;
|
||||||
|
Config.Palette_Cells_Y=Cells_Y;
|
||||||
|
|
||||||
|
// Cale Couleur_debut_palette sur un multiple de Cells_Y (arrondi inférieur)
|
||||||
|
Couleur_debut_palette=Couleur_debut_palette/Cells_Y*Cells_Y;
|
||||||
|
|
||||||
|
// Mise à jour du menu
|
||||||
|
Menu_Taille_couleur = ((Largeur_ecran/Menu_Facteur_X)-(LARGEUR_MENU+2)) / Cells_X;
|
||||||
|
Bouton[BOUTON_CHOIX_COL].Largeur=(Menu_Taille_couleur*Config.Palette_Cells_X)-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// -- Afficher tout le menu --
|
// -- Afficher tout le menu --
|
||||||
@ -448,7 +463,6 @@ void Print_coordonnees(void)
|
|||||||
|
|
||||||
void Print_nom_fichier(void)
|
void Print_nom_fichier(void)
|
||||||
{
|
{
|
||||||
short Debut_X;
|
|
||||||
char Nom_affiche[12+1];
|
char Nom_affiche[12+1];
|
||||||
int Taille_nom;
|
int Taille_nom;
|
||||||
if (Menu_visible)
|
if (Menu_visible)
|
||||||
@ -462,13 +476,11 @@ void Print_nom_fichier(void)
|
|||||||
Nom_affiche[11]=CARACTERE_SUSPENSION;
|
Nom_affiche[11]=CARACTERE_SUSPENSION;
|
||||||
Taille_nom = 12;
|
Taille_nom = 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
Block((LARGEUR_MENU+2+((Menu_Taille_couleur-12)<<3))*Menu_Facteur_X,
|
Block(Largeur_ecran-96*Menu_Facteur_X,
|
||||||
Menu_Ordonnee_Texte,Menu_Facteur_X*96,Menu_Facteur_Y<<3,CM_Clair);
|
Menu_Ordonnee_Texte,Menu_Facteur_X*96,Menu_Facteur_Y<<3,CM_Clair);
|
||||||
|
|
||||||
Debut_X=LARGEUR_MENU+2+((Menu_Taille_couleur-Taille_nom)<<3);
|
Print_general(Largeur_ecran-Taille_nom*8*Menu_Facteur_X,Menu_Ordonnee_Texte,Nom_affiche,CM_Noir,CM_Clair);
|
||||||
|
|
||||||
Print_general(Debut_X*Menu_Facteur_X,Menu_Ordonnee_Texte,Nom_affiche,CM_Noir,CM_Clair);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -936,20 +948,20 @@ void Afficher_palette_du_menu_en_evitant_la_fenetre(byte * Table)
|
|||||||
if (Config.Couleurs_separees)
|
if (Config.Couleurs_separees)
|
||||||
{
|
{
|
||||||
Largeur=(Menu_Taille_couleur-1)*Menu_Facteur_X;
|
Largeur=(Menu_Taille_couleur-1)*Menu_Facteur_X;
|
||||||
Hauteur=Menu_Facteur_Y*3;
|
Hauteur=Menu_Facteur_Y*(32/Config.Palette_Cells_Y-1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Largeur=Menu_Taille_couleur*Menu_Facteur_X;
|
Largeur=Menu_Taille_couleur*Menu_Facteur_X;
|
||||||
Hauteur=Menu_Facteur_Y<<2;
|
Hauteur=Menu_Facteur_Y*(32/Config.Palette_Cells_Y);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Couleur=0,Vraie_couleur=Couleur_debut_palette;Couleur<64;Couleur++,Vraie_couleur++)
|
for (Couleur=0,Vraie_couleur=Couleur_debut_palette;Couleur<Config.Palette_Cells_X*Config.Palette_Cells_Y;Couleur++,Vraie_couleur++)
|
||||||
{
|
{
|
||||||
if (Table[Vraie_couleur]!=Vraie_couleur)
|
if (Table[Vraie_couleur]!=Vraie_couleur)
|
||||||
{
|
{
|
||||||
Debut_X=(LARGEUR_MENU+1+(Couleur>>3)*Menu_Taille_couleur)*Menu_Facteur_X;
|
Debut_X=(LARGEUR_MENU+1+(Couleur/Config.Palette_Cells_Y)*Menu_Taille_couleur)*Menu_Facteur_X;
|
||||||
Debut_Y=Menu_Ordonnee_avant_fenetre+((2+((Couleur&7)<<2))*Menu_Facteur_Y);
|
Debut_Y=Menu_Ordonnee_avant_fenetre+((2+((Couleur%Config.Palette_Cells_Y)*(32/Config.Palette_Cells_Y)))*Menu_Facteur_Y);
|
||||||
Fin_X=Debut_X+Largeur;
|
Fin_X=Debut_X+Largeur;
|
||||||
Fin_Y=Debut_Y+Hauteur;
|
Fin_Y=Debut_Y+Hauteur;
|
||||||
|
|
||||||
|
|||||||
@ -39,6 +39,7 @@ void Encadrer_couleur_menu(byte Couleur);
|
|||||||
void Afficher_palette_du_menu(void);
|
void Afficher_palette_du_menu(void);
|
||||||
void Afficher_menu(void);
|
void Afficher_menu(void);
|
||||||
void Recadrer_palette(void);
|
void Recadrer_palette(void);
|
||||||
|
void Changer_cellules_palette(byte Cells_X, byte Cells_Y);
|
||||||
|
|
||||||
void Print_general(short X,short Y,char * Chaine,byte Couleur_texte,byte Couleur_fond);
|
void Print_general(short X,short Y,char * Chaine,byte Couleur_texte,byte Couleur_fond);
|
||||||
void Print_dans_fenetre(short X,short Y,char * Chaine,byte Couleur_texte,byte Couleur_fond);
|
void Print_dans_fenetre(short X,short Y,char * Chaine,byte Couleur_texte,byte Couleur_fond);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user