Reverse order
New things to program:
- UI text element renderer (SDF)
- Particle system thing for ball collision
- Level descriptions / titles
+ UI text element renderer (SDF) DONE(sorta)
+ Particle system thing for ball collision
+ Level descriptions / titles HALF
Row Gridlines for I/O
Play button / Speed controller
int num_fishes;
- char map_name[128];
+ char map_name[64];
struct career_level *ptr_career_level;
u32 score;
// Scan for width
for(;; world.w ++)
{
- if( str[world.w] == ';' )
+ if( c[world.w] == ';' )
break;
- else if( !str[world.w] )
+ else if( !c[world.w] )
{
vg_error( "Unexpected EOF when parsing level\n" );
return 0;
}
+ // Level title
+ ui_begin( &ui_global_ctx, 512, 256 );
+
+ ui_global_ctx.override_colour = 0xff9a8a89;
+ //ui_text( &ui_global_ctx, world.map_title, 6, 0 );
+ ui_global_ctx.override_colour = 0xffffffff;
+
+ ui_resolve( &ui_global_ctx );
+
+ m3x3f world_text;
+ m3x3_copy( vg_pv, world_text );
+ m3x3_translate( world_text, (v3f){ 1.55f, 1.9f, 0.0f } );
+ m3x3_rotate( world_text, VG_PIf*0.5f );
+ m3x3_scale( world_text, (v3f){0.01f,-0.01f,0.01f} );
+
+ ui_draw( &ui_global_ctx, world_text );
+
+ // Main
+ // =========================================================================================
+
+ use_mesh( &world.tile );
SHADER_USE( shader_tile_main );
m2x2f subtransform;
level_ui_space[1] -= 0.01f;
draw_numbers( level_ui_space, i );
}
-
- //use_mesh( &world.numbers );
- //draw_numbers( (v3f){ 0.0f, -0.5f, 0.1f }, 128765 );
}
void vg_ui(void)
{
+ ui_global_ctx.cursor[0] = 0;
+ ui_global_ctx.cursor[1] = 0;
+ ui_global_ctx.cursor[2] = 256;
+
+ ui_fill_y( &ui_global_ctx );
+ ui_new_node( &ui_global_ctx );
+ {
+ ui_fill_rect( &ui_global_ctx, ui_global_ctx.cursor, 0xff5577ff );
+
+ ui_text( &ui_global_ctx, "MARBLE COMPUTING", 4, 0 );
+
+ ui_global_ctx.cursor[1] += 45;
+ ui_global_ctx.cursor[3] = 709;
+
+ // Level scroll view
+ ui_new_node( &ui_global_ctx );
+ {
+ ui_fill_rect( &ui_global_ctx, ui_global_ctx.cursor, 0xffff7729 );
+ ui_set_clip( &ui_global_ctx, ui_global_ctx.cursor );
+
+ ui_global_ctx.cursor[3] = 50;
+ ui_global_ctx.cursor[2] = 240;
+
+ for( int i = 0; i < vg_list_size(cmp_levels_basic); i ++ )
+ {
+ struct cmp_level *lvl_info = &cmp_levels_basic[i];
+
+ ui_new_node( &ui_global_ctx );
+ {
+ ui_fill_rect( &ui_global_ctx, ui_global_ctx.cursor, i&0x1?0xff23fce45:0xff8722f8 );
+ ui_text( &ui_global_ctx, lvl_info->title, 3, 0 );
+ }
+ ui_end_down( &ui_global_ctx );
+ }
+
+ ui_release_clip( &ui_global_ctx );
+ }
+ ui_end_down( &ui_global_ctx );
+ }
+ ui_end( &ui_global_ctx );
}