}
else{
/* Collect */
- float doty = v3_dot( localplayer.rb.to_world[1], state->throw_v );
+ f32 doty = v3_dot( localplayer.rb.to_world[1], state->throw_v );
v3f Fl, Fv;
v3_muladds( state->throw_v, localplayer.rb.to_world[1], -doty, Fl);
+ player_skate.collect_feedback = v3_length(Fl) * 4.0f;
if( state->activity == k_skate_activity_ground ){
if( v3_length2(localplayer.rb.v)<(20.0f*20.0f) ){
}
v3_muls( localplayer.rb.to_world[1], -doty, Fv );
- v3_muladds( localplayer.rb.v, Fv, k_mmcollect_vert, localplayer.rb.v );
+ v3_muladds( localplayer.rb.v, Fv, k_mmcollect_vert, localplayer.rb.v );
v3_muladds( state->throw_v, Fv, k_mmcollect_vert, state->throw_v );
}
struct player_skate_state *state = &player_skate.state;
world_instance *world = world_current_instance();
- if( state->activity == k_skate_activity_handplant ){
+ if( state->activity == k_skate_activity_handplant )
return;
- }
- if( world->water.enabled ){
- if( localplayer.rb.co[1]+0.25f < world->water.height ){
- vg_info( "player fell off due to being in water\n" );
- player__networked_sfx( k_player_subsystem_walk, 32,
- k_player_walk_soundeffect_splash,
- localplayer.rb.co, 1.0f );
- player__dead_transition( k_player_die_type_generic );
- return;
- }
- }
+ if( !world_water_player_safe( world, 0.25f ) ) return;
v3_copy( localplayer.rb.co, state->prev_pos );
state->activity_prev = state->activity;