]> 4ch.mooo.com Git - 16.git/commitdiff
16_ca needs huge amounts of work and I should remember what needs to be done soon...
authorsparky4 <sparky4@cock.li>
Mon, 24 Apr 2017 14:01:27 +0000 (09:01 -0500)
committersparky4 <sparky4@cock.li>
Mon, 24 Apr 2017 14:01:27 +0000 (09:01 -0500)
src/16.c
src/lib/16_ca.c

index 7f22e1b6eafaeea9188a52557a52ba27e0114b6e..004d8ebfae51c196750b4b232cfd3c0e5c16e301 100755 (executable)
--- a/src/16.c
+++ b/src/16.c
@@ -54,6 +54,6 @@ main(int argc, char *argv[])
 \r
 //++++ DemoLoop();//to be defined in 16_tail\r
 \r
 \r
 //++++ DemoLoop();//to be defined in 16_tail\r
 \r
-//++++ Quit("Demo loop exited???");\r
+//++++ Quit(&gvar, "Demo loop exited???");\r
 \r
 }\r
 \r
 }\r
index 64c6674a9be661d57e6ca73a14fa5b8b116c13d9..ccab39ba8c97e10a7b11703e903d5522ac6f207e 100755 (executable)
@@ -36,7 +36,7 @@ loaded into the data segment
 #pragma warn -pro\r
 #pragma warn -use\r
 \r
 #pragma warn -pro\r
 #pragma warn -use\r
 \r
