2 #define TPOLYTYPE_ALPHA 0
3 #define TPOLYTYPE_ADD 1
5 extern void transpolyclear();
6 extern void transpolyrender();
7 extern void transpolybegin(int texnum, int glowtexnum, int fogtexnum, int transpolytype);
8 extern void transpolyend();
10 extern void wallpolyclear();
11 extern void wallpolyrender();
13 extern void skypolyclear();
14 extern void skypolyrender();
15 extern void skypolybegin();
16 extern void skypolyvert(float x, float y, float z);
17 extern void skypolyend();
19 #define MAX_TRANSPOLYS 8192
20 #define MAX_TRANSVERTS (MAX_TRANSPOLYS*4)
21 #define MAX_WALLPOLYS 16384
22 #define MAX_WALLVERTS (MAX_WALLPOLYS*4)
23 #define MAX_SKYPOLYS 2048
24 #define MAX_SKYVERTS (MAX_SKYPOLYS*4)
35 vec_t mindistance, maxdistance; // closest and farthest distance along v_forward
36 vec_t distance; // distance to center
37 // vec3_t n; // normal
38 // vec_t ndist; // distance from origin along that normal
39 unsigned short texnum;
40 unsigned short glowtexnum;
41 unsigned short fogtexnum;
42 unsigned short firstvert;
44 unsigned short transpolytype;
55 unsigned short texnum, lighttexnum, glowtexnum;
56 unsigned short firstvert;
67 unsigned short firstvert;
71 extern transvert_t *transvert;
72 extern transpoly_t *transpoly;
73 extern unsigned short *transpolyindex;
74 extern wallvert_t *wallvert;
75 extern wallpoly_t *wallpoly;
76 extern skyvert_t *skyvert;
77 extern skypoly_t *skypoly;
79 extern unsigned short currenttranspoly;
80 extern unsigned short currenttransvert;
81 extern unsigned short currentwallpoly;
82 extern unsigned short currentwallvert;
83 extern unsigned short currentskypoly;
84 extern unsigned short currentskyvert;
86 #define transpolyvert(vx,vy,vz,vs,vt,vr,vg,vb,va) \
88 if (currenttranspoly < MAX_TRANSPOLYS && currenttransvert < MAX_TRANSVERTS)\
90 transvert[currenttransvert].s = (vs);\
91 transvert[currenttransvert].t = (vt);\
92 transvert[currenttransvert].r = (byte) (bound(0, (int) (vr), 255));\
93 transvert[currenttransvert].g = (byte) (bound(0, (int) (vg), 255));\
94 transvert[currenttransvert].b = (byte) (bound(0, (int) (vb), 255));\
95 transvert[currenttransvert].a = (byte) (bound(0, (int) (va), 255));\
96 transvert[currenttransvert].v[0] = (vx);\
97 transvert[currenttransvert].v[1] = (vy);\
98 transvert[currenttransvert].v[2] = (vz);\
100 transpoly[currenttranspoly].verts++;\