X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=portals.c;h=339fd80239a2a6ebb6885697499f68ade61b5689;hb=10bb1f0433fe2be39b0c9cdc23b30544020351c2;hp=6c1a19146e7b01837d97721e332216320b4d1069;hpb=8975282c766a46aa0da84f14a0ba278f62c9c8df;p=xonotic%2Fdarkplaces.git diff --git a/portals.c b/portals.c index 6c1a1914..339fd802 100644 --- a/portals.c +++ b/portals.c @@ -360,14 +360,12 @@ void Portal_RecursiveFlow_ExactMarkSurfaces(portalrecursioninfo_t *info, int *ma { for (surfmesh = surf->mesh;surfmesh;surfmesh = surfmesh->chain) { - for (j = 0, elements = surfmesh->index;j < surfmesh->numtriangles;j++, elements += 3) + for (j = 0, elements = surfmesh->element3i;j < surfmesh->numtriangles;j++, elements += 3) { - VectorCopy((surfmesh->verts + elements[0] * 4), trianglepoints[0]); - VectorCopy((surfmesh->verts + elements[1] * 4), trianglepoints[1]); - VectorCopy((surfmesh->verts + elements[2] * 4), trianglepoints[2]); - if ((info->eye[0] - trianglepoints[0][0]) * ((trianglepoints[0][1] - trianglepoints[1][1]) * (trianglepoints[2][2] - trianglepoints[1][2]) - (trianglepoints[0][2] - trianglepoints[1][2]) * (trianglepoints[2][1] - trianglepoints[1][1])) - + (info->eye[1] - trianglepoints[0][1]) * ((trianglepoints[0][2] - trianglepoints[1][2]) * (trianglepoints[2][0] - trianglepoints[1][0]) - (trianglepoints[0][0] - trianglepoints[1][0]) * (trianglepoints[2][2] - trianglepoints[1][2])) - + (info->eye[2] - trianglepoints[0][2]) * ((trianglepoints[0][0] - trianglepoints[1][0]) * (trianglepoints[2][1] - trianglepoints[1][1]) - (trianglepoints[0][1] - trianglepoints[1][1]) * (trianglepoints[2][0] - trianglepoints[1][0])) > 0 + VectorCopy((surfmesh->vertex3f + elements[0] * 3), trianglepoints[0]); + VectorCopy((surfmesh->vertex3f + elements[1] * 3), trianglepoints[1]); + VectorCopy((surfmesh->vertex3f + elements[2] * 3), trianglepoints[2]); + if (PointInfrontOfTriangle(info->eye, trianglepoints[0], trianglepoints[1], trianglepoints[2]) && Portal_PortalThroughPortalPlanes(&portalplanes[firstclipplane], numclipplanes, trianglepoints[0], 3, &portaltemppoints2[0][0], 256) >= 3) break; }