]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_tdef.h
wwww update spir.zip
[16.git] / src / lib / 16_tdef.h
index 4700625ef6ef33979c4d44b8939400e6c20763dc..5621be818b2ccc31088f20f719028ff966e8dce0 100755 (executable)
@@ -48,6 +48,22 @@ typedef struct {
        word offset;\r
 } bitmap_t;\r
 \r
+typedef struct {\r
+       byte far **data;\r
+       word ntiles;            // the number of tiles\r
+       word twidth;    // width of the tiles\r
+       word theight;   // height of the tiles\r
+       byte *palette;  // palette for the tile set\r
+} tileset_t;\r
+\r
+typedef struct {\r
+       byte far *plane[4];     // 4 planes of image data\r
+       word width;                     // width of the image (spread across 4 planes)\r
+       word height;            // height of the image (spread across 4 planes)\r
+       word pwidth;            // the number of bytes in each plane\r
+       byte *palette;\r
+} planar_buf_t;\r
+\r
 //from 16_sprit.h\r
 #ifdef __WATCOMC__\r
 typedef struct sprite\r
@@ -71,72 +87,81 @@ typedef struct sprite
 } sprite_t;\r
 #endif\r
 \r
-typedef struct {\r
-       //byte far **data;\r
-//#ifdef       __WATCOMC__\r
-       //sprite_t *spri;\r
-//#endif\r
-       bitmap_t far *data;     // actual tileset info\r
-//in the bitmap_t\r
-//     byte *palette;          // palette for the tile set\r
-       word ntiles;                    // the number of tiles\r
-       word twidth;            // width of the tiles\r
-       word theight;           // height of the tiles\r
-       byte    imgname[8];             // image filename of tileset\r
-} tileset_t;\r
+//newer structs\r
+typedef        struct\r
+{\r
+       int x; //entity exact position on the viewable map\r
+       int y; //entity exact position on the viewable map\r
+       int tx; //entity tile position on the viewable map\r
+       int ty; //entity tile position on the viewable map\r
+       int triggerx; //entity's trigger box tile position on the viewable map\r
+       int triggery; //entity's trigger box tile position on the viewable map\r
+//     int sheetsetx; //NOT USED YET! entity sprite sheet set on the image x\r
+//     int sheetsety; //NOT USED YET! entity sprite sheet set on the image y\r
+       nibble d;               //direction to render sprite!! wwww\r
+       nibble pred;    //prev. direction for animation changing\r
+       word dire;              //sprite in use\r
+       nibble q;               //loop variable for anumation and locking the playing to compleate the animation cycle to prevent issues with misalignment www\r
+       word speed;             //entity speed!\r
+       word spt;               //speed per tile\r
+#ifdef __WATCOMC__\r
+       sprite_t spri; // sprite used by entity\r
+#endif\r
+       sword hp; //hitpoints of the entity\r
+       nibble overdraww, overdrawh;    // how many pixels to "overdraw" so that moving sprites with edge pixels don't leave streaks.\r
+                                               // if the sprite's edge pixels are clear anyway, you can set this to 0.\r
+       nibble /*int*/ persist_aniframe;    // gonna be increased to 1 before being used, so 0 is ok for default\r
+} entity_t;\r
 \r
-//not currently using\r
-typedef struct {\r
-       byte far *plane[4];     // 4 planes of image data\r
-       word width;                     // width of the image (spread across 4 planes)\r
-       word height;            // height of the image (spread across 4 planes)\r
-       word pwidth;            // the number of bytes in each plane\r
-       byte *palette;\r
-} planar_buf_t;\r
+typedef        struct\r
+{\r
+       int x; //entity exact position on the viewable map\r
+       int y; //entity exact position on the viewable map\r
+       int tx; //entity tile position on the viewable map\r
+       int ty; //entity tile position on the viewable map\r
+\r
+#ifdef __WATCOMC__\r
+       sprite_t spri; // sprite used by entity\r
+#endif\r
+       sword hp; //hitpoints of the entity\r
+} static_map_entity_t;\r
 \r
