From 7fce8f6a9731804cc8ece504e04dd242b6f1d28f Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Tue, 4 Nov 2003 21:33:30 +0000 Subject: [PATCH] moved bitmap and sound header data structures and i/o routines back to piggy.c --- ChangeLog | 5 ++ main/piggy.c | 127 ++++++++++++++++++++++++++++++--------------------- main/piggy.h | 42 +---------------- 3 files changed, 82 insertions(+), 92 deletions(-) diff --git a/ChangeLog b/ChangeLog index 92cd6531..ddf8a977 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-11-04 Bradley Bell + + * main/piggy.c, main/piggy.h: moved bitmap and sound header data + structures and i/o routines back to piggy.c + 2003-11-04 Martin Schaffner * installation.txt: tell to install d1 .pig for better textures diff --git a/main/piggy.c b/main/piggy.c index 6d352b5f..0e69a287 100644 --- a/main/piggy.c +++ b/main/piggy.c @@ -1,4 +1,4 @@ -/* $Id: piggy.c,v 1.46 2003-11-03 12:03:44 btb Exp $ */ +/* $Id: piggy.c,v 1.47 2003-11-04 21:33:30 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.46 2003-11-03 12:03:44 btb Exp $"; +static char rcsid[] = "$Id: piggy.c,v 1.47 2003-11-04 21:33:30 btb Exp $"; #endif @@ -516,6 +516,72 @@ int piggy_page_flushed = 0; #define BM_FLAGS_TO_COPY (BM_FLAG_TRANSPARENT | BM_FLAG_SUPER_TRANSPARENT \ | BM_FLAG_NO_LIGHTING | BM_FLAG_RLE | BM_FLAG_RLE_BIG) +typedef struct DiskBitmapHeader { + char name[8]; + ubyte dflags; // bits 0-5 anim frame num, bit 6 abm flag + ubyte width; // low 8 bits here, 4 more bits in wh_extra + ubyte height; // low 8 bits here, 4 more bits in wh_extra + ubyte wh_extra; // bits 0-3 width, bits 4-7 height + ubyte flags; + ubyte avg_color; + int offset; +} __pack__ DiskBitmapHeader; + +#define DISKBITMAPHEADER_D1_SIZE 17 // no wh_extra + +typedef struct DiskSoundHeader { + char name[8]; + int length; + int data_length; + int offset; +} __pack__ DiskSoundHeader; + +#ifdef FAST_FILE_IO +#define DiskBitmapHeader_read(dbh, fp) cfread(dbh, sizeof(DiskBitmapHeader), 1, fp) +#define DiskSoundHeader_read(dsh, fp) cfread(dsh, sizeof(DiskSoundHeader), 1, fp) +#else +/* + * reads a DiskBitmapHeader structure from a CFILE + */ +void DiskBitmapHeader_read(DiskBitmapHeader *dbh, CFILE *fp) +{ + cfread(dbh->name, 8, 1, fp); + dbh->dflags = cfile_read_byte(fp); + dbh->width = cfile_read_byte(fp); + dbh->height = cfile_read_byte(fp); + dbh->wh_extra = cfile_read_byte(fp); + dbh->flags = cfile_read_byte(fp); + dbh->avg_color = cfile_read_byte(fp); + dbh->offset = cfile_read_int(fp); +} + +/* + * reads a DiskSoundHeader structure from a CFILE + */ +void DiskSoundHeader_read(DiskSoundHeader *dsh, CFILE *fp) +{ + cfread(dsh->name, 8, 1, fp); + dsh->length = cfile_read_int(fp); + dsh->data_length = cfile_read_int(fp); + dsh->offset = cfile_read_int(fp); +} +#endif // FAST_FILE_IO + +/* + * reads a descent 1 DiskBitmapHeader structure from a CFILE + */ +void DiskBitmapHeader_d1_read(DiskBitmapHeader *dbh, CFILE *fp) +{ + cfread(dbh->name, 8, 1, fp); + dbh->dflags = cfile_read_byte(fp); + dbh->width = cfile_read_byte(fp); + dbh->height = cfile_read_byte(fp); + dbh->wh_extra = 0; + dbh->flags = cfile_read_byte(fp); + dbh->avg_color = cfile_read_byte(fp); + dbh->offset = cfile_read_int(fp); +} + ubyte BigPig = 0; #ifdef MACINTOSH @@ -958,7 +1024,7 @@ void piggy_init_pigfile(char *filename) N_bitmaps = cfile_read_int(Piggy_fp); - header_size = N_bitmaps*DISKBITMAPHEADER_SIZE; + header_size = N_bitmaps * sizeof(DiskBitmapHeader); data_start = header_size + cftell(Piggy_fp); @@ -1093,7 +1159,7 @@ void piggy_new_pigfile(char *pigname) N_bitmaps = cfile_read_int(Piggy_fp); - header_size = N_bitmaps*DISKBITMAPHEADER_SIZE; + header_size = N_bitmaps * sizeof(DiskBitmapHeader); data_start = header_size + cftell(Piggy_fp); @@ -1366,7 +1432,7 @@ int read_hamfile() sound_start = cftell(ham_fp); - header_size = N_sounds * DISKSOUNDHEADER_SIZE; + header_size = N_sounds * sizeof(DiskSoundHeader); //Read sounds @@ -1842,7 +1908,7 @@ void piggy_write_pigfile(char *filename) Num_bitmap_files++; bitmap_data_start = ftell(pig_fp); - bitmap_data_start += (Num_bitmap_files-1)*DISKBITMAPHEADER_SIZE; + bitmap_data_start += (Num_bitmap_files - 1) * sizeof(DiskBitmapHeader); data_offset = bitmap_data_start; change_filename_ext(tname,filename,"lst"); @@ -1916,7 +1982,7 @@ void piggy_write_pigfile(char *filename) bmh.flags &= ~BM_FLAG_PAGED_OUT; } bmh.avg_color=GameBitmaps[i].avg_color; - fwrite( &bmh, DISKBITMAPHEADER_SIZE, 1, pig_fp ); // Mark as a bitmap + fwrite(&bmh, sizeof(DiskBitmapHeader), 1, pig_fp); // Mark as a bitmap } fclose(pig_fp); @@ -2196,7 +2262,7 @@ void load_bitmap_replacements(char *level_name) for (i = 0; i < n_bitmaps; i++) indices[i] = cfile_read_short(ifile); - bitmap_data_size = cfilelength(ifile) - cftell(ifile) - DISKBITMAPHEADER_SIZE * n_bitmaps; + bitmap_data_size = cfilelength(ifile) - cftell(ifile) - sizeof(DiskBitmapHeader) * n_bitmaps; MALLOC( Bitmap_replacement_data, ubyte, bitmap_data_size ); for (i=0;iname, 8, 1, fp); - dbh->dflags = cfile_read_byte(fp); - dbh->width = cfile_read_byte(fp); - dbh->height = cfile_read_byte(fp); - dbh->wh_extra = cfile_read_byte(fp); - dbh->flags = cfile_read_byte(fp); - dbh->avg_color = cfile_read_byte(fp); - dbh->offset = cfile_read_int(fp); -} - -/* - * reads a DiskSoundHeader structure from a CFILE - */ -void DiskSoundHeader_read(DiskSoundHeader *dsh, CFILE *fp) -{ - cfread(dsh->name, 8, 1, fp); - dsh->length = cfile_read_int(fp); - dsh->data_length = cfile_read_int(fp); - dsh->offset = cfile_read_int(fp); -} #endif // FAST_FILE_IO - -/* - * reads a descent 1 DiskBitmapHeader structure from a CFILE - */ -void DiskBitmapHeader_d1_read(DiskBitmapHeader *dbh, CFILE *fp) -{ - cfread(dbh->name, 8, 1, fp); - dbh->dflags = cfile_read_byte(fp); - dbh->width = cfile_read_byte(fp); - dbh->height = cfile_read_byte(fp); - dbh->wh_extra = 0; - dbh->flags = cfile_read_byte(fp); - dbh->avg_color = cfile_read_byte(fp); - dbh->offset = cfile_read_int(fp); -} diff --git a/main/piggy.h b/main/piggy.h index 20346190..978232f9 100644 --- a/main/piggy.h +++ b/main/piggy.h @@ -1,4 +1,4 @@ -/* $Id: piggy.h,v 1.24 2003-11-04 08:03:08 btb Exp $ */ +/* $Id: piggy.h,v 1.25 2003-11-04 21:33:30 btb Exp $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -100,29 +100,6 @@ typedef struct bitmap_index { ushort index; } __pack__ bitmap_index; -typedef struct DiskBitmapHeader { - char name[8]; - ubyte dflags; //bits 0-5 anim frame num, bit 6 abm flag - ubyte width; //low 8 bits here, 4 more bits in wh_extra - ubyte height; //low 8 bits here, 4 more bits in wh_extra - ubyte wh_extra; //bits 0-3 width, bits 4-7 height - ubyte flags; - ubyte avg_color; - int offset; -} __pack__ DiskBitmapHeader; - -#define DISKBITMAPHEADER_SIZE 18 // for disk i/o -#define DISKBITMAPHEADER_D1_SIZE 17 // for disk i/o - -typedef struct DiskSoundHeader { - char name[8]; - int length; - int data_length; - int offset; -} __pack__ DiskSoundHeader; - -#define DISKSOUNDHEADER_SIZE 20 // for disk i/o - int piggy_init(); void piggy_close(); void piggy_dump_all(); @@ -187,8 +164,6 @@ void load_d1_bitmap_replacements(); #ifdef FAST_FILE_IO #define bitmap_index_read(bi, fp) cfread(bi, sizeof(bitmap_index), 1, fp) #define bitmap_index_read_n(bi, n, fp) cfread(bi, sizeof(bitmap_index), n, fp) -#define DiskBitmapHeader_read(dbh, fp) cfread(dbh, sizeof(DiskBitmapHeader), 1, fp) -#define DiskSoundHeader_read(dsh, fp) cfread(dsh, sizeof(DiskSoundHeader), 1, fp) #else /* * reads a bitmap_index structure from a CFILE @@ -199,23 +174,8 @@ void bitmap_index_read(bitmap_index *bi, CFILE *fp); * reads n bitmap_index structs from a CFILE */ int bitmap_index_read_n(bitmap_index *bi, int n, CFILE *fp); - -/* - * reads a DiskBitmapHeader structure from a CFILE - */ -void DiskBitmapHeader_read(DiskBitmapHeader *dbh, CFILE *fp); - -/* - * reads a DiskSoundHeader structure from a CFILE - */ -void DiskSoundHeader_read(DiskSoundHeader *dsh, CFILE *fp); #endif // FAST_FILE_IO -/* - * reads a descent 1 DiskBitmapHeader structure from a CFILE - */ -void DiskBitmapHeader_d1_read(DiskBitmapHeader *dbh, CFILE *fp); - /* * Find and load the named bitmap from descent.pig */ -- 2.39.2