"DP_EF_FLAME "
"DP_EF_FULLBRIGHT "
"DP_EF_NODRAW "
+"DP_EF_NOSHADOW "
"DP_EF_RED "
"DP_EF_STARDUST "
"DP_ENT_ALPHA "
"DP_SV_EXTERIORMODELTOCLIENT "
"DP_SV_NODRAWTOCLIENT "
"DP_SV_PLAYERPHYSICS "
+"DP_SV_ROTATINGBMODEL "
"DP_SV_SETCOLOR "
"DP_SV_SLOWMO "
"DP_TE_BLOOD "
"KRIMZON_SV_PARSECLIENTCOMMAND "
"NEH_CMD_PLAY2 "
"NEH_RESTOREGAME "
+"TENEBRAE_GFX_DLIGHTS "
"TW_SV_STEPCONTROL "
;
char string[STRINGTEMP_LENGTH];
PF_VarString(0, string, sizeof(string));
- Con_Printf ("======SERVER ERROR in %s:\n%s\n", PR_GetString(pr_xfunction->s_name), string);
+ Con_Printf("======SERVER ERROR in %s:\n%s\n", PR_GetString(pr_xfunction->s_name), string);
ed = PROG_TO_EDICT(pr_global_struct->self);
- ED_Print (ed);
+ ED_Print(ed);
PF_ERROR("Program error");
}
char string[STRINGTEMP_LENGTH];
PF_VarString(0, string, sizeof(string));
- Con_Printf ("======OBJECT ERROR in %s:\n%s\n", PR_GetString(pr_xfunction->s_name), string);
+ Con_Printf("======OBJECT ERROR in %s:\n%s\n", PR_GetString(pr_xfunction->s_name), string);
ed = PROG_TO_EDICT(pr_global_struct->self);
- ED_Print (ed);
+ ED_Print(ed);
ED_Free (ed);
}
{
char string[STRINGTEMP_LENGTH];
PF_VarString(0, string, sizeof(string));
- SV_BroadcastPrintf("%s", string);
+ SV_BroadcastPrint(string);
}
/*
if (entnum < 1 || entnum > svs.maxclients || !svs.clients[entnum-1].active)
{
- Con_Printf ("tried to sprint to a non-client\n");
+ Con_Print("tried to sprint to a non-client\n");
return;
}
if (entnum < 1 || entnum > svs.maxclients || !svs.clients[entnum-1].active)
{
- Con_Printf ("tried to sprint to a non-client\n");
+ Con_Print("tried to sprint to a non-client\n");
return;
}
if (!*check)
{
- Con_Printf ("no precache: %s\n", samp);
+ Con_Printf("no precache: %s\n", samp);
return;
}
{
float *v1, *v2;
trace_t trace;
- int nomonsters;
+ int move;
edict_t *ent;
pr_xfunction->builtinsprofile += 30;
v1 = G_VECTOR(OFS_PARM0);
v2 = G_VECTOR(OFS_PARM1);
- nomonsters = G_FLOAT(OFS_PARM2);
+ move = G_FLOAT(OFS_PARM2);
ent = G_EDICT(OFS_PARM3);
- trace = SV_Move (v1, vec3_origin, vec3_origin, v2, nomonsters, ent);
+ trace = SV_Move (v1, vec3_origin, vec3_origin, v2, move, ent);
pr_global_struct->trace_allsolid = trace.allsolid;
pr_global_struct->trace_startsolid = trace.startsolid;
{
float *v1, *v2, *m1, *m2;
trace_t trace;
- int nomonsters;
+ int move;
edict_t *ent;
pr_xfunction->builtinsprofile += 30;
m1 = G_VECTOR(OFS_PARM1);
m2 = G_VECTOR(OFS_PARM2);
v2 = G_VECTOR(OFS_PARM3);
- nomonsters = G_FLOAT(OFS_PARM4);
+ move = G_FLOAT(OFS_PARM4);
ent = G_EDICT(OFS_PARM5);
- trace = SV_Move (v1, m1, m2, v2, nomonsters ? MOVE_NOMONSTERS : MOVE_NORMAL, ent);
+ trace = SV_Move (v1, m1, m2, v2, move, ent);
pr_global_struct->trace_allsolid = trace.allsolid;
pr_global_struct->trace_startsolid = trace.startsolid;
entnum = G_EDICTNUM(OFS_PARM0);
if (entnum < 1 || entnum > svs.maxclients || !svs.clients[entnum-1].active)
{
- Con_Printf("Can't stuffcmd to a non-client");
+ Con_Print("Can't stuffcmd to a non-client\n");
return;
}
str = G_STRING(OFS_PARM1);
if (developer.integer)
{
PF_VarString(0, string, sizeof(string));
- Con_Printf("%s",string);
+ Con_Print(string);
}
}
i = NUM_FOR_EDICT(ent);
if (i < 1 || i > svs.maxclients || !svs.clients[i-1].active)
{
- Con_Printf("tried to setspawnparms on a non-client\n");
+ Con_Print("tried to setspawnparms on a non-client\n");
return;
}
// check for overlap with a command
if (Cmd_Exists (name))
{
- Con_Printf ("PF_registercvar: %s is a command\n", name);
+ Con_Printf("PF_registercvar: %s is a command\n", name);
return;
}
if (entnum < 1 || entnum > svs.maxclients || !svs.clients[entnum-1].active)
{
- Con_Printf ("tried to setcolor a non-client\n");
+ Con_Print("tried to setcolor a non-client\n");
return;
}
if (modelindex < 1 || modelindex >= MAX_MODELS)
return NULL;
model = sv.models[modelindex];
- if (surfnum < 0 || surfnum >= model->brushq1.nummodelsurfaces)
+ if (surfnum < 0 || surfnum >= model->nummodelsurfaces)
return NULL;
- return model->brushq1.surfaces + surfnum + model->brushq1.firstmodelsurface;
+ return model->brushq1.surfaces + surfnum + model->firstmodelsurface;
}
VectorSubtract(point, ed->v->origin, p);
best = -1;
bestdist = 1000000000;
- for (surfnum = 0;surfnum < model->brushq1.nummodelsurfaces;surfnum++)
+ for (surfnum = 0;surfnum < model->nummodelsurfaces;surfnum++)
{
- surf = model->brushq1.surfaces + surfnum + model->brushq1.firstmodelsurface;
+ surf = model->brushq1.surfaces + surfnum + model->firstmodelsurface;
dist = PlaneDiff(p, surf->plane);
dist = dist * dist;
if (dist < bestdist)
i = (NUM_FOR_EDICT(G_EDICT(OFS_PARM0)) - 1);
if (i < 0 || i >= svs.maxclients || !svs.clients[i].active)
{
- Con_Printf("PF_clientcommand: entity is not a client");
+ Con_Print("PF_clientcommand: entity is not a client\n");
return;
}
//float(string s) tokenize = #441; // takes apart a string into individal words (access them with argv), returns how many
//this function originally written by KrimZon, made shorter by LordHavoc
-char **tokens = NULL;
-int max_tokens, num_tokens = 0;
+//20040203: rewritten by LordHavoc (no longer uses allocations)
+int num_tokens = 0;
+char *tokens[256], tokenbuf[4096];
void PF_tokenize (void)
{
+ int pos;
const char *p;
- char *str;
- str = G_STRING(OFS_PARM0);
+ p = G_STRING(OFS_PARM0);
- if (tokens != NULL)
+ num_tokens = 0;
+ pos = 0;
+ while(COM_ParseToken(&p, false))
{
- int i;
- for (i=0;i<num_tokens;i++)
- Z_Free(tokens[i]);
- Z_Free(tokens);
- num_tokens = 0;
- }
-
- tokens = Z_Malloc(strlen(str) * sizeof(char *));
- max_tokens = strlen(str);
-
- for (p = str;COM_ParseToken(&p, false) && num_tokens < max_tokens;num_tokens++)
- {
- tokens[num_tokens] = Z_Malloc(strlen(com_token) + 1);
- strcpy(tokens[num_tokens], com_token);
+ if (num_tokens >= (int)(sizeof(tokens)/sizeof(tokens[0])))
+ break;
+ if (pos + strlen(com_token) + 1 > sizeof(tokenbuf))
+ break;
+ tokens[num_tokens++] = tokenbuf + pos;
+ strcpy(tokenbuf + pos, com_token);
+ pos += strlen(com_token) + 1;
}
G_FLOAT(OFS_RETURN) = num_tokens;