whoopsie
[carveJwlIkooP6JGAAIwe30JlM.git] / world_routes.h
index 05ef3c9586a8094634ed20e448ca6236d4b5b72a..5862657bdb808a544aabd37bf7b9f3a885f18064 100644 (file)
@@ -196,7 +196,7 @@ VG_STATIC void world_routes_debug( world_instance *world )
 }
 
 VG_STATIC void world_routes_place_curve( world_instance *world,
-                                         v4f h[4], v3f n0, v3f n2 )
+                                         v4f h[3], v3f n0, v3f n2 )
 {
    float t;
    v3f p, pd;
@@ -422,7 +422,7 @@ VG_STATIC void world_routes_generate( world_instance *world )
    }
 
    for( u32 i=0; i<mdl_arrcount(&world->ent_route_node); i++ ){
-      ent_route_node *rn = mdl_arritm( &world->ent_route, i );
+      ent_route_node *rn = mdl_arritm( &world->ent_route_node, i );
       rn->ref_count = 0;
       rn->ref_total = 0;
    }
@@ -564,7 +564,8 @@ VG_STATIC void world_bind_light_index( world_instance *world,
                                        GLuint shader, GLuint location, 
                                        int slot );
 
-VG_STATIC void render_world_routes( world_instance *world, camera *cam )
+VG_STATIC void render_world_routes( world_instance *world, camera *cam, 
+                                    int layer_depth )
 {
    m4x3f identity_matrix;
    m4x3_identity( identity_matrix );
@@ -626,8 +627,9 @@ VG_STATIC void render_world_routes( world_instance *world, camera *cam )
 
          shader_model_gate_uColour( colour );
 
-         u32 next = route->checkpoints_start +
-                   (route->active_checkpoint+1) % route->checkpoints_count;
+         u32 next = route->active_checkpoint+1+layer_depth;
+             next = next % route->checkpoints_count;
+             next += route->checkpoints_start;
 
          ent_checkpoint *cp = mdl_arritm( &world->ent_checkpoint, next );
          ent_gate *gate = mdl_arritm( &world->ent_gate, cp->gate_index );