mirror of https://github.com/yaz0r/FITD.git
63 lines
1.2 KiB
C++
63 lines
1.2 KiB
C++
#include "common.h"
|
|
#include "palette.h"
|
|
|
|
void paletteFill(palette_t& palette, unsigned char r, unsigned char g, unsigned b)
|
|
{
|
|
r <<= 1;
|
|
g <<= 1;
|
|
b <<= 1;
|
|
|
|
for (int i = 0; i < 256; i++)
|
|
{
|
|
palette[i][0] = r;
|
|
palette[i][1] = g;
|
|
palette[i][2] = b;
|
|
}
|
|
}
|
|
|
|
void setPalette(palette_t& sourcePal)
|
|
{
|
|
osystem_setPalette(&sourcePal);
|
|
}
|
|
|
|
void copyPalette(palette_t& source, palette_t& dest)
|
|
{
|
|
for (int i = 0; i < 256; i++)
|
|
{
|
|
dest[i] = source[i];
|
|
}
|
|
}
|
|
|
|
void copyPalette(void* source, palette_t& dest)
|
|
{
|
|
for (int i = 0; i < 256; i++)
|
|
{
|
|
for (int j = 0; j < 3; j++) {
|
|
dest[i][j] = ((uint8*)source)[i * 3 + j];
|
|
}
|
|
}
|
|
}
|
|
|
|
void convertPaletteIfRequired(palette_t& lpalette)
|
|
{
|
|
if (g_gameId >= JACK && g_gameId < AITD3)
|
|
{
|
|
for (int i = 0; i < 256; i++)
|
|
{
|
|
for (int j = 0; j < 3; j++)
|
|
{
|
|
lpalette[i][j] = (((unsigned int)lpalette[i][j] * 255) / 63) & 0xFF;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void computePalette(palette_t& inPalette, palette_t& outPalette, int coef)
|
|
{
|
|
for (int i = 0; i < 256; i++)
|
|
{
|
|
for (int j = 0; j < 3; j++) {
|
|
outPalette[i][j] = (inPalette[i][j] * coef) >> 8;
|
|
}
|
|
}
|
|
} |