From: Matteo Sasso Newsgroups: comp.os.msdos.djgpp Subject: select_palette: why it doesn't work? Date: Wed, 03 Mar 1999 15:32:42 +0100 Organization: TIN Lines: 52 Message-ID: <36DD480A.381FCA8E@tin.it> NNTP-Posting-Host: a-mi36-2.tin.it Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.5 [en] (Win98; I) X-Accept-Language: en To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com I'm writing a map editor which loads 8 bits bitmaps and displays them in 32 bit mode. The problem is that even if I loaded the palette from a datafile and selected it using the select_palette functions, bitmaps' colours aren't right! I used select_palette(*(PALETTE *)tilefile[bks].dat); select_palette((RGB *)tilefile[bks].dat); select_palette(tilefile[bks].dat); but NONE of these worked! (is any of them correct? which is the most "fair"?) (tilefile is a datafile and bks is the position of the palette, obviously!) Here are some pieces of source (I omitted some working parts using "[...]"): --- SOURCE --- [...] (definitions and procedures that WORK) void main() { allegro_init(); set_color_depth(32); set_gfx_mode(GFX_AUTODETECT,800,600,0,0); [...] tilefile = load_datafile("BKG.DAT"); if (tilefile == NULL) { [...] } [...] select_palette(*(PALETTE *)tilefile[bks].dat); // Selects the palette // I'm sure that bks is set correctly! [...] for (i = 0; i < bks; i++) blit(tilefile[i].dat,screen,0,0,100 + (i * 40),100,32,32); // Displays the bitmaps getch(); [...] set_gfx_mode(GFX_TEXT,80,25,0,0); } --- END OF SOURCE --- Thanks a lot to whoever will help me!! + I C E M A Z E + icemaze AT tin DOT it