Update colour changes

More correct colour ranges.
Added Rosewood.
Added Super Sonic Colours (No Super Tails or Knuckles, at least not yet).
This commit is contained in:
Sryder13 2015-07-23 17:58:52 +01:00
parent 0d357adb52
commit 70d0595817

View file

@ -239,17 +239,17 @@ static void R_GenerateTranslationColormap(UINT8 *dest_colormap, INT32 skinnum, U
0x70, // SKINCOLOR_CYAN 0x70, // SKINCOLOR_CYAN
0x7c, // SKINCOLOR_TEAL 0x7c, // SKINCOLOR_TEAL
0x9a, // SKINCOLOR_STEELBLUE 0x9a, // SKINCOLOR_STEELBLUE
0x80, // SKINCOLOR_BLUE 0x82, // SKINCOLOR_BLUE
0xc8, // SKINCOLOR_PEACH 0xc8, // SKINCOLOR_PEACH
0x54, // SKINCOLOR_TAN 0x54, // SKINCOLOR_TAN
0xc0, // SKINCOLOR_PINK 0xc0, // SKINCOLOR_PINK
0xb0, // SKINCOLOR_LAVENDER 0xb0, // SKINCOLOR_LAVENDER
0xa0, // SKINCOLOR_PURPLE 0xa3, // SKINCOLOR_PURPLE
0x30, // SKINCOLOR_ORANGE 0x31, // SKINCOLOR_ORANGE
0x30, // SKINCOLOR_ROSEWOOD 0x3a, // SKINCOLOR_ROSEWOOD
0xe0, // SKINCOLOR_BEIGE 0xe0, // SKINCOLOR_BEIGE
0xd0, // SKINCOLOR_BROWN 0xd0, // SKINCOLOR_BROWN
0x20, // SKINCOLOR_RED 0x21, // SKINCOLOR_RED
0x28, // SKINCOLOR_DARKRED 0x28, // SKINCOLOR_DARKRED
0xf0, // SKINCOLOR_NEONGREEN 0xf0, // SKINCOLOR_NEONGREEN
0x60, // SKINCOLOR_GREEN 0x60, // SKINCOLOR_GREEN
@ -294,12 +294,7 @@ static void R_GenerateTranslationColormap(UINT8 *dest_colormap, INT32 skinnum, U
case SKINCOLOR_SILVER: case SKINCOLOR_SILVER:
case SKINCOLOR_GREY: case SKINCOLOR_GREY:
case SKINCOLOR_BROWN: case SKINCOLOR_BROWN:
case SKINCOLOR_RED:
case SKINCOLOR_GREEN: case SKINCOLOR_GREEN:
case SKINCOLOR_BLUE:
case SKINCOLOR_ORANGE:
case SKINCOLOR_ROSEWOOD:
// 16 color ramp // 16 color ramp
for (i = 0; i < SKIN_RAMP_LENGTH; i++) for (i = 0; i < SKIN_RAMP_LENGTH; i++)
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + i); dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + i);
@ -311,24 +306,43 @@ static void R_GenerateTranslationColormap(UINT8 *dest_colormap, INT32 skinnum, U
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (12*i/SKIN_RAMP_LENGTH)); dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (12*i/SKIN_RAMP_LENGTH));
break; break;
case SKINCOLOR_PURPLE:
// 9 color ramp
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (9*i/SKIN_RAMP_LENGTH));
break;
case SKINCOLOR_WHITE: case SKINCOLOR_WHITE:
case SKINCOLOR_BLACK: case SKINCOLOR_BLACK:
case SKINCOLOR_PINK: case SKINCOLOR_PINK:
case SKINCOLOR_DARKRED:
case SKINCOLOR_ZIM: case SKINCOLOR_ZIM:
// 8 color ramp // 8 color ramp
for (i = 0; i < SKIN_RAMP_LENGTH; i++) for (i = 0; i < SKIN_RAMP_LENGTH; i++)
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (i >> 1)); dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (i >> 1));
break; break;
case SKINCOLOR_TEAL: case SKINCOLOR_RED:
// 5 color ramp, from 2 colour ranges
for (i = 0; i < SKIN_RAMP_LENGTH; i++) for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{ {
if (5*i/16 == 0) if (i == 13)
dest_colormap[starttranscolor + i] = 0xf8; dest_colormap[starttranscolor + i] = 0x47;
else if (i > 13)
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + i - 1);
else else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (5*i/SKIN_RAMP_LENGTH) - 1); dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + i);
}
break;
case SKINCOLOR_DARKRED:
// 9 colors
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{
if (9*i/16 == 6)
dest_colormap[starttranscolor + i] = 0x47;
else if (9*i/16 > 6)
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (9*i/SKIN_RAMP_LENGTH) - 1);
else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (9*i/SKIN_RAMP_LENGTH));
} }
break; break;
@ -345,8 +359,57 @@ static void R_GenerateTranslationColormap(UINT8 *dest_colormap, INT32 skinnum, U
} }
break; break;
case SKINCOLOR_BEIGE:
// 13 color range, from 2 color ranges
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{
if (13*i/16 == 12)
dest_colormap[starttranscolor + i] = 0xDD; // darkest
else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (13*i/SKIN_RAMP_LENGTH)); // Neon green
}
break;
case SKINCOLOR_ORANGE:
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{
if (i == 15)
dest_colormap[starttranscolor + i] = 0xEE;
else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + i);
}
break;
case SKINCOLOR_ROSEWOOD:
// 9 colors
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{
if (9*i/16 == 6)
dest_colormap[starttranscolor + i] = 0xEE;
else if (9*i/16 == 7)
dest_colormap[starttranscolor + i] = 0xEF;
else if (9*i/16 == 8)
dest_colormap[starttranscolor + i] = 0x47;
else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (9*i/SKIN_RAMP_LENGTH));
}
break;
case SKINCOLOR_GOLD:
// 10 color range, from 2 color ranges
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{
if (10*i/16 == 0)
dest_colormap[starttranscolor + i] = 0x50; // Lightest
else if (10*i/16 == 1)
dest_colormap[starttranscolor + i] = 0x53; // Second
else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (10*i/SKIN_RAMP_LENGTH) - 2); // main
}
break;
case SKINCOLOR_TAN: case SKINCOLOR_TAN:
// 8 color rame, from 3 color ranges // 8 color range, from 3 color ranges
for (i = 0; i < SKIN_RAMP_LENGTH; i++) for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{ {
if (8*i/16 == 0) if (8*i/16 == 0)
@ -362,14 +425,60 @@ static void R_GenerateTranslationColormap(UINT8 *dest_colormap, INT32 skinnum, U
} }
break; break;
case SKINCOLOR_BEIGE: case SKINCOLOR_OLIVE:
// 13 color range, from 2 color ranges // 7 color ramp
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (7*i/SKIN_RAMP_LENGTH));
break;
case SKINCOLOR_YELLOW:
// 10 color range, from 2 color ranges
for (i = 0; i < SKIN_RAMP_LENGTH; i++) for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{ {
if (13*i/16 == 12) if (10*i/16 == 0)
dest_colormap[starttranscolor + i] = 0xDD; // darkest dest_colormap[starttranscolor + i] = 0x53; // Lightest
else if (10*i/16 == 9)
dest_colormap[starttranscolor + i] = 0xDD; // Darkest
else else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (13*i/SKIN_RAMP_LENGTH)); // Neon green dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (10*i/SKIN_RAMP_LENGTH) - 1); // main
}
break;
case SKINCOLOR_NEONGREEN:
// Multi-color ramp
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{
if (10*i/16 <= 1)
dest_colormap[starttranscolor + i] = 0x60 + 10*i/16; // Brighter green
else if (10*i/16 < 9)
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (10*i/SKIN_RAMP_LENGTH) - 2); // Neon green
else
dest_colormap[starttranscolor + i] = 0x6F;
}
break;
case SKINCOLOR_TEAL:
// 6 color ramp
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{
if (6*i/16 == 0)
dest_colormap[starttranscolor + i] = 0xf8; // Lightest
else if (6*i/16 == 5)
dest_colormap[starttranscolor + i] = 0x7a; // Darkest
else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (6*i/SKIN_RAMP_LENGTH) - 1);
}
break;
case SKINCOLOR_BLUE:
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{
if (i == 14)
dest_colormap[starttranscolor + i] = 0x9F;
else if (i == 15)
dest_colormap[starttranscolor + i] = 0x1F;
else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + i);
} }
break; break;
@ -379,6 +488,8 @@ static void R_GenerateTranslationColormap(UINT8 *dest_colormap, INT32 skinnum, U
{ {
if (8*i/16 <= 1) if (8*i/16 <= 1)
dest_colormap[starttranscolor + i] = 0x80 + 8*i/16; // Lightest dest_colormap[starttranscolor + i] = 0x80 + 8*i/16; // Lightest
else if (8*i/16 == 7)
dest_colormap[starttranscolor + i] = 0x7B; // Darkest
else else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (8*i/SKIN_RAMP_LENGTH) - 2); // main dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (8*i/SKIN_RAMP_LENGTH) - 2); // main
} }
@ -395,108 +506,67 @@ static void R_GenerateTranslationColormap(UINT8 *dest_colormap, INT32 skinnum, U
} }
break; break;
case SKINCOLOR_PURPLE:
// 12 color range, from 2 color ranges
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{
if (12*i/16 == 0)
dest_colormap[starttranscolor + i] = 0xEC; // Lightest
else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (12*i/SKIN_RAMP_LENGTH) - 1); // main
}
break;
case SKINCOLOR_YELLOW:
// 13 color range, from 2 color ranges
// actually magenta
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{
if (12*i/16 <= 3)
dest_colormap[starttranscolor + i] = 0x50 + 12*i/16; // Lightest
else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (12*i/SKIN_RAMP_LENGTH) - 4); // main
}
break;
case SKINCOLOR_GOLD:
// 10 color rame, from 2 color ranges
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{
if (10*i/16 == 0)
dest_colormap[starttranscolor + i] = 0x50; // Lightest
else if (10*i/16 == 1)
dest_colormap[starttranscolor + i] = 0x53; // Second
else
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (10*i/SKIN_RAMP_LENGTH) - 2); // main
}
break;
case SKINCOLOR_OLIVE:
// 7 color ramp
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (7*i/SKIN_RAMP_LENGTH));
break;
case SKINCOLOR_NEONGREEN:
// Multi-color ramp
for (i = 0; i < SKIN_RAMP_LENGTH; i++)
{
if (10*i/16 <= 1)
dest_colormap[starttranscolor + i] = 0x60 + 10*i/16; // Brighter green
else if (10*i/16 < 9)
dest_colormap[starttranscolor + i] = (UINT8)(skinbasecolors[color - 1] + (10*i/SKIN_RAMP_LENGTH) - 2); // Neon green
else
dest_colormap[starttranscolor + i] = 0x6F;
}
break;
// Super colors, from lightest to darkest! // Super colors, from lightest to darkest!
case SKINCOLOR_SUPER1: case SKINCOLOR_SUPER1:
// Super White // Super White
for (i = 0; i < 10; i++) for (i = 0; i < 10; i++)
dest_colormap[starttranscolor + i] = 120; // True white dest_colormap[starttranscolor + i] = (UINT8)0; // True white
for (; i < SKIN_RAMP_LENGTH; i++) // White-yellow fade for (; i < 12; i++) // White-yellow fade
dest_colormap[starttranscolor + i] = (UINT8)(96 + (i-10)); dest_colormap[starttranscolor + i] = (UINT8)(80);
for (; i < 15; i++) // White-yellow fade
dest_colormap[starttranscolor + i] = (UINT8)(81 + (i-12));
dest_colormap[starttranscolor + 15] = (UINT8)(72);
break; break;
case SKINCOLOR_SUPER2: case SKINCOLOR_SUPER2:
// Super Bright // Super Bright
for (i = 0; i < 5; i++) // White-yellow fade dest_colormap[starttranscolor] = (UINT8)(0);
dest_colormap[starttranscolor + i] = (UINT8)(96 + i); for (i = 1; i < 4; i++) // White-yellow fade
dest_colormap[starttranscolor + 5] = 112; // Golden shine dest_colormap[starttranscolor + i] = (UINT8)(80 + (i-1));
for (i = 0; i < 8; i++) // Yellow for (; i < 6; i++) // Yellow
dest_colormap[starttranscolor + (i+6)] = (UINT8)(101 + (i>>1)); dest_colormap[starttranscolor + i] = (UINT8)(83);
for (i = 0; i < 2; i++) // With a fine golden finish! :3 for (; i < 8; i++) // Yellow
dest_colormap[starttranscolor + (i+14)] = (UINT8)(113 + i); dest_colormap[starttranscolor + i] = (UINT8)(72);
for (; i < 14; i++) // Yellow
dest_colormap[starttranscolor + i] = (UINT8)(73);
for (; i < 16; i++) // With a fine golden finish! :3
dest_colormap[starttranscolor + i] = (UINT8)(64 + (i-14));
break; break;
case SKINCOLOR_SUPER3: case SKINCOLOR_SUPER3:
// Super Yellow // Super Yellow
for (i = 0; i < 3; i++) // White-yellow fade for (i = 0; i < 2; i++) // White-yellow fade
dest_colormap[starttranscolor + i] = (UINT8)(98 + i); dest_colormap[starttranscolor + i] = (UINT8)(81 + i);
dest_colormap[starttranscolor + 3] = 112; // Golden shine for (; i < 4; i++)
for (i = 0; i < 8; i++) // Yellow dest_colormap[starttranscolor + i] = (UINT8)(83);
dest_colormap[starttranscolor + (i+4)] = (UINT8)(101 + (i>>1)); for (; i < 6; i++) // Yellow
for (i = 0; i < 4; i++) // With a fine golden finish! :3 dest_colormap[starttranscolor + i] = (UINT8)(72);
dest_colormap[starttranscolor + (i+12)] = (UINT8)(113 + i); for (; i < 12; i++) // Yellow
dest_colormap[starttranscolor + i] = (UINT8)(73);
for (; i < 16; i++) // With a fine golden finish! :3
dest_colormap[starttranscolor + i] = (UINT8)(64 + (i-12));
break; break;
case SKINCOLOR_SUPER4: case SKINCOLOR_SUPER4:
// "The SSNTails" // "The SSNTails"
dest_colormap[starttranscolor] = 112; // Golden shine dest_colormap[starttranscolor] = 83; // Golden shine
for (i = 0; i < 8; i++) // Yellow for (i = 1; i < 3; i++) // Yellow
dest_colormap[starttranscolor + (i+1)] = (UINT8)(101 + (i>>1)); dest_colormap[starttranscolor + i] = (UINT8)(72);
for (i = 0; i < 7; i++) // With a fine golden finish! :3 for (; i < 9; i++) // Yellow
dest_colormap[starttranscolor + (i+9)] = (UINT8)(113 + i); dest_colormap[starttranscolor + i] = (UINT8)(73);
for (; i < 16; i++) // With a fine golden finish! :3
dest_colormap[starttranscolor + i] = (UINT8)(64 + (i-9));
break; break;
case SKINCOLOR_SUPER5: case SKINCOLOR_SUPER5:
// Golden Delicious // Golden Delicious
for (i = 0; i < 8; i++) // Yellow for (i = 0; i < 2; i++) // Yellow
dest_colormap[starttranscolor + i] = (UINT8)(101 + (i>>1)); dest_colormap[starttranscolor + i] = (UINT8)(72);
for (i = 0; i < 7; i++) // With a fine golden finish! :3 for (; i < 8; i++) // Yellow
dest_colormap[starttranscolor + (i+8)] = (UINT8)(113 + i); dest_colormap[starttranscolor + i] = (UINT8)(73);
dest_colormap[starttranscolor + 15] = 155; for (; i < 15; i++) // With a fine golden finish! :3
dest_colormap[starttranscolor + i] = (UINT8)(64 + (i-8));
dest_colormap[starttranscolor + 15] = (UINT8)63;
break; break;
// Super Tails // Super Tails