- // Level scroll view
- gui_new_node();
- {
- gui_fill_rect( ui_global_ctx.cursor, 0xff5a4e4d );
- gui_set_clip( ui_global_ctx.cursor );
-
- ui_global_ctx.cursor[2] = 14;
- gui_align_right();
-
- ui_px content_height = count*level_height;
- if( content_height > view_height )
- {
- ui_scrollbar( &ui_global_ctx, &sb, 1 );
- ui_global_ctx.cursor[1] -= ui_calculate_content_scroll( &sb, content_height );
- }
- else
- {
- gui_fill_rect( ui_global_ctx.cursor, 0xff807373 );
- }
-
- ui_global_ctx.cursor[2] = 240;
- ui_global_ctx.cursor[3] = level_height;
- gui_align_left();
-
- for( int i = 0; i < count; i ++ )
- {
- struct cmp_level *lvl_info = &levels[i];
-
- if( lvl_info->unlocked )
- {
- if( lvl_info->completed_score != 0 )
- gui_override_colours( i&0x1? &flcol_list_complete_a: &flcol_list_complete_b );
- else
- gui_override_colours( i&0x1? &flcol_list_a: &flcol_list_b );
- }
- else
- gui_override_colours( &flcol_list_locked );
-
- if( lvl_info->unlocked )
- {
- if( gui_button( 2 + i ) == k_button_click )
- {
- ui_data.level_selected = &levels[i];
- ui_data.leaderboard_show = 0;
-
- if( pack_selection >= 1 )
- sw_find_leaderboard( ui_data.level_selected->map_name );
- }
-
- ui_global_ctx.override_colour = 0xffffffff;
- gui_text( lvl_info->title, 24, 0 );
- ui_global_ctx.cursor[1] += 18;
- gui_text( lvl_info->completed_score>0? "passed": "incomplete", 24, 0 );
- }
- else
- {
- gui_button( 2 + i );
-
- ui_global_ctx.override_colour = 0xff786f6f;
- gui_text( "???", 24, 0 );
- ui_global_ctx.cursor[1] += 18;
- gui_text( "locked", 24, 0 );
- }
-
- gui_end_down();
- }
-
- gui_reset_colours();
- gui_release_clip();
- }
- gui_end_down();
- }
- }
- gui_end_right();
-
- // Selected level UI
- // ============================================================
-
- if( ui_data.level_selected )
- {
- ui_global_ctx.cursor[0] += 16;
- ui_global_ctx.cursor[1] += 16;
- ui_global_ctx.cursor[2] = 512-40;
- ui_global_ctx.cursor[3] = 560-16;
-
- gui_new_node();
- {
- gui_capture_mouse( 9999 );
-
- gui_fill_rect( ui_global_ctx.cursor, 0xff5a4e4d );
- ui_global_ctx.cursor[1] += 4;
- gui_text( ui_data.level_selected->title, 24, 0 );
-
- ui_global_ctx.cursor[1] += 30;