00001
00002
00003
00004
00006
00007 #ifndef __DRAWOBJECTS_H__
00008 #define __DRAWOBJECTS_H__
00009
00010 #include "ctrlread.h"
00011 #include "object.h"
00012
00013
00014
00015 enum {
00016 SPHERE_OUT,
00017 SPHERE_CLIP,
00018 SPHERE_IN,
00019 };
00020
00021 typedef struct {
00022 REAL Left, Right, Front, Back, Height;
00023 REAL tu, tv, twidth, theight;
00024 } CAR_SHADOW_TABLE;
00025
00026
00027
00028 extern long TestSphereToFrustum(VEC *pos, float rad, float *z);
00029 extern void BuildAllCarWorldMatrices(void);
00030 extern void BuildCarMatricesNew(CAR *car);
00031 extern void DrawAllCars(void);
00032 extern void DrawAllGhostCars(void);
00033 extern void DrawCar(CAR *car);
00034 extern void DrawCarGhost(CAR *car);
00035 extern void DrawAllCarShadows(void);
00036 extern void DrawSkidMarks();
00037 extern void BuildAerialSectionMatrix(AERIALSECTION *section);
00038 extern void DrawCarAerial2(AERIAL *aerial, MODEL *secModel, MODEL *topModel, short flag);
00039
00040 extern void DrawCarBoundingBoxes(CAR *car);
00041 extern void DrawObjects(void);
00042 extern void RenderObject(OBJECT *obj);
00043 extern bool RenderObjectModel(MAT *mat, VEC *pos, MODEL *model, long envrgb, struct renderflags renderflag);
00044 extern void RenderPlanet(OBJECT *obj);
00045 extern void RenderSun(OBJECT *obj);
00046 extern void RenderPlane(OBJECT *obj);
00047 extern void RenderCopter(OBJECT *obj);
00048 extern void RenderDragon(OBJECT *obj);
00049 extern void RenderTrolley(OBJECT *obj);
00050 extern void DrawGridCollPolys(COLLGRID *grid);
00051 extern void RenderTrain(OBJECT *obj);
00052 extern void RenderStrobe(OBJECT *obj);
00053 extern void RenderPickup(OBJECT *obj);
00054 extern void RenderDissolveModel(OBJECT *obj);
00055 extern void RenderLaser(OBJECT *obj);
00056 extern void RenderSplash(OBJECT *obj);
00057 extern void RenderSpeedup(OBJECT *obj);
00058
00059
00060
00061 extern FACING_POLY SunFacingPoly, DragonFireFacingPoly;
00062
00063 #endif