*/\r
void CA_OpenDebug(global_game_variables_t *gvar)\r
{\r
- unlink("debug.16");\r
- gvar->handle.debughandle = open("debug.16", O_CREAT | O_WRONLY | O_TEXT);\r
+#ifdef __BORLANDC__\r
+ unlink("debug.16b");\r
+ gvar->handle.debughandle = open("debug.16b", O_CREAT | O_WRONLY | O_TEXT);\r
+#endif\r
+#ifdef __WATCOMC__\r
+ unlink("debug.16w");\r
+ gvar->handle.debughandle = open("debug.16w", O_CREAT | O_WRONLY | O_TEXT);\r
+#endif\r
}\r
\r
void CA_CloseDebug(global_game_variables_t *gvar)\r
boolean CA_FarRead(int handle, byte huge *dest, dword length, mminfo_t *mm)\r
{\r
boolean flag;\r
- /*dword fat=0;\r
- word segm=0;\r
- //if(mm->EMSVer<0x40)\r
+ //dword fat=0;\r
+ //word segm=0;\r
+ if(mm->EMSVer<0x40)\r
if(length>0xfffflu)\r
{\r
printf("File is a fat bakapee\n");\r
- segm=(length%0xfffflu)-1;\r
- fat=segm*0xfffflu;\r
- length-=fat;\r
-// printf("CA_FarRead doesn't support 64K reads yet!\n");\r
+ //segm=(length%0xfffflu)-1;\r
+ //fat=segm*0xfffflu;\r
+ //length-=fat;\r
+ printf("CA_FarRead doesn't support 64K reads yet!\n");\r
+ return 0;//TODO: EXPAND!!!\r
}\r
\r
- if(!fat&&!segm)\r
- {*/\r
+ //if(!fat&&!segm)\r
+ //{\r
__asm {\r
push ds\r
mov bx,[handle]\r
}\r
#endif\r
return flag;\r
- //}else return 0;//todo: EXPAND!!!\r
}\r
\r
\r
boolean CA_FarWrite(int handle, byte huge *source, dword length, mminfo_t *mm)\r
{\r
boolean flag;\r
- /*dword fat=0;\r
- word segm=0;\r
- //if(mm->EMSVer<0x40)\r
+ //dword fat=0;\r
+ //word segm=0;\r
+ if(mm->EMSVer<0x40)\r
if(length>0xfffflu)\r
{\r
printf("File is a fat bakapee\n");\r
- segm=(length%0xfffflu)-1;\r
- fat=segm*0xfffflu;\r
- length-=fat;\r
-// printf("CA_FarRead doesn't support 64K reads yet!\n");\r
+ //segm=(length%0xfffflu)-1;\r
+ //fat=segm*0xfffflu;\r
+ //length-=fat;\r
+ printf("CA_FarRead doesn't support 64K reads yet!\n");\r
+ return 0;\r
}\r
\r
- if(!fat&&!segm)\r
- {*/\r
+ //if(!fat&&!segm)\r
+ //{\r
__asm {\r
push ds\r
mov bx,[handle]\r
}\r
#endif\r
return flag;\r
- //}else return 0;\r
}\r
\r
\r
boolean CA_ReadFile(char *filename, memptr *ptr, mminfo_t *mm)\r
{\r
int handle;\r
- dword size;\r
+ sdword size;\r
//long size;\r
\r
if((handle = open(filename,O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
\r
size = filelength(handle);\r
if(!CA_FarRead(handle,*ptr,size, mm))\r
+ {\r
+ close (handle);\r
+ return false;\r
+ }\r
+ close (handle);\r
+ return true;\r
+}\r
+\r
+\r
+/*\r
+==========================\r
+=\r
+= CA_WriteFile\r
+=\r
+= Writes a file from a memory buffer\r
+=\r
+==========================\r
+*/\r
+\r
+boolean CA_WriteFile (char *filename, void far *ptr, long length, mminfo_t *mm)\r
+{\r
+ int handle;\r
+ sdword size;\r
+ //long size;\r
+\r
+ handle = open(filename,O_CREAT | O_BINARY | O_WRONLY,\r
+ S_IREAD | S_IWRITE | S_IFREG);\r
+\r
+ if (handle == -1)\r
+ return false;\r
+\r
+ if (!CA_FarWrite (handle,ptr,length, mm))\r
{\r
close(handle);\r
return false;\r
boolean CA_LoadFile(char *filename, memptr *ptr, mminfo_t *mm, mminfotype *mmi)\r
{\r
int handle;\r
- dword size;\r
+ sdword size;\r
//long size;\r
\r
if((handle = open(filename,O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
=\r
======================\r
*/\r
-\r
+////++++ enable!\r
/*void CAL_SetupGrFile (void)\r
{\r
int handle;\r
void CA_Startup(global_game_variables_t *gvar)\r
{\r
#ifdef PROFILE\r
- unlink("profile.16");\r
- gvar->handle.profilehandle = open("profile.16", O_CREAT | O_WRONLY | O_TEXT);\r
+#ifdef __BORLANDC__\r
+ unlink("profile.16b");\r
+ gvar->handle.profilehandle = open("profile.16b", O_CREAT | O_WRONLY | O_TEXT);\r
#endif\r
+#ifdef __WATCOMC__\r
+ unlink("profile.16w");\r
+ gvar->handle.profilehandle = open("profile.16w", O_CREAT | O_WRONLY | O_TEXT);\r
+#endif\r
+#endif\r
+// unlink("debug0.16");\r
+// gvar->handle.showmemhandle = open("debug0.16", O_CREAT | O_WRONLY | O_TEXT);\r
/*++++\r
// MDM begin - (GAMERS EDGE)\r
//\r
#ifdef PROFILE\r
close(gvar->handle.profilehandle);\r
#endif\r
+// close(gvar->handle.showmemhandle);\r
/*++++\r
close(maphandle);\r
close(grhandle);\r
byte far *source;\r
int next;\r
\r
- grneeded[chunk] |= ca_levelbit; // make sure it doesn't get removed\r
+ gvar->video.grneeded[chunk] |= ca_levelbit; // make sure it doesn't get removed\r
if (grsegs[chunk])\r
{\r
MM_SetPurge (&grsegs[chunk],0);\r
=\r
======================\r
*/\r
-/*\r
-void CA_ClearMarks (void)\r
+void CA_ClearMarks (global_game_variables_t *gvar)\r
{\r
int i;\r
\r
for (i=0;i<NUMCHUNKS;i++)\r
- grneeded[i]&=~ca_levelbit;\r
+ gvar->video.grneeded[i]&=~gvar->ca.ca_levelbit;\r
}\r
-*/\r
\r
//===========================================================================\r
\r
=\r
======================\r
*/\r
-/*\r
-void CA_ClearAllMarks (void)\r
+void CA_ClearAllMarks (global_game_variables_t *gvar)\r
{\r
- _fmemset (grneeded,0,sizeof(grneeded));\r
- ca_levelbit = 1;\r
- ca_levelnum = 0;\r
+ _fmemset (gvar->video.grneeded,0,sizeof(gvar->video.grneeded));\r
+ gvar->ca.ca_levelbit = 1;\r
+ gvar->ca.ca_levelnum = 0;\r
}\r
-*/\r
\r
//===========================================================================\r
\r
======================\r
*/\r
/*++++\r
-void CA_FreeGraphics (void)\r
+void CA_SetGrPurge (void)\r
{\r
- int i;\r
+ int i;\r
+\r
+//\r
+// free graphics\r
+//\r
+ CA_ClearMarks ();\r
\r
for (i=0;i<NUMCHUNKS;i++)\r
if (grsegs[i])\r
// go through and make everything not needed purgable\r
//\r
for (i=0;i<NUMCHUNKS;i++)\r
- if (grneeded[i]&ca_levelbit)\r
+ if (gvar->video.grneeded[i]&ca_levelbit)\r
{\r
if (grsegs[i]) // its allready in memory, make\r
MM_SetPurge(&grsegs[i],0); // sure it stays there!\r
bufferstart = bufferend = 0; // nothing good in buffer now\r
\r
for (i=0;i<NUMCHUNKS;i++)\r
- if ( (grneeded[i]&ca_levelbit) && !grsegs[i])\r
+ if ( (gvar->video.grneeded[i]&ca_levelbit) && !grsegs[i])\r
{\r
//\r
// update thermometer\r
while ( next < NUMCHUNKS )\r
{\r
while (next < NUMCHUNKS &&\r
- !(grneeded[next]&ca_levelbit && !grsegs[next]))\r
+ !(gvar->video.grneeded[next]&ca_levelbit && !grsegs[next]))\r
next++;\r
if (next == NUMCHUNKS)\r
continue;\r