#ifndef _WGT5_ #define _WGT5_ /* WordUp Graphics Toolkit V5.0 Header File WATCOM C/C++ FLAT MODEL Copyright 1995 Egerter Software */ #include #ifdef __cplusplus extern "C" { #endif typedef unsigned char * block; typedef unsigned char * wgtfont; typedef unsigned short * wgtmap; /* Text grid settings */ #define TEXTGRID_OFF 0 #define TEXTGRID_ON 1 /* Text transparency settings */ #define TEXTFG 0 #define TEXTBG 1 #define TEXTFGBG 2 /* Image transfer operations */ #define NORMAL 0 #define XRAY 1 /* whollowpoly types */ #define CLOSED_POLY 0 #define OPEN_POLY 1 /* Flip block operations */ #define VERTICAL 0 #define HORIZONTAL 1 /* Shading operations */ #define SHADE_NORMAL 0 #define SHADE_XRAY 1 #define SHADE_SHADOW 2 #define SHADE_TRANSLUCENT 3 #define SHADE_MONO 4 /* Triangle Rendering Methods */ #define WIREFRAME 0 #define SOLID 1 #define GOURAUD 2 #define TEXTURE 3 #define FLAT_SHADE_TEXTURE 4 #define GOURAUD_SHADE_TEXTURE 5 #define TRANSLUCENT_TEXTURE 6 #define TRANSLUCENT_GOURAUD 7 /* Convert from ticks/sec */ #define TICKS(hz) ((int)(1193182L/(hz))) extern struct { short xres; short yres; short videomode; int videobanksize; short (*bankswitch)(short); short screenwidth; short screenheight; } WGT_SYS; /* A single palette register definition */ typedef struct { unsigned char r,g,b; } color; /* Triangle point definition */ typedef struct { short x,y; /* Coordinate on the screen */ long sx,sy; /* Coordinate on the texture */ short col; } tpoint; /* Polygon point definition */ typedef struct { short x,y; /* Coordinate on the screen */ short sx,sy; /* Coordinate on the texture if texture is used, otherwise sx = color point */ /* sx is used for Gouraud shading as well (color of the point) */ } tpolypoint; /* Scan converted polygon routines */ typedef struct { short **pointbuffer; /* Holds a buffer of x coordinates for each row of the polygon. */ unsigned short *numpoints; /* Holds the size of the point buffer in bytes. */ } wscanpoly; /* WGTLIB variables */ extern fpos_t lfpos; extern FILE *libf; extern short lresult; extern int lsize; extern char password[16]; extern char *wgtlibrary; /* Keyboard Interrupt */ extern short kbdon[128]; extern short keypressed; /* Mouse variables */ typedef struct { short but; short mx; short my; } callback_data; extern callback_data mouse; /* Clipping boundaries */ extern short bx,by,tx,ty; /* Current drawing color */ extern unsigned char currentcolor; /* Software cursor flashing speed */ extern short curspeed; /* Software cursor coordinates */ extern short xc,yc; /* Pointer to the active drawing page */ extern block abuf; /* Function Prototypes */ short checkpassword (char *temp); void findfile (char *filename); unsigned int getmemfree (void); void installkbd (void); void * lib2buf (char *loadfile); short lock_region (void *address, unsigned length); void mdeinit (void); short minit (void); void moff (void); void mon (void); void mouseshape (short colhot, short rowhot, unsigned short *bitmap); void mread (void); void msetbounds (short x, short y, short x2, short y2); void msetspeed (short x, short y); void msetthreshhold (short speed); void msetxy (short x, short y); void noclick (void); void readheader (void); void setlib (char *libraryname); void setpassword (char *newpass); void uninstallkbd (void); void vga256 (void); char vgadetected (void); block wallocblock (short width, short height); void wbar (short x, short y, short x2, short y2); void wbezier (tpolypoint *rawpts, short numraw, tpolypoint *curvepts, short numcurve); void wbutt (short x, short y, short x2, short y2); void wcircle (short x_center, short y_center, short radius); void wclip (short x, short y, short x2, short y2); void wcls (unsigned char col); void wcolrotate (unsigned char start, unsigned char finish, short dir, color *palt); void wcopyscreen (short x, short y, short x2, short y2, block ptr, short destx, short desty, block to); void wdeinitpoly (void); void wdeinit_triangle_renderer (void); void wdissolve (block myimage, short *patt, short speed); void wdraw_scanpoly (short x, short y, wscanpoly *newp, void (*customline)(short,short,short)); void wellipse (short xc, short yc, short xr, short yr); void wfade_between (unsigned char start, unsigned char finish, short speed, color *pal1, color *pal2); void wfade_between_once (unsigned char start, unsigned char finish, color *pal1, color *pal2); void wfade_in (unsigned char start, unsigned char finish, short speed, color *pal); void wfade_in_once (unsigned char start, unsigned char finish, color *pal, color *temppal); void wfade_out (unsigned char start, unsigned char end, short speed, color *pal); void wfade_out_once (unsigned char start, unsigned char finish, color *pal); void wfastputpixel (short x, short y); void wfill_circle (short x_center, short y_center, short radius); void wfill_ellipse (short xc, short yc, short xr, short yr); void wflashcursor (void); void wfline (short x, short y, short x2, short y2); void wflipblock (block pr, short dir); void wfree_scanpoly (wscanpoly *freep); void wfreeblock (block ptr); void wfreefont (wgtfont ptr); void wfreesprites (block *spr, short start, short end); short wget_capslock (void); unsigned char wget_imagebit (block image); unsigned char wget_imagebyte (block image); short wget_lalt (void); short wget_lctrl (void); short wget_lshift (void); short wget_numlock (void); short wget_ralt (void); short wget_rctrl (void); short wget_rshift (void); short wget_scrlock (void); short wgetblockheight (block ptr); short wgetblockwidth (block ptr); short wgetmode (void); unsigned char wgetpixel (short x, short y); short wgettextheight (char *printit, wgtfont pr); short wgettextwidth (char *printit, wgtfont pr); void wgouraudpoly (tpolypoint *vertexlist, short numvertex, short x, short y); void wgtprintf (short xloc, short yloc, wgtfont wgtprfon, char *fmt, ... ); void whline (short x1, short x2, short y); void whollowpoly (tpolypoint *vertexlist, short numvertex, short x, short y, short closemode); void winitpoly (short maxrows); void winit_triangle_renderer (short maxrows); void wline (short x, short y, short x2, short y2); block wloadblock (char *filename); block wloadbmp (char *fname, color *pal); block wloadcel (char *filename, color *palload); wgtfont wloadfont (char *fontfile); block wloadgif (char *filename, color p[256]); block wloadiff (char *filename, color p[256]); block wloadpak (char *filename); void wloadpalette (char *filepal, color *clr); block wloadpcx (char *filename, color *pal); short wloadsprites (color *pal, char *filename, block *spr, short start, short end); block wnewblock (short x, short y, short x2, short y2); void wnormscreen (void); short woutchar (short asc, short xc, short yc, wgtfont pr); void wouttextxy (short x, short y, wgtfont fnt, char *printit); void wpan (unsigned short panofs); void wputblock (short x, short y, block pr, short method); void wputblock_shade (short x, short y, block src, block shadetable, int mode); void wputpixel (short x, short y); void wreadpalette (unsigned char start, unsigned char finish, color *palc); void wrectangle (short x, short y, short x2, short y2); void wregionfill (short x, short y); void wremap (color *p1, block picture, color *p2); void wresize (int x, int y, int x2, int y2, block resizeblock, short mode); void wresize_column (int x, int y, int y2, block resizeblock, short column, short mode); void wresize_shade (short x, short y, short x2, short y2, block resizeblock, unsigned char *shadetable, short mode); void wretrace (void); short wsaveblock (char *filename, block ptr); short wsavebmp (char *fname, block saveptr, color *pal); short wsavecel (char *filename, block savecel, color *palsave); short wsaveiff (char *filename, block image, color p[256]); short wsavepak (char *filename, block ptr); void wsavepalette (char *filepal, color *clr); short wsavepcx (char *filename, block savepcx, color *pal); short wsavesprites (color *pal, char *filename, block *sprite, short start, short end); void wscan_convertpoly (tpolypoint *vertexlist, short numvertex, wscanpoly *newp); void wset_capslock (short state); void wset_imagebyte (block image, unsigned char status); void wset_numlock (short state); void wset_scrlock (short state); void wsetcolor (unsigned char col); void wsetcursor (short start, short end); void wsetmode (short mode); void wsetpalette (unsigned char start, unsigned char finish, color *pal); void wsetrgb (unsigned char num, unsigned char red, unsigned char green, unsigned char blue, color *pal); void wsetscreen (block ptr); void wskew (short x, short y, block blockname, short degrees); void wsline (short x, short y, short x2, short y2, short *lad); void wsolidpoly(tpolypoint *vertexlist, short numvertex, short x, short y, void (*customline)(short,short,short)); void wstring (short x, short y, char *s, char *legal, short maxlength); void wstyleline (short x, short y, short x2, short y2, unsigned short style); void wtextbackground (unsigned char col); void wtextcolor (unsigned char col); void wtextgrid (short state); void wtexttransparent (short mode); void wtexturedpoly (tpolypoint *vertexlist, short numvertex, short x, short y, block tex, short mode); void wtriangle_solid (tpoint *ftri); void wtriangle_gouraud (tpoint *gtri); void wtriangle_texture (tpoint *ttri, block texture); void wtriangle_flat_shaded_texture (tpoint *ttri, block texture, short shade, block shadetable); void wtriangle_gouraud_shaded_texture (tpoint *ttri, block texture, block shadetable); void wtriangle_translucent_gouraud (tpoint *gtri, block shadetable); void wtriangle_translucent_texture (tpoint *ttri, block texture, block shadetable); void wupdate_imagebytes (block *image_array, short start, short end); void wvertres (short x, short y, short y2, block ptr); void wwarp (short sx, short ex, short *tpy, short *bty, block ptr, int mode); void wwipe (short x, short y, short x2, short y2, block cpy); void wxorbox (short x, short y, short x2, short y2, unsigned char col); /* File Selector */ char *wfilesel (char *mask, char *title, short x, short y, block background); extern wgtfont filefont; #ifdef __cplusplus } #endif #endif