/* Module : GAMEVID.H Author : Kim Moser, Leon Moser Date : System : IBM PC / Borland Turbo C 2.0 Descrip: Low-level routines for GAME.C */ #include extern cardinal DIMENSION; extern int DRIVER, MODE; extern int RATIO_X, RATIO_Y, RATIO; extern cardinal L; extern char *PILE; /* Pointer to (array [DIMENSION,DIMENSION,DIMENSION] of char) */ extern cardinal CEN_X, CEN_Y; /* Coords of center of screen */ typedef struct edge { int v1, v2; }; typedef struct edge edges[(MAX_BLOCK+1)*MAX_BLOCK*(MAX_BLOCK+1) * 4]; typedef struct vertex { int x, y, z; }; typedef struct vertex vertices[(MAX_BLOCK+1) * (MAX_BLOCK+1) * (MAX_BLOCK+1)]; typedef struct block { edges e; vertices v; struct vertex cm; /*center of mass*/ int edgecount; int vercount; }; void getedgecoords(struct block *b, int i, cardinal *x1, cardinal *y1, cardinal *z1, cardinal *x2, cardinal *y2, cardinal *z2); void setedgeverts(struct block *b, int i, int v1, int v2); void setvertcoords(struct block *b, int i, cardinal x, cardinal y, cardinal z); void setvert(struct block *b, int i, struct vertex *v); void getvertcoords(struct block *b, int i, struct vertex *v); /************************************************************************/ void setupscreen(void); void makeblock(struct block *b, int h, int w, int d, int x, int y, int z); void drawblock(struct block *b, int c); void rotateblock(struct block *b, int axis); void terminategamevid(void);