/*********************************************************** * K O U L E S * *----------------------------------------------------------* * C1995 JAHUSOFT * * Jan Hubicka * * Dukelskych Bojovniku 1944 * * 390 03 Tabor * * Czech Republic * * Phone: 0041-361-32613 * * eMail: hubicka@paru.cas.cz * *----------------------------------------------------------* * Copyright(c)1995,1996 by Jan Hubicka.See README for * * Liecnece details. * *----------------------------------------------------------* * cmap.c cmap routines for 256color librarys-svgalib style* ***********************************************************/ #include "koules.h" static INLINE int col (int p, CONST float p1) { p *= p1; if (p > 63) return (63); if (p < 0) return (0); return (p); } int fadedout = 0; void setcustompalette (CONST int p, CONST float p1) { /* 0-31 black to yellow for starwars scroller */ /* 32-63 black to red */ /* 64-96 for red koules */ /* 96-128 for yellow rockets */ /* 128-160 for green rockets */ /* 160-192 for blue rockets */ /* 192-256 gray cmap for stars */ Palette pal; int i; for (i = 0; i < 64; i++) { int r, g, b; r = g = b = 0; if ((i & 32) > 0) b = (i & 31) << 1; if (i < 32) { r = (i & 3) << 4; /* 2 bits */ g = (i & 4) << 3; /* 1 bit */ b = (i & 24) << 1; /* 2 bits */ } pal.color[i].red = col (r + p, p1); pal.color[i].green = col (g + p, p1); pal.color[i].blue = col (b + p, p1); } for (i = 64; i < 64 + 32; i++) { int r, g, b; r = g = b = 0; r = (32 - (i - 63)) << 1; if (i < 64 + 8) { b = g = (((8 - (i - 63))) << 5) / 5; } pal.color[i].red = col (r + p, p1); pal.color[i].green = col (g + p, p1); pal.color[i].blue = col (b + p, p1); } for (i = 96; i < 96 + 32; i++) { int r, g, b; r = g = b = 0; r = g = (32 - (i - 95)) << 1; if (i < 96 + 8) { b = ((8 - (i - 95))) << 3; } pal.color[i].red = col (r + p, p1); pal.color[i].green = col (g + p, p1); pal.color[i].blue = col (b + p, p1); } for (i = 128; i < 128 + 32; i++) { int r, g, b; r = g = b = 0; g = (32 - (i - 127)) << 1; if (i < 128 + 8) { r = b = ((8 - (i - 127))) << 3; } pal.color[i].red = col (r + p, p1); pal.color[i].green = col (g + p, p1); pal.color[i].blue = col (b + p, p1); } for (i = 160; i < 160 + 32; i++) { int r, g, b; r = g = b = 0; b = (32 - (i - 159)) << 1; if (i < 160 + 8) { r = g = (((8 - (i - 159))) << 3) / 2; } pal.color[i].red = col (r + p, p1); pal.color[i].green = col (g + p, p1); pal.color[i].blue = col (b + p, p1); } for (i = 0; i < 32; i++) { pal.color[i].red = col (i * 2 + p, p1); pal.color[i].green = col (i * 2 + p, p1); pal.color[i].blue = col (p, p1); } for (i = 0; i < 32; i++) { pal.color[192 + i].red = col (i * 2 + p, p1); pal.color[192 + i].green = col (i * 2 + p, p1); pal.color[192 + i].blue = col (i * 2 + p, p1); } pal.color[0].red = 0; pal.color[0].green = 0; pal.color[0].blue = 0; pal.color[255].red = col (64 + p, p1); pal.color[255].green = col (64 + p, p1); pal.color[255].blue = col (64 + p, p1); WaitRetrace (); SetPalette (&pal); } void fadeout () { if (!fadedout) { float i; for (i = 1; i >= 0; i -= 0.1) { setcustompalette (0, i); usleep (200), tbreak = 1; } setcustompalette (-65, 0); fadedout = 1; } } void fadein () { if (fadedout) { float i; for (i = 0; i <= 1; i += 0.1) { setcustompalette (0, i); usleep (200), tbreak = 1; } setcustompalette (0, 1); fadedout = 0; } } void fadein1 () /*better for star background */ { if (fadedout) { int i; for (i = -64; i <= 0; i += 6) { setcustompalette (i, 1); usleep (200), tbreak = 1; } setcustompalette (0, 1); fadedout = 0; } }