-#pragma once
-
#include "vg/vg_rigidbody_collision.h"
#include "skaterift.h"
.post_animate = player__walk_post_animate,
.pose = player__walk_pose,
.network_animator_exchange = player__walk_animator_exchange,
+ .sfx_oneshot = player__walk_sfx_oneshot,
.animator_data = &player_walk.animator,
.animator_size = sizeof(player_walk.animator),
v3_zero( localplayer.rb.w );
world_instance *world = world_current_instance();
-
- if( world->water.enabled ){
- if( localplayer.rb.co[1]+0.4f < world->water.height ){
- player__networked_sfx( k_player_subsystem_walk, 32,
- k_player_walk_soundeffect_splash,
- localplayer.rb.co, 1.0f );
- vg_info( "player fell of due to walking into walker\n" );
- player__dead_transition( k_player_die_type_generic );
- return;
- }
- }
+ if( !world_water_player_safe( world, 0.4f ) ) return;
enum walk_activity prev_state = w->state.activity;
}
static void player_walk_pose_sit( struct player_walk_animator *animator,
- player_pose *pose ){
+ player_pose *pose )
+{
mdl_keyframe bpose[32];
struct player_walk *w = &player_walk;
/* sit */
if( (animator->activity == k_walk_activity_sit) ||
- (animator->activity == k_walk_activity_sit_up) ){
+ (animator->activity == k_walk_activity_sit_up) )
+ {
+ skeleton_copy_pose( sk, apose, pose->keyframes );
player_walk_pose_sit( animator, pose );
}
else if( animator->activity == k_walk_activity_odrop_in ){
bitpack_qf32( ctx, 16, -100.0f, 100.0f, &animator->board_yaw );
}
-void player__walk_sfx_oneshot( u8 id, v3f pos, f32 volume ){
+void player__walk_sfx_oneshot( u8 id, v3f pos, f32 volume )
+{
audio_lock();
if( id == k_player_walk_soundeffect_splash ){