]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_tdef.h
==== animation fram walk ==== i polished the shit out of it and it works MUCH better...
[16.git] / src / lib / 16_tdef.h
index 1aa40e7f32b8e4a9322a88afa1a21c0dd3e6b894..730e7f964c016cf523b9766df95f5dd23553f39a 100755 (executable)
@@ -108,16 +108,16 @@ typedef struct {
        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 tw;                /* screen width in tiles */\r
-       word th;                /* screen height in tiles */\r
+               word tw;                /* screen width in tiles */\r
+               word th;                /* screen height in tiles */\r
        word width;             /* virtual width of the page */\r
        word height;    /* virtual height of the page */\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
-       sword tileplayerposscreeny;     /* player position on screen */ /* needed for scroll and map system to work accordingly */\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
+               sword tileplayerposscreeny;     /* player position on screen */ /* needed for scroll and map system to work accordingly */\r
        word stridew;                   /* width/4 */   /* VGA */\r
        word pagesize;                  /* page size */\r
        word pi;                                /* increment page by this much to preserve location */\r
@@ -137,13 +137,17 @@ typedef   struct
        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
-       byte d;         //direction to render sprite!! wwww\r
-       byte q;         //loop variable for anumation and locking the playing to compleate the animation cycle to prevent issues with misalignment www\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
        struct sprite *spri; // sprite used by entity\r
        sword hp; //hitpoints of the entity\r
-       int persist_aniframe;    /* gonna be increased to 1 before being used, so 0 is ok for default */\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
 //TODO: MAKE THIS WWWW\r
@@ -217,7 +221,6 @@ typedef     struct          {
 typedef        struct\r
 {\r
        entity_t near   enti;\r
-       entity_t *ent;\r
 #ifdef __WATCOMC__\r
        //struct sprite *spri;  //supposively the sprite sheet data\r
        memptr          gr;\r
@@ -229,6 +232,7 @@ typedef     struct
        byte near               pdir;   //previous direction~ used in IN_16 in IN_ReadControl()\r
        CursorInfo              info;\r
        ControlType     Controls;\r
+       word walktype;\r
 //newer vars\r
        int dx, dy, delta;      //TODO: what is this? ^^\r
 } player_t;\r
@@ -257,6 +261,7 @@ typedef struct
 typedef struct\r
 {\r
        char old_mode;          //old video mode before game!\r
+       byte palette[768];              //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
@@ -264,14 +269,16 @@ typedef struct
        byte far * omemptr;\r
        byte vga_draw_stride;\r
        byte vga_draw_stride_limit;             // further X clipping\r
-//\r
-       word __near rs;                 //render switch\r
+       //end of doslib origi vars\r
+       boolean __near rss;                     //render sprite switch\r
+       sword __near sprifilei;         //player file's i\r
        boolean __near p;                       //render page number //BLEH\r
-       boolean __near r;                       //page flip if true\r
+       boolean __near r;                       //page flip, showpage, or render        if true\r
        word pr[MAXPAGE][4];    //render sections of pages (this is supposed to be set up to draw sections of the screen if updated)\r
 \r
-       nibble sfip;//shinku_fps_indicator_page; // we're on page 1 now, shinku(). follow along please or it will not be visible.\r
+       nibble sfip;            //shinku_fps_indicator_page; // we're on page 1 now, shinku(). follow along please or it will not be visible.\r
        nibble panp;            //pan_t replacement\r
+       word    vh;             //video combined height\r
        //0000word startclk; float clk, tickclk;        //timer\r
 //newer vars\r
 //TODO: find out how they are used\r