particle rendering now uses premultiplied alpha (texture is
[divverent/darkplaces.git] / csprogs.h
1 #ifndef CSPROGS_H
2 #define CSPROGS_H
3
4 #define CL_NAME "client"
5
6 // LordHavoc: changed to match MAX_EDICTS
7 #define CL_MAX_EDICTS MAX_EDICTS
8
9 #define ENTMASK_ENGINE                          1
10 #define ENTMASK_ENGINEVIEWMODELS        2
11 #define ENTMASK_NORMAL                          4
12
13 #define VF_MIN                  1       //(vector)
14 #define VF_MIN_X                2       //(float)
15 #define VF_MIN_Y                3       //(float)
16 #define VF_SIZE                 4       //(vector) (viewport size)
17 #define VF_SIZE_X               5       //(float)
18 #define VF_SIZE_Y               6       //(float)
19 #define VF_VIEWPORT             7       //(vector, vector)
20 #define VF_FOV                  8       //(vector)
21 #define VF_FOVX                 9       //(float)
22 #define VF_FOVY                 10      //(float)
23 #define VF_ORIGIN               11      //(vector)
24 #define VF_ORIGIN_X             12      //(float)
25 #define VF_ORIGIN_Y             13      //(float)
26 #define VF_ORIGIN_Z             14      //(float)
27 #define VF_ANGLES               15      //(vector)
28 #define VF_ANGLES_X             16      //(float)
29 #define VF_ANGLES_Y             17      //(float)
30 #define VF_ANGLES_Z             18      //(float)
31
32 #define VF_DRAWWORLD            19      //(float)       //actually world model and sky
33 #define VF_DRAWENGINESBAR       20      //(float)
34 #define VF_DRAWCROSSHAIR        21      //(float)
35
36 #define VF_CL_VIEWANGLES        33      //(vector)      //sweet thing for RPGs/...
37 #define VF_CL_VIEWANGLES_X      34      //(float)
38 #define VF_CL_VIEWANGLES_Y      35      //(float)
39 #define VF_CL_VIEWANGLES_Z      36      //(float)
40
41 #define VF_PERSPECTIVE          200 //(float)
42 #define VF_CLEARSCREEN          201 //(float)
43
44 #define RF_VIEWMODEL            1       // The entity is never drawn in mirrors. In engines with realtime lighting, it casts no shadows.
45 #define RF_EXTERNALMODEL        2       // The entity is appears in mirrors but not in the normal view. It does still cast shadows in engines with realtime lighting.
46 #define RF_DEPTHHACK            4       // The entity appears closer to the view than normal, either by scaling it wierdly or by just using a depthrange. This will usually be found in conjunction with RF_VIEWMODEL
47 #define RF_ADDITIVE                     8       // Add the entity acording to it's alpha values instead of the normal blend
48 #define RF_USEAXIS                      16      // When set, the entity will use the v_forward, v_right and v_up globals instead of it's angles field for orientation. Angles will be ignored compleatly.
49                                                                 // Note that to use this properly, you'll NEED to use the predraw function to set the globals.
50 //#define RF_DOUBLESIDED                32
51 #define RF_USETRANSPARENTOFFSET 64 // Allows QC to customize origin used for transparent sorting via transparent_origin global, helps to fix transparent sorting bugs on a very large entities
52 #define RF_NOCULL                               128 // do not cull this entity using r_cullentities, for large outdoor entities (asteroids on the sky. etc)
53
54 #define RF_FULLBRIGHT                   256
55 #define RF_NOSHADOW                             512
56
57 extern cvar_t csqc_progname;    //[515]: csqc crc check and right csprogs name according to progs.dat
58 extern cvar_t csqc_progcrc;
59 extern cvar_t csqc_progsize;
60
61 void CL_VM_PreventInformationLeaks(void);
62
63 qboolean MakeDownloadPacket(const char *filename, unsigned char *data, size_t len, int crc, int cnt, sizebuf_t *buf, int protocol);
64
65 qboolean CL_VM_GetEntitySoundOrigin(int entnum, vec3_t out);
66
67 qboolean CL_VM_TransformView(int entnum, matrix4x4_t *viewmatrix, mplane_t *clipplane, vec3_t visorigin);
68
69 #endif