X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=model_iqm.h;h=1dbb940c65b98ccafea62b95cf153594a0f57717;hb=f85803e7bc2d0612763bdb8548c7060ddb542afb;hp=39249f88e05da64cf578a93dbb5222b404ab446a;hpb=cb2c130be91caa03854a18721bf7b5821cb5b9da;p=xonotic%2Fdarkplaces.git diff --git a/model_iqm.h b/model_iqm.h index 39249f88..1dbb940c 100644 --- a/model_iqm.h +++ b/model_iqm.h @@ -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;