]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_tdef.h
Revert "too tired to continue"
[16.git] / src / lib / 16_tdef.h
index 0a4248badcc8961697c20c31b657d58c7ee172aa..38fd2260f04af464ee6acd7144bbd04eb3c6954b 100755 (executable)
@@ -1,5 +1,5 @@
 /* Project 16 Source Code~\r
- * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
+ * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
  *\r
  * This file is part of Project 16.\r
  *\r
@@ -66,30 +66,47 @@ typedef struct {
 \r
 //TODO: 16_mm and 16_ca must handle this\r
 typedef struct {\r
-       bitmap_t far *btdata;           //old\r
-       planar_buf_t far *data; //old\r
+       bitmap_t far *data;             //old\r
+       //planar_buf_t far *data;       //old\r
        word tileHeight, tileWidth;\r
        unsigned int rows, cols;\r
 //     #ifdef __DEBUG__\r
 //     boolean debug_text;     //show the value of the tile! wwww\r
 //     byte *debug_data;\r
 //     #endif\r
+       byte    imgname[8];             //image file of tileset\r
 } tiles_t;\r
 \r
 //TODO: 16_mm and 16_ca must handle this\r
 //TODO: add variables from 16_ca\r
+//#define __NEWMAPTILEDATAVARS__\r
+\r
+#ifdef __NEWMAPTILEDATAVARS__\r
+#define MAPLAYERS 4\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
        //long          planestart[3];\r
        //unsigned      planelength[3];\r
+#ifndef __NEWMAPTILEDATAVARS__\r
        byte *data;                     //TODO: 16_mm and 16_ca must handle this\r
-       byte * far *layerdata;  //TODO: 16_mm and 16_ca must handle this\r
        tiles_t *tiles;         //TODO: 16_mm and 16_ca must handle this\r
-       tiles_t * far *layertile;       //TODO: 16_mm and 16_ca must handle this\r
+#else\r
+       byte * far *layerdata;  //TODO: 16_mm and 16_ca must handle this\r
+       tiles_t far *layertile[MAPLAYERS];      //TODO: 16_mm and 16_ca must handle this\r
+#endif\r
        int width, height;              //this has to be signed!\r
-       char            name[16];\r
+       byte name[16];\r
 } map_t;\r
 \r
-//TODO USE THIS tile info\r
 typedef struct{\r
        word tw;                /* screen width in tiles */\r
        word th;                /* screen height in tiles */\r
@@ -114,11 +131,35 @@ typedef struct {
        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
+//from 16_sprit.h\r
+#ifdef __WATCOMC__\r
+typedef struct sprite\r
+{\r
+       // VRS container from which we will extract animation and image data\r
+       struct vrs_container *spritesheet;\r
+       // Container for a vrl sprite\r
+       struct vrl_container *sprite_vrl_cont;\r
+       // Current sprite id\r
+       int curr_spri_id;\r
+       // Index of a current sprite in an animation sequence\r
+       int curr_anim_spri;\r
+       // Current animation sequence\r
+       struct vrs_animation_list_entry_t *curr_anim_list;\r
+       // Index of current animation in relevant VRS offsets table\r
+       int curr_anim;\r
+       // Delay in time units untill we should change sprite\r
+       int delay;\r
+       // Position of sprite on screen\r
+       int x, y;\r
+} sprite_t;\r
+#endif\r
+\r
 //newer structs\r
 typedef        struct\r
 {\r
@@ -128,35 +169,23 @@ typedef   struct
        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
+//     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
-       struct sprite *spri; // sprite used by entity\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
-//TODO: MAKE THIS WWWW\r
-typedef struct\r
-{\r
-       //sprite ....\r
-       boolean wwww;\r
-} spri_t;\r
-\r
-//TODO: MAKE THIS TO WWWW\r
-typedef struct\r
-{\r
-       //vrs with sprite ....\r
-       spri_t *spri;\r
-} vrs_t;\r
-\r
 //from 16_in\r
 //==========================================================================\r
 typedef        byte            ScanCode;\r
@@ -268,11 +297,12 @@ typedef struct
        byte vga_draw_stride;\r
        byte vga_draw_stride_limit;             // further X clipping\r
        //end of doslib origi vars\r
-       boolean __near rss;                     //render sprite switch\r
+       boolean __near rss;             //render sprite switch\r
+       boolean __near bgps;            //bg preservation render switch between old and new\r
        sword __near sprifilei;         //player file's i\r
        nibble __near p;                        //render page number\r
        nibble __near sp;                       //show page number(for showpage)\r
-       boolean __near r;                       //page flip, showpage, or render        if true\r
+       boolean __near dorender;        //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
@@ -482,9 +512,10 @@ typedef struct
 typedef struct\r
 {\r
        int             mapon, mapnum;\r
-       __SEGA  *mapsegs[4];\r
-       __SEGA  *mapheaderseg[NUMMAPS];\r
-       __SEGA  *tinf;\r
+       //__SEGA        *mapsegs[4];\r
+       //__SEGA        *mapheaderseg[NUMMAPS];\r
+       //__SEGA        *tinf;\r
+       memptr  mapsegs;\r
 } ca_mapinfo_t;\r
 \r
 typedef struct\r
@@ -526,8 +557,9 @@ typedef struct
        mminfo_t mm; mminfotype mmi;\r
 } global_game_variables_t;\r
 \r
-extern char global_temp_status_text[512];\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