From 6fccad867cf307e1da188d87754fbc86d4df94e2 Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Sat, 7 Sep 2002 07:19:59 +0000 Subject: [PATCH] enable 0/255 palette swap --- 2d/palette.c | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++- include/gr.h | 6 ++- 2 files changed, 149 insertions(+), 3 deletions(-) diff --git a/2d/palette.c b/2d/palette.c index a4249f3a..30c6c6e2 100644 --- a/2d/palette.c +++ b/2d/palette.c @@ -1,4 +1,4 @@ -/* $Id: palette.c,v 1.5 2002-08-15 07:17:39 btb Exp $ */ +/* $Id: palette.c,v 1.6 2002-09-07 07:18:22 btb Exp $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -11,9 +11,134 @@ CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. */ + /* * Graphical routines for setting the palette * + * Old Log: + * Revision 1.41 1995/02/02 14:26:31 john + * Made palette fades work better with gamma thingy.. + * + * Revision 1.40 1994/12/08 19:03:46 john + * Made functions use cfile. + * + * Revision 1.39 1994/12/01 11:23:27 john + * Limited Gamma from 0-8. + * + * Revision 1.38 1994/11/28 01:31:08 mike + * optimize color lookup function, caching recently used colors. + * + * Revision 1.37 1994/11/18 22:50:18 john + * Changed shorts to ints in parameters. + * + * Revision 1.36 1994/11/15 17:54:59 john + * Made text palette fade in when game over. + * + * Revision 1.35 1994/11/10 19:53:14 matt + * Fixed error handling is gr_use_palette_table() + * + * Revision 1.34 1994/11/07 13:53:48 john + * Added better gamma stufff. + * + * Revision 1.33 1994/11/07 13:37:56 john + * Added gamma correction stuff. + * + * Revision 1.32 1994/11/05 13:20:14 john + * Fixed bug with find_closest_color_current not working. + * + * Revision 1.31 1994/11/05 13:08:09 john + * MAde it return 0 when palette already faded out. + * + * Revision 1.30 1994/11/05 13:05:34 john + * Added back in code to allow keys during fade. + * + * Revision 1.29 1994/11/05 12:49:50 john + * Fixed bug with previous comment.. + * + * Revision 1.28 1994/11/05 12:48:46 john + * Made palette only fade in / out when its supposed to. + * + * Revision 1.27 1994/11/05 12:46:43 john + * Changed palette stuff a bit. + * + * Revision 1.26 1994/11/01 12:59:35 john + * Reduced palette.256 size. + * + * Revision 1.25 1994/10/26 23:55:35 john + * Took out roller; Took out inverse table. + * + * Revision 1.24 1994/10/04 22:03:05 matt + * Fixed bug: palette wasn't fading all the way out or in + * + * Revision 1.23 1994/09/22 16:08:40 john + * Fixed some palette stuff. + * + * Revision 1.22 1994/09/19 11:44:31 john + * Changed call to allocate selector to the dpmi module. + * + * Revision 1.21 1994/09/12 19:28:09 john + * Fixed bug with unclipped fonts clipping. + * + * Revision 1.20 1994/09/12 18:18:39 john + * Set 254 and 255 to fade to themselves in fadetable + * + * Revision 1.19 1994/09/12 14:40:10 john + * Neatend. + * + * Revision 1.18 1994/09/09 09:31:55 john + * Made find_closest_color not look at superx spot of 254 + * + * Revision 1.17 1994/08/09 11:27:08 john + * Add cthru stuff. + * + * Revision 1.16 1994/08/01 11:03:51 john + * MAde it read in old/new palette.256 + * + * Revision 1.15 1994/07/27 18:30:27 john + * Took away the blending table. + * + * Revision 1.14 1994/06/09 10:39:52 john + * In fade out.in functions, returned 1 if key was pressed... + * + * Revision 1.13 1994/05/31 19:04:16 john + * Added key to stop fade if desired. + * + * Revision 1.12 1994/05/06 12:50:20 john + * Added supertransparency; neatend things up; took out warnings. + * + * Revision 1.11 1994/05/03 19:39:02 john + * *** empty log message *** + * + * Revision 1.10 1994/04/22 11:16:07 john + * *** empty log message *** + * + * Revision 1.9 1994/04/08 16:59:40 john + * Add fading poly's; Made palette fade 32 instead of 16. + * + * Revision 1.8 1994/03/16 17:21:17 john + * Added slow palette searching options. + * + * Revision 1.7 1994/01/07 11:47:33 john + * made use cflib + * + * Revision 1.6 1993/12/21 11:41:04 john + * *** empty log message *** + * + * Revision 1.5 1993/12/09 15:02:47 john + * Changed palette stuff majorly + * + * Revision 1.4 1993/12/07 12:31:41 john + * moved bmd_palette to gr_palette + * + * Revision 1.3 1993/10/15 16:22:23 john + * *** empty log message *** + * + * Revision 1.2 1993/09/26 18:59:46 john + * fade stuff + * + * Revision 1.1 1993/09/08 11:44:03 john + * Initial revision + * */ #ifdef HAVE_CONFIG_H @@ -74,6 +199,9 @@ void gr_use_palette_table( char * filename ) { CFILE *fp; int i,fsize; +#ifdef SWAP_0_255 + ubyte c; +#endif fp = cfopen( filename, "rb" ); @@ -101,6 +229,22 @@ void gr_use_palette_table( char * filename ) gr_fade_table[i*256+255] = 255; } +// swap colors 0 and 255 of the palette along with fade table entries + +#ifdef SWAP_0_255 + for (i = 0; i < 3; i++) { + c = gr_palette[i]; + gr_palette[i] = gr_palette[765+i]; + gr_palette[765+i] = c; + } + + for (i = 0; i < GR_FADE_LEVELS * 256; i++) { + if (gr_fade_table[i] == 0) + gr_fade_table[i] = 255; + } + for (i=0; i