-Translation typo: need_to_remp > need_to_remap

-Allow sorting only a range of colors in the palette
-Reverted Lightness sorting order so white is first. This is what's used in the default palette.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@768 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Adrien Destugues 2009-05-03 13:59:40 +00:00
parent 780bf3a751
commit 4e387fdbfc

View File

@ -72,7 +72,7 @@ byte Round_palette_component(byte comp)
return ((comp+128/RGB_scale)*(RGB_scale-1)/255*255+(RGB_scale&1?1:0))/(RGB_scale-1); return ((comp+128/RGB_scale)*(RGB_scale-1)/255*255+(RGB_scale&1?1:0))/(RGB_scale-1);
} }
// Définir les unités pour les graduationss R G B ou H S V // Définir les unités pour les graduations R G B ou H S V
void Componant_unit(int count) void Componant_unit(int count)
{ {
Color_count = count; Color_count = count;
@ -775,7 +775,7 @@ void Button_Palette(void)
T_Scroller_button * blue_slider; T_Scroller_button * blue_slider;
T_Scroller_button * reduce_slider; T_Scroller_button * reduce_slider;
byte image_is_backed_up=0; byte image_is_backed_up=0;
byte need_to_remp=0; byte need_to_remap=0;
dword color_usage[256]; dword color_usage[256];
short used_colors=-1; // -1 <=> Inconnu short used_colors=-1; // -1 <=> Inconnu
@ -1085,7 +1085,7 @@ void Button_Palette(void)
} }
need_to_remp=1; need_to_remap=1;
Display_cursor(); Display_cursor();
Set_palette(working_palette); Set_palette(working_palette);
@ -1152,7 +1152,7 @@ void Button_Palette(void)
Print_counter(203,172,str,MC_Black,MC_Light); Print_counter(203,172,str,MC_Black,MC_Light);
} }
need_to_remp=1; need_to_remap=1;
Display_cursor(); Display_cursor();
Set_palette(working_palette); Set_palette(working_palette);
@ -1220,7 +1220,7 @@ void Button_Palette(void)
Print_counter(230,172,str,MC_Black,MC_Light); Print_counter(230,172,str,MC_Black,MC_Light);
} }
need_to_remp=1; need_to_remap=1;
Display_cursor(); Display_cursor();
Set_palette(working_palette); Set_palette(working_palette);
@ -1235,7 +1235,7 @@ void Button_Palette(void)
// On prépare la "modifiabilité" des nouvelles couleurs // On prépare la "modifiabilité" des nouvelles couleurs
memcpy(temp_palette,working_palette,sizeof(T_Palette)); memcpy(temp_palette,working_palette,sizeof(T_Palette));
need_to_remp=1; need_to_remap=1;
break; break;
case 6 : // Grey scale case 6 : // Grey scale
@ -1254,7 +1254,7 @@ void Button_Palette(void)
Set_palette(working_palette); Set_palette(working_palette);
memcpy(temp_palette,working_palette,sizeof(T_Palette)); memcpy(temp_palette,working_palette,sizeof(T_Palette));
need_to_remp=1; need_to_remap=1;
break; break;
case 7 : // Swap case 7 : // Swap
@ -1307,7 +1307,7 @@ void Button_Palette(void)
// On tag le bloc (ou la couleur) // On tag le bloc (ou la couleur)
Tag_color_range(block_start,block_end); Tag_color_range(block_start,block_end);
need_to_remp=1; need_to_remap=1;
Set_palette(working_palette); Set_palette(working_palette);
@ -1356,7 +1356,7 @@ void Button_Palette(void)
// On tag le bloc (ou la couleur) // On tag le bloc (ou la couleur)
Tag_color_range(block_start,block_end); Tag_color_range(block_start,block_end);
need_to_remp=1; need_to_remap=1;
Display_cursor(); Display_cursor();
Draw_all_palette_sliders(red_slider,green_slider,blue_slider,working_palette,block_start,block_end); Draw_all_palette_sliders(red_slider,green_slider,blue_slider,working_palette,block_start,block_end);
@ -1391,7 +1391,7 @@ void Button_Palette(void)
memcpy(temp_palette,working_palette,sizeof(T_Palette)); memcpy(temp_palette,working_palette,sizeof(T_Palette));
need_to_remp=1; need_to_remap=1;
break; break;
case 11: // Reduce case 11: // Reduce
@ -1416,7 +1416,7 @@ void Button_Palette(void)
Draw_all_palette_sliders(red_slider,green_slider,blue_slider,working_palette,block_start,block_end); Draw_all_palette_sliders(red_slider,green_slider,blue_slider,working_palette,block_start,block_end);
memcpy(temp_palette,working_palette,sizeof(T_Palette)); memcpy(temp_palette,working_palette,sizeof(T_Palette));
need_to_remp=1; need_to_remap=1;
break; break;
case 12: // Undo case 12: // Undo
@ -1426,7 +1426,7 @@ void Button_Palette(void)
Draw_all_palette_sliders(red_slider,green_slider,blue_slider,working_palette,block_start,block_end); Draw_all_palette_sliders(red_slider,green_slider,blue_slider,working_palette,block_start,block_end);
Set_palette(working_palette); Set_palette(working_palette);
need_to_remp=1; need_to_remap=1;
break; break;
case 15 : // Used case 15 : // Used
@ -1461,7 +1461,7 @@ void Button_Palette(void)
Set_palette(working_palette); Set_palette(working_palette);
Draw_all_palette_sliders(red_slider,green_slider,blue_slider,working_palette,block_start,block_end); Draw_all_palette_sliders(red_slider,green_slider,blue_slider,working_palette,block_start,block_end);
need_to_remp=1; need_to_remap=1;
break; break;
case 17 : // Jauge de réduction de palette case 17 : // Jauge de réduction de palette
@ -1595,7 +1595,7 @@ void Button_Palette(void)
Print_counter(230,172,str,MC_Black,MC_Light); Print_counter(230,172,str,MC_Black,MC_Light);
} }
need_to_remp=1; need_to_remap=1;
Display_cursor(); Display_cursor();
Set_palette(working_palette); Set_palette(working_palette);
@ -1720,7 +1720,7 @@ void Button_Palette(void)
Print_counter(230,172,str,MC_Black,MC_Light); Print_counter(230,172,str,MC_Black,MC_Light);
} }
need_to_remp=1; need_to_remap=1;
Display_cursor(); Display_cursor();
Set_palette(working_palette); Set_palette(working_palette);
@ -1741,7 +1741,7 @@ void Button_Palette(void)
// On prépare la "modifiabilité" des nouvelles couleurs // On prépare la "modifiabilité" des nouvelles couleurs
memcpy(temp_palette,working_palette,sizeof(T_Palette)); memcpy(temp_palette,working_palette,sizeof(T_Palette));
need_to_remp=1; need_to_remap=1;
break; break;
case 21 : // Inversion case 21 : // Inversion
@ -1785,7 +1785,7 @@ void Button_Palette(void)
Set_palette(working_palette); Set_palette(working_palette);
memcpy(temp_palette,working_palette,sizeof(T_Palette)); memcpy(temp_palette,working_palette,sizeof(T_Palette));
need_to_remp=1; need_to_remap=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
@ -1845,6 +1845,18 @@ void Button_Palette(void)
int swap=1; int swap=1;
byte remap_table[256]; byte remap_table[256];
byte inverted_table[256]; byte inverted_table[256];
byte begin, end;
if(block_start==block_end)
{
begin = 0;
end = 255;
}
else
{
begin = block_start;
end = block_end;
}
// Init remap table // Init remap table
for (i=0;i<256;i++) for (i=0;i<256;i++)
@ -1858,8 +1870,8 @@ void Button_Palette(void)
while(swap==1) while(swap==1)
{ {
swap=0; swap=0;
h=0;l=0;s=0; h=0;l=255;s=0;
for(temp_color=0;temp_color<256;temp_color++) for(temp_color=begin;temp_color<=end;temp_color++)
{ {
oh=h; ol=l; os=s; oh=h; ol=l; os=s;
// On trie par Chrominance (H) et Luminance (L) // On trie par Chrominance (H) et Luminance (L)
@ -1869,8 +1881,8 @@ void Button_Palette(void)
if( if(
((s==0) && (os>0)) // Un gris passe devant une couleur saturée ((s==0) && (os>0)) // Un gris passe devant une couleur saturée
|| (((s>0 && os > 0) || (s==os && s==0)) // Deux couleurs saturées ou deux gris... || ((s>0 && os > 0) && (h<oh || (h==oh && l>ol))) // 2 couleurs saturées : on trie par H, si les H sont égaux on trie par L
&& (h<oh || (h==oh && l<ol)))) // Dans ce cas on décide avec chroma puis lumi || ((os==0 && s==0) && l>ol)) // Deux gris : on trie par L uniquement
{ {
// On échange la couleur avec la précédente // On échange la couleur avec la précédente
byte swap_color; byte swap_color;
@ -1881,7 +1893,6 @@ void Button_Palette(void)
remap_table[temp_color-1]=swap_color; remap_table[temp_color-1]=swap_color;
swap=1; swap=1;
} }
} }
} }
@ -1891,7 +1902,7 @@ void Button_Palette(void)
// 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(working_palette); Set_palette(working_palette);
need_to_remp=1; need_to_remap=1;
} }
break; break;
} }
@ -1981,7 +1992,7 @@ void Button_Palette(void)
memcpy(temp_palette,working_palette,sizeof(T_Palette)); memcpy(temp_palette,working_palette,sizeof(T_Palette));
Draw_all_palette_sliders(red_slider,green_slider,blue_slider,working_palette,block_start,block_end); Draw_all_palette_sliders(red_slider,green_slider,blue_slider,working_palette,block_start,block_end);
Update_color_count(&used_colors,color_usage); Update_color_count(&used_colors,color_usage);
need_to_remp=1; need_to_remap=1;
Key=0; Key=0;
break; break;
@ -2038,7 +2049,7 @@ void Button_Palette(void)
} }
} }
if (need_to_remp) if (need_to_remap)
{ {
Hide_cursor(); Hide_cursor();
Compute_optimal_menu_colors(working_palette); Compute_optimal_menu_colors(working_palette);
@ -2053,7 +2064,7 @@ void Button_Palette(void)
Update_rect(Window_pos_X+8*Menu_factor_X,Window_pos_Y+82*Menu_factor_Y,Menu_factor_X*16*10,Menu_factor_Y*5*16); Update_rect(Window_pos_X+8*Menu_factor_X,Window_pos_Y+82*Menu_factor_Y,Menu_factor_X*16*10,Menu_factor_Y*5*16);
Display_cursor(); Display_cursor();
need_to_remp=0; need_to_remap=0;
} }
} }
} }
@ -2070,7 +2081,7 @@ void Button_Palette(void)
Compute_optimal_menu_colors(Main_palette); Compute_optimal_menu_colors(Main_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...
need_to_remp=(Window_pos_Y+(Window_height*Menu_factor_Y)<Menu_Y_before_window); need_to_remap=(Window_pos_Y+(Window_height*Menu_factor_Y)<Menu_Y_before_window);
Close_window(); Close_window();
Unselect_button(BUTTON_PALETTE); Unselect_button(BUTTON_PALETTE);
@ -2080,7 +2091,7 @@ void Button_Palette(void)
// 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 (need_to_remp) if (need_to_remap)
Display_menu(); Display_menu();
Display_cursor(); Display_cursor();