00001
00002 #ifndef MIRROR_H
00003 #define MIRROR_H
00004
00005 #include "level.h"
00006
00007
00008
00009 #define MIRROR_PLANE_OVERLAP 200
00010 #define MIRROR_OVERLAP_TOL 2
00011
00012 #define GET_MIRROR_FOG(_n) \
00013 ((_n) * MirrorMul + MirrorAdd);
00014
00015 typedef struct {
00016 short MirrorPlaneNum;
00017 } MIRROR_PLANE_HEADER;
00018
00019 typedef struct {
00020 long Flag;
00021 PLANE Plane;
00022 float MinX, MaxX, MinY, MaxY, MinZ, MaxZ;
00023 VEC v0;
00024 VEC v1;
00025 VEC v2;
00026 VEC v3;
00027 } MIRROR_PLANE_LOAD;
00028
00029 typedef struct {
00030 float Xmin, Xmax;
00031 float Zmin, Zmax;
00032 float Height;
00033 } MIRROR_PLANE;
00034
00035
00036
00037 extern bool LoadMirrorPlanes(char *file);
00038 extern void FreeMirrorPlanes(void);
00039 extern void SetMirrorParams(LEVELINFO *lev);
00040 extern long GetMirrorPlane(VEC *pos);
00041
00042
00043
00044 extern long MirrorPlaneNum;
00045 extern MIRROR_PLANE *MirrorPlanes;
00046 extern long MirrorType, MirrorAlpha;
00047 extern float MirrorHeight, MirrorMul, MirrorAdd, MirrorDist;
00048
00049 #endif