-//#define THREEBYTEGRSTARTS\r
+#define THREEBYTEGRSTARTS\r
 //https://github.com/open-watcom/open-watcom-v2/issues/279#issuecomment-244587566 for _seg\r
 //http://www.shikadi.net/moddingwiki/GameMaps_Format for info on the code\r
 /*\r
 //https://github.com/open-watcom/open-watcom-v2/issues/279#issuecomment-244587566 for _seg\r
 //http://www.shikadi.net/moddingwiki/GameMaps_Format for info on the code\r
 /*\r
@@ -121,9 +121,9 @@ huffnode    audiohuffman[255];
 int                    grhandle;               // handle to EGAGRAPH\r
 int                    maphandle;              // handle to MAPTEMP / GAMEMAPS\r
 int                    audiohandle;    // handle to AUDIOT / AUDIO\r
 int                    grhandle;               // handle to EGAGRAPH\r
 int                    maphandle;              // handle to MAPTEMP / GAMEMAPS\r
 int                    audiohandle;    // handle to AUDIOT / AUDIO\r
-\r
-long           c hunkcomplen,c hunkexplen;\r
-\r
+*/\r
+long           chunkcomplen,chunkexplen;\r
+/*\r
 SDMode         oldsoundmode;\r
 \r
 \r
 SDMode         oldsoundmode;\r
 \r
 \r
@@ -138,14 +138,14 @@ void      CAL_CarmackExpand (unsigned far *source, unsigned far *dest,
 #ifdef THREEBYTEGRSTARTS\r
 #define FILEPOSSIZE    3\r
 //#define      GRFILEPOS(c) (*(long far *)(((byte far *)grstarts)+(c)*3)&0xffffff)\r
 #ifdef THREEBYTEGRSTARTS\r
 #define FILEPOSSIZE    3\r
 //#define      GRFILEPOS(c) (*(long far *)(((byte far *)grstarts)+(c)*3)&0xffffff)\r
-long GRFILEPOS(int c, global_game_variables_t *gvar)\r
+CASVT GRFILEPOS(int c, global_game_variables_t *gvar)\r
 {\r
 {\r
-       long value;\r
+       CASVT value;\r
        int     offset;\r
 \r
        offset = c*3;\r
 \r
        int     offset;\r
 \r
        offset = c*3;\r
 \r
-       value = *(long far *)(((byte far *)gvar->ca.grstarts)+offset);\r
+       value = *(CASVT far *)(((byte far *)gvar->ca.grstarts)+offset);\r
 \r
        value &= 0x00ffffffl;\r
 \r
 \r
        value &= 0x00ffffffl;\r
 \r
@@ -156,7 +156,11 @@ long GRFILEPOS(int c, global_game_variables_t *gvar)
 };\r
 #else\r
 #define FILEPOSSIZE    4\r
 };\r
 #else\r
 #define FILEPOSSIZE    4\r
-#define        GRFILEPOS(c) (gvar->ca.grstarts[c])\r
+//#define      GRFILEPOS(c) (gvar->ca.grstarts[c])\r
+CASVT GRFILEPOS(int c, global_game_variables_t *gvar)\r
+{\r
+       return gvar->ca.grstarts[c];\r
+}\r
 #endif\r
 \r
 /*\r
 #endif\r
 \r
 /*\r
@@ -208,9 +212,9 @@ void CA_CloseDebug(global_game_variables_t *gvar)
 \r
 void CAL_GetGrChunkLength (int chunk,global_game_variables_t *gvar)\r
 {\r
 \r
 void CAL_GetGrChunkLength (int chunk,global_game_variables_t *gvar)\r
 {\r
-       lseek(gvar->ca.file.grhandle,GRFILEPOS(chunk),SEEK_SET);\r
+       lseek(gvar->ca.file.grhandle,GRFILEPOS(chunk,gvar),SEEK_SET);\r
        read(gvar->ca.file.grhandle,&gvar->ca.chunkexplen,sizeof(gvar->ca.chunkexplen));\r
        read(gvar->ca.file.grhandle,&gvar->ca.chunkexplen,sizeof(gvar->ca.chunkexplen));\r
-       gvar->ca.chunkcomplen = GRFILEPOS(chunk+1)-GRFILEPOS(chunk)-4;\r
+       gvar->ca.chunkcomplen = GRFILEPOS(chunk+1,gvar)-GRFILEPOS(chunk,gvar)-4;\r
 }\r
 \r
 \r
 }\r
 \r
 \r
@@ -1104,7 +1108,10 @@ void CAL_SetupGrFile (global_game_variables_t *gvar)
 #if NUMPICS>0\r
        MM_GetPtr(MEMPTRCONV gvar->video.pictable,NUMPICS*sizeof(pictabletype),gvar);\r
        CAL_GetGrChunkLength(STRUCTPIC,gvar);           // position file pointer\r
 #if NUMPICS>0\r
        MM_GetPtr(MEMPTRCONV gvar->video.pictable,NUMPICS*sizeof(pictabletype),gvar);\r
        CAL_GetGrChunkLength(STRUCTPIC,gvar);           // position file pointer\r
-       MM_GetPtr(&compseg,gvar->ca.chunkcomplen, gvar);\r
+       printf("CAL_SetupGrFile:\n");\r
+       printf("        gvar->ca.chunkcomplen size is %lu\n", gvar->ca.chunkcomplen);\r
+       MM_GetPtr(&compseg,gvar->ca.chunkcomplen,gvar);\r
+       IN_Ack(gvar);\r
        CA_FarRead (gvar->ca.file.grhandle,compseg,gvar->ca.chunkcomplen,gvar);\r
        CAL_HuffExpand (compseg, (byte far *)gvar->video.pictable,NUMPICS*sizeof(pictabletype),gvar->ca.grhuffman);\r
        MM_FreePtr(&compseg,gvar);\r
        CA_FarRead (gvar->ca.file.grhandle,compseg,gvar->ca.chunkcomplen,gvar);\r
        CAL_HuffExpand (compseg, (byte far *)gvar->video.pictable,NUMPICS*sizeof(pictabletype),gvar->ca.grhuffman);\r
        MM_FreePtr(&compseg,gvar);\r
@@ -1175,11 +1182,11 @@ void CAL_SetupMapFile (global_game_variables_t *gvar)
 /*#ifdef MAPHEADERLINKED\r
        if ((maphandle = open("GAMEMAPS.16"ENSION,\r
                 O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
 /*#ifdef MAPHEADERLINKED\r
        if ((maphandle = open("GAMEMAPS.16"ENSION,\r
                 O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
-               Quit ("Can't open GAMEMAPS.16"ENSION"!");\r
+               Quit (gvar, "Can't open GAMEMAPS.16"ENSION"!");\r
 #else\r
        if ((maphandle = open("MAPTEMP.16"ENSION,\r
                 O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
 #else\r
        if ((maphandle = open("MAPTEMP.16"ENSION,\r
                 O_RDONLY | O_BINARY, S_IREAD)) == -1)\r
-               Quit ("Can't open MAPTEMP.16"ENSION"!");\r
+               Quit (gvar, "Can't open MAPTEMP.16"ENSION"!");\r
 #endif*/\r
 }\r
 \r
 #endif*/\r
 }\r
 \r
@@ -1799,15 +1806,15 @@ void CAL_ReadGrChunk (int chunk)
 // load the chunk into a buffer, either the miscbuffer if it fits, or allocate\r
 // a larger buffer\r
 //\r
 // load the chunk into a buffer, either the miscbuffer if it fits, or allocate\r
 // a larger buffer\r
 //\r
