]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_iqm.h
Reworked v_isometric code significantly, it now defaults to a proper isometric view...
[xonotic/darkplaces.git] / model_iqm.h
index 39249f88e05da64cf578a93dbb5222b404ab446a..1dbb940c65b98ccafea62b95cf153594a0f57717 100644 (file)
@@ -11,7 +11,7 @@ typedef struct iqmheader_s
        unsigned int num_meshes, ofs_meshes;
        unsigned int num_vertexarrays, num_vertexes, ofs_vertexarrays;
        unsigned int num_triangles, ofs_triangles, ofs_neighbors;
-       unsigned int num_joints, ofs_joints, ofs_inversebasepose;
+       unsigned int num_joints, ofs_joints;
        unsigned int num_poses, ofs_poses;
        unsigned int num_anims, ofs_anims;
        unsigned int num_frames, num_framechannels, ofs_frames, ofs_bounds;
@@ -48,25 +48,44 @@ iqmmesh_t;
 #define IQM_FLOAT   7
 #define IQM_DOUBLE  8
 
+// animflags
+#define IQM_LOOP 1
+
 typedef struct iqmtriangle_s
 {
        unsigned int vertex[3];
 }
 iqmtriangle_t;
 
+typedef struct iqmjoint1_s
+{
+       unsigned int name;
+       signed int parent;
+       float origin[3], rotation[3], scale[3];
+}
+iqmjoint1_t;
+
 typedef struct iqmjoint_s
 {
        unsigned int name;
        signed int parent;
-       float origin[3], rotation[3];
+       float origin[3], rotation[4], scale[3];
 }
 iqmjoint_t;
 
+typedef struct iqmpose1_s
+{
+       signed int parent;
+       unsigned int channelmask;
+       float channeloffset[9], channelscale[9];
+}
+iqmpose1_t;
+
 typedef struct iqmpose_s
 {
        signed int parent;
        unsigned int channelmask;
-       float channeloffset[6], channelscale[6];
+       float channeloffset[10], channelscale[10];
 }
 iqmpose_t;
 
@@ -74,7 +93,7 @@ typedef struct iqmanim_s
 {
        unsigned int name;
        unsigned int first_frame, num_frames;
-       unsigned int framerate;
+       float framerate;
        unsigned int flags;
 }
 iqmanim_t;