Until whatever is up with entities is figured out, interpolation just is

not going to work.  #ifdef EXPERIMENTAL'd it for the time being.
This commit is contained in:
Joseph Carter 2000-05-07 12:33:47 +00:00
parent 4ad32989a5
commit 5f3e15ceb3
5 changed files with 31 additions and 10 deletions

View file

@ -1250,6 +1250,10 @@ void CL_RelinkEntities (void)
if (ent->msgtime != cl.mtime[0]) if (ent->msgtime != cl.mtime[0])
{ {
ent->model = NULL; ent->model = NULL;
#ifdef EXPERIMENTAL
ent->translate_start_time = 0;
ent->rotate_start_time = 0;
#endif
continue; continue;
} }

View file

@ -151,6 +151,10 @@ R_CullBox (vec3_t mins, vec3_t maxs) {
return false; return false;
} }
#ifdef EXPERIMENTAL
/*
R_BlendedRotateForEntity
*/
void void
R_BlendedRotateForEntity (entity_t *e) R_BlendedRotateForEntity (entity_t *e)
{ {
@ -216,6 +220,7 @@ R_BlendedRotateForEntity (entity_t *e)
glRotatef (-e->angles1[0] + (-blend * d[0]), 0, 1, 0); glRotatef (-e->angles1[0] + (-blend * d[0]), 0, 1, 0);
glRotatef ( e->angles1[2] + ( blend * d[2]), 1, 0, 0); glRotatef ( e->angles1[2] + ( blend * d[2]), 1, 0, 0);
} }
#endif
void void
R_RotateForEntity (entity_t *e) R_RotateForEntity (entity_t *e)
@ -414,7 +419,7 @@ GL_DrawAliasFrame (aliashdr_t *paliashdr, int posenum)
} }
} }
#ifdef EXPERIMENTAL
/* /*
GL_DrawAliasBlendedFrame GL_DrawAliasBlendedFrame
*/ */
@ -432,8 +437,7 @@ GL_DrawAliasBlendedFrame (aliashdr_t *paliashdr, int pose1, int pose2,
lastposenum0 = pose1; lastposenum0 = pose1;
lastposenum = pose2; lastposenum = pose2;
verts1 = (trivertx_t *)((byte *)paliashdr + verts1 = (trivertx_t *)((byte *)paliashdr + paliashdr->posedata);
paliashdr->posedata);
verts2 = verts1; verts2 = verts1;
verts1 += pose1 * paliashdr->poseverts; verts1 += pose1 * paliashdr->poseverts;
@ -485,7 +489,7 @@ GL_DrawAliasBlendedFrame (aliashdr_t *paliashdr, int pose1, int pose2,
glEnd (); glEnd ();
} }
} }
#endif
/* /*
@ -573,6 +577,7 @@ R_SetupAliasFrame (int frame, aliashdr_t *paliashdr)
} }
#ifdef EXPERIMENTAL
/* /*
R_SetupAliasBlendedFrame R_SetupAliasBlendedFrame
*/ */
@ -620,6 +625,8 @@ R_SetupAliasBlendedFrame (int frame, aliashdr_t *paliashdr, entity_t *e)
GL_DrawAliasBlendedFrame (paliashdr, e->pose1, e->pose2, blend); GL_DrawAliasBlendedFrame (paliashdr, e->pose1, e->pose2, blend);
} }
#endif
/* /*
R_DrawAliasModel R_DrawAliasModel
@ -736,9 +743,11 @@ R_DrawAliasModel (entity_t *e)
GL_DisableMultitexture(); GL_DisableMultitexture();
glPushMatrix (); glPushMatrix ();
#ifdef EXPERIMENTAL
if (r_interptransform->value) if (r_interptransform->value)
R_BlendedRotateForEntity (e); R_BlendedRotateForEntity (e);
else else
#endif
R_RotateForEntity (e); R_RotateForEntity (e);
if (!strcmp (clmodel->name, "progs/eyes.mdl") && if (!strcmp (clmodel->name, "progs/eyes.mdl") &&
@ -789,10 +798,12 @@ R_DrawAliasModel (entity_t *e)
if (gl_affinemodels->value) if (gl_affinemodels->value)
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST); glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
#ifdef EXPERIMENTAL
if (r_interpanimation->value) if (r_interpanimation->value)
R_SetupAliasBlendedFrame (currententity->frame, paliashdr, R_SetupAliasBlendedFrame (currententity->frame, paliashdr,
currententity); currententity);
else else
#endif
R_SetupAliasFrame (currententity->frame, paliashdr); R_SetupAliasFrame (currententity->frame, paliashdr);

View file

@ -212,11 +212,13 @@ void R_Init (void)
r_shadows = Cvar_Get ("r_shadows", "0", CVAR_NONE, r_shadows = Cvar_Get ("r_shadows", "0", CVAR_NONE,
"None"); "None");
#ifdef EXPERIMENTAL
// FIXME: Change these back to 1 .. --KB // FIXME: Change these back to 1 .. --KB
r_interpanimation = Cvar_Get ("r_interpanimation", "0", CVAR_ARCHIVE, r_interpanimation = Cvar_Get ("r_interpanimation", "0", CVAR_ARCHIVE,
"toggles interpolation of model animation"); "toggles interpolation of model animation");
r_interptransform = Cvar_Get ("r_interptransform", "0", CVAR_ARCHIVE, r_interptransform = Cvar_Get ("r_interptransform", "0", CVAR_ARCHIVE,
"toggles interpolation of model transformation"); "toggles interpolation of model transformation");
#endif
r_wateralpha = Cvar_Get ("r_wateralpha", "1", CVAR_NONE, r_wateralpha = Cvar_Get ("r_wateralpha", "1", CVAR_NONE,
"Alpha value for water textures, valid range is " "Alpha value for water textures, valid range is "

View file

@ -185,8 +185,10 @@ extern cvar_t *r_waterwarp;
extern cvar_t *r_fullbright; extern cvar_t *r_fullbright;
extern cvar_t *r_lightmap; extern cvar_t *r_lightmap;
extern cvar_t *r_shadows; extern cvar_t *r_shadows;
#ifdef EXPERIMENTAL
extern cvar_t *r_interpanimation; extern cvar_t *r_interpanimation;
extern cvar_t *r_interptransform; extern cvar_t *r_interptransform;
#endif
extern cvar_t *r_wateralpha; extern cvar_t *r_wateralpha;
extern cvar_t *r_dynamic; extern cvar_t *r_dynamic;
extern cvar_t *r_novis; extern cvar_t *r_novis;

View file

@ -78,20 +78,22 @@ typedef struct entity_s
vec3_t msg_origins[2]; // last 2 updates (0 is newest) vec3_t msg_origins[2]; // last 2 updates (0 is newest)
vec3_t msg_angles[2]; // last 2 updates (0 is newest) vec3_t msg_angles[2]; // last 2 updates (0 is newest)
int effects; // light, particles, etc int effects; // light, particles, etc
float translate_start_time;
vec3_t origin1;
vec3_t origin2;
vec3_t origin; vec3_t origin;
float rotate_start_time;
vec3_t angles1;
vec3_t angles2;
vec3_t angles; vec3_t angles;
struct model_s *model; // NULL = no model struct model_s *model; // NULL = no model
struct efrag_s *efrag; // linked list of efrags struct efrag_s *efrag; // linked list of efrags
int frame; int frame;
#ifdef EXPERIMENTAL
float translate_start_time;
vec3_t origin1;
vec3_t origin2;
float rotate_start_time;
vec3_t angles1;
vec3_t angles2;
float frame_start_time; float frame_start_time;
float frame_interval; float frame_interval;
int pose1, pose2; int pose1, pose2;
#endif
float syncbase; // for client-side animations float syncbase; // for client-side animations
byte *colormap; byte *colormap;
int skinnum; // for Alias models int skinnum; // for Alias models