From: sparky4 Date: Tue, 16 May 2017 00:04:29 +0000 (-0500) Subject: xcroll fuckings please ignore and go to e9a094cdce9001737f17d3961f49f27272dff4e4 X-Git-Url: http://4ch.mooo.com/gitweb/?p=16.git;a=commitdiff_plain;h=f7eca98a1d4192cacd2cd3201a1e4eccbdc98b4d xcroll fuckings please ignore and go to e9a094cdce9001737f17d3961f49f27272dff4e4 --- diff --git a/makefile b/makefile index 19d47e52..bb06aa42 100755 --- a/makefile +++ b/makefile @@ -119,7 +119,7 @@ UPXQ=-qqq # # compile flags # -S_FLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k40960#32768#24576 +S_FLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k32768#24576 Z_FLAGS=-zk0 -zc -zm#### -zp4 -ei O_FLAGS=-opnr -oe=24 -oil+ -outback -ohm T_FLAGS=-bt=dos -wx -m$(MEMORYMODE) -0 -fpi87 -d1 -fo=.$(OBJ)## -e=65536 diff --git a/src/lib/16_ca.c b/src/lib/16_ca.c old mode 100755 new mode 100644 index ce406dd5..4a039203 --- a/src/lib/16_ca.c +++ b/src/lib/16_ca.c @@ -163,8 +163,6 @@ CASVT GRFILEPOS(int c, global_game_variables_t *gvar) } #endif -#define EXTENSION "hb1" - /* ============================================================================= @@ -1088,23 +1086,23 @@ void CAL_SetupGrFile (global_game_variables_t *gvar) CAL_GetGrChunkLength(STRUCTPIC,gvar); // position file pointer printf("CAL_SetupGrFile:\n"); printf(" gvar->ca.chunkcomplen size is %lu\n", gvar->ca.chunkcomplen); - MM_GetPtr(MEMPTRANDPERCONV compseg,gvar->ca.chunkcomplen,gvar); IN_Ack(gvar); + MM_GetPtr(&compseg,gvar->ca.chunkcomplen,gvar); + IN_Ack(gvar); CA_FarRead (gvar->ca.file.grhandle,compseg,gvar->ca.chunkcomplen,gvar); CAL_HuffExpand (compseg, (byte far *)gvar->video.pictable,NUMPICS*sizeof(pictabletype),gvar->ca.grhuffman); - MM_FreePtr(MEMPTRANDPERCONV compseg,gvar); + MM_FreePtr(&compseg,gvar); #endif -#if 0 - //NUMPICM>0 +#if NUMPICM>0 MM_GetPtr(MEMPTRCONV picmtable,NUMPICM*sizeof(pictabletype)); CAL_GetGrChunkLength(STRUCTPICM); // position file pointer MM_GetPtr(&compseg,gvar->ca.chunkcomplen); CA_FarRead (gvar->ca.file.grhandle,compseg,gvar->ca.chunkcomplen); CAL_HuffExpand (compseg, (byte far *)picmtable,NUMPICS*sizeof(pictabletype),gvar->ca.grhuffman); MM_FreePtr(&compseg); -//#endif +#endif -//#if NUMSPRITES>0 +#if NUMSPRITES>0 MM_GetPtr(MEMPTRCONV spritetable,NUMSPRITES*sizeof(spritetabletype)); CAL_GetGrChunkLength(STRUCTSPRITE); // position file pointer MM_GetPtr(&compseg,gvar->ca.chunkcomplen); @@ -1144,7 +1142,7 @@ void CAL_SetupMapFile (global_game_variables_t *gvar) MM_GetPtr (MEMPTRCONV gvar->ca.tinf,length,gvar); CA_FarRead(handle, gvar->ca.tinf, length,gvar); close(handle); -#else +//#else gvar->ca.tinf = (byte _seg *)FP_SEG(&maphead); @@ -1261,7 +1259,7 @@ void CA_Startup(global_game_variables_t *gvar) CAL_SetupMapFile (gvar); #endif - gvar->ca.mapon = -1; + gvar->ca.camap.mapon = -1; gvar->ca.ca_levelbit = 1; gvar->ca.ca_levelnum = 0; @@ -1895,7 +1893,7 @@ void CA_CacheGrChunk (int chunk) = ====================== */ - +/*++++ segments! void CA_CacheMap (global_game_variables_t *gvar) { long pos,compressed; @@ -1912,43 +1910,33 @@ void CA_CacheMap (global_game_variables_t *gvar) // // free up memory from last map // - if (gvar->ca.mapon>-1 && gvar->ca.mapheaderseg[gvar->ca.mapon]) - MM_SetPurge ((MEMPTRCONV gvar->ca.mapheaderseg[(gvar->ca.mapon)]), 3, gvar); + 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.mapsegs[plane]) - MM_FreePtr (MEMPTRCONV gvar->ca.mapsegs[plane], gvar); + if (gvar->ca.camap.mapsegs[plane]) + MM_FreePtr ((memptr)gvar->ca.camap.mapsegs[plane], gvar); - gvar->ca.mapon = gvar->ca.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.mapheaderseg[gvar->ca.mapnum]) - { - pos = ((mapfiletype _seg *)gvar->ca.tinf)->headeroffsets[gvar->ca.mapnum]; - if (pos<0) // $FFFFFFFF start is a sparse map - Quit (gvar, "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(MEMPTRCONV gvar->ca.mapheaderseg[gvar->ca.mapnum],sizeof(maptype), gvar); - lseek(gvar->ca.file.maphandle,pos,SEEK_SET); -#ifdef MAPHEADERLINKED -//#if BUFFERSIZE < sizeof(maptype) -//The general buffer size is too small! -//#endif - // - // load in, then unhuffman to the destination - // - CA_FarRead (gvar->ca.file.maphandle,gvar->mm.bufferseg,((mapfiletype _seg *)gvar->ca.tinf)->headersize[gvar->ca.mapnum], gvar); - CAL_HuffExpand ((byte huge *)bufferseg, - (byte huge *)gvar->ca.mapheaderseg[gvar->ca.mapnum],sizeof(maptype),maphuffman, gvar); -#else - CA_FarRead (gvar->ca.file.maphandle,(memptr)gvar->ca.mapheaderseg[gvar->ca.mapnum],sizeof(maptype), gvar); -#endif - } - else - MM_SetPurge (MEMPTRCONV gvar->ca.mapheaderseg[gvar->ca.mapnum], 0, gvar); +// MM_GetPtr(MEMPTRCONV gvar->ca.camapheaderseg[mapnum],sizeof(maptype)); +// lseek(maphandle,pos,SEEK_SET); +// CA_FarRead (maphandle,(memptr)mapheaderseg[mapnum],sizeof(maptype)); +// } +// else +// MM_SetPurge (MEMPTRCONV mapheaderseg[mapnum], 0, &(gvar->mm)); // // load the planes in @@ -1956,30 +1944,30 @@ void CA_CacheMap (global_game_variables_t *gvar) // allways reloaded, never cached) // - size = gvar->ca.mapheaderseg[gvar->ca.mapnum]->width * gvar->ca.mapheaderseg[gvar->ca.mapnum]->height * 2; + size = mapheaderseg[mapnum]->width * mapheaderseg[mapnum]->height * 2; for (plane = 0; planeca.mapheaderseg[gvar->ca.mapnum]->planestart[plane]; - compressed = gvar->ca.mapheaderseg[gvar->ca.mapnum]->planelength[plane]; + //pos = mapheaderseg[mapnum]->planestart[plane]; + //compressed = mapheaderseg[mapnum]->planelength[plane]; if (!compressed) continue; // the plane is not used in this game - dest = MEMPTRCONV gvar->ca.mapsegs[plane]; - MM_GetPtr(dest,size, gvar); + dest = MEMPTRCONV mapsegs[plane]; + MM_GetPtr(dest,size); - lseek(gvar->ca.file.maphandle,pos,SEEK_SET); + lseek(maphandle,pos,SEEK_SET); if (compressed<=BUFFERSIZE) - source = gvar->mm.bufferseg; + source = bufferseg; else { - MM_GetPtr(&bigbufferseg,compressed, gvar); - MM_SetLock (&bigbufferseg,true, gvar); + MM_GetPtr(&bigbufferseg,compressed); + MM_SetLock (&bigbufferseg,true); source = bigbufferseg; } - CA_FarRead(gvar->ca.file.maphandle,(byte far *)source,compressed, gvar); + CA_FarRead(maphandle,(byte far *)source,compressed); #ifdef MAPHEADERLINKED // // unhuffman, then unRLEW @@ -1989,7 +1977,7 @@ void CA_CacheMap (global_game_variables_t *gvar) // expanded = *source; source++; - MM_GetPtr (&buffer2seg,expanded, gvar); + MM_GetPtr (&buffer2seg,expanded); CAL_CarmackExpand (source, (unsigned far *)buffer2seg,expanded); CA_RLEWexpand (((unsigned far *)buffer2seg)+1,*dest,size, ((mapfiletype _seg *)tinf)->RLEWtag); @@ -2000,13 +1988,13 @@ void CA_CacheMap (global_game_variables_t *gvar) // unRLEW, skipping expanded length // CA_RLEWexpand (source+1, *dest,size, - ((mapfiletype _seg *)gvar->ca.tinf)->RLEWtag); + ((mapfiletype _seg *)tinf)->RLEWtag); #endif if (compressed>BUFFERSIZE) - MM_FreePtr(&bigbufferseg, gvar); + MM_FreePtr(&bigbufferseg); } -} +}//*/ //=========================================================================== @@ -2140,20 +2128,20 @@ void CA_SetAllPurge (global_game_variables_t *gvar) // // free map headers and map planes // - for (i=0;ica.mapheaderseg[i]) - MM_SetPurge (MEMPTRCONV gvar->ca.mapheaderseg[i],3, gvar); +// for (i=0;ica.camap.mapheaderseg[i]) +// MM_SetPurge (gvar->ca.camap.mapheaderseg[i],3, gvar); for (i=0;i<3;i++) if (gvar->ca.mapsegs[i]) - MM_FreePtr (MEMPTRCONV gvar->ca.mapsegs[i], gvar); + MM_FreePtr ((memptr *)&gvar->ca.mapsegs[i], gvar); // // free sounds // for (i=0;ica.audiosegs[i]) - MM_SetPurge (MEMPTRCONV gvar->ca.audiosegs[i],3, gvar); + MM_SetPurge ((memptr *)&gvar->ca.audiosegs[i],3, gvar); // // free graphics @@ -2284,9 +2272,9 @@ void CAL_DialogFinish (void) = CA_CacheMarks = ====================== -*/ +*//*++++ #define MAXEMPTYREAD 1024 -/*++++ segments + void CAL_CacheMarks (char *title, global_game_variables_t *gvar) { boolean dialog; @@ -2321,8 +2309,8 @@ void CAL_CacheMarks (char *title, global_game_variables_t *gvar) // MDM begin - (GAMERS EDGE) // -//???? if (!FindFile("EGAGRAPH.16",NULL,2)) -//???? Quit (gvar, "CA_CacheMarks(): Can't find graphics files."); +// if (!FindFile("EGAGRAPH.16",NULL,2)) +// Quit (gvar, "CA_CacheMarks(): Can't find graphics files."); // // MDM end @@ -2425,7 +2413,7 @@ void CAL_CacheMarks (char *title, global_game_variables_t *gvar) // if (dialog && finishcachebox) finishcachebox(); -}//*/ +}*/ void CA_CannotOpen(char *string, global_game_variables_t *gvar) { diff --git a/src/lib/16_map.c b/src/lib/16_map.c old mode 100755 new mode 100644 index 2d266df1..e598d36b --- a/src/lib/16_map.c +++ b/src/lib/16_map.c @@ -216,6 +216,7 @@ int newloadmap(char *mn, map_t *map) { //====== +#define MAPBUFINLM *(gvar->ca.mapsegs) int CA_loadmap(char *mn, map_t *map, global_game_variables_t *gvar) { jsmn_parser p; @@ -229,22 +230,20 @@ int CA_loadmap(char *mn, map_t *map, global_game_variables_t *gvar) jsmn_init(&p); file_s = filesize(fh); - CA_LoadFile(mn, MEMPTRCONV MAPSEGINLM, gvar); - tokcount = jsmn_parse(&p, (char const *)MAPSEGINLM, file_s, NULL, 0); + CA_LoadFile(mn, (memptr *)&MAPBUFINLM, gvar); + tokcount = jsmn_parse(&p, (char const *)MAPBUFINLM, file_s, NULL, 0); tok = malloc(tokcount*sizeof(jsmntok_t));//TODO: USE MM_ CA_ AND PM_ // printf("Allocated %d tokens", tokcount); jsmn_init(&p); - if((status = jsmn_parse(&p, (char const *)MAPSEGINLM, file_s, tok, tokcount)) < 0) + if((status = jsmn_parse(&p, (char const *)MAPBUFINLM, file_s, tok, tokcount)) < 0) { printf("Error: %d\n", status); return status; } else if(status != tokcount) { printf("Warning: used %d tok\n", status);} - extract_map((char const *)MAPSEGINLM, tok, tokcount, map); + extract_map((char const *)MAPBUFINLM, tok, tokcount, map); -// printf("freeing tok\n"); free(tok); //TODO: USE MM_ CA_ AND PM_ -// printf("fclose fh\n"); fclose(fh); //TODO: USE MM_ CA_ AND PM_ return 0; diff --git a/src/lib/16_tdef.h b/src/lib/16_tdef.h old mode 100755 new mode 100644 index 94fecd95..165b5fd2 --- a/src/lib/16_tdef.h +++ b/src/lib/16_tdef.h @@ -84,8 +84,6 @@ typedef struct vrs_container{ }; // Array of corresponding vrl line offsets vrl1_vgax_offset_t **vrl_line_offsets; - //sprite buffer - byte far _seg *spribuff; } vrs_container_t; typedef struct vrl_container{ @@ -98,8 +96,6 @@ typedef struct vrl_container{ }; // Pointer to a corresponding vrl line offsets struct vrl1_vgax_offset_t *line_offsets; - //sprite buffer - byte far _seg *spribuff; } vrl_container_t; typedef struct sprite @@ -366,7 +362,7 @@ typedef struct //===================================// #define PALSIZE 768 //vga #define NUMCHUNKS 416 //keen -//#define MAXSCANLINES 240 // size of ylookup table +#define MAXSCANLINES 240 // size of ylookup table #define MAXSHIFTS 4 #define STARTSPRITES 0 //temp @@ -400,7 +396,7 @@ typedef struct word quadwh; //preproccessed quad size of tilewidth and tileheight } tile_dimention_t; -#define MAXSCROLLEDGES 2 +#define MAXSCROLLEDGES 6 typedef struct { unsigned panx,pany; // panning adjustments inside port in pixels @@ -457,7 +453,7 @@ typedef struct word bordercolor; boolean fastpalette; byte far palette1[256][3],far palette2[256][3]; -//???? pictabletype _seg *pictable; + pictabletype _seg *pictable; //keen/cata vars // spritetabletype _seg *spritetable; // unsigned *shifttabletable[8]; @@ -497,7 +493,7 @@ typedef struct //from 16_mm //========================================================================== -#define MAXBLOCKS 600//800 //kd=1300 wolf3d=700 cata=600 +#define MAXBLOCKS 800//kd=1300 wolf3d=700 cata=600 typedef struct mmblockstruct { @@ -680,9 +676,9 @@ typedef struct #define NOGRAPHICS #define NOAUDIO -//#define MAPHEADERLINKED +#define MAPHEADERLINKED //#define GRHEADERLINKED -//#define AUDIOHEADERLINKED +#define AUDIOHEADERLINKED #define NUMMAPS 4//39 #define NUMSNDCHUNKS 4//3 @@ -696,12 +692,9 @@ typedef struct #define GDICTNAME DATADIR"vgadict." #define GHEADNAME DATADIR"vgahead." #define GFILENAME DATADIR"vgagraph." +#define EXTENSION "hb1" -#define MAPSEGBUF mapsegs -#define MAPSEGPTR MAPSEGBUF[0] -#define MAPSEGINLM (gvar->ca.MAPSEGPTR) - typedef struct { word bit0,bit1; // 0-255 is a character, > is a pointer to a node @@ -717,10 +710,9 @@ typedef struct typedef struct { - unsigned RLEWtag; - long headeroffsets[100]; - byte tileinfo[]; -} mapfiletype; + int mapon, mapnum; + maptype _seg *mapheaderseg[NUMMAPS]; +} ca_mapinfo_t; typedef struct { @@ -741,10 +733,9 @@ typedef struct //TODO: USE THIS!!!! { byte ca_levelbit,ca_levelnum; ca_handle_t file; //files to open + ca_mapinfo_t camap; byte _seg *tinf;//?? where in the id engine is this used and what is it? --sparky4 - int mapon, mapnum; - maptype _seg *mapheaderseg[NUMMAPS]; unsigned _seg *mapsegs[MAPPLANES]; void _seg *grsegs[NUMCHUNKS]; byte far grneeded[NUMCHUNKS]; @@ -756,19 +747,20 @@ typedef struct //TODO: USE THIS!!!! #ifdef GRHEADERLINKED huffnode *grhuffman; #else - huffnode grhuffman[63]; + huffnode grhuffman[255]; #endif #ifdef AUDIOHEADERLINKED huffnode *audiohuffman; #else - huffnode audiohuffman[63]; + huffnode audiohuffman[255]; #endif CASVT chunkcomplen,chunkexplen;//long sd_t sd; //TODO: extend! and learn from keen/wolf/catacomb's code wwww + memptr spribuff; } ca_t; //========================================================================== diff --git a/src/lib/16_vrs.c b/src/lib/16_vrs.c old mode 100755 new mode 100644 index fa1d96de..056366af --- a/src/lib/16_vrs.c +++ b/src/lib/16_vrs.c @@ -39,15 +39,15 @@ void VRS_OpenVRS(char *filename, entity_t *enti, boolean rlsw, global_game_varia switch(rlsw) { case 1: - CA_ReadFile(filename, MEMPTRCONV enti->spri.spritesheet.spribuff, gvar); + CA_ReadFile(filename, &gvar->ca.spribuff, gvar); break; case 0: - CA_LoadFile(filename, MEMPTRCONV enti->spri.spritesheet.spribuff, gvar); + CA_LoadFile(filename, &gvar->ca.spribuff, gvar); break; } // Insert sanity cheks later - enti->spri.spritesheet.buffer = enti->spri.spritesheet.spribuff; //TODO: merge these 2 vars into 1 + enti->spri.spritesheet.buffer = gvar->ca.spribuff; enti->spri.spritesheet.data_size = sizeof(enti->spri.spritesheet.buffer) - sizeof(struct vrl1_vgax_header); num_of_vrl = 0; vrl_id_iter = (uint16_t far *)(enti->spri.spritesheet.buffer + enti->spri.spritesheet.vrs_hdr->offset_table[VRS_HEADER_OFFSET_SPRITE_ID_LIST]); @@ -112,15 +112,15 @@ void VRS_OpenVRL(char *filename, entity_t *enti, boolean rlsw, global_game_varia switch(rlsw) { case 1: - CA_ReadFile(filename, &enti->spri.spritesheet.spribuff, gvar); + CA_ReadFile(filename, &gvar->ca.spribuff, gvar); break; case 0: - CA_LoadFile(filename, &enti->spri.spritesheet.spribuff, gvar); + CA_LoadFile(filename, &gvar->ca.spribuff, gvar); break; } // Insert sanity cheks later - enti->spri.sprite_vrl_cont.buffer = enti->spri.spritesheet.spribuff; + enti->spri.sprite_vrl_cont.buffer = gvar->ca.spribuff; enti->spri.sprite_vrl_cont.data_size = sizeof(enti->spri.spritesheet.buffer) - sizeof(struct vrl1_vgax_header); // Allocate memory for vrl line offsets table