run indicator
[fishladder.git] / fishladder.c
index 18332b5dd23f38621fbdce76a0d41d225118f81a..deea9791ea0762bab88c7d97461ab6504eeea0ce 100644 (file)
@@ -745,6 +745,9 @@ static int map_load( const char *str, const char *name )
                        turtle_dir[1] = pcell(term->pos)->state & FLAG_INPUT? 1: -1;
                        original_y = turtle_dir[1];
                        
+                       info_buffer[((turtle[1]*64)+turtle[0])*4] = 0;  
+                       v2i_add( turtle_dir, turtle, turtle );
+                       
                        for( int i = 0; i < 100; i ++ )
                        {
                                info_buffer[((turtle[1]*64)+turtle[0])*4] = 0;
@@ -2294,9 +2297,35 @@ void vg_render(void)
                                                (arr_base + (float)term->pos[1] + (float)(term->run_count-1)*0.2f) - run_offset:
                                                (float)term->pos[1] + arr_base + run_offset;
                        
-                       if( k & 0x1 )
+                       v4f bar_colour;
+                       int bar_draw = 0;
+                       
+                       if( is_simulation_running() )
+                       {
+                               if( k == world.sim_run )
+                               {
+                                       float a = fabsf(sinf( vg_time * 2.0f )) * 0.075f + 0.075f;
+                                       
+                                       v4_copy( (v4f){ 1.0f, 1.0f, 1.0f, a }, bar_colour );
+                               }
+                               else
+                                       v4_copy( (v4f){ 0.0f, 0.0f, 0.0f, 0.13f }, bar_colour );
+                               
+                               bar_draw = 1;
+                       }
+                       else if( 1 || k & 0x1 )
+                       {
+                               if( k & 0x1 )
+                                       v4_copy( (v4f){ 1.0f, 1.0f, 1.0f, 0.07f }, bar_colour );
+                               else
+                                       v4_copy( (v4f){ 0.0f, 0.0f, 0.0f, 0.13f }, bar_colour );                        
+                                                       
+                               bar_draw = 1;
+                       }
+                       
+                       if( bar_draw )
                        {
-                               glUniform4f( SHADER_UNIFORM( shader_tile_colour, "uColour" ), 1.0f, 1.0f, 1.0f, 0.1f );
+                               glUniform4fv( SHADER_UNIFORM( shader_tile_colour, "uColour" ), 1, bar_colour );
                                glUniform3f( SHADER_UNIFORM( shader_tile_colour, "uOffset" ), (float)term->pos[0], y_position - 0.1f, 1.0f );
                                draw_mesh( 2, 2 );
                        }