#endif
#include "model.h"
+#include "skeleton.h"
#include "player_ragdoll.h"
+#include "rigidbody.h"
+
#include "shaders/viewchar.h"
-vg_tex2d tex_characters = { .path = "textures/ch_gradient.qoi" };
+struct player_avatar
+{
+ mdl_context meta;
+ struct skeleton sk;
+
+ v3f cam_pos; /* FIXME ? */
+
+#if 0
+ struct skeleton_anim *anim_stand,
+ *anim_highg,
+ *anim_slide,
+ *anim_air,
+ *anim_push, *anim_push_reverse,
+ *anim_ollie, *anim_ollie_reverse,
+ *anim_grabs, *anim_stop,
+ *anim_walk, *anim_run, *anim_idle,
+ *anim_jump;
+#endif
+
+ u32 id_hip,
+ id_ik_hand_l,
+ id_ik_hand_r,
+ id_ik_elbow_l,
+ id_ik_elbow_r,
+ id_head,
+ id_ik_foot_l,
+ id_ik_foot_r,
+ id_board;
+};
+
+#if 0
+glmesh player_meshes[3];
+#endif
+
+VG_STATIC void player_avatar_load( struct player_avatar *av, const char *path )
+{
+ /* load in reference player model, with animations and such */
+ /* FIXME: This is allocated as un-freeable systems memory */
+
+ mdl_open( &av->meta, path );
+ mdl_load_metadata( &av->meta, vg_mem.rtmemory );
+ mdl_load_anim_data( &av->meta, vg_mem.rtmemory );
+
+ struct skeleton *sk = &av->sk;
+ skeleton_setup( sk, vg_mem.rtmemory, &av->meta );
+
+ av->id_hip = skeleton_bone_id( sk, "hips" );
+ av->id_ik_hand_l = skeleton_bone_id( sk, "hand.IK.L" );
+ av->id_ik_hand_r = skeleton_bone_id( sk, "hand.IK.R" );
+ av->id_ik_elbow_l = skeleton_bone_id( sk, "elbow.L" );
+ av->id_ik_elbow_r = skeleton_bone_id( sk, "elbow.R" );
+ av->id_head = skeleton_bone_id( sk, "head" );
+ av->id_ik_foot_l = skeleton_bone_id( sk, "foot.IK.L" );
+ av->id_ik_foot_r = skeleton_bone_id( sk, "foot.IK.R" );
+ av->id_board = skeleton_bone_id( sk, "board" );
+}
-VG_STATIC void player_model_init(void)
+#if 0
+VG_STATIC void player_load_reference( struct player_model *pmodel )
{
shader_viewchar_register();
vg_acquire_thread_sync();
}
}
}
+#endif
#endif