nonlocal stuff again
[carveJwlIkooP6JGAAIwe30JlM.git] / world_gate.h
index f2a383c1f2856aea16a060f686d9e2f638bb52fa..989e918356a34e8f837d2af936e703be224c87b6 100644 (file)
@@ -27,8 +27,8 @@ VG_STATIC void gate_transform_update( ent_gate *gate )
    v3_copy( gate->co[1], recv_to_world[3] );
    m4x3_mul( recv_to_world, to_local, gate->transport );
 
-   m4x3_scalev( gate->to_world, (v3f){ gate->dimensions[0], 
-                                       gate->dimensions[1], 1.0f } );
+   m3x3_scale( gate->to_world, (v3f){ gate->dimensions[0], 
+                                      gate->dimensions[1], 1.0f } );
 }
 
 VG_STATIC void world_gates_init(void)
@@ -67,7 +67,7 @@ VG_STATIC void world_gates_init(void)
 }
 
 VG_STATIC int render_gate( world_instance *world_inside,
-                           ent_gate *gate, camera *cam )
+                           ent_gate *gate, camera *cam, int layer_depth )
 {
    v3f viewdir, gatedir;
    m3x3_mulv( cam->transform, (v3f){0.0f,0.0f,-1.0f}, viewdir );
@@ -130,8 +130,6 @@ VG_STATIC int render_gate( world_instance *world_inside,
       shader_model_gate_uPv( cam->mtx.pv );
       shader_model_gate_uMdl( gate->to_world );
       shader_model_gate_uCam( cam->pos );
-
-      /* TODO(ART IMPROVEMENT): animate alpha of this? */
       shader_model_gate_uColour( (v4f){0.0f,1.0f,0.0f,0.0f} );
       shader_model_gate_uTime( vg.time*0.25f );
       shader_model_gate_uInvRes( (v2f){
@@ -151,13 +149,13 @@ VG_STATIC int render_gate( world_instance *world_inside,
       glStencilMask( 0x00 ); 
    }
 
-   render_world( world_inside, &gate_camera );
+   render_world( world_inside, &gate_camera, layer_depth );
 
    {
       glDisable( GL_STENCIL_TEST );
 
-      render_water_texture( world_inside, &gate_camera );
-      render_fb_bind( gpipeline.fb_main );
+      render_water_texture( world_inside, &gate_camera, layer_depth );
+      render_fb_bind( gpipeline.fb_main, 1 );
 
       glEnable( GL_STENCIL_TEST );
 
@@ -233,7 +231,8 @@ VG_STATIC ent_gate *world_intersect_gates( world_instance *world,
 {
    for( u32 i=0; i<mdl_arrcount(&world->ent_gate); i++ ){
       ent_gate *gate = mdl_arritm( &world->ent_gate, i );
-      if( gate->type == k_gate_type_unlinked )
+      if( gate->type == k_gate_type_unlinked ||
+          gate->type == k_gate_type_nonlocal_unlinked )
          continue;
 
       if( gate_intersect( gate, pos, last ) ){