cl_main.c cl_parse.c:

entity_t baseline fixes
gl_ngraph.c:
	make r_LineGraph non-static
This commit is contained in:
Bill Currie 2001-05-19 01:58:31 +00:00
parent ec5daaa764
commit fef41a4e70
3 changed files with 39 additions and 29 deletions

View file

@ -90,7 +90,9 @@ client_state_t cl;
// FIXME: put these on hunk?
efrag_t cl_efrags[MAX_EFRAGS];
entity_t cl_entities[MAX_EDICTS];
entity_state_t cl_baselines[MAX_EDICTS];
entity_t cl_static_entities[MAX_STATIC_ENTITIES];
entity_state_t cl_static_entity_baselines[MAX_STATIC_ENTITIES];
lightstyle_t cl_lightstyle[MAX_LIGHTSTYLES];
dlight_t cl_dlights[MAX_DLIGHTS];
@ -174,6 +176,7 @@ CL_ClearState (void)
// clear other arrays
memset (cl_efrags, 0, sizeof (cl_efrags));
memset (cl_entities, 0, sizeof (cl_entities));
memset (cl_baselines, 0, sizeof (cl_baselines));
memset (cl_dlights, 0, sizeof (cl_dlights));
memset (cl_lightstyle, 0, sizeof (cl_lightstyle));
@ -183,11 +186,12 @@ CL_ClearState (void)
cl.free_efrags[i].entnext = &cl.free_efrags[i + 1];
cl.free_efrags[i].entnext = NULL;
for (i = 0; i < MAX_EDICTS; i++) {
cl_entities[i].baseline.alpha = 255;
cl_entities[i].baseline.scale = 16;
cl_entities[i].baseline.glow_color = 254;
cl_entities[i].baseline.glow_size = 0;
cl_entities[i].baseline.colormod = 255;
cl_entities[i].baseline = &cl_baselines[i];
cl_entities[i].baseline->alpha = 255;
cl_entities[i].baseline->scale = 16;
cl_entities[i].baseline->glow_color = 254;
cl_entities[i].baseline->glow_size = 0;
cl_entities[i].baseline->colormod = 255;
}
}
@ -798,6 +802,8 @@ CL_SendCmd (void)
void
CL_Init (void)
{
int i;
SZ_Alloc (&cls.message, 1024);
CL_InitInput ();
@ -810,4 +816,8 @@ CL_Init (void)
Cmd_AddCommand ("playdemo", CL_PlayDemo_f, "No Description");
Cmd_AddCommand ("timedemo", CL_TimeDemo_f, "No Description");
Cmd_AddCommand ("maplist", COM_Maplist_f, "No Description");
for (i = 0; i < MAX_STATIC_ENTITIES; i++) {
cl_static_entities[i].baseline = &cl_static_entity_baselines[i];
}
}

View file

