fixed recursive build script
[carveJwlIkooP6JGAAIwe30JlM.git] / main.c
diff --git a/main.c b/main.c
index fb53847515fe81382283495ec14ec71944506ad7..0d4ee25781014e1026cd45c90721130aab2cbafb 100644 (file)
--- a/main.c
+++ b/main.c
@@ -40,7 +40,7 @@ static void highscores_save_at_exit(void*_)
    highscores_free();
 }
 
-int vg_preload(void)
+void vg_preload(void)
 {
    vg_convar_push( (struct vg_convar){
       .name = "cl_ui",
@@ -50,51 +50,39 @@ int vg_preload(void)
       .persistent = 1
    });
 
-vg_info(" Copyright  .        . .       -----, ,----- ,---.   .---.  " );
-vg_info(" 2021-2022  |\\      /| |           /  |      |    | |    /| " );
-vg_info("            | \\    / | +--        /   +----- +---'  |   / | " );
-vg_info("            |  \\  /  | |         /    |      |   \\  |  /  | " );
-vg_info("            |   \\/   | |        /     |      |    \\ | /   | " );
+vg_info(" Copyright  .        . .       -----, ,----- ,---.   .---.  \n" );
+vg_info(" 2021-2022  |\\      /| |           /  |      |    | |    /| \n" );
+vg_info("            | \\    / | +--        /   +----- +---'  |   / | \n" );
+vg_info("            |  \\  /  | |         /    |      |   \\  |  /  | \n" );
+vg_info("            |   \\/   | |        /     |      |    \\ | /   | \n" );
 vg_info("            '        ' '--' [] '----- '----- '     ' '---'  " 
-        "SOFTWARE" );
+        "SOFTWARE\n" );
 
    highscores_init( 2000, 50 );
-   if( !vg_loader_highwater( highscores_save_at_exit, NULL ) )         return 0;
+   vg_loader_highwater( NULL, highscores_save_at_exit, NULL );
 
    vg_sleep_ms(200);
 
-   if( !steam_init() )                                                 return 0;
-   if( !vg_loader_highwater( steam_end, NULL ) )                       return 0;
+   steam_init();
+   vg_loader_highwater( NULL, steam_end, NULL );
 
-   if( !network_init() )                                               return 0;
-   if( !vg_loader_highwater( network_end, NULL ) )                     return 0;
-
-   return 1;
+   vg_loader_highwater( network_init, network_end, NULL );
 }
 
-int vg_load(void)
+void vg_load(void)
 {
-   if( !render_init() )                                                return 0;
-   if( !vg_loader_highwater( render_free, NULL ) )                     return 0;
-
-   if( !world_init() )                                                 return 0;
-
-   if( !player_init() )                                                return 0;
-   if( !vg_loader_highwater( player_model_free, NULL ) )               return 0;
-
+   vg_loader_highwater( render_init, render_free, NULL );
+   vg_loader_highwater( world_init, world_free, NULL );
+   vg_loader_highwater( player_init, NULL, NULL );
 
+   if( !vg_bake_shaders() )
+      vg_fatal_exit_loop( "Did not load all shaders" );
 
-   if( !vg_bake_shaders() )                                            return 0;
-
-
-   if( !audio_init() )                                                 return 0;
-   if( !vg_loader_highwater( audio_free, NULL ) )                      return 0;
+   vg_loader_highwater( audio_init, audio_free, NULL );
 
    /* FInal step */
    world_load();
    vg_console_load_autos();
-
-   return 1;
 }
 
 static void vg_start(void)
@@ -118,11 +106,27 @@ void vg_update( int loaded )
    {
       draw_origin_axis();
       network_update();
-      player_update();
+      player_update_pre();
       world_update( player.phys.rb.co );
    }
 }
 
+static void vg_update_fixed( int loaded )
+{
+   if( loaded )
+   {
+      player_update_fixed();
+   }
+}
+
+static void vg_update_post( int loaded )
+{
+   if( loaded )
+   {
+      player_update_post();
+   }
+}
+
 static void vg_framebuffer_resize( int w, int h )
 {
    render_fb_resize();
@@ -132,23 +136,15 @@ static void vg_framebuffer_resize( int w, int h )
 
 static void render_main_game(void)
 {
-   /* TODO Breakup this & Gen */
-#if 0
-   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 );
-#endif
-
    m4x4f world_4x4;
    m4x3_expand( player.camera_inverse, world_4x4 );
 
    gpipeline.fov = freecam? 60.0f: 125.0f; /* 120 */
-   m4x4_projection( vg_pv, gpipeline.fov, 
-         (float)vg_window_x / (float)vg_window_y, 
+   m4x4_projection( vg.pv, gpipeline.fov, 
+         (float)vg.window_x / (float)vg.window_y, 
          0.02f, 2100.0f );
 
-   m4x4_mul( vg_pv, world_4x4, vg_pv );
-
+   m4x4_mul( vg.pv, world_4x4, vg.pv );
    glEnable( GL_DEPTH_TEST );
    
    /* 
@@ -157,21 +153,21 @@ static void render_main_game(void)
 
    int draw_solid = player.is_dead | freecam;
    
-   render_world( vg_pv, player.camera );
+   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 );
+   render_water_surface( vg.pv, player.camera );
 
-   render_world_gates( vg_pv, player.phys.rb.co, 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 );
    glBindFramebuffer( GL_DRAW_FRAMEBUFFER, gpipeline.fb_background );
-   glBlitFramebuffer( 0,0, vg_window_x, vg_window_y, 
-                      0,0, vg_window_x, vg_window_y,
+   glBlitFramebuffer( 0,0, vg.window_x, vg.window_y, 
+                      0,0, vg.window_x, vg.window_y,
                       GL_COLOR_BUFFER_BIT,
                       GL_LINEAR );
    
@@ -186,10 +182,10 @@ static void render_main_game(void)
    
    if( !draw_solid )
    {
-      m4x4_projection( vg_pv, gpipeline.fov, 
-            (float)vg_window_x / (float)vg_window_y, 
+      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 );
+      m4x4_mul( vg.pv, world_4x4, vg.pv );
       draw_player();
    }
 
@@ -214,7 +210,7 @@ static void render_main_game(void)
 void vg_render(void)
 {
    glBindFramebuffer( GL_FRAMEBUFFER, 0 );
-   glViewport( 0,0, vg_window_x, vg_window_y );
+   glViewport( 0,0, vg.window_x, vg.window_y );
    glDisable( GL_DEPTH_TEST );
 
    glClearColor( 0.11f, 0.35f, 0.37f, 1.0f );
@@ -226,8 +222,8 @@ void vg_render(void)
    /* Other shite */
    glDisable(GL_BLEND);
    glDisable( GL_DEPTH_TEST );
-   vg_lines_drawall( (float *)vg_pv );
-   glViewport( 0,0, vg_window_x, vg_window_y );
+   vg_lines_drawall( (float *)vg.pv );
+   glViewport( 0,0, vg.window_x, vg.window_y );
 }
 
 void vg_ui(void)
@@ -279,10 +275,6 @@ void vg_ui(void)
    audio_debug_soundscapes();
 }
 
-void vg_free(void)
-{
-}
-
 #if 0
 static void run_light_widget( struct light_widget *lw )
 {