97 lines
3.2 KiB
C
97 lines
3.2 KiB
C
;/****************************************************************************
|
|
;** MODULE: c.h
|
|
;** AUTHOR: Sami Tammilehto / Fennosoftec OY
|
|
;** DOCUMENT: ?
|
|
;** VERSION: 1.0
|
|
;** REFERENCE: -
|
|
;** REVISED BY: -
|
|
;*****************************************************************************
|
|
;**
|
|
;** C / Include
|
|
;** - variable definitions
|
|
;** - constant definitions
|
|
;**
|
|
;****************************************************************************/
|
|
|
|
#ifndef INCLUDED_C
|
|
|
|
/*####### Data types ########*/
|
|
|
|
#ifndef INCLUDED_CD
|
|
#include "cd.h"
|
|
#endif
|
|
|
|
/*####### Prototypes for *EXTERNAL* c routines ########*/
|
|
|
|
extern void * getmem(long bytes); // SHOULD BE PROVIDED EXTERNALLY
|
|
extern void freemem(void *); // SHOULD BE PROVIDED EXTERNALLY
|
|
extern char * readfile(char *name); // SHOULD BE PROVIDED EXTERNALLY
|
|
|
|
/*####### Prototypes for c routines ########*/
|
|
|
|
object * vis_loadobject(char *fname); // visu.c
|
|
void vis_drawobject(object *o); // visu.c
|
|
|
|
/*####### Prototypes for asm routines ########*/
|
|
|
|
void vid_init(int mode);
|
|
void vid_window(long x1,long x2,long y1,long y2,long z1,long z2);
|
|
void vid_cameraangle(angle a);
|
|
void vid_inittimer(void);
|
|
void vid_deinittimer(void);
|
|
void vid_deinit(void);
|
|
void vid_setpal(char *pal);
|
|
void vid_clear(void);
|
|
void vid_clearbg(char *);
|
|
void vid_skyclear(char *sky);
|
|
void vid_switch(void);
|
|
void vid_waitb(void);
|
|
void vid_drawpolylist(polylist *,polydata *,vlist *,pvlist *,nlist *); // OBSOLOTE, USE draw_polylist
|
|
void vid_pic320200(char *,int,int);
|
|
void vid_drawsight(char *);
|
|
void vid_pset(int x,int y,int color);
|
|
|
|
void vid_dotdisplay_pvlist(int count,pvlist *list);
|
|
void vid_dotdisplay_zcolor(int count,pvlist *list1,vlist *list2);
|
|
void vid_poly(int color,int sides,...);
|
|
|
|
int calc_project(int count,pvlist *dest,vlist *source);
|
|
int calc_project16(int count,pvlist *dest,vlist *source); // for 16 bits
|
|
void calc_setrmatrix_rotyxz(rmatrix *matrix,angle rotx,angle roty,angle rotz);
|
|
void calc_setrmatrix_rotxyz(rmatrix *matrix,angle rotx,angle roty,angle rotz);
|
|
void calc_setrmatrix_rotzyx(rmatrix *matrix,angle rotx,angle roty,angle rotz);
|
|
void calc_setrmatrix_ident(rmatrix *matrix);
|
|
void calc_sftranslate(int count,vlist *dest,long xt,long yt,long zt);
|
|
void calc_rotate(int count,vlist *dest,vlist *source,rmatrix *matrix);
|
|
void calc_rotate16(int count,vlist *dest,vlist *source,rmatrix *matrix);
|
|
void calc_nrotate(int count,nlist *dest,nlist *source,rmatrix *matrix);
|
|
void calc_mulrmatrix(rmatrix *dest,rmatrix *source);
|
|
int calc_invrmatrix(rmatrix *dest);
|
|
void calc_applyrmatrix(rmatrix *dest,rmatrix *apply);
|
|
long calc_singlez(int vertexnum,vlist *vertexlist,rmatrix *matrix);
|
|
void calc_setrmatrix_camera(rmatrix *,long,long,long,long,long,long,int);
|
|
|
|
void draw_polylist(polylist *,polydata *,vlist *,pvlist *,nlist *,int);
|
|
void draw_setfillroutine(void (*)(int *));
|
|
|
|
/*####### Constants ########*/
|
|
|
|
#define MAXROWS 480
|
|
#define UNIT 16384
|
|
#define UNITSHR 14
|
|
|
|
/*####### External Assembler variables ########*/
|
|
|
|
extern long datanull;
|
|
extern int rows[MAXROWS];
|
|
extern int vramseg;
|
|
extern long projclipx[2];
|
|
extern long projclipy[2];
|
|
extern long projclipz[2];
|
|
extern long projmulx;
|
|
extern long projmuly;
|
|
extern long projaddx;
|
|
extern long projaddy;
|
|
|
|
#define INCLUDED_CD
|
|
#endif
|