@ -276,8 +276,8 @@ static void draw_frame(UIState *s) { 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					static  inline  bool  valid_frame_pt ( UIState  * s ,  float  x ,  float  y )  { static  inline  bool  valid_frame_pt ( UIState  * s ,  float  x ,  float  y )  {  
			
		
	
		
		
			
				
					
					  return  x  > =  0  & &  x  < =  s - > rgb_width  & &  y  > =  0  & &  y  < =  s - > rgb_height ;    return  x  > =  0  & &  x  < =  s - > rgb_width  & &  y  > =  0  & &  y  < =  s - > rgb_height ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					static  void  update_lane_line_data ( UIState  * s ,  const  float  * points ,  float  off ,  model_path_vertices_data  * pvd ,  float  valid_len )  { static  void  update_lane_line_data ( UIState  * s ,  const  float  * points ,  float  off ,  model_path_vertices_data  * pvd ,  float  valid_len )  {  
			
		
	
		
		
			
				
					
					  pvd - > cnt  =  0 ;    pvd - > cnt  =  0 ;   
			
		
	
		
		
			
				
					
					  int  rcount  =  fmin ( MODEL_PATH_MAX_VERTICES_CNT  /  2 ,  valid_len ) ;    int  rcount  =  fmin ( MODEL_PATH_MAX_VERTICES_CNT  /  2 ,  valid_len ) ;   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -323,6 +323,7 @@ static void ui_draw_vision_lanes(UIState *s) { 
			
		
	
		
		
			
				
					
					    update_all_lane_lines_data ( s ,  scene - > model . getLeftLane ( ) ,  scene - > left_lane_points ,  pvd ) ;      update_all_lane_lines_data ( s ,  scene - > model . getLeftLane ( ) ,  scene - > left_lane_points ,  pvd ) ;   
			
		
	
		
		
			
				
					
					    update_all_lane_lines_data ( s ,  scene - > model . getRightLane ( ) ,  scene - > right_lane_points ,  pvd  +  MODEL_LANE_PATH_CNT ) ;      update_all_lane_lines_data ( s ,  scene - > model . getRightLane ( ) ,  scene - > right_lane_points ,  pvd  +  MODEL_LANE_PATH_CNT ) ;   
			
		
	
		
		
			
				
					
					  }    }   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  // Draw left lane edge
    // Draw left lane edge
   
			
		
	
		
		
			
				
					
					  ui_draw_lane (    ui_draw_lane (   
			
		
	
		
		
			
				
					
					      s ,  pvd ,        s ,  pvd ,   
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -336,6 +337,7 @@ static void ui_draw_vision_lanes(UIState *s) { 
			
		
	
		
		
			
				
					
					  if ( s - > sm - > updated ( " radarState " ) )  {    if ( s - > sm - > updated ( " radarState " ) )  {   
			
		
	
		
		
			
				
					
					    update_all_track_data ( s ) ;      update_all_track_data ( s ) ;   
			
		
	
		
		
			
				
					
					  }    }   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  // Draw vision path
    // Draw vision path
   
			
		
	
		
		
			
				
					
					  ui_draw_track ( s ,  false ,  & s - > track_vertices [ 0 ] ) ;    ui_draw_track ( s ,  false ,  & s - > track_vertices [ 0 ] ) ;   
			
		
	
		
		
			
				
					
					  if  ( scene - > controls_state . getEnabled ( ) )  {    if  ( scene - > controls_state . getEnabled ( ) )  {   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -385,25 +387,20 @@ static void ui_draw_world(UIState *s) { 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					static  void  ui_draw_vision_maxspeed ( UIState  * s )  { static  void  ui_draw_vision_maxspeed ( UIState  * s )  {  
			
		
	
		
		
			
				
					
					  /*if (!s->longitudinal_control){
   
			
		
	
		
		
			
				
					
					    return ;   
			
		
	
		
		
			
				
					
					  } */   
			
		
	
		
		
			
				
					
					  char  maxspeed_str [ 32 ] ;    char  maxspeed_str [ 32 ] ;   
			
		
	
		
		
			
				
					
					  float  maxspeed  =  s - > scene . controls_state . getVCruise ( ) ;    float  maxspeed  =  s - > scene . controls_state . getVCruise ( ) ;   
			
		
	
		
		
			
				
					
					  int  maxspeed_calc  =  maxspeed  *  0.6225  +  0.5 ;    int  maxspeed_calc  =  maxspeed  *  0.6225  +  0.5 ;   
			
		
	
		
		
			
				
					
					  float  speedlimit  =  s - > scene . speedlimit ;    float  speedlimit  =  s - > scene . speedlimit ;   
			
		
	
		
		
			
				
					
					  int  speedlim_calc  =  speedlimit  *  2.2369363  +  0.5 ;    int  speedlim_calc  =  speedlimit  *  2.2369363  +  0.5 ;   
			
		
	
		
		
			
				
					
					  int  speed_lim_off  =  s - > speed_lim_off  *  2.2369363  +  0.5 ;   
			
		
	
		
		
			
				
					
					  if  ( s - > is_metric )  {    if  ( s - > is_metric )  {   
			
		
	
		
		
			
				
					
					    maxspeed_calc  =  maxspeed  +  0.5 ;      maxspeed_calc  =  maxspeed  +  0.5 ;   
			
		
	
		
		
			
				
					
					    speedlim_calc  =  speedlimit  *  3.6  +  0.5 ;      speedlim_calc  =  speedlimit  *  3.6  +  0.5 ;   
			
		
	
		
		
			
				
					
					    speed_lim_off  =  s - > speed_lim_off  *  3.6  +  0.5 ;   
			
		
	
		
		
			
				
					
					  }    }   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  bool  is_cruise_set  =  ( maxspeed  ! =  0  & &  maxspeed  ! =  SET_SPEED_NA ) ;    bool  is_cruise_set  =  ( maxspeed  ! =  0  & &  maxspeed  ! =  SET_SPEED_NA ) ;   
			
		
	
		
		
			
				
					
					  bool  is_speedlim_valid  =  s - > scene . speedlimit_valid ;    bool  is_speedlim_valid  =  s - > scene . speedlimit_valid ;   
			
		
	
		
		
			
				
					
					  bool  is_set_over_limit  =  is_speedlim_valid  & &  s - > scene . controls_state . getEnabled ( )  & &    bool  is_set_over_limit  =  is_speedlim_valid  & &  s - > scene . controls_state . getEnabled ( )  & &   
			
		
	
		
		
			
				
					
					                       is_cruise_set  & &  maxspeed_calc  >  ( speedlim_calc  +  speed_lim_off )  ;                              is_cruise_set  & &  maxspeed_calc  >  speedlim_calc ;   
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  int  viz_maxspeed_w  =  184 ;    int  viz_maxspeed_w  =  184 ;   
			
		
	
		
		
			
				
					
					  int  viz_maxspeed_h  =  202 ;    int  viz_maxspeed_h  =  202 ;   
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -411,12 +408,7 @@ static void ui_draw_vision_maxspeed(UIState *s) { 
			
		
	
		
		
			
				
					
					  int  viz_maxspeed_y  =  ( box_y  +  ( bdr_s * 1.5 ) ) ;    int  viz_maxspeed_y  =  ( box_y  +  ( bdr_s * 1.5 ) ) ;   
			
		
	
		
		
			
				
					
					  int  viz_maxspeed_xo  =  180 ;    int  viz_maxspeed_xo  =  180 ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					# ifdef SHOW_SPEEDLIMIT  
			
		
	
		
		
			
				
					
					  viz_maxspeed_w  + =  viz_maxspeed_xo ;   
			
		
	
		
		
			
				
					
					  viz_maxspeed_x  + =  viz_maxspeed_w  -  ( viz_maxspeed_xo  *  2 ) ;   
			
		
	
		
		
			
				
					
					# else  
			
		
	
		
		
			
				
					
					  viz_maxspeed_xo  =  0 ;    viz_maxspeed_xo  =  0 ;   
			
		
	
		
		
			
				
					
					# endif  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  // Draw Background
    // Draw Background
   
			
		
	
		
		
			
				
					
					  ui_draw_rect ( s - > vg ,  viz_maxspeed_x ,  viz_maxspeed_y ,  viz_maxspeed_w ,  viz_maxspeed_h ,    ui_draw_rect ( s - > vg ,  viz_maxspeed_x ,  viz_maxspeed_y ,  viz_maxspeed_w ,  viz_maxspeed_h ,   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -444,65 +436,6 @@ static void ui_draw_vision_maxspeed(UIState *s) { 
			
		
	
		
		
			
				
					
					  }    }   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					# ifdef SHOW_SPEEDLIMIT  
			
		
	
		
		
			
				
					
					static  void  ui_draw_vision_speedlimit ( UIState  * s )  {  
			
		
	
		
		
			
				
					
					  char  speedlim_str [ 32 ] ;   
			
		
	
		
		
			
				
					
					  float  speedlimit  =  s - > scene . speedlimit ;   
			
		
	
		
		
			
				
					
					  int  speedlim_calc  =  speedlimit  *  2.2369363  +  0.5 ;   
			
		
	
		
		
			
				
					
					  if  ( s - > is_metric )  {   
			
		
	
		
		
			
				
					
					    speedlim_calc  =  speedlimit  *  3.6  +  0.5 ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  bool  is_speedlim_valid  =  s - > scene . speedlimit_valid ;   
			
		
	
		
		
			
				
					
					  float  hysteresis_offset  =  0.5 ;   
			
		
	
		
		
			
				
					
					  if  ( s - > is_ego_over_limit )  {   
			
		
	
		
		
			
				
					
					    hysteresis_offset  =  0.0 ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					  s - > is_ego_over_limit  =  is_speedlim_valid  & &  s - > scene . controls_state . getVEgo ( )  >  ( speedlimit  +  s - > speed_lim_off  +  hysteresis_offset ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  int  viz_speedlim_w  =  180 ;   
			
		
	
		
		
			
				
					
					  int  viz_speedlim_h  =  202 ;   
			
		
	
		
		
			
				
					
					  int  viz_speedlim_x  =  ( s - > scene . ui_viz_rx  +  ( bdr_s * 2 ) ) ;   
			
		
	
		
		
			
				
					
					  int  viz_speedlim_y  =  ( box_y  +  ( bdr_s * 1.5 ) ) ;   
			
		
	
		
		
			
				
					
					  if  ( ! is_speedlim_valid )  {   
			
		
	
		
		
			
				
					
					    viz_speedlim_w  - =  5 ;   
			
		
	
		
		
			
				
					
					    viz_speedlim_h  - =  10 ;   
			
		
	
		
		
			
				
					
					    viz_speedlim_x  + =  9 ;   
			
		
	
		
		
			
				
					
					    viz_speedlim_y  + =  5 ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					  // Draw Background
   
			
		
	
		
		
			
				
					
					  NVGcolor  color  =  COLOR_WHITE_ALPHA ( 100 ) ;   
			
		
	
		
		
			
				
					
					  if  ( is_speedlim_valid  & &  s - > is_ego_over_limit )  {   
			
		
	
		
		
			
				
					
					    color  =  nvgRGBA ( 218 ,  111 ,  37 ,  180 ) ;   
			
		
	
		
		
			
				
					
					  }  else  if  ( is_speedlim_valid )  {   
			
		
	
		
		
			
				
					
					    color  =  COLOR_WHITE ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					  ui_draw_rect ( s - > vg ,  viz_speedlim_x ,  viz_speedlim_y ,  viz_speedlim_w ,  viz_speedlim_h ,  color ,  is_speedlim_valid  ?  30  :  15 ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  // Draw Border
   
			
		
	
		
		
			
				
					
					  if  ( is_speedlim_valid )  {   
			
		
	
		
		
			
				
					
					    ui_draw_rect ( s - > vg ,  viz_speedlim_x ,  viz_speedlim_y ,  viz_speedlim_w ,  viz_speedlim_h ,   
			
		
	
		
		
			
				
					
					                 s - > is_ego_over_limit  ?  COLOR_OCHRE  :  COLOR_WHITE ,  20 ,  10 ) ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					  const  float  text_x  =  viz_speedlim_x  +  viz_speedlim_w  /  2 ;   
			
		
	
		
		
			
				
					
					  const  float  text_y  =  viz_speedlim_y  +  ( is_speedlim_valid  ?  50  :  45 ) ;   
			
		
	
		
		
			
				
					
					  // Draw "Speed Limit" Text
   
			
		
	
		
		
			
				
					
					  nvgTextAlign ( s - > vg ,  NVG_ALIGN_CENTER  |  NVG_ALIGN_BASELINE ) ;   
			
		
	
		
		
			
				
					
					  color  =  is_speedlim_valid  & &  s - > is_ego_over_limit  ?  COLOR_WHITE  :  COLOR_BLACK ;   
			
		
	
		
		
			
				
					
					  ui_draw_text ( s - > vg ,  text_x  +  ( is_speedlim_valid  ?  6  :  0 ) ,  text_y ,  " SMART " ,  50 ,  color ,  s - > font_sans_semibold ) ;   
			
		
	
		
		
			
				
					
					  ui_draw_text ( s - > vg ,  text_x  +  ( is_speedlim_valid  ?  6  :  0 ) ,  text_y  +  40 ,  " SPEED " ,  50 ,  color ,  s - > font_sans_semibold ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  // Draw Speed Text
   
			
		
	
		
		
			
				
					
					  color  =  s - > is_ego_over_limit  ?  COLOR_WHITE  :  COLOR_BLACK ;   
			
		
	
		
		
			
				
					
					  if  ( is_speedlim_valid )  {   
			
		
	
		
		
			
				
					
					    snprintf ( speedlim_str ,  sizeof ( speedlim_str ) ,  " %d " ,  speedlim_calc ) ;   
			
		
	
		
		
			
				
					
					    ui_draw_text ( s - > vg ,  text_x ,  viz_speedlim_y  +  ( is_speedlim_valid  ?  170  :  165 ) ,  speedlim_str ,  48 * 2.5 ,  color ,  s - > font_sans_bold ) ;   
			
		
	
		
		
			
				
					
					  }  else  {   
			
		
	
		
		
			
				
					
					    ui_draw_text ( s - > vg ,  text_x ,  viz_speedlim_y  +  ( is_speedlim_valid  ?  170  :  165 ) ,  " N/A " ,  42 * 2.5 ,  color ,  s - > font_sans_semibold ) ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					# endif  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					static  void  ui_draw_vision_speed ( UIState  * s )  { static  void  ui_draw_vision_speed ( UIState  * s )  {  
			
		
	
		
		
			
				
					
					  const  UIScene  * scene  =  & s - > scene ;    const  UIScene  * scene  =  & s - > scene ;   
			
		
	
		
		
			
				
					
					  float  v_ego  =  s - > scene . controls_state . getVEgo ( ) ;    float  v_ego  =  s - > scene . controls_state . getVEgo ( ) ;   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -551,15 +484,6 @@ static void ui_draw_vision_event(UIState *s) { 
			
		
	
		
		
			
				
					
					  }    }   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					# ifdef SHOW_SPEEDLIMIT  
			
		
	
		
		
			
				
					
					static  void  ui_draw_vision_map ( UIState  * s )  {  
			
		
	
		
		
			
				
					
					  const  int  map_size  =  96 ;   
			
		
	
		
		
			
				
					
					  const  int  map_x  =  ( s - > scene . ui_viz_rx  +  ( map_size  *  3 )  +  ( bdr_s  *  3 ) ) ;   
			
		
	
		
		
			
				
					
					  const  int  map_y  =  ( footer_y  +  ( ( footer_h  -  map_size )  /  2 ) ) ;   
			
		
	
		
		
			
				
					
					  ui_draw_circle_image ( s - > vg ,  map_x ,  map_y ,  map_size ,  s - > img_map ,  s - > scene . map_valid ) ;   
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					# endif  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					static  void  ui_draw_vision_face ( UIState  * s )  { static  void  ui_draw_vision_face ( UIState  * s )  {  
			
		
	
		
		
			
				
					
					  const  int  face_size  =  96 ;    const  int  face_size  =  96 ;   
			
		
	
		
		
			
				
					
					  const  int  face_x  =  ( s - > scene . ui_viz_rx  +  face_size  +  ( bdr_s  *  2 ) ) ;    const  int  face_x  =  ( s - > scene . ui_viz_rx  +  face_size  +  ( bdr_s  *  2 ) ) ;   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -629,20 +553,12 @@ static void ui_draw_vision_header(UIState *s) { 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  ui_draw_vision_maxspeed ( s ) ;    ui_draw_vision_maxspeed ( s ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					# ifdef SHOW_SPEEDLIMIT  
			
		
	
		
		
			
				
					
					  ui_draw_vision_speedlimit ( s ) ;   
			
		
	
		
		
			
				
					
					# endif  
			
		
	
		
		
			
				
					
					  ui_draw_vision_speed ( s ) ;    ui_draw_vision_speed ( s ) ;   
			
		
	
		
		
			
				
					
					  ui_draw_vision_event ( s ) ;    ui_draw_vision_event ( s ) ;   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					static  void  ui_draw_vision_footer ( UIState  * s )  { static  void  ui_draw_vision_footer ( UIState  * s )  {  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  ui_draw_vision_face ( s ) ;    ui_draw_vision_face ( s ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					# ifdef SHOW_SPEEDLIMIT  
			
		
	
		
		
			
				
					
					  // ui_draw_vision_map(s);
   
			
		
	
		
		
			
				
					
					# endif  
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  ui_draw_vision_alert ( UIState  * s ,  cereal : : ControlsState : : AlertSize  va_size ,  int  va_color , void  ui_draw_vision_alert ( UIState  * s ,  cereal : : ControlsState : : AlertSize  va_size ,  int  va_color ,  
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -654,15 +570,13 @@ void ui_draw_vision_alert(UIState *s, cereal::ControlsState::AlertSize va_size, 
			
		
	
		
		
			
				
					
					      { cereal : : ControlsState : : AlertSize : : FULL ,  vwp_h } } ;        { cereal : : ControlsState : : AlertSize : : FULL ,  vwp_h } } ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  const  UIScene  * scene  =  & s - > scene ;    const  UIScene  * scene  =  & s - > scene ;   
			
		
	
		
		
			
				
					
					  const  bool  hasSidebar  =  ! scene - > uilayout_sidebarcollapsed ;   
			
		
	
		
		
			
				
					
					  const  bool  mapEnabled  =  scene - > uilayout_mapenabled ;   
			
		
	
		
		
			
				
					
					  bool  longAlert1  =  strlen ( va_text1 )  >  15 ;    bool  longAlert1  =  strlen ( va_text1 )  >  15 ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  const  uint8_t  * color  =  alert_colors [ va_color ] ;    const  uint8_t  * color  =  alert_colors [ va_color ] ;   
			
		
	
		
		
			
				
					
					  int  alr_s  =  alert_size_map [ va_size ] ;    int  alr_s  =  alert_size_map [ va_size ] ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  const  int  alr_x  =  scene - > ui_viz_rx - ( mapEnabled ? ( hasSidebar ? nav_w : ( nav_ww ) ) : 0 ) - bdr_s ;    const  int  alr_x  =  scene - > ui_viz_rx -   bdr_s ;   
			
				
				
			
		
	
		
		
			
				
					
					  const  int  alr_w  =  scene - > ui_viz_rw + ( mapEnabled ? ( hasSidebar ? nav_w : ( nav_ww ) ) : 0 ) + ( bdr_s * 2 ) ;    const  int  alr_w  =  scene - > ui_viz_rw  +   ( bdr_s * 2 ) ;   
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					  const  int  alr_h  =  alr_s + ( va_size = = cereal : : ControlsState : : AlertSize : : NONE ? 0 : bdr_s ) ;    const  int  alr_h  =  alr_s + ( va_size = = cereal : : ControlsState : : AlertSize : : NONE ? 0 : bdr_s ) ;   
			
		
	
		
		
			
				
					
					  const  int  alr_y  =  vwp_h - alr_h ;    const  int  alr_y  =  vwp_h - alr_h ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -719,9 +633,9 @@ static void ui_draw_vision(UIState *s) { 
			
		
	
		
		
			
				
					
					  if  ( scene - > alert_size  ! =  cereal : : ControlsState : : AlertSize : : NONE )  {    if  ( scene - > alert_size  ! =  cereal : : ControlsState : : AlertSize : : NONE )  {   
			
		
	
		
		
			
				
					
					    // Controls Alerts
      // Controls Alerts
   
			
		
	
		
		
			
				
					
					    ui_draw_vision_alert ( s ,  scene - > alert_size ,  s - > status ,      ui_draw_vision_alert ( s ,  scene - > alert_size ,  s - > status ,   
			
		
	
		
		
			
				
					
					                             scene - > alert_text1 . c_str ( ) ,  scene - > alert_text2 . c_str ( ) ) ;                           scene - > alert_text1 . c_str ( ) ,  scene - > alert_text2 . c_str ( ) ) ;   
			
				
				
			
		
	
		
		
			
				
					
					  }  else  {    }  else  if  ( ! scene - > frontview )  {   
			
				
				
			
		
	
		
		
			
				
					
					    if  ( ! scene - > frontview ) { ui_draw_vision_footer ( s ) ; }      ui_draw_vision_footer ( s ) ;   
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					  }    }   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -864,8 +778,6 @@ void ui_nvg_init(UIState *s) { 
			
		
	
		
		
			
				
					
					  assert ( s - > img_turn  ! =  0 ) ;    assert ( s - > img_turn  ! =  0 ) ;   
			
		
	
		
		
			
				
					
					  s - > img_face  =  nvgCreateImage ( s - > vg ,  " ../assets/img_driver_face.png " ,  1 ) ;    s - > img_face  =  nvgCreateImage ( s - > vg ,  " ../assets/img_driver_face.png " ,  1 ) ;   
			
		
	
		
		
			
				
					
					  assert ( s - > img_face  ! =  0 ) ;    assert ( s - > img_face  ! =  0 ) ;   
			
		
	
		
		
			
				
					
					  s - > img_map  =  nvgCreateImage ( s - > vg ,  " ../assets/img_map.png " ,  1 ) ;   
			
		
	
		
		
			
				
					
					  assert ( s - > img_map  ! =  0 ) ;   
			
		
	
		
		
			
				
					
					  s - > img_button_settings  =  nvgCreateImage ( s - > vg ,  " ../assets/images/button_settings.png " ,  1 ) ;    s - > img_button_settings  =  nvgCreateImage ( s - > vg ,  " ../assets/images/button_settings.png " ,  1 ) ;   
			
		
	
		
		
			
				
					
					  assert ( s - > img_button_settings  ! =  0 ) ;    assert ( s - > img_button_settings  ! =  0 ) ;   
			
		
	
		
		
			
				
					
					  s - > img_button_home  =  nvgCreateImage ( s - > vg ,  " ../assets/images/button_home.png " ,  1 ) ;    s - > img_button_home  =  nvgCreateImage ( s - > vg ,  " ../assets/images/button_home.png " ,  1 ) ;