From: hgn Date: Wed, 17 Nov 2021 12:16:07 +0000 (+0000) Subject: added score counters/career stuff X-Git-Url: https://harrygodden.com/git/?p=fishladder.git;a=commitdiff_plain;h=e750e1ea996212bec83072cab19cc21c358b4d89 added score counters/career stuff --- diff --git a/fishladder.c b/fishladder.c index 52752d5..de9da68 100644 --- a/fishladder.c +++ b/fishladder.c @@ -144,7 +144,7 @@ struct mesh u32 elements; }; -static void init_mesh( struct mesh *m, float *tris, u32 length ) +static void init_mesh( struct mesh *m, float const *tris, u32 length ) { m->elements = length/3; glGenVertexArrays( 1, &m->vao ); @@ -205,7 +205,7 @@ struct world u32 w, h; - struct mesh tile, circle; + struct mesh tile, circle, numbers; GLuint background_data; GLuint random_samples; @@ -230,6 +230,10 @@ struct world char map_name[128]; struct career_level *ptr_career_level; + u32 score; + u32 completed; + u32 time; + } world = {}; static void map_free(void) @@ -244,6 +248,9 @@ static void map_free(void) world.h = 0; world.data = NULL; world.io = NULL; + world.score = 0; + world.time = 0; + world.completed = 0; } static void map_reclassify( v2i start, v2i end, int update_texbuffer ); @@ -352,7 +359,7 @@ static int map_load( const char *str, const char *name ) reg_end ++; } else if( *c == '#' ) cell->state = FLAG_WALL; - else if( *c == '*' ) cell->state = FLAG_CANAL; + else if( *c == '*' ) { cell->state = FLAG_CANAL; world.score ++; } else cell->state = 0x00; cx ++; @@ -606,6 +613,19 @@ void vg_start(void) init_mesh( &world.circle, circle_mesh, vg_list_size( circle_mesh ) ); } + // Numbers mesh + { + init_mesh( &world.numbers, + MESH_NUMBERS_BUFFER, + vg_list_size( MESH_NUMBERS_BUFFER ) + ); + + for( int i = 0; i < 10; i ++ ) + { + vg_info( "offset: %u, length: %u\n", MESH_NUMBERS_OFFSETS[i][0], MESH_NUMBERS_OFFSETS[i][1] ); + } + } + // Create info data texture { glGenTextures( 1, &world.background_data ); @@ -648,6 +668,7 @@ void vg_free(void) free_mesh( &world.tile ); free_mesh( &world.circle ); + free_mesh( &world.numbers ); map_free(); } @@ -854,11 +875,17 @@ void vg_update(void) if( vg_get_button_down("primary") ) { world.data[ world.selected ].state ^= FLAG_CANAL; - + if( world.data[ world.selected ].state & FLAG_CANAL ) + { sfx_set_playrnd( &audio_tile_mod, &audio_system_sfx, 3, 6 ); + world.score ++; + } else + { sfx_set_playrnd( &audio_tile_mod, &audio_system_sfx, 0, 3 ); + world.score --; + } map_reclassify( (v2i){ world.tile_x -2, world.tile_y -2 }, (v2i){ world.tile_x +2, world.tile_y +2 }, 1 ); @@ -1080,47 +1107,57 @@ void vg_update(void) if( alive_count == 0 ) { - if( world.ptr_career_level ) + world.completed = 1; + + for( int i = 0; i < arrlen( world.io ); i ++ ) { - world.ptr_career_level->completed = 1; - - for( int i = 0; i < arrlen( world.io ); i ++ ) + struct cell_terminal *term = &world.io[ i ]; + int is_input = world.data[ term->id ].state & FLAG_INPUT; + + if( !is_input ) { - struct cell_terminal *term = &world.io[ i ]; - int is_input = world.data[ term->id ].state & FLAG_INPUT; - - if( !is_input ) + if( term->recv_count == arrlen( term->conditions ) ) { - if( term->recv_count == arrlen( term->conditions ) ) + for( int j = 0; j < arrlen( term->conditions ); j ++ ) { - for( int j = 0; j < arrlen( term->conditions ); j ++ ) + if( term->recv[j] != term->conditions[j] ) { - if( term->recv[j] != term->conditions[j] ) - { - world.ptr_career_level->completed = 0; - break; - } + world.completed = 0; + break; } } - else - { - world.ptr_career_level->completed = 0; - break; - } + } + else + { + world.completed = 0; + break; } } + } + + if( world.completed ) + { + vg_success( "Level passed!\n" ); - if( world.ptr_career_level->completed ) - { - vg_success( "Level passed!\n" ); - - world.ptr_career_level->score = 9; - world.ptr_career_level->time = world.sim_frame; - } - else - { - vg_error( "Level failed :(\n" ); - } + u32 score = 0; + for( int i = 0; i < world.w*world.h; i ++ ) + if( world.data[ i ].state & FLAG_CANAL ) + score ++; + + world.score = score; + world.time = world.sim_frame; + } + else + { + vg_error( "Level failed :(\n" ); + } + + // Copy into career data + if( world.ptr_career_level ) + { + world.ptr_career_level->score = world.score; + world.ptr_career_level->time = world.time; + world.ptr_career_level->completed = world.completed; } simulation_stop(); // TODO: Async? @@ -1263,6 +1300,26 @@ static void render_tiles( v2i start, v2i end, v4f const regular_colour, v4f cons } } +static void draw_numbers( v3f coord, int number ) +{ + v3f pos; + v3_copy( coord, pos ); + int digits[8]; int i = 0; + + while( number > 0 && i < 8 ) + { + digits[i ++] = number % 10; + number = number / 10; + } + + for( int j = 0; j < i; j ++ ) + { + glUniform3fv( SHADER_UNIFORM( shader_tile_colour, "uOffset" ), 1, pos ); + draw_mesh( MESH_NUMBERS_OFFSETS[digits[i-j-1]][0], MESH_NUMBERS_OFFSETS[digits[i-j-1]][1] ); + pos[0] += pos[2] * 0.75f; + } +} + void vg_render(void) { glViewport( 0,0, vg_window_x, vg_window_y ); @@ -1372,13 +1429,12 @@ void vg_render(void) render_tiles( NULL, NULL, colour_default, colour_selected ); // Draw splitters - for( int y = 2; y < world.h-2; y ++ ) { for( int x = 2; x < world.w-2; x ++ ) { struct cell *cell = pcell((v2i){x,y}); - + if( cell->config == k_cell_type_split ) { float rotation = cell->state & FLAG_FLIP_FLOP? vg_rad( -45.0f ): vg_rad( 45.0f ); @@ -1495,16 +1551,25 @@ void vg_render(void) draw_mesh( filled_start, filled_count ); } + // Draw score + float const score_bright = 1.25f; + glUniform4f( SHADER_UNIFORM( shader_tile_colour, "uColour" ), + 0.4f*score_bright, 0.39f*score_bright, 0.45f*score_bright, 1.0f ); + + use_mesh( &world.numbers ); + draw_numbers( (v3f){ 2.0f, (float)world.h-1.875f, 0.3333f }, world.score ); + // Level selection UI + use_mesh( &world.circle ); float ratio = ((float)vg_window_x/(float)vg_window_y); m3x3f ui_view = M3X3_IDENTITY; - m3x3_scale( ui_view, (v3f){ 1.0f, -ratio, 1.0f } ); + m3x3_scale( ui_view, (v3f){ 1.0f, ratio, 1.0f } ); glUniformMatrix3fv( SHADER_UNIFORM( shader_tile_colour, "uPv" ), 1, GL_FALSE, (float *)ui_view ); // Calculate mouse in UIsp v3f mouse_ui_space = { ((float)vg_mouse[0] / (float)(vg_window_x)) * 2.0f - 1.0f, - (((float)vg_mouse[1] / (float)(vg_window_y)) * 2.0f - 1.0f)*(1.0f/ratio), 0.0125f }; + (((float)vg_mouse[1] / (float)(vg_window_y)) * 2.0f - 1.0f)*(-1.0f/ratio), 0.0125f }; // Get selected level const float selection_scale = 0.05f; @@ -1514,8 +1579,8 @@ void vg_render(void) if( mouse_ui_space[0] <= -0.8f ) { float levels_range = (float)level_count*selection_scale*0.6f; - float level_offset = ((mouse_ui_space[1] + levels_range) / levels_range) * 0.5f * (float)level_count; - level_select = floorf( level_offset ); + float level_offset = ((-mouse_ui_space[1] + levels_range) / levels_range) * 0.5f * (float)level_count; + level_select = ceilf( level_offset ); // Draw selector if( level_select >= 0 && level_select < vg_list_size( level_pack_1 ) ) @@ -1525,7 +1590,7 @@ void vg_render(void) use_mesh( &world.tile ); glUniform3f( SHADER_UNIFORM( shader_tile_colour, "uOffset" ), -1.0f, - (-(float)level_count + (float)level_select * 2.0f ) * selection_scale * 0.6f, + ((float)level_count - (float)level_select * 2.0f ) * selection_scale * 0.6f, selection_scale ); draw_mesh( 2, 2 ); @@ -1545,9 +1610,11 @@ void vg_render(void) // Draw levels for( int i = 0; i < level_count; i ++ ) { + struct career_level *clevel = &career.levels[i]; + v3f level_ui_space = { -0.97f, - (-(float)level_count + (float)i * 2.0f ) * selection_scale * 0.6f + selection_scale * 0.5f, + ((float)level_count - (float)i * 2.0f ) * selection_scale * 0.6f + selection_scale * 0.5f, selection_scale * 0.5f }; @@ -1555,11 +1622,15 @@ void vg_render(void) level_ui_space[2] *= scale; glUniform3fv( SHADER_UNIFORM( shader_tile_colour, "uOffset" ), 1, level_ui_space ); - draw_mesh( empty_start, empty_count ); + + if( clevel->completed ) + draw_mesh( filled_start, filled_count ); + else + draw_mesh( empty_start, empty_count ); } - glUniform3fv( SHADER_UNIFORM( shader_tile_colour, "uOffset" ), 1, mouse_ui_space ); - draw_mesh( empty_start, empty_count ); + //use_mesh( &world.numbers ); + //draw_numbers( (v3f){ 0.0f, -0.5f, 0.1f }, 128765 ); } void vg_ui(void) diff --git a/fishladder_resources.h b/fishladder_resources.h index 511854b..0585b0c 100644 --- a/fishladder_resources.h +++ b/fishladder_resources.h @@ -318,3 +318,155 @@ void vg_register(void) =X | =X= | =X | =X= | | | | | | | */ + +float const MESH_NUMBER_0[] = { + #include "fonts/numbers/n0.h" +}; + +float const MESH_NUMBER_1[] = { + #include "fonts/numbers/n1.h" +}; + +float const MESH_NUMBER_2[] = { + #include "fonts/numbers/n2.h" +}; + +float const MESH_NUMBER_3[] = { + #include "fonts/numbers/n3.h" +}; + +float const MESH_NUMBER_4[] = { + #include "fonts/numbers/n4.h" +}; + +float const MESH_NUMBER_5[] = { + #include "fonts/numbers/n5.h" +}; + +float const MESH_NUMBER_6[] = { + #include "fonts/numbers/n6.h" +}; + +float const MESH_NUMBER_7[] = { + #include "fonts/numbers/n7.h" +}; + +float const MESH_NUMBER_8[] = { + #include "fonts/numbers/n8.h" +}; + +float const MESH_NUMBER_9[] = { + #include "fonts/numbers/n9.h" +}; + +float const MESH_NUMBERS_BUFFER[] = +{ + #include "fonts/numbers/n0.h" + #include "fonts/numbers/n1.h" + #include "fonts/numbers/n2.h" + #include "fonts/numbers/n3.h" + #include "fonts/numbers/n4.h" + #include "fonts/numbers/n5.h" + #include "fonts/numbers/n6.h" + #include "fonts/numbers/n7.h" + #include "fonts/numbers/n8.h" + #include "fonts/numbers/n9.h" +}; + +#define MESH_NUMBER_DIVISOR 6 + +u32 const MESH_NUMBERS_OFFSETS[][2] = +{ + { + 0, + vg_list_size( MESH_NUMBER_0 ) / MESH_NUMBER_DIVISOR + }, + { + vg_list_size( MESH_NUMBER_0 ) / MESH_NUMBER_DIVISOR, + vg_list_size( MESH_NUMBER_1 ) / MESH_NUMBER_DIVISOR + }, + { + ( + vg_list_size( MESH_NUMBER_0 ) + + vg_list_size( MESH_NUMBER_1 ) + ) / MESH_NUMBER_DIVISOR, + vg_list_size( MESH_NUMBER_2 ) / MESH_NUMBER_DIVISOR + }, + { + ( + vg_list_size( MESH_NUMBER_0 ) + + vg_list_size( MESH_NUMBER_1 ) + + vg_list_size( MESH_NUMBER_2 ) + ) / MESH_NUMBER_DIVISOR, + vg_list_size( MESH_NUMBER_3 ) / MESH_NUMBER_DIVISOR + }, + { + ( + vg_list_size( MESH_NUMBER_0 ) + + vg_list_size( MESH_NUMBER_1 ) + + vg_list_size( MESH_NUMBER_2 ) + + vg_list_size( MESH_NUMBER_3 ) + ) / MESH_NUMBER_DIVISOR, + vg_list_size( MESH_NUMBER_4 ) / MESH_NUMBER_DIVISOR + }, + { + ( + vg_list_size( MESH_NUMBER_0 ) + + vg_list_size( MESH_NUMBER_1 ) + + vg_list_size( MESH_NUMBER_2 ) + + vg_list_size( MESH_NUMBER_3 ) + + vg_list_size( MESH_NUMBER_4 ) + ) / MESH_NUMBER_DIVISOR, + vg_list_size( MESH_NUMBER_5 ) / MESH_NUMBER_DIVISOR + }, + { + ( + vg_list_size( MESH_NUMBER_0 ) + + vg_list_size( MESH_NUMBER_1 ) + + vg_list_size( MESH_NUMBER_2 ) + + vg_list_size( MESH_NUMBER_3 ) + + vg_list_size( MESH_NUMBER_4 ) + + vg_list_size( MESH_NUMBER_5 ) + ) / MESH_NUMBER_DIVISOR, + vg_list_size( MESH_NUMBER_6 ) / MESH_NUMBER_DIVISOR + }, + { + ( + vg_list_size( MESH_NUMBER_0 ) + + vg_list_size( MESH_NUMBER_1 ) + + vg_list_size( MESH_NUMBER_2 ) + + vg_list_size( MESH_NUMBER_3 ) + + vg_list_size( MESH_NUMBER_4 ) + + vg_list_size( MESH_NUMBER_5 ) + + vg_list_size( MESH_NUMBER_6 ) + ) / MESH_NUMBER_DIVISOR, + vg_list_size( MESH_NUMBER_7 ) / MESH_NUMBER_DIVISOR + }, + { + ( + vg_list_size( MESH_NUMBER_0 ) + + vg_list_size( MESH_NUMBER_1 ) + + vg_list_size( MESH_NUMBER_2 ) + + vg_list_size( MESH_NUMBER_3 ) + + vg_list_size( MESH_NUMBER_4 ) + + vg_list_size( MESH_NUMBER_5 ) + + vg_list_size( MESH_NUMBER_6 ) + + vg_list_size( MESH_NUMBER_7 ) + ) / MESH_NUMBER_DIVISOR, + vg_list_size( MESH_NUMBER_8 ) / MESH_NUMBER_DIVISOR + }, + { + ( + vg_list_size( MESH_NUMBER_0 ) + + vg_list_size( MESH_NUMBER_1 ) + + vg_list_size( MESH_NUMBER_2 ) + + vg_list_size( MESH_NUMBER_3 ) + + vg_list_size( MESH_NUMBER_4 ) + + vg_list_size( MESH_NUMBER_5 ) + + vg_list_size( MESH_NUMBER_6 ) + + vg_list_size( MESH_NUMBER_7 ) + + vg_list_size( MESH_NUMBER_8 ) + ) / MESH_NUMBER_DIVISOR, + vg_list_size( MESH_NUMBER_9 ) / MESH_NUMBER_DIVISOR + } +}; diff --git a/fonts/numbers/n0.h b/fonts/numbers/n0.h new file mode 100644 index 0000000..111d132 --- /dev/null +++ b/fonts/numbers/n0.h @@ -0,0 +1,9 @@ +/*triangle buffer generated from source file: 'models/n0.obj'*/ +0.500000f,-0.000000f,0.375000f,0.875000f,0.375000f,0.125000f, +0.500000f,1.000000f,0.125000f,0.875000f,0.375000f,0.875000f, +0.375000f,0.125000f,0.000000f,-0.000000f,0.500000f,-0.000000f, +0.000000f,-0.000000f,0.125000f,0.875000f,0.000000f,1.000000f, +0.500000f,-0.000000f,0.500000f,1.000000f,0.375000f,0.875000f, +0.500000f,1.000000f,0.000000f,1.000000f,0.125000f,0.875000f, +0.375000f,0.125000f,0.125000f,0.125000f,0.000000f,-0.000000f, +0.000000f,-0.000000f,0.125000f,0.125000f,0.125000f,0.875000f, diff --git a/fonts/numbers/n1.h b/fonts/numbers/n1.h new file mode 100644 index 0000000..6d395ae --- /dev/null +++ b/fonts/numbers/n1.h @@ -0,0 +1,5 @@ +/*triangle buffer generated from source file: 'models/n1.obj'*/ +0.437500f,-0.000000f,0.312500f,0.875000f,0.312500f,-0.000000f, +0.312500f,0.875000f,0.250000f,1.000000f,0.250000f,0.875000f, +0.437500f,-0.000000f,0.437500f,1.000000f,0.312500f,0.875000f, +0.312500f,0.875000f,0.437500f,1.000000f,0.250000f,1.000000f, diff --git a/fonts/numbers/n2.h b/fonts/numbers/n2.h new file mode 100644 index 0000000..a71391a --- /dev/null +++ b/fonts/numbers/n2.h @@ -0,0 +1,11 @@ +/*triangle buffer generated from source file: 'models/n2.obj'*/ +0.500000f,0.437500f,0.375000f,0.875000f,0.375000f,0.562500f, +0.125000f,0.437500f,0.375000f,0.562500f,0.000000f,0.562500f, +0.125000f,0.125000f,0.000000f,0.562500f,0.000000f,-0.000000f, +0.375000f,0.875000f,0.000000f,1.000000f,0.000000f,0.875000f, +0.125000f,0.125000f,0.500000f,-0.000000f,0.500000f,0.125000f, +0.500000f,0.437500f,0.500000f,1.000000f,0.375000f,0.875000f, +0.125000f,0.437500f,0.500000f,0.437500f,0.375000f,0.562500f, +0.125000f,0.125000f,0.125000f,0.437500f,0.000000f,0.562500f, +0.375000f,0.875000f,0.500000f,1.000000f,0.000000f,1.000000f, +0.125000f,0.125000f,0.000000f,-0.000000f,0.500000f,-0.000000f, diff --git a/fonts/numbers/n3.h b/fonts/numbers/n3.h new file mode 100644 index 0000000..fb91e11 --- /dev/null +++ b/fonts/numbers/n3.h @@ -0,0 +1,12 @@ +/*triangle buffer generated from source file: 'models/n3.obj'*/ +0.500000f,0.562500f,0.375000f,0.875000f,0.375000f,0.562500f, +0.000000f,0.437500f,0.375000f,0.562500f,0.000000f,0.562500f, +0.500000f,0.562500f,0.375000f,0.125000f,0.500000f,-0.000000f, +0.375000f,0.875000f,0.000000f,1.000000f,0.000000f,0.875000f, +0.375000f,0.562500f,0.375000f,0.437500f,0.500000f,0.562500f, +0.375000f,0.125000f,0.000000f,-0.000000f,0.500000f,-0.000000f, +0.500000f,0.562500f,0.500000f,1.000000f,0.375000f,0.875000f, +0.000000f,0.437500f,0.375000f,0.437500f,0.375000f,0.562500f, +0.500000f,0.562500f,0.375000f,0.437500f,0.375000f,0.125000f, +0.375000f,0.875000f,0.500000f,1.000000f,0.000000f,1.000000f, +0.375000f,0.125000f,0.000000f,0.125000f,0.000000f,-0.000000f, diff --git a/fonts/numbers/n4.h b/fonts/numbers/n4.h new file mode 100644 index 0000000..065737c --- /dev/null +++ b/fonts/numbers/n4.h @@ -0,0 +1,10 @@ +/*triangle buffer generated from source file: 'models/n4.obj'*/ +0.125000f,0.562500f,0.000000f,1.000000f,0.000000f,0.437500f, +0.125000f,0.562500f,0.375000f,0.437500f,0.375000f,0.562500f, +0.375000f,0.562500f,0.375000f,0.437500f,0.500000f,0.562500f, +0.500000f,0.562500f,0.375000f,1.000000f,0.375000f,0.562500f, +0.375000f,0.437500f,0.500000f,-0.000000f,0.500000f,0.562500f, +0.125000f,0.562500f,0.125000f,1.000000f,0.000000f,1.000000f, +0.125000f,0.562500f,0.000000f,0.437500f,0.375000f,0.437500f, +0.500000f,0.562500f,0.500000f,1.000000f,0.375000f,1.000000f, +0.375000f,0.437500f,0.375000f,-0.000000f,0.500000f,-0.000000f, diff --git a/fonts/numbers/n5.h b/fonts/numbers/n5.h new file mode 100644 index 0000000..176aed8 --- /dev/null +++ b/fonts/numbers/n5.h @@ -0,0 +1,11 @@ +/*triangle buffer generated from source file: 'models/n5.obj'*/ +0.125000f,0.875000f,0.000000f,0.437500f,0.125000f,0.562500f, +0.125000f,0.562500f,0.375000f,0.437500f,0.500000f,0.562500f, +0.500000f,0.562500f,0.375000f,0.125000f,0.500000f,-0.000000f, +0.125000f,0.875000f,0.500000f,1.000000f,0.000000f,1.000000f, +0.375000f,0.125000f,0.000000f,-0.000000f,0.500000f,-0.000000f, +0.125000f,0.875000f,0.000000f,1.000000f,0.000000f,0.437500f, +0.125000f,0.562500f,0.000000f,0.437500f,0.375000f,0.437500f, +0.500000f,0.562500f,0.375000f,0.437500f,0.375000f,0.125000f, +0.125000f,0.875000f,0.500000f,0.875000f,0.500000f,1.000000f, +0.375000f,0.125000f,0.000000f,0.125000f,0.000000f,-0.000000f, diff --git a/fonts/numbers/n6.h b/fonts/numbers/n6.h new file mode 100644 index 0000000..675ea5b --- /dev/null +++ b/fonts/numbers/n6.h @@ -0,0 +1,14 @@ +/*triangle buffer generated from source file: 'models/n6.obj'*/ +0.500000f,0.562500f,0.375000f,0.125000f,0.500000f,-0.000000f, +0.125000f,0.125000f,0.500000f,-0.000000f,0.375000f,0.125000f, +0.125000f,0.437500f,0.000000f,-0.000000f,0.125000f,0.125000f, +0.125000f,0.437500f,0.125000f,0.562500f,0.000000f,0.562500f, +0.125000f,0.562500f,0.375000f,0.437500f,0.500000f,0.562500f, +0.125000f,0.875000f,0.000000f,0.562500f,0.125000f,0.562500f, +0.125000f,0.875000f,0.500000f,1.000000f,0.000000f,1.000000f, +0.500000f,0.562500f,0.375000f,0.437500f,0.375000f,0.125000f, +0.125000f,0.125000f,0.000000f,-0.000000f,0.500000f,-0.000000f, +0.125000f,0.437500f,0.000000f,0.562500f,0.000000f,-0.000000f, +0.125000f,0.562500f,0.125000f,0.437500f,0.375000f,0.437500f, +0.125000f,0.875000f,0.000000f,1.000000f,0.000000f,0.562500f, +0.125000f,0.875000f,0.500000f,0.875000f,0.500000f,1.000000f, diff --git a/fonts/numbers/n7.h b/fonts/numbers/n7.h new file mode 100644 index 0000000..f3016f3 --- /dev/null +++ b/fonts/numbers/n7.h @@ -0,0 +1,5 @@ +/*triangle buffer generated from source file: 'models/n7.obj'*/ +0.500000f,-0.000000f,0.375000f,0.875000f,0.375000f,-0.000000f, +0.375000f,0.875000f,0.000000f,1.000000f,0.000000f,0.875000f, +0.500000f,-0.000000f,0.500000f,1.000000f,0.375000f,0.875000f, +0.375000f,0.875000f,0.500000f,1.000000f,0.000000f,1.000000f, diff --git a/fonts/numbers/n8.h b/fonts/numbers/n8.h new file mode 100644 index 0000000..e7f5957 --- /dev/null +++ b/fonts/numbers/n8.h @@ -0,0 +1,17 @@ +/*triangle buffer generated from source file: 'models/n8.obj'*/ +0.500000f,0.562500f,0.375000f,0.125000f,0.500000f,-0.000000f, +0.125000f,0.125000f,0.500000f,-0.000000f,0.375000f,0.125000f, +0.125000f,0.437500f,0.000000f,-0.000000f,0.125000f,0.125000f, +0.125000f,0.437500f,0.125000f,0.562500f,0.000000f,0.562500f, +0.125000f,0.562500f,0.375000f,0.437500f,0.375000f,0.562500f, +0.125000f,0.875000f,0.000000f,0.562500f,0.125000f,0.562500f, +0.375000f,0.875000f,0.000000f,1.000000f,0.125000f,0.875000f, +0.500000f,0.562500f,0.375000f,0.562500f,0.375000f,0.437500f, +0.375000f,0.875000f,0.500000f,0.562500f,0.500000f,1.000000f, +0.500000f,0.562500f,0.375000f,0.437500f,0.375000f,0.125000f, +0.125000f,0.125000f,0.000000f,-0.000000f,0.500000f,-0.000000f, +0.125000f,0.437500f,0.000000f,0.562500f,0.000000f,-0.000000f, +0.125000f,0.562500f,0.125000f,0.437500f,0.375000f,0.437500f, +0.125000f,0.875000f,0.000000f,1.000000f,0.000000f,0.562500f, +0.375000f,0.875000f,0.500000f,1.000000f,0.000000f,1.000000f, +0.375000f,0.875000f,0.375000f,0.562500f,0.500000f,0.562500f, diff --git a/fonts/numbers/n9.h b/fonts/numbers/n9.h new file mode 100644 index 0000000..ccc3e6c --- /dev/null +++ b/fonts/numbers/n9.h @@ -0,0 +1,14 @@ +/*triangle buffer generated from source file: 'models/n9.obj'*/ +0.000000f,1.000000f,0.125000f,0.562500f,0.125000f,0.875000f, +0.375000f,0.875000f,0.000000f,1.000000f,0.125000f,0.875000f, +0.375000f,0.875000f,0.500000f,0.437500f,0.500000f,1.000000f, +0.375000f,0.562500f,0.375000f,0.437500f,0.500000f,0.437500f, +0.375000f,0.437500f,0.125000f,0.562500f,0.000000f,0.437500f, +0.375000f,0.125000f,0.500000f,0.437500f,0.375000f,0.437500f, +0.375000f,0.125000f,0.000000f,-0.000000f,0.500000f,-0.000000f, +0.000000f,1.000000f,0.000000f,0.437500f,0.125000f,0.562500f, +0.375000f,0.875000f,0.500000f,1.000000f,0.000000f,1.000000f, +0.375000f,0.875000f,0.375000f,0.562500f,0.500000f,0.437500f, +0.375000f,0.437500f,0.375000f,0.562500f,0.125000f,0.562500f, +0.375000f,0.125000f,0.500000f,-0.000000f,0.500000f,0.437500f, +0.375000f,0.125000f,0.000000f,0.125000f,0.000000f,-0.000000f,