if( world->water.enabled ){
if( localplayer.rb.co[1]+0.4f < world->water.height ){
- audio_oneshot_3d( &audio_splash, localplayer.rb.co, 40.0f, 1.0f );
+ player__networked_sfx( k_player_subsystem_walk, 32,
+ k_player_walk_soundeffect_splash,
+ localplayer.rb.co, 1.0f );
player__dead_transition();
return;
}
w->state.activity = k_walk_activity_air;
w->state.outro_type = k_walk_outro_none;
w->state.outro_start_time = 0.0;
+
+ v3f fwd = { 0.0f, 0.0f, 1.0f };
+ q_mulv( localplayer.rb.q, fwd, fwd );
+ q_axis_angle( localplayer.rb.q, (v3f){0.0f,1.0f,0.0f},
+ atan2f(fwd[0], fwd[2]) );
+
+ rb_update_transform( &localplayer.rb );
}
static void player__walk_animator_exchange( bitpack_ctx *ctx, void *data ){
&animator->pitch );
}
}
+
+static void player__walk_sfx_oneshot( u8 id, v3f pos, f32 volume ){
+ audio_lock();
+
+ if( id == k_player_walk_soundeffect_splash ){
+ audio_oneshot_3d( &audio_splash, pos, 40.0f, 1.0f );
+ }
+
+ audio_unlock();
+}
#endif /* PLAYER_DEVICE_WALK_H */