SHAREWARE fixes
This commit is contained in:
parent
ec9d4d0bb5
commit
c592b9d5fb
|
@ -111,7 +111,7 @@ void tmap_info_read(tmap_info *ti, CFILE *fp)
|
|||
ti->slide_v = cfile_read_short(fp);
|
||||
}
|
||||
|
||||
#ifdef MACINTOSH
|
||||
//#ifdef MACINTOSH
|
||||
|
||||
#ifdef SHAREWARE
|
||||
extern int exit_modelnum,destroyed_exit_modelnum, Num_bitmap_files;
|
||||
|
@ -122,7 +122,7 @@ bitmap_index exitmodel_bm_load_sub( char * filename )
|
|||
bitmap_index bitmap_num;
|
||||
grs_bitmap * new;
|
||||
ubyte newpal[256*3];
|
||||
int i, iff_error; //reference parm to avoid warning message
|
||||
int iff_error; //reference parm to avoid warning message
|
||||
|
||||
bitmap_num.index = 0;
|
||||
|
||||
|
@ -166,8 +166,6 @@ grs_bitmap *load_exit_model_bitmap(char *name)
|
|||
void load_exit_models()
|
||||
{
|
||||
CFILE *exit_hamfile;
|
||||
int i, j;
|
||||
ubyte pal[768];
|
||||
int start_num;
|
||||
|
||||
start_num = N_ObjBitmaps;
|
||||
|
@ -213,7 +211,7 @@ void load_exit_models()
|
|||
}
|
||||
#endif // SHAREWARE
|
||||
|
||||
#endif // MACINTOSH
|
||||
//#endif // MACINTOSH
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
// Read data from piggy.
|
||||
|
|
|
@ -16,7 +16,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#endif
|
||||
|
||||
#ifdef RCS
|
||||
static char rcsid[] = "$Id: gamemine.c,v 1.4 2002-07-27 22:39:57 btb Exp $";
|
||||
static char rcsid[] = "$Id: gamemine.c,v 1.5 2002-07-30 04:52:01 btb Exp $";
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -610,24 +610,21 @@ void read_verts(int segnum,CFILE *LoadFile)
|
|||
Segments[segnum].verts[i] = cfile_read_short(LoadFile);
|
||||
}
|
||||
|
||||
// -- void read_special(int segnum,ubyte bit_mask,CFILE *LoadFile)
|
||||
// -- {
|
||||
// -- if (bit_mask & (1 << MAX_SIDES_PER_SEGMENT)) {
|
||||
// -- // Read ubyte Segments[segnum].special
|
||||
// -- // cfread( &Segments[segnum].special, sizeof(ubyte), 1, LoadFile );
|
||||
// -- Segment2s[segnum].special = cfile_read_byte(LoadFile);
|
||||
// -- // Read byte Segments[segnum].matcen_num
|
||||
// -- // cfread( &Segments[segnum].matcen_num, sizeof(ubyte), 1, LoadFile );
|
||||
// -- Segment2s[segnum].matcen_num = cfile_read_byte(LoadFile);
|
||||
// -- // Read short Segments[segnum].value
|
||||
// -- // cfread( &Segments[segnum].value, sizeof(short), 1, LoadFile );
|
||||
// -- Segment2s[segnum].value = cfile_read_short(LoadFile);
|
||||
// -- } else {
|
||||
// -- Segment2s[segnum].special = 0;
|
||||
// -- Segment2s[segnum].matcen_num = -1;
|
||||
// -- Segment2s[segnum].value = 0;
|
||||
// -- }
|
||||
// -- }
|
||||
void read_special(int segnum,ubyte bit_mask,CFILE *LoadFile)
|
||||
{
|
||||
if (bit_mask & (1 << MAX_SIDES_PER_SEGMENT)) {
|
||||
// Read ubyte Segments[segnum].special
|
||||
Segment2s[segnum].special = cfile_read_byte(LoadFile);
|
||||
// Read byte Segments[segnum].matcen_num
|
||||
Segment2s[segnum].matcen_num = cfile_read_byte(LoadFile);
|
||||
// Read short Segments[segnum].value
|
||||
Segment2s[segnum].value = cfile_read_short(LoadFile);
|
||||
} else {
|
||||
Segment2s[segnum].special = 0;
|
||||
Segment2s[segnum].matcen_num = -1;
|
||||
Segment2s[segnum].value = 0;
|
||||
}
|
||||
}
|
||||
|
||||
int load_mine_data_compiled(CFILE *LoadFile)
|
||||
{
|
||||
|
@ -659,7 +656,6 @@ int load_mine_data_compiled(CFILE *LoadFile)
|
|||
|
||||
for (i = 0; i < Num_vertices; i++)
|
||||
cfile_read_vector( &(Vertices[i]), LoadFile);
|
||||
|
||||
for (segnum=0; segnum<Num_segments; segnum++ ) {
|
||||
|
||||
#ifdef EDITOR
|
||||
|
@ -667,24 +663,28 @@ int load_mine_data_compiled(CFILE *LoadFile)
|
|||
Segments[segnum].group = 0;
|
||||
#endif
|
||||
|
||||
cfread( &bit_mask, sizeof(ubyte), 1, LoadFile );
|
||||
printf("%4x ", cftell(LoadFile));
|
||||
|
||||
#if defined(SHAREWARE) && !defined(MACINTOSH)
|
||||
// -- read_special(segnum,bit_mask,LoadFile);
|
||||
read_verts(segnum,LoadFile);
|
||||
read_children(segnum,bit_mask,LoadFile);
|
||||
#else
|
||||
read_children(segnum,bit_mask,LoadFile);
|
||||
read_verts(segnum,LoadFile);
|
||||
// --read_special(segnum,bit_mask,LoadFile);
|
||||
#endif
|
||||
bit_mask = cfile_read_byte(LoadFile);
|
||||
|
||||
#if defined(SHAREWARE) && !defined(MACINTOSH)
|
||||
read_special(segnum,bit_mask,LoadFile);
|
||||
read_verts(segnum,LoadFile);
|
||||
read_children(segnum,bit_mask,LoadFile);
|
||||
#else
|
||||
read_children(segnum,bit_mask,LoadFile);
|
||||
read_verts(segnum,LoadFile);
|
||||
// --read_special(segnum,bit_mask,LoadFile);
|
||||
#endif
|
||||
|
||||
Segments[segnum].objects = -1;
|
||||
|
||||
// Read fix Segments[segnum].static_light (shift down 5 bits, write as short)
|
||||
// cfread( &temp_ushort, sizeof(temp_ushort), 1, LoadFile );
|
||||
// temp_ushort = cfile_read_short(LoadFile);
|
||||
// Segment2s[segnum].static_light = ((fix)temp_ushort) << 4;
|
||||
|
||||
#ifdef SHAREWARE
|
||||
temp_ushort = cfile_read_short(LoadFile);
|
||||
Segment2s[segnum].static_light = ((fix)temp_ushort) << 4;
|
||||
#endif
|
||||
//cfread( &Segments[segnum].static_light, sizeof(fix), 1, LoadFile );
|
||||
|
||||
// Read the walls as a 6 byte array
|
||||
|
@ -692,12 +692,12 @@ int load_mine_data_compiled(CFILE *LoadFile)
|
|||
Segments[segnum].sides[sidenum].pad = 0;
|
||||
}
|
||||
|
||||
cfread( &bit_mask, sizeof(ubyte), 1, LoadFile );
|
||||
bit_mask = cfile_read_byte(LoadFile);
|
||||
for (sidenum=0; sidenum<MAX_SIDES_PER_SEGMENT; sidenum++) {
|
||||
ubyte byte_wallnum;
|
||||
|
||||
if (bit_mask & (1 << sidenum)) {
|
||||
cfread( &byte_wallnum, sizeof(ubyte), 1, LoadFile );
|
||||
byte_wallnum = cfile_read_byte(LoadFile);
|
||||
if ( byte_wallnum == 255 )
|
||||
Segments[segnum].sides[sidenum].wall_num = -1;
|
||||
else
|
||||
|
|
91
main/piggy.c
91
main/piggy.c
|
@ -16,7 +16,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
|
|||
#endif
|
||||
|
||||
#ifdef RCS
|
||||
static char rcsid[] = "$Id: piggy.c,v 1.10 2002-07-29 02:32:32 btb Exp $";
|
||||
static char rcsid[] = "$Id: piggy.c,v 1.11 2002-07-30 04:52:01 btb Exp $";
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -134,13 +134,6 @@ int piggy_page_flushed = 0;
|
|||
|
||||
#define DBM_FLAG_ABM 64
|
||||
|
||||
typedef struct DiskSoundHeader {
|
||||
char name[8];
|
||||
int length;
|
||||
int data_length;
|
||||
int offset;
|
||||
} __pack__ DiskSoundHeader;
|
||||
|
||||
ubyte BigPig = 0;
|
||||
|
||||
#ifdef MACINTOSH
|
||||
|
@ -944,6 +937,7 @@ int read_hamfile()
|
|||
{
|
||||
CFILE * ham_fp = NULL;
|
||||
int ham_id,ham_version;
|
||||
int sound_offset = 0;
|
||||
#ifdef MACINTOSH
|
||||
char name[255];
|
||||
#endif
|
||||
|
@ -969,23 +963,69 @@ int read_hamfile()
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (ham_version < 3) //mystery value
|
||||
cfseek(ham_fp, 4, SEEK_CUR);
|
||||
if (ham_version < 3) // hamfile contains sound info
|
||||
sound_offset = cfile_read_int(ham_fp);
|
||||
|
||||
#ifndef EDITOR
|
||||
{
|
||||
int i;
|
||||
//int i;
|
||||
|
||||
bm_read_all( ham_fp ); // Note connection to above if!!!
|
||||
printf("position: %d\n", cftell(ham_fp));
|
||||
cfread( GameBitmapXlat, sizeof(ushort)*MAX_BITMAP_FILES, 1, ham_fp );
|
||||
for (i = 0; i < MAX_BITMAP_FILES; i++) {
|
||||
// no swap here?
|
||||
//for (i = 0; i < MAX_BITMAP_FILES; i++) {
|
||||
//GameBitmapXlat[i] = INTEL_SHORT(GameBitmapXlat[i]);
|
||||
//printf("GameBitmapXlat[%d] = %d\n", i, GameBitmapXlat[i]);
|
||||
}
|
||||
//}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (ham_version < 3) {
|
||||
int N_sounds;
|
||||
int sound_start;
|
||||
int header_size;
|
||||
int i;
|
||||
DiskSoundHeader sndh;
|
||||
digi_sound temp_sound;
|
||||
char temp_name_read[16];
|
||||
int sbytes = 0;
|
||||
|
||||
cfseek(ham_fp, sound_offset, SEEK_SET);
|
||||
N_sounds = cfile_read_int(ham_fp);
|
||||
|
||||
sound_start = cftell(ham_fp);
|
||||
|
||||
header_size = N_sounds * DISKSOUNDHEADER_SIZE;
|
||||
|
||||
//Read sounds
|
||||
|
||||
printf("%#4x: reading %d x DiskSoundHeader\n", cftell(ham_fp), N_sounds);
|
||||
for (i=0; i<N_sounds; i++ ) {
|
||||
DiskSoundHeader_read(&sndh, ham_fp);
|
||||
temp_sound.length = sndh.length;
|
||||
temp_sound.data = (ubyte *)(sndh.offset + header_size + sound_start);
|
||||
SoundOffset[Num_sound_files] = sndh.offset + header_size + sound_start;
|
||||
memcpy( temp_name_read, sndh.name, 8 );
|
||||
temp_name_read[8] = 0;
|
||||
piggy_register_sound( &temp_sound, temp_name_read, 1 );
|
||||
#ifdef MACINTOSH
|
||||
if (piggy_is_needed(i))
|
||||
#endif // note link to if.
|
||||
sbytes += sndh.length;
|
||||
//mprintf(( 0, "%d bytes of sound\n", sbytes ));
|
||||
}
|
||||
|
||||
SoundBits = d_malloc( sbytes + 16 );
|
||||
if ( SoundBits == NULL )
|
||||
Error( "Not enough memory to load sounds\n" );
|
||||
|
||||
mprintf(( 0, "\nBitmaps: %d KB Sounds: %d KB\n", Piggy_bitmap_cache_size/1024, sbytes/1024 ));
|
||||
|
||||
// piggy_read_sounds(ham_fp);
|
||||
|
||||
}
|
||||
|
||||
cfclose(ham_fp);
|
||||
|
||||
return 1;
|
||||
|
@ -1037,12 +1077,9 @@ int read_sndfile()
|
|||
|
||||
//Read sounds
|
||||
|
||||
printf("%#4x: reading %d x DiskSoundHeader\n", cftell(snd_fp), N_sounds);
|
||||
for (i=0; i<N_sounds; i++ ) {
|
||||
cfread( sndh.name, 8, 1, snd_fp);
|
||||
sndh.length = cfile_read_int(snd_fp);
|
||||
sndh.data_length = cfile_read_int(snd_fp);
|
||||
sndh.offset = cfile_read_int(snd_fp);
|
||||
// cfread( &sndh, sizeof(DiskSoundHeader), 1, snd_fp );
|
||||
DiskSoundHeader_read(&sndh, snd_fp);
|
||||
//size -= sizeof(DiskSoundHeader);
|
||||
temp_sound.length = sndh.length;
|
||||
temp_sound.data = (ubyte *)(sndh.offset + header_size + sound_start);
|
||||
|
@ -1130,13 +1167,16 @@ int piggy_init(void)
|
|||
piggy_init_pigfile(DEFAULT_PIGFILE);
|
||||
#endif
|
||||
|
||||
#ifndef SHAREWARE
|
||||
ham_ok = read_hamfile();
|
||||
|
||||
snd_ok = read_sndfile();
|
||||
#else
|
||||
snd_ok = ham_ok = read_hamfile();
|
||||
#endif
|
||||
|
||||
atexit(piggy_close);
|
||||
|
||||
mprintf ((0,"HamOk=%d SndOk=%d\n",ham_ok,snd_ok));
|
||||
mprintf ((0,"HamOk=%d SndOk=%d\n",ham_ok,snd_ok));
|
||||
return (ham_ok && snd_ok); //read ok
|
||||
}
|
||||
|
||||
|
@ -1720,3 +1760,14 @@ void DiskBitmapHeader_read(DiskBitmapHeader *dbh, CFILE *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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue