#define PROGS_H
#include "pr_comp.h" // defs shared with qcc
-typedef struct link_s
-{
- int entitynumber;
- struct link_s *prev, *next;
-} link_t;
-
#define ENTITYGRIDAREAS 16
#define MAX_ENTITYCLUSTERS 16
// since the areagrid can have multiple references to one entity,
// we should avoid extensive checking on entities already encountered
int areagridmarknumber;
+ // mins/maxs passed to World_LinkEdict
+ vec3_t areamins, areamaxs;
// PROTOCOL_QUAKE, PROTOCOL_QUAKEDP, PROTOCOL_NEHAHRAMOVIE, PROTOCOL_QUAKEWORLD
// baseline values
}
edict_engineprivate_t;
-// LordHavoc: in an effort to eliminate time wasted on GetEdictFieldValue... see pr_edict.c for the functions which use these.
-extern int eval_gravity;
-extern int eval_button3;
-extern int eval_button4;
-extern int eval_button5;
-extern int eval_button6;
-extern int eval_button7;
-extern int eval_button8;
-extern int eval_button9;
-extern int eval_button10;
-extern int eval_button11;
-extern int eval_button12;
-extern int eval_button13;
-extern int eval_button14;
-extern int eval_button15;
-extern int eval_button16;
-extern int eval_buttonuse;
-extern int eval_buttonchat;
-extern int eval_glow_size;
-extern int eval_glow_trail;
-extern int eval_glow_color;
-extern int eval_items2;
-extern int eval_scale;
-extern int eval_alpha;
-extern int eval_renderamt; // HalfLife support
-extern int eval_rendermode; // HalfLife support
-extern int eval_fullbright;
-extern int eval_ammo_shells1;
-extern int eval_ammo_nails1;
-extern int eval_ammo_lava_nails;
-extern int eval_ammo_rockets1;
-extern int eval_ammo_multi_rockets;
-extern int eval_ammo_cells1;
-extern int eval_ammo_plasma;
-extern int eval_idealpitch;
-extern int eval_pitch_speed;
-extern int eval_viewmodelforclient;
-extern int eval_nodrawtoclient;
-extern int eval_exteriormodeltoclient;
-extern int eval_drawonlytoclient;
-extern int eval_ping;
-extern int eval_movement;
-extern int eval_pmodel;
-extern int eval_punchvector;
-extern int eval_viewzoom;
-extern int eval_clientcolors;
-extern int eval_tag_entity;
-extern int eval_tag_index;
-extern int eval_light_lev;
-extern int eval_color;
-extern int eval_style;
-extern int eval_pflags;
-extern int eval_cursor_active;
-extern int eval_cursor_screen;
-extern int eval_cursor_trace_start;
-extern int eval_cursor_trace_endpos;
-extern int eval_cursor_trace_ent;
-extern int eval_colormod;
-extern int eval_playermodel;
-extern int eval_playerskin;
-extern int eval_SendEntity;
-extern int eval_Version;
-extern int eval_customizeentityforclient;
-extern int eval_dphitcontentsmask;
-// DRESK - Support for Entity Contents Transition Event
-extern int eval_contentstransition;
-
-extern int gval_trace_dpstartcontents;
-extern int gval_trace_dphitcontents;
-extern int gval_trace_dphitq3surfaceflags;
-extern int gval_trace_dphittexturename;
-
-
-
-extern mfunction_t *SV_PlayerPhysicsQC;
-extern mfunction_t *EndFrameQC;
-//KrimZon - SERVER COMMANDS IN QUAKEC
-extern mfunction_t *SV_ParseClientCommandQC;
-
#endif
}
prvm_edict_t;
-// LordHavoc: in an effort to eliminate time wasted on GetEdictFieldValue... see pr_edict.c for the functions which use these.
-extern int eval_gravity;
-extern int eval_button3;
-extern int eval_button4;
-extern int eval_button5;
-extern int eval_button6;
-extern int eval_button7;
-extern int eval_button8;
-extern int eval_buttonuse;
-extern int eval_buttonchat;
-extern int eval_glow_size;
-extern int eval_glow_trail;
-extern int eval_glow_color;
-extern int eval_items2;
-extern int eval_scale;
-extern int eval_alpha;
-extern int eval_renderamt; // HalfLife support
-extern int eval_rendermode; // HalfLife support
-extern int eval_fullbright;
-extern int eval_ammo_shells1;
-extern int eval_ammo_nails1;
-extern int eval_ammo_lava_nails;
-extern int eval_ammo_rockets1;
-extern int eval_ammo_multi_rockets;
-extern int eval_ammo_cells1;
-extern int eval_ammo_plasma;
-extern int eval_idealpitch;
-extern int eval_pitch_speed;
-extern int eval_viewmodelforclient;
-extern int eval_nodrawtoclient;
-extern int eval_exteriormodeltoclient;
-extern int eval_drawonlytoclient;
-extern int eval_ping;
-extern int eval_movement;
-extern int eval_pmodel;
-extern int eval_punchvector;
-extern int eval_viewzoom;
-extern int eval_clientcolors;
-extern int eval_tag_entity;
-extern int eval_tag_index;
-extern int eval_light_lev;
-extern int eval_color;
-extern int eval_style;
-extern int eval_pflags;
-extern int eval_cursor_active;
-extern int eval_cursor_screen;
-extern int eval_cursor_trace_start;
-extern int eval_cursor_trace_endpos;
-extern int eval_cursor_trace_ent;
-extern int eval_colormod;
-extern int eval_playermodel;
-extern int eval_playerskin;
-
-#define PRVM_GETEDICTFIELDVALUE(ed, fieldoffset) (fieldoffset ? (prvm_eval_t *)((unsigned char *)ed->v + fieldoffset) : NULL)
-
-extern mfunction_t *SV_PlayerPhysicsQC;
-extern mfunction_t *EndFrameQC;
-//KrimZon - SERVER COMMANDS IN QUAKEC
-extern mfunction_t *SV_ParseClientCommandQC;
+#define PRVM_EDICTFIELDVALUE(ed, fieldoffset) (fieldoffset ? (prvm_eval_t *)((int *)ed->v + fieldoffset) : NULL)
//============================================================================
extern dprograms_t *progs;
-extern mfunction_t *prog->functions;
+extern mfunction_t *pr_functions;
extern char *pr_strings;
extern int pr_stringssize;
extern ddef_t *pr_globaldefs;
void PR_PrintState(void);
void PR_Crash (void);
-void SV_IncreaseEdicts(void);
-
prvm_edict_t *ED_Alloc (void);
void ED_Free (prvm_edict_t *ed);
void ED_ClearEdict (prvm_edict_t *e);
void ED_LoadFromFile (const char *data);
prvm_edict_t *EDICT_NUM_ERROR(int n, char *filename, int fileline);
-#define PRVM_EDICT_NUM(n) (((n) >= 0 && (n) < prog->max_edicts) ? prog->edicts + (n) : EDICT_NUM_ERROR(n, __FILE__, __LINE__))
-#define EDICT_NUM_UNSIGNED(n) (((n) < prog->max_edicts) ? prog->edicts + (n) : EDICT_NUM_ERROR(n, __FILE__, __LINE__))
+#define PRVM_EDICT_NUM(n) (((unsigned int)(n) < (unsigned int)prog->max_edicts) ? prog->edicts + (n) : EDICT_NUM_ERROR(n, __FILE__, __LINE__))
//int NUM_FOR_EDICT_ERROR(prvm_edict_t *e);
#define PRVM_NUM_FOR_EDICT(e) ((int)((prvm_edict_t *)(e) - prog->edicts))
const char *PRVM_GetString(int num);
int PR_SetQCString(const char *s);
int PRVM_SetEngineString(const char *s);
+int PRVM_SetTempString(const char *s);
char *PR_AllocString(int bufferlength);
void PR_FreeString(char *s);