foliage windy shader
[carveJwlIkooP6JGAAIwe30JlM.git] / respawn.c
index 50ddea2757a68a17fa1183049746d01e419de897..d8c470a83679fdfaa35d38c5796863313c3602dc 100644 (file)
--- a/respawn.c
+++ b/respawn.c
@@ -1,6 +1,7 @@
 #ifndef RESPAWN_C
 #define RESPAWN_C
 
+#if 1
 #include "respawn.h"
 #include "skaterift.h"
 #include "world.h"
@@ -9,7 +10,7 @@
 #include "menu.h"
 #include "scene.h"
 
-VG_STATIC void respawn_chooser_get_dir( v3f dir ){
+static void respawn_chooser_get_dir( v3f dir ){
    /* idk */
    dir[0] = -sqrtf(0.5f);
    dir[2] =  sqrtf(0.5f);
@@ -17,7 +18,7 @@ VG_STATIC void respawn_chooser_get_dir( v3f dir ){
    v3_normalize(dir);
 }
 
-VG_STATIC void respawn_chooser_get_plane( v4f plane ){
+static void respawn_chooser_get_plane( v4f plane ){
    world_instance *world = &world_static.instances[ respawn_chooser.world_id ];
    f32 h = localplayer.rb.co[1];
    if( respawn_chooser.world_id != world_static.active_instance )
@@ -26,7 +27,7 @@ VG_STATIC void respawn_chooser_get_plane( v4f plane ){
    v4_copy( (v4f){0.0f,1.0f,0.0f,h}, plane );
 }
 
-VG_STATIC void respawn_world_to_plane_pos( v3f pos, v2f plane_pos ){
+static void respawn_world_to_plane_pos( v3f pos, v2f plane_pos ){
    v3f dir;
    respawn_chooser_get_dir( dir );
    v3_negate(dir,dir);
@@ -40,7 +41,7 @@ VG_STATIC void respawn_world_to_plane_pos( v3f pos, v2f plane_pos ){
    plane_pos[1] = co[2];
 }
 
-VG_STATIC void respawn_chooser_setworld( u32 next ){
+static void respawn_chooser_setworld( u32 next ){
    world_instance *nw = &world_static.instances[next];
    if( nw->status == k_world_status_loaded ){
       respawn_chooser.world_id = next;
@@ -56,7 +57,7 @@ VG_STATIC void respawn_chooser_setworld( u32 next ){
    }
 }
 
-VG_STATIC void respawn_chooser_gohome(void){
+static void respawn_chooser_gohome(void){
    respawn_chooser_setworld(0);
    world_instance *world = &world_static.instances[ respawn_chooser.world_id ];
    
@@ -73,7 +74,7 @@ VG_STATIC void respawn_chooser_gohome(void){
       gui_location_print_ccmd( 1, (const char *[]){ "Invalid home ID" } );
 }
 
-VG_STATIC void respawn_map_draw_icon( camera *cam, 
+static void respawn_map_draw_icon( camera *cam, 
                                       enum gui_icon icon, v3f pos ){
    v4f v;
    v3_copy( pos, v );
@@ -84,17 +85,12 @@ VG_STATIC void respawn_map_draw_icon( camera *cam,
    gui_draw_icon( icon, (v2f){ v[0]*0.5f+0.5f,v[1]*0.5f+0.5f }, 1.0f );
 }
 
-VG_STATIC void respawn_chooser_pre_update(void){
+static void respawn_chooser_pre_update(void){
    if( skaterift.activity != k_skaterift_respawning ) return;
 
-   gui_helper_action( joystick_display_string(k_srjoystick_steer,2), "move" );
-   if( world_static.instances[0].status == k_world_status_loaded )
-      gui_helper_action( axis_display_string(k_sraxis_mworld_h), "world" );
-   gui_helper_action( button_display_string(k_srbind_maccept), "spawn" );
-   gui_helper_action( button_display_string(k_srbind_home), "home" );
-
    if( button_down( k_srbind_mback ) ){
-      srinput.enabled = 0;
+      gui_helper_clear();
+      srinput.state = k_input_state_resume;
       skaterift.activity = k_skaterift_menu;
       menu.page = 0xffffffff;
       menu_open_page( "Main Menu", k_ent_menuitem_stack_append );
@@ -103,35 +99,15 @@ VG_STATIC void respawn_chooser_pre_update(void){
 
    if( button_down( k_srbind_maccept ) ){
       skaterift.activity = k_skaterift_default;
-      srinput.enabled = 0;
+      srinput.state = k_input_state_resume;
 
       if( respawn_chooser.spawn ){
          world_static.active_instance = respawn_chooser.world_id;
-         localplayer.viewable_world = 
-            &world_static.instances[ respawn_chooser.world_id ];
-         player__spawn( &localplayer, respawn_chooser.spawn );
+         player__spawn( respawn_chooser.spawn );
       }
       return;
    }
 
-   if( button_down( k_srbind_world_left ) ){
-      if( respawn_chooser.world_id > 0 )
-         respawn_chooser_setworld( respawn_chooser.world_id-1 );
-   }
-
-   if( button_down( k_srbind_world_right ) ){
-      u32 next = respawn_chooser.world_id+1;
-      if( next < vg_list_size(world_static.instances) )
-         respawn_chooser_setworld( next );
-   }
-
-   if( button_down(k_srbind_home) ){
-      respawn_chooser.home_select ++;
-      if( respawn_chooser.home_select >= vg_list_size(respawn_homes) )
-         respawn_chooser.home_select = 0;
-      respawn_chooser_gohome();
-   }
-
    world_instance *world = &world_static.instances[ respawn_chooser.world_id ];
    v3f *bbx = world->scene_geo.bbx;
    f32 *pos = respawn_chooser.plane_pos;
@@ -197,9 +173,9 @@ VG_STATIC void respawn_chooser_pre_update(void){
    for( u32 i=0; i<mdl_arrcount(&world->ent_challenge); i++ ){
       ent_challenge *challenge = mdl_arritm( &world->ent_challenge, i );
 
-      enum gui_icon icon = k_gui_icon_exclaim;
+      enum gui_icon icon = k_gui_icon_exclaim_2d;
       if( challenge->status )
-         icon = k_gui_icon_tick;
+         icon = k_gui_icon_tick_2d;
 
       respawn_map_draw_icon( cam, icon, challenge->transform.co );
    }
@@ -220,9 +196,20 @@ VG_STATIC void respawn_chooser_pre_update(void){
          respawn_map_draw_icon( cam, k_gui_icon_rift, gate->co[0] );
       }
    }
+
+   for( u32 i=0; i<mdl_arrcount(&world->ent_route); i++ ){
+      ent_route *route = mdl_arritm( &world->ent_route, i );
+
+      v4f colour;
+      v4_copy( route->colour, colour );
+      v3_muls( colour, 1.6666f, colour );
+      gui_icon_setcolour( colour );
+      respawn_map_draw_icon( cam, k_gui_icon_rift_run_2d, 
+                             route->board_transform[3] );
+   }
 }
 
-VG_STATIC void respawn_begin_chooser(void){
+static void respawn_begin_chooser(void){
    skaterift.activity = k_skaterift_respawning;
    respawn_chooser.world_id = world_static.active_instance;
 
@@ -232,9 +219,22 @@ VG_STATIC void respawn_begin_chooser(void){
    respawn_world_to_plane_pos( localplayer.rb.co, respawn_chooser.plane_pos );
    respawn_chooser.boom_dist = 400.0f;
    respawn_chooser.home_select = 0;
+
+   gui_helper_clear();
+
+   vg_str text;
+   if( gui_new_helper( input_joy_list[k_srjoystick_steer], &text ) )
+      vg_strcat( &text, "move" );
+
+   if( gui_new_helper( input_button_list[k_srbind_maccept], &text ) )
+      vg_strcat( &text, "spawn" );
+
+   if( gui_new_helper( input_button_list[k_srbind_mback], &text ) )
+      vg_strcat( &text, "exit" );
 }
 
-VG_STATIC void respawn_chooser_shader_uniforms(void){
+#if 0
+static void respawn_chooser_shader_uniforms(void){
    v4f uPlayerPos, uSpawnPos;
    v4_zero( uPlayerPos );
    v4_zero( uSpawnPos );
@@ -250,5 +250,7 @@ VG_STATIC void respawn_chooser_shader_uniforms(void){
    shader_scene_override_uPlayerPos( uPlayerPos );
    shader_scene_override_uSpawnPos( uSpawnPos );
 }
+#endif
+#endif
 
 #endif /* RESPAWN_C */