diff --git a/include/light/light.h b/include/light/light.h index 3b1acab3..5b307ca1 100644 --- a/include/light/light.h +++ b/include/light/light.h @@ -203,6 +203,8 @@ void LightFace(bsp2_dface_t *face, facesup_t *facesup, const modelinfo_t *modeli void LightFaceIndirect(bsp2_dface_t *face, facesup_t *facesup, const modelinfo_t *modelinfo, struct ltface_ctx *ctx); void MakeTnodes(const bsp2_t *bsp); +int GetSurfaceVertex(const bsp2_t *bsp, const bsp2_dface_t *f, int v); +const vec_t *GetSurfaceVertexPoint(const bsp2_t *bsp, const bsp2_dface_t *f, int v); /* access the final phong-shaded vertex normal */ const vec_t *GetSurfaceVertexNormal(const bsp2_t *bsp, const bsp2_dface_t *f, const int v); diff --git a/light/light.cc b/light/light.cc index 7cae837a..b96f8a0f 100644 --- a/light/light.cc +++ b/light/light.cc @@ -418,7 +418,7 @@ AddTriangleNormals(std::map &smoothed_normals, const vec_t * VectorMA(smoothed_normals[v3].v, weight, norm, smoothed_normals[v3].v); } /* small helper that just retrieves the correct vertex from face->surfedge->edge lookups */ -static int GetSurfaceVertex(const bsp2_t *bsp, const bsp2_dface_t *f, int v) +int GetSurfaceVertex(const bsp2_t *bsp, const bsp2_dface_t *f, int v) { int edge = f->firstedge + v; edge = bsp->dsurfedges[edge]; diff --git a/light/ltface.c b/light/ltface.c index 42f5974f..de6dc7b0 100644 --- a/light/ltface.c +++ b/light/ltface.c @@ -285,9 +285,9 @@ PrintFaceInfo(const bsp2_dface_t *face, const bsp2_t *bsp) for (i = 0; i < face->numedges; i++) { int edge = bsp->dsurfedges[face->firstedge + i]; - int vert = (edge >= 0) ? bsp->dedges[edge].v[0] : bsp->dedges[-edge].v[1]; - const float *point = bsp->dvertexes[vert].point; - const float *norm = GetSurfaceVertexNormal(bsp, face, i); + int vert = GetSurfaceVertex(bsp, face, i); + const vec_t *point = GetSurfaceVertexPoint(bsp, face, i); + const vec_t *norm = GetSurfaceVertexNormal(bsp, face, i); logprint("%s %3d (%3.3f, %3.3f, %3.3f) :: normal (%3.3f, %3.3f, %3.3f) :: edge %d\n", i ? " " : " verts ", vert, point[0], point[1], point[2], @@ -397,17 +397,7 @@ WarnBadMidpoint(const vec3_t point) #endif } - -/* small helper that just retrieves the correct vertex from face->surfedge->edge lookups */ -static int GetSurfaceVertex(const bsp2_t *bsp, const bsp2_dface_t *f, int v) -{ - int edge = f->firstedge + v; - edge = bsp->dsurfedges[edge]; - if (edge < 0) - return bsp->dedges[-edge].v[1]; - return bsp->dedges[edge].v[0]; -} -vec_t *GetSurfaceVertexPoint(const bsp2_t *bsp, const bsp2_dface_t *f, int v) +const vec_t *GetSurfaceVertexPoint(const bsp2_t *bsp, const bsp2_dface_t *f, int v) { return bsp->dvertexes[GetSurfaceVertex(bsp, f, v)].point; } diff --git a/light/trace.c b/light/trace.c index 48a2a9c2..86e1f231 100644 --- a/light/trace.c +++ b/light/trace.c @@ -166,8 +166,6 @@ MakeTnodes_r(int nodenum, const bsp2_t *bsp) } } -vec_t *GetSurfaceVertexPoint(const bsp2_t *bsp, const bsp2_dface_t *f, int v); - static void GetFaceNormal(const bsp2_t *bsp, const bsp2_dface_t *face, plane_t *plane) { const dplane_t *dplane = &bsp->dplanes[face->planenum];