X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=respawn.c;h=b7594db52b38ffe80eb6a7e757ebec074df7826f;hb=d27f8a570e5cfad1974b4be303888e17ff846406;hp=50ddea2757a68a17fa1183049746d01e419de897;hpb=56af37b4982b027cac13133eadadfc71ce8947bb;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/respawn.c b/respawn.c index 50ddea2..b7594db 100644 --- a/respawn.c +++ b/respawn.c @@ -9,7 +9,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 +17,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 +26,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 +40,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 +56,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 +73,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 +84,11 @@ 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; + 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,13 +97,13 @@ 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; } @@ -220,9 +214,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; ient_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, + 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 +237,24 @@ 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_mleft], &text ) ) + vg_strcat( &text, "world" ); + + if( gui_new_helper( input_button_list[k_srbind_maccept], &text ) ) + vg_strcat( &text, "spawn" ); + + if( gui_new_helper( input_button_list[k_srbind_home], &text ) ) + vg_strcat( &text, "home" ); } -VG_STATIC void respawn_chooser_shader_uniforms(void){ +static void respawn_chooser_shader_uniforms(void){ v4f uPlayerPos, uSpawnPos; v4_zero( uPlayerPos ); v4_zero( uSpawnPos );