FTEQW
Documentation of the FTE engine source tree.
progs.h
Go to the documentation of this file.
1/*
2Copyright (C) 1996-1997 Id Software, Inc.
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
21struct client_s;
22struct edict_s;
23
24#define MAX_PROGS 64
25#define MAXADDONS 16
26
28#define NewGetEdictFieldValue GetEdictFieldValue
29void Q_SetProgsParms(qboolean forcompiler);
30void PR_Deinit(void); //server shutting down
33{
37};
39void PR_SpawnInitialEntities(const char *file);
40void PR_RegisterFields(void);
41void PR_Init(void);
42void QDECL ED_Spawned (struct edict_s *ent, int loading);
43void SSQC_MapEntityEdited(int modelidx, int idx, const char *newdata);
44void SV_SetEntityButtons(struct edict_s *ent, unsigned int buttonbits);
45qboolean SV_RunFullQCMovement(struct client_s *client, usercmd_t *ucmd);
47qboolean PR_ParseClusterEvent(const char *dest, const char *source, const char *cmd, const char *info);
48qboolean PR_UserCmd(const char *cmd);
49qboolean PR_ConsoleCmd(const char *cmd);
50
51void PRSV_RunThreads(void);
52
53
54#define PR_MAINPROGS 0 //this is a constant that should really be phased out. But seeing as QCLIB requires some sort of master progs due to extern funcs...
55 //maybe go through looking for extern funcs, and remember which were not allocated. It would then be a first come gets priority. Not too bad I supppose.
56
57extern int compileactive;
58
59typedef enum {PROG_NONE, PROG_QW, PROG_NQ, PROG_H2, PROG_PREREL, PROG_TENEBRAE, PROG_UNKNOWN} progstype_t; //unknown obtains NQ behaviour
61
62#include "../qclib/progslib.h"
63
64typedef struct edict_s
65{
66 //these 5 shared with qclib
68 float freetime; // sv.time when the object was freed
69 int entnum;
70 unsigned int fieldsize;
71 pbool readonly; //world
72#ifdef VM_Q1
75#else
76 union {
79 };
80#endif
81 /*qc lib doesn't care about the rest*/
82
83 /*these are shared with csqc*/
84#ifdef USEAREAGRID
85 areagridlink_t gridareas[AREAGRIDPERENT]; //on overflow, use the inefficient overflow list.
86 size_t gridareasequence; //used to avoid iterrating the same ent twice.
87#else
89#endif
93#ifdef USERBE
95#endif
96 /*csqc doesn't reference the rest*/
97
98#ifdef NQPROT
99 float muzzletime; //nq clients need special handling to retain EF_MUZZLEFLASH while not breaking qw clients running nq mods.
100#endif
102// other fields from progs come immediately after
104
105
106
107
108
109#undef pr_global_struct
110#define pr_global_struct *pr_global_ptrs
111
113
114extern pubprogfuncs_t *svprogfuncs; //instance
118#define HLEDICT_FROM_AREA(l) STRUCT_FROM_LINK(l,hledict_t,area)
119#define Q2EDICT_FROM_AREA(l) STRUCT_FROM_LINK(l,q2edict_t,area)
120#define Q3EDICT_FROM_AREA(l) STRUCT_FROM_LINK(l,q3serverEntity_t,area)
121
125
127extern func_t EndFrameQC;
128
130extern cvar_t pr_maxedicts; //used in too many places...
133extern int pr_teamfield;
134
135qboolean PR_QCChat(char *text, int say_type);
136
137void PR_ClientUserInfoChanged(char *name, char *oldivalue, char *newvalue);
138void PR_PreShutdown(void);
139void PR_LocalInfoChanged(char *name, char *oldivalue, char *newvalue);
141
142#ifdef VM_LUA
143qboolean PR_LoadLua(void);
144#endif
145#ifdef VM_Q1
146#define VMFSID_Q1QVM 57235 //the q1qvm zone tag that is freed when the module is purged.
147struct client_s;
148void Q1QVM_Shutdown(qboolean notifygame);
150void Q1QVM_ClientConnect(struct client_s *cl);
154void Q1QVM_PlayerPreThink(void);
155void Q1QVM_RunPlayerThink(void);
156void Q1QVM_PostThink(void);
157void Q1QVM_StartFrame(qboolean botsarespecialsnowflakes);
158void Q1QVM_Blocked(void);
159void Q1QVM_SendEntity(quint64_t sendflags);
160void Q1QVM_SetNewParms(void);
161void Q1QVM_SetChangeParms(void);
163void Q1QVM_GameCodePausedTic(float pausedduration);
164void Q1QVM_DropClient(struct client_s *cl);
165void Q1QVM_ChainMoved(void);
166void Q1QVM_EndFrame(void);
167#endif
168
qboolean
Definition: api_menu.h:34
cvar_t team
Definition: cl_main.c:151
client_state_t cl
Definition: cl_main.c:247
entity_t * ent
Definition: com_mesh.c:717
char * text
Definition: decomp.c:375
s
Definition: execloop.h:53
GLuint GLcharARB * name
Definition: glquake.h:155
GLsizei GLsizei GLcharARB * source
Definition: glquake.h:171
const char * var
Definition: pr_lua.c:225
int idx
Definition: pr_lua.c:221
cvar_t saved2
Definition: progs.h:131
void PR_ClientUserInfoChanged(char *name, char *oldivalue, char *newvalue)
Definition: pr_cmds.c:2600
void PR_LoadGlabalStruct(qboolean muted)
Definition: pr_cmds.c:858
cvar_t sv_maxaim
Definition: progs.h:132
cvar_t noexit
Definition: pr_cmds.c:62
qboolean PR_ParseClusterEvent(const char *dest, const char *source, const char *cmd, const char *info)
Definition: pr_cmds.c:2432
func_t EndFrameQC
Definition: pr_cmds.c:191
cvar_t dpcompat_nopreparse
Definition: progs.h:132
void Q1QVM_GameCodePausedTic(float pausedduration)
Definition: pr_q1qvm.c:2873
qboolean SV_RunFullQCMovement(struct client_s *client, usercmd_t *ucmd)
Definition: pr_cmds.c:10551
void PRSV_RunThreads(void)
Definition: pr_cmds.c:9220
void PR_SpawnInitialEntities(const char *file)
Definition: pr_cmds.c:1891
cvar_t scratch3
Definition: progs.h:131
cvar_t saved4
Definition: progs.h:131
qboolean Q1QVM_UserInfoChanged(edict_t *player, qboolean after)
Definition: pr_q1qvm.c:2793
void Q1QVM_SetNewParms(void)
Definition: pr_q1qvm.c:2858
progstype_t
Definition: progs.h:59
@ PROG_H2
Definition: progs.h:59
@ PROG_NQ
Definition: progs.h:59
@ PROG_UNKNOWN
Definition: progs.h:59
@ PROG_NONE
Definition: progs.h:59
@ PROG_PREREL
Definition: progs.h:59
@ PROG_QW
Definition: progs.h:59
@ PROG_TENEBRAE
Definition: progs.h:59
void Q1QVM_RunPlayerThink(void)
Definition: pr_q1qvm.c:2819
cvar_t gamecfg
Definition: progs.h:131
progsnum_t clmainprogs
cvar_t pr_ssqc_coreonerror
Definition: progs.h:132
cvar_t nomonsters
Definition: progs.h:131
void PR_Init(void)
Definition: pr_cmds.c:1589
void Q1QVM_SetChangeParms(void)
Definition: pr_q1qvm.c:2863
qboolean PR_LoadQ1QVM(void)
Definition: pr_q1qvm.c:2389
void SV_SetEntityButtons(struct edict_s *ent, unsigned int buttonbits)
Definition: pr_cmds.c:10424
void SVQ1_CvarChanged(cvar_t *var)
Definition: pr_cmds.c:1667
cvar_t sv_aim
Definition: progs.h:132
void SSQC_MapEntityEdited(int modelidx, int idx, const char *newdata)
Definition: pr_cmds.c:2453
qboolean PR_UserCmd(const char *cmd)
Definition: pr_cmds.c:2487
func_t SV_PlayerPhysicsQC
Definition: pr_cmds.c:190
void Q1QVM_PlayerPreThink(void)
Definition: pr_q1qvm.c:2803
func_t SpectatorThink
Definition: pr_cmds.c:187
int compileactive
qboolean PR_KrimzonParseCommand(const char *s)
Definition: pr_cmds.c:2457
void Q1QVM_ClientConnect(struct client_s *cl)
Definition: pr_q1qvm.c:2701
initprogs_e
Definition: progs.h:33
@ INITPROGS_NORMAL
Definition: progs.h:34
@ INITPROGS_REQUIRE
Definition: progs.h:36
@ INITPROGS_EDITOR
Definition: progs.h:35
cvar_t savedgamecfg
Definition: progs.h:131
void Q1QVM_ChainMoved(void)
Definition: pr_q1qvm.c:2888
void PF_InitTempStrings(pubprogfuncs_t *inst)
Definition: pr_bgcmd.c:620
qboolean ssqc_deprecated_warned
Definition: pr_cmds.c:113
progparms_t svprogparms
Definition: pr_cmds.c:197
qboolean Q1QVM_GameConsoleCommand(void)
Definition: pr_q1qvm.c:2757
func_t SpectatorConnect
Definition: pr_cmds.c:186
void Q1QVM_Shutdown(qboolean notifygame)
Definition: pr_q1qvm.c:2316
void PR_LocalInfoChanged(char *name, char *oldivalue, char *newvalue)
Definition: pr_cmds.c:2618
void Q1QVM_SendEntity(quint64_t sendflags)
Definition: pr_q1qvm.c:2848
cvar_t scratch4
Definition: progs.h:131
void Q_InitProgs(enum initprogs_e flags)
Definition: pr_cmds.c:1953
cvar_t temp1
Definition: progs.h:131
void Q1QVM_DropClient(struct client_s *cl)
Definition: pr_q1qvm.c:2878
void QDECL ED_Spawned(struct edict_s *ent, int loading)
Definition: pr_cmds.c:276
qboolean PR_LoadLua(void)
Definition: pr_lua.c:3300
int pr_teamfield
Definition: pr_cmds.c:114
void PR_Deinit(void)
Definition: pr_cmds.c:813
void Q1QVM_EndFrame(void)
Definition: pr_q1qvm.c:2891
progsnum_t svmainprogs
qboolean Q1QVM_ClientSay(edict_t *player, qboolean team)
Definition: pr_q1qvm.c:2780
globalptrs_t * pr_global_ptrs
Definition: pr_cmds.c:194
progstype_t progstype
Definition: pr_cmds.c:199
cvar_t scratch2
Definition: progs.h:131
cvar_t scratch1
Definition: progs.h:131
qboolean PR_ConsoleCmd(const char *cmd)
Definition: pr_cmds.c:2570
void PR_PreShutdown(void)
Definition: pr_cmds.c:2635
void Q1QVM_StartFrame(qboolean botsarespecialsnowflakes)
Definition: pr_q1qvm.c:2841
qboolean Q1QVM_ClientCommand(void)
Definition: pr_q1qvm.c:2868
cvar_t saved1
Definition: progs.h:131
void Q1QVM_Blocked(void)
Definition: pr_q1qvm.c:2853
func_t SpectatorDisconnect
Definition: pr_cmds.c:188
qboolean PR_QCChat(char *text, int say_type)
Definition: pr_cmds.c:2343
void PR_RegisterFields(void)
Definition: pr_cmds.c:12759
struct edict_s edict_t
cvar_t pr_ssqc_memsize
Definition: pr_cmds.c:70
cvar_t saved3
Definition: progs.h:131
cvar_t pr_imitatemvdsv
Definition: progs.h:132
void Q_SetProgsParms(qboolean forcompiler)
Definition: pr_cmds.c:745
void Q1QVM_PostThink(void)
Definition: pr_q1qvm.c:2825
pubprogfuncs_t * svprogfuncs
Definition: pr_cmds.c:196
cvar_t pr_maxedicts
Definition: pr_cmds.c:76
ereftype_e
Definition: progslib.h:60
unsigned int pbool
Definition: progtype.h:62
pint_t progsnum_t
Definition: progtype.h:64
puint_t func_t
Definition: progtype.h:65
const char * file
Definition: qcc_pr_lex.c:2518
Definition: server.h:463
Definition: cvar.h:59
Definition: progs.h:65
link_t area
Definition: progs.h:88
enum ereftype_e ereftype
Definition: progs.h:67
entityrbe_t rbe
Definition: progs.h:94
pvscache_t pvsinfo
Definition: progs.h:90
extentvars_t * xv
Definition: progs.h:74
float muzzletime
Definition: progs.h:99
pbool readonly
Definition: progs.h:71
stdentvars_t * v
Definition: progs.h:73
int lastruntime
Definition: progs.h:91
areagridlink_t gridareas[AREAGRIDPERENT]
Definition: progs.h:85
int entnum
Definition: progs.h:69
size_t gridareasequence
Definition: progs.h:86
entity_state_t baseline
Definition: progs.h:101
unsigned int fieldsize
Definition: progs.h:70
stdentvars_t * xv
Definition: progs.h:78
float freetime
Definition: progs.h:68
int solidsize
Definition: progs.h:92
Definition: protocol.h:1155
Definition: progdefs.h:560
Definition: progdefs.h:424
Definition: progdefs.h:40
Definition: progslib.h:238
Definition: progslib.h:121
Definition: bspfile.h:939
Definition: progdefs.h:408
Definition: protocol.h:1285
unsigned int flags
Definition: valid.c:313