-//tile properties\r
+//===========================================================================//\r
+\r
+//TODO: 16_mm and 16_ca must handle this\r
 typedef struct {\r
-       //bitmap_t far *btdata;         //old\r
-       tileset_t       tileset;                        //new\r
-       word tileHeight, tileWidth;\r
-       word rows, cols;\r
-} tiles_t;\r
+#ifdef __WATCOMC__\r
+       sprite_t *spri;                 // I will probibaly use this --sparky4\r
+#endif\r
+       word tileHeight, tileWidth;     //defined by mapfile\r
+       unsigned int rows, cols;\r
+       byte    imgname[8];             //image file of tileset (set to 8 because DOS ^^;)\r
+} tiles_t;     //seems to be the tileset properties\r
 \r
 //TODO: 16_mm and 16_ca must handle this\r
 //TODO: add variables from 16_ca\r
-#define MAPLAYERS 4\r
-//#define __NEWMAPTILEDATAVARS__\r
-\r
-#ifdef __NEWMAPTILEDATAVARS__\r
-#define MAPTILESPTR            layertile[0]\r
-#define MAPTILESPTK            layertile[k]\r
-#define MAPDATAPTR             layerdata[0]\r
-#define MAPDATAPTK             layerdata[k]\r
-#else\r
-#define MAPTILESPTR            tiles//layertile[0]\r
-#define MAPTILESPTK            tiles//layertile[k]\r
-#define MAPDATAPTR             data//layerdata[0]\r
-#define MAPDATAPTK             data//layerdata[k]\r
-#endif\r
+typedef struct {\r
+       byte    layername[8];\r
+       byte    *data;                  //TODO: 16_mm and 16_ca must handle this\r
+} mapl_t;      //map layer array type def\r
+\r
+#define MAP_LAYERS 3\r
 typedef struct {\r
        //long          planestart[3];\r
        //unsigned      planelength[3];\r
-#ifndef __NEWMAPTILEDATAVARS__\r
-       byte            *data;                  //TODO: 16_mm and 16_ca must handle this\r
-       tiles_t         *tiles;         //TODO: 16_mm and 16_ca must handle this\r
-#else\r
-       byte far        *layerdata[MAPLAYERS];  //mapindex for specific layer\r
-       tiles_t far     *layertile[MAPLAYERS];\r
-#endif\r
+       mapl_t layerdata[MAP_LAYERS];   // mapdata for multilayer (map index values for rendering which image on the tile)\r
+       tiles_t *tiles;         //TODO: 16_mm and 16_ca must handle this        // tilesets for layers (currently ony 4 can be loaded wwww)\r
        int width, height;              //this has to be signed!\r
-       byte name[16];          //mapname/maptitle\r
+       byte name[16];\r
 } map_t;\r
 \r
