]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - progs.h
reworked sendsignon logic so that unlimited sends are allowed once
[xonotic/darkplaces.git] / progs.h
diff --git a/progs.h b/progs.h
index 56cecb90148bbd76b16f0b0860511caa9444c734..1c0fee0cf69196b9429bc60332e4d49d7b23b9d1 100644 (file)
--- a/progs.h
+++ b/progs.h
@@ -22,12 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #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
 
@@ -38,6 +32,9 @@ typedef struct edict_engineprivate_s
        // sv.time when the object was freed (to prevent early reuse which could
        // mess up client interpolation or obscure severe QuakeC bugs)
        float freetime;
+       // initially false to prevent projectiles from moving on their first frame
+       // (even if they were spawned by an synchronous client think)
+       qboolean move;
 
        // cached cluster links for quick stationary object visibility checking
        vec3_t cullmins, cullmaxs;
@@ -49,8 +46,10 @@ typedef struct edict_engineprivate_s
        // 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_QUAKE, PROTOCOL_QUAKEDP, PROTOCOL_NEHAHRAMOVIE, PROTOCOL_QUAKEWORLD
        // baseline values
        entity_state_t baseline;
 
@@ -63,64 +62,6 @@ typedef struct edict_engineprivate_s
 }
 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_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 mfunction_t *SV_PlayerPhysicsQC;
-extern mfunction_t *EndFrameQC;
-//KrimZon - SERVER COMMANDS IN QUAKEC
-extern mfunction_t *SV_ParseClientCommandQC;
-
 #endif
 
 
@@ -172,7 +113,7 @@ typedef struct edict_engineprivate_s
        // we should avoid extensive checking on entities already encountered
        int areagridmarknumber;
 
-       // PROTOCOL_QUAKE, PROTOCOL_QUAKEDP, PROTOCOL_NEHAHRAMOVIE
+       // PROTOCOL_QUAKE, PROTOCOL_QUAKEDP, PROTOCOL_NEHAHRAMOVIE, PROTOCOL_QUAKEWORLD
        // baseline values
        entity_state_t baseline;
 
@@ -196,71 +137,12 @@ typedef struct edict_s
 }
 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;
@@ -296,8 +178,6 @@ void PR_Profile_f (void);
 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);
@@ -312,8 +192,7 @@ void ED_ParseGlobals (const char *data);
 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))
@@ -364,6 +243,7 @@ void ED_PrintNum (int ent);
 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);