dlightsetup:
//Con_Printf("dlight %i : %f %f %f : %f %f %f\n", i, org[0], org[1], org[2], red * radius, green * radius, blue * radius);
memset (dl, 0, sizeof(*dl));
- //dl->ent = ent;
+ dl->ent = ent;
VectorCopy(org, dl->origin);
dl->radius = radius;
dl->color[0] = red;
CL_RelinkEntities
===============
*/
-static void CL_RelinkNetworkEntities()
+static void CL_RelinkNetworkEntities(void)
{
entity_t *ent;
int i, effects, temp;
VectorCopy (neworg, ent->render.origin);
ent->render.flags = ent->state_current.flags;
+ if (i == cl.viewentity)
+ ent->render.flags |= RENDER_EXTERIORMODEL;
ent->render.effects = effects = ent->state_current.effects;
if (ent->state_current.flags & RENDER_COLORMAPPED)
ent->render.colormap = ent->state_current.colormap;
{
// * 4 for the expansion from 0-255 to 0-1023 range,
// / 255 to scale down byte colors
- VectorMA(dlightcolor, ent->state_current.glowsize * (4.0f / 255.0f), (qbyte *)&d_8to24table[ent->state_current.glowcolor], dlightcolor);
+ VectorMA(dlightcolor, ent->state_current.glowsize * (4.0f / 255.0f), (qbyte *)&palette_complete[ent->state_current.glowcolor], dlightcolor);
}
// LordHavoc: customizable trail
if (ent->render.flags & RENDER_GLOWTRAIL)
{
VectorCopy(neworg, v);
// hack to make glowing player light shine on their gun
- if (i == cl.viewentity && !chase_active.integer)
+ if (i == cl.viewentity/* && !chase_active.integer*/)
v[2] += 30;
- CL_AllocDlight (NULL, v, 1, dlightcolor[0], dlightcolor[1], dlightcolor[2], 0, 0);
+ CL_AllocDlight (&ent->render, v, 1, dlightcolor[0], dlightcolor[1], dlightcolor[2], 0, 0);
}
- if (chase_active.integer)
- {
- if (ent->render.flags & RENDER_VIEWMODEL)
- continue;
- }
- else
- {
- if (i == cl.viewentity || (ent->render.flags & RENDER_EXTERIORMODEL))
- continue;
- }
+ if (chase_active.integer && (ent->render.flags & RENDER_VIEWMODEL))
+ continue;
// don't show entities with no modelindex (note: this still shows
// entities which have a modelindex that resolved to a NULL model)
}
}
+static void CL_RelinkViewModel(void)
+{
+ entity_t *ent;
+ if (!r_drawviewmodel.integer || chase_active.integer || envmap || !r_drawentities.integer || cl.items & IT_INVISIBILITY || cl.stats[STAT_HEALTH] <= 0 || cl.viewent.render.model == NULL)
+ return;
+
+ ent = &cl.viewent;
+ // FIXME: set up view model here?
+ if (r_refdef.numentities < r_refdef.maxentities)
+ r_refdef.entities[r_refdef.numentities++] = &ent->render;
+}
+
void CL_Effect(vec3_t org, int modelindex, int startframe, int framecount, float framerate)
{
int i;
}
}
-static void CL_RelinkEffects()
+static void CL_RelinkEffects(void)
{
int i, intframe;
cl_effect_t *e;
CL_RelinkWorld();
CL_RelinkStaticEntities();
CL_RelinkNetworkEntities();
+ CL_RelinkViewModel();
CL_RelinkEffects();
CL_RelinkBeams();
CL_MoveParticles();