some refactors before the storm
[carveJwlIkooP6JGAAIwe30JlM.git] / respawn.c
diff --git a/respawn.c b/respawn.c
deleted file mode 100644 (file)
index d8c470a..0000000
--- a/respawn.c
+++ /dev/null
@@ -1,256 +0,0 @@
-#ifndef RESPAWN_C
-#define RESPAWN_C
-
-#if 1
-#include "respawn.h"
-#include "skaterift.h"
-#include "world.h"
-#include "input.h"
-#include "gui.h"
-#include "menu.h"
-#include "scene.h"
-
-static void respawn_chooser_get_dir( v3f dir ){
-   /* idk */
-   dir[0] = -sqrtf(0.5f);
-   dir[2] =  sqrtf(0.5f);
-   dir[1] =  1.0f;
-   v3_normalize(dir);
-}
-
-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 )
-      h = (world->scene_geo.bbx[0][1] + world->scene_geo.bbx[1][1]) * 0.5f;
-
-   v4_copy( (v4f){0.0f,1.0f,0.0f,h}, plane );
-}
-
-static void respawn_world_to_plane_pos( v3f pos, v2f plane_pos ){
-   v3f dir;
-   respawn_chooser_get_dir( dir );
-   v3_negate(dir,dir);
-   v4f plane;
-   respawn_chooser_get_plane( plane );
-
-   v3f co;
-   f32 t = ray_plane( plane, pos, dir );
-   v3_muladds( pos, dir, t, co );
-   plane_pos[0] = co[0];
-   plane_pos[1] = co[2];
-}
-
-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;
-
-      v3f target;
-      if( next == world_static.active_instance )
-         v3_copy( localplayer.rb.co, target );
-      else {
-         scene_context *sc = &nw->scene_geo;
-         v3_lerp( sc->bbx[0], sc->bbx[1], 0.5f, target );
-      }
-      respawn_world_to_plane_pos( target, respawn_chooser.plane_pos );
-   }
-}
-
-static void respawn_chooser_gohome(void){
-   respawn_chooser_setworld(0);
-   world_instance *world = &world_static.instances[ respawn_chooser.world_id ];
-   
-   const char **alias = respawn_homes[respawn_chooser.home_select];
-   ent_spawn *spawn = world_find_spawn_by_name( world, alias[0] );
-
-   if( spawn ){
-      respawn_world_to_plane_pos( spawn->transform.co, 
-                                  respawn_chooser.plane_pos );
-
-      gui_location_print_ccmd( 1, (const char *[]){ alias[1] } );
-   }
-   else
-      gui_location_print_ccmd( 1, (const char *[]){ "Invalid home ID" } );
-}
-
-static void respawn_map_draw_icon( camera *cam, 
-                                      enum gui_icon icon, v3f pos ){
-   v4f v;
-   v3_copy( pos, v );
-   v[3] = 1.0f;
-   m4x4_mulv( cam->mtx.pv, v, v );
-   v2_divs( v, v[3], v );
-
-   gui_draw_icon( icon, (v2f){ v[0]*0.5f+0.5f,v[1]*0.5f+0.5f }, 1.0f );
-}
-
-static void respawn_chooser_pre_update(void){
-   if( skaterift.activity != k_skaterift_respawning ) return;
-
-   if( button_down( k_srbind_mback ) ){
-      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 );
-      return;
-   }
-
-   if( button_down( k_srbind_maccept ) ){
-      skaterift.activity = k_skaterift_default;
-      srinput.state = k_input_state_resume;
-
-      if( respawn_chooser.spawn ){
-         world_static.active_instance = respawn_chooser.world_id;
-         player__spawn( respawn_chooser.spawn );
-      }
-      return;
-   }
-
-   world_instance *world = &world_static.instances[ respawn_chooser.world_id ];
-   v3f *bbx = world->scene_geo.bbx;
-   f32 *pos = respawn_chooser.plane_pos;
-
-   v2f steer;
-   joystick_state( k_srjoystick_steer, steer );
-   v2_normalize_clamp( steer );
-
-   m2x2f rm;
-   m2x2_create_rotation( rm, -0.25f*VG_PIf );
-   m2x2_mulv( rm, steer, steer );
-
-   v2_muladds( pos, steer, vg.time_frame_delta * 200.0f, pos );
-   v2_minv( (v2f){ bbx[1][0], bbx[1][2] }, pos, pos );
-   v2_maxv( (v2f){ bbx[0][0], bbx[0][2] }, pos, pos );
-
-   /* update camera */
-   camera *cam = &respawn_chooser.cam;
-   v3f dir;
-   respawn_chooser_get_dir(dir);
-
-   v4f plane;
-   respawn_chooser_get_plane( plane );
-
-   v3f co = { pos[0], plane[3]*plane[1], pos[1] };
-   v3_muladds( co, dir, respawn_chooser.boom_dist, cam->pos );
-
-   vg_line_cross( co, VG__RED, 10.0f );
-
-   cam->angles[0] = 0.25f * VG_PIf;
-   cam->angles[1] = 0.25f * VG_PIf;
-   cam->farz = 5000.0f;
-   cam->nearz = 10.0f;
-   cam->fov = 40.0f;
-
-   camera_update_transform( cam );
-   camera_update_view( cam );
-   camera_update_projection( cam );
-   camera_finalize( cam );
-
-   /* pick spawn */
-   respawn_chooser.spawn = NULL;
-   f32 closest2 = INFINITY;
-
-   for( u32 i=0; i<mdl_arrcount(&world->ent_spawn); i++ ){
-      ent_spawn *spawn = mdl_arritm(&world->ent_spawn,i);
-
-      v4f v;
-      v3_copy( spawn->transform.co, v );
-      v[3] = 1.0f;
-      m4x4_mulv( cam->mtx.pv, v, v );
-      v2_divs( v, v[3], v );
-
-      f32 d2 = v2_length2(v);
-      if( d2 < closest2 ){
-         respawn_chooser.spawn = spawn;
-         closest2 = d2;
-      }
-   }
-
-   /* icons
-    * ---------------------*/
-   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_2d;
-      if( challenge->status )
-         icon = k_gui_icon_tick_2d;
-
-      respawn_map_draw_icon( cam, icon, challenge->transform.co );
-   }
-
-   for( u32 i=0; i<mdl_arrcount(&world->ent_skateshop); i++ ){
-      ent_skateshop *shop = mdl_arritm( &world->ent_skateshop, i );
-      if( shop->type == k_skateshop_type_boardshop ){
-         respawn_map_draw_icon( cam, k_gui_icon_board, shop->transform.co );
-      }
-      else if( shop->type == k_skateshop_type_worldshop ){
-         respawn_map_draw_icon( cam, k_gui_icon_world, shop->transform.co );
-      }
-   }
-
-   for( u32 i=0; i<mdl_arrcount(&world->ent_gate); i++ ){
-      ent_gate *gate = mdl_arritm( &world->ent_gate, i );
-      if( gate->flags & k_ent_gate_nonlocal ){
-         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] );
-   }
-}
-
-static void respawn_begin_chooser(void){
-   skaterift.activity = k_skaterift_respawning;
-   respawn_chooser.world_id = world_static.active_instance;
-
-   world_instance *world = &world_static.instances[ respawn_chooser.world_id ];
-   v3f *bbx = world->scene_geo.bbx;
-
-   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" );
-}
-
-#if 0
-static void respawn_chooser_shader_uniforms(void){
-   v4f uPlayerPos, uSpawnPos;
-   v4_zero( uPlayerPos );
-   v4_zero( uSpawnPos );
-
-   v3_copy( localplayer.rb.co, uPlayerPos );
-   
-   if( respawn_chooser.spawn )
-      v3_copy( respawn_chooser.spawn->transform.co, uSpawnPos );
-
-   uPlayerPos[3] = v3_dist(uPlayerPos,uSpawnPos);
-   uSpawnPos[3] = 1.0f/uPlayerPos[3];
-
-   shader_scene_override_uPlayerPos( uPlayerPos );
-   shader_scene_override_uSpawnPos( uSpawnPos );
-}
-#endif
-#endif
-
-#endif /* RESPAWN_C */