-       pos = GRFILEPOS(chunk);\r
+       pos = GRFILEPOS(chunk,gvar);\r
        if (pos<0)                                                      // $FFFFFFFF start is a sparse tile\r
          return;\r
 \r
        next = chunk +1;\r
        if (pos<0)                                                      // $FFFFFFFF start is a sparse tile\r
          return;\r
 \r
        next = chunk +1;\r
-       while (GRFILEPOS(next) == -1)           // skip past any sparse tiles\r
+       while (GRFILEPOS(next,gvar) == -1)              // skip past any sparse tiles\r
                next++;\r
 \r
                next++;\r
 \r
-       compressed = GRFILEPOS(next)-pos;\r
+       compressed = GRFILEPOS(next,gvar)-pos;\r
 \r
        lseek(gvar->ca.file.grhandle,pos,SEEK_SET);\r
 \r
 \r
        lseek(gvar->ca.file.grhandle,pos,SEEK_SET);\r
 \r
@@ -1867,7 +1874,7 @@ void CA_CacheGrChunk (int chunk)
 // load the chunk into a buffer, either the miscbuffer if it fits, or allocate\r
 // a larger buffer\r
 //\r
 // load the chunk into a buffer, either the miscbuffer if it fits, or allocate\r
 // a larger buffer\r
 //\r
-       pos = GRFILEPOS(chunk);\r
+       pos = GRFILEPOS(chunk,gvar);\r
        if (pos<0)                                                      // $FFFFFFFF start is a sparse tile\r
          return;\r
 \r
        if (pos<0)                                                      // $FFFFFFFF start is a sparse tile\r
          return;\r
 \r
@@ -1875,7 +1882,7 @@ void CA_CacheGrChunk (int chunk)
        while (GRFILEPOS(next) == -1)           // skip past any sparse tiles\r
                next++;\r
 \r
        while (GRFILEPOS(next) == -1)           // skip past any sparse tiles\r
                next++;\r
 \r
-       compressed = GRFILEPOS(next)-pos;\r
+       compressed = GRFILEPOS(next,gvar)-pos;\r
 \r
        lseek(gvar->ca.file.grhandle,pos,SEEK_SET);\r
 \r
 \r
        lseek(gvar->ca.file.grhandle,pos,SEEK_SET);\r
 \r
@@ -2354,7 +2361,7 @@ void CAL_CacheMarks (char *title, global_game_variables_t *gvar)
                        if (dialog && updatecachebox)\r
                                updatecachebox ();\r
 \r
                        if (dialog && updatecachebox)\r
                                updatecachebox ();\r
 \r
-                       pos = GRFILEPOS(i);\r
+                       pos = GRFILEPOS(i,gvar);\r
                        if (pos<0)\r
                                continue;\r
 \r
                        if (pos<0)\r
                                continue;\r
 \r
@@ -2362,7 +2369,7 @@ void CAL_CacheMarks (char *title, global_game_variables_t *gvar)
                        while (GRFILEPOS(next) == -1)           // skip past any sparse tiles\r
                                next++;\r
 \r
                        while (GRFILEPOS(next) == -1)           // skip past any sparse tiles\r
                                next++;\r
 \r
-                       compressed = GRFILEPOS(next)-pos;\r
+                       compressed = GRFILEPOS(next,gvar)-pos;\r
                        endpos = pos+compressed;\r
 \r
                        if (compressed<=BUFFERSIZE)\r
                        endpos = pos+compressed;\r
 \r
                        if (compressed<=BUFFERSIZE)\r
@@ -2385,10 +2392,10 @@ void CAL_CacheMarks (char *title, global_game_variables_t *gvar)
                                                if (next == NUMCHUNKS)\r
                                                        continue;\r
 \r
                                                if (next == NUMCHUNKS)\r
                                                        continue;\r
 \r
-                                               nextpos = GRFILEPOS(next);\r
-                                               while (GRFILEPOS(++next) == -1) // skip past any sparse tiles\r
+                                               nextpos = GRFILEPOS(next,gvar);\r
+                                               while (GRFILEPOS(++next,gvar) == -1)    // skip past any sparse tiles\r
                                                        ;\r
                                                        ;\r
-                                               nextendpos = GRFILEPOS(next);\r
+                                               nextendpos = GRFILEPOS(next,gvar);\r
                                                if (nextpos - endpos <= MAXEMPTYREAD\r
                                                && nextendpos-pos <= BUFFERSIZE)\r
                                                        endpos = nextendpos;\r
                                                if (nextpos - endpos <= MAXEMPTYREAD\r
                                                && nextendpos-pos <= BUFFERSIZE)\r
                                                        endpos = nextendpos;\r