#ifndef RESPAWN_C
#define RESPAWN_C
+#if 1
#include "respawn.h"
#include "skaterift.h"
#include "world.h"
#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);
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 )
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);
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;
}
}
-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 ];
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 );
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 );
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;
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 );
}
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;
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 );
shader_scene_override_uPlayerPos( uPlayerPos );
shader_scene_override_uSpawnPos( uSpawnPos );
}
+#endif
+#endif
#endif /* RESPAWN_C */