CSQC fixes (less broken, still not spec compliant)
[divverent/darkplaces.git] / csprogs.h
1 #ifndef CSPROGS_H
2 #define CSPROGS_H
3
4 #define CL_MAX_EDICTS  (1<<12)
5
6 #define ENTMASK_ENGINE                          1
7 #define ENTMASK_ENGINEVIEWMODELS        2
8 #define ENTMASK_NORMAL                          4
9
10 #define VF_MIN                  1       //(vector)
11 #define VF_MIN_X                2       //(float)
12 #define VF_MIN_Y                3       //(float)
13 #define VF_SIZE                 4       //(vector) (viewport size)
14 #define VF_SIZE_Y               5       //(float)
15 #define VF_SIZE_X               6       //(float)
16 #define VF_VIEWPORT             7       //(vector, vector)
17 #define VF_FOV                  8       //(vector)
18 #define VF_FOVX                 9       //(float)
19 #define VF_FOVY                 10      //(float)
20 #define VF_ORIGIN               11      //(vector)
21 #define VF_ORIGIN_X             12      //(float)
22 #define VF_ORIGIN_Y             13      //(float)
23 #define VF_ORIGIN_Z             14      //(float)
24 #define VF_ANGLES               15      //(vector)
25 #define VF_ANGLES_X             16      //(float)
26 #define VF_ANGLES_Y             17      //(float)
27 #define VF_ANGLES_Z             18      //(float)
28
29 #define VF_DRAWWORLD            19      //(float)       //actually world model and sky
30 #define VF_DRAWENGINESBAR       20      //(float)
31 #define VF_DRAWCROSSHAIR        21      //(float)
32
33 #define VF_CL_VIEWANGLES        33      //(vector)      //sweet thing for RPGs/...
34 #define VF_CL_VIEWANGLES_X      34      //(float)
35 #define VF_CL_VIEWANGLES_Y      35      //(float)
36 #define VF_CL_VIEWANGLES_Z      36      //(float)
37
38 //#define VF_PERSPECTIVE                200
39
40 #define RF_VIEWMODEL            1       // The entity is never drawn in mirrors. In engines with realtime lighting, it casts no shadows.
41 #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.
42 #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
43 #define RF_ADDITIVE                     8       // Add the entity acording to it's alpha values instead of the normal blend
44 #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.
45                                                                 // Note that to use this properly, you'll NEED to use the predraw function to set the globals.
46 //#define RF_DOUBLESIDED                32
47
48 extern qboolean csqc_frame;
49 extern int csqc_buttons;
50 extern qboolean csqc_loaded;
51 extern vec3_t csqc_origin, csqc_angles;
52 extern int csqc_fieldoff_scale;
53 extern int csqc_fieldoff_renderflags;
54 extern int csqc_fieldoff_tag_entity;
55 extern int csqc_fieldoff_tag_index;
56 extern int csqc_fieldoff_dphitcontentsmask;
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 qboolean csqc_usecsqclistener;
60 extern matrix4x4_t csqc_listenermatrix;
61
62 #endif