fix issue #39
http://pulkomandy.tk/projects/GrafX2/ticket/39 pass the palette argument from Compute_optimal_menu_colors(palette) to compute_xor_table()
This commit is contained in:
parent
96083c3c3b
commit
775a594858
@ -3365,15 +3365,15 @@ void Remap_screen_after_menu_colors_change(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int Diff(int i, int j) {
|
static int Diff(const T_Components * palette, int i, int j) {
|
||||||
int dr = Main.palette[i].R - Main.palette[j].R;
|
int dr = palette[i].R - palette[j].R;
|
||||||
int dg = Main.palette[i].G - Main.palette[j].G;
|
int dg = palette[i].G - palette[j].G;
|
||||||
int db = Main.palette[i].B - Main.palette[j].B;
|
int db = palette[i].B - palette[j].B;
|
||||||
|
|
||||||
return dr*dr + dg*dg + db*db;
|
return dr*dr + dg*dg + db*db;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void compute_xor_table()
|
static void compute_xor_table(const T_Components * palette)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
byte found;
|
byte found;
|
||||||
@ -3397,10 +3397,10 @@ static void compute_xor_table()
|
|||||||
for(i = 0; i < 256; i++)
|
for(i = 0; i < 256; i++)
|
||||||
{
|
{
|
||||||
// diffs before the swap
|
// diffs before the swap
|
||||||
int before = Diff(idx, xor_lut[idx]) + Diff(i, xor_lut[i]);
|
int before = Diff(palette, idx, xor_lut[idx]) + Diff(palette, i, xor_lut[i]);
|
||||||
|
|
||||||
// diffs after the swap
|
// diffs after the swap
|
||||||
int after = Diff(idx, xor_lut[i]) + Diff(i, xor_lut[idx]);
|
int after = Diff(palette, idx, xor_lut[i]) + Diff(palette, i, xor_lut[idx]);
|
||||||
|
|
||||||
if (after - before > improvement)
|
if (after - before > improvement)
|
||||||
{
|
{
|
||||||
@ -3426,7 +3426,7 @@ static void compute_xor_table()
|
|||||||
} while(found);
|
} while(found);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Same_color(T_Components * palette, byte c1, byte c2)
|
static int Same_color(const T_Components * palette, byte c1, byte c2)
|
||||||
{
|
{
|
||||||
if (palette[c1].R==palette[c2].R &&
|
if (palette[c1].R==palette[c2].R &&
|
||||||
palette[c1].G==palette[c2].G &&
|
palette[c1].G==palette[c2].G &&
|
||||||
@ -3435,7 +3435,9 @@ int Same_color(T_Components * palette, byte c1, byte c2)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Compute_optimal_menu_colors(T_Components * palette)
|
static void Remap_menu_sprites(const T_Components * palette);
|
||||||
|
|
||||||
|
void Compute_optimal_menu_colors(const T_Components * palette)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
byte l[256];
|
byte l[256];
|
||||||
@ -3498,7 +3500,7 @@ void Compute_optimal_menu_colors(T_Components * palette)
|
|||||||
MC_Window=MC_Light;
|
MC_Window=MC_Light;
|
||||||
MC_Lighter=MC_White;
|
MC_Lighter=MC_White;
|
||||||
MC_Darker=MC_Dark;
|
MC_Darker=MC_Dark;
|
||||||
Remap_menu_sprites();
|
Remap_menu_sprites(palette);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3548,7 +3550,7 @@ void Compute_optimal_menu_colors(T_Components * palette)
|
|||||||
MC_Window=MC_Light;
|
MC_Window=MC_Light;
|
||||||
MC_Lighter=MC_White;
|
MC_Lighter=MC_White;
|
||||||
MC_Darker=MC_Dark;
|
MC_Darker=MC_Dark;
|
||||||
Remap_menu_sprites();
|
Remap_menu_sprites(palette);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3661,15 +3663,15 @@ void Compute_optimal_menu_colors(T_Components * palette)
|
|||||||
}
|
}
|
||||||
MC_Lighter=MC_White;
|
MC_Lighter=MC_White;
|
||||||
|
|
||||||
Remap_menu_sprites();
|
Remap_menu_sprites(palette);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Remap all menu data when the palette changes or a new skin is loaded
|
/// Remap all menu data when the palette changes or a new skin is loaded
|
||||||
void Remap_menu_sprites()
|
static void Remap_menu_sprites(const T_Components * palette)
|
||||||
{
|
{
|
||||||
int i, j, k, l;
|
int i, j, k, l;
|
||||||
|
|
||||||
compute_xor_table();
|
compute_xor_table(palette);
|
||||||
if ( (MC_Light!=Old_light)
|
if ( (MC_Light!=Old_light)
|
||||||
|| (MC_Dark!=Old_dark)
|
|| (MC_Dark!=Old_dark)
|
||||||
|| (MC_White!=Old_white)
|
|| (MC_White!=Old_white)
|
||||||
|
|||||||
@ -40,8 +40,7 @@ void Display_cursor(void);
|
|||||||
void Hide_cursor(void);
|
void Hide_cursor(void);
|
||||||
|
|
||||||
void Remap_screen_after_menu_colors_change(void);
|
void Remap_screen_after_menu_colors_change(void);
|
||||||
void Compute_optimal_menu_colors(T_Components * palette);
|
void Compute_optimal_menu_colors(const T_Components * palette);
|
||||||
void Remap_menu_sprites();
|
|
||||||
|
|
||||||
void Position_screen_according_to_zoom(void);
|
void Position_screen_according_to_zoom(void);
|
||||||
void Compute_separator_data(void);
|
void Compute_separator_data(void);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user