fix crash when d1 data not present

This commit is contained in:
Bradley Bell 2003-03-27 01:26:47 +00:00
parent 2ae6fe4519
commit 8696fa75d0
2 changed files with 18 additions and 7 deletions

View file

@ -1,5 +1,7 @@
2003-03-26 Bradley Bell <btb@icculus.org>
* main/piggy.c: fix crash when d1 data not present
* main/gamecntl.c, main/kconfig.c, main/playsave.c: fix d2x keys,
read/write from plr file

View file

@ -1,4 +1,4 @@
/* $Id: piggy.c,v 1.29 2003-03-25 10:17:05 btb Exp $ */
/* $Id: piggy.c,v 1.30 2003-03-27 01:26:47 btb Exp $ */
/*
THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
@ -386,7 +386,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#endif
#ifdef RCS
static char rcsid[] = "$Id: piggy.c,v 1.29 2003-03-25 10:17:05 btb Exp $";
static char rcsid[] = "$Id: piggy.c,v 1.30 2003-03-27 01:26:47 btb Exp $";
#endif
@ -437,6 +437,8 @@ static char rcsid[] = "$Id: piggy.c,v 1.29 2003-03-25 10:17:05 btb Exp $";
#define DEFAULT_HAMFILE_REGISTERED "descent2.ham"
#define DEFAULT_HAMFILE_SHAREWARE "d2demo.ham"
#define D1_PALETTE "palette.256"
#define DEFAULT_PIGFILE (cfexist(DEFAULT_PIGFILE_REGISTERED)?DEFAULT_PIGFILE_REGISTERED:DEFAULT_PIGFILE_SHAREWARE)
#define DEFAULT_HAMFILE (cfexist(DEFAULT_HAMFILE_REGISTERED)?DEFAULT_HAMFILE_REGISTERED:DEFAULT_HAMFILE_SHAREWARE)
#define DEFAULT_SNDFILE ((Piggy_hamfile_version < 3)?DEFAULT_HAMFILE_SHAREWARE:(digi_sample_rate==SAMPLE_RATE_22K)?"descent2.s22":"descent2.s11")
@ -2263,7 +2265,7 @@ void load_d1_bitmap_replacements()
{
int freq[256];
ubyte d1_palette[256*3];
CFILE * palette_file = cfopen( "palette.256", "rb" );
CFILE * palette_file = cfopen(D1_PALETTE, "rb" );
Assert( palette_file );
Assert( cfilelength( palette_file ) == 9472 );
cfread( d1_palette, 256, 3, palette_file);
@ -2397,9 +2399,12 @@ bitmap_index read_extra_d1_bitmap(char *name)
{
int freq[256];
ubyte d1_palette[256*3];
CFILE * palette_file = cfopen( "palette.256", "rb" );
Assert( palette_file );
Assert( cfilelength( palette_file ) == 9472 );
CFILE * palette_file = cfopen(D1_PALETTE, "rb");
if (!palette_file || cfilelength(palette_file) != 9472)
{
con_printf(CON_DEBUG, "could not open %s\n", D1_PALETTE);
return bitmap_num;
}
cfread( d1_palette, 256, 3, palette_file);
cfclose( palette_file );
build_colormap_good( d1_palette, colormap, freq );
@ -2440,7 +2445,11 @@ bitmap_index read_extra_d1_bitmap(char *name)
break;
}
Assert(!strnicmp(bmh.name, name, 8));
if (strnicmp(bmh.name, name, 8))
{
con_printf(CON_DEBUG, "could not find bitmap %s\n", name);
return bitmap_num;
}
memset( new, 0, sizeof(grs_bitmap) );