}
}
-void GL_UnlockArray()
+void GL_UnlockArray(void)
{
if (arraylocked)
{
glRotatef (angles[2], 1, 0, 0);
}
-void makechrometexture()
+void makechrometexture(void)
{
int i;
byte noise[64*64];
chrometexture = R_LoadTexture ("chrometexture", 64, 64, &data[0][0], TEXF_MIPMAP | TEXF_RGBA | TEXF_PRECACHE);
}
-void gl_models_start()
+void gl_models_start(void)
{
// allocate vertex processing arrays
aliasvert = qmalloc(sizeof(float[MD2MAX_VERTS][3]));
makechrometexture();
}
-void gl_models_shutdown()
+void gl_models_shutdown(void)
{
qfree(aliasvert);
qfree(aliasvertnorm);
qfree(aliasvertusage);
}
-void GL_Models_Init()
+void gl_models_newmap(void)
+{
+}
+
+void GL_Models_Init(void)
{
Cvar_RegisterVariable(&gl_transform);
Cvar_RegisterVariable(&gl_lockarrays);
- R_RegisterModule("GL_Models", gl_models_start, gl_models_shutdown);
+ R_RegisterModule("GL_Models", gl_models_start, gl_models_shutdown, gl_models_newmap);
}
-extern vec3_t softwaretransform_x;
-extern vec3_t softwaretransform_y;
-extern vec3_t softwaretransform_z;
-extern vec_t softwaretransform_scale;
-extern vec3_t softwaretransform_offset;
void R_AliasTransformVerts(int vertcount)
{
int i;
=================
*/
-extern vec3_t lightspot;
-void R_LightModel(int numverts, vec3_t center, vec3_t basecolor);
+void R_LightModel(entity_t *ent, int numverts, vec3_t center, vec3_t basecolor);
void R_DrawAliasFrame (maliashdr_t *maliashdr, float alpha, vec3_t color, entity_t *ent, int shadow, vec3_t org, vec3_t angles, vec_t scale, frameblend_t *blend, rtexture_t **skin, int colormap, int effects, int flags)
{
if (gl_transform.value)
GL_LockArray(0, maliashdr->numverts);
}
- R_LightModel(maliashdr->numverts, org, color);
+ R_LightModel(ent, maliashdr->numverts, org, color);
if (!r_render.value)
return;
glEnable (GL_BLEND);
glDepthMask(0); // disable zbuffer updates
- VectorSubtract(org, r_refdef.vieworg, diff);
+ VectorSubtract(org, r_origin, diff);
glColor4f(fogcolor[0], fogcolor[1], fogcolor[2], exp(fogdensity/DotProduct(diff,diff)));
glDrawElements(GL_TRIANGLES, maliashdr->numtris * 3, GL_UNSIGNED_SHORT, (void *)((int) maliashdr + maliashdr->tridata));
if (!gl_transform.value)
R_AliasTransformVerts(pheader->num_xyz);
- R_LightModel(pheader->num_xyz, org, color);
+ R_LightModel(ent, pheader->num_xyz, org, color);
if (!r_render.value)
return;
glDepthMask(0); // disable zbuffer updates
{
vec3_t diff;
- VectorSubtract(org, r_refdef.vieworg, diff);
+ VectorSubtract(org, r_origin, diff);
glColor4f(fogcolor[0], fogcolor[1], fogcolor[2], exp(fogdensity/DotProduct(diff,diff)));
}
while(vertcount--)
{
c = *bonecounts++;
+ // FIXME: validate bonecounts at load time (must be >= 1)
if (c == 1)
{
matrix = &zymbonepose[vert->bonenum];
glEnable (GL_BLEND);
glDepthMask(0); // disable zbuffer updates
- VectorSubtract(org, r_refdef.vieworg, diff);
+ VectorSubtract(org, r_origin, diff);
glColor4f(fogcolor[0], fogcolor[1], fogcolor[2], exp(fogdensity/DotProduct(diff,diff)));
glVertexPointer(3, GL_FLOAT, 0, aliasvert);
ZymoticTransformVerts(m->numverts, (int *)(m->lump_vertbonecounts.start + (int) m), (zymvertex_t *)(m->lump_verts.start + (int) m));
ZymoticCalcNormals(m->numverts, m->numshaders, (int *)(m->lump_render.start + (int) m));
- R_LightModel(m->numverts, org, color);
+ R_LightModel(ent, m->numverts, org, color);
if (!r_render.value)
return;
glDepthMask(1);
}
-extern int r_dlightframecount;
-
/*
=================
R_DrawAliasModel
VectorAdd (org, clmodel->mins, mins);
VectorAdd (org, clmodel->maxs, maxs);
- if (cull && R_CullBox (mins, maxs))
+ if (cull && R_VisibleCullBox (mins, maxs))
return;
c_models++;