]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_models.c
cleaned up nearly all of the externs in .c files (moved to appropriate .h files)
[xonotic/darkplaces.git] / gl_models.c
index 99e71140dc247f300bd1ccae99cbb4c916ffc5d5..2829b94420b74a5b839a697f6d1998758d5315df 100644 (file)
@@ -29,7 +29,7 @@ void GL_LockArray(int first, int count)
        }
 }
 
-void GL_UnlockArray()
+void GL_UnlockArray(void)
 {
        if (arraylocked)
        {
@@ -52,7 +52,7 @@ void GL_SetupModelTransform (vec3_t origin, vec3_t angles, vec_t scale)
            glRotatef (angles[2],  1, 0, 0);
 }
 
-void makechrometexture()
+void makechrometexture(void)
 {
        int i;
        byte noise[64*64];
@@ -70,7 +70,7 @@ void makechrometexture()
        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]));
@@ -82,7 +82,7 @@ void gl_models_start()
        makechrometexture();
 }
 
-void gl_models_shutdown()
+void gl_models_shutdown(void)
 {
        qfree(aliasvert);
        qfree(aliasvertnorm);
@@ -92,19 +92,18 @@ void gl_models_shutdown()
        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;
@@ -317,8 +316,7 @@ R_DrawAliasFrame
 
 =================
 */
-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)
@@ -350,7 +348,7 @@ void R_DrawAliasFrame (maliashdr_t *maliashdr, float alpha, vec3_t color, entity
                GL_LockArray(0, maliashdr->numverts);
        }
 
-       R_LightModel(maliashdr->numverts, org, color);
+       R_LightModel(ent, maliashdr->numverts, org, color);
 
        if (!r_render.value)
                return;
@@ -417,7 +415,7 @@ void R_DrawAliasFrame (maliashdr_t *maliashdr, float alpha, vec3_t color, entity
                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));
@@ -473,7 +471,7 @@ void R_DrawQ2AliasFrame (md2mem_t *pheader, float alpha, vec3_t color, entity_t
        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;
@@ -517,7 +515,7 @@ void R_DrawQ2AliasFrame (md2mem_t *pheader, float alpha, vec3_t color, entity_t
                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)));
                }
 
@@ -730,6 +728,7 @@ void ZymoticTransformVerts(int vertcount, int *bonecounts, zymvertex_t *vert)
        while(vertcount--)
        {
                c = *bonecounts++;
+               // FIXME: validate bonecounts at load time (must be >= 1)
                if (c == 1)
                {
                        matrix = &zymbonepose[vert->bonenum];
@@ -865,7 +864,7 @@ void GL_DrawZymoticModelMeshFog(vec3_t org, zymtype1header_t *m)
        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);
@@ -895,7 +894,7 @@ void R_DrawZymoticFrame (zymtype1header_t *m, float alpha, vec3_t color, entity_
        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;
@@ -929,8 +928,6 @@ void R_DrawZymoticFrame (zymtype1header_t *m, float alpha, vec3_t color, entity_
        glDepthMask(1);
 }
 
-extern int r_dlightframecount;
-
 /*
 =================
 R_DrawAliasModel
@@ -950,7 +947,7 @@ void R_DrawAliasModel (entity_t *ent, int cull, float alpha, model_t *clmodel, f
        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++;