extern byte far maphead;\r
extern byte mapdict;\r
extern byte far audiohead;\r
-extern byte audiodict;\r
+extern byte audiodict;*/\r
\r
+void CA_CannotOpen(char *string, global_game_variables_t *gvar);\r
\r
-long _seg *grstarts; // array of offsets in egagraph, -1 for sparse\r
+/*long _seg *grstarts; // array of offsets in egagraph, -1 for sparse\r
long _seg *audiostarts; // array of offsets in audio / audiot\r
\r
#ifdef GRHEADERLINKED\r
-huffnode *grhuffman;\r
+huffnode *gvar->ca.grhuffman;\r
#else\r
-huffnode grhuffman[255];\r
+huffnode gvar->ca.grhuffman[255];\r
#endif\r
\r
#ifdef AUDIOHEADERLINKED\r
int maphandle; // handle to MAPTEMP / GAMEMAPS\r
int audiohandle; // handle to AUDIOT / AUDIO\r
\r
-long chunkcomplen,chunkexplen;\r
+long c hunkcomplen,c hunkexplen;\r
\r
SDMode oldsoundmode;\r
\r
void CAL_DialogDraw (char *title,unsigned numcache);\r
void CAL_DialogUpdate (void);\r
void CAL_DialogFinish (void);*/\r
-//void CAL_CarmackExpand (unsigned far *source, unsigned far *dest,unsigned length);\r
+void CAL_CarmackExpand (unsigned far *source, unsigned far *dest,\r
+ unsigned length);\r
\r
\r
#ifdef THREEBYTEGRSTARTS\r
/*++++\r
void CAL_GetGrChunkLength (int chunk)\r
{\r
- lseek(grhandle,GRFILEPOS(chunk),SEEK_SET);\r
- read(grhandle,&chunkexplen,sizeof(chunkexplen));\r
- chunkcomplen = GRFILEPOS(chunk+1)-GRFILEPOS(chunk)-4;\r
+ lseek(gvar->ca.file.grhandle,GRFILEPOS(chunk),SEEK_SET);\r
+ read(gvar->ca.file.grhandle,&gvar->ca.chunkexplen,sizeof(gvar->ca.chunkexplen));\r
+ gvar->ca.chunkcomplen = GRFILEPOS(chunk+1)-GRFILEPOS(chunk)-4;\r
}*/\r
\r
\r
=\r
======================\r
*/\r
-////++++ enable!\r
-/*void CAL_SetupGrFile (void)\r
+////++++TODO: enable!\r
+/*void CAL_SetupGrFile (global_game_variables_t *gvar)\r
{\r
+ char fname[13];\r
int handle;\r
memptr compseg;\r
\r
#ifdef GRHEADERLINKED\r
\r
-#if GRMODE == EGAGR\r
- grhuffman = (huffnode *)&EGAdict;\r
- grstarts = (long _seg *)FP_SEG(&EGAhead);\r
-#endif\r
-#if GRMODE == CGAGR\r
- grhuffman = (huffnode *)&CGAdict;\r
- grstarts = (long _seg *)FP_SEG(&CGAhead);\r
-#endif\r
+ gvar->ca.grhuffman = (huffnode *)&VGAdict;\r
+ grstarts = (long _seg *)FP_SEG(&VGAhead);\r
\r
- CAL_OptimizeNodes (grhuffman);\r
+ CAL_OptimizeNodes (gvar->ca.grhuffman);\r
\r
#else\r
\r
// load ???dict.ext (huffman dictionary for graphics files)\r
//\r
\r
- if ((handle = open(GREXT"DICT."EXT,\r
+ strcpy(fname,GDICTNAME);\r
+ strcat(fname,EXTENSION);\r
+\r
+ if ((handle = open(fname,\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
- Quit (gvar, "Can't open "GREXT"DICT."EXT"!");\r
+ CA_CannotOpen(fname,gvar);\r
\r
- read(handle, &grhuffman, sizeof(grhuffman));\r
+ read(handle, &gvar->ca.grhuffman, sizeof(gvar->ca.grhuffman));\r
close(handle);\r
- CAL_OptimizeNodes (grhuffman);\r
+ CAL_OptimizeNodes (gvar->ca.grhuffman);\r
//\r
// load the data offsets from ???head.ext\r
//\r
- MM_GetPtr (MEMPTR grstarts,(NUMCHUNKS+1)*FILEPOSSIZE);\r
+ MM_GetPtr (MEMPTR gvar->ca.grstarts,(NUMCHUNKS+1)*FILEPOSSIZE, gvar);\r
+\r
+ strcpy(fname,GHEADNAME);\r
+ strcat(fname,EXTENSION);\r
\r
- if ((handle = open(GREXT"HEAD."EXT,\r
+ if ((handle = open(fname,\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
- Quit (gvar, "Can't open "GREXT"HEAD."EXT"!");\r
+ CA_CannotOpen(fname,gvar);\r
\r
- CA_FarRead(handle, (memptr)grstarts, (NUMCHUNKS+1)*FILEPOSSIZE);\r
+ CA_FarRead(handle, (memptr)gvar->ca.grstarts, (NUMCHUNKS+1)*FILEPOSSIZE, gvar);\r
\r
close(handle);\r
\r
//\r
// Open the graphics file, leaving it open until the game is finished\r
//\r
- grhandle = open(GREXT"GRAPH."EXT, O_RDONLY | O_BINARY);\r
- if (grhandle == -1)\r
- Quit (gvar, "Cannot open "GREXT"GRAPH."EXT"!");\r
+ strcpy(fname,GFILENAME);\r
+ strcat(fname,EXTENSION);\r
+\r
+ gvar->ca.file.grhandle = open(fname, O_RDONLY | O_BINARY);\r
+ if (gvar->ca.file.grhandle == -1)\r
+ CA_CannotOpen(fname,gvar);\r
\r
\r
//\r
// load the pic and sprite headers into the arrays in the data segment\r
//\r
#if NUMPICS>0\r
- MM_GetPtr(MEMPTR pictable,NUMPICS*sizeof(pictabletype));\r
+ MM_GetPtr(MEMPTR pictable,NUMPICS*sizeof(pictabletype),gvar);\r
CAL_GetGrChunkLength(STRUCTPIC); // position file pointer\r
- MM_GetPtr(&compseg,chunkcomplen);\r
- CA_FarRead (grhandle,compseg,chunkcomplen);\r
- CAL_HuffExpand (compseg, (byte far *)pictable,NUMPICS*sizeof(pictabletype),grhuffman);\r
- MM_FreePtr(&compseg);\r
+ MM_GetPtr(&compseg,gvar->ca.chunkcomplen, gvar);\r
+ CA_FarRead (gvar->ca.file.grhandle,compseg,gvar->ca.chunkcomplen,gvar);\r
+ CAL_HuffExpand (compseg, (byte far *)pictable,NUMPICS*sizeof(pictabletype),gvar->ca.grhuffman);\r
+ MM_FreePtr(&compseg,gvar);\r
#endif\r
\r
#if NUMPICM>0\r
MM_GetPtr(MEMPTR picmtable,NUMPICM*sizeof(pictabletype));\r
CAL_GetGrChunkLength(STRUCTPICM); // position file pointer\r
- MM_GetPtr(&compseg,chunkcomplen);\r
- CA_FarRead (grhandle,compseg,chunkcomplen);\r
- CAL_HuffExpand (compseg, (byte far *)picmtable,NUMPICS*sizeof(pictabletype),grhuffman);\r
+ MM_GetPtr(&compseg,gvar->ca.chunkcomplen);\r
+ CA_FarRead (gvar->ca.file.grhandle,compseg,gvar->ca.chunkcomplen);\r
+ CAL_HuffExpand (compseg, (byte far *)picmtable,NUMPICS*sizeof(pictabletype),gvar->ca.grhuffman);\r
MM_FreePtr(&compseg);\r
#endif\r
\r
#if NUMSPRITES>0\r
MM_GetPtr(MEMPTR spritetable,NUMSPRITES*sizeof(spritetabletype));\r
CAL_GetGrChunkLength(STRUCTSPRITE); // position file pointer\r
- MM_GetPtr(&compseg,chunkcomplen);\r
- CA_FarRead (grhandle,compseg,chunkcomplen);\r
- CAL_HuffExpand (compseg, (byte far *)spritetable,NUMSPRITES*sizeof(spritetabletype),grhuffman);\r
+ MM_GetPtr(&compseg,gvar->ca.chunkcomplen);\r
+ CA_FarRead (gvar->ca.file.grhandle,compseg,gvar->ca.chunkcomplen);\r
+ CAL_HuffExpand (compseg, (byte far *)spritetable,NUMSPRITES*sizeof(spritetabletype),gvar->ca.grhuffman);\r
MM_FreePtr(&compseg);\r
#endif\r
\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
Quit (gvar, "Can't open data/test.map!");\r
/*#ifdef MAPHEADERLINKED\r
- if ((maphandle = open("GAMEMAPS."EXTENSION,\r
+ if ((maphandle = open("GAMEMAPS.16"ENSION,\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
- Quit ("Can't open GAMEMAPS."EXTENSION"!");\r
+ Quit ("Can't open GAMEMAPS.16"ENSION"!");\r
#else\r
- if ((maphandle = open("MAPTEMP."EXTENSION,\r
+ if ((maphandle = open("MAPTEMP.16"ENSION,\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
- Quit ("Can't open MAPTEMP."EXTENSION"!");\r
+ Quit ("Can't open MAPTEMP.16"ENSION"!");\r
#endif*/\r
}\r
\r
// load maphead.ext (offsets and tileinfo for map file)\r
//\r
#ifndef AUDIOHEADERLINKED\r
- if ((handle = open("AUDIOHED."EXT,\r
+ if ((handle = open("AUDIOHED.16",\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
- Quit (gvar, "Can't open AUDIOHED."EXT"!");\r
+ Quit (gvar, "Can't open AUDIOHED.16""!");\r
length = filelength(handle);\r
MM_GetPtr (MEMPTR audiostarts,length);\r
CA_FarRead(handle, (byte far *)audiostarts, length);\r
// open the data file\r
//\r
#ifndef AUDIOHEADERLINKED\r
- if ((audiohandle = open("AUDIOT."EXT,\r
+ if ((audiohandle = open("AUDIOT.16",\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
- Quit (gvar, "Can't open AUDIOT."EXT"!");\r
+ Quit (gvar, "Can't open AUDIOT.16""!");\r
#else\r
- if ((audiohandle = open("AUDIO."EXT,\r
+ if ((audiohandle = open("AUDIO.16",\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
- Quit (gvar, "Can't open AUDIO."EXT"!");\r
+ Quit (gvar, "Can't open AUDIO.16""!");\r
#endif\r
}*/\r
\r
\r
// MDM begin - (GAMERS EDGE)\r
//\r
- if (!FindFile("AUDIO."EXT,NULL,2))\r
+ if (!FindFile("AUDIO.16",NULL,2))\r
Quit (gvar, "CA_CacheAudioChunk(): Can't find audio files.");\r
//\r
// MDM end\r
//\r
// expand the unshifted shape\r
//\r
- CAL_HuffExpand (compressed, &dest->data[0],smallplane*2,grhuffman);\r
+ CAL_HuffExpand (compressed, &dest->data[0],smallplane*2,gvar->ca.grhuffman);\r
\r
#endif\r
\r
//\r
// expand the unshifted shape\r
//\r
- CAL_HuffExpand (compressed, &dest->data[0],smallplane*5,grhuffman);\r
+ CAL_HuffExpand (compressed, &dest->data[0],smallplane*5,gvar->ca.grhuffman);\r
\r
//\r
// make the shifts!\r
MM_GetPtr (&grsegs[chunk],expanded);\r
if (mmerror)\r
return;\r
- CAL_HuffExpand (source,grsegs[chunk],expanded,grhuffman);\r
+ CAL_HuffExpand (source,grsegs[chunk],expanded,gvar->ca.grhuffman);\r
}\r
}\r
*/\r
\r
compressed = GRFILEPOS(next)-pos;\r
\r
- lseek(grhandle,pos,SEEK_SET);\r
+ lseek(gvar->ca.file.grhandle,pos,SEEK_SET);\r
\r
if (compressed<=BUFFERSIZE)\r
{\r
- CA_FarRead(grhandle,bufferseg,compressed);\r
+ CA_FarRead(gvar->ca.file.grhandle,bufferseg,compressed);\r
source = bufferseg;\r
}\r
else\r
if (mmerror)\r
return;\r
MM_SetLock (&bigbufferseg,true);\r
- CA_FarRead(grhandle,bigbufferseg,compressed);\r
+ CA_FarRead(gvar->ca.file.grhandle,bigbufferseg,compressed);\r
source = bigbufferseg;\r
}\r
\r
\r
// MDM begin - (GAMERS EDGE)\r
//\r
- if (!FindFile("EGAGRAPH."EXT,NULL,2))\r
+ if (!FindFile("EGAGRAPH.16",NULL,2))\r
Quit (gvar, "CA_CacheGrChunk(): Can't find graphics files.");\r
//\r
// MDM end\r
\r
compressed = GRFILEPOS(next)-pos;\r
\r
- lseek(grhandle,pos,SEEK_SET);\r
+ lseek(gvar->ca.file.grhandle,pos,SEEK_SET);\r
\r
if (compressed<=BUFFERSIZE)\r
{\r
- CA_FarRead(grhandle,bufferseg,compressed);\r
+ CA_FarRead(gvar->ca.file.grhandle,bufferseg,compressed);\r
source = bufferseg;\r
}\r
else\r
{\r
MM_GetPtr(&bigbufferseg,compressed);\r
MM_SetLock (&bigbufferseg,true);\r
- CA_FarRead(grhandle,bigbufferseg,compressed);\r
+ CA_FarRead(gvar->ca.file.grhandle,bigbufferseg,compressed);\r
source = bigbufferseg;\r
}\r
\r
\r
// MDM begin - (GAMERS EDGE)\r
//\r
-// if (!FindFile("EGAGRAPH."EXT,NULL,2))\r
+// if (!FindFile("EGAGRAPH.16",NULL,2))\r
// Quit (gvar, "CA_CacheMarks(): Can't find graphics files.");\r
//\r
// MDM end\r
next = NUMCHUNKS; // read pos to posend\r
}\r
\r
- lseek(grhandle,pos,SEEK_SET);\r
- CA_FarRead(grhandle,(gvar->mm.bufferseg),endpos-pos,gvar);\r
+ lseek(gvar->ca.file.grhandle,pos,SEEK_SET);\r
+ CA_FarRead(gvar->ca.file.grhandle,(gvar->mm.bufferseg),endpos-pos,gvar);\r
bufferstart = pos;\r
bufferend = endpos;\r
source = bufferseg;\r
if (mmerror)\r
return;\r
MM_SetLock (&bigbufferseg,true);\r
- lseek(grhandle,pos,SEEK_SET);\r
- CA_FarRead(grhandle,bigbufferseg,compressed,gvar);\r
+ lseek(gvar->ca.file.grhandle,pos,SEEK_SET);\r
+ CA_FarRead(gvar->ca.file.grhandle,bigbufferseg,compressed,gvar);\r
source = bigbufferseg;\r
}\r
\r
if (dialog && finishcachebox)\r
finishcachebox();\r
}*/\r
+\r
+void CA_CannotOpen(char *string, global_game_variables_t *gvar)\r
+{\r
+ char str[30];\r
+\r
+ strcpy(str,"Can't open ");\r
+ strcat(str,string);\r
+ strcat(str,"!\n");\r
+ Quit (gvar, str);\r
+}\r