X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_ca.c;h=dcdcaa1c3bc65b262a78fc6439bcd36eacc7f9ad;hb=d799ef823a8b57ba6c783ed323430254083158be;hp=61838010e59eee4de606050e7d5df7b6ef7f431a;hpb=52711700f92f02fe8976d2e035a04a4501842b9f;p=16.git diff --git a/src/lib/16_ca.c b/src/lib/16_ca.c index 61838010..dcdcaa1c 100755 --- a/src/lib/16_ca.c +++ b/src/lib/16_ca.c @@ -221,7 +221,7 @@ void CAL_GetGrChunkLength (int chunk) ========================== */ -boolean CA_FarRead(int handle, byte huge *dest, dword length, global_game_variables_t *gvar) +boolean CA_FarRead(int handle, byte far *dest, dword length, global_game_variables_t *gvar) { boolean flag=0; //dword fat=0; @@ -293,7 +293,7 @@ End: ========================== */ -boolean CA_FarWrite(int handle, byte huge *source, dword length, global_game_variables_t *gvar) +boolean CA_FarWrite(int handle, byte far *source, dword length, global_game_variables_t *gvar) { boolean flag=0; //dword fat=0; @@ -498,7 +498,7 @@ void CAL_OptimizeNodes(huffnode *table) ====================== */ -void CAL_HuffExpand (byte huge *source, byte huge *dest, +void CAL_HuffExpand (byte far *source, byte far *dest, long length,huffnode *hufftable) { // unsigned bit,byte,node,code; @@ -795,12 +795,12 @@ void CAL_CarmackExpand (unsigned far *source, unsigned far *dest, unsigned lengt ====================== */ -long CA_RLEWCompress (unsigned huge *source, long length, unsigned huge *dest, +long CA_RLEWCompress (unsigned far *source, long length, unsigned far *dest, unsigned rlewtag) { long complength; unsigned value,count,i; - unsigned huge *start,huge *end; + unsigned far *start,far *end; start = dest; @@ -852,11 +852,11 @@ long CA_RLEWCompress (unsigned huge *source, long length, unsigned huge *dest, ====================== */ -void CA_RLEWexpand (unsigned huge *source, unsigned huge *dest,long length, +void CA_RLEWexpand (unsigned far *source, unsigned far *dest,long length, unsigned rlewtag) { // unsigned value,count,i; - unsigned huge *end; + unsigned far *end; unsigned sourceseg,sourceoff,destseg,destoff,endseg,endoff; @@ -1065,7 +1065,7 @@ dinorm: CAL_GetGrChunkLength(STRUCTPIC); // position file pointer MM_GetPtr(&compseg,chunkcomplen); CA_FarRead (grhandle,compseg,chunkcomplen); - CAL_HuffExpand (compseg, (byte huge *)pictable,NUMPICS*sizeof(pictabletype),grhuffman); + CAL_HuffExpand (compseg, (byte far *)pictable,NUMPICS*sizeof(pictabletype),grhuffman); MM_FreePtr(&compseg); #endif @@ -1074,7 +1074,7 @@ dinorm: CAL_GetGrChunkLength(STRUCTPICM); // position file pointer MM_GetPtr(&compseg,chunkcomplen); CA_FarRead (grhandle,compseg,chunkcomplen); - CAL_HuffExpand (compseg, (byte huge *)picmtable,NUMPICS*sizeof(pictabletype),grhuffman); + CAL_HuffExpand (compseg, (byte far *)picmtable,NUMPICS*sizeof(pictabletype),grhuffman); MM_FreePtr(&compseg); #endif @@ -1083,7 +1083,7 @@ dinorm: CAL_GetGrChunkLength(STRUCTSPRITE); // position file pointer MM_GetPtr(&compseg,chunkcomplen); CA_FarRead (grhandle,compseg,chunkcomplen); - CAL_HuffExpand (compseg, (byte huge *)spritetable,NUMSPRITES*sizeof(spritetabletype),grhuffman); + CAL_HuffExpand (compseg, (byte far *)spritetable,NUMSPRITES*sizeof(spritetabletype),grhuffman); MM_FreePtr(&compseg); #endif @@ -1102,25 +1102,25 @@ dinorm: void CAL_SetupMapFile (global_game_variables_t *gvar) { -// int handle; -// long length; +/* int handle; + long length; // // load maphead.ext (offsets and tileinfo for map file) // -// #ifndef MAPHEADERLINKED -// if ((handle = open("MAPHEAD."EXT, -// O_RDONLY | O_BINARY, S_IREAD)) == -1) -// printf("Can't open MAPHEAD."EXT"!"); -// length = filelength(handle); -// MM_GetPtr (&(memptr)tinf,length); -// CA_FarRead(handle, tinf, length); -// close(handle); -// //#else -// -// tinf = (byte _seg *)FP_SEG(&maphead); -// -// #endif +#ifndef MAPHEADERLINKED + if ((handle = open("MAPHEAD."EXT, + O_RDONLY | O_BINARY, S_IREAD)) == -1) + printf("Can't open MAPHEAD."EXT"!"); + length = filelength(handle); + MM_GetPtr (&(memptr)tinf,length); + CA_FarRead(handle, tinf, length); + close(handle); +//#else + + tinf = (byte _seg *)FP_SEG(&maphead); + +#endif*/ // // open the data file @@ -1856,32 +1856,33 @@ void CA_CacheMap (global_game_variables_t *gvar) // // free up memory from last map // - if (gvar->ca.map.mapon>-1 && gvar->ca.map.mapheaderseg[gvar->ca.map.mapon]) - MM_SetPurge (&((memptr)gvar->ca.map.mapheaderseg[(gvar->ca.map.mapon)]), 3, &(gvar->mm)); + if (gvar->ca.camap.mapon>-1 && gvar->ca.camap.mapheaderseg[gvar->ca.camap.mapon]) + MM_SetPurge (((memptr)gvar->ca.camap.mapheaderseg[(gvar->ca.camap.mapon)]), 3, gvar); for (plane=0;planeca.map.mapsegs[plane]) - MM_FreePtr (&(memptr)gvar->ca.map.mapsegs[plane], &(gvar->mm)); + if (gvar->ca.camap.mapsegs[plane]) + MM_FreePtr ((memptr)gvar->ca.camap.mapsegs[plane], gvar); - gvar->ca.map.mapon = gvar->ca.map.mapnum; + gvar->ca.camap.mapon = gvar->ca.camap.mapnum; // // load map header // The header will be cached if it is still around // - if (!gvar->ca.map.mapheaderseg[gvar->ca.map.mapnum]) - { - //pos = ((mapfiletype _seg *)tinf)->headeroffsets[mapnum]; - pos = ((_seg *)gvar->ca.map.tinf)->headeroffsets[gvar->ca.map.mapnum]; - if (pos<0) // $FFFFFFFF start is a sparse map - printf("CA_CacheMap: Tried to load a non existent map!"); +// if (!gvar->ca.camap.mapheaderseg[gvar->ca.camap.mapnum]) +// { +// //pos = ((mapfiletype _seg *)tinf)->headeroffsets[mapnum]; +// //pos = ((_seg *)gvar->ca.camap.tinf)->headeroffsets[gvar->ca.camap.mapnum]; +// pos = ((memptr)gvar->ca.camap.tinf)->headeroffsets[gvar->ca.camap.mapnum]; +// if (pos<0) // $FFFFFFFF start is a sparse map +// printf("CA_CacheMap: Tried to load a non existent map!"); - MM_GetPtr(&(memptr)gvar->ca.mapheaderseg[mapnum],sizeof(maptype)); - lseek(maphandle,pos,SEEK_SET); - CA_FarRead (maphandle,(memptr)mapheaderseg[mapnum],sizeof(maptype)); - } - else - MM_SetPurge (&(memptr)mapheaderseg[mapnum], 0, &(gvar->mm)); +// MM_GetPtr(&(memptr)gvar->ca.camapheaderseg[mapnum],sizeof(maptype)); +// lseek(maphandle,pos,SEEK_SET); +// CA_FarRead (maphandle,(memptr)mapheaderseg[mapnum],sizeof(maptype)); +// } +// else +// MM_SetPurge (&(memptr)mapheaderseg[mapnum], 0, &(gvar->mm)); // // load the planes in @@ -1893,8 +1894,8 @@ void CA_CacheMap (global_game_variables_t *gvar) for (plane = 0; planeplanestart[plane]; - compressed = mapheaderseg[mapnum]->planelength[plane]; + //pos = mapheaderseg[mapnum]->planestart[plane]; + //compressed = mapheaderseg[mapnum]->planelength[plane]; if (!compressed) continue; // the plane is not used in this game