]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - progs.h
NetConn_ReceivedMessage now verifies that the packet's internal length value matches...
[xonotic/darkplaces.git] / progs.h
diff --git a/progs.h b/progs.h
index 1483c3b45342929809787a6cd3930841a0ec0013..e4ea1410931d48ce32ab401f9d07e45bc9afffa2 100644 (file)
--- a/progs.h
+++ b/progs.h
@@ -57,13 +57,9 @@ typedef struct edict_engineprivate_s
        // we should avoid extensive checking on entities already encountered
        int areagridmarknumber;
 
-       // old entity protocol, not used
-#ifdef QUAKEENTITIES
+       // PROTOCOL_QUAKE
        // baseline values
        entity_state_t baseline;
-       // LordHavoc: previous frame
-       entity_state_t deltabaseline;
-#endif
 
        // LordHavoc: gross hack to make floating items still work
        int suspendedinairflag;
@@ -93,6 +89,8 @@ 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;
@@ -123,6 +121,18 @@ 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 GETEDICTFIELDVALUE(ed, fieldoffset) (fieldoffset ? (eval_t *)((qbyte *)ed->v + fieldoffset) : NULL)
 
@@ -137,6 +147,7 @@ extern mfunction_t *SV_ParseClientCommandQC;
 extern dprograms_t             *progs;
 extern mfunction_t             *pr_functions;
 extern char                    *pr_strings;
+extern int                             pr_stringssize;
 extern ddef_t                  *pr_globaldefs;
 extern ddef_t                  *pr_fielddefs;
 extern dstatement_t    *pr_statements;
@@ -146,12 +157,24 @@ extern    float                   *pr_globals;                    // same as pr_global_struct
 extern int                             pr_edict_size;  // in bytes
 extern int                             pr_edictareasize; // LordHavoc: for bounds checking
 
+extern int                             pr_maxknownstrings;
+extern int                             pr_numknownstrings;
+extern const char              **pr_knownstrings;
+
 //============================================================================
 
 void PR_Init (void);
+void PR_Shutdown (void);
 
 void PR_ExecuteProgram (func_t fnum, const char *errormessage);
-void PR_LoadProgs (void);
+void PR_LoadProgs (const char *progsname);
+
+#define PR_Alloc(buffersize) _PR_Alloc(buffersize, __FILE__, __LINE__)
+#define PR_Free(buffer) _PR_Free(buffer, __FILE__, __LINE__)
+#define PR_FreeAll() _PR_FreeAll(__FILE__, __LINE__)
+void *_PR_Alloc (size_t buffersize, const char *filename, int fileline);
+void _PR_Free (void *buffer, const char *filename, int fileline);
+void _PR_FreeAll (const char *filename, int fileline);
 
 void PR_Profile_f (void);
 
@@ -164,10 +187,7 @@ edict_t *ED_Alloc (void);
 void ED_Free (edict_t *ed);
 void ED_ClearEdict (edict_t *e);
 
-char   *ED_NewString (const char *string);
-// returns a copy of the string allocated from the server's string heap
-
-void ED_Print (edict_t *ed);
+void ED_Print(edict_t *ed);
 void ED_Write (qfile_t *f, edict_t *ed);
 const char *ED_ParseEdict (const char *data, edict_t *ent);
 
@@ -178,9 +198,10 @@ void ED_LoadFromFile (const char *data);
 
 edict_t *EDICT_NUM_ERROR(int n, char *filename, int fileline);
 #define EDICT_NUM(n) (((n) >= 0 && (n) < sv.max_edicts) ? sv.edicts + (n) : EDICT_NUM_ERROR(n, __FILE__, __LINE__))
+#define EDICT_NUM_UNSIGNED(n) (((n) < sv.max_edicts) ? sv.edicts + (n) : EDICT_NUM_ERROR(n, __FILE__, __LINE__))
 
 //int NUM_FOR_EDICT_ERROR(edict_t *e);
-#define NUM_FOR_EDICT(e) ((edict_t *)(e) - sv.edicts)
+#define NUM_FOR_EDICT(e) ((int)((edict_t *)(e) - sv.edicts))
 //int NUM_FOR_EDICT(edict_t *e);
 
 #define        NEXT_EDICT(e) ((e) + 1)
@@ -225,8 +246,11 @@ void PR_Execute_ProgsLoaded(void);
 void ED_PrintEdicts (void);
 void ED_PrintNum (int ent);
 
-#define PR_GetString(num) (pr_strings + num) 
-#define PR_SetString(s)   ((int) (s) ? (s - pr_strings) : 0)
+const char *PR_GetString(int num);
+int PR_SetQCString(const char *s);
+int PR_SetEngineString(const char *s);
+char *PR_AllocString(int bufferlength);
+void PR_FreeString(char *s);
 
 #endif