float land_dist;
v3f land_normal;
v4f smoothed_rotation;
+
+ f32 velocity_limit, grind_y_start;
}
state;
struct player_skate_animator {
v3f root_co;
v4f root_q;
+ v3f root_v;
v3f offset,
local_cog;
f32 push_time, jump_time;
u8 jump_dir;
u8 trick_type;
+ u8 activity;
}
animator;
static void player__skate_im_gui (void);
static void player__skate_animate (void);
static void player__skate_pose (void *animator, player_pose *pose);
+static void player__skate_effects( void *_animator, m4x3f *final_mtx,
+ struct player_board *board,
+ struct player_effects_data *effect_data );
static void player__skate_post_animate (void);
-static void player__skate_reset (ent_spawn *rp);
static void player__skate_animator_exchange( bitpack_ctx *ctx, void *data );
static void player__skate_sfx_oneshot ( u8 id, v3f pos, f32 volume );
struct player_subsystem_interface static player_subsystem_skate = {
.system_register = player__skate_register,
.bind = player__skate_bind,
- .reset = player__skate_reset,
.pre_update = player__skate_pre_update,
.update = player__skate_update,
.post_update = player__skate_post_update,
.im_gui = player__skate_im_gui,
.animate = player__skate_animate,
.pose = player__skate_pose,
+ .effects = player__skate_effects,
.post_animate = player__skate_post_animate,
.network_animator_exchange = player__skate_animator_exchange,
.sfx_oneshot = player__skate_sfx_oneshot,