now progs and server really are separated :)

This commit is contained in:
Bill Currie 2001-01-03 07:08:28 +00:00
parent 0192ed40c3
commit 5e86c729fa
4 changed files with 37 additions and 31 deletions

View file

@ -138,9 +138,6 @@ void PR_RunError (struct progs_s *pr, char *error, ...) __attribute__((format(pr
void ED_PrintEdicts (struct progs_s *pr); void ED_PrintEdicts (struct progs_s *pr);
void ED_PrintNum (struct progs_s *pr, int ent); void ED_PrintNum (struct progs_s *pr, int ent);
void ED_Count (struct progs_s *pr); void ED_Count (struct progs_s *pr);
void ED_PrintEdict_f (void);
void ED_PrintEdicts_f (void);
void ED_Count_f (void);
void PR_Profile (struct progs_s *pr); void PR_Profile (struct progs_s *pr);
eval_t *GetEdictFieldValue(struct progs_s *pr, edict_t *ed, char *field); eval_t *GetEdictFieldValue(struct progs_s *pr, edict_t *ed, char *field);
@ -201,6 +198,9 @@ typedef struct progs_s {
int null_bad; int null_bad;
int crc; int crc;
void (*unlink)(edict_t *ent);
void (*flush)(void);
} progs_t; } progs_t;
#endif // _PROGS_H #endif // _PROGS_H

View file

@ -380,8 +380,6 @@ extern cvar_t *deathmatch;
extern cvar_t *fraglimit; extern cvar_t *fraglimit;
extern cvar_t *timelimit; extern cvar_t *timelimit;
extern cvar_t *r_skyname;
extern server_static_t svs; // persistant server info extern server_static_t svs; // persistant server info
extern server_t sv; // local server extern server_t sv; // local server

View file

@ -119,7 +119,8 @@ ED_Alloc (progs_t *pr)
Con_Printf ("WARNING: ED_Alloc: no free edicts\n"); Con_Printf ("WARNING: ED_Alloc: no free edicts\n");
i--; // step on whatever is the last edict i--; // step on whatever is the last edict
e = EDICT_NUM (pr, i); e = EDICT_NUM (pr, i);
SV_UnlinkEdict (e); if (pr->unlink)
pr->unlink (e);
} else } else
(*(pr)->num_edicts)++; (*(pr)->num_edicts)++;
e = EDICT_NUM (pr, i); e = EDICT_NUM (pr, i);
@ -137,7 +138,8 @@ ED_Alloc (progs_t *pr)
void void
ED_Free (progs_t *pr, edict_t *ed) ED_Free (progs_t *pr, edict_t *ed)
{ {
SV_UnlinkEdict (ed); // unlink from world bsp if (pr->unlink)
pr->unlink (ed); // unlink from world bsp
ed->free = true; ed->free = true;
ed->v.model = 0; ed->v.model = 0;
@ -903,7 +905,8 @@ ED_LoadFromFile (progs_t *pr, char *data)
pr->pr_global_struct->self = EDICT_TO_PROG (pr, ent); pr->pr_global_struct->self = EDICT_TO_PROG (pr, ent);
PR_ExecuteProgram (pr, func - pr->pr_functions); PR_ExecuteProgram (pr, func - pr->pr_functions);
SV_FlushSignon (); if (pr->flush)
pr->flush ();
} }
Con_DPrintf ("%i entities inhibited\n", inhibit); Con_DPrintf ("%i entities inhibited\n", inhibit);
@ -1117,29 +1120,18 @@ PR_LoadProgs (progs_t *pr)
// list // list
} }
/*
PR_Init
*/
void
PR_Init (void)
{
Cmd_AddCommand ("edict", ED_PrintEdict_f);
Cmd_AddCommand ("edicts", ED_PrintEdicts_f);
Cmd_AddCommand ("edictcount", ED_Count_f);
Cmd_AddCommand ("profile", PR_Profile_f);
}
void void
PR_Init_Cvars (void) PR_Init_Cvars (void)
{ {
r_skyname =
Cvar_Get ("r_skyname", "", CVAR_SERVERINFO, "name of skybox");
pr_boundscheck = pr_boundscheck =
Cvar_Get ("pr_boundscheck", "1", CVAR_NONE, Cvar_Get ("pr_boundscheck", "1", CVAR_NONE,
"Server progs bounds checking"); "Server progs bounds checking");
} }
void
PR_Init (void)
{
}
edict_t * edict_t *
EDICT_NUM (progs_t *pr, int n) EDICT_NUM (progs_t *pr, int n)

View file

@ -40,9 +40,11 @@
#include "cmd.h" #include "cmd.h"
#include "progs.h" #include "progs.h"
#include "server.h" #include "server.h"
#include "world.h"
int eval_alpha, eval_scale, eval_glowsize, eval_glowcolor, eval_colormod; int eval_alpha, eval_scale, eval_glowsize, eval_glowcolor, eval_colormod;
progs_t sv_progs; progs_t sv_progs;
cvar_t *r_skyname;
func_t EndFrame; func_t EndFrame;
func_t SpectatorConnect; func_t SpectatorConnect;
@ -78,14 +80,6 @@ FindEdictFieldOffsets (progs_t *pr)
} }
} }
void
SV_Progs_Init (void)
{
sv_progs.edicts = &sv.edicts;
sv_progs.num_edicts = &sv.num_edicts;
sv_progs.time = &sv.time;
}
void void
ED_PrintEdicts_f (void) ED_PrintEdicts_f (void)
{ {
@ -137,3 +131,25 @@ ED_Parse_Extra_Fields (progs_t *pr, char *key, char *value)
} }
return 0; return 0;
} }
void
SV_Progs_Init (void)
{
sv_progs.edicts = &sv.edicts;
sv_progs.num_edicts = &sv.num_edicts;
sv_progs.time = &sv.time;
sv_progs.unlink = SV_UnlinkEdict;
sv_progs.flush = SV_FlushSignon;
Cmd_AddCommand ("edict", ED_PrintEdict_f);
Cmd_AddCommand ("edicts", ED_PrintEdicts_f);
Cmd_AddCommand ("edictcount", ED_Count_f);
Cmd_AddCommand ("profile", PR_Profile_f);
}
void
SV_Progs_Init_Cvars (void)
{
r_skyname =
Cvar_Get ("r_skyname", "", CVAR_SERVERINFO, "name of skybox");
}