]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_tdef.h
XCROLL IS MYSTERIOUSLY NOT WORKING
[16.git] / src / lib / 16_tdef.h
index 418750fbf1ba0945311bd5f22e2d71eaf72ef086..f4b9d094553fde03019ab16c451c78c848285be5 100755 (executable)
 \r
 #define MAXPAGE 4\r
 \r
+#define BDOFSCONV (unsigned __near)\r
+#define BOFS page[1].data\r
+#define DOFS page[0].data\r
+\r
+#define CONFIGNAME "config.16"\r
+\r
 /*\r
  * typedefs of the game variables!\r
  */\r
@@ -78,6 +84,8 @@ typedef struct vrs_container{
        };\r
        // Array of corresponding vrl line offsets\r
        vrl1_vgax_offset_t **vrl_line_offsets;\r
+       //sprite buffer\r
+       byte far _seg *spribuff;\r
 } vrs_container_t;\r
 \r
 typedef struct vrl_container{\r
@@ -90,6 +98,8 @@ typedef struct vrl_container{
        };\r
        // Pointer to a corresponding vrl line offsets struct\r
        vrl1_vgax_offset_t *line_offsets;\r
+       //sprite buffer\r
+       byte far _seg *spribuff;\r
 } vrl_container_t;\r
 \r
 typedef struct sprite\r
@@ -354,9 +364,34 @@ typedef struct
 } kurokku_t;\r
 \r
 //===================================//\r
-#define PALSIZE        768\r
-#define NUMCHUNKS      416     //keen\r
-#define MAXSCANLINES   240                     // size of ylookup table\r
+#define PALSIZE                        768     //vga\r
+#define NUMCHUNKS              416     //keen\r
+//#define MAXSCANLINES 240     // size of ylookup table\r
+\r
+#define MAXSHIFTS              4\r
+#define STARTSPRITES   0       //temp\r
+\r
+typedef struct\r
+{\r
+       int     width,\r
+               height,\r
+               orgx,orgy,\r
+               xl,yl,xh,yh,\r
+               shifts;\r
+} spritetabletype;\r
+\r
+typedef        struct\r
+{\r
+       unsigned        sourceoffset[MAXSHIFTS];\r
+       unsigned        planesize[MAXSHIFTS];\r
+       unsigned        width[MAXSHIFTS];\r
+       byte            data[];\r
+} spritetype;          // the memptr for each sprite points to this\r
+\r
+typedef struct\r
+{\r
+       int width,height;\r
+} pictabletype;\r
 \r
 //video\r
 typedef struct\r
@@ -365,11 +400,24 @@ typedef struct
        word    quadwh;                 //preproccessed quad size of tilewidth and tileheight\r
 } tile_dimention_t;\r
 \r
+#define MAXSCROLLEDGES 2\r
 typedef struct\r
 {\r
+       unsigned        panx,pany;              // panning adjustments inside port in pixels\r
+       unsigned        pansx,pansy;\r
+       unsigned        panadjust;              // panx/pany adjusted by screen resolution\r
+       int             hscrollblocks,vscrollblocks;\r
+       int             hscrolledge[MAXSCROLLEDGES],vscrolledge[MAXSCROLLEDGES];\r
+} pan_t;\r
+\r
+typedef struct\r
+{\r
+//---- ylookup[MAXSCANLINES],\r
        unsigned int offscreen_ofs;\r
        unsigned int pattern_ofs;\r
-       unsigned        bufferofs,      ylookup[MAXSCANLINES], linewidth,displayofs;\r
+//+-+- unsigned        bufferofs,linewidth,displayofs;\r
+       pan_t           pan;\r
+\r
 } ofs_t;       //unfinished\r
 \r
 typedef struct\r
@@ -387,6 +435,7 @@ typedef struct
 {\r
        boolean VL_Started,VL_Initiated;\r
        char old_mode;          //old video mode before game!\r
+       sword curr_mode;                //modex curent mode\r
        byte palette[PALSIZE], dpal[PALSIZE];   //palette array\r
        page_t page[MAXPAGE];   //can be used as a pointer to root page[0]\r
        word vmem_remain;       //remaining video memory\r
@@ -408,6 +457,10 @@ typedef struct
        word            bordercolor;\r
        boolean fastpalette;\r
        byte            far     palette1[256][3],far palette2[256][3];\r
+//???? pictabletype    _seg *pictable;\r
+       //keen/cata vars\r
+//     spritetabletype _seg *spritetable;\r
+//     unsigned        *shifttabletable[8];\r
 } video_t;\r
 \r
 //from scroll16\r
@@ -419,6 +472,7 @@ typedef struct
        int tx,ty; //appears to be the top left tile position on the viewable screen map\r
        word dxThresh,dyThresh; //Threshold for physical tile switch\r
        video_t *video; //pointer to game variables of the video\r
+       kurokku_t *kurokku;     //pointer to game variables of the kurokku\r
        nibble __near *p;       // pointer to video's render page num\r
        nibble __near *sp;      // pointer to video's show page num\r
        int dx, dy;     // draw row and col var\r
@@ -443,19 +497,23 @@ typedef struct
 //from 16_mm\r
 //==========================================================================\r
 \r
-#define MAXBLOCKS              1024//kd=1300 wolf3d=700 cata=600\r
-//----#define MAXUMBS          12\r
+#define MAXBLOCKS              1024            //kd=1300 wolf3d=700 cata=600\r
 \r
 typedef struct mmblockstruct\r
 {\r
-       word    start,length;\r
-       //word  start;  dword length;\r
-//++++ word    blob;   //for data larger than 64k\r
+       //word  start,length,           word    blob;   //for data larger than 64k\r
+       word    start;  dword length;\r
        unsigned        attributes;\r
        memptr          *useptr;        // pointer to the segment start\r
        struct mmblockstruct far *next;\r
 } mmblocktype;\r
 \r
+typedef struct mmshowmemoryinfo\r
+{\r
+       word x,y;\r
+       mmblocktype far *scan;\r
+} mmshowmemoryinfo_t;\r
+\r
 typedef struct\r
 {\r
        dword   nearheap,farheap,EMSmem,XMSmem,mainmem;\r
@@ -619,8 +677,31 @@ typedef struct
 //from 16_ca\r
 //==========================================================================\r
 \r
+#define NOMAPS\r
+#define NOGRAPHICS\r
+#define NOAUDIO\r
+\r
+//#define MAPHEADERLINKED\r
+//#define GRHEADERLINKED\r
+//#define AUDIOHEADERLINKED\r
+\r
 #define NUMMAPS                4//39\r
-#define NUMSNDCHUNKS           84\r
+#define NUMSNDCHUNKS           4//3\r
+//#define NUMPICS              4//132//wolf3d wl6\r
+\r
+#define STRUCTPIC      0\r
+#define CASVT          dword   //*start var type\r
+\r
+\r
+#define DATADIR                "data/"\r
+#define GDICTNAME      DATADIR"vgadict."\r
+#define GHEADNAME      DATADIR"vgahead."\r
+#define GFILENAME      DATADIR"vgagraph."\r
+\r
+\r
+#define MAPSEGBUF      mapsegs\r
+#define MAPSEGPTR      MAPSEGBUF[0]\r
+#define MAPSEGINLM     (gvar->ca.MAPSEGPTR)\r
 \r
 typedef struct\r
 {\r
@@ -637,9 +718,10 @@ typedef    struct
 \r
 typedef struct\r
 {\r
-       int             mapon, mapnum;\r
-       maptype         _seg    *mapheaderseg[NUMMAPS];\r
-} ca_mapinfo_t;\r
+       unsigned        RLEWtag;\r
+       long            headeroffsets[100];\r
+       byte            tileinfo[];\r
+} mapfiletype;\r
 \r
 typedef struct\r
 {\r
@@ -660,22 +742,35 @@ typedef struct    //TODO: USE THIS!!!!
 {\r
        byte    ca_levelbit,ca_levelnum;\r
        ca_handle_t             file;           //files to open\r
-       ca_mapinfo_t    camap;\r
 \r
        byte            _seg    *tinf;//?? where in the id engine is this used and what is it? --sparky4\r
+       int             mapon, mapnum;\r
+       maptype         _seg    *mapheaderseg[NUMMAPS];\r
        unsigned        _seg    *mapsegs[MAPPLANES];\r
        void            _seg    *grsegs[NUMCHUNKS];\r
        byte            far             grneeded[NUMCHUNKS];\r
        word            _seg *audiosegs[NUMSNDCHUNKS];//long\r
 \r
-       word            _seg    *grstarts;      // array of offsets in egagraph, -1 for sparse//long\r
-       word            _seg    *audiostarts;   // array of offsets in audio / audiot//long\r
+       CASVT           _seg    *grstarts;      // array of offsets in egagraph, -1 for sparse//long\r
+       CASVT           _seg    *audiostarts;   // array of offsets in audio / audiot//long\r
 \r
-       huffnode        huffnode;\r
+#ifdef GRHEADERLINKED\r
+       huffnode        *grhuffman;\r
+#else\r
+       huffnode        grhuffman[63];\r
+#endif\r
+\r
+#ifdef AUDIOHEADERLINKED\r
+       huffnode        *audiohuffman;\r
+#else\r
+       huffnode        audiohuffman[63];\r
+#endif\r
+\r
+       CASVT           chunkcomplen,chunkexplen;//long\r
 \r
        sd_t            sd;\r
        //TODO: extend! and learn from keen/wolf/catacomb's code wwww\r
-       memptr  spribuff;\r
+       memptr  spribuff;       //temp\r
 } ca_t;\r
 \r
 //==========================================================================\r
@@ -689,7 +784,10 @@ typedef struct {
        vidsw_t vsw;\r
 } sw_t;*/\r
 \r
-\r
+#ifdef __WATCOMC__\r
+extern char global_temp_status_text[512];\r
+extern char global_temp_status_text2[512];\r
+#endif\r
 \r
 typedef struct glob_game_vars\r
 {\r
@@ -703,11 +801,7 @@ typedef struct glob_game_vars
        player_t        player[MaxPlayers];     // player vars\r
        map_view_t      mv[4];\r
 //     sw_t            sw;\r
+       boolean DLStarted;\r
 } global_game_variables_t;\r
 \r
-#ifdef __WATCOMC__\r
-extern char global_temp_status_text[512];\r
-extern char global_temp_status_text2[512];\r
-#define EINVFMT EMFILE\r
-#endif\r
 #endif /* _TYPEDEFSTRUCT_H_ */\r