#include "shaders/model_menu.h"
#include "vg_steam_friends.h"
-#include "submodules/tinydir/tinydir.h"
VG_STATIC mdl_context menu_model;
VG_STATIC mdl_array_ptr menu_markers;
VG_STATIC const char *playermodels[] = { "ch_new", "ch_jordan", "ch_outlaw" };
-vg_tex2d tex_menu = { .path = "textures/menu.qoi",.flags = VG_TEXTURE_NEAREST };
+GLuint tex_menu;
+#if 0
VG_STATIC struct input_binding input_menu_h,
input_menu_v,
input_menu_press,
input_menu_back,
input_menu_toggle,
input_menu_toggle_kbm;
+#endif
VG_STATIC void menu_btn_quit( int event );
VG_STATIC void menu_btn_skater( int event );
return 0;
}
+#if 0
VG_STATIC int menu_controller( struct menu_btn_userdata ud )
{
if( (game_menu.page & (k_menu_page_main|k_menu_page_settings))
return 1;
return 0;
}
+#endif
struct menu_button
{
{
"res_info", menu_vis, {k_menu_page_settings},
},
+#if 0
{ "ctr_xbox", menu_controller_inf, {k_steam_controller_type_xbox}},
{ "ctr_xbox_text", menu_controller_inf, {k_steam_controller_type_xbox}},
{ "ctr_steam", menu_controller_inf, {k_steam_controller_type_steam}},
{ "ctr_ps_text", menu_controller_inf, {k_steam_controller_type_playstation}},
{ "ctr_kbm", menu_controller_inf, {k_steam_controller_type_keyboard}},
{ "ctr_kbm_text", menu_controller_inf, {k_steam_controller_type_keyboard}},
+#endif
{
"text_paused", menu_vis, {k_menu_page_main}
},
struct menu_map_file *mf = &game_menu.maps_list[ game_menu.map_count ];
vg_strncpy( file.name, mf->name,
- vg_list_size(game_menu.maps_list[0].name)-1 );
+ vg_list_size(game_menu.maps_list[0].name),
+ k_strncpy_always_add_null );
game_menu.map_count ++;
if( game_menu.map_count == vg_list_size(game_menu.maps_list) )
VG_STATIC void menu_init(void)
{
- vg_create_unnamed_input( &input_menu_h, k_input_type_axis );
- vg_create_unnamed_input( &input_menu_v, k_input_type_axis );
- vg_create_unnamed_input( &input_menu_back, k_input_type_button );
- vg_create_unnamed_input( &input_menu_press, k_input_type_button );
- vg_create_unnamed_input( &input_menu_toggle, k_input_type_button );
- vg_create_unnamed_input( &input_menu_toggle_kbm, k_input_type_button );
-
+#if 0
vg_apply_bind_str( &input_menu_h, "", "gp-ls-h" );
vg_apply_bind_str( &input_menu_h, "+", "right" );
vg_apply_bind_str( &input_menu_h, "-", "left" );
vg_apply_bind_str( &input_menu_back, "", "\2escape" );
vg_apply_bind_str( &input_menu_toggle_kbm, "", "\2escape" );
vg_apply_bind_str( &input_menu_toggle, "", "\2gp-menu" );
+#endif
vg_linear_clear( vg_mem.scratch );
mdl_open( &menu_model, "models/rs_menu.mdl", vg_mem.rtmemory );
mdl_load_metadata_block( &menu_model, vg_mem.rtmemory );
- mdl_load_mesh_block( &menu_model, vg_mem.scratch );
mdl_load_array( &menu_model, &menu_markers, "ent_marker", vg_mem.rtmemory );
//mdl_invert_uv_coordinates( &menu_model );
+ mdl_async_load_glmesh( &menu_model, &menu_glmesh );
mdl_close( &menu_model );
- vg_acquire_thread_sync();
- {
- mdl_unpack_glmesh( &menu_model, &menu_glmesh );
- vg_tex2d_init( (vg_tex2d *[]){ &tex_menu }, 1 );
- }
- vg_release_thread_sync();
+ vg_tex2d_load_qoi_async_file( "textures/menu.qoi",
+ VG_TEX2D_CLAMP|VG_TEX2D_NEAREST,
+ &tex_menu );
+
for( int i=0; i<vg_list_size(menu_buttons); i++ ){
struct menu_button *btn = &menu_buttons[i];
if( !btn->mesh ){
vg_info( "info: %s\n", btn->name );
- vg_fatal_exit_loop( "Menu programming error" );
+ vg_fatal_error( "Menu programming error" );
}
}
VG_STATIC void menu_run_directional(void)
{
+#if 0
struct menu_button *btn = &menu_buttons[ game_menu.loc ];
if( vg_input_button_down( &input_menu_press ) ){
}
}
}
+#endif
}
VG_STATIC int menu_page_should_backout(void)
{
+ return 0;
+#if 0
return vg_input_button_down( &input_menu_back );
+#endif
}
VG_STATIC void menu_close(void)
}
if( game_menu.map_count > 0 ){
+#if 0
float v = input_menu_v.axis.value;
if( (fabsf(v) > 0.7f) && (menu_input_cooldown <= 0.0f) ){
audio_lock();
menu_close();
#endif
}
+#endif
}
menu_fov_target = 80.0f;
void temp_update_playermodel(void);
VG_STATIC void menu_page_skater(void)
{
+#if 0
float h = input_menu_h.axis.value;
menu_fov_target = 97.0f;
temp_update_playermodel();
}
+#endif
}
VG_STATIC void menu_slider( float *value, int set_value,
mdl_mesh *slider, v3f co_min, v3f co_max )
{
+#if 0
if( set_value ){
float h = input_menu_h.axis.value;
if( fabsf(h) > 0.04f )
}
v3_lerp( co_min, co_max, *value, slider->transform.co );
+#endif
}
VG_STATIC void menu_page_settings(void)
VG_STATIC void menu_update(void)
{
+#if 0
vg_input_update( 1, &input_menu_h );
vg_input_update( 1, &input_menu_v );
vg_input_update( 1, &input_menu_back );
vg_input_update( 1, &input_menu_press );
vg_input_update( 1, &input_menu_toggle );
vg_input_update( 1, &input_menu_toggle_kbm );
+#endif
+ return;
+
+#if 0
int toggle_gp = vg_input_button_down( &input_menu_toggle ),
toggle_kb = vg_input_button_down( &input_menu_toggle_kbm ),
wait_for_a_sec = 0;
if( cl_menu ){
menu_input_cooldown -= vg.time_frame_delta;
}
+#endif
}
/* https://iquilezles.org/articles/functions/ */
shader_model_menu_use();
shader_model_menu_uColour( (v4f){ 1.0f,1.0f,1.0f,1.0f} );
shader_model_menu_uTexMain( 1 );
- vg_tex2d_bind( &tex_menu, 1 );
+
+ glActiveTexture( GL_TEXTURE1 );
+ glBindTexture( GL_TEXTURE_2D, tex_menu );
shader_model_menu_uPv( cam->mtx.pv );
shader_model_menu_uPvmPrev( cam->mtx_prev.pv );