X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player.c;h=b1788c626e8a410d148849144afa4bed296592ed;hb=2c91a71533b4ce86b9e7fd708420ae05c74d8f52;hp=5bd43325c4945ac8b47df3fe2080c9518c95ce89;hpb=d27f8a570e5cfad1974b4be303888e17ff846406;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player.c b/player.c index 5bd4332..b1788c6 100644 --- a/player.c +++ b/player.c @@ -142,9 +142,6 @@ static void player__pass_gate( u32 id ){ m4x3_mulv( gate->transport, localplayer.cam.pos, localplayer.cam.pos ); - if( gate->flags & k_ent_gate_nonlocal ) - world_set_active_instance( gate->target ); - audio_lock(); audio_oneshot( &audio_gate_pass, 1.0f, 0.0f ); audio_unlock(); @@ -219,18 +216,22 @@ static void player__im_gui(void){ skaterift_replay_debug_info(); } - static void player__setpos( v3f pos ){ v3_copy( pos, localplayer.rb.co ); v3_zero( localplayer.rb.v ); rb_update_transform( &localplayer.rb ); } -static void player__spawn( ent_spawn *rp ){ +static void player__reset(void){ replay_clear( &skaterift.replay ); - player__setpos( rp->transform.co ); + + v3_zero( localplayer.rb.v ); v3_zero( localplayer.rb.w ); - q_identity( localplayer.rb.q ); + + f32 l = v4_length( localplayer.rb.q ); + if( (l < 0.9f) || (l > 1.1f) ) + q_identity( localplayer.rb.q ); + rb_update_transform( &localplayer.rb ); q_identity( localplayer.qbasis ); @@ -238,17 +239,19 @@ static void player__spawn( ent_spawn *rp ){ m3x3_identity( localplayer.invbasis ); localplayer.subsystem = k_player_subsystem_walk; + player__walk_reset(); + localplayer.immobile = 0; localplayer.gate_waiting = NULL; - world_static.last_use = 0.0; - world_static.focused_entity = 0; + localplayer.viewable_world = world_current_instance(); + world_static.challenge_target = NULL; world_static.challenge_timer = 0.0f; + world_static.focused_entity = 0; + world_static.active_trigger_volume_count = 0; + world_static.last_use = 0.0; world_entity_unfocus(); - if( player_subsystems[ localplayer.subsystem ]->reset ) - player_subsystems[ localplayer.subsystem ]->reset( rp ); - localplayer.boundary_hash ^= NETMSG_BOUNDARY_BIT; for( u32 i=0; itransform.co ); + player__reset(); +} + static void player__kill(void){ }