X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_tdef.h;h=101ad4754f50dbd0a2e2dc8b8eb92fabfbf23c61;hb=1159fe5a6cd0f8eaeee6e8584f5972d42e004073;hp=2ea3f9fe9e39d96d60a1a07de16b70e2923d253d;hpb=658eba1768f70e0ce6cb01bb817709c1caf91834;p=16.git diff --git a/src/lib/16_tdef.h b/src/lib/16_tdef.h index 2ea3f9fe..101ad475 100755 --- a/src/lib/16_tdef.h +++ b/src/lib/16_tdef.h @@ -49,7 +49,7 @@ typedef struct { } bitmap_t; typedef struct { - byte huge **data; + byte far **data; word ntiles; /* the number of tiles */ word twidth; /* width of the tiles */ word theight; /* height of the tiles */ @@ -57,42 +57,71 @@ typedef struct { } tileset_t; typedef struct { - byte huge *plane[4]; /* 4 planes of image data */ - word width; /* width of the image (spread across 4 planes) */ - word height; /* height of the image (spread across 4 planes) */ - word pwidth; /* the number of bytes in each plane */ + byte far *plane[4]; // 4 planes of image data + word width; // width of the image (spread across 4 planes) + word height; // height of the image (spread across 4 planes) + word pwidth; // the number of bytes in each plane byte *palette; } planar_buf_t; +//TODO: 16_mm and 16_ca must handle this +typedef struct { + bitmap_t far *btdata; //old + planar_buf_t far *data; //old + word tileHeight, tileWidth; + unsigned int rows, cols; +// #ifdef __DEBUG__ +// boolean debug_text; //show the value of the tile! wwww +// byte *debug_data; +// #endif +} tiles_t; + +//TODO: 16_mm and 16_ca must handle this +//TODO: add variables from 16_ca +typedef struct { + //long planestart[3]; + //unsigned planelength[3]; + byte *data; //TODO: 16_mm and 16_ca must handle this + byte * far *layerdata; //TODO: 16_mm and 16_ca must handle this + tiles_t *tiles; //TODO: 16_mm and 16_ca must handle this + tiles_t * far *layertile; //TODO: 16_mm and 16_ca must handle this + int width, height; //this has to be signed! + char name[16]; +} map_t; + typedef struct { /*nibble*/word id; /* the Identification number of the page~ For layering~ */ byte far* data; /* the data for the page */ - word dx; /* col we are viewing on the virtual screen */ - word dy; /* row we are viewing on the virtual screen */ - word sw; /* screen width */ - word sh; /* screen heigth */ + word dx; /* col we are viewing on virtual screen (on page[0]) */ /* off screen buffer on the left size */ + word dy; /* row we are viewing on virtual screen (on page[0]) */ /* off screen buffer on the top size */ + word sw; /* screen width */ /* resolution */ + word sh; /* screen heigth */ /* resolution */ word tw; /* screen width in tiles */ word th; /* screen height in tiles */ word width; /* virtual width of the page */ word height; /* virtual height of the page */ word tilesw; /* virtual screen width in tiles */ word tilesh; /* virtual screen height in tiles */ - sword tilemidposscreenx; /* middle tile position */ - sword tilemidposscreeny; /* middle tile position */ - sword tileplayerposscreenx; /* player position on screen */ - sword tileplayerposscreeny; /* player position on screen */ - word stridew; /*width/4*/ + sword tilemidposscreenx; /* middle tile x position */ /* needed for scroll system to work accordingly */ + sword tilemidposscreeny; /* middle tile y position */ /* needed for scroll system to work accordingly */ + sword tileplayerposscreenx; /* player position on screen */ /* needed for scroll and map system to work accordingly */ + sword tileplayerposscreeny; /* player position on screen */ /* needed for scroll and map system to work accordingly */ + word stridew; /* width/4 */ /* VGA */ word pagesize; /* page size */ - word pi; /* incremention page by this much to preserve location */ + word pi; /* increment page by this much to preserve location */ +//newer vars +//TODO: find where they are used sword delta; // How much should we shift the page for smooth scrolling - //enum direction d; // Direction we should shift the page } page_t; + +//TODO: MAKE THIS WWWW typedef struct { //sprite .... boolean wwww; } spri_t; +//TODO: MAKE THIS TO WWWW typedef struct { //vrs with sprite .... @@ -101,7 +130,7 @@ typedef struct typedef struct { - int profilehandle,debughandle,showmemhandle; + int profilehandle,debughandle,showmemhandle; int heaphandle; } loghandle_t; @@ -126,14 +155,16 @@ typedef struct typedef struct { char old_mode; //old video mode before game! - byte grneeded[NUMCHUNKS]; - page_t page[MAXPAGE]; //pointer to root page[0] + page_t page[MAXPAGE]; //can be used as a pointer to root page[0] word vmem_remain; //remaining video memory byte num_of_pages; //number of actual pages boolean __near p; //render page number boolean __near r; //page flip if true - word pr[MAXPAGE][4]; //render sections of pages + word pr[MAXPAGE][4]; //render sections of pages (this is supposed to be set up to draw sections of the screen if updated) //0000word startclk; float clk, tickclk; //timer +//newer vars +//TODO: find out how they are used + byte grneeded[NUMCHUNKS]; } video_t; //from 16_mm @@ -149,7 +180,6 @@ typedef struct mmblockstruct word blob; //for data larger than 64k unsigned attributes; memptr *useptr; // pointer to the segment start - //huge struct mmblockstruct huge *next; struct mmblockstruct far *next; } mmblocktype; @@ -163,7 +193,6 @@ typedef struct { memptr bufferseg; boolean mmstarted, bombonerror, mmerror; - //huge void huge *farheap; void far *farheap; #ifdef __BORLANDC__ void *nearheap; @@ -175,7 +204,6 @@ typedef struct word numUMBs,UMBbase[MAXUMBS]; word totalEMSpages, freeEMSpages, EMSpagesmapped, EMSHandle, EMSPageFrame; //dword numUMBs,UMBbase[MAXUMBS]; - //huge mmblocktype huge mmblocks[MAXBLOCKS],huge *mmhead,huge *mmfree,huge *mmrover,huge *mmnew; mmblocktype far mmblocks[MAXBLOCKS],far *mmhead,far *mmfree,far *mmrover,far *mmnew; } mminfo_t; @@ -330,6 +358,14 @@ typedef struct //========================================================================== //actual global game varables! +typedef enum { + ENGI_EXIT, + ENGI_QUIT, + ENGI_RUN, + ENGI_INPUT, + ENGI_PAUSE +} engi_stat_t; + typedef struct { video_t video; // video settings variable