X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=main.c;h=e967bcf9bb3c8acf3cf85c714102434663111cd5;hb=1740c935bfdacc65c5c7e4bb95fba1ada1f7118a;hp=266e080803cc4b50190e795b33eb39854151d0cd;hpb=d4746875c05dd3e077e1b266e50ffe4856b45502;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/main.c b/main.c index 266e080..e967bcf 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" @@ -21,7 +25,7 @@ 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 @@ -50,7 +54,6 @@ static int cl_ui = 1; #include "anim_test.h" #include "gate.h" -#include "water.h" void vg_register(void) { @@ -59,9 +62,8 @@ void vg_register(void) shader_vblend_register(); shader_unlit_register(); + player_register(); world_register(); - character_register(); - water_register(); gate_register(); } @@ -71,7 +73,6 @@ static void init_other(void) render_init(); gate_init(); world_init(); - character_init(); audio_init(); } @@ -88,6 +89,7 @@ vg_tex2d *texture_list[] = int main( int argc, char *argv[] ) { + highscores_init( 2000, 50 ); vg_init( argc, argv, "Voyager Game Engine" ); } @@ -97,7 +99,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; @@ -228,13 +230,12 @@ 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(); reset_player( 1, (const char *[]){ "start" } ); - rb_init( &player.rb ); + rb_init( &player.phys.rb ); network_init(); } @@ -254,6 +255,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) @@ -264,7 +268,7 @@ void vg_update(void) { network_update(); player_update(); - world_update(); + world_update( player.phys.rb.co ); //traffic_visualize( world.traffic, world.traffic_count ); // /* TEMP */ @@ -299,7 +303,7 @@ static void draw_origin_axis(void) static void render_main_game(void) { - float speed = freecam? 0.0f: v3_length( player.rb.v ); + float speed = freecam? 0.0f: v3_length( player.phys.rb.v ); v3f shake = { vg_randf()-0.5f, vg_randf()-0.5f, vg_randf()-0.5f }; v3_muls( shake, speed*0.01f, shake ); @@ -330,7 +334,7 @@ static void render_main_game(void) 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.phys.rb.co, player.camera ); /* Copy the RGB of what we have into the background buffer */ glBindFramebuffer( GL_READ_FRAMEBUFFER, 0 ); @@ -431,15 +435,15 @@ static void run_debug_info(void) { char buf[40]; - snprintf( buf, 40, "%.2fm/s", v3_length( player.rb.v ) ); + snprintf( buf, 40, "%.2fm/s", v3_length( player.phys.rb.v ) ); gui_text( (ui_px [2]){ 0, 0 }, buf, 1, k_text_align_left ); snprintf( buf, 40, "%.2f %.2f %.2f m/s", - player.a[0], player.a[1], player.a[2] ); + player.phys.a[0], player.phys.a[1], player.phys.a[2] ); gui_text( (ui_px [2]){ 0, 20 }, buf, 1, k_text_align_left ); snprintf( buf, 40, "pos %.2f %.2f %.2f", - player.rb.co[0], player.rb.co[1], player.rb.co[2] ); + player.phys.rb.co[0], player.phys.rb.co[1], player.phys.rb.co[2] ); gui_text( (ui_px [2]){ 0, 40 }, buf, 1, k_text_align_left ); if( vg_gamepad_ready ) @@ -502,6 +506,7 @@ void vg_ui(void) //glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); audio_debug_soundscapes(); + world_audio_debug(); #if 0 static double last_b_press = 0.0;