+ int i, numsurfaces, *surfacevisframes, *surfacepvsframes;
+ msurface_t *surfaces, *surf;
+ model_t *model;
+ vec3_t modelorg;
+
+ model = ent->model;
+ numsurfaces = model->nummodelsurfaces;
+ surfaces = model->surfaces + model->firstmodelsurface;
+ surfacevisframes = model->surfacevisframes + model->firstmodelsurface;
+ surfacepvsframes = model->surfacepvsframes + model->firstmodelsurface;
+ Matrix4x4_Transform(&ent->inversematrix, r_origin, modelorg);
+
+ for (i = 0, surf = surfaces;i < numsurfaces;i++, surf++)
+ {
+ if (surfacepvsframes[i] == r_pvsframecount)
+ {
+#if WORLDNODECULLBACKFACES
+ if (PlaneDist(modelorg, surf->plane) < surf->plane->dist)
+ {
+ if ((surf->flags & SURF_PLANEBACK) && R_NotCulledBox (surf->poly_mins, surf->poly_maxs))
+ surfacevisframes[i] = r_framecount;
+ }
+ else
+ {
+ if (!(surf->flags & SURF_PLANEBACK) && R_NotCulledBox (surf->poly_mins, surf->poly_maxs))
+ surfacevisframes[i] = r_framecount;
+ }
+#else
+ if (R_NotCulledBox (surf->poly_mins, surf->poly_maxs))
+ surfacevisframes[i] = r_framecount;
+#endif
+ }
+ }