v3_copy( localplayer.cam.angles, localplayer.angles );
localplayer.angles[2] = 0.0f;
- player__begin_holdout();
+ v3f newpos, offset;
+ m4x3_mulv( localplayer.rb.to_world, (v3f){0.0f,1.0f,0.0f}, newpos );
+ v3_add( newpos, (v3f){0.0f,-1.0f,0.0f}, newpos );
+ v3_sub( localplayer.rb.co, newpos, offset );
+ v3_copy( newpos, localplayer.rb.co );
+
+ player__begin_holdout( offset );
player__skate_kill_audio();
player__walk_transition();
return;
(1.0f-fabsf(animator->slide)*0.9f);
animator->offset[1]=vg_clampf(animator->offset[1],-0.5f,0.0f);
- v3_muls( animator->offset, 0.3f, localplayer.cam_control.tpv_offset_extra );
+ v3f cam_offset;
+ v3_mul( animator->offset, (v3f){1.0f,0.3f,1.0f}, cam_offset );
+ v3_copy( cam_offset, localplayer.cam_control.tpv_offset_extra );
/* localized vectors */
m4x3_mulv( localplayer.rb.to_local, state->cog, animator->local_cog );