+//===================================//\r
+\r
 typedef struct{\r
-       word tw;                /* screen width in tiles */\r
-       word th;                /* screen height in tiles */\r
-       word tilesw;            /* virtual screen width in tiles */\r
-       word tilesh;            /* virtual screen height in tiles */\r
+       word tw;                                /* screen width in tiles */\r
+       word th;                                /* screen height in tiles */\r
+       word tilesw;                            /* virtual screen width in tiles */\r
+       word tilesh;                            /* virtual screen height in tiles */\r
        sword tilemidposscreenx;        /* middle tile x position */    /* needed for scroll system to work accordingly */\r
        sword tilemidposscreeny;        /* middle tile y position */    /* needed for scroll system to work accordingly */\r
        sword tileplayerposscreenx;     /* player position on screen */ /* needed for scroll and map system to work accordingly */\r
@@ -146,48 +171,22 @@ typedef struct{
 typedef struct {\r
        nibble/*word*/ id;      /* the Identification number of the page~ For layering~ */\r
        byte far* data; /* the data for the page */\r
-       pagetileinfo_t  ti;\r
+       pagetileinfo_t ti;      // the tile information of the page\r
        word dx;                /* col we are viewing on virtual screen (on page[0]) */ /* off screen buffer on the left size */\r
        word dy;                /* row we are viewing on virtual screen (on page[0]) */ /* off screen buffer on the top size */\r
        word sw;                /* screen width */      /* resolution */\r
        word sh;                /* screen heigth */     /* resolution */\r
        word width;             /* virtual width of the page */\r
        word height;    /* virtual height of the page */\r
-       word stridew;                   /* width/4 */   /* VGA */\r
-       word pagesize;                  /* page size */\r
-       word pi;                                /* increment page by this much to preserve location */\r
+       word stridew;   /* width/4 */   /* VGA */\r
+       word pagesize;  /* page size */\r
+       word pi;                /* increment page by this much to preserve location */\r
        int tlx,tly;\r
 //newer vars\r
 //TODO: find where they are used\r
        sword delta;                    // How much should we shift the page for smooth scrolling\r
 } page_t;\r
 \r
-//newer structs\r
-typedef        struct\r
-{\r
-       int x; //entity exact position on the viewable map\r
-       int y; //entity exact position on the viewable map\r
-       int tx; //entity tile position on the viewable map\r
-       int ty; //entity tile position on the viewable map\r
-       int triggerx; //entity's trigger box tile position on the viewable map\r
-       int triggery; //entity's trigger box tile position on the viewable map\r
-//     int sheetsetx; //NOT USED YET! entity sprite sheet set on the image x\r
-//     int sheetsety; //NOT USED YET! entity sprite sheet set on the image y\r
-       nibble d;               //direction to render sprite!! wwww\r
-       nibble pred;    //prev. direction for animation changing\r
-       word dire;              //sprite in use\r
-       nibble q;               //loop variable for anumation and locking the playing to compleate the animation cycle to prevent issues with misalignment www\r
-       word speed;             //entity speed!\r
-       word spt;               //speed per tile\r
-#ifdef __WATCOMC__\r
-       sprite_t *spri; // sprite used by entity\r
-#endif\r
-       sword hp; //hitpoints of the entity\r
-       nibble overdraww, overdrawh;    // how many pixels to "overdraw" so that moving sprites with edge pixels don't leave streaks.\r
-                                               // if the sprite's edge pixels are clear anyway, you can set this to 0.\r
-       nibble /*int*/ persist_aniframe;    // gonna be increased to 1 before being used, so 0 is ok for default\r
-} entity_t;\r
-\r
 //from 16_in\r
 //==========================================================================\r
 typedef        byte            ScanCode;\r
@@ -247,10 +246,10 @@ typedef   struct
        entity_t near   enti;\r
 #ifdef __WATCOMC__\r
        //struct sprite *spri;  //supposively the sprite sheet data\r
-       memptr          gr;\r
+       //memptr                gr;\r
 #endif\r
-       bitmap_t        *data;          //supposively the sprite sheet data//old format\r
-       bitmap_t        bmp;\r
+//     bitmap_t        *data;          //supposively the sprite sheet data//old format\r
+//     bitmap_t        bmp;\r
 \r
        //input\r
        byte near               pdir;   //previous direction~ used in IN_16 in IN_ReadControl()\r
@@ -277,20 +276,23 @@ typedef struct
        word clock_start;       //timer start\r
        word *clock;    //current time on clock\r
        boolean fpscap; //cap the fps var\r
+       nibble wcpu;    //stored value of cpu type\r
 } kurokku_t;\r
 \r
+//===================================//\r
+#define     PALSIZE            768\r
+#define NUMCHUNKS      416     //keen\r
 //video\r
 typedef struct\r
 {\r
        unsigned int offscreen_ofs;\r
        unsigned int pattern_ofs;\r
-} ofs_t;\r
-#define NUMCHUNKS      416     //keen\r
+} ofs_t;       //unfinished\r
 \r
 typedef struct\r
 {\r
        char old_mode;          //old video mode before game!\r
-       byte palette[768];              //palette array\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
        byte num_of_pages;      //number of actual pages\r