refactor player
[carveJwlIkooP6JGAAIwe30JlM.git] / main.c
diff --git a/main.c b/main.c
index b46f3771b5a565abba28504e852f745fe97f5bfc..0732057dab95eb68745b26280e5e15670240c13f 100644 (file)
--- 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
@@ -59,8 +63,8 @@ void vg_register(void)
    shader_vblend_register();
    shader_unlit_register();
 
+   player_register();
    world_register();
-   character_register();
    water_register();
    gate_register();
 }
@@ -71,7 +75,6 @@ static void init_other(void)
    render_init();
    gate_init();
    world_init();
-   character_init();
    audio_init();
 }
 
@@ -88,6 +91,7 @@ vg_tex2d *texture_list[] =
 
 int main( int argc, char *argv[] )
 { 
+   highscores_init( 2000, 50 );
    vg_init( argc, argv, "Voyager Game Engine" ); 
 }
 
@@ -97,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;
@@ -171,6 +175,22 @@ void vg_start(void)
       .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,
@@ -212,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();
 
@@ -238,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)
@@ -314,7 +336,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.rb.co, player.camera );
    
    /* Copy the RGB of what we have into the background buffer */
    glBindFramebuffer( GL_READ_FRAMEBUFFER, 0 );
@@ -484,6 +506,9 @@ void vg_ui(void)
       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;