]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_ca.c
wwww yakuji wwww ca use to load maps w hmmm cachemap wwww
[16.git] / src / lib / 16_ca.c
index e2b6cef9a1ec70871a1e41eb800fb12d5170b745..6511ef176ab649739d61e14ed50b1645c4c27108 100755 (executable)
@@ -37,7 +37,7 @@ loaded into the data segment
 #pragma warn -use\r
 \r
 //#define THREEBYTEGRSTARTS\r
-\r
+//https://github.com/open-watcom/open-watcom-v2/issues/279#issuecomment-244587566 for _seg\r
 /*\r
 =============================================================================\r
 \r
@@ -1077,7 +1077,7 @@ asm       mov     ds,ax
 ======================\r
 */\r
 \r
-/*void CAL_SetupMapFile (void)\r
+void CAL_SetupMapFile (global_game_variables_t *gvar)\r
 {\r
        int handle;\r
        long length;\r
@@ -1085,33 +1085,39 @@ asm     mov     ds,ax
 //\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
-               Quit ("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
+//             Quit ("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
 //\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
-#else\r
-       if ((maphandle = open("MAPTEMP."EXT,\r
+//TODO: multiple files\r
+       if ((gvar->ca.file.maphandle[0] = open("data/test.map",\r
                 O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
-               Quit ("Can't open MAPTEMP."EXT"!");\r
-#endif\r
-}*/\r
+       {\r
+               printf("Can't open data/test.map!");\r
+       }\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
+// //#else\r
+//     if ((maphandle = open("MAPTEMP."EXT,\r
+//              O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
+//             Quit ("Can't open MAPTEMP."EXT"!");\r
+// #endif\r
+}\r
 \r
 //==========================================================================\r
 \r
@@ -1194,42 +1200,11 @@ void CA_Startup(global_game_variables_t *gvar)
        unlink("meminfo.16w");\r
        gvar->handle.showmemhandle = open("meminfo.16w", O_CREAT | O_WRONLY | O_TEXT);\r
 #endif\r
-/*     CAL_SetupMapFile ();\r
+/*\r
        CAL_SetupGrFile ();\r
        CAL_SetupAudioFile ();*/\r
-/*++++\r
-// MDM begin - (GAMERS EDGE)\r
-//\r
-       if(!FindFile("AUDIO."EXT,NULL,2))\r
-               Quit("CA_Startup(): Can't find audio files.");\r
-//\r
-// MDM end\r
 \r
-#ifndef NOAUDIO\r
-       CAL_SetupAudioFile();\r
-#endif\r
-\r
-// MDM begin - (GAMERS EDGE)\r
-//\r
-       if (!FindFile("GAMEMAPS."EXT,NULL,1))\r
-               Quit("CA_Startup(): Can't find level files.");\r
-//\r
-// MDM end\r
-\r
-#ifndef NOMAPS\r
-       CAL_SetupMapFile ();\r
-#endif\r
-\r
-// MDM begin - (GAMERS EDGE)\r
-//\r
-       if (!FindFile("EGAGRAPH."EXT,NULL,2))\r
-               Quit("CA_Startup(): Can't find graphics files.");\r
-//\r
-// MDM end\r
-\r
-#ifndef NOGRAPHICS\r
-       CAL_SetupGrFile ();\r
-#endif*/\r
+       CAL_SetupMapFile (gvar);\r
 \r
        gvar->ca.mapon = -1;\r
        gvar->ca.ca_levelbit = 1;\r
@@ -1259,8 +1234,9 @@ void CA_Shutdown(global_game_variables_t *gvar)
        close(gvar->handle.profilehandle);\r
 #endif\r
        close(gvar->handle.showmemhandle);\r
+\r
+       close(*(gvar->ca.file.maphandle));\r
 /*++++\r
-       close(maphandle);\r
        close(grhandle);\r
        close(audiohandle);*/\r
 }\r
@@ -1841,8 +1817,8 @@ void CA_CacheGrChunk (int chunk)
 =\r
 ======================\r
 */\r
-/*++++\r
-void CA_CacheMap (int mapnum)\r
+/*++++ fuckin segments!\r
+void CA_CacheMap (global_game_variables_t *gvar)\r
 {\r
        long    pos,compressed;\r
        int             plane;\r
@@ -1855,37 +1831,29 @@ void CA_CacheMap (int mapnum)
 #endif\r
 \r
 \r
-// MDM begin - (GAMERS EDGE)\r
-//\r
-       if (!FindFile("GAMEMAPS."EXT,NULL,1))\r
-               Quit("CA_CacheMap(): Can't find level files.");\r
-//\r
-// MDM end\r
-\r
-\r
 //\r
 // free up memory from last map\r
 //\r
-       if (mapon>-1 && mapheaderseg[mapon])\r
-               MM_SetPurge (&(memptr)mapheaderseg[mapon],3);\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);\r
        for (plane=0;plane<MAPPLANES;plane++)\r
-               if (mapsegs[plane])\r
-                       MM_FreePtr (&(memptr)mapsegs[plane]);\r
+               if (gvar->ca.map.mapsegs[plane])\r
+                       MM_FreePtr (&(memptr)gvar->ca.map.mapsegs[plane]);\r
 \r
-       mapon = mapnum;\r
+       gvar->ca.map.mapon = gvar->ca.map.mapnum;\r
 \r
 \r
 //\r
 // load map header\r
 // The header will be cached if it is still around\r
 //\r
-       if (!mapheaderseg[mapnum])\r
+       if (!gvar->ca.map.mapheaderseg[gvar->ca.map.mapnum])\r
        {\r
-               pos = ((mapfiletype     _seg *)tinf)->headeroffsets[mapnum];\r
+               pos = ((__segmement *)tinf)->headeroffsets[gvar->ca.mapnum];\r
                if (pos<0)                                              // $FFFFFFFF start is a sparse map\r
-                 Quit ("CA_CacheMap: Tried to load a non existent map!");\r
+                 printf("CA_CacheMap: Tried to load a non existent map!");\r
 \r
-               MM_GetPtr(&(memptr)mapheaderseg[mapnum],sizeof(maptype));\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