==========================\r
*/\r
\r
-boolean CA_FarRead(int handle, byte huge *dest, dword length, global_game_variables_t *gvar)\r
+boolean CA_FarRead(int handle, byte far *dest, dword length, global_game_variables_t *gvar)\r
{\r
- boolean flag;\r
+ boolean flag=0;\r
//dword fat=0;\r
//word segm=0;\r
if(gvar->pm.emm.EMSVer<0x40)\r
\r
//if(!fat&&!segm)\r
//{\r
- __asm {\r
- push ds\r
- mov bx,[handle]\r
- mov cx,[WORD PTR length]\r
- mov dx,[WORD PTR dest]\r
- mov ds,[WORD PTR dest+2]\r
- mov ah,0x3f // READ w/handle\r
- int 21h\r
- pop ds\r
- jnc good\r
- mov errno,ax\r
- mov flag,0\r
- jmp End\r
+ __asm {\r
+ push ds\r
+ mov bx,[handle]\r
+ mov cx,[WORD PTR length]\r
+ mov dx,[WORD PTR dest]\r
+ mov ds,[WORD PTR dest+2]\r
+ mov ah,0x3f // READ w/handle\r
+ int 21h\r
+ pop ds\r
+ jnc good\r
+ mov errno,ax\r
+ mov flag,0\r
+ jmp End\r
#ifdef __BORLANDC__\r
- }\r
+ }\r
#endif\r
good:\r
#ifdef __BORLANDC__\r
- __asm {\r
+ __asm {\r
#endif\r
- cmp ax,[WORD PTR length]\r
- je done\r
-// errno = EINVFMT; // user manager knows this is bad read\r
- mov flag,0\r
- jmp End\r
+ cmp ax,[WORD PTR length]\r
+ je done\r
+// errno = EINVFMT; // user manager knows this is bad read\r
+ mov flag,0\r
+ jmp End\r
#ifdef __BORLANDC__\r
- }\r
+ }\r
#endif\r
done:\r
#ifdef __BORLANDC__\r
- __asm {\r
+ __asm {\r
#endif\r
- mov flag,1\r
+ mov flag,1\r
#ifdef __BORLANDC__\r
- }\r
+ }\r
#endif\r
End:\r
#ifdef __WATCOMC__\r
- }\r
+ }\r
#endif\r
return flag;\r
}\r
==========================\r
*/\r
\r
-boolean CA_FarWrite(int handle, byte huge *source, dword length, global_game_variables_t *gvar)\r
+boolean CA_FarWrite(int handle, byte far *source, dword length, global_game_variables_t *gvar)\r
{\r
- boolean flag;\r
+ boolean flag=0;\r
//dword fat=0;\r
//word segm=0;\r
if(gvar->pm.emm.EMSVer<0x40)\r
\r
//if(!fat&&!segm)\r
//{\r
- __asm {\r
- push ds\r
- mov bx,[handle]\r
- mov cx,[WORD PTR length]\r
- mov dx,[WORD PTR source]\r
- mov ds,[WORD PTR source+2]\r
- mov ah,0x40 // WRITE w/handle\r
- int 21h\r
- pop ds\r
- jnc good\r
- mov errno,ax\r
- mov flag,0\r
- jmp End\r
+ __asm {\r
+ push ds\r
+ mov bx,[handle]\r
+ mov cx,[WORD PTR length]\r
+ mov dx,[WORD PTR source]\r
+ mov ds,[WORD PTR source+2]\r
+ mov ah,0x40 // WRITE w/handle\r
+ int 21h\r
+ pop ds\r
+ jnc good\r
+ mov errno,ax\r
+ mov flag,0\r
+ jmp End\r
#ifdef __BORLANDC__\r
- }\r
+ }\r
#endif\r
good:\r
#ifdef __BORLANDC__\r
- __asm {\r
+ __asm {\r
#endif\r
- cmp ax,[WORD PTR length]\r
- je done\r
- //errno = ENOMEM; // user manager knows this is bad write\r
- mov flag,0\r
- jmp End\r
+ cmp ax,[WORD PTR length]\r
+ je done\r
+// errno = ENOMEM; // user manager knows this is bad write\r
+ mov flag,0\r
+ jmp End\r
#ifdef __BORLANDC__\r
- }\r
+ }\r
#endif\r
done:\r
#ifdef __BORLANDC__\r
- __asm {\r
+ __asm {\r
#endif\r
- mov flag,1\r
+ mov flag,1\r
#ifdef __BORLANDC__\r
- }\r
+ }\r
#endif\r
End:\r
#ifdef __WATCOMC__\r
- }\r
+ }\r
#endif\r
return flag;\r
}\r
boolean CA_WriteFile (char *filename, void far *ptr, long length, global_game_variables_t *gvar)\r
{\r
int handle;\r
- sdword size;\r
+ //sdword size;\r
//long size;\r
\r
handle = open(filename,O_CREAT | O_BINARY | O_WRONLY,\r
======================\r
*/\r
\r
-void CAL_HuffExpand (byte huge *source, byte huge *dest,\r
+void CAL_HuffExpand (byte far *source, byte far *dest,\r
long length,huffnode *hufftable)\r
{\r
// unsigned bit,byte,node,code;\r
unsigned sourceseg,sourceoff,destseg,destoff,endoff;\r
- huffnode *headptr;\r
+ huffnode *headptr;\r
// huffnode *nodeon;\r
\r
- headptr = hufftable+254; // head node is allways node 254\r
+ headptr = hufftable+254; // head node is allways node 254\r
\r
source++; // normalize\r
source--;\r
//--------------------------\r
\r
__asm {\r
-//// mov bx,[headptr]\r
+ mov bx,[word ptr headptr]\r
\r
mov si,[sourceoff]\r
mov di,[destoff]\r
#endif\r
mov [es:di],dl\r
inc di // write a decopmpressed byte out\r
-//// mov bx,[headptr] // back to the head node for next bit\r
+ mov bx,[word ptr headptr] // back to the head node for next bit\r
\r
cmp di,ax // done?\r
jne expandshort\r
length--;\r
\r
__asm {\r
-//// mov bx,[headptr]\r
+ mov bx,[word ptr headptr]\r
mov cl,1\r
\r
mov si,[sourceoff]\r
#endif\r
mov [es:di],dl\r
inc di // write a decopmpressed byte out\r
-//// mov bx,[headptr] // back to the head node for next bit\r
+ mov bx,[word ptr headptr] // back to the head node for next bit\r
\r
cmp di,0x10 // normalize es:di\r
jb dinorm\r
======================\r
*/\r
\r
-long CA_RLEWCompress (unsigned huge *source, long length, unsigned huge *dest,\r
+long CA_RLEWCompress (unsigned far *source, long length, unsigned far *dest,\r
unsigned rlewtag)\r
{\r
long complength;\r
unsigned value,count,i;\r
- unsigned huge *start,huge *end;\r
+ unsigned far *start,far *end;\r
\r
start = dest;\r
\r
======================\r
*/\r
\r
-void CA_RLEWexpand (unsigned huge *source, unsigned huge *dest,long length,\r
+void CA_RLEWexpand (unsigned far *source, unsigned far *dest,long length,\r
unsigned rlewtag)\r
{\r
// unsigned value,count,i;\r
- unsigned huge *end;\r
+ unsigned far *end;\r
unsigned sourceseg,sourceoff,destseg,destoff,endseg,endoff;\r
\r
\r
//\r
// NOTE: A repeat count that produces 0xfff0 bytes can blow this!\r
//\r
- __asm{\r
+ __asm {\r
mov bx,rlewtag\r
mov si,sourceoff\r
mov di,destoff\r
\r
if ((handle = open(GREXT"DICT."EXT,\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
- Quit ("Can't open "GREXT"DICT."EXT"!");\r
+ Quit (gvar, "Can't open "GREXT"DICT."EXT"!");\r
\r
read(handle, &grhuffman, sizeof(grhuffman));\r
close(handle);\r
\r
if ((handle = open(GREXT"HEAD."EXT,\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
- Quit ("Can't open "GREXT"HEAD."EXT"!");\r
+ Quit (gvar, "Can't open "GREXT"HEAD."EXT"!");\r
\r
CA_FarRead(handle, (memptr)grstarts, (NUMCHUNKS+1)*FILEPOSSIZE);\r
\r
//\r
grhandle = open(GREXT"GRAPH."EXT, O_RDONLY | O_BINARY);\r
if (grhandle == -1)\r
- Quit ("Cannot open "GREXT"GRAPH."EXT"!");\r
+ Quit (gvar, "Cannot open "GREXT"GRAPH."EXT"!");\r
\r
\r
//\r
CAL_GetGrChunkLength(STRUCTPIC); // position file pointer\r
MM_GetPtr(&compseg,chunkcomplen);\r
CA_FarRead (grhandle,compseg,chunkcomplen);\r
- CAL_HuffExpand (compseg, (byte huge *)pictable,NUMPICS*sizeof(pictabletype),grhuffman);\r
+ CAL_HuffExpand (compseg, (byte far *)pictable,NUMPICS*sizeof(pictabletype),grhuffman);\r
MM_FreePtr(&compseg);\r
#endif\r
\r
CAL_GetGrChunkLength(STRUCTPICM); // position file pointer\r
MM_GetPtr(&compseg,chunkcomplen);\r
CA_FarRead (grhandle,compseg,chunkcomplen);\r
- CAL_HuffExpand (compseg, (byte huge *)picmtable,NUMPICS*sizeof(pictabletype),grhuffman);\r
+ CAL_HuffExpand (compseg, (byte far *)picmtable,NUMPICS*sizeof(pictabletype),grhuffman);\r
MM_FreePtr(&compseg);\r
#endif\r
\r
CAL_GetGrChunkLength(STRUCTSPRITE); // position file pointer\r
MM_GetPtr(&compseg,chunkcomplen);\r
CA_FarRead (grhandle,compseg,chunkcomplen);\r
- CAL_HuffExpand (compseg, (byte huge *)spritetable,NUMSPRITES*sizeof(spritetabletype),grhuffman);\r
+ CAL_HuffExpand (compseg, (byte far *)spritetable,NUMSPRITES*sizeof(spritetabletype),grhuffman);\r
MM_FreePtr(&compseg);\r
#endif\r
\r
\r
void CAL_SetupMapFile (global_game_variables_t *gvar)\r
{\r
- int handle;\r
+/* int handle;\r
long length;\r
\r
//\r
// load maphead.ext (offsets and tileinfo for map file)\r
//\r
-// #ifndef MAPHEADERLINKED\r
-// if ((handle = open("MAPHEAD."EXT,\r
-// O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
-// printf("Can't open MAPHEAD."EXT"!");\r
-// length = filelength(handle);\r
-// MM_GetPtr (&(memptr)tinf,length);\r
-// CA_FarRead(handle, tinf, length);\r
-// close(handle);\r
-// //#else\r
-//\r
-// tinf = (byte _seg *)FP_SEG(&maphead);\r
-//\r
-// #endif\r
+#ifndef MAPHEADERLINKED\r
+ if ((handle = open("MAPHEAD."EXT,\r
+ O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
+ printf("Can't open MAPHEAD."EXT"!");\r
+ length = filelength(handle);\r
+ MM_GetPtr (&(memptr)tinf,length);\r
+ CA_FarRead(handle, tinf, length);\r
+ close(handle);\r
+//#else\r
+\r
+ tinf = (byte _seg *)FP_SEG(&maphead);\r
+\r
+#endif*/\r
\r
//\r
// open the data file\r
// #ifdef MAPHEADERLINKED\r
// if ((maphandle = open("GAMEMAPS."EXT,\r
// O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
-// Quit ("Can't open GAMEMAPS."EXT"!");\r
+// Quit (gvar, "Can't open GAMEMAPS."EXT"!");\r
// //#else\r
// if ((maphandle = open("MAPTEMP."EXT,\r
// O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
-// Quit ("Can't open MAPTEMP."EXT"!");\r
+// Quit (gvar, "Can't open MAPTEMP."EXT"!");\r
// #endif\r
}\r
\r
#ifndef AUDIOHEADERLINKED\r
if ((handle = open("AUDIOHED."EXT,\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
- Quit ("Can't open AUDIOHED."EXT"!");\r
+ Quit (gvar, "Can't open AUDIOHED."EXT"!");\r
length = filelength(handle);\r
MM_GetPtr (&(memptr)audiostarts,length);\r
CA_FarRead(handle, (byte far *)audiostarts, length);\r
#ifndef AUDIOHEADERLINKED\r
if ((audiohandle = open("AUDIOT."EXT,\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
- Quit ("Can't open AUDIOT."EXT"!");\r
+ Quit (gvar, "Can't open AUDIOT."EXT"!");\r
#else\r
if ((audiohandle = open("AUDIO."EXT,\r
O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
- Quit ("Can't open AUDIO."EXT"!");\r
+ Quit (gvar, "Can't open AUDIO."EXT"!");\r
#endif\r
}*/\r
\r
// MDM begin - (GAMERS EDGE)\r
//\r
if (!FindFile("AUDIO."EXT,NULL,2))\r
- Quit("CA_CacheAudioChunk(): Can't find audio files.");\r
+ Quit (gvar, "CA_CacheAudioChunk(): Can't find audio files.");\r
//\r
// MDM end\r
\r
break;\r
\r
default:\r
- Quit ("CAL_CacheSprite: Bad shifts number!");\r
+ Quit (gvar, "CAL_CacheSprite: Bad shifts number!");\r
}\r
\r
#endif\r
// MDM begin - (GAMERS EDGE)\r
//\r
if (!FindFile("EGAGRAPH."EXT,NULL,2))\r
- Quit("CA_CacheGrChunk(): Can't find graphics files.");\r
+ Quit (gvar, "CA_CacheGrChunk(): Can't find graphics files.");\r
//\r
// MDM end\r
\r
//\r
// free up memory from last map\r
//\r
- if (gvar->ca.map.mapon>-1 && gvar->ca.map.mapheaderseg[gvar->ca.map.mapon])\r
- MM_SetPurge (&((memptr)gvar->ca.map.mapheaderseg[(gvar->ca.map.mapon)]), 3, &(gvar->mm));\r
+ if (gvar->ca.camap.mapon>-1 && gvar->ca.camap.mapheaderseg[gvar->ca.camap.mapon])\r
+ MM_SetPurge (((memptr)gvar->ca.camap.mapheaderseg[(gvar->ca.camap.mapon)]), 3, gvar);\r
for (plane=0;plane<MAPPLANES;plane++)\r
- if (gvar->ca.map.mapsegs[plane])\r
- MM_FreePtr (&(memptr)gvar->ca.map.mapsegs[plane], &(gvar->mm));\r
+ if (gvar->ca.camap.mapsegs[plane])\r
+ MM_FreePtr ((memptr)gvar->ca.camap.mapsegs[plane], gvar);\r
\r
- gvar->ca.map.mapon = gvar->ca.map.mapnum;\r
+ gvar->ca.camap.mapon = gvar->ca.camap.mapnum;\r
\r
\r
//\r
// load map header\r
// The header will be cached if it is still around\r
//\r
- if (!gvar->ca.map.mapheaderseg[gvar->ca.map.mapnum])\r
- {\r
- //pos = ((mapfiletype _seg *)tinf)->headeroffsets[mapnum];\r
- pos = ((_seg *)gvar->ca.map.tinf)->headeroffsets[gvar->ca.map.mapnum];\r
- if (pos<0) // $FFFFFFFF start is a sparse map\r
- printf("CA_CacheMap: Tried to load a non existent map!");\r
+// if (!gvar->ca.camap.mapheaderseg[gvar->ca.camap.mapnum])\r
+// {\r
+// //pos = ((mapfiletype _seg *)tinf)->headeroffsets[mapnum];\r
+// //pos = ((_seg *)gvar->ca.camap.tinf)->headeroffsets[gvar->ca.camap.mapnum];\r
+// pos = ((memptr)gvar->ca.camap.tinf)->headeroffsets[gvar->ca.camap.mapnum];\r
+// if (pos<0) // $FFFFFFFF start is a sparse map\r
+// printf("CA_CacheMap: Tried to load a non existent map!");\r
\r
- MM_GetPtr(&(memptr)gvar->ca.mapheaderseg[mapnum],sizeof(maptype));\r
- lseek(maphandle,pos,SEEK_SET);\r
- CA_FarRead (maphandle,(memptr)mapheaderseg[mapnum],sizeof(maptype));\r
- }\r
- else\r
- MM_SetPurge (&(memptr)mapheaderseg[mapnum], 0, &(gvar->mm));\r
+// MM_GetPtr(&(memptr)gvar->ca.camapheaderseg[mapnum],sizeof(maptype));\r
+// lseek(maphandle,pos,SEEK_SET);\r
+// CA_FarRead (maphandle,(memptr)mapheaderseg[mapnum],sizeof(maptype));\r
+// }\r
+// else\r
+// MM_SetPurge (&(memptr)mapheaderseg[mapnum], 0, &(gvar->mm));\r
\r
//\r
// load the planes in\r
\r
for (plane = 0; plane<MAPPLANES; plane++)\r
{\r
- pos = mapheaderseg[mapnum]->planestart[plane];\r
- compressed = mapheaderseg[mapnum]->planelength[plane];\r
+ //pos = mapheaderseg[mapnum]->planestart[plane];\r
+ //compressed = mapheaderseg[mapnum]->planelength[plane];\r
\r
if (!compressed)\r
continue; // the plane is not used in this game\r
// MDM begin - (GAMERS EDGE)\r
//\r
if (!FindFile("EGAGRAPH."EXT,NULL,2))\r
- Quit("CA_CacheMarks(): Can't find graphics files.");\r
+ Quit (gvar, "CA_CacheMarks(): Can't find graphics files.");\r
//\r
// MDM end\r
\r