X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=main.c;h=2ae90c83a42ec35dcc8baf079723951e1745353b;hb=6a4dafa6fe9a3dd4bb88698bbe964154364390ec;hp=e053c42177fb515e180930775d1c2486e251b948;hpb=d57b7661518800479c00300ce57407378696eec9;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/main.c b/main.c index e053c42..2ae90c8 100644 --- a/main.c +++ b/main.c @@ -17,9 +17,17 @@ vg_tex2d tex_water = { .path = "textures/water.qoi" }; static int debugview = 0; static int sv_debugcam = 0; static int lightedit = 0; -static int sv_scene = 0; +static int sv_scene = 2; /* Components */ +//#define SR_NETWORKED + +/* uncomment this to run the game without any graphics being drawn */ +//#define SR_NETWORK_TEST + +#include "steam.h" +#include "network.h" + #include "road.h" #include "scene.h" #include "ik.h" @@ -39,6 +47,7 @@ static int sv_scene = 0; #include "shaders/unlit.h" #include "physics_test.h" +#include "anim_test.h" void vg_register(void) { @@ -46,6 +55,7 @@ void vg_register(void) shader_standard_register(); shader_vblend_register(); shader_unlit_register(); + shader_viewchar_register(); world_register(); character_register(); @@ -93,6 +103,8 @@ static int playermodel( int argc, char const *argv[] ) void vg_start(void) { + steam_init(); + vg_convar_push( (struct vg_convar){ .name = "fc", .data = &freecam, @@ -109,6 +121,14 @@ void vg_start(void) .persistent = 1 }); + vg_convar_push( (struct vg_convar){ + .name = "fcs", + .data = &fc_speed, + .data_type = k_convar_dtype_f32, + .opt_f32 = { .clamp = 0 }, + .persistent = 1 + }); + vg_convar_push( (struct vg_convar){ .name = "ledit", .data = &lightedit, @@ -166,29 +186,41 @@ void vg_start(void) if( sv_scene == 0 ) { - character_load( &player.mdl, "ch_outlaw" ); + character_load( &player.mdl, "ch_default" ); character_init_ragdoll( &player.mdl ); world_load(); reset_player( 1, (const char *[]){ "start" } ); rb_init( &player.rb ); + + network_init(); } - else + else if( sv_scene == 1 ) { physics_test_start(); } + else if( sv_scene == 2 ) + { + anim_test_start(); + } } void vg_free(void) { + network_end(); vg_tex2d_free( texture_list, vg_list_size(texture_list) ); + /* TODO: THE REST OF THE GOD DAMN FREEING STUFF */ + steam_end(); } void vg_update(void) { + steam_update(); + if( sv_scene == 0 ) { + network_update(); player_update(); world_update(); //traffic_visualize( world.traffic, world.traffic_count ); @@ -203,6 +235,10 @@ void vg_update(void) { physics_test_update(); } + else if( sv_scene == 2 ) + { + anim_test_update(); + } } static void vg_framebuffer_resize( int w, int h ) @@ -231,7 +267,7 @@ static void render_main_game(void) gpipeline.fov = freecam? 60.0f: 135.0f; /* 120 */ m4x4_projection( vg_pv, gpipeline.fov, (float)vg_window_x / (float)vg_window_y, - 0.1f, 2100.0f ); + 0.02f, 2100.0f ); m4x4_mul( vg_pv, world_4x4, vg_pv ); @@ -240,20 +276,15 @@ static void render_main_game(void) /* * Draw world */ - + render_world( vg_pv, player.camera ); render_water_texture( player.camera ); glBindFramebuffer( GL_FRAMEBUFFER, 0 ); render_water_surface( vg_pv, player.camera ); - vg_tex2d_bind( &tex_water, 1 ); - - for( int i=0; i 1.0 ) + if( glfwGetKey(vg_window,GLFW_KEY_N) ) + { + last_b_press = vg_time; + world_routes_ui_newseg( 0 ); + } + + static double last_m_press; + if( vg_time-last_m_press > 1.0 ) + if( glfwGetKey( vg_window, GLFW_KEY_M) ) + { + last_m_press = vg_time; + + vg_info( "start: %u\n",world.routes.routes[0].ui.segment_count ); + for( int i=0; i