Spoiler
Wojtas po co sie mieszasz ? Lepiej haba mu daj, Kurr co wam mam wkleic ten kod tutaj zebyscie uwierzyli ? prosze bardzo...
zEngine
Nazwa pliku zzId_Ca.cpp
#include "ID_HEADS.H"
#pragma hdrstop
#pragma warn -pro
#pragma warn -use
/*
=============================================================================
LOCAL CONSTANTS
=============================================================================
*/
/*
=============================================================================
GLOBAL VARIABLES
=============================================================================
*/
byte _seg *tinf;
int mapon;
unsigned _seg *mapsegs[MAPPLANES];
maptype _seg *mapheaderseg[NUMMAPS];
byte _seg *audiosegs[NUMSNDCHUNKS];
void _seg *grsegs[NUMCHUNKS];
byte far grneeded[NUMCHUNKS];
byte ca_levelbit,ca_levelnum;
int profilehandle,debughandle;
char audioname[13]="AUDIO.";
/*
=============================================================================
LOCAL VARIABLES
=============================================================================
*/
extern long far CGAhead;
extern long far EGAhead;
extern byte CGAdict;
extern byte EGAdict;
extern byte far maphead;
extern byte mapdict;
extern byte far audiohead;
extern byte audiodict;
char extension[5], // Need a string, not constant to change cache files
gheadname[10]=GREXT"HEAD.",
gfilename[10]=GREXT"GRAPH.",
gdictname[10]=GREXT"DICT.",
mheadname[10]="MAPHEAD.",
mfilename[10]="MAPTEMP.",
aheadname[10]="AUDIOHED.",
afilename[10]="AUDIOT.";
void CA_CannotOpen(char *string);
long _seg *grstarts; // array of offsets in egagraph, -1 for sparse
long _seg *audiostarts; // array of offsets in audio / audiot
#ifdef GRHEADERLINKED
huffnode *grhuffman;
#else
huffnode grhuffman[255];
#endif
#ifdef AUDIOHEADERLINKED
huffnode *audiohuffman;
#else
huffnode audiohuffman[255];
#endif
int grhandle; // handle to EGAGRAPH
int maphandle; // handle to MAPTEMP / GAMEMAPS
int audiohandle; // handle to AUDIOT / AUDIO
long chunkcomplen,chunkexplen;
SDMode oldsoundmode;
void CAL_CarmackExpand (unsigned far *source, unsigned far *dest,
unsigned length);
#ifdef THREEBYTEGRSTARTS
//#define GRFILEPOS(c) (*(long far *)(((byte far *)grstarts)+(c)*3)&0xffffff)
long GRFILEPOS(int c)
{
long value;
int offset;
offset = c*3;
value = *(long far *)(((byte far *)grstarts)+offset);
value &= 0x00ffffffl;
if (value == 0xffffffl)
value = -1;
return value;
};
#else
#define GRFILEPOS(c) (grstarts[c])
#endif
/*
=============================================================================
LOW LEVEL ROUTINES
=============================================================================
*/
#if 0
/*
============================
=
= CA_OpenDebug / CA_CloseDebug
=
= Opens a binary file with the handle "debughandle"
=
============================
*/
void CA_OpenDebug (void)
{
unlink ("DEBUG.TXT");
debughandle = open("DEBUG.TXT", O_CREAT | O_WRONLY | O_TEXT);
}
void CA_CloseDebug (void)
{
close (debughandle);
}
#endif
//-----------------------------------------------------------------------
// OpenGrFile()
//------------------------------------------------------------------------
void OpenGrFile(void)
{
char fname[13];
strcpy(fname,gfilename);
strcat(fname,extension);
grhandle = open(fname, O_RDONLY | O_BINARY);
if (grhandle == -1)
CA_CannotOpen(fname);
}
//-----------------------------------------------------------------------
// CloseGrFile()
//------------------------------------------------------------------------
void CloseGrFile(void)
{
if (grhandle != -1)
close(grhandle);
}
//-----------------------------------------------------------------------
// OpenMapFile()
//------------------------------------------------------------------------
void OpenMapFile(void)
{
char fname[13];
#ifdef CARMACIZED
strcpy(fname,"GAMEMAPS.");
strcat(fname,extension);
if ((maphandle = open(fname,
O_RDONLY | O_BINARY, S_IREAD)) == -1)
CA_CannotOpen(fname);
#else
strcpy(fname,mfilename);
strcat(fname,extension);
if ((maphandle = open(fname,
O_RDONLY | O_BINARY, S_IREAD)) == -1)
CA_CannotOpen(fname);
#endif
}
//-----------------------------------------------------------------------
// CloseMapFile()
//------------------------------------------------------------------------
void CloseMapFile(void)
{
if (maphandle != -1)
close(maphandle);
}
//-----------------------------------------------------------------------
// OpenAudioFile()
//------------------------------------------------------------------------
void OpenAudioFile(void)
{
char fname[13];
#ifndef AUDIOHEADERLINKED
strcpy(fname,afilename);
strcat(fname,extension);
if ((audiohandle = open(fname,
O_RDONLY | O_BINARY, S_IREAD)) == -1)
CA_CannotOpen(fname);
#else
if ((audiohandle = open("AUDIO."EXTENSION,
O_RDONLY | O_BINARY, S_IREAD)) == -1)
CA_ERROR(SETUPAUDIO_CANT_OPEN);
#endif
}