-#ifndef PLAYER_API_H
-#define PLAYER_API_H
-
+#pragma once
#include "model.h"
#include "camera.h"
-#include "entity.h"
-#define PLAYER_API VG_STATIC
typedef struct player_instance player_instance;
-typedef mdl_keyframe player_pose[32];
-typedef struct player_animation player_animation;
+typedef struct player_pose player_pose;
+
+struct player_pose{
+ enum player_pose_type {
+ k_player_pose_type_ik, /* regular IK animation */
+ k_player_pose_type_fk_2,
+ }
+ type;
+
+ v3f root_co;
+ v4f root_q;
-struct player_animation
-{
- player_pose pose;
- v3f root_co;
- v4f root_q;
+ mdl_keyframe keyframes[32];
+
+ struct player_board_pose {
+ f32 lean;
+ }
+ board;
};
-#endif /* PLAYER_API_H */
+enum player_subsystem{
+ k_player_subsystem_walk = 0,
+ k_player_subsystem_skate = 1,
+ k_player_subsystem_dead = 2,
+ k_player_subsystem_drive = 3,
+ k_player_subsystem_basic_info = 4,
+ k_player_subsystem_glide = 5,
+ k_player_subsystem_max,
+ k_player_subsystem_invalid = 255
+};