@ -381,7 +381,7 @@ CL_ParseUpdate (int bits)
if (modnum >= MAX_MODELS)
Host_Error ("CL_ParseModel: bad modnum");
} else
modnum = ent->baseline.modelindex;
modnum = ent->baseline->modelindex;
model = cl.model_precache[modnum];
if (model != ent->model) {
@ -403,12 +403,12 @@ CL_ParseUpdate (int bits)
if (bits & U_FRAME)
ent->frame = MSG_ReadByte (net_message);
else
ent->frame = ent->baseline.frame;
ent->frame = ent->baseline->frame;
if (bits & U_COLORMAP)
i = MSG_ReadByte (net_message);
else
i = ent->baseline.colormap;
i = ent->baseline->colormap;
if (!i)
ent->colormap = vid.colormap;
else {
@ -420,7 +420,7 @@ CL_ParseUpdate (int bits)
if (bits & U_SKIN)
skin = MSG_ReadByte (net_message);
else
skin = ent->baseline.skin;
skin = ent->baseline->skin;
if (skin != ent->skinnum) {
ent->skinnum = skin;
if (num > 0 && num <= cl.maxclients)
@ -430,7 +430,7 @@ CL_ParseUpdate (int bits)
if (bits & U_EFFECTS)
ent->effects = MSG_ReadByte (net_message);
else
ent->effects = ent->baseline.effects;
ent->effects = ent->baseline->effects;
// shift the known values for interpolation
VectorCopy (ent->msg_origins[0], ent->msg_origins[1]);
@ -439,29 +439,29 @@ CL_ParseUpdate (int bits)
if (bits & U_ORIGIN1)
ent->msg_origins[0][0] = MSG_ReadCoord (net_message);
else
ent->msg_origins[0][0] = ent->baseline.origin[0];
ent->msg_origins[0][0] = ent->baseline->origin[0];
if (bits & U_ANGLE1)
ent->msg_angles[0][0] = MSG_ReadAngle (net_message);
else
ent->msg_angles[0][0] = ent->baseline.angles[0];
ent->msg_angles[0][0] = ent->baseline->angles[0];
if (bits & U_ORIGIN2)
ent->msg_origins[0][1] = MSG_ReadCoord (net_message);
else
ent->msg_origins[0][1] = ent->baseline.origin[1];
ent->msg_origins[0][1] = ent->baseline->origin[1];
if (bits & U_ANGLE2)
ent->msg_angles[0][1] = MSG_ReadAngle (net_message);
else
ent->msg_angles[0][1] = ent->baseline.angles[1];
ent->msg_angles[0][1] = ent->baseline->angles[1];
if (bits & U_ORIGIN3)
ent->msg_origins[0][2] = MSG_ReadCoord (net_message);
else
ent->msg_origins[0][2] = ent->baseline.origin[2];
ent->msg_origins[0][2] = ent->baseline->origin[2];
if (bits & U_ANGLE3)
ent->msg_angles[0][2] = MSG_ReadAngle (net_message);
else
ent->msg_angles[0][2] = ent->baseline.angles[2];
ent->msg_angles[0][2] = ent->baseline->angles[2];
if (bits & U_NOLERP)
ent->forcelink = true;
@ -481,13 +481,13 @@ CL_ParseBaseline (entity_t *ent)
{
int i;
ent->baseline.modelindex = MSG_ReadByte (net_message);
ent->baseline.frame = MSG_ReadByte (net_message);
ent->baseline.colormap = MSG_ReadByte (net_message);
ent->baseline.skin = MSG_ReadByte (net_message);
ent->baseline->modelindex = MSG_ReadByte (net_message);
ent->baseline->frame = MSG_ReadByte (net_message);
ent->baseline->colormap = MSG_ReadByte (net_message);
ent->baseline->skin = MSG_ReadByte (net_message);
for (i = 0; i < 3; i++) {
ent->baseline.origin[i] = MSG_ReadCoord (net_message);
ent->baseline.angles[i] = MSG_ReadAngle (net_message);
ent->baseline->origin[i] = MSG_ReadCoord (net_message);
ent->baseline->angles[i] = MSG_ReadAngle (net_message);
}
// LordHavoc: set up the baseline to account for new effects (alpha,
// colormod, etc)
@ -618,14 +618,14 @@ CL_ParseStatic (void)
CL_ParseBaseline (ent);
// copy it to the current state
ent->model = cl.model_precache[ent->baseline.modelindex];
ent->frame = ent->baseline.frame;
ent->model = cl.model_precache[ent->baseline->modelindex];
ent->frame = ent->baseline->frame;
ent->colormap = vid.colormap;
ent->skinnum = ent->baseline.skin;
ent->effects = ent->baseline.effects;
ent->skinnum = ent->baseline->skin;
ent->effects = ent->baseline->effects;
VectorCopy (ent->baseline.origin, ent->origin);
VectorCopy (ent->baseline.angles, ent->angles);
VectorCopy (ent->baseline->origin, ent->origin);
VectorCopy (ent->baseline->angles, ent->angles);
R_AddEfrags (ent);
}

View file

@ -61,7 +61,7 @@ int netgraphtexture; // netgraph texture
//XXXstatic byte ngraph_texels[NET_GRAPHHEIGHT][NET_TIMINGS];
static void
void
R_LineGraph (int x, int h)
{
#if 0