}
static player_skate;
+enum player_skate_soundeffect {
+ k_player_skate_soundeffect_jump,
+ k_player_skate_soundeffect_tap,
+ k_player_skate_soundeffect_land_good,
+ k_player_skate_soundeffect_land_bad,
+ k_player_skate_soundeffect_grind_metal,
+ k_player_skate_soundeffect_grind_wood,
+};
+
static float
k_friction_lat = 12.0f,
k_friction_resistance = 0.01f,
k_grind_balance = -40.0f;
-static void player__skate_register(void)
-{
+static void player__skate_register(void){
VG_VAR_F32( k_grind_dampener, flags=VG_VAR_CHEAT );
VG_VAR_F32( k_grind_spring, flags=VG_VAR_CHEAT );
VG_VAR_F32( k_grind_aligment, flags=VG_VAR_CHEAT );
static void player__skate_pose (void *animator, player_pose *pose);
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 );
static void player__skate_clear_mechanics(void);
static void player__skate_reset_animator(void);
.animate = player__skate_animate,
.pose = player__skate_pose,
.post_animate = player__skate_post_animate,
+ .network_animator_exchange = player__skate_animator_exchange,
+ .sfx_oneshot = player__skate_sfx_oneshot,
.animator_data = &player_skate.animator,
- .animator_size = sizeof(player_skate.animator)
+ .animator_size = sizeof(player_skate.animator),
+ .name = "Skate"
};
#endif /* PLAYER_SKATE_H */