medium sized dollop
[carveJwlIkooP6JGAAIwe30JlM.git] / model.h
diff --git a/model.h b/model.h
index 50913017fab68d1925f2d838668df961303cca76..59b75beeb797e89aab8356eeedc5002cc77fa079 100644 (file)
--- a/model.h
+++ b/model.h
@@ -142,19 +142,27 @@ struct classtype_route_node
 
 struct classtype_route
 {
-   u32 pstr_name;
    u32 id_start;
    v3f colour;
 };
 
 struct classtype_bone
 {
-   u32 deform;
+   u32 deform,
+       ik_target,
+       ik_pole,
+       collider,
+       use_limits;
+
+   v3f angle_limits[2];
+   boxf hitbox;
 };
 
 struct classtype_skeleton
 {
    u32 channels,
+       ik_count,
+       collider_count,
        anim_start,
        anim_count;
 };
@@ -176,7 +184,8 @@ struct glmesh
    u32 indice_count;
 };
 
-static void mesh_upload( glmesh *mesh,
+__attribute__((warn_unused_result))
+static int mesh_upload( glmesh *mesh,
       mdl_vert *verts, u32 vert_count,
       u32 *indices, u32 indice_count )
 {
@@ -224,9 +233,13 @@ static void mesh_upload( glmesh *mesh,
          stride, (void *)offsetof(mdl_vert, groups) );
    glEnableVertexAttribArray( 5 );
 
-   
-   VG_CHECK_GL();
+   if( VG_CHECK_GL_ERR() )
+   {
+      return 0;
+   }
+
    mesh->indice_count = indice_count;
+   return 1;
 }
 
 static void mesh_bind( glmesh *mesh )
@@ -457,13 +470,15 @@ static void mdl_node_transform( mdl_node *pnode, m4x3f transform )
    v3_copy( pnode->co, transform[3] );
 }
 
-static void mdl_unpack_submesh( mdl_header *mdl, glmesh *mesh, mdl_submesh *sm )
+__attribute__((warn_unused_result))
+static int mdl_unpack_submesh( mdl_header *mdl, glmesh *mesh, mdl_submesh *sm )
 {
-   mesh_upload( mesh, mdl_submesh_vertices( mdl, sm ), sm->vertex_count,
-                      mdl_submesh_indices( mdl, sm ), sm->indice_count );
+   return mesh_upload( mesh, mdl_submesh_vertices( mdl, sm ), sm->vertex_count,
+                             mdl_submesh_indices( mdl, sm ), sm->indice_count );
 }
 
-static void mdl_unpack_glmesh( mdl_header *mdl, glmesh *mesh )
+__attribute__((warn_unused_result))
+static int mdl_unpack_glmesh( mdl_header *mdl, glmesh *mesh )
 {
    u32 offset = mdl_submesh_from_id( mdl, 0 )->vertex_count;
 
@@ -481,8 +496,8 @@ static void mdl_unpack_glmesh( mdl_header *mdl, glmesh *mesh )
    mdl_vert *vertex_base = mdl_baseptr( mdl, mdl->vertex_offset );
    u32 *indice_base = mdl_baseptr( mdl, mdl->indice_offset );
 
-   mesh_upload( mesh, vertex_base, mdl->vertex_count,
-                      indice_base, mdl->indice_count ); 
+   return mesh_upload( mesh, vertex_base, mdl->vertex_count,
+                       indice_base, mdl->indice_count ); 
 }
 
 static void mdl_draw_submesh( mdl_submesh *sm )