update helpers/location to 'frosted' ui
[carveJwlIkooP6JGAAIwe30JlM.git] / player_glide.c
index df49c37db4babbab573856d929413e4502663191..6b5930b9c2f26bed2d4d17ad1f28d3d902303831 100644 (file)
@@ -273,11 +273,15 @@ void player_glide_update(void)
    v2f steer;
    joystick_state( k_srjoystick_steer, steer );
 
-   if( glider_physics( steer ) ){
+   if( glider_physics( steer ) )
+   {
       vg_info( "player fell off due to glider hitting ground\n" );
       player__dead_transition( k_player_die_type_generic );
       localplayer.glider_orphan = 1;
    }
+
+   if( !world_water_player_safe( world_current_instance(), 1.0f ) )
+      return;
 }
 
 void player_glide_post_update(void)
@@ -515,7 +519,7 @@ void player_glide_transition(void)
 void render_glider_model( vg_camera *cam, world_instance *world,
                           m4x3f mmdl, enum board_shader shader )
 {
-   u32 current_tex = 0xffffffff;
+   u32 current_mat = 0xffffffff;
    glActiveTexture( GL_TEXTURE0 );
 
    mdl_context *mdl = &player_glide.glider;
@@ -550,20 +554,22 @@ void render_glider_model( vg_camera *cam, world_instance *world,
             continue;
          }
 
-         mdl_material *mat = mdl_arritm( &mdl->materials, sm->material_id-1 );
-         if( mat->tex_diffuse != current_tex )
+         if( sm->material_id != current_mat )
          {
+            mdl_material *mat = mdl_arritm( &mdl->materials,sm->material_id-1 );
             GLuint tex = vg.tex_missing;
 
-            if( mat->tex_diffuse )
+            if( mat->shader == k_shader_standard )
             {
-               u32 index = mat->tex_diffuse-1;
+               struct shader_props_standard *props = mat->props.compiled;
+
+               u32 index = props->tex_diffuse-1;
                mdl_texture *ptex = mdl_arritm( &mdl->textures, index );
                tex = ptex->glname;
             }
 
             glBindTexture( GL_TEXTURE_2D, tex );
-            current_tex = mat->tex_diffuse;
+            current_mat = sm->material_id;
          }
 
          mdl_draw_submesh( sm );