player->playermesh = mesh;
}
+/* FIXME: Seperate concepts for binding and equip.
+ */
VG_STATIC void player_use_device( player_interface *player, player_device *dev,
void *storage )
{
player_pose pose;
m4x3f transform;
- player->dev.device->pose( player, &player->dev, pose, transform );
+ /* FIXME: Give devices more control over these render stages, and have
+ * 'API calls'
+ * for this kindof crap instead of it dictating order... */
+
+ if( player->dev.device->pose )
+ {
+ player->dev.device->pose( player, &player->dev, pose, transform );
- struct skeleton *sk = &player->playeravatar->sk;
+ struct skeleton *sk = &player->playeravatar->sk;
- skeleton_apply_pose( sk, pose, k_anim_apply_defer_ik );
- skeleton_apply_ik_pass( sk );
- skeleton_apply_pose( sk, pose, k_anim_apply_deffered_only );
- skeleton_apply_inverses( sk );
- skeleton_apply_transform( sk, transform );
- skeleton_debug( sk );
+ skeleton_apply_pose( sk, pose, k_anim_apply_defer_ik );
+ skeleton_apply_ik_pass( sk );
+ skeleton_apply_pose( sk, pose, k_anim_apply_deffered_only );
+ skeleton_apply_inverses( sk );
+ skeleton_apply_transform( sk, transform );
+ skeleton_debug( sk );
+ }
player->dev.device->get_camera( player, &player->dev, &player->cam );
/* TODO: if dead copy ragdoll.. . */
player->dev.device->reset( player, &player->dev, rp );
}
+VG_STATIC void player_kill( player_interface *player )
+{
+
+}
+
/*
* Apply per render-frame mouse look from player to angles
*/