X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=main.c;h=0732057dab95eb68745b26280e5e15670240c13f;hb=2ca677a0ec9d00db46a8b97bec30dbea8280a79b;hp=76d06f60a3696a91fa60e698e86904b7fc173a83;hpb=def76bcdaea4e73faab70c60d8ee48a00f2fb48a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/main.c b/main.c index 76d06f6..0732057 100644 --- a/main.c +++ b/main.c @@ -1,5 +1,9 @@ /* - * Copyright (C) Mount0 Software, Harry Godden - All Rights Reserved + * Copyright 2021-2022 (C) Mount0 Software, Harry Godden - All Rights Reserved + * + * module.h structure definitions + * module_submodule.h implementation + * module_submodule_2.h */ #include "common.h" @@ -18,9 +22,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 @@ -58,8 +63,8 @@ void vg_register(void) shader_vblend_register(); shader_unlit_register(); + player_register(); world_register(); - character_register(); water_register(); gate_register(); } @@ -70,7 +75,6 @@ static void init_other(void) render_init(); gate_init(); world_init(); - character_init(); audio_init(); } @@ -87,6 +91,7 @@ vg_tex2d *texture_list[] = int main( int argc, char *argv[] ) { + highscores_init( 2000, 50 ); vg_init( argc, argv, "Voyager Game Engine" ); } @@ -96,7 +101,7 @@ static int playermodel( int argc, char const *argv[] ) glmesh old_mesh = player.mdl.mesh; - if( character_load( &player.mdl, argv[0] ) ) + if( player_load_model( argv[0] ) ) mesh_free( &old_mesh ); return 1; @@ -138,6 +143,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, @@ -146,6 +159,38 @@ 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 = "rd_floaty", + .data = &k_ragdoll_floatyiness, + .data_type = k_convar_dtype_f32, + .opt_f32 = { .clamp = 0 }, + .persistent = 1 + }); + + vg_convar_push( (struct vg_convar){ + .name = "rd_floatd", + .data = &k_ragdoll_floatydrag, + .data_type = k_convar_dtype_f32, + .opt_f32 = { .clamp = 0 }, + .persistent = 1 + }); + vg_convar_push( (struct vg_convar){ .name = "dt", .data = &ktimestep, @@ -187,8 +232,7 @@ void vg_start(void) if( sv_scene == 0 ) { - character_load( &player.mdl, "ch_new" ); - character_init_ragdoll( &player.mdl ); + player_load_model( "ch_new" ); world_load(); @@ -213,6 +257,9 @@ void vg_free(void) vg_tex2d_free( texture_list, vg_list_size(texture_list) ); /* TODO: THE REST OF THE GOD DAMN FREEING STUFF */ steam_end(); + + highscores_serialize_all(); + highscores_free(); } void vg_update(void) @@ -277,16 +324,19 @@ static void render_main_game(void) /* * Draw world */ + + int draw_solid = player.is_dead | freecam; - draw_player(); render_world( vg_pv, player.camera ); + if( draw_solid ) + draw_player(); render_water_texture( player.camera ); glBindFramebuffer( GL_FRAMEBUFFER, 0 ); render_water_surface( vg_pv, player.camera ); vg_tex2d_bind( &tex_water, 1 ); /*TODO: ?*/ - render_world_gates( vg_pv, player.camera ); + render_world_gates( vg_pv, player.rb.co, player.camera ); /* Copy the RGB of what we have into the background buffer */ glBindFramebuffer( GL_READ_FRAMEBUFFER, 0 ); @@ -305,14 +355,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.01f, 600.0f ); m4x4_mul( vg_pv, world_4x4, vg_pv ); + draw_player(); } - //draw_player(); /* Draw back in the background * @@ -451,8 +501,14 @@ void vg_ui(void) } //glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); - render_world_routes_ui(); + if( cl_ui ) + { + render_world_routes_ui(); + } //glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); + + audio_debug_soundscapes(); + world_audio_debug(); #if 0 static double last_b_press = 0.0;