134 lines
3.4 KiB
C
134 lines
3.4 KiB
C
// ID_VH.H
|
|
|
|
|
|
#define WHITE 15 // graphics mode independant colors
|
|
#define BLACK 0
|
|
#define FIRSTCOLOR 1
|
|
#define SECONDCOLOR 12
|
|
#define F_WHITE 15
|
|
#define F_BLACK 0
|
|
#define F_FIRSTCOLOR 1
|
|
#define F_SECONDCOLOR 12
|
|
|
|
//===========================================================================
|
|
|
|
#define MAXSHIFTS 1
|
|
|
|
typedef struct
|
|
{
|
|
int width,
|
|
height,
|
|
orgx,orgy,
|
|
xl,yl,xh,yh,
|
|
shifts;
|
|
} spritetabletype;
|
|
|
|
typedef struct
|
|
{
|
|
unsigned sourceoffset[MAXSHIFTS];
|
|
unsigned planesize[MAXSHIFTS];
|
|
unsigned width[MAXSHIFTS];
|
|
byte data[];
|
|
} spritetype; // the memptr for each sprite points to this
|
|
|
|
typedef struct
|
|
{
|
|
int width,height;
|
|
} pictabletype;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
int height;
|
|
int location[256];
|
|
char width[256];
|
|
} fontstruct;
|
|
|
|
|
|
//===========================================================================
|
|
|
|
|
|
extern pictabletype _seg *pictable;
|
|
extern pictabletype _seg *picmtable;
|
|
extern spritetabletype _seg *spritetable;
|
|
|
|
extern byte fontcolor;
|
|
extern int fontnumber;
|
|
extern int px,py;
|
|
|
|
//
|
|
// Double buffer management routines
|
|
//
|
|
|
|
void VW_InitDoubleBuffer (void);
|
|
int VW_MarkUpdateBlock (int x1, int y1, int x2, int y2);
|
|
void VW_UpdateScreen (void);
|
|
|
|
//
|
|
// mode independant routines
|
|
// coordinates in pixels, rounded to best screen res
|
|
// regions marked in double buffer
|
|
//
|
|
|
|
void VWB_DrawTile8 (int x, int y, int tile);
|
|
void VWB_DrawTile8M (int x, int y, int tile);
|
|
void VWB_DrawTile16 (int x, int y, int tile);
|
|
void VWB_DrawTile16M (int x, int y, int tile);
|
|
void VWB_DrawPic (int x, int y, int chunknum);
|
|
void VWB_DrawMPic(int x, int y, int chunknum);
|
|
void VWB_Bar (int x, int y, int width, int height, int color);
|
|
|
|
void VWB_DrawPropString (char far *string);
|
|
void VWB_DrawMPropString (char far *string);
|
|
void VWB_DrawSprite (int x, int y, int chunknum);
|
|
void VWB_Plot (int x, int y, int color);
|
|
void VWB_Hlin (int x1, int x2, int y, int color);
|
|
void VWB_Vlin (int y1, int y2, int x, int color);
|
|
|
|
|
|
//
|
|
// wolfenstein EGA compatability stuff
|
|
//
|
|
extern byte far gamepal;
|
|
|
|
void VH_SetDefaultColors (void);
|
|
|
|
#define VW_Startup VL_Startup
|
|
#define VW_Shutdown VL_Shutdown
|
|
#define VW_SetCRTC VL_SetCRTC
|
|
#define VW_SetScreen VL_SetScreen
|
|
#define VW_Bar VL_Bar
|
|
#define VW_Plot VL_Plot
|
|
#define VW_Hlin(x,z,y,c) VL_Hlin(x,y,(z)-(x)+1,c)
|
|
#define VW_Vlin(y,z,x,c) VL_Vlin(x,y,(z)-(y)+1,c)
|
|
#define VW_DrawPic VH_DrawPic
|
|
#define VW_SetSplitScreen VL_SetSplitScreen
|
|
#define VW_SetLineWidth VL_SetLineWidth
|
|
#define VW_ColorBorder VL_ColorBorder
|
|
#define VW_WaitVBL VL_WaitVBL
|
|
#define VW_FadeIn() VL_FadeIn(0,255,&gamepal,30);
|
|
#define VW_FadeOut() VL_FadeOut(0,255,0,0,0,30);
|
|
#define VW_ScreenToScreen VL_ScreenToScreen
|
|
#define VW_SetDefaultColors VH_SetDefaultColors
|
|
void VW_MeasurePropString (char far *string, word *width, word *height);
|
|
#define EGAMAPMASK(x) VGAMAPMASK(x)
|
|
#define EGAWRITEMODE(x) VGAWRITEMODE(x)
|
|
|
|
//#define VW_MemToScreen VL_MemToLatch
|
|
|
|
#define MS_Quit Quit
|
|
|
|
|
|
#define LatchDrawChar(x,y,p) VL_LatchToScreen(latchpics[0]+(p)*16,2,8,x,y)
|
|
#define LatchDrawTile(x,y,p) VL_LatchToScreen(latchpics[1]+(p)*64,4,16,x,y)
|
|
|
|
void LatchDrawPic (unsigned x, unsigned y, unsigned picnum);
|
|
void LoadLatchMem (void);
|
|
boolean FizzleFade (unsigned source, unsigned dest,
|
|
unsigned width,unsigned height, unsigned frames,boolean abortable);
|
|
|
|
|
|
#define NUMLATCHPICS 100
|
|
extern unsigned latchpics[NUMLATCHPICS];
|
|
extern unsigned freelatch;
|
|
|