X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=progs.h;h=cd692f51dd33640cc3cbcb5c16ff8a438f56c2bb;hb=d754dc235e18fafe7ccf6ea5f791cd4799128155;hp=9fdaffd44b302ea3b28b7e80f041a11e5a74815b;hpb=b132ccbd81d360fc065fa54fc846fe416c62e66e;p=xonotic%2Fdarkplaces.git diff --git a/progs.h b/progs.h index 9fdaffd4..cd692f51 100644 --- 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; @@ -120,6 +118,21 @@ 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 GETEDICTFIELDVALUE(ed, fieldoffset) (fieldoffset ? (eval_t *)((qbyte *)ed->v + fieldoffset) : NULL) @@ -146,14 +159,22 @@ extern int pr_edictareasize; // LordHavoc: for bounds checking //============================================================================ 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); + +void *PR_Alloc (size_t buffersize); +void PR_Free (void *buffer); +void PR_FreeAll (void); void PR_Profile_f (void); +void PR_PrintState(void); void PR_Crash (void); +void SV_IncreaseEdicts(void); + edict_t *ED_Alloc (void); void ED_Free (edict_t *ed); void ED_ClearEdict (edict_t *e); @@ -161,7 +182,7 @@ 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); @@ -172,9 +193,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) @@ -220,7 +242,7 @@ void ED_PrintEdicts (void); void ED_PrintNum (int ent); #define PR_GetString(num) (pr_strings + num) -#define PR_SetString(s) ((int) (s - pr_strings)) +#define PR_SetString(s) ((s) != NULL ? (int) (s - pr_strings) : 0) #endif