shithub: wipeout

Download patch

ref: 6170976e6aab9a3747d08cef1b6ae3e36557227f
parent: e9f91c57f02a38b84516721fdd95b2d6e84a01dd
author: Juan Lopez <[email protected]>
date: Wed Aug 23 04:24:22 EDT 2023

Avoid rendering more than once those track sections in tracks with alternative paths.

--- a/src/wipeout/track.c
+++ b/src/wipeout/track.c
@@ -271,28 +271,14 @@
 	vec3_t cam_pos = camera->position;
 
 	section_t *s = g.track.sections;
-	section_t *j = NULL;
-	do {
+	for(int32_t i = 0; i < g.track.section_count; ++i, ++s)
+	{
 		vec3_t d = vec3_sub(cam_pos, s->center);
 		float dist_sq = d.x * d.x + d.y * d.y + d.z * d.z;
 		if (dist_sq <  max_dist_sq) {
 			track_draw_section(s);
 		}
-
-		if (s->junction) { // start junction
-			j = s->junction;
-			do {
-				vec3_t d = vec3_sub(cam_pos, j->center);
-				float dist_sq = d.x * d.x + d.y * d.y + d.z * d.z;
-				if (dist_sq <  max_dist_sq) {
-					track_draw_section(j);
-				}
-				j = j->next;
-			} while (!j->junction); // end junction
-		}
-		s = s->next;
-	} while (s != g.track.sections);
-	
+	}
 }
 
 void track_cycle_pickups() {