]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_tdef.h
p16 is being worked on a bunch by me wwww [16_ca needs huge amounts of work and I...
[16.git] / src / lib / 16_tdef.h
index 93a0d3e0271e222fd24a088c7966a8d98a8bc81f..341ada31e809f6669635243f4f045fb909bfc04a 100755 (executable)
@@ -365,11 +365,22 @@ typedef struct
        word    quadwh;                 //preproccessed quad size of tilewidth and tileheight\r
 } tile_dimention_t;\r
 \r
+#define MAXSCROLLEDGES 6\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
        unsigned int offscreen_ofs;\r
        unsigned int pattern_ofs;\r
        unsigned        bufferofs,      ylookup[MAXSCANLINES], linewidth,displayofs;\r
+       pan_t           pan;\r
 } ofs_t;       //unfinished\r
 \r
 typedef struct\r
@@ -385,10 +396,9 @@ typedef struct
 \r
 typedef struct\r
 {\r
-       boolean VL_Started;\r
+       boolean VL_Started,VL_Initiated;\r
        char old_mode;          //old video mode before game!\r
        byte palette[PALSIZE], dpal[PALSIZE];   //palette array\r
-       byte            far     palette1[256][3],far palette2[256][3];\r
        page_t page[MAXPAGE];   //can be used as a pointer to root page[0]\r
        word vmem_remain;       //remaining video memory\r
        byte num_of_pages;      //number of actual pages\r
@@ -408,6 +418,7 @@ typedef struct
        boolean screenfaded;\r
        word            bordercolor;\r
        boolean fastpalette;\r
+       byte            far     palette1[256][3],far palette2[256][3];\r
 } video_t;\r
 \r
 //from scroll16\r
@@ -419,6 +430,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,8 +455,8 @@ typedef struct
 //from 16_mm\r
 //==========================================================================\r
 \r
-#define MAXBLOCKS              1024\r
-#define MAXUMBS                12\r
+#define MAXBLOCKS              1024//kd=1300 wolf3d=700 cata=600\r
+//----#define MAXUMBS          12\r
 \r
 typedef struct mmblockstruct\r
 {\r
@@ -464,7 +476,6 @@ typedef struct
 \r
 typedef struct\r
 {\r
-       memptr bufferseg;\r
        boolean         mmstarted, bombonerror, mmerror;\r
        void far        *farheap;\r
 #ifdef __BORLANDC__\r
@@ -473,11 +484,12 @@ typedef struct
 #ifdef __WATCOMC__\r
        void __near     *nearheap;\r
 #endif\r
-       unsigned int            EMSVer;\r
-       word numUMBs,UMBbase[MAXUMBS];\r
-       word                    totalEMSpages, freeEMSpages, EMSpagesmapped, EMSHandle, EMSPageFrame;\r
-       //dword numUMBs,UMBbase[MAXUMBS];\r
+//---- unsigned int            EMSVer;\r
+//---- word numUMBs,UMBbase[MAXUMBS];\r
+//---- word                    totalEMSpages, freeEMSpages, EMSpagesmapped, EMSHandle, EMSPageFrame;\r
+//---- dword   numUMBs,UMBbase[MAXUMBS];\r
        mmblocktype     far mmblocks[MAXBLOCKS],far *mmhead,far *mmfree,far *mmrover,far *mmnew;\r
+       memptr  bufferseg;      //Allocates bufferseg misc buffer\r
 } mminfo_t;\r
 \r
 //==========================================================================\r
@@ -594,6 +606,28 @@ typedef struct
 \r
 //==========================================================================\r
 \r
+//for 16_sd\r
+//==========================================================================\r
+#pragma pack(push,1)\r
+typedef struct imf_entry\r
+{\r
+       byte            reg,data;\r
+       word            delay;\r
+} imf_entry_t;\r
+#pragma pack(pop)\r
+\r
+typedef struct\r
+{\r
+       volatile unsigned long irq0_ticks;//=0;\r
+       volatile unsigned int irq0_cnt,irq0_add,irq0_max;//=0;\r
+       imf_entry_t*    imf_music;//=NULL;\r
+       imf_entry_t*    imf_play_ptr;//=NULL;\r
+       imf_entry_t*    imf_music_end;//=NULL;\r
+       word            imf_delay_countdown;//=0;\r
+} sd_t;\r
+\r
+//==========================================================================\r
+\r
 //from 16_ca\r
 //==========================================================================\r
 \r
@@ -621,9 +655,9 @@ typedef struct
 \r
 typedef struct\r
 {\r
-       int                     maphandle[4];           // handle to MAPTEMP / GAMEMAPS\r
-       int                     grhandle[4];            // handle to EGAGRAPH\r
-       int                     audiohandle[4]; // handle to AUDIOT / AUDIO\r
+       int                     maphandle;              // handle to MAPTEMP / GAMEMAPS\r
+       int                     grhandle;               // handle to EGAGRAPH\r
+       int                     audiohandle;    // handle to AUDIOT / AUDIO\r
 } ca_handle_t;\r
 /*\r
 16/wf3d8086/id_ca.c:   grstarts = (long _seg *)FP_SEG(&EGAhead);\r
@@ -649,8 +683,9 @@ typedef struct      //TODO: USE THIS!!!!
        word            _seg    *grstarts;      // array of offsets in egagraph, -1 for sparse//long\r
        word            _seg    *audiostarts;   // array of offsets in audio / audiot//long\r
 \r
-       huffnode huffnode;\r
+       huffnode        huffnode;\r
 \r
+       sd_t            sd;\r
        //TODO: extend! and learn from keen/wolf/catacomb's code wwww\r
        memptr  spribuff;\r
 } ca_t;\r