- if( pnode->classtype == k_classtype_skeleton )
- {
- inf = mdl_get_entdata( mdl, pnode );
- skeleton_alloc_from( skele, lin_alloc, inf );
- skeleton_root = i;
- }
- else if( skele->bone_count )
- {
- int is_bone = pnode->classtype == k_classtype_bone;
-
- if( is_bone )
- {
- if( bone_count == skele->bone_count )
- {
- vg_error( "too many bones (%u/%u) @%s!\n",
- bone_count, skele->bone_count,
- mdl_pstr( mdl, pnode->pstr_name ));
-
- skeleton_fatal_err();
- }
-
- struct skeleton_bone *sb = &skele->bones[bone_count];
- struct classtype_bone *bone_inf = mdl_get_entdata( mdl, pnode );
-
- v3_copy( pnode->co, sb->co );
- v3_copy( pnode->s, sb->end );
- sb->parent = pnode->parent-skeleton_root;
- sb->name = mdl_pstr( mdl, pnode->pstr_name );
- sb->flags = bone_inf->flags;
-
- if( sb->flags & k_bone_flag_ik )
- {
- skele->bones[ sb->parent ].flags |= k_bone_flag_ik;
-
- if( ik_count == skele->ik_count )
- {
- vg_error( "Too many ik bones, corrupt model file\n" );
- skeleton_fatal_err();
- }
-
- struct skeleton_ik *ik = &skele->ik[ ik_count ++ ];
- ik->upper = bone_count;
- ik->lower = sb->parent;
- ik->target = bone_inf->ik_target;
- ik->pole = bone_inf->ik_pole;
- }
-
- sb->orig_node = i;
- box_copy( bone_inf->hitbox, sb->hitbox );
-
- if( bone_inf->flags & k_bone_flag_collider_any )
- {
- if( collider_count == skele->collider_count )
- {
- vg_error( "Too many collider bones\n" );
- skeleton_fatal_err();
- }
-
- collider_count ++;
- }
-
- bone_count ++;
- }
- else
- {
- break;
+ for( u32 i=0; i<armature->bone_count; i++ ){
+ mdl_bone *bone = mdl_arritm( &mdl->bones, armature->bone_start+i );
+ struct skeleton_bone *sb = &skele->bones[i+1];
+
+ v3_copy( bone->co, sb->co );
+ v3_copy( bone->end, sb->end );
+
+ sb->parent = bone->parent;
+ sb->name = mdl_pstr( mdl, bone->pstr_name );
+ sb->flags = bone->flags;
+ sb->collider = bone->collider;
+ sb->orig_bone = bone;
+
+ if( sb->flags & k_bone_flag_ik ){
+ skele->bones[ sb->parent ].flags |= k_bone_flag_ik;
+
+ if( ik_count == skele->ik_count ){
+ vg_error( "Too many ik bones, corrupt model file\n" );
+ skeleton_fatal_err();