actually good ball shader
[fishladder.git] / fishladder.c
index 372f21e2a7e780b1e1a2ae846900cdeb3ffec50b..4ff74588763a3990458addab078b3b00a87c1d42 100644 (file)
@@ -182,7 +182,7 @@ v2f const curve_7_1[] = {{0.5f,0.8438f},{1.0f-0.875f,0.8438f},{1.0-0.625f,0.5f},
 float const curve_7_linear_section = 0.1562f;
 
 v3f colour_sets[] =
-{ { 0.9f, 0.6f, 0.20f },
+{ { 1.0f, 0.9f, 0.3f },
   { 0.2f, 0.9f, 0.14f },
   { 0.4f, 0.8f, 1.00f } };
 
@@ -1459,7 +1459,12 @@ void vg_update(void)
                                                        struct cell_description *desc = &cell_descriptions[ cell_next->config ];
                                                        
                                                        if( cell_next->config == k_cell_type_merge )
-                                                               fish->flow_reversed = 0;
+                                                       {
+                                                               if( fish->dir[0] == 0 )
+                                                                       fish->state = k_fish_state_dead;
+                                                               else
+                                                                       fish->flow_reversed = 0;
+                                                       }
                                                        else
                                                        {
                                                                if( cell_next->config == k_cell_type_split )
@@ -1468,6 +1473,8 @@ void vg_update(void)
                                                                        {
                                                                                sfx_set_playrnd( &audio_splitter, &audio_system_balls_important, 0, 1 );
                                                                                cell_next->state |= FLAG_FLIP_ROTATING;
+                                                                               
+                                                                               fish->flow_reversed = 0;
                                                                        }
                                                                        else
                                                                                fish->state = k_fish_state_dead;
@@ -1904,7 +1911,7 @@ void vg_render(void)
        SHADER_USE( shader_ball );
        glUniformMatrix3fv( SHADER_UNIFORM( shader_ball, "uPv" ), 1, GL_FALSE, (float *)vg_pv );
        
-       vg_tex2d_bind( &tex_ball, 0 );
+       vg_tex2d_bind( &tex_ball_noise, 0 );
        glUniform1i( SHADER_UNIFORM( shader_ball, "uTexMain" ), 0 );
        
        // Draw 'fish'
@@ -1925,7 +1932,8 @@ void vg_render(void)
                        
                        glUniform3fv( SHADER_UNIFORM( shader_ball, "uColour" ), 1, dot_colour );
                        glUniform2fv( SHADER_UNIFORM( shader_ball, "uOffset" ), 1, fish->physics_co );
-                       draw_mesh( 0, 32 );
+                       glUniform2f( SHADER_UNIFORM( shader_ball, "uTexOffset" ), (float)i * 1.2334, (float)i * -0.3579f );
+                       draw_mesh( 0, 2 );
                }
        }