Well, I'm not sure about the subject, but here I go with my problem.

In the game I'm working is a board game that uses small RPG-style sprites. The colours for skin, hair and clothes are selected by the user. The program draws a dialog with lots of colours and the user select the ones he/she wants for his character.

The problem is that the sprite uses two colours for each part (bright and dark). Once the player selects a colour the program uses the next code to calculate the dark version:[pascal]al_rgb_to_hsv (BrightR, BrightG, BrightB, @h, @s, @v);
v := v / 2;
al_hsv_to_rgb (h, s, v, @DarkR, @DarkG, @DarkB);[/pascal]
I know it's an ugly piece of code and I'm sure there are better ways to calculate this. Do you know any?

And also, where can I find a nice palette of colours for skins, hair and clothes to use in my program?

Thanks.