DarkPlaces
Game engine based on the Quake 1 engine by id Software, developed by LadyHavoc
 
csprogs.h
Go to the documentation of this file.
1/*
2Copyright (C) 2006-2021 DarkPlaces contributors
3
4This program is free software; you can redistribute it and/or
5modify it under the terms of the GNU General Public License
6as published by the Free Software Foundation; either version 2
7of the License, or (at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
13See the GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program; if not, write to the Free Software
17Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
19*/
20
21#ifndef CSPROGS_H
22#define CSPROGS_H
23
24// LadyHavoc: changed to match MAX_EDICTS
25#define CL_MAX_EDICTS MAX_EDICTS
26
27#define ENTMASK_ENGINE 1
28#define ENTMASK_ENGINEVIEWMODELS 2
29#define ENTMASK_NORMAL 4
30
31#define VF_MIN 1 //(vector)
32#define VF_MIN_X 2 //(float)
33#define VF_MIN_Y 3 //(float)
34#define VF_SIZE 4 //(vector) (viewport size)
35#define VF_SIZE_X 5 //(float)
36#define VF_SIZE_Y 6 //(float)
37#define VF_VIEWPORT 7 //(vector, vector)
38#define VF_FOV 8 //(vector)
39#define VF_FOVX 9 //(float)
40#define VF_FOVY 10 //(float)
41#define VF_ORIGIN 11 //(vector)
42#define VF_ORIGIN_X 12 //(float)
43#define VF_ORIGIN_Y 13 //(float)
44#define VF_ORIGIN_Z 14 //(float)
45#define VF_ANGLES 15 //(vector)
46#define VF_ANGLES_X 16 //(float)
47#define VF_ANGLES_Y 17 //(float)
48#define VF_ANGLES_Z 18 //(float)
49
50#define VF_DRAWWORLD 19 //(float) //actually world model and sky
51#define VF_DRAWENGINESBAR 20 //(float)
52#define VF_DRAWCROSSHAIR 21 //(float)
53
54#define VF_CL_VIEWANGLES 33 //(vector) //sweet thing for RPGs/...
55#define VF_CL_VIEWANGLES_X 34 //(float)
56#define VF_CL_VIEWANGLES_Y 35 //(float)
57#define VF_CL_VIEWANGLES_Z 36 //(float)
58
59// FTEQW's extension range
60#define VF_PERSPECTIVE 200 //(float)
61
62// what is this doing here? This is a DP extension introduced by Black, should be in 4xx range
63#define VF_CLEARSCREEN 201 //(float)
64
65// what is this doing here? This is a DP extension introduced by VorteX, should be in 4xx range
66#define VF_FOG_DENSITY 202 //(float)
67#define VF_FOG_COLOR 203 //(vector)
68#define VF_FOG_COLOR_R 204 //(float)
69#define VF_FOG_COLOR_G 205 //(float)
70#define VF_FOG_COLOR_B 206 //(float)
71#define VF_FOG_ALPHA 207 //(float)
72#define VF_FOG_START 208 //(float)
73#define VF_FOG_END 209 //(float)
74#define VF_FOG_HEIGHT 210 //(float)
75#define VF_FOG_FADEDEPTH 211 //(float)
76
77// DP's extension range
78#define VF_MAINVIEW 400 //(float)
79#define VF_MINFPS_QUALITY 401 //(float)
80
81#define RF_VIEWMODEL 1 // The entity is never drawn in mirrors. In engines with realtime lighting, it casts no shadows.
82#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.
83#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
84#define RF_ADDITIVE 8 // Add the entity acording to it's alpha values instead of the normal blend
85#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.
86 // Note that to use this properly, you'll NEED to use the predraw function to set the globals.
87//#define RF_DOUBLESIDED 32
88#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
89#define RF_WORLDOBJECT 128 // for large outdoor entities that should not be culled
90#define RF_MODELLIGHT 4096 // CSQC-set model light
91#define RF_DYNAMICMODELLIGHT 8192 // origin-dependent model light
92
93#define RF_FULLBRIGHT 256
94#define RF_NOSHADOW 512
95
96extern cvar_t csqc_progname; //[515]: csqc crc check and right csprogs name according to progs.dat
97extern cvar_t csqc_progcrc;
100extern cvar_t csqc_lowres;
101
103
104qbool MakeDownloadPacket(const char *filename, unsigned char *data, size_t len, int crc, int cnt, sizebuf_t *buf, int protocol);
105
107
108qbool CL_VM_TransformView(int entnum, matrix4x4_t *viewmatrix, mplane_t *clipplane, vec3_t visorigin);
109
110void CL_VM_Init(void);
111void CL_VM_ShutDown(void);
113void CL_VM_UpdateShowingScoresState(int showingscores);
114qbool CL_VM_InputEvent(int eventtype, float x, float y);
115qbool CL_VM_ConsoleCommand(const char *text, size_t textlen);
116void CL_VM_UpdateDmgGlobals(int dmg_take, int dmg_save, vec3_t dmg_origin);
118qbool CL_VM_Event_Sound(int sound_num, float volume, int channel, float attenuation, int ent, vec3_t pos, int flags, float speed);
120void CL_VM_Parse_StuffCmd(const char *msg, size_t msg_len);
121void CL_VM_Parse_CenterPrint(const char *msg, size_t msg_len);
123int CL_GetTagMatrix(prvm_prog_t *prog, matrix4x4_t *out, prvm_edict_t *ent, int tagindex, prvm_vec_t *shadingorigin);
124void CL_GetEntityMatrix(prvm_prog_t *prog, prvm_edict_t *ent, matrix4x4_t *out, qbool viewmatrix);
125void QW_CL_StartUpload(unsigned char *data, int size);
126
127void CSQC_UpdateNetworkTimes(double newtime, double oldtime);
128void CSQC_AddPrintText(const char *msg, size_t msg_len);
129void CSQC_ReadEntities(void);
132void CSQC_Predraw(prvm_edict_t *ed);
133void CSQC_Think(prvm_edict_t *ed);
134qbool CSQC_AddRenderEdict(prvm_edict_t *ed, int edictnum);//csprogs.c
135void CSQC_R_RecalcView(void);
136
138
139int CL_VM_GetViewEntity(void);
140
141#endif
int CL_VM_GetViewEntity(void)
Definition csprogs.c:1238
cvar_t csqc_progcrc
Definition cl_main.c:36
void CL_VM_PreventInformationLeaks(void)
Definition csprogs.c:36
qbool MakeDownloadPacket(const char *filename, unsigned char *data, size_t len, int crc, int cnt, sizebuf_t *buf, int protocol)
Definition csprogs.c:940
void CSQC_RelinkAllEntities(int drawmask)
Definition cl_main.c:2021
qbool CL_VM_ConsoleCommand(const char *text, size_t textlen)
Definition csprogs.c:573
void CSQC_AddPrintText(const char *msg, size_t msg_len)
Definition csprogs.c:656
void CSQC_UpdateNetworkTimes(double newtime, double oldtime)
Definition csprogs.c:234
qbool CL_VM_Event_Sound(int sound_num, float volume, int channel, float attenuation, int ent, vec3_t pos, int flags, float speed)
Definition csprogs.c:721
void CL_VM_Parse_StuffCmd(const char *msg, size_t msg_len)
Definition csprogs.c:604
int CL_GetTagMatrix(prvm_prog_t *prog, matrix4x4_t *out, prvm_edict_t *ent, int tagindex, prvm_vec_t *shadingorigin)
Definition clvm_cmds.c:3286
void CL_VM_UpdateShowingScoresState(int showingscores)
Definition csprogs.c:714
void CSQC_RelinkCSQCEntities(void)
void CL_VM_UpdateIntermissionState(int intermission)
Definition csprogs.c:707
void CL_VM_Init(void)
Definition csprogs.c:980
cvar_t csqc_progsize
Definition cl_main.c:37
cvar_t csqc_polygons_defaultmaterial_nocullface
Definition cl_main.c:39
qbool CL_VM_InputEvent(int eventtype, float x, float y)
Definition csprogs.c:459
cvar_t csqc_progname
Definition cl_main.c:35
void CSQC_Think(prvm_edict_t *ed)
Definition csprogs.c:295
void CSQC_ReadEntities(void)
Definition csprogs.c:798
int CL_GetPitchSign(prvm_prog_t *prog, prvm_edict_t *ent)
Definition clvm_cmds.c:3222
void CL_VM_ShutDown(void)
Definition csprogs.c:1154
qbool CL_VM_Parse_TempEntity(void)
Definition csprogs.c:579
qbool CSQC_AddRenderEdict(prvm_edict_t *ed, int edictnum)
Definition csprogs.c:311
cvar_t csqc_lowres
Definition cl_main.c:40
qbool CL_VM_GetEntitySoundOrigin(int entnum, vec3_t out)
Definition csprogs.c:1172
qbool CL_VM_TransformView(int entnum, matrix4x4_t *viewmatrix, mplane_t *clipplane, vec3_t visorigin)
Definition csprogs.c:1196
void QW_CL_StartUpload(unsigned char *data, int size)
Definition cl_parse.c:942
void CL_VM_Parse_CenterPrint(const char *msg, size_t msg_len)
Definition csprogs.c:689
void CL_VM_UpdateDmgGlobals(int dmg_take, int dmg_save, vec3_t dmg_origin)
Definition csprogs.c:222
void CSQC_Predraw(prvm_edict_t *ed)
Definition csprogs.c:283
void CL_GetEntityMatrix(prvm_prog_t *prog, prvm_edict_t *ent, matrix4x4_t *out, qbool viewmatrix)
Definition clvm_cmds.c:3230
void CSQC_R_RecalcView(void)
Definition clvm_cmds.c:756
model_t * CL_GetModelByIndex(int modelindex)
vector size
float flags
float drawmask
float modelindex
float intermission
float entnum
GLint GLenum GLint GLint y
Definition glquake.h:651
GLint GLenum GLint x
Definition glquake.h:651
GLsizeiptr const GLvoid * data
Definition glquake.h:639
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition glquake.h:657
float dmg_take
Definition progsdefs.qc:198
float dmg_save
Definition progsdefs.qc:199
vec_t vec3_t[3]
Definition qtypes.h:71
bool qbool
Definition qtypes.h:9
float prvm_vec_t
Definition qtypes.h:55
cvar_t volume
Definition snd_main.c:166
Definition cvar.h:66