X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=main.c;h=b46f3771b5a565abba28504e852f745fe97f5bfc;hb=4a883ac1b2506032f9dddab342712de46f2ca734;hp=4610d5288ff09b88247b14901aaa440b13e6bad7;hpb=60b0d8af679396c857f8c5f9a7a518b092a2f416;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/main.c b/main.c index 4610d52..b46f377 100644 --- a/main.c +++ b/main.c @@ -18,9 +18,10 @@ static int debugview = 0; static int sv_debugcam = 0; static int lightedit = 0; static int sv_scene = 0; +static int cl_ui = 1; /* Components */ -#define SR_NETWORKED +//#define SR_NETWORKED /* uncomment this to run the game without any graphics being drawn */ //#define SR_NETWORK_TEST @@ -28,17 +29,16 @@ static int sv_scene = 0; #include "steam.h" #include "network.h" -#include "road.h" +#include "model.h" +//#include "road.h" #include "scene.h" -#include "ik.h" +//#include "ik.h" #include "audio.h" -#include "terrain.h" -#include "character.h" +//#include "terrain.h" +//#include "character.h" #include "ragdoll.h" #include "rigidbody.h" #include "render.h" -#include "gate.h" -#include "water.h" #include "world.h" #include "player.h" @@ -47,6 +47,10 @@ static int sv_scene = 0; #include "shaders/unlit.h" #include "physics_test.h" +#include "anim_test.h" + +#include "gate.h" +#include "water.h" void vg_register(void) { @@ -119,6 +123,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, @@ -127,6 +139,14 @@ void vg_start(void) .persistent = 1 }); + vg_convar_push( (struct vg_convar){ + .name = "cl_ui", + .data = &cl_ui, + .data_type = k_convar_dtype_i32, + .opt_i32 = { .min=0, .max=1, .clamp=1 }, + .persistent = 1 + }); + vg_convar_push( (struct vg_convar){ .name = "walk_speed", .data = &k_walkspeed, @@ -135,6 +155,22 @@ void vg_start(void) .persistent = 1 }); + vg_convar_push( (struct vg_convar){ + .name = "run_speed", + .data = &k_runspeed, + .data_type = k_convar_dtype_f32, + .opt_f32 = { .clamp = 0 }, + .persistent = 1 + }); + + vg_convar_push( (struct vg_convar){ + .name = "walk_accel", + .data = &k_walk_accel, + .data_type = k_convar_dtype_f32, + .opt_f32 = { .clamp = 0 }, + .persistent = 1 + }); + vg_convar_push( (struct vg_convar){ .name = "dt", .data = &ktimestep, @@ -176,7 +212,7 @@ void vg_start(void) if( sv_scene == 0 ) { - character_load( &player.mdl, "ch_default" ); + character_load( &player.mdl, "ch_new" ); character_init_ragdoll( &player.mdl ); world_load(); @@ -186,12 +222,14 @@ void vg_start(void) network_init(); } - else + else if( sv_scene == 1 ) { physics_test_start(); } - - world_routes_ui_newseg( 0, 0.0f ); + else if( sv_scene == 2 ) + { + anim_test_start(); + } } void vg_free(void) @@ -223,6 +261,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 ) @@ -248,7 +290,7 @@ static void render_main_game(void) m4x4f world_4x4; m4x3_expand( player.camera_inverse, world_4x4 ); - gpipeline.fov = freecam? 60.0f: 135.0f; /* 120 */ + gpipeline.fov = freecam? 60.0f: 125.0f; /* 120 */ m4x4_projection( vg_pv, gpipeline.fov, (float)vg_window_x / (float)vg_window_y, 0.02f, 2100.0f ); @@ -260,8 +302,12 @@ static void render_main_game(void) /* * Draw world */ + + int draw_solid = player.is_dead | freecam; render_world( vg_pv, player.camera ); + if( draw_solid ) + draw_player(); render_water_texture( player.camera ); glBindFramebuffer( GL_FRAMEBUFFER, 0 ); @@ -287,14 +333,14 @@ static void render_main_game(void) else glClear( GL_COLOR_BUFFER_BIT ); - if( !player.is_dead ) + if( !draw_solid ) { m4x4_projection( vg_pv, gpipeline.fov, (float)vg_window_x / (float)vg_window_y, - 0.04f, 600.0f ); + 0.01f, 600.0f ); m4x4_mul( vg_pv, world_4x4, vg_pv ); + draw_player(); } - draw_player(); /* Draw back in the background * @@ -340,6 +386,10 @@ void vg_render(void) { physics_test_render(); } + else if( sv_scene == 2 ) + { + anim_test_render( &tex_characters ); + } #endif } @@ -427,13 +477,21 @@ void vg_ui(void) render_update_lighting_ub(); } + + //glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); + if( cl_ui ) + { + render_world_routes_ui(); + } + //glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); +#if 0 static double last_b_press = 0.0; double localtime = vg_time - last_b_press; world_routes_ui_updatetime( 0, localtime ); - world_routes_ui_draw( 0 ); + world_routes_ui_draw( 0, (v4f){ 1.0f,0.0f,1.0f,1.0f}, 9.0f ); if( glfwGetKey(vg_window,GLFW_KEY_B) ) world_routes_ui_notch( 0, localtime ); @@ -442,7 +500,7 @@ void vg_ui(void) if( glfwGetKey(vg_window,GLFW_KEY_N) ) { last_b_press = vg_time; - world_routes_ui_newseg( 0, localtime ); + world_routes_ui_newseg( 0 ); } static double last_m_press; @@ -450,6 +508,12 @@ void vg_ui(void) if( glfwGetKey( vg_window, GLFW_KEY_M) ) { last_m_press = vg_time; - world_routes_ui_popfirst(0); + + vg_info( "start: %u\n",world.routes.routes[0].ui.segment_count ); + for( int i=0; i