refactor (reduction)
[carveJwlIkooP6JGAAIwe30JlM.git] / player_walk.h
index d422e752b44c008a4c9ce9c9419c870ae8363f18..ae0f9c36f77624f466854893efe92db0789ba9c4 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef PLAYER_WALK_H
 #define PLAYER_WALK_H
 
+#include "player.h"
 #include "player_api.h"
 #include "rigidbody.h"
 
@@ -65,9 +66,10 @@ struct player_walk{
           commit_t;
    }
    animator;
-};
+}
+static player_walk;
 
-VG_STATIC float
+static f32
    k_walkspeed             = 10.0f,
    k_airspeed              = 1.2f,
    k_stopspeed             = 4.0f,
@@ -76,8 +78,7 @@ VG_STATIC float
    k_walk_friction         = 10.0f,
    k_walk_step_height      = 0.2f;
 
-VG_STATIC void player__walk_register(void)
-{
+static void player__walk_register(void){
    VG_VAR_F32( k_walkspeed,      flags=VG_VAR_CHEAT );
    VG_VAR_F32( k_stopspeed,      flags=VG_VAR_CHEAT );
    VG_VAR_F32( k_airspeed,       flags=VG_VAR_CHEAT );
@@ -86,17 +87,32 @@ VG_STATIC void player__walk_register(void)
    VG_VAR_F32( k_walk_accel,     flags=VG_VAR_CHEAT );
 }
 
-VG_STATIC void player__walk_pre_update  ( player_instance *player );
-VG_STATIC void player__walk_update      ( player_instance *player );
-VG_STATIC void player__walk_post_update ( player_instance *player );
-VG_STATIC void player__walk_animate     ( player_instance *player );
-VG_STATIC void player__walk_pose( player_instance *player, player_pose *pose );
-VG_STATIC void player__walk_post_animate( player_instance *player );
-VG_STATIC void player__walk_im_gui      ( player_instance *player );
-VG_STATIC void player__walk_bind        ( player_instance *player );
-VG_STATIC void player__walk_transition  ( player_instance *player );
-VG_STATIC void player__walk_reset       ( player_instance *player, 
-                                          ent_spawn *rp );
-VG_STATIC void player__walk_restore( player_instance *player );
+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_transition  (void);
+static void player__walk_reset       (ent_spawn *rp );
+static void player__walk_restore     (void);
+
+struct player_subsystem_interface static player_subsystem_walk = {
+   .system_register = player__walk_register,
+   .bind = player__walk_bind,
+   .reset = player__walk_reset,
+   .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,
+
+   .animator_data = &player_walk.animator,
+   .animator_size = sizeof(player_walk.animator)
+};
 
 #endif /* PLAYER_WALK_H */