revision 2
[carveJwlIkooP6JGAAIwe30JlM.git] / player_walk.h
index 95ce2a0414e55ee7976e684933ff97575bac40c8..b1213547c3d469c857a67a9a0417025bc3af1e53 100644 (file)
@@ -1,13 +1,12 @@
-#ifndef PLAYER_WALK_H
-#define PLAYER_WALK_H
-
+#pragma once
 #include "player.h"
 #include "player_api.h"
 #include "vg/vg_rigidbody.h"
 
 #define PLAYER_JUMP_EPSILON 0.1     /* 100ms jump allowance */
 
-struct player_walk{
+struct player_walk
+{
    rb_capsule collider;
 
    struct player_walk_state{
@@ -68,7 +67,8 @@ struct player_walk{
    }
    animator;
 }
-static player_walk;
+extern player_walk;
+extern struct player_subsystem_interface player_subsystem_walk;
 
 enum player_walk_soundeffect {
    k_player_walk_soundeffect_splash
@@ -97,34 +97,15 @@ static void player__walk_register(void){
    VG_VAR_F32( k_walk_accel,     flags=VG_VAR_CHEAT );
 }
 
-static void player__walk_pre_update  (void);
-static void player__walk_update      (void);
-static void player__walk_post_update (void);
-static void player__walk_animate     (void);
-static void player__walk_pose        (void *animator, player_pose *pose);
-static void player__walk_post_animate(void);
-static void player__walk_im_gui      (void);
-static void player__walk_bind        (void);
-static void player__walk_reset       (void);
-static void player__walk_restore     (void);
-static void player__walk_animator_exchange( bitpack_ctx *ctx, void *data );
-static void player__walk_transition( bool grounded, f32 board_yaw );
-
-struct player_subsystem_interface static player_subsystem_walk = {
-   .system_register = player__walk_register,
-   .bind = player__walk_bind,
-   .pre_update = player__walk_pre_update,
-   .update = player__walk_update,
-   .post_update = player__walk_post_update,
-   .im_gui = player__walk_im_gui,
-   .animate = player__walk_animate,
-   .post_animate = player__walk_post_animate,
-   .pose = player__walk_pose,
-   .network_animator_exchange = player__walk_animator_exchange,
-
-   .animator_data = &player_walk.animator,
-   .animator_size = sizeof(player_walk.animator),
-   .name = "Walk"
-};
-
-#endif /* PLAYER_WALK_H */
+void player__walk_pre_update  (void);
+void player__walk_update      (void);
+void player__walk_post_update (void);
+void player__walk_animate     (void);
+void player__walk_pose        (void *animator, player_pose *pose);
+void player__walk_post_animate(void);
+void player__walk_im_gui      (void);
+void player__walk_bind        (void);
+void player__walk_reset       (void);
+void player__walk_restore     (void);
+void player__walk_animator_exchange( bitpack_ctx *ctx, void *data );
+void player__walk_transition( bool grounded, f32 board